Red Hat Blog를 보다가 관심 가는 글이 보여서 AI번역+약간 교정해 보았습니다.
출처: https://developers.redhat.com/articles/2025/10/21/how-import-provider-network-routes-openshift-bgp
이 문서에서는 BGP(Border Gateway Protocol)를 사용하여 공급자(provider) 네트워크 경로를 Red Hat OpenShift Virtualization 으로 가져오는 방법을 보여줍니다 . 클라우드 네이티브 및 하이브리드 환경이 성장함에 따라 네트워킹 수요도 증가합니다. OpenShift는 BGP가 제공하는 강력하고 동적 네트워크를 필요로 합니다. 이러한 통합은 동적 라우팅을 지원하여 기존의 쿠버네티스 네트워킹 한계를 극복합니다.
이러한 통합은 경로 구성을 자동화하고, 동적 경로 업데이트를 용이하게 하며, VMware와 같은 플랫폼에서 가상 머신(VM) 마이그레이션을 간소화하여 유연성과 성능을 향상시킵니다. 또한, BGP는 양방향 전달 감지(BFD)와 같은 고급 기능을 지원하여 애플리케이션 가동 시간 유지에 필수적인 신속한 장애 조치(failover)와 고가용성을 보장합니다.
Kubernetes 네트워킹 제한 사항
기존 쿠버네티스 네트워킹은 특히 외부 네트워크 환경과의 상호 작용에서 제약이 있는 경우가 많습니다. 수동 경로 구성과 네이티브 라우팅 프로토콜 지원 부족은 네트워크 유연성과 성능을 저해할 수 있습니다. BGP는 라우팅 및 도달 가능성 정보의 동적 교환을 지원하고 컨테이너화된 애플리케이션과 가상 머신(VM)의 운영을 간소화함으로써 이러한 문제를 직접 해결합니다.
기업들이 클라우드 네이티브 아키텍처와 하이브리드 환경을 점점 더 많이 도입함에 따라 네트워킹 요구 사항은 더욱 복잡해지고 있습니다. Red Hat OpenShift 와 같은 플랫폼은 강력하고 역동적이며 효율적인 네트워크를 필요로 합니다. 바로 이러한 점에서 BGP, BFD와 같은 생태계, 그리고 클러스터 사용자 정의 네트워크(UDN) 통합은 다음과 같은 이점을 제공합니다.
- 워크로드에 대한 향상된 연결성(동적 라우팅 및 도달성 정보)
- 고급 네트워크 분할 및 격리
- VM 네트워크를 위한 빠른 컨버전스
필수 조건
OpenShift로 공급자 네트워크를 가져오기 위한 요구 사항은 다음과 같습니다.
- OpenShift 클러스터(버전 4.20 이상)
- OpenShift의 추가 라우팅 기능을 활성화합니다.
- OpenShift Virtualization을 설치하고 구성하세요. 자세한 내용은 OpenShift 설명서 를 참조하세요 .
OpenShift 클러스터에 대한 추가 라우팅 기능을 활성화하려면 다음과 같이 네트워크 운영자에게 패치를 적용해야 합니다.
oc patch Network.operator.openshift.io cluster --type=merge -p='{"spec":{"additionalRoutingCapabilities": {"providers": ["FRR"]}, "defaultNetwork":{"ovnKubernetesConfig":{"routeAdvertisements":"Enabled"}}}}'공급자 네트워크를 클러스터 기본 네트워크로 가져오는 방법
OpenShift 클러스터는 외부 공급자 네트워크(external provider network)의 경로를 open virtual network(OVN)로 동적으로 가져올 수 있으므로 호스트 기반 경로를 수동으로 구성할 필요가 없습니다. 이를 통해 공급자 네트워크의 변경 사항에 따라 동적 라우팅 업데이트가 가능해지며, 이는 유연하고 응답성이 뛰어난 네트워크 환경을 유지하는 데 필수적입니다.
이 동적 라우팅 메커니즘은 백업 경로와 트래픽 밸런싱을 통해 중단 없는 연결을 보장하고, 장애 발생 시 신속하게 경로를 변경하여 다운타임을 최소화합니다. 또한 업데이트 시 경로 정보를 유지하여 라우팅 루프를 방지하고, 효율적이고 오류 없는 데이터 전송 환경을 조성합니다.
다음 시나리오에서는 이 기능을 소개하고 공급자 네트워크에서 클러스터로 경로를 가져오도록 OpenShift를 구성하는 방법을 보여드리겠습니다.
OpenShift 클러스터는 ToR(Top-of-Rack) 스위치로 상호 연결되고 BGP 스피커 라우터에 연결된 두 개의 스케줄링 가능한 노드로 구성됩니다. 이 라우터는 하나의 서브넷을 OpenShift 클러스터에 노출하여 클러스터에서 실행 중인 VM이 공급자 네트워크에서 실행 중인 웹 서버에 접속할 수 있도록 합니다. 더 자세한 설명과 추가 주소 지정 정보는 라우터 IP, 자율 시스템 번호(ASN), 웹 서버 IP 및 포트를 보여주는 그림 1을 참조하십시오.

이제 공급자 네트워크로 경로를 가져오는 두 가지 방법을 보여드리겠습니다.
- 기본 클러스터 네트워크로 가져옵니다.
- 클러스터 전체 UDN으로 가져옵니다.
이 두 가지 옵션을 사용하려면 FRRConfiguration CR을 생성하여 피어링할 BGP 스피커를 지정하고, 선택적으로 공급업체 네트워크에서 가져올 접두사를 구성해야 합니다. 두 옵션 모두 공급업체의 에지 라우터에 동일한 ASN 번호(64600)를 사용합니다.
기본 클러스터 네트워크로 공급자 경로 가져오기
더 간단한 구성부터 시작해 보겠습니다. 공급자 경로를 기본 클러스터 네트워크로 가져오는 것입니다. 이 시나리오에서는 접두사의 일부만 가져오려고 하므로 추가 구성이 필요합니다. 이 사용 사례를 충족하기 위해 프로비저닝해야 하는 FRRConfiguration CR을 확인할 수 있습니다.
FRRConfiguration은 쿠버네티스 환경에서 BGP(Border Gateway Protocol) 라우팅을 위한 FRRouting(FRR) 인스턴스를 구성하는 데 사용되는 사용자 지정 리소스 정의(CRD)입니다. 주요 목적은 쿠버네티스 클러스터의 노드에 대한 BGP 라우팅 구성을 정의하고 관리하여 VM 및 컨테이너와 같은 워크로드에 대한 동적 및 자동화된 네트워크 라우팅을 지원하는 것입니다.
apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
name: receive-filtered-default-network
namespace: openshift-frr-k8s
spec:
nodeSelector: {}
bgp:
bfdProfiles:
- detectMultiplier: 4
name: bfd-default
receiveInterval: 200
transmitInterval: 200
routers:
- asn: 64512
neighbors:
- address: 172.18.0.6
asn: 64600
bfdProfile: bfd-default
toReceive:
allowed:
mode: filtered
prefixes:
- prefix: 172.26.0.0/16참고: 이 BFD 구성은 단일 이웃만 구성했기 때문에 재라우팅 기능을 제공하지 않습니다. 하지만 알림 및 컨버전스 시간이 더 빨라집니다.
CR을 프로비저닝한 후 노드 중 하나에 연결하여 필터링된 접두사를 실제로 수신했는지 확인할 수 있습니다.
root@ovn-worker:/# ip route show proto bgp 172.26.0.0/16 nhid 38 via 172.18.0.6 dev breth0 metric 20
각 OpenShift 노드에 대한 FRRNodeState 객체도 볼 수 있습니다. 이 FRRNodeState CR은 노드에서 실행 중인 FRR 라우터의 구성을 저장합니다.
이제 이 VM이 실제로 IP 172.26.0.3, 포트 8090에서 웹 애플리케이션을 노출하는 서버에 연결할 수 있는지 확인해 보겠습니다.
# let's first show the rules known in the guest ... [fedora@red ~]$ ip r default via 10.0.2.1 dev eth0 proto dhcp metric 100 10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.2 metric 100 # let's check the HTTP reply header [fedora@red ~]$ curl -I 172.26.0.3:8080 HTTP/1.1 200 OK Date: Tue, 09 Sep 2025 14:33:13 GMT Content-Length: 16 Content-Type: text/plain; charset=utf-8
보시다시피 게스트는 기본 게이트웨이에 대한 경로만 가지고 있습니다. 클러스터 인프라가 BGP 경로를 학습하고 그에 따라 패킷을 라우팅합니다.
클러스터 UDN에 공급자 경로 가져오기
이제 더 정교한 사용 사례, 즉 공급자 경로를 클러스터 UDN으로 가져오는 방법을 살펴보겠습니다. 이를 위해서는 클러스터 UDN이 필요하며, 이 UDN에는 최소 하나 이상의 네임스페이스가 필요합니다. 네임스페이스는 다음 매니페스트에서 찾을 수 있습니다.
---
apiVersion: v1
kind: Namespace
metadata:
name: blue
labels:
k8s.ovn.org/primary-user-defined-network: ""
---
apiVersion: k8s.ovn.org/v1
kind: ClusterUserDefinedNetwork
metadata:
name: happy-tenant
spec:
namespaceSelector:
matchExpressions:
- key: kubernetes.io/metadata.name
operator: In
values:
- blue
network:
topology: Layer2
layer2:
role: Primary
ipam:
lifecycle: Persistent
subnets:
- 200.200.0.0/16클러스터 UDN으로 경로를 가져오려면 먼저 사용자가 기본 VRF로 경로를 가져와야 하며, 그런 다음에야 기본 VRF에서 클러스터 UDN의 VRF로 경로를 유출해야 합니다.
다음 구성을 사용합니다.
apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
name: receive-filtered-blue-cudn
namespace: openshift-frr-k8s
spec:
bgp:
bfdProfiles:
- detectMultiplier: 4
name: bfd-default
receiveInterval: 200
transmitInterval: 200
routers:
- asn: 64512
neighbors:
- address: 172.18.0.6
asn: 64600
bfdProfile: bfd-default
toReceive:
allowed:
mode: filtered
prefixes:
- prefix: 172.26.0.0/16
- asn: 64512
imports:
- vrf: default
vrf: happy-tenantCR을 프로비저닝한 후 노드 중 하나에 연결하여 해피 테넌트 클러스터 사용자 정의 네트워크(C-UDN)에 대해 생성된 VRF에서 필터링된 접두사를 수신했는지 확인할 수 있습니다.
root@ovn-worker:/# ip route show proto bgp vrf happy-tenant 172.26.0.0/16 nhid 38 via 172.18.0.6 dev breth0 metric 20
이제 이 VM(클러스터 기본 네트워크가 아닌 기본 UDN에 연결됨)이 웹 서버에 도달할 수 있는지 확인해 보겠습니다.
# let's first show the rules known in the guest ... [fedora@blue ~]$ ip r default via 192.168.0.1 dev eth0 proto dhcp metric 100 192.168.0.0/16 dev eth0 proto kernel scope link src 192.168.0.6 metric 100 # let's check the HTTP reply header [fedora@blue ~]$ curl -I 172.26.0.3:8080 HTTP/1.1 200 OK Date: Tue, 09 Sep 2025 14:33:13 GMT Content-Length: 16 Content-Type: text/plain; charset=utf-8
결론
FRRouting 및 사용자 정의 네트워크를 통해 BGP를 OpenShift Virtualization과 통합하면 최신 클라우드 네이티브 환경에 필요한 강력한 기능을 활용할 수 있습니다. 공급자 네트워크에서 동적 경로 가져오기를 활성화하면 수동 라우팅 구성이 필요 없어 기존 쿠버네티스 네트워킹의 주요 한계를 해결할 수 있습니다. 이를 통해 네트워킹 구성이 크게 간소화되어 전체 솔루션의 유연성과 확장성이 향상됩니다. BFD를 통한 빠른 장애 조치 및 루프 방지와 같은 기능은 견고하고 고가용성 있는 운영을 보장합니다.
이러한 기능 구현을 고려하고 있다면 먼저 OpenShift 클러스터가 요구 사항을 충족하는지 확인하고, 더욱 심층적인 사용자 지정을 위해 공식 문서를 참조하세요 . 랩 환경에서 실험하면 가상화 및 컨테이너화된 애플리케이션의 실질적인 이점을 직접 확인할 수 있습니다.