5.4 인터넷 서비스 제공업자(ISP) 간의 라우팅: BGP

ㄱㅇㅁ·2024년 4월 16일

네트워크

목록 보기
15/20
  • 동일한 AS 내에 있는 출발지와 목적지 사이에서 패킷을 라우팅할 때, 패킷이 전송되는 경로는 AS 내부 라우팅 프로토콜에 의해 결정
  • 패킷이 여러 AS를 통과하도록 라우팅 할 때는 자율 시스템 간 라우팅 프로토콜이 필요
  • 모든 AS들은 경계 게이트웨이 프로토콜(Border Gateway Protocol, BGP)이라는 라우팅 프로토콜을 사용
    • BGP는 수천 개의 ISP들을 연결하는 프로토콜
    • 분산형 비동기식 프로토콜

1. BGP의 역할

  • 목적지가 AS 외부에 있는 경우에 필요
  • 패킷이 특정한 목적지 주소를 향해서가 아니라 CIDR(Classless In-ter-Domain Routing) 형식으로 표현된, 주소의 앞쪽 접두부(prefix)를 향해 포워딩됨
    • prefix는 서브넷이나 서브넷의 집합

AS 간 라우칭 프로토콜로서 BGP가 라우터에게 제공하는 수단

  1. 이웃 AS로부터 도달 가능한 서브넷 접두부 정보를 얻음
  • 각 서브넷이 자신의 존재를 인터넷 전체에 알릴 수 있도록 함
  1. 서브넷 주소 접두부로의 "가장 좋은" 경로를 결정
  • 라우터는 BGP의 경로 결정 프로시저를 수행

2. BGP 경로 정보 알리기

  • 각 AS에서 각각의 라우터들은 게이트웨이 라우터 또는 내부 라우터
    • 게이트웨이 라우터: AS 경계에 있는 라우터로서 다른 AS들에 있는 하나 또는 여러 개의 라우터와 직접 연결됨 (ex. 1c)
    • 내부 라우터: 자신의 AS 내에 있는 호스트 및 라우터와만 연결 (ex. 1a)

BGP 연결(BGP connection)

  • BGP에서 라우터의 쌍들은 포트 번호가 179이고 반영구적인 TCP 연결을 통해 라우팅 정보를 교환
  • 이 TCP 연결을 통해 모든 BGP 메시지가 전송

외부 BGP (external BCP, eBGP) 연결

  • 2개의 AS에 걸친 BGP 연결

내부 BGP (internal BGP, iBGP) 연결

  • 같은 AS 내의 라우터 간 BGP 연결

  • 보통 서로 다른 AS에 속하는 게이트웨이 라우터들을 직접 연결하는 링크에는 eBGP 연결이 존재
  • 각각의 AS 내부 라우터 간에는 iBGP 연결이 존재
  • iBGP 연결은 물리적인 링크와 항상 일치하지는 않음
  • 도달 가능성 정보를 전파하기 위해서는 iBGP, eBGP 모두 사용

3. 최고의 경로 설정

  • 주어진 라우터에서 목적지 서브넷까지 많은 경로가 있을 때

용어

  • 라우터가 BGP 연결을 통해 주소 prefix를 알릴 때 몇몇 BGP 속성(attribute)을 함께 포함함
  • BGP의 용어로서의 경로(route)는 주소 prefix와 그 속성을 함께 말함

중요한 속성 2가지

  1. AS-PATH
  • 알림 메시지를 통과하는 AS들의 리스트를 담음
  • 메시지의 루프를 감지하고 방지하기 위해 활용
  1. NEXT-HOP
  • AS-PATH를 시작하는 라우터 인터페이스의 IP 주소

예시

  • AS1에서 AS2를 통과하여 x로 가는 ‘AS2 AS3 x’ 경로의 NEXT-HOP 속성은 라우터 2a의 왼쪽 인터페이스의 IP 주소
  • AS1에서 AS2를 우회하여 x로 가는 ‘AS3 x’ 경로의 NEXT-HOP 속성은 라우터 3d의 맨 왼쪽 인터페이스의 IP 주소
    -> AS1의 각 라우터는 프리픽스 x로 가는 2개의 BGP 경로를 알게 됨

    라우터 2a의 맨 왼쪽 인터페이스의 IP 주소; AS2 AS3; x
    라우터 3d의 맨 왼쪽 인터페이스의 IP 주소; AS3; x

뜨거운 감자 라우팅(Hot Potato Routing)

(가능한 모든 경로 중에서) 경로 각각의 시작점인 NEXT-HOP 라우터까지의 경로 비용이 최소가 되는 경로 선택

라우터 포워딩 테이블에 AS 외부의 목적지를 추가하는 과정

  1. 여러 게이트웨이를 통해 서브넷 x에 도달할 수 있다는 사실을 AS 간 프로토콜로부터 알게 됨
  2. 각 게이트웨이까지의 최소 비용 경로를 정하기 위해 AS 내부 프로토콜을 통해 얻은 라우팅 정보를 이용함
  3. 뜨거운 감자 라우팅: 가장 적은 비용의 게이트웨이를 선택
  4. 포워딩 테이블로부터 최소 비용 게이트웨이로의 인터페이스 I를 결정한 후 포워딩 테이블에 (x, I)를 추가
  • 전체 경로 중에서 오로지 자신의 AS 내부 비용만 줄이려는 이기적인 알고리즘
  • 한 AS 내 2개의 라우터가 동일한 목적지 주소에 대해 각기 다른 AS 경로를 선택할 수도 있음

경로 선택 알고리즘

  • 실제 BGP는 뜨거운감자 라우팅을 포함하는 더 복잡한 알고리즘을 사용
  • 하나의 목적지에 대해 2개 이상의 경로가 존재한다면 BGP는 하나의 경로가 남을 때까지 다음의 제거 규칙을 계속 수행
  1. 지역 선호도(local prefer-ence) 가 경로에 할당되고 가장 높은 지역 선호 값을 가진 경로가 선택됨
  2. 최고 지역 선호 값을 가진 경로가 여러 개 있다면 이들 중에서 최단 AS-PATH를 가진 경로가 선택됨
    • 만약 이 규칙이 경로 선택을 위한 유일한 규칙이라면, BGP는 경로 결정을 위해 DV 알고리즘을 사용하고, 여기서 거릿값으로는 AS 홉 수를 사용함
  3. (같은 최고 지역 선호 값 및 같은 AS-PATH 길이를 가진) 모든 남은 경로들에 대해 뜨거운 감자 라우팅을 수행하여 NEXT-HOP 라우터까지의 거리가 가장 가까운 경로가 선택
  4. 만일 아직도 하나보다 많은 경로가 남아 있다면 라우터는 BGP 식별자를 사용하여 경로를 선택

4. IP 애니캐스트(anycast)

  • BGP는 AS 간 라우팅 외에도 IP 애니캐스트 서비스를 구현하는 데 활용됨
  • 많은 애플리케이션에서 (1) 같은 콘텐츠를 지리적으로 분산된 다른 많은 서버에 복제하고, (2) 각 사용자를 가장 가까운 서버의 콘텐츠로 접근하게 하려고 하는 경우 복제된 컨텐츠를 가진 가장 가까운 서버를 알려주는 것이 바람직함
  1. IP 애니캐스트 설정 단계에서 CDN 사업자가 자신의 서버 여러 대에 동일한 IP 주소를 할당하고 표준 BGP를 활용하여 이 주소를 서버 각각으로부터 알림
  2. 각 라우터는 라우팅 테이블을 설정하면서 BGP 경로 선택 알고리즘을 수행하여 해당 IP 주소로의 최고의 경로를 골라냄
  3. 이러한 최초의 BGP 주소 알림 단계 이후에 CDN는 콘텐츠 배포를 할 수 있음
  4. 사용자가 비디오를 요청하면 CDN은 사용자가 어디에 위치해 있든 상관없이 지리적으로 분산되어 있는 서버들이 공통적으로 사용하는 IP 주소를 사용자에게 돌려줌
  5. 사용자가 그 주소로 요청을 보내면 인터넷 라우터는 그 요청 패킷을 BGP 경로 선택 알고리즘이 정의한 가장 ‘가까운’ 서버로 전달함

5. 라우팅 정책

  • AS 라우팅 정책은 최단 AS-PATH나 뜨거운 감자 라우팅 같은 모든 고려사항보다 우선시됨
  • W,X,Y: 사용자 접속 ISP
  • A,B,C: 백본 제공자 네트워크 라고 가정

    ISP 접속 네트워크로 들어오는 모든 트래픽은 그 네트워크를 목적지로 해야만 하고, ISP 접속 네트워크에서 나가는 트래픽은 그 네트워크 안에서 생성된 것이어야만 함

  • W,Y: 액세스 ISP
  • X: 서로 다른 두 제공자를 통해 네트워크의 다른 부분들과 연결되어 있으므로 다중 홈 액세스 ISP
    • X는 이웃인 B와 C에게 자기 자신을 제외하고는 다른 어떤 목적지로도 경로가 없다고 알림으로써 액세스 ISP의 역할을 함

  • 백본 ISP 사이의 경로 결정 방법에 대한 표준은 없지만, ISP 백본 네트워크를 통해 흐르는 트래픽은 해당 ISP의 고객 네트워크를 출발지로 하거나 목적지로 해야 하는 것이 대략적인 규칙

6. 조각 맞추기: 인터넷에서의 존재 획득

  • 공개 웹서버, 메일 서버, DNS 서버를 포함한 많은 서버들이 있다고 가정
  1. 지역 ISP와 계약하여 인터넷 연결을 해야함
  • 지역 ISP는 특정 범위의 IP 주소를 제공
  • 물리적 연결, IP 주소 범위를 가지면 서버 및 네트워킹 장치들에 IP 주소를 할당
  1. 회사의 도메인 이름을 얻기 위해 인터넷 등록 기관과 계약해야 함
  2. 웹 서버 IP 주소를 검색할 수 있도록 DNS 서버에 웹서버의 호스트 이름과 IP 주소의 사상 항목을 포함시켜야 함
  3. 전 세계의 외부인이 웹 서버에 접근하기 위해서는 라우터가 BGP를 통해 IP 주소 접두부 24 비트를 알고 있어야 함

0개의 댓글