본문 바로가기
Computer Science/Computer Networking

[Computer Networking] Network Layer : BGP (ISP 간의 라우팅)

by __K.Jun__ 2025. 1. 4.

BGP (Border Gateway Protocol)

  AS 간 라우팅 프로토콜(Inter-AS Routing Protocol)은 여러 AS 간의 협력이 수반되므로 통신하는 AS들은 같은 AS 간 라우팅 프로토콜을 수행해야만 한다. 실제로 인터넷의 모든 AS는 경계 게이트웨이 프로토콜(Border Gateway Protocol, BGP)이라고 부리는 동일한 AS 간 라우팅 프로토콜을 사용한다.

 

BGP의 역할

  어떤 AS와 그 AS내의 임의의 라우터를 가정해보자. 모든 라우터는 포워딩 테이블을 갖고있고 이는 도착한 패킷을 출력 링크로 내보내는 과정에서 중추적인 역할을 한다. 같은 AS 내에 있는 목적지에 대해서는 라우터의 포워딩 테이블 엔트리들이 해당 AS의 AS 내부 라우팅 프로토콜에 의해 결정된다. 목적지가 AS 외부에 있는 경우에는 BGP가 필요하다.

  

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

1. 이웃 AS를 통해 도달 가능한 서브넷 프리픽스 정보를 얻는다. 특히 BGP는 각 서브넷이 자신의 존재를 인터넷 전체에 알릴 수 있도록 한다.

2. 서브넷 주소 프리픽스로의 가장 좋은 경로를 결정한다. 라우터는 특정한 주소 프리픽스를 향한 2개 이상의 경로를 알 수도 있다. 가장 좋은 경로를 결정하기 위해 라우터는 BGP의 경로 결정 프로시저를 수행한다.

 

BGP 경로 정보 알리기

Gateway router: AS의 경계에 있는 라우터로서 다른 AS들에 있는 하나 또는 여러 개의 라우터와 직접 연결된다.

BGP connection: BGP에서 라우터의 쌍들은 포트 번호가 179이고 반영구적인 TCP 연결을 통해 라우팅 정보를 교환한다. 이 TCP 연결을 통해 모든 BGP 메시기자 전송되는데 이 연결을 BGP connection이라고 한다.

eBGP(external BGP): 2개의 AS를 연결하는 BGP 연결

iBGP(internal BGP): 같은 AS 내의 라우터 간 BGP 연결

 

최고의 경로 결정

  라우터가 BGP connection을 통해 주소 프리픽스를 알릴 때 몇몇 BGP attribute를 함께 포함한다. BGP의 용어로는 prefix와 그것의 attiribute를 route라고 한다. 특히 중요한 attribute 두 가지는 AS-PATH와 NEXT-HOP이다.

AS-PATH: 알림 메시지가 통과하는 AS들의 리스트. 메시지의 루프를 감지하고 방지하기 위해 활용된다.

NEXT-HOP: AS-PATH가 시작되는 라우터 인터페이스의 IP 주소.

 

 

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

  2d에 있는 패킷을 2a 또는 2c로 포워딩 되어 X에 도달할 수 있다. 이 때, 2d는 당장의 비용이 더 적게 드는 2a로 가는 방법을 선택한다. 비록 그 길을 선택했을 때 hop의 수는 더 많아도 말이다.

  뜨거운 감자 라우팅에 깔려있는 기본 아이디어는 라우터 2d가 목적지까지의 경로 중 자신의 AS 바깥에 있는 부분에 대한 비용은 신경 쓰지 않고 최대한 신속하게(좀 더 정확하게는, 가능한 한 최소의 비용으로) 패킷을 자신의 AS 밖으로 내보내는 것이다. '뜨거운 감자 라우팅'이라는 이름은 패킷을 손 위에서 불타고 있는 뜨거운 감자에 비유한 것이다. 감자가 너무 뜨겁기 때문에 그것을 되도록 빨리 다른 사람에게 건네주기를 원한다. 그러므로 뜨거운 감자 라우팅은 전체 경로 중에서 자기 AS 외부에서 얼마의 비용이 들지는 신경 쓰지 않고 오로지 자신의 AS 내부 비용만 줄이려는 이기적인 알고리즘이다.

 

라우팅 정책

  라우터가 목적지까지의 경로를 선택하려 할 때 AS 라우팅 정책은 최단 AS-PATH나 뜨거운 감자 라우팅 등의 다른 모든 고려사항보다 우선시 된다.

 

다음과 같은 정책이 있을 수 있다.

1. A가 B와 C에게 경로 Aw를 알린다.

2. B는 C에게 BAw 경로를 알리지 않는다(C는 CBAw 경로를 알지 않게 된다). 왜냐하면 C, A, w는 B의 customer network가 아니기 때문이다.

3. C는 B를 거치지 않고 CAw 라우팅으로 w에 도달한다.

728x90