네트워크심화 · 17분 읽기

BGP 세션·경로 속성·정책과 NEXT_HOP

BGP의 TCP 세션과 경로 광고·선택·RIB 설치 단계를 구분한다. eBGP·iBGP·Route Reflector, network의 정확한 조건과 prefix 정책을 원문의 명령 체계에 따라 설명한다.

개념부터 찾아보기

정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.

이 노트에서 설명할 수 있게 되는 것

  1. TCP 세션·BGP 상태·프리픽스 정책을 구분한다.
  2. 주요 메시지와 경로 속성을 연결한다.
  3. NEXT_HOP 도달성과 광고 범위를 단계별로 확인한다.

01AS 사이의 정책을 경로에 담는 Path Vector

  • 는 목적지 prefix와 등 속성을 교환하는 Path Vector 프로토콜이다. 단순히 회선 속도가 가장 빠르거나 라우터 hop이 가장 적은 길만 고르는 것이 아니라 운영자가 정한 import·export 정책을 적용한다.
    • 서로 다른 AS 사이의 세션은 , 같은 AS 안에서 정보를 배포하는 세션은 다.
    • 가 내부에서 동작한다고 같은 IGP로 분류가 바뀌는 것은 아니다.
  • 일반적인 광고에서는 자기 ASN을 에 추가하고 수신자는 자기 ASN이 경로에 이미 있으면 루프 가능성을 판단해 거부한다. 하지만 만으로 모든 경로 유출과 잘못된 광고를 막을 수는 없다.
    • 허용할 prefix, 길이, 관계에 맞는 export 정책이 필요하다.
    • 는 link-state IGP이며 의 EGP 분류와 구별한다.

02TCP 연결에서 BGP Established까지

  • 기본 은 버전·AS·Hold Time· Identifier와 선택 매개변수·Capability를 담는다. 협상 Hold Time과 상태는 서로 다른 정보다.
  • 는 179를 사용한다. 일반 직접 연결 의 TTL 1, loopback 세션의 -source·multihop 조건은 실제 전송 경로에 맞아야 한다.
  • Active는 연결 실패·재시도와 관련된 상태이며 정상 경로 교환 상태가 아니다. 모든 성공 세션이 →→Active를 반드시 거치는 직선 흐름은 아니다.
  1. 세션을 시작하면 피어까지 연결을 시도한다. 실패하면 재시도와 Active 관련 분기로 진행할 수 있다.
  2. 연결이 성립하면 을 보낸다. 피어의 과 협상 매개변수를 검증한다.
  3. 이 유효하면 교환으로 세션 성립을 이어 간다. 에서 필요한 확인을 기다린다.
  4. 세션이 성립하면 로 경로를 주고받는다. 연결 성공만으로 정책과 도달성까지 정상인 것은 아니다.

설명과 함께 보는 보조 도식

메시지 순서

BGP 세션에서 경로 전달까지

OPEN 조건이 맞는 두 피어의 기본 흐름.

피어 A피어 B1. TCP 연결2. OPEN3. OPEN·KEEPALIVE4. UPDATE5. 정책·유효성 검사6. 선택·설치
전체 단계를 한 번에 읽기
  1. 01

    TCP 연결

    BGP를 운반할 신뢰 스트림을 만든다.

  2. 02

    OPEN

    AS·식별자·기능 조건을 제안한다.

  3. 03

    OPEN·KEEPALIVE

    상대 조건을 확인하고 세션을 준비한다.

  4. 04

    UPDATE

    프리픽스와 속성을 광고한다.

  5. 05

    정책·유효성 검사

    수신 필터와 NEXT_HOP 도달성을 확인한다.

  6. 06

    선택·설치

    후보 중 선택 결과를 RIB·FIB에 반영한다.

학습용 메시지 흐름 모식도. 재전송과 구현별 선택 동작은 축약했다.

03OPEN·UPDATE·KEEPALIVE·NOTIFICATION

  • 기본 메시지는 Marker16바이트, Length2바이트, Type1바이트의 19바이트 공통 헤더로 시작한다.
    • 은 세션 조건·Capability 협상, 는 철회 경로·Path Attributes·, 는 연결 유지, 은 오류 통지와 종료에 사용된다.
    • ROUTE-REFRESH 확장은 세션을 유지한 채 경로 재광고를 요청한다.
  • 가 메시지의 바이트를 신뢰성 있게 전달해도 정책 오류를 막지는 못한다. 에 prefix가 들어왔다는 사실과 그 경로를 허용·best로선택·mainRIB에설치·다른이웃에광고했다는사실은각기다르다.
    • · 등 Address Family의 활성화와 Capability가 맞아야 해당 를 주고받을 수 있다.
원리 심화

04UPDATE 길이·속성 플래그·NLRI의 바이트 구조

  • 기본 는 Withdrawn Routes Length와 철회 목록, Total Path Attribute Length와 속성 목록, 새 로 나뉜다. 두 Length 필드가 각각 2바이트이며 공통 헤더 19바이트와 구분된다.
  • 각 Path Attribute는 Flags·Type Code·Length·Value 구조다. Extended Length 비트가 0이면 길이는 1바이트, 1이면 2바이트이므로 모든 속성의 헤더 크기를 3바이트로 고정하면 안 된다.
  • Flags는 well-known/optional, transitive/non-transitive 성격을 나타낸다. 예를 들어 알 수 없는 optional transitive 속성이 있는 경로를 수용해 재광고한다면 해당 속성을 보존하고 Partial 비트를 설정한다.
  • 알 수 없는 optional non-transitive 속성은 다른 이웃으로 전달하지 않는다. Partial은 경로가 끊겼다는 뜻이 아니라 optional transitive 속성 정보의 완전성에 관한 비트다.
  • 는 비트 단위 prefix length와 필요한 주소 바이트를 담는다. 192.0.2.0/24는 길이 24와 주소 3바이트로 총 4바이트이고, /25는 주소 4바이트가 필요해 총 5바이트다.

05Adj-RIB-In·Loc-RIB·Adj-RIB-Out과 실제 전달

  • 개념적으로 은 이웃에서 받은 정보, 는 의 결정 과정으로 선택한 정보, 은 이웃에게 광고할 정보를 표현한다.
    • 실제 장비가 정책 적용 전후 모든 경로를 동일한 형태로 항상 보관하는 것은 아니므로 received-routes 명령의 지원 조건을 구별한다.
    • Soft reconfiguration으로 원본을 보관하면 메모리를 더 사용할 수 있다.
  • best 경로도 다른 출처의 더 낮은 AD 경로 때문에 main 에 설치되지 않을 수 있다. 에 대한 재귀 해석도 가능해야 한다.
    • 따라서 table의 valid/best 표시, main routing table, forwarding table을 같은 것으로 읽지 않는다.
    • 세션은 인데 서비스가 실패하는 경우 이 분리가 특히 중요하다.

06주요 속성과 비교 방향

  • 는 AS 내부의 출구 선호를 나타내며 큰 값이 우선이다. Cisco Weight는 로컬 장비에만 영향을 주는 비표준 값이며 다른 라우터에 전파되는 와 다르다.
    • 는 일반적으로 짧은 경로가 선호되지만 앞선 정책보다 항상 우선하지 않는다.
    • ORIGIN의 IGP/EGP/Incomplete는 경로 기원 속성이지 현재세션이/인지를뜻하지않는다.
  • 는 인접 AS에 진입점 선호를 제안하는 값으로 일반적으로 작을수록 선호하며 비교 범위는 이웃 AS와 설정에 영향을 받는다. 는 정책을 붙이기 위한 태그다.
    • Cisco 계열의 대표 흐름은 유효성·Weight··로컬생성··ORIGIN· 등의 비교를 거치지만 정확한 모든 tie-break와 multipath는 플랫폼·설정별 조건이 있으므로 고정표 하나를 보편 표준으로 취급하지 않는다.
속성대표 역할주의
AS 내부 출구 선호, 높을수록 우선AS 밖에 동일 방식으로 전달하는 값이 아님
AS 경로·루프 방지물리 라우터 hop 수가 아님
실제 다음 홉IGP· 등으로 해석 가능해야 함
진입점 선호 제안, 낮을수록 우선비교 범위·정책에 조건
WeightCisco 로컬 선호다른 라우터로 광고하지 않음
예제로 추적

07LOCAL_PREF가 AS_PATH 길이보다 먼저 작용하는 예

  1. 같은 203.0.113.0/24의 유효한 두 경로 A·B가 있고 Cisco Weight는 둘 다 0, 로컬 생성 여부도 같다고 하자. 추가 best-path 설정은 없는 단순 예다.
  2. A는 =200· 길이 4, B는 =100·길이 1이다. 비교가 앞서므로 가 긴 A가 선택된다.
  3. 를 둘 다 100으로 두면 앞선 조건이 같다는 전제에서 짧은 의 B가 유리해진다. 여러 속성을 점수처럼 합산해 고르는 방식이 아니다.
  4. B의 이 해석 불가능해지면 짧은 만으로 B를 유지할 수 없다. 남은 유효 후보 A로 선택이 바뀌는지와 전역 설치를 따로 관찰한다.
  5. 는 기본적으로 같은 이웃 AS에서 온 후보 사이의 비교 등 적용 조건을 가진다. 다른 AS에서 온 낮은 를 보다 먼저 비교하는 계산은 잘못된 순서다.

08iBGP NEXT_HOP과 Full Mesh 문제

  • 에서 배운 외부 경로를 로 전달할 때 이 외부 이웃 주소로 유지될 수 있다. 내부 라우터에 그 주소까지의 IGP 경로가 없으면 경로가 유효하게 선택되지 않는다.
    • 외부 next hop의 도달성을 IGP로 제공하거나 next-hop-self로 경계 라우터 자신을 다음 홉으로 제시하는 설계가 필요하다.
    • 세션이연결되는 IP와각prefix의 은반드시같지않다.
  • 일반 는 에서 받은 경로를 다른 일반 peer로 다시 전달하지 않는다. 이 규칙 때문에 n개의 speaker를 하면 n(n-1)/2 세션이 필요하다.
    • 실제 데이터가 모든 세션 선을 따라 이동하는 것이 아니라 제어 정보 배포 관계라는 점이 중요하다.
    • 데이터 전달 경로는 IGP와 해석 등에 의해 결정된다.

09Route Reflector의 반사 규칙

  • 은 에게서 받은 선택 경로를 다른 와 에, 에게 받은 선택 경로를 에 반사할 수 있다. 이를 통해 사이의 모든 직접 세션을 줄인다.
    • 는 원 발신 speaker를, 는 지나온 반사 클러스터를 기록해 반사 경로의 재유입을 검출하는 데 사용된다.
  • 은 모든 경로를 무조건 모두에게 복제하는 허브가 아니다. best 선택·정책· 관계에 따라 보이는 경로가 달라질 수 있고 path hiding과 비최적 경로가 생길 수 있다.
    • 의 세션 중복화만 보지 않고 IGP topology·cluster ID··실제 출구 선택을 함께 설계해야 한다.

10network는 RIB의 정확한 prefix를 기원한다

  • IOS 의 network203.0.113.0 mask255.255.255.0은 main 에 정확히 203.0.113.0/24가 있을 때 기원 대상으로 만든다. /25두개가있거나/16요약만있다는것은정확한일치가아니다.
    • network명령그자체가도달가능한경로를새로만드는것도아니다.
    • aggregate-address와다른출처의redistribute는별도기능이다.
  • 아래 실습은 AS64512의 R1과 AS64513의 R2가 192.0.2.0/30으로 연결되고 R1에 203.0.113.0/24 connected 경로가 이미 존재한다고 가정한다. 두 ASN은 사설 실습용이며 실제 인터넷 광고를 위한 절차가 아니다.
    • prefix-list로 내보낼 경로를 한 개로 제한하고 address family에서 이웃을 활성화한다.
text
ip prefix-list LAB-OUT seq 10 permit 203.0.113.0/24
router bgp 64512
 bgp router-id 192.0.2.1
 no bgp default ipv4-unicast
 neighbor 192.0.2.2 remote-as 64513
 address-family ipv4 unicast
  neighbor 192.0.2.2 activate
  neighbor 192.0.2.2 prefix-list LAB-OUT out
  network 203.0.113.0 mask 255.255.255.0
 exit-address-family
!
! R2에는 반대편192.0.2.1 remote-as64512를 구성

문서용 주소와 사설 AS의 격리실습 예. 정확한 connected 경로와 반대편 설정이 전제다.

11Prefix-list·Route-map·Maximum-prefix

  • prefix-list의 단일 203.0.113.0/24 permit은 기본적으로 그정확한길이에일치한다. /를붙이면허용할더구체적인길이범위를지정할수있다.
    • route-map은와을조합해허용경로에 같은속성을부여한다.
    • 두정책의암시적deny를이해하지못하면 의도한 한 경로 조정 대신 모든 나머지 경로가 사라질 수 있다.
  • maximum-prefix는 이웃이 예상보다 많은 경로를 보내는 상황을 제한하지만 warning-only는 경고만 남긴다. 실제 세션 종료·재시작 동작은 설정과 플랫폼에 따라 다르다.
    • RPKI origin validation의 Valid·Invalid·NotFound는 prefix와허용originASN·최대길이관계를판단한다.
    • 전체 의진위나모든route leak을검증하지않으므로기존prefix·관계정책을대신할수없다.

12명령을 세 단계 진단으로 연결하기

  • 첫째 세션 단계는 peer 주소까지의 경로, TCP179, source 주소·AS·TTL·협상 조건을 본다. Summary의 State/PfxRcd가 숫자면 일반적으로 에서 받은 prefix 수를 뜻한다.
    • 둘째 경로 단계는 해당 prefix가 수신됐는지, 정책에 허용됐는지, 이 도달 가능한지 본다.
    • 셋째 설치 단계는 best 경로가 main ·실제 forwarding에 반영됐는지 본다.
  • 정책 변경에 따른 Route Refresh나 soft clear는 세션을 유지하며 경로를 재평가하는 방법이다. hard clear는 전체 철회·재학습을 유발할 수 있어 조회 명령과 구분한다.
    • 예시 명령의 성공 여부는 실제 세션 상태·수신 경로·선택 경로·전달 결과를 연결해 판단한다.
text
show bgp ipv4 unicast summary
show bgp ipv4 unicast neighbors 192.0.2.2
show bgp ipv4 unicast 203.0.113.0/24
show bgp ipv4 unicast neighbors 192.0.2.2 advertised-routes
show ip route 203.0.113.0 255.255.255.0
show ip route 192.0.2.2

세션· 경로·광고·mainRIB·을 구분하는 조회 예.

검증·예외

13세션 Established 이후 프리픽스가 빠지는 네 지점

  • 세션이 여도 기대하는 · 주소군의 capability와 neighbor 활성화가 일치하지 않으면 해당 교환은 이루어지지 않을 수 있다. 세션 하나와 모든 주소군의 정상 상태를 동일시하지 않는다.
  • network로 정확한 프리픽스를 광고하려면 해당 주소와 마스크의 경로가 로컬 에 있어야 하는 Cisco 조건을 확인한다. 더 큰 요약이나 다른 마스크의 경로만 있는 상태와 구분한다.
  • 송신 측 advertised 경로와 수신 측 정책 결과를 비교한다. 가상 prefix-list 192.0.2.0/24 26 28은 그 /24 안의 /26부터 /28까지만 허용하며 /24 자체와 /29는 제외한다.
  • 수신 에 자신의 AS가 있으면 일반적인 루프 검출로 제외된다. 인 이웃이 광고했다는 사실보다 내용과 예외 정책이 후보 수용을 결정한다.
  • 특정 의 Withdraw는 세션 전체 down과 다르다. 세션이 유지되는 동안 일부 프리픽스만 사라졌다면 마지막 ·정책 변경·원점 변화를 우선 연결한다.
READ · OBSERVE ·

함께 보는 학습 자료

아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.

공식 가이드

Cisco: BGP Best-path 선택 순서

속성을 합산하지 않고 비교가 종료되는 순서를 읽는다. Cisco Weight와 구현별 옵션을 공통 규칙과 구분한다.

읽으면서 확인할 것
  • 이 해석되지 않는 후보
  • Weight·· 순서
  • 비교 범위와 설정 예외
학습 확인

이해했는지 확인하기

  • 세션 성립과 경로 광고 성공을 별도로 확인했는가?
  • 선택 경로를 결정한 속성과 정책을 설명할 수 있는가?
  • NEXT_HOP 도달성과 수신·광고 필터를 확인했는가?

함께 확인할 공식 자료