- BGP(Border GateWay Protocal)
: EGP(외부 게이트웨이 프로토콜)을 대체하기위해 개발됨
: 네트워크 접근 가능 정보를 AS 간에 주고받을 수 있도록 하여 메시지가 효율적으로 전달될 수 있게 함
: 네트워크 접근 가능 정보를 통해 네트워크로 가는 경로를 결정
: 어떤 형태의 AS도 지원할 수 있음
: BGP 라우터는 다른 BGP 라우터와 세션을 생성하고 TCP를 사용하여 경로에 대한 정보를 공유함
: 복잡한 경로 벡터 계산 알고리즘을 씀
- BGP 토폴로지
: 가장 큰 특징은 유연성임
: AS의 인터네트워크가 어떤 토폴로지를 가지든 BGP를 사용할 수 있음
- BGP 스피커
: BGP 인터네트워크를 만드려먼 각 AS에서 BGP를 실행할 라우터를 선택해야함 => BGP 스피커
: 메시지 교환 시스템을 이용해 경로를 공유함
: 같은 AS에 있는 라우터에만 접속 -> 내부 라우터
: 다른 AS에 있는 라우터에도 접속 -> 외부 라우터
: 같은 AS 에 있는 주변 BGP 스피커 -> 내부 피어
: 다른 AS 에 있는 주변 BGP 스피커 -> 외부 피어
- BGP 트래픽흐름, AS 유형
- 지역 트래픽(local traffic) : 같은 AS에서 발생하거나 AS로 전송되어야 할 트래픽
- 횡단 트래픽(transit traffic) : AS 밖에서 생성됨, 다른 AS로 전달되어야 할 트래픽
: AS 간의 트래픽 흐름을 어떻게 처리를 해야되는지 중요함
- stub AS
: 하나의 AS와 연결된 AS로 길 끝이 막힌 도로와 비슷
: 그 AS에서 출발하거나 그 지역으로 돌아오는 트래픽이 대부분
- 다중 인터페이스 AS
: 두 개 이상의 AS에 연결된 AS
: 도로로 치면 큰 고속도로이다
: BGP에서 다중 인터페이스 AS 관리자는 횡단 트래피을 처리하는 조건을 명시하는 라우팅 정책을 정할 수 있음
- RIB (BGP 라우팅 정보 기반)
: BGP 스피커가 제대로 동작하기 위해선 라우팅의 정보의 저장, 갱신, 선택, 광고가 필요함
: 그때 사용하는 중앙 데이터 구조를 RIB라고 함
: RIB 는 세 부분으로 나뉨
- Adj-RIBs-In : 피어 BGP 스피커에서 받은 경로 정보를 보관하는 입력 데이터베이스 부분
- Loc-RIB: : 로컬 RIB, BGP 장비가 유효하다고 판단하여 선택한 경로에 대한 정보를 저장하는 중요 데이터베이스
- Adj-RIBs-Out : BGP 장비가 다른 피어에게 알리기로 결정한 경로에 대한 정보를 보관하는 출력 데이터베이스 부분
: 이러한 과정을 BGP 결정 과정이라고 부름
- BGP 결정 과정 (decision process)
: 결정과정은 세 단계로 이루어짐
- 1단계 : BGP 스피커는 주변 AS에 있는 BGP 스피커가 보낸 경로를 분석하여 선호도를 할당함, 그 후 각 네트워크에 대한 최적 경로에 따라 순위를 매김
- 2단계 : BGP 스피커는 입력 정보에서 목적지로 가는 가장 좋은 경로를 선호도에 따라 선택, 선택한 정보로 로컬 라우팅 정보 기반(Loc-RIB)을 갱신함
- 3단계 : Loc-RIB에 있는 경로를 선택하여 다른 AS에 있는 주변 노드 BGP 스피커에게 전송함
- 경로에 선호도를 할당하는 법칙
: 라우터와 목적지 네트워크까지 가는 동안 거쳐야 하는 AS의 수 (적을수록 좋음)
: 경로를 사용할 수 없게 하는 특정 정책의 존재 여부, 예를 들어 BGP 스피커나 데이터를 신뢰하지 않는 경우 통과 X
: 경로의 생성지(경로를 어디서 얻었는지)
: BGP는 외부 라우팅 프로토콜이기 때문에 AS 수준에서 작동함
: BGP의 경로는 AS 간의 경로를 계산하지 내부의 라우터를 결정은 X
: BGP는 내부 라우터 구조를 모르기 때문에 데이터그램이 AS를 지나는데 비용을 알 수 없음
: 결국 BGP는 가장 낮은 비용이 드는 경로를 선택한다고 보장할 수 없음