개요

  • AS(Autonomous System) 간 네트워크 정보를 라우팅하는 데 사용되는 Distance Vector 라우팅 프로토콜이다.
  • 유니캐스트 방식으로 라우팅 정보를 전송하며 TCP 포트 번호 179번을 사용하여 신뢰성 있는 통신을 한다.
  • IGP와 달리 BGP는 일련의 속성을 사용하여 각 목적지에 대한 최적의 경로를 결정한다.
  • 자율 시스템(Autonomous System, AS) : 하나의 관리 주체 하에 운영되는 네트워크의 집합이다. 각 AS는 고유한 AS 번호를 가진다.
  • 경로 광고(Route Advertisement) : BGP 라우터는 자신이 속한 AS의 네트워크 정보다 다른 AS로부터 학습한 경로 정보를 인접한 BGP 라우터에게 알린다. 이때, 단순히 목적지 네트워크 정보뿐만 아니라 해당 경로를 거쳐온 AS들의 목록(AS Path) 등의 속성(Attribute) 정보도 함께 전달한다.
  • 경로 선택(Route Selection) : BGP 라우터는 수신한 다양한 경로 정보들을 기반으로 최적의 경로를 선택한다. 이때, AS Path 길이, policy, Preference, MED, Weight 등 다양한 속성들을 고려한다.
  • BGP는 AS Path 정보를 활용하여 라우팅 루프를 방지한다. 라우터는 자신이 이미 거쳐 온 AS가 경로 정보에 포함되어 있으면 해당 경로를 무시한다.

 

  • 동일한 AS내에 BGP로 동작하는 라우터가 여러개 존재할 때는 해당 AS내에서 별개로 IGP를 설정한다.
  • IGP의 용도
    - BGP 네이버로 가는 경로를 알리기 위해
    - BGP 넥스트 홉 문제 해결을 위해
    - BGP 싱크 문제 해결을 위해
    - AS 내부에서의 라우팅을 위해
  • iBGP가 동작하려면 BGP와 IGP의 동기화, next-hop까지의 통신, split horizon 문제가 해결되어야 한다.
    (iBGP로 광고받은 네트워크는 IGP가 확인해주어야만 사용할 수 있다.)
  • 특정 네트워크를 BGP에 포함시킬 때 netmask 명령어 다음에 지정하는 subnet mask와 정확히 일치하는 네트워크가 라우팅 테이블에 존재해야 한다.
  • BGP는 라우팅 테이블에 있는 네트워크에 대해서만 라우팅 정보를 전송할 수 있다.

 

 

BGP가 작동하려면 왜 IGP가 필요한가.

BGP가 정상적으로 작동하려면 확인하려면 IGP 또는 Static Routing이 필요하다.iBGP 스플릿 호라이즌 룰 때문에 iBGP 인접 라우터들의 full mesh가 필요하다. 즉, 모든 iBGP 라우터는 AS 내의 다른 모든 iBGP 라우터와 인접해야 한다. 이러한 iBGP 라우터들 연결하기 위해서 IGP를 사용하고, 네이버 인접성을 위해 루프백 인터페이스를 사용하는 것이 일반적이다.

 

iBGP 경로를 IGP로 재분배

BGP를 사용할 때는 iBGP를 통해 학습된 경로를 IGP로 재배포 하지 않는 것이 좋다. iBGP와 OSPF와 같은 IGP가 라우팅 정보를 처리하는 방식의 근본적인 차이로 인해 루프가 발생할 수 있다.

iBGP는 스플릿 호라이즌 규칙 메커니즘으로 AS 내에서 라우팅 루프를 방지하고, 반면 OSPF와 같은 IGP는 이 규칙을 사용하지 않는다. IGP는 몯느 이웃 라우터에 학습된 경로를 모두 알린다. 따라서 iBGP에서 학습된 경로를 OSPF로 재분배하면 OSPF는 해당 경로를 원래 알린 iBGP라우터를 포함한 모든 이웃 라우터에게 알리게 되고 이로 인해 루프가 발생할 가능성이 있다.

 

라우팅 루프의 가능성을 줄이기 위해 네트워크를 IGP에 직접 광고하고 재분배 하지 않는 것이다. 즉, iBGP에서 OSPF로 특정 경로를 재분배하는 대신, 해당 경로가 속한 네트워크에 직접 광고하는 것이다. 이렇게 하면 OSPF 도메인에 있는 모든 라우터가 네트워크로 ㅇ녀결되는 경로를 갖게 되어 라우팅 루프 발생 가능성을 방지할 수 있다.

 

Route Reflector VS Confederations

AS 내에 BGP를 구축할 때 전제 조건은 모든 iBGP 라우터 간에 full mesh 피어링을 구성하는 것이다. 그러나 피어링 수가 기하급수적으로 증가하면 관리와 확장성에 문제가 생길 수 있다.

 

이를 해결 하기 위해 BGP의 두 가지 기능 중 하느를 사용할 수 있다.

  • BGP Route Reflector
  • BGP Confederations

 

두 방법 모두 기존 iBGP full mesh를 구축하기에는 너무 복잡한 대규모 AS를 관리하는 데 사용된다.

  • RR은 일반적으로 구성 및 유지 관리의 단순성이 매우 중요한 네트워크에서 선호된다.
  • 반면, 컨페더레이션은 일반적으로 라우팅 정책을 광범위하게 제어해야 하고 이를 계층적으로 관리해야 하는 복잡한 네트워크 환경에서 사용되며, AS를 더 작은 AS로 분할하기 때문에 RR보다 확장성이 더 뛰어나다.

두 기술 모두 iBGP 구성을 단순화하는 데 사용할 수 있지만, RR은 일반적으로 구현 및 관리가 더 쉬워 단순한 네트워크에 적합하고, 컨페터레이션은 더 복잡하지만 더욱 세밀한 제어와 유연성을 제공하므로 규모가 크거나 복잡한 네트워크에 더 적합하다.

 

iBGP 구성시 Loopback 주소를 사용하여 장애에 대비한 이중화가 가능.

ㆍiBGP neighbor 지정시 보통 라우터의 Loopbacp 주소를 사용한다. 직접 연결된 1.1.23.3으로 지정해도 되지만 SW2-3간의 링크가 다운될 경우 백업 경로가 있음에도 SW2-3간의 iBGP neighbor가 해제된다.

ㆍR2가 iBGP 네이버인 R3에게 BGP 세션을 맺기 위한 메시지를 보내려면 해당 IP 주소와 연결되는 경로를 알아야 한다. R2의 라우티 ㅇ테이블에 네이버 주소로 사용하는 3.3.3.3 네트워크에 대한 정보가 저장되어 있어야만 R2와 R3간에 iBGP 네이버가 구성되며, IGP를 사용하는 이유 중 하나이다.

ㆍ대부분의 경우, BGP 네트워크가 많아 IGP로 재분배하면 라우터가 다운될 수도 있고, 장애처리도 힘들기 때문에 BGP를 IGP로 재분배하는 경우는 많지 않다.

 

BGP Table

 

BGP Neighnor Table

 

BGP 동기화

ㆍno sync 설정

ㆍBGP를 IGP로 재분배

ㆍ컨페더레이션 설정

'네트워크 > BGP' 카테고리의 다른 글

[BGP] Next Hop  (0) 2025.04.13
[BGP] 컨페더레이션  (0) 2025.04.12
[BGP] BGP 테이블 2  (0) 2025.04.11
[BGP] BGP 테이블 1  (0) 2025.04.11
[BGP] eBGP, iBGP 기본 설정  (0) 2025.04.10

+ Recent posts