[TCP/IP Protocol #11] Part 2 | Chapter 11. 유니캐스트 라우팅 프로토콜(RIP, OSPF and BGP)
유니캐스트 라우팅 프로토콜1(거리 벡터 RIP, 링크 상태 OSPF)
RIP(Routing Information Protocol): 거리 벡터 프로토콜
OSPF(Open Shortest Path First): 링크 상태 프로토콜
BGP(Border Gateway Protocol): 경로 벡터 프로토콜
3. 경로 벡터 라우팅
거리 벡터와 링크 상태 라우팅은 모두 도메인 내부 라우팅 프로토콜이다. 하지만 이 두 프로토콜은 확장성으로 인해 도메인 간 라우팅에는 대부분 적합하지 않다.
- 거리 벡터 라우팅은 동작하는 도메인에 수 홉 이상이 존재하게 되면 불안정해질 수 있다.
- 링크 상태 라우팅은 라우팅 테이블을 계산하기 위해 아주 많은 양의 자원을 필요로 한다. + 플러딩으로 인해 많은 트래픽을 유발할 수도 있다.
* 플러딩: 모든 다른 라우터로 효과적이며 안전한 방법으로 LSP들을 발송하는 것
→ 제 3의 라우팅 프로토콜이 필요, 이것이 경로 벡터 라우팅(path vector routing)
경로 벡터 라우팅의 원리는 거리 벡터 라우팅과 유사하다.(각 자율 시스템에 하나의 스피커 노드만이 다른 것들과 통신할 수 있다는 것을 제외하고는)
자율 시스템 내에 있는 하나의 노드를 스피커 노드(speaker node)라고 부른다.
(다른 AS들에 정보를 제공하기 위해 각 AS는 그 AS에 있는 각 망의 도달 가능성 정보를 모으는 적어도 하나의 경로 벡터 라우팅을 가져야만 한다.)
BGP
경계 게이트웨이 프로토콜(BGP: Border Gateway Protocol), 자율 시스템 간의 라우팅 프로토콜
자율 시스템의 유형
인터넷은 자율 시스템이라고 불리는 계층적 도메인으로 나뉜다.
3개의 범주로 나눌 수 있음: 스터브, 멀티홈, 경유(transit) 시스템
스터브 AS
Stub AS, 다른 자율 시스템과 단 하나의 연결만을 가진다.
스터브 AS 내의 도메인 간 데이터 트래픽은 AS 내에서 생성되거나 사라질 수 있다. 그러나 데이터 트래픽은 스터브 AS를 통해 지나갈 수는 없다. 스터브 AS는 송신자 이거나 수신자 일 수 있다.
멀티홈 AS
Multihomed AS, 다른 자율 시스템과 하나 이상의 연결을 가진다.
하나의 자율 시스템에서 다른 시스템으로 지나가는 트래픽은 허용되지 않고, 데이터 트래픽의 송신자나 수신자만 될 수 있다.
e.g., 지나가는 트래픽을 허용하지 않는 하나 이상의 지역혹은 국가 AS에 연결된 큰 조직이 될 수 있다.
경유 AS
지나가는 트래픽을 허용하는 멀티홈 AS
e.g., 국가 혹은 국제 ISP(인터넷 백본)
CIDR
BGP는 클래스 없는 도메인 간 라우팅 어드레스(CIDR)을 사용한다.
경로 속성
경로는 자율 시스템의 목록으로 표현되었지만 사실은 속성(attributes)들의 목록이라고 할 수 있다.
각 속성은 경로에 대한 정보를 제공한다.
속성들은 두 개의 큰 영역으로 나뉜다. 하나는 잘 알려진 것이고 하나는 옵션이다.
1) 잘 알려진 속성들: 모든 BGP 라우터가 반드시 인식해야만 하는 것들
- 필수 속성: 경로를 기술하는 데 반드시 있어야 한다.
(e.g., ORIGIN: 경로 정보(RIP, OSPF 등)를 제공하는 발신지를 나타낸다.
AS_PATH: 목적지에 도달하기 위해 거쳐야 하는 자율 시스템의 목록
NEXT-HOP: 데이터 패킷이 보내져야 할 다음 라우터
- 임의(discretionary) 속성: 각 라우터가 반드시 인식할 수 있어야 하나 모든 갱신 메시지에 포함되지 않아도 되는 것
2) 선택적인 속성들(옵션): 모든 라우터에서 인식될 필요는 없는 것들
- 천이(transitive): 이 라우터가 이 속성을 지원하지 않더라도 다음 라우터로 전달되어야만 하는 것
- 비천이(nontransitive): 수신한 라우터가 이 속성을 지원하지 않으면 버려지는 것
BGP 세션
BGP를 사용해서 두 라우터 간 라우팅 정보를 교환하는 것은 세션에서 일어난다.
세션은 라우팅 정보를 교환하기 위해서만 두 BGP 라우터들 간에 설정되는 연결이다.
신뢰성 있는 환경을 만들기 위해 BGP는 TCP 서비스를 사용한다. 그러나 BGP를 위해 만들어진 TCP 연결은 다른 응용 프로그램에서와는 다른 약간의 차이가 있다. BGP를 위해 TCP 연결이 만들어지면 무언가 일반적이지 않은 일이 발생하기 전까지 오랜 시간 동안 유지된다.
→ BGP 세션은 반영구적 연결이라고도 불린다.
외부 및 내부 BGP
BGP에는 두 가지 종류의 세션이 있다.
1) 외부(external) BGP(E-BGP) 세션: 서로 다른 자율 시스템에 속하는 두 스피커 노드들 간에 정보 교환을 위해 사용된다.
- 두 스피커 라우터들은 인터넷에 있는 네트워크에 관해 자신이 아는 정보를 교환한다.
e.g., AS1과 AS2 사이에 설정된 세션
2) 내부(internal) BGP(I-BGP) 세션: 자율 시스템 내의 두 라우터 간에 정보 교환을 위해 사용된다.
- 스피커 라우터들이 자율 시스템 내의 다른 라우터로부터 정보를 수집하기 위해 필요하다.
패킷 형식
4가지 패킷 종류: open, update, keepalive, notification
개방(Open) 메시지
BGP가 동작중인 라우터가 이웃 관계를 생성하기 위해서는 그 이웃과 TCP 연결을 열고 개방 메시지를 전송한다.
이웃 관계를 받아들이면 두 라우터 간 이웃 관계가 성립되었다는 뜻으로 킵얼라이브(keepalive) 메시지를 보내게 된다.
- 필드: BGP 버전(현재는 4), 자율 시스템 번호, 유지 시간, BGP 식별자(개방 메시지를 전송한 라우터), 선택 매개 변수들 및 길이
갱신(Update) 메시지
BGP 프로토콜의 중심, 라우터로 하여금 전에 광고된 목적지를 취소하거나 새로운 목적지로의 경로를 알리는 데 사용된다.
- 필드: 불가능 경로 길이(다음 필드의 길이), 취소된 경로(광고된 목록 중에서 삭제되어야 하는 모든 경로를 나열), 경로 속성 및 길이(도달 가능한 네트워크까지의 경로에 대한 속성), 네트워크 계층 도달 가능 정보
킵얼라이브(Keepalive) 메시지
BGP가 동작되는 라우터들은 상대방에게 자신들이 살아있음을 알리기 위해 유지 시간이 만료되기 전에 정기적으로 킵얼라이브 메시지를 교환한다.
- 필드: 공통 헤더만으로 구성됨
통지(Notification) 메시지
오류 상황이 감지되거나 연결을 닫기 원할 때 라우터에 의해 전송된다.
- 필드; 오류 코드, 오류 서브 코드(유형), 오류 데이터
캡슐화
BGP 메시지는 잘 알려진 포트 179를 사용하여 TCP 세그먼트에 캡슐화된다. 이는 오류 제어나 흐름 제어가 필요하지 않음을 의미한다.
TCP 연결이 개설되면 종료(cease) 유형의 통지(notification) 메시지가 전송될 때까지 갱신, 킵얼라이브, 통지 메시지의 교환이 게속된다.
Reference
Behrouz A. Forouzan (2009), TCP/IP 프로토콜(Protoccol Suite), 4th Edition
'Networking > Network' 카테고리의 다른 글
보안 그룹과 네트워크 ACL(Stateful vs Stateless) (0) | 2024.02.12 |
---|---|
UDP/TCP - 3-4단계 핸드셰이크 (1) | 2024.02.11 |
유니캐스트 라우팅 프로토콜1 - IGP (거리 벡터 RIP, 링크 상태 OSPF) (1) | 2024.02.10 |
로드 밸런싱(ELB 부하 분산) - 배경, 정의, 종류, 통신 방식, 특징 (1) | 2024.02.10 |
웹 브라우저에 URL을 입력하면 어떤 일이 생길까? (0) | 2024.02.07 |