우리는 앞선 포스트를 통해 intra-AS routing 방법인 RIP와 OSPF에 대해 학습하였다.
RIP와 OSPF는 도메인 내에서 패킷을 전달할 수 있는 최단경로를 찾는다.
Inter-AS routing: BGP
BGP는 Border Gateway Protocol의 약어로 inter domain routing protocol, 즉 도메인 간의 라우팅 프로토콜이다. 예를 들어 충남대 <-> KT, KT <-> SKT 브로드밴드 등과 같다. 이때, 외부 인터넷과 연결되는 사이 라우터를 Gateway라고 한다.
BGP 프로토콜은 아래와 같이 두 가지로 나뉜다.
- eBGP
eBGP는 external BGP로 외부 라우터와 subnet reachability information을 전달받는다. 따라서 외부와 연결되어 있다.
- iBGP
iBGP는 internal BGP로 AS 내부 라우터들에게 reachability information을 전달한다.
이러한 BGP는 패킷을 전달할 때 어떠한 기준을 통해 전달하는데, 이러한 기준을 정책이라고 한다. 예를 들어 다익스트라 알고리즘을 통해 최단 경로를 찾아가는 것도 정책이라고 할 수 있고. 대역폭이 큰 곳을 우선적으로 가겠다고 하는 것도, 특정 라우터(예를 들면 KT 라우터)를 꼭 거쳐가야 한다는 것도 정책이라고 할 수 있다.
BGP 기초
BGP는 전송 계층에서 TCP를 사용하여 데이터를 주고 받는데, 이때 목적지에 대한 경로 정보를 광고한다.(advertisionn paths)
위 사진을 통해 BGP의 과정을 알아보자
3개의 AS를 가지는 네트워크에서 AS3이 X로 향하는 패킷을 가지고 있다.
이때 eBGP인 3a가 AS 2의 2c에게 "AS3, X"라는 eBGP 메세지를 전송한다.
2c는 AS 2에 존재하는 모든 라우터에게 "AS3, X"라는 iBGP 메세지를 뿌린다.(advertisement)
2a는 AS 1의 1c에게 "AS 2, AS 3, X"라는 eBGP 메세지를 전송한다.
마찬가지로 1c는 AS 1에 존재하는 모든 라우터에게 "AS 2, AS 3, X"라는 iBGP 메세지를 뿌린다.
이때, 3a, 2c, 2a, 1c는 모두 gateway 라우터이다.
위의 과정을 거친 그림은 아래와 같다.
BGP는 경로를 prefix + atttribute 형태로 알려준다.
- prefix: 전달되는 목적지 IP 주소
- AS-PATH: prefix 전달을 통해 만들어진 AS 리스트
- NEXT-HOP: 다음 AS로 향하는 라우터의 주소
위와 같은 경로 형태를 path vector이라고 하며, 따라서 BGP는 path vector protocol이라고 할 수 있다.
앞서 언급했듯이 BGP는 정책 기반 라우팅이다. 이러한 정책을 여러 개를 설정할 수도 있다.
위 사진은 실시간 BGP 정보를 보여준다.
BGP message
BGP는 TCP 소켓과 동일하게 소켓을 통해 연결을 생성한 후 TCP 연결 위에서 메세지를 주고 받는 형식을 이용한다. 이때, 인코딩 방식은 바이너리로 통일하였다.
BGP 메세지의 종류는 아래와 같다.
- OPEN: 원격 BGP 피어에 대한 TCP 연결을 열고 BGP 피어 전송을 인증한다.
- UPDATE: 새로운 경로를 광고하여 뿌리거나, 이전 경로를 삭제한다.
- KEEPALIVE: TCP는 연결이 끝나면 사라지기 때문에 업데이트가 진행되지 않아도 연결을 유지한다. OPEN 또는 ACK 신호를 요청한다.
- NOTIFICATION: 이전 메시지의 오류를 알려준다. 연결을 닫는 데에도 사용된다.
BGP 경로 선택 방법
BGP 프로토콜은 아래와 같은 정책으로 경로를 선택한다.
1. 큰 weight(우선순위) 값의 경로
2. 큰 local preference value attribute: policy decision (통신사와 같이 로컬의 기본값)
3. 가장 짧은 AS-PATH (짧은 거리의 대역폭이 좁을 것 같지만 그렇지 않은 경우도 많다)
4. closest NEXT-HOP router: hot potato routing
5. MED(multi-exit discriminator) 값이 낮은 경로
+) MED: 다른 AS가 특정 접두사에 도달하기 위해 AS를 입력하는 방식에 영향을 미치는 것
BGP와 CIDR
CIDR 방식을 통해 IP 주소를 나타내면 훨씬 간결하게 표현이 가능하다.
참고 및 출처
https://www.nowwatersblog.com/cs/%EC%BB%B4%ED%93%A8%ED%84%B0%EB%A7%9D/5.%20Network%20Layer
https://www.juniper.net/documentation/kr/ko/software/junos/bgp/topics/topic-map/med-attribute.html
'Computer Science > 컴퓨터네트워크(ComNet)' 카테고리의 다른 글
[컴네/CN] 암호통신: 대칭키, 공개키 (1) | 2023.12.09 |
---|---|
[컴네/CN] 전송 계층 보안, TLS (1) | 2023.12.07 |
[컴네/CN] IP Routing: RIP, OSPF (2) | 2023.12.07 |
[컴네/CN] IP Routing (1) | 2023.12.07 |
[컴네/CN] NAT 공유기 개요 (0) | 2023.12.06 |