~/network/concepts/bgp
라우팅

BGP

Border Gateway Protocol

서로 다른 AS(자율 시스템) 사이에서 경로 정보를 교환하는 인터넷의 표준 라우팅 프로토콜이다.

OSPFEIGRP 같은 IGP가 하나의 AS 내부에서 최단 경로를 찾는 데 집중한다면, BGP는 AS와 AS 사이(외부) 를 잇는다. 그래서 BGP를 EGP(Exterior Gateway Protocol) 라고 부른다.

통신사, 대형 기업, 클라우드 사업자가 자신의 네트워크 블록을 인터넷에 알리고, 서로의 경로를 주고받는 일이 모두 BGP로 이루어진다.

IGP와 BGP

구분IGP (OSPF, EIGRP 등)BGP
범위AS 내부AS 간 (인터넷)
목표최단·최적 경로정책 기반 경로 선택
경로 기준메트릭(비용, 홉, 대역폭)AS 경로 + 다양한 속성(정책)
알고리즘Link-State / Distance VectorPath Vector
수렴 속도빠름느림 (대신 안정성 중시)
규모수백~수천 경로수십만~100만 경로(전체 인터넷)

BGP는 최적 경로가 아니라 정책(policy) 으로 경로를 고른다. 예를 들어 "비싼 회선보다 싼 회선으로 먼저 보낸다" 같은 사업적 판단이 경로에 반영된다.

eBGP와 iBGP

BGP는 어디에 쓰이느냐에 따라 두 종류로 나뉜다.

구분eBGP (External BGP)iBGP (Internal BGP)
대상서로 다른 AS 사이같은 AS 내부의 BGP 라우터끼리
AS 번호다름같음
기본 TTL1 (직접 연결 이웃)보통 멀리 떨어진 이웃 가능
용도인터넷 경로 교환AS 내부에 외부 경로 전파

eBGP로 외부에서 받은 경로를 AS 내부의 다른 라우터들에게 알리려면 iBGP가 필요하다. 이때 iBGP는 full-mesh 로 모두 연결해야 한다는 제약이 있어, 규모가 커지면 Route ReflectorConfederation으로 이 부담을 줄인다.

동작 방식

BGP는 TCP 179번 포트 위에서 동작한다. 라우팅 프로토콜인데도 전용 전송 방식을 만들지 않고 TCP의 신뢰성에 얹은 것이 특징이다.

이웃(peer/neighbor)을 맺는 과정은 정해진 상태를 순서대로 거치며 진행되는데, 이를 BGP FSM(Finite State Machine) 이라 한다.

Idle → Connect → Active → OpenSent → OpenConfirm → Established
                                                        └ 이 상태에서 경로 교환

Established 상태가 되면 그때부터 경로 정보를 주고받는다. 주고받는 메시지는 네 종류다.

메시지역할
OPEN세션 시작. AS 번호, 보유 시간(hold time) 협상
UPDATE경로 광고/철회 (실제 경로 정보)
KEEPALIVE세션 유지 확인
NOTIFICATION오류 발생 시 세션 종료

한 번 경로를 교환한 뒤에는 변경분(증분, incremental)만 UPDATE로 주고받는다. 전체 테이블을 반복 전송하지 않아 효율적이다.

Path Vector: AS-Path로 경로싣기

BGP는 Path Vector 프로토콜이다. 경로 정보에 그 경로가 거쳐 온 AS들의 목록(AS-Path) 을 함께 싣는다.

목적지 203.0.113.0/24 의 AS-Path:  [AS 100, AS 200, AS 300]
                                    ↑ 이 경로는 100→200→300을 거쳐 도달

AS-Path는 두 가지 핵심 역할을 한다.

  • 루프 방지: 자신의 AS 번호가 이미 AS-Path에 들어 있으면 그 경로를 버린다. IGP의 복잡한 루프 방지 없이 단순하게 해결한다.
  • 경로 선택: AS-Path가 짧을수록 보통 더 선호된다(거쳐 가는 AS가 적음)

경로 선택 기준

같은 목적지로 가는 경로가 여러 개일 때, BGP는 여러 속성(attribute) 을 순서대로 비교해 하나를 고른다. 주요 속성과 대략적인 우선순위는 다음과 같다(벤더마다 세부 순서 차이 있음).

순위속성의미방향
1Weight (Cisco 전용)값이 클수록 선호로컬 라우터 한정
2Local PreferenceAS 내부에서 나가는 경로 선호도. 클수록 선호AS 내 공유
3Locally Originated자기가 만든 경로 우선
4AS-Path 길이짧을수록 선호전역
5OriginIGP < EGP < Incomplete
6MED (Multi-Exit Discriminator)이웃 AS에게 "이 입구로 들어와" 힌트. 작을수록 선호인접 AS

실무에서 트래픽 경로를 조정할 때 주로 쓰는 것은 Local Preference(나가는 트래픽 제어)MED / AS-Path Prepend(들어오는 트래픽 제어) 다.

  • 나가는 트래픽(outbound): Local Preference를 높여 원하는 회선으로 내보냄
  • 들어오는 트래픽(inbound): AS-Path Prepend(자기 AS 번호를 일부러 여러 번 붙여 경로를 길게 보이게 함)로 덜 쓰고 싶은 회선을 회피하게 유도

활용 사례

BGP는 인터넷 백본뿐 아니라 여러 곳에서 쓰인다.

  • 인터넷 연동: ISP와 기업이 공인 IP 블록을 인터넷에 광고
  • 멀티홈(Multi-homing): 여러 ISP에 동시에 연결해 회선 이중화와 트래픽 분산
  • MPLS VPN: 통신사 VPN 서비스에서 고객 경로를 전달(MP-BGP)
  • 데이터센터: 대규모 데이터센터의 Leaf-Spine 패브릭에서 IGP 대신 BGP를 내부 라우팅에 사용(BGP in the Data Center)
  • 클라우드 연동: 온프레미스–클라우드 간 전용선/VPN 연결에서 동적 경로 교환

한계와 보안

  • 느린 수렴: 정책 비교가 많고 TCP 기반이라 Convergence time이 IGP보다 길다
  • 검증 부재: BGP는 광고된 경로를 그대로 믿기 때문에, 잘못된 광고 하나가 인터넷 전체 장애로 번질 수 있다
    • Route Hijacking: 남의 IP 대역을 자기 것이라 광고해 트래픽을 가로채는 사고
    • Route Leak (경로 누설): 받은 경로를 의도하지 않은 방향으로 잘못 전파해(주로 설정 실수) 대규모 장애를 유발

이러한 취약점을 막기 위해 최근에는 RPKI(경로 광고의 정당성을 암호로 검증)와 경로 필터링이 표준으로 자리잡는 중이다.