[Daily morning study] BGP와 인터넷 라우팅 동작 방식

#daily morning study

Image


BGP란?

BGP(Border Gateway Protocol)는 인터넷을 구성하는 자율 시스템(AS, Autonomous System) 간의 라우팅 정보를 교환하는 프로토콜이다. 현재 버전은 BGP-4이며, RFC 4271에 정의되어 있다.

인터넷은 수만 개의 AS로 이루어져 있고, 각 AS는 고유한 번호(ASN, Autonomous System Number)를 갖는다. ISP, 대형 기업, 데이터센터, CDN 사업자 등이 각자의 AS를 운영한다.

BGP는 EGP(Exterior Gateway Protocol)로, AS 간 경로를 결정하는 데 사용된다. AS 내부에서는 OSPF, IS-IS 같은 IGP(Interior Gateway Protocol)를 사용한다.


AS(Autonomous System)

AS는 단일 관리 주체(기업, ISP 등)가 동일한 라우팅 정책 아래 운영하는 IP 네트워크의 집합이다.

  • ASN: 16비트(1~65535) 또는 32비트(4바이트) 번호. IANA가 RIR을 통해 할당한다.
  • 공인 ASN 범위: 1~64511(16비트), 131072~4199999999(32비트)
  • 사설 ASN: 64512~65534(16비트), 테스트나 내부 목적
AS64496 (KT)  ----  AS15169 (Google)  ----  AS32934 (Meta)

eBGP vs iBGP

구분eBGPiBGP
적용 범위서로 다른 AS 간동일 AS 내부
TTL기본값 1 (직접 연결 필요)255
Next-hop 변경변경함변경 안 함
Full-mesh 요건없음원칙적으로 full-mesh 또는 RR 필요

iBGP는 AS 내부에서 외부 라우팅 정보를 전파하기 위해 쓰인다. iBGP 피어 간에는 루프 방지를 위해 next-hop 수정 없이 경로를 그대로 전달하므로, IGP가 next-hop 주소까지의 경로를 알고 있어야 한다.

Route Reflector(RR): iBGP full-mesh의 확장성 문제를 해결하기 위해 도입. RR은 클라이언트로부터 받은 경로를 다른 클라이언트에게 반사(reflect)한다.


BGP 동작 과정

1. 세션 수립 (TCP 179 포트)

BGP는 TCP 위에서 동작한다. 피어 간 TCP 연결을 먼저 맺고, 그 위에서 BGP 메시지를 교환한다.

IDLE → CONNECT → ACTIVE → OPEN SENT → OPEN CONFIRM → ESTABLISHED
  • IDLE: 초기 상태
  • CONNECT: TCP 연결 시도 중
  • OPEN SENT: OPEN 메시지 전송 후 응답 대기
  • OPEN CONFIRM: OPEN 메시지 수신, KEEPALIVE 대기
  • ESTABLISHED: 세션 수립 완료, 라우팅 정보 교환 가능

2. 라우팅 정보 교환

세션이 수립되면 양쪽은 자신이 알고 있는 모든 경로(Full table)를 UPDATE 메시지로 교환한다. 이후 변경 사항만 증분(incremental) 업데이트한다.

3. BGP 메시지 종류

메시지역할
OPEN세션 수립 시 BGP 버전, ASN, Hold Time, BGP ID 교환
UPDATE새 경로 알림 또는 기존 경로 철회
NOTIFICATION오류 발생 시 피어에게 알리고 세션 종료
KEEPALIVEHold Timer 초기화 (기본 60초 간격)

BGP Path Attributes (경로 속성)

BGP는 단순히 목적지 네트워크까지 도달 가능한지가 아니라, 어떤 경로가 더 좋은지를 다양한 속성으로 결정한다.

주요 속성

속성타입설명
AS_PATHWell-known mandatory경로가 거쳐온 AS 번호 목록. 루프 방지에 사용
NEXT_HOPWell-known mandatory다음 라우터의 IP 주소
LOCAL_PREFWell-known discretionaryAS 내부에서 출구 경로 우선순위 결정 (높을수록 선호)
MED (Multi-Exit Discriminator)Optional non-transitive인접 AS에게 선호 입구를 힌트로 제공 (낮을수록 선호)
ORIGINWell-known mandatory경로 출처 (IGP > EGP > incomplete)
COMMUNITYOptional transitive경로에 태그를 붙여 정책 적용에 활용

BGP 최적 경로 선택 순서 (Best Path Selection)

경로가 여러 개일 때 아래 순서로 비교해 하나를 선택한다.

1. Weight (Cisco 전용, 높을수록 선호)
2. LOCAL_PREF (높을수록 선호)
3. 로컬에서 Originate한 경로 (next-hop이 0.0.0.0)
4. AS_PATH 길이 (짧을수록 선호)
5. ORIGIN 코드 (IGP < EGP < incomplete)
6. MED (낮을수록 선호, 동일 AS에서 학습한 경로 간 비교)
7. eBGP > iBGP
8. IGP metric이 낮은 next-hop
9. 오래된 eBGP 경로 (세션이 더 오래된 것)
10. BGP Router ID (낮을수록 선호)

BGP와 인터넷 트래픽 제어

Peering과 Transit

ISP 간 연결 방식은 크게 두 가지다.

  • Peering: 두 AS가 서로의 트래픽을 무료로 교환. 보통 트래픽 규모가 비슷한 경우.
  • Transit: 하나의 AS가 다른 AS를 통해 인터넷 전체에 접근. 비용 발생.
소형 ISP → Transit → 대형 ISP → Peering → 다른 대형 ISP

IXP(Internet Exchange Point)

여러 AS가 한 장소에 모여 피어링하는 물리적 인프라. 한국은 KINX, 미국은 Equinix, DE-CIX(프랑크푸르트) 등이 있다. IXP를 통해 트래픽을 교환하면 Transit 비용을 절감하고 지연도 줄일 수 있다.


BGP 보안 이슈

BGP Hijacking

악의적인 AS가 다른 AS의 IP 프리픽스를 자신의 것처럼 광고하는 공격. 2008년 파키스탄 텔레콤이 YouTube IP를 광고해 전 세계 YouTube 트래픽이 차단된 사례가 유명하다.

RPKI(Resource Public Key Infrastructure): BGP 하이재킹 방지를 위한 메커니즘. AS가 자신이 소유한 IP 프리픽스를 디지털 서명(ROA, Route Origin Authorization)으로 증명한다.

BGP Route Leak

의도치 않게 Transit 경로를 피어에게 광고하는 실수. 트래픽이 예기치 않은 경로로 흘러 성능 저하나 장애를 유발한다.


실무 관련 개념

BGP Full Table

현재 인터넷 BGP 라우팅 테이블에는 약 90만~100만 개 이상의 프리픽스가 있다. 이 모든 경로를 수용하려면 라우터에 충분한 메모리와 처리 능력이 필요하다.

Default Route + BGP

소규모 AS는 Full Table 대신 기본 경로(0.0.0.0/0)만 받고 특정 프리픽스만 선택적으로 수신하는 방식으로 라우터 부담을 줄이기도 한다.

BGP Convergence

BGP는 OSPF 같은 링크 상태 프로토콜에 비해 수렴(convergence) 속도가 느리다. 장애 발생 시 수렴에 수 분이 걸릴 수 있다. BGP Fast Failover, BFD(Bidirectional Forwarding Detection) 등을 함께 사용해 장애 감지 속도를 높인다.


요약

  • BGP는 AS 간 경로를 교환하는 인터넷의 핵심 라우팅 프로토콜
  • TCP 179 포트 위에서 동작하며, 경로 속성을 기반으로 최적 경로 선택
  • AS_PATH로 루프 방지, LOCAL_PREF/MED로 트래픽 정책 구현
  • BGP Hijacking 방지를 위해 RPKI 도입이 확산 중
  • CDN, 클라우드 사업자가 멀티홈 구성 및 애니캐스트 라우팅에 적극 활용