1. BGP (Border Gateway Protocol)
ㅇ 자치시스템 (AS) 상호 간에 적용되는 라우팅 프로토콜 (Inter-Domain Routing Protocol)
- 즉, 독립 운용되는 대규모 네트워크 (AS) 간에, 네트워크 정보를 교환하기 위해 주로 사용
2. BGP 역사
ㅇ BGP version 1 (1989), BGP version 4 (1995 : CIDR 및 Supernetting 도입적용)
- 그냥 BGP라함은 현재의 BGP-4를 의미
3. BGP 특징
ㅇ 인터넷을 AS 간 연결 경로(Path)로 이루어진 방향성 그래프의 집단으로 봄
- 인터넷을, 각각 유일한 AS 번호를 갖는 AS들이, 방향성을 갖고 연결된 AS 집합인 그래프로 봄
- AS 간에 Mesh Type 구성
ㅇ 라우터 간의 경로결정(IGP)이 아닌, AS 간의 경로결정(EGP)을 위한 라우팅 프로토콜
- 즉, 물리적인 라우터 간에 라우팅하는 관점이 아니라, AS 영역 간에 라우팅이 이루어짐
. 따라서, 라우터 간의 정보 교환이 아니라, AS 간에 라우팅 정보 교환이 됨
- 이를두고, EGP (Exterior Gateway Protocol) 또는 IDRP(Inter-Domain Routing Protocol) 라고 함
ㅇ 모든 경로 결정을 로컬 AS의 라우팅 정책에 의해 자체적으로 이루어짐
- 따라서, 최상의 경로 선택을 위해, 다양하고 풍부한 Routing Metric 사용 (Path Attribute)
. 베스트 경로 결정은, 각 속성의 우선순위에 따라, 순서대로 이루어짐
.. 즉, 우선순위가 있는 각 Metric을 차례대로 참조하여 최상의 경로를 선택
- 라우팅 정책에 따라, 라우팅 정보의 양과 구성 형태가 달라짐
ㅇ Distance Vector Routing Protocol (거리 벡터 라우팅 프로토콜)의 발전된 형태
- `Path Vector Routing Protocol (경로 벡터 라우팅 프로토콜)` 이라고도 불리움
. 여기서, AS 경로(AS Path)는, 목적지 네트워크(AS)까지 거쳐야하는 AS Path를 나타냄
- BGP는, 최적/최단의 경로를 찾는 라우팅 정보라기 보다는,
. 도달 가능성 (Network Reachability)을 알리는 프로토콜임
- 최적의 경로 정보(라우팅 테이블)를 상호 교환 함
ㅇ 끝없이 순환되는 문제점이 없도록 확실히 함
- 즉, BGP는 Looping-free 하는 라우팅을 보장함
. 순환을 피하도록, 목적지 AS까지 거치는 경로를 담은, AS 경로 정보를 제공 함
ㅇ 보안 중시
- BGP 피어 관계 설정 및 네트워크 정보 생성/전달이 분리됨
- 신뢰할 만한 TCP 연결에 의해, 라우팅 정보를 교환
. BGP 피어 라우터간에, 교환되는 라우팅 정보는,
. 포트번호 179번을 통해, TCP에 의해 신뢰성있게 전달
ㅇ 대규모 정보 처리
- 약 2천개 이상의 방대한 네트워크 정보를 다루므로,
- 자원의 효율적 처리를 위한 많은 요소들을 제공함
ㅇ 라우팅 정보의 점진적 부분 갱신 (Incremental, Partial, Triggered Update)
- BGP는 주기적으로 정보를 갱신하지 않고,
. 단지 변화가 있을때 만, 이웃 라우터에게 갱신 정보를 Advertising 함
- 두 피어 라우터 간에,
. 전체 라우팅 정보는, 처음 BGP Session을 맺은 직후에 만 필요
. 이후에는, 변화된 부분 만 필요
- 다만, 순간적 Flapping에 의한, 빈번한 업데이트 발생 방지를 위해, 일정시간 대기
. AS 내부 iBGP 간에 5초, AS 외부 eBGP 간에 30초 대기 후에 라우팅 업데이트 수행
. (이는, BGP 대상 네트워크 수가 많으므로, 업데이트 회수를 줄여 자원 낭비를 방지하기 위함)
. (한편, IGP 라우팅 프로토콜들은, 네트워크 변화 발생 즉시 라우팅 업데이트를 수행함)
- 만일, 네트워크 변화가 전혀 없으면 주고받는 정보가 없게되므로,
. 이를 위해 자신이 살아있음을 알리는 BGP 킵얼라이브메세지를 60초 마다 교환
ㅇ 클래스 없는 주소체계 지원
- CIDR 지원
- BGP는 각 주소 정보에 덧붙여 Prefix의 길이도 함께 전달 ☞ NLRI 참조
ㅇ 정책 기반의 라우팅 프로토콜 (Policy-based Routing)
- BGP는 상대 영역의 라우팅 정책을 침범하지 않고도, 자신의 라우팅 정책을 구현 가능
. 정치적 이유,보안 등에 의해 각 경로에 대해 선택적으로 버리거나 무시하거나,
또는 정책적인 가중치 부여가 가능함
- 서로 경쟁적인 AS 간에 자신의 피해 예방을 위해, 정보 공유를 최소한도로 하게됨
4. BGP 주요 개념 용어
ㅇ BGP의 AS(자치시스템) 간의 연결유형 구분 ☞ BGP AS
ㅇ BGP 경로 결정을 위한 라우팅 메트릭 ☞ BGP Path Attribute
- BGP에서 Route의 특성을 기술하는 매개변수들의 집합으로 Path Attribute이라 함
ㅇ BGP 라우팅 프로토콜을 수행하는 라우터의 구분 ☞ BGP 라우터
ㅇ BGP 라우터 간 Session 설정 ☞ BGP 이웃 협상
- EBGP (External BGP) Session : 다른 AS 상호 간에 변방 라우터들끼리 접속
- IBGP (Internal BGP) Session : 동일 AS 내부의 변방 라우터들 간 내부접속
5. BGP 메세지 포멧
ㅇ BGP 공통 헤더 ☞ BGP Message Header
ㅇ 공통 헤더 바로 뒤에 각 메세지 종류 별로 다른 내용이 붙여지게 됨
☞ BGP Open Message, BGP Update Message, BGP Keepalive Message,
BGP Notification Message, ...
6. 관련 표준
ㅇ RFC 1771, 4271 (A Border Gateway Protocol 4, BGP-4)
ㅇ RFC 1772 (Application of the Border Gateway Protocol in the Internet)
ㅇ RFC 1773 (Experience with BGP-4 protocol)
ㅇ RFC 1774 (BGP-4 Protocol Analysis) 등