5장. BGP 라우팅


5.1. BGP 라우팅에 대하여

이 기능은 클러스터에 대한 기본 BGP(Border Gateway Protocol) 라우팅 기능을 제공합니다.

중요

MetalLB Operator를 사용하고 MetalLB Operator가 아닌 클러스터 관리자나 타사 클러스터 구성 요소가 생성한 metallb-system 네임스페이스에 기존 FRRConfiguration CR이 있는 경우 이를 openshift-frr-k8s 네임스페이스에 복사하거나 해당 타사 클러스터 구성 요소가 새 네임스페이스를 사용하는지 확인해야 합니다. 자세한 내용은 FRR-K8s 리소스 마이그레이션을 참조하세요.

5.1.1. BGP(Border Gateway Protocol) 라우팅에 관하여

OpenShift Container Platform은 Linux, UNIX 및 이와 유사한 운영 체제를 위한 무료 오픈 소스 인터넷 라우팅 프로토콜 모음인 FRRouting(FRR)을 통해 BGP 라우팅을 지원합니다. FRR-K8s는 Kubernetes 호환 방식으로 FRR API의 하위 집합을 공개하는 Kubernetes 기반 데몬 세트입니다. 클러스터 관리자는 FRRConfiguration 사용자 정의 리소스(CR)를 사용하여 FRR 서비스에 액세스할 수 있습니다.

5.1.1.1. 지원되는 플랫폼

BGP 라우팅은 다음 인프라 유형에서 지원됩니다.

  • 베어 메탈

BGP 라우팅을 위해서는 네트워크 공급자에 맞게 BGP를 적절히 구성해야 합니다. 네트워크 공급자의 중단이나 잘못된 구성으로 인해 클러스터 네트워크가 중단될 수 있습니다.

5.1.1.2. MetalLB 연산자와 함께 사용하기 위한 고려 사항

MetalLB Operator는 클러스터에 추가 기능으로 설치됩니다. MetalLB Operator를 배포하면 FRR-K8s가 추가 라우팅 기능 공급자로 자동으로 활성화되고 이 기능을 통해 설치된 FRR-K8s 데몬이 사용됩니다.

4.18로 업그레이드하기 전에 MetalLB 운영자가 관리하지 않는 metallb-system 네임스페이스의 기존 FRRConfiguration (클러스터 관리자나 다른 구성 요소를 통해 추가)을 openshift-frr-k8s 네임스페이스에 수동으로 복사하고 필요한 경우 네임스페이스를 생성해야 합니다.

중요

MetalLB Operator를 사용 중이고 MetalLB Operator가 아닌 클러스터 관리자나 타사 클러스터 구성 요소가 생성한 metallb-system 네임스페이스에 기존 FRRConfiguration CR이 있는 경우 다음을 수행해야 합니다.

  • 기존 FRRConfiguration CR이 openshift-frr-k8s 네임스페이스에 복사되었는지 확인하세요.
  • 타사 클러스터 구성 요소가 생성한 FRRConfiguration CR에 대해 새 네임스페이스를 사용하는지 확인하세요.

5.1.1.3. CNO(Cluster Network Operator) 구성

클러스터 네트워크 운영자 API는 BGP 라우팅을 구성하기 위해 다음 API 필드를 노출합니다.

  • spec.additionalRoutingCapabilities : 클러스터에 대한 FRR-K8s 데몬 배포를 활성화하여 경로 광고와 독립적으로 사용할 수 있습니다. FRR-K8s 데몬이 활성화되면 모든 노드에 배포됩니다.

5.1.1.4. BGP 라우팅 사용자 정의 리소스

다음 사용자 정의 리소스는 BGP 라우팅을 구성하는 데 사용됩니다.

FRR 구성
이 사용자 정의 리소스는 BGP 라우팅에 대한 FRR 구성을 정의합니다. 이 CR은 네임스페이스가 지정되어 있습니다.

5.1.2. FRRConfiguration CRD 구성

다음 섹션에서는 FRRConfiguration 사용자 정의 리소스(CR)를 사용하는 참조 예를 제공합니다.

5.1.2.1. 라우터 필드

라우터 필드를 사용하여 각 VRF(가상 라우팅 및 포워딩) 리소스에 대해 하나씩 여러 라우터를 구성할 수 있습니다. 각 라우터에 대해 ASN(자율 시스템 번호)을 정의해야 합니다.

다음 예와 같이 연결할 BGP(Border Gateway Protocol) 이웃 목록을 정의할 수도 있습니다.

예제 FRRConfiguration CR

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: test
  namespace: frr-k8s-system
spec:
  bgp:
    routers:
    - asn: 64512
      neighbors:
      - address: 172.30.0.3
        asn: 4200000000
        ebgpMultiHop: true
        port: 180
      - address: 172.18.0.6
        asn: 4200000000
        port: 179
Copy to Clipboard Toggle word wrap

5.1.2.2. toAdvertise 필드

기본적으로 FRR-K8s는 라우터 구성의 일부로 구성된 접두사를 광고하지 않습니다. 이를 광고하려면 toAdvertise 필드를 사용합니다.

다음 예와 같이 접두사의 하위 집합을 광고할 수 있습니다.

예제 FRRConfiguration CR

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: test
  namespace: frr-k8s-system
spec:
  bgp:
    routers:
    - asn: 64512
      neighbors:
      - address: 172.30.0.3
        asn: 4200000000
        ebgpMultiHop: true
        port: 180
        toAdvertise:
          allowed:
            prefixes: 
1

            - 192.168.2.0/24
      prefixes:
        - 192.168.2.0/24
        - 192.169.2.0/24
Copy to Clipboard Toggle word wrap

1
접두사의 하위 집합을 광고합니다.

다음 예에서는 모든 접두사를 광고하는 방법을 보여줍니다.

예제 FRRConfiguration CR

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: test
  namespace: frr-k8s-system
spec:
  bgp:
    routers:
    - asn: 64512
      neighbors:
      - address: 172.30.0.3
        asn: 4200000000
        ebgpMultiHop: true
        port: 180
        toAdvertise:
          allowed:
            mode: all 
1

      prefixes:
        - 192.168.2.0/24
        - 192.169.2.0/24
Copy to Clipboard Toggle word wrap

1
모든 접두사를 광고합니다.

5.1.2.3. toReceive 필드

기본적으로 FRR-K8s는 이웃이 광고한 접두사를 처리하지 않습니다. toReceive 필드를 사용하여 이러한 주소를 처리할 수 있습니다.

다음 예와 같이 접두사의 하위 집합을 구성할 수 있습니다.

예제 FRRConfiguration CR

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: test
  namespace: frr-k8s-system
spec:
  bgp:
    routers:
    - asn: 64512
      neighbors:
      - address: 172.18.0.5
          asn: 64512
          port: 179
          toReceive:
            allowed:
              prefixes:
              - prefix: 192.168.1.0/24
              - prefix: 192.169.2.0/24
                ge: 25 
1

                le: 28 
2
Copy to Clipboard Toggle word wrap

1 2
접두사 길이가 le 접두사 길이보다 작거나 같고 ge 접두사 길이보다 크거나 같은 경우 접두사가 적용됩니다.

다음 예제에서는 FRR이 발표된 모든 접두사를 처리하도록 구성합니다.

예제 FRRConfiguration CR

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: test
  namespace: frr-k8s-system
spec:
  bgp:
    routers:
    - asn: 64512
      neighbors:
      - address: 172.18.0.5
          asn: 64512
          port: 179
          toReceive:
            allowed:
              mode: all
Copy to Clipboard Toggle word wrap

5.1.2.4. bgp 필드

bgp 필드를 사용하여 다양한 BFD 프로필을 정의하고 이를 이웃과 연결할 수 있습니다. 다음 예에서 BFD는 BGP 세션을 백업하고 FRR은 링크 오류를 감지할 수 있습니다.

예제 FRRConfiguration CR

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: test
  namespace: frr-k8s-system
spec:
  bgp:
    routers:
    - asn: 64512
      neighbors:
      - address: 172.30.0.3
        asn: 64512
        port: 180
        bfdProfile: defaultprofile
    bfdProfiles:
      - name: defaultprofile
Copy to Clipboard Toggle word wrap

5.1.2.5. nodeSelector 필드

기본적으로 FRR-K8s는 데몬이 실행 중인 모든 노드에 구성을 적용합니다. nodeSelector 필드를 사용하여 구성을 적용할 노드를 지정할 수 있습니다. 예를 들면 다음과 같습니다.

예제 FRRConfiguration CR

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: test
  namespace: frr-k8s-system
spec:
  bgp:
    routers:
    - asn: 64512
  nodeSelector:
    labelSelector:
    foo: "bar"
Copy to Clipboard Toggle word wrap

5.1.2.6. 인터페이스 필드

중요

spec.bgp.routers.neighbors.interface 필드는 기술 미리보기 기능에만 해당됩니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

다음 예제 구성을 사용하여 인터페이스 필드를 사용하여 번호가 지정되지 않은 BGP 피어링을 구성할 수 있습니다.

예제 FRRConfiguration CR

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: test
  namespace: frr-k8s-system
spec:
  bgp:
    bfdProfiles:
    - echoMode: false
      name: simple
      passiveMode: false
    routers:
    - asn: 64512
      neighbors:
      - asn: 64512
        bfdProfile: simple
        disableMP: false
        interface: net10 
1

        port: 179
        toAdvertise:
          allowed:
            mode: filtered
            prefixes:
            - 5.5.5.5/32
        toReceive:
          allowed:
            mode: filtered
      prefixes:
      - 5.5.5.5/32
Copy to Clipboard Toggle word wrap

1
번호가 지정되지 않은 BGP 피어링을 활성화합니다.
참고

인터페이스 필드를 사용하려면 두 BGP 피어 간에 지점 간, 계층 2 연결을 설정해야 합니다. IPv4, IPv6 또는 듀얼 스택과 함께 번호가 지정되지 않은 BGP 피어링을 사용할 수 있지만 IPv6 RA(라우터 광고)를 활성화해야 합니다. 각 인터페이스는 하나의 BGP 연결로 제한됩니다.

이 필드를 사용하면 spec.bgp.routers.neighbors.address 필드에 값을 지정할 수 없습니다.

다음 표에서는 FRRConfiguration 사용자 정의 리소스에 대한 필드에 대해 설명합니다.

Expand
표 5.1. MetalLB FRRConfiguration 사용자 정의 리소스
필드유형설명

spec.bgp.routers

array

FRR이 구성할 라우터를 지정합니다(VRF당 하나).

spec.bgp.routers.asn

integer

세션의 로컬 종료에 사용할 자율 시스템 번호(ASN)입니다.

spec.bgp.routers.id

string

bgp 라우터의 ID를 지정합니다.

spec.bgp.routers.vrf

string

이 라우터에서 세션을 설정하는 데 사용되는 호스트 vrf를 지정합니다.

spec.bgp.routers.neighbors

array

BGP 세션을 설정할 이웃을 지정합니다.

spec.bgp.routers.neighbors.asn

integer

세션의 원격 끝에 사용할 ASN을 지정합니다. 이 필드를 사용하면 spec.bgp.routers.neighbors.dynamicASN 필드에 값을 지정할 수 없습니다.

spec.bgp.routers.neighbors.dynamicASN

string

세션의 원격 끝에 사용할 ASN을 명시적으로 설정하지 않고 감지합니다. 동일한 ASN을 가진 이웃에 대해서는 내부를 지정하고, 다른 ASN을 가진 이웃에 대해서는 외부를 지정합니다. 이 필드를 사용하면 spec.bgp.routers.neighbors.asn 필드에 값을 지정할 수 없습니다.

spec.bgp.routers.neighbors.address

string

세션을 설정할 IP 주소를 지정합니다. 이 필드를 사용하면 spec.bgp.routers.neighbors.interface 필드에 값을 지정할 수 없습니다.

spec.bgp.routers.neighbors.interface

string

세션을 설정할 때 사용할 인터페이스 이름을 지정합니다. 이 필드를 사용하여 번호가 지정되지 않은 BGP 피어링을 구성합니다. 두 BGP 피어 사이에는 지점 간, 계층 2 연결이 있어야 합니다. IPv4, IPv6 또는 듀얼 스택과 함께 번호가 지정되지 않은 BGP 피어링을 사용할 수 있지만 IPv6 RA(라우터 광고)를 활성화해야 합니다. 각 인터페이스는 하나의 BGP 연결로 제한됩니다. spec.bgp.routers.neighbors.interface 필드는 기술 미리보기 기능에만 해당됩니다. Red Hat Technology Preview 기능의 지원 범위에 대한 자세한 내용은 Technology Preview 기능 지원 범위를 참조하세요.

spec.bgp.routers.neighbors.port

integer

세션을 설정할 때 다이얼할 포트를 지정합니다. 기본값은 179입니다.

spec.bgp.routers.neighbors.password

string

BGP 세션을 설정하는 데 사용할 비밀번호를 지정합니다. PasswordPasswordSecret은 상호 배타적입니다.

spec.bgp.routers.neighbors.passwordSecret

string

이웃에 대한 인증 비밀번호의 이름을 지정합니다. 비밀번호는 "kubernetes.io/basic-auth" 유형이어야 하며 FRR-K8s 데몬과 동일한 네임스페이스에 있어야 합니다. "password" 키는 비밀번호를 비밀에 저장합니다. PasswordPasswordSecret은 상호 배타적입니다.

spec.bgp.routers.neighbors.holdTime

duration

RFC4271에 따라 요청된 BGP 보류 시간을 지정합니다. 기본값은 180입니다.

spec.bgp.routers.neighbors.keepaliveTime

duration

RFC4271에 따라 요청된 BGP keepalive 시간을 지정합니다. 기본값은 60초 입니다.

spec.bgp.routers.neighbors.connectTime

duration

BGP가 이웃과의 연결을 시도하는 사이에 기다리는 시간을 지정합니다.

spec.bgp.routers.neighbors.ebgpMultiHop

boolean

BGPPeer가 멀티홉 떨어져 있는지 여부를 나타냅니다.

spec.bgp.routers.neighbors.bfdProfile

string

BGP 세션과 연관된 BFD 세션에 사용할 BFD 프로필의 이름을 지정합니다. 설정하지 않으면 BFD 세션이 설정되지 않습니다.

spec.bgp.routers.neighbors.toAdvertise.allowed

array

이웃에게 광고할 접두사 목록과 연관된 속성을 나타냅니다.

spec.bgp.routers.neighbors.toAdvertise.allowed.prefixes

문자열 배열

이웃에게 광고할 접두사 목록을 지정합니다. 이 목록은 라우터에서 정의한 접두사와 일치해야 합니다.

spec.bgp.routers.neighbors.toAdvertise.allowed.mode

string

접두사를 처리할 때 사용할 모드를 지정합니다. 접두사 목록에 있는 접두사만 허용하도록 필터링 을 설정할 수 있습니다. 라우터에 구성된 모든 접두사를 허용하려면 '모두' 로 설정할 수 있습니다.

spec.bgp.routers.neighbors.toAdvertise.withLocalPref

array

광고된 로컬 환경 설정과 관련된 접두사를 지정합니다. 광고가 허용되는 접두사에서 로컬 기본 설정과 연관된 접두사를 지정해야 합니다.

spec.bgp.routers.neighbors.toAdvertise.withLocalPref.prefixes

문자열 배열

로컬 기본 설정과 관련된 접두사를 지정합니다.

spec.bgp.routers.neighbors.toAdvertise.withLocalPref.localPref

integer

접두사와 연관된 로컬 기본 설정을 지정합니다.

spec.bgp.routers.neighbors.toAdvertise.withCommunity

array

광고된 BGP 커뮤니티와 연관된 접두사를 지정합니다. 광고하려는 접두사 목록에 로컬 기본 설정과 관련된 접두사를 포함해야 합니다.

spec.bgp.routers.neighbors.toAdvertise.withCommunity.prefixes

문자열 배열

커뮤니티와 관련된 접두사를 지정합니다.

spec.bgp.routers.neighbors.toAdvertise.withCommunity.community

string

접두사와 연관된 커뮤니티를 지정합니다.

spec.bgp.routers.neighbors.toReceive

array

이웃으로부터 수신할 접두사를 지정합니다.

spec.bgp.routers.neighbors.toReceive.allowed

array

이웃에게서 받고 싶은 정보를 지정합니다.

spec.bgp.routers.neighbors.toReceive.allowed.prefixes

array

이웃에서 허용되는 접두사를 지정합니다.

spec.bgp.routers.neighbors.toReceive.allowed.mode

string

접두사를 처리할 때 사용할 모드를 지정합니다. 필터링 으로 설정하면 접두사 목록에 있는 접두사만 허용됩니다. all 로 설정하면 라우터에 구성된 모든 접두사가 허용됩니다.

spec.bgp.routers.neighbors.disableMP

boolean

MP BGP를 비활성화하여 IPv4 및 IPv6 경로 교환을 별도의 BGP 세션으로 분리하지 못하도록 합니다.

spec.bgp.routers.prefixes

문자열 배열

이 라우터 인스턴스에서 광고할 모든 접두사를 지정합니다.

spec.bgp.bfdProfiles

array

이웃을 구성할 때 사용할 bfd 프로필 목록을 지정합니다.

spec.bgp.bfdProfiles.name

string

구성의 다른 부분에서 참조할 BFD 프로필의 이름입니다.

spec.bgp.bfdProfiles.receiveInterval

integer

이 시스템이 제어 패킷을 수신할 수 있는 최소 간격을 밀리초 단위로 지정합니다. 기본값은 300ms 입니다.

spec.bgp.bfdProfiles.transmitInterval

integer

지터를 제외하고 이 시스템이 BFD 제어 패킷을 보내는 데 사용하려는 최소 전송 간격을 밀리초 단위로 지정합니다. 기본값은 300ms 입니다.

spec.bgp.bfdProfiles.detectMultiplier

integer

패킷 손실을 판별하기 위해 감지 배수를 구성합니다. 연결 손실 감지 타이머를 결정하려면 원격 전송 간격에 이 값을 곱합니다.

spec.bgp.bfdProfiles.echoInterval

integer

이 시스템이 처리할 수 있는 최소 에코 수신 전송 간격을 밀리초 단위로 구성합니다. 기본값은 50ms 입니다.

spec.bgp.bfdProfiles.echoMode

boolean

에코 전송 모드를 활성화하거나 비활성화합니다. 이 모드는 기본적으로 비활성화되어 있으며 멀티홉 설정에서는 지원되지 않습니다.

spec.bgp.bfdProfiles.passiveMode

boolean

세션을 수동적으로 표시하세요. 수동 세션은 연결을 시작하려고 시도하지 않고 피어로부터 제어 패킷을 기다린 후 응답을 시작합니다.

spec.bgp.bfdProfiles.MinimumTtl

integer

멀티홉 세션에만 해당됩니다. 수신 BFD 제어 패킷에 대한 최소 예상 TTL을 구성합니다.

spec.nodeSelector

string

이 구성을 적용하려는 노드를 제한합니다. 지정된 경우, 지정된 선택기와 일치하는 레이블을 가진 노드만 구성을 적용하려고 시도합니다. 지정하지 않으면 모든 노드가 이 구성을 적용하려고 시도합니다.

status

string

FRRConfiguration의 관찰된 상태를 정의합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat