wanna be dev 🧑‍💻

Cool 하고 Sick한 개발자가 되고 싶은 uzun입니다

A.K.A. Kick-snare, hyjhyj0901, h_uz99 solvedac-logo

Computer Science/Computer Network

📡 [Network] 경계 게이트웨이 프로토콜 BGP(Border Gateway Protocol)란? 뜨거운 감자 라우팅 (Hot Patato Routing)

Kick_snare 2022. 12. 12. 04:37
728x90

본 포스팅은 < 컴퓨터 네트워킹 하향식 접근[8판] James F. Kurose, Keith W. Ross 저/최종원, 강현국, 김기태 > 을 참고하여 작성되었습니다.

 

4. Routing among ISPs

BGP (Border Gateway Protocol)

OSPF는 AS 내부의 프로토콜이다. 그러나 패킷이 여러 AS를 통과하도록 라우팅 할 때 AS 간 라우팅 프로토콜이 필요할 것이다. 실제로 인터넷 의 모든 AS는 경계 게이트웨이 프로토콜(Border Gateway Protocol)이라고 불리는 동일한 AS 간 라우팅 프로토콜을 가용한다. 이를 일반적으로 BGP라고 한다.

사실상 인터 도메인 프로토콜의 표준이며 이는 모든 라우터에서 동작해야한다. 굉장히 복잡하지만 인터넷의 동작을 좀 더 깊은 수준까지 이해하기 위해서는 그 토대와 동작방식에 익숙해여야 할 것이다.

 

두 종류의 BGP 프로토콜 (eBGP, iBGP)

  • eBGP (external BGP) : AS간 BGP연결
    • 이웃 AS로부터 서브넷 도달 가능성 (reachability) 정보를 확보
  • iBGP (internal BGP) : AS내 BGP연결
    • 같은 AS내 라우터 간 도달 가능성 정보 전파

BGP의 역할

앞서 배운대로라면 같은 AS내에 있는 목적지에 대해서는 라우터의 포워딩 테이블 엔트리들은 내부 라우팅 프로토콜에 의해 결정된다. 그렇다면 목적지가 AS 외부에 있다면? 이때 BGP가 필요하다.

BGP에서는 패킷이 특정한 목적지 주소를 향해서가 아니라 CIDR(Classless Inter-Domain Routing) 형식으로 표현된, 주소의 앞쪽 prefix를 향해 전달된다.

AS 간 라우팅 프로토콜로서 BGP는 각 라우터에게 다음과 같은 수단을 제공한다.

  1. 이웃 AS를 통해 도달 가능한 서브넷 프리픽스 정보를 얻는다. BGP로 인해 각 서브넷에게 자신의 존재를 알린다.
  2. 서브넷 주소 프리픽스로의 가장 좋은 경로를 결정한다. 이를 위해 라우터는 BGP의 경로 결정 프로시저를 수행하게 된다.

 

BGP의 기본동작 : 경로 정보 알리기

위 그림과 같이 이 단순한 네트워크는 3개의 AS를 가진다. AS3에서는 주소 프리픽스가 x인 서브넷을 포함하고 있다. 각 AS에 포함된 라우터들은 게이트웨어 라우터 또는 내부 라우터인데 게이트 웨이 라우터는 AS의 경계에 위치한 라우터를 뜻한다. 위 그림의 경우 1c, 2a, 2c, 3a 등이다.

프리픽스 x에 대한 도달 가능성 정보를 AS1과 AS2의 모든 라우터에게 알리는 경우를 생각해보자.

  1. 3a는 2c에게 “AS3, x” 라는 eBGP 메세지를 보낸다.
  2. 게이트웨이 라우터 2c는 iBGP 메세지 “AS3 x”를 AS2 내 모든 라우터에게 전송한다.
  3. 2a는 1c에게 eBGP 메세지 “AS2 AS3 x”를 전달하게 된다.
  4. 마지막으로 1c는 iBGP 메세지 “AS2 AS3 X”를 AS1내의 모든 라우터에게 전송한다.

이 과정이 완료되면 AS1과 AS2의 모든 라우터는 x의 존재와 x로 향하는 AS 경로를 알게된다.

 

BGP 경로 설정하기

실제 네트워크에서는 목적지 까지 다른 많은 경로가 존재할 수 있고, 심지어 각기 다른 AS를 통과하기도 한다. 이런 경로들 중에서 라우터는 어떻게 선택을 해야하는가?

라우터가 BGP 연결을 통해 프리픽스를 알릴 때 몇몇 속성들을 포함한다.

  • AS-PATH : 알림 메세지가 통과하는 AS들의 리스트
  • NEXT-HOP : AS-PATH가 시작되는 라우터 인터페이스의 IP 주소

1c는 두 가지로 경로로 AS를 횡단할 수 있다. 만약 내부 정책에 따라 AS3로 가는 eBGP를 선택한다면 이를 내부 라우터에 전파한다.
1c에서 iBGP 메세지를 받은 1d의 포워딩 테이블을 살펴보자

x로 갈려면 포트 1로 가야할 것이다.

 

뜨거운 감자 라우팅 (Hot potato routing)

2d는 X로 두가지 경로를 통해 갈 수 있다.

  1. AS1, AS3를 거치는 방법
  2. AS3를 거치는 방법

둘 중 하나가 먼저 도착하고 나머지가 도착한다면 라우터는 한 가지를 선택해야한다.

이 때 뜨거운 감자 라우팅 방법은 경로 각각의 시작점인 NEXT-HOP 라우터인 2a와 3d 에 대해 최소 비용 중 가장 적은 비용을 가진 경로를 단순히 선택한다. 위에서는 201 < 283 이므로 2a를 선택할 것이다.

 

BGP : 아카이빙 정책

A는 w가 자신에게 있다고 B와 C에게 알린다. 그리고 B는 이웃들에게 BGP 메세지를 알리는데 C에게 알릴 필요가 있을까? 그렇지 않다. 동일한 계급의 ISP 끼리는 상호 패킷을 알리지 않는다. (교수님 왈 국제적 국룰이라고 함)

BGP 경로 선택 알고리즘

  1. 정책 메트릭인 지역 선호도를 활용, 최고 지역 선호값을 가진 AS로의 경로 선택
  2. 최고 지역 선호값을 가진 경로가 여러 개 있다면 이 중 가장 짧은 AS-PATH 를 가진 경로 선택
  3. 최고 지역 선호값 및 AS-PATH 길이를 가진 모든 남은 경로에 대해 뜨거운 감자 라우팅 (by OSPF)
728x90