라우팅과 인터넷 구조 (3) - BGP와 인터넷의 구조 - soo:bak
작성일 :
인터넷은 하나의 네트워크인가
Part 1과 Part 2에서 RIP, OSPF 같은 IGP를 살펴보았습니다. IGP는 하나의 조직 내부에서 사용하는 라우팅 프로토콜입니다.
그런데 인터넷은 하나의 조직이 아니라 수만 개의 독립적인 네트워크가 연결된 “네트워크의 네트워크”입니다. 각 네트워크는 저마다의 정책과 규칙을 갖고 있습니다.
- 어떤 트래픽을 받아들일 것인가
- 어떤 경로로 트래픽을 전송할 것인가
- 누구와 연결을 맺을 것인가
이처럼 독립적인 네트워크들이 어떻게 협력하여 전 세계적인 통신을 가능하게 할까요?
자율 시스템: 인터넷의 기본 단위
자율 시스템(Autonomous System, AS)은 단일한 라우팅 정책 하에 운영되는 네트워크 집합을 의미합니다.
각 AS는 고유한 번호를 갖는데, 이를 ASN(Autonomous System Number)이라 합니다. 16비트(0~65535) 또는 32비트 형식이 있으며, IANA가 지역 인터넷 레지스트리(RIR)를 통해 할당합니다.
주요 기업들의 AS 번호 예시를 살펴보면:
- AS15169: Google
- AS32934: Facebook
- AS8075: Microsoft
- AS4766: Korea Telecom
- AS3786: LG Uplus
AS는 다음과 같은 특성을 갖습니다.
- 단일 관리: 하나의 조직이 운영
- 단일 정책: 내부 전체에 일관된 라우팅 정책 적용
- 외부에 대한 통일된 모습: 복잡한 내부 구조는 외부에 노출하지 않음
AS 내부에서는 OSPF, IS-IS 같은 IGP를 사용하지만, AS 간 통신에는 BGP(Border Gateway Protocol)를 사용합니다.
BGP: 인터넷의 접착제
BGP는 AS 간 라우팅을 담당하는 유일한 프로토콜입니다. 현재 버전은 BGP-4이며 RFC 4271로 표준화되어 있습니다.
BGP의 주요 특성은 다음과 같습니다.
- 경로 벡터(Path Vector) 프로토콜 방식 채택
- TCP 포트 179를 사용하여 신뢰성 있는 연결 보장
- 정책 기반 라우팅으로 유연한 경로 제어 가능
여기서 거리 벡터와 경로 벡터의 차이를 짚고 넘어가겠습니다.
1
2
3
4
5
거리 벡터:
"목적지 X까지 거리 5"
경로 벡터:
"목적지 X까지 AS1 → AS2 → AS3 경로로"
경로 벡터 방식은 전체 경로(AS-PATH)를 알고 있기 때문에 두 가지 큰 이점이 있습니다.
- 루프 탐지 용이: 자신의 AS가 경로에 이미 포함되어 있으면 해당 경로를 거부
- 정책 적용 가능: 특정 AS를 경유하는 경로를 의도적으로 회피하거나 선호 가능
BGP의 동작
BGP 피어링
BGP는 수동으로 구성된 이웃(피어)과만 통신합니다. OSPF처럼 자동으로 이웃을 발견하는 기능이 없으므로 관리자가 명시적으로 피어 관계를 설정해야 합니다.
1
2
3
4
AS 100 AS 200
┌──────────┐ ┌──────────┐
│ 라우터 A ├──── BGP ────┤ 라우터 B │
└──────────┘ 세션 └──────────┘
라우터 A와 B는 TCP 연결을 맺고 이를 통해 BGP 메시지를 교환합니다.
BGP 메시지 유형
BGP에서 사용하는 메시지는 네 가지입니다.
- OPEN: 세션을 시작하고 파라미터를 협상
- UPDATE: 새로운 경로 정보를 광고하거나 기존 경로를 철회
- KEEPALIVE: 연결이 유지되고 있음을 확인 (기본 60초 간격)
- NOTIFICATION: 오류를 통보하고 세션을 종료
iBGP vs eBGP
BGP는 사용 위치에 따라 두 가지로 구분됩니다.
- eBGP(External BGP): 서로 다른 AS 간에 사용
- iBGP(Internal BGP): 같은 AS 내부의 BGP 라우터 간에 사용
같은 AS 내부에서 IGP가 아닌 BGP가 필요한 이유가 궁금할 수 있습니다.
AS가 여러 외부 연결을 가지는 경우를 생각해 보겠습니다.
1
2
3
4
5
6
7
8
9
AS 200 AS 300
│ │
┌────┴────┐ ┌────┴────┐
│ 라우터 X │ iBGP │ 라우터 Y │
└────┬────┘ ◄────► └────┬────┘
│ AS 100 │
└───────┬──────────┘
│
(내부 IGP)
라우터 X가 AS200에서 배운 외부 경로 정보를 라우터 Y에게 전달해야 하고, Y는 그 정보를 바탕으로 AS300에 어떤 경로를 광고할지 결정합니다. 이런 외부 경로 정보의 공유에 iBGP가 필요합니다.
iBGP를 사용할 때는 AS 내부의 모든 BGP 라우터가 풀 메시(full mesh)로 연결되어야 합니다. 대규모 환경에서는 이것이 부담이 되므로 Route Reflector나 Confederation 같은 기법을 사용하여 연결 수를 줄입니다.
BGP 경로 선택
BGP는 같은 목적지로 가는 여러 경로를 수신할 수 있습니다. 이 중 어떤 경로를 선택할까요?
BGP는 복잡한 경로 선택 알고리즘을 사용합니다. 아래 기준들을 순서대로 비교하며, 하나의 기준에서 승자가 결정되면 그 시점에서 선택이 완료됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
1. Weight (Cisco 전용, 높을수록 선호)
2. LOCAL_PREF (로컬 선호도, 높을수록 선호)
3. 로컬에서 생성된 경로 선호
4. AS_PATH 길이 (짧을수록 선호)
5. Origin 타입 (IGP > EGP > Incomplete)
6. MED (Multi-Exit Discriminator, 낮을수록 선호)
7. eBGP > iBGP
8. IGP 메트릭이 낮은 넥스트홉
9. 가장 오래된 경로
10. 라우터 ID가 낮은 피어
11. 클러스터 리스트 길이
12. 피어 IP 주소가 낮은 쪽
실무에서 특히 중요한 속성 세 가지를 살펴보겠습니다.
- LOCAL_PREF: AS 내부에서 외부로 나가는 트래픽의 선호 경로를 결정
- AS_PATH: 기본적으로 거쳐가는 AS 수가 적은 경로를 선호
- MED: 이웃 AS에게 “이 링크로 들어오는 것이 좋다”라는 힌트를 제공
구체적인 예시로 살펴보겠습니다.
1
2
3
4
5
6
AS 100에서 AS 300으로 가는 두 경로:
경로 1: AS 100 → AS 200 → AS 300 (AS_PATH 길이: 2)
경로 2: AS 100 → AS 400 → AS 500 → AS 300 (AS_PATH 길이: 3)
→ 경로 1 선택 (AS_PATH가 짧음)
하지만 LOCAL_PREF가 설정되어 있다면 결과가 달라집니다.
1
2
3
4
경로 1: LOCAL_PREF = 100
경로 2: LOCAL_PREF = 200
→ 경로 2 선택 (LOCAL_PREF가 높음, AS_PATH 길이는 비교하지 않음)
이처럼 BGP에서는 정책적 판단이 기술적 최적 경로보다 우선합니다. 이것이 IGP와의 근본적인 차이점입니다.
인터넷의 계층 구조
인터넷의 AS들은 자연스럽게 계층적 구조를 형성합니다.
Tier-1 ISP
인터넷의 정점에 있는 사업자들입니다.
- 전 세계 어디든 도달 가능하며 기본 경로(default route)가 필요 없음
- 다른 Tier-1과 피어링(Peering)을 통해 무료로 트래픽 교환
- 하위 ISP에게 트랜짓(Transit)을 유료로 제공
- 예: AT&T, NTT, Lumen, Cogent
Tier-2 ISP
중간 계층을 담당합니다.
- Tier-1에게 트랜짓을 구매하여 글로벌 연결성 확보
- 다른 Tier-2와 피어링하여 비용 절감
- 하위 ISP나 기업에게 트랜짓을 판매
- 예: 대부분의 대형 지역 ISP
Tier-3 ISP
최종 사용자와 가장 가까운 계층입니다.
- 트랜짓만 구매하며 피어링 관계는 거의 없음
- 최종 고객에게 인터넷 접속 서비스 제공
- 예: 소규모 지역 ISP
컨텐츠 제공자
전통적인 ISP 계층과 별도로 존재합니다.
- 대형 컨텐츠 기업(Google, Netflix, Meta 등)이 해당
- 자체 글로벌 네트워크를 운영
- 사용자 경험 향상을 위해 많은 ISP와 직접 피어링
1
2
3
4
5
6
7
Tier-1 ══════ Tier-1
║ ║
Tier-2 ──────Tier-2
╱ ╲ ╱ ╲
Tier-3 Tier-3 Tier-3 Tier-3
│ │ │ │
고객 고객 고객 고객
Peering vs Transit
피어링(Peering)은 두 네트워크가 서로의 고객 트래픽을 무료로 교환하는 협정입니다.
피어링이 성립하려면 다음 조건이 충족되어야 합니다.
- 대등한 트래픽 교환: 한쪽만 많이 보내면 다른 쪽이 손해
- 상호 이익 존재: 양측 모두 트랜짓 비용을 절감할 수 있어야 함
1
2
3
4
5
AS 100 ◄════════► AS 200
(피어링)
AS 100의 고객 트래픽 → AS 200에 무료로 전달
AS 200의 고객 트래픽 → AS 100에 무료로 전달
반면 트랜짓(Transit)은 인터넷 전체로의 접근을 제공하는 유료 서비스입니다.
1
2
3
4
5
6
7
8
Tier-1
║ (트랜짓: 비용 지불)
Tier-2
║
고객
Tier-2는 Tier-1에게 비용을 지불하고
인터넷 전체로 가는 경로를 확보합니다.
그렇다면 피어링이 항상 유리할까요? 반드시 그렇지는 않습니다.
피어링의 장점:
- 트랜짓 비용 회피로 비용 절감
- 직접 연결로 인한 지연시간 감소
- 추가 대역폭 확보
피어링의 비용:
- 피어링 포인트까지 회선을 연결하는 비용
- 장비 및 포트 비용
- 피어링 관계 관리에 드는 오버헤드
대형 컨텐츠 제공자들은 가능한 한 많은 ISP와 직접 피어링하려 합니다. 트랜짓 비용을 절감하고 사용자에게 더 빠른 응답을 제공하기 위해서입니다.
Internet Exchange Point
IX(Internet Exchange Point)는 여러 네트워크가 한 장소에서 피어링할 수 있도록 하는 시설입니다.
IX의 효율성을 이해하기 위해 간단한 계산을 해보겠습니다. IX 없이 10개 네트워크가 모두 피어링하려면 10 x 9 / 2 = 45개의 개별 연결이 필요합니다.
하지만 IX를 사용하면 모든 네트워크가 IX에 한 번씩만 연결하고, IX 내부의 스위칭 패브릭을 통해 서로 피어링합니다.
1
2
3
4
5
6
7
8
9
┌─────────────────────────┐
│ Internet Exchange │
│ ┌─────────────────┐ │
│ │ 스위칭 패브릭 │ │
│ └─────────────────┘ │
│ ↑ ↑ ↑ ↑ │
└───┼────┼────┼────┼─────┘
│ │ │ │
AS1 AS2 AS3 AS4
전 세계 주요 IX를 살펴보면:
- DE-CIX (프랑크푸르트): 세계 최대 규모
- AMS-IX (암스테르담): 유럽의 핵심 교환 지점
- LINX (런던): 영국의 대표 IX
- Equinix IX (여러 도시): 글로벌 데이터센터 사업자가 운영
- KINX (서울): 한국의 대표 IX
IX에서의 피어링은 두 가지 유형으로 나뉩니다.
- 공개 피어링(Public Peering): IX의 공유 스위치를 통해 여러 네트워크와 연결
- 사설 피어링(Private Peering): IX 시설 내에서 특정 네트워크와 전용 회선으로 직접 연결
BGP 보안 문제
BGP는 1989년에 설계된 프로토콜로, 당시에는 네트워크 운영자들 간의 신뢰를 기반으로 동작했습니다. 하지만 이 신뢰 기반 설계가 보안 취약점으로 이어집니다.
BGP 하이재킹
악의적으로 또는 실수로 잘못된 경로를 광고하면 어떻게 될까요?
2008년 파키스탄 텔레콤 사건이 대표적인 예입니다. 파키스탄 정부가 YouTube 차단을 명령하자, 파키스탄 텔레콤은 YouTube의 IP 대역이 자신에게 있다고 광고했습니다. 문제는 이 광고가 실수로 전 세계에 퍼져버린 것입니다. 그 결과 전 세계 YouTube 트래픽이 파키스탄으로 향하게 되었고, 약 2시간 동안 YouTube 서비스가 전 세계적으로 마비되었습니다.
1
2
3
4
5
정상:
사용자 → ISP → YouTube (AS36561)
하이재킹 후:
사용자 → ISP → 파키스탄 텔레콤 (← "YouTube 여기요!")
이런 일이 가능한 이유는 BGP가 경로 광고의 진위를 검증하지 않기 때문입니다. 누구든 “이 IP 대역은 내 것이다”라고 주장할 수 있고, 다른 라우터들은 이를 그대로 믿습니다.
해결책들
이 문제를 해결하기 위한 여러 기술이 개발되었습니다.
RPKI(Resource Public Key Infrastructure)
IP 대역과 AS의 소유권을 암호화 서명으로 증명하는 체계입니다. ROA(Route Origin Authorization)를 통해 “AS X만이 IP 대역 Y를 광고할 수 있다”라고 명시합니다.
1
2
3
4
5
6
7
ROA 예시:
IP 대역: 203.0.113.0/24
허가된 AS: AS 64500
최대 접두사 길이: /24
다른 AS가 203.0.113.0/24를 광고하면?
→ RPKI 검증 실패, 경로 거부 가능
RPKI 도입은 점점 증가하고 있지만 아직 보편화되지는 않았습니다. 모든 ISP가 검증에 참여해야 완전한 효과를 볼 수 있기 때문에 도입 속도가 중요합니다.
BGPsec
경로 전체를 암호화 서명하는 방식입니다. AS_PATH에 포함된 각 AS가 순차적으로 서명하여 경로 조작을 방지합니다. 다만 계산 오버헤드가 크고 도입 속도가 느려 아직 널리 사용되지는 않습니다.
인터넷 라우팅의 현실
인터넷 라우팅은 순수한 기술적 최적화의 문제가 아닙니다. 경제적, 정치적 요소가 큰 영향을 미칩니다.
경제적 결정
- 비용이 많이 드는 트랜짓 대신 피어링을 적극 추구
- 비용 효율적인 경로 선택 (항상 최단 경로를 선택하지는 않음)
- 트래픽 비율에 따른 피어링 조건 협상
정치적 결정
- 특정 국가를 경유하지 않는 경로를 의도적으로 선택
- 데이터 주권 문제로 국내 트래픽은 국내에서만 처리
- 정부 규제에 따른 특정 트래픽 필터링
운영적 결정
- 안정성이 검증된 경로를 선호
- 과거 장애 이력이 있는 AS 회피
- 24시간 NOC(Network Operations Center) 운영 여부 확인
BGP의 정책 기반 특성은 이러한 다양한 요구사항을 수용할 수 있도록 설계되었습니다. “최단 경로”가 아니라 “최선의 경로”를 선택하며, 그 “최선”의 정의는 각 네트워크가 자율적으로 결정합니다.
정리: 인터넷이 동작하는 이유
인터넷은 중앙 제어 기관 없이 동작합니다. 수만 개의 AS가 각자 자율적으로 운영되면서도 전체가 하나로 연결됩니다.
이를 가능하게 하는 요소들을 정리하면:
- AS 번호: 각 네트워크를 고유하게 식별
- BGP: AS 간 경로 정보 교환을 위한 공통 언어
- IP 주소 할당 체계: 중복 없는 전 세계적 주소 공간 보장
- 상호 의존성: 서로 연결되지 않으면 자신의 고객에게도 서비스 불가
인터넷은 기술적 프로토콜 위에서 경제적 인센티브가 함께 작동하는 시스템입니다. BGP가 “인터넷의 접착제”라 불리는 이유가 바로 여기에 있습니다.
관련 글