BGP는 네트워크 간의 상호 연결을 효율적으로 관리하고 안정성을 유지하기 위해 다양한 환경에서 사용됩니다.이러한 목적을 달성하기 위해 BGP는 두 가지 유형으로 나뉩니다. iBGP(Internal BGP)와 eBGP(External BGP)입니다.
이 두 가지 유형은 라우팅 정보가 교환되는 네트워크 간의 관계에 따라 정의됩니다. iBGP는 같은 자율 시스템(Autonomous System, AS) 내에서 사용되며, eBGP는 서로 다른 자율 시스템 간에 라우팅 정보를 교환하는 데 사용됩니다. 이러한 구분은 네트워크의 크기와 복잡성이 증가함에 따라 효과적인 경로 설정 및 관리를 가능하게 하기 위해 만들어졌습니다. iBGP와 eBGP는 사용 목적과 동작 방식에 차이가 있으며, 이를 이해하는 것은 BGP의 전반적인 동작과 네트워크 설계에서 중요한 요소입니다.
- iBGP
- iBGP는 같은 AS 번호 내에 있는 라우터 간 BGP neighbor 관계를 맺는 방식입니다.
- 주로 eBGP로 학습한 외부 경로를 AS 내부로 전파하기 위해 사용됩니다.
- eBGP
- eBGP는 서로 다른 AS 번호에 속한 라우터 간 BGP neighbor 관계를 맺는 방식입니다.
- 외부와 연결되어 외부로부터 라우팅 경로를 받거나, 자신의 AS 정보를 외부로 전파하는 데 사용됩니다.
iBGP
iBGP는 같은 AS 내에서 BGP neighbor 관계를 맺어 외부 및 내부 경로 정보를 전달합니다. 이때 루프백 인터페이스를 사용해 neighbor 관계를 구성합니다.
루프백 인터페이스를 사용한 neighbor 관계의 장점은 다음과 같습니다:
- BGP 세션에 사용된 물리적 인터페이스가 다운되어도, IGP를 통해 neighbor의 루프백 주소에 도달할 수 있다면 neighbor 관계가 유지됩니다.
- 물리적 인터페이스가 다운되더라도 neighbor 주소로 가는 대체 경로가 있고, keepalive가 만료되기 전에 경로가 수렴되면 iBGP 세션은 영향을 받지 않습니다.
- 물리적 인터페이스의 다운이 iBGP 세션에 직접적인 영향을 주지 않아 세션의 안정성이 높아집니다.
Company2와 같이 동일 AS내에서는 EIGRP, OSFP와 같은 IGP를 이용해 라우팅 정보를 교환합니다. IGP로 얻은 라우팅 정보로 BGP 라우팅 정보를 교환합니다. R3은 IGP만으로도 라우팅 정보 교환이 가능하지만 R2, R4가 얻은 eBGP 경로 정보를 안정적으로 교환하기 위해 iBGP 관계를 맺습니다.
iBGP는 AS 내의 Loop를 방지하기 위해 전달 받은 BGP 경로 정보를 다른 BGP neighbor로 전달하지 않는 특성이 있습니다. 즉, iBGP로부터 광고 받은 네트워크는 iBGP로 광고 불가능하며 이를 Split-Horizon 이라고 합니다. BGP neighbor 관계가 직접 연결된 라우터끼리만 정보를 교환하는 1:1 통신을 하기에 R2가 전달하는 정보는 R3까지만 도달하고 R4까지는 도달하지 못합니다.
Split-Horizon을 방지하기 위해 3가지 방법이 있으며 대부분 Full-mesh, Route Reflector 방식을 사용합니다.
- Full-mesh : iBGP neighbor 관계를 각 각 모든 라우터끼리 연결
- Route Reflector : Split-Horizon Rule이 배제되는 Route Reflector로 선정된 라우터가 다른 라우터에게 라우팅 정보를 전달하는 방식
- Confederation : 하나의 AS내에서 AS를 논리적으로 분리하여 eBGP 구성을 합니다. eBGP 구성 시 Split-Horizon Rule ****자체가 적용되지 않습니다.
eBGP
외부 기관, ISP 등 서로 다른 AS에 속한 라우터 간 BPG neighbor 관계를 맺으면 eBGP 연결이 수립됩니다.
외부와 연동하기에 지정된 AS번호를 사용하며 정책적인 설정으로 라우팅 경로를 결정합니다.
iBGP와 가장 큰 차이점은 서로 다른 AS에 속해있는 라우터와 neighbor 관계를 맺는다는 것이지만 동작 방식에도 일부 차이가 있습니다.
- iBGP의 TTL(Time-To-Live)값은 255로 직접 연결되어 있지 않아도 neighbor 관계를 맺을 수 있지만 eBGP는 TTL 기본 값이 1로 직접 연결된 라우터와 neighbor 관계를 맺을 수 있습니다. ebgp-multihop으로 TTL 값을 수정(최대 255)하면 직접 연결되어 있지 않은 라우터와 neighbor 관계를 맺을 수 있습니다.
- neighbor 관계를 맺을 시 iBGP는 루프백 인터페이스, eBGP는 물리 인터페이스 주소를 사용하는 것이 일반적입니다.
- 수신한 라우팅 정보를 iBGP는 다른 라우터에 보내지 않지만 eBGP는 다른 라우터에 전달할 수있습니다. 이때, Local AS 번호를 추가해서 전달하며 수신한 경로 정보에 자신의 Local AS 번호가 포함되어 있으면 Loop으로 판단해 폐기합니다.
[참고블로그]
https://white-polarbear.tistory.com/93
https://louis-j.tistory.com/entry/BGP-IBGPInternal-BGP-VS-EBGPExternal-BGP-차이는
'Network > BGP' 카테고리의 다른 글
[BGP] Split Horizon 방지를 위한 Route-Reflector란? (0) | 2024.12.28 |
---|---|
[BGP] BGP 연동 실습#1 - 네이버 연결 및 라우팅 확인 (0) | 2024.12.19 |
[BGP] BGP Attribute 알아보기 (0) | 2024.12.12 |
[BGP] Neighbor 수립 과정 (0) | 2024.12.05 |
[BGP] BGP 개념과 사전 정보들(Path Vector Routing,EGP,AS…) (0) | 2024.11.20 |