업데이트됨 1개월 전
2008년, 파키스탄은 유튜브를 차단하려 했다. 정부 명령에 따라 파키스탄 텔레콤은 BGP를 통해 유튜브의 IP 주소가 자신의 것이라고 광고했다. 불과 몇 분 만에 그 거짓 정보가 인터넷 전체로 퍼져나갔다. 유튜브는 접속 불능 상태가 됐다 — 파키스탄에서만이 아니라, 전 세계적으로. 거의 두 시간 동안, 인터넷의 라우팅 시스템은 유튜브 트래픽을 충실하게 파키스탄으로 보냈고, 그곳에서 트래픽은 블랙홀 속으로 사라졌다.
이것이 바로 BGP(Border Gateway Protocol)다. 네트워크 간 인터넷 트래픽 전체를 라우팅하는 프로토콜. 누군가가 진실을 말하고 있는지 확인할 기본 수단이 전혀 없는 프로토콜이다.
BGP가 해결하는 문제
인터넷은 하나의 네트워크가 아니다. ISP, 클라우드 사업자, 기업, 대학, 정부가 운영하는 7만여 개의 독립 네트워크 — 이른바 자율 시스템(AS) — 으로 이루어져 있다. 각각은 고유한 장비, 정책, 비즈니스 관계를 갖는다. 어떤 중앙 기관도 이들을 통제하지 않는다.
그럼에도 불구하고, 당신이 세 대륙 너머에 있는 서버에서 웹 페이지를 요청하면, 패킷은 어떻게든 그곳에 도달하고 돌아온다. 직접 소통한 적 없는 조직들이 운영하는 네트워크를 가로질러, 경쟁사들 사이의 경계를 넘고, 수십 개의 서로 다른 주체가 소유한 인프라를 통과하면서.
BGP가 이것을 가능하게 한다. 자율 시스템들이 서로에게 말할 수 있는 공통 언어다: "나는 이 IP 주소들에 도달할 수 있어. 그 주소들로 향하는 트래픽은 나한테 보내."
BGP의 작동 방식
BGP 라우터는 인접 라우터와 TCP 연결을 맺는다 — 수개월에서 수년간 지속될 수 있는 세션이다. 이 세션을 통해 경로 광고를 교환한다.
경로 광고는 다음을 담고 있다:
- 프리픽스(Prefix): "나는 이 IP 주소 블록에 도달할 수 있다" (예: 8.8.8.0/24)
- AS 경로(AS Path): "이 경로가 거쳐온 네트워크의 체인" (예: AS 15169 → AS 3356 → AS 701)
- 넥스트 홉(Next Hop): "이 경로를 이용하려면 이 주소로 패킷을 보내라"
- 속성(Attributes): 라우팅 결정을 위한 추가 정보
구글(AS 15169)이 자신의 IP 주소를 광고하면, 그 광고는 바깥으로 전파된다. 수신한 각 네트워크는 AS 경로에 자신을 추가하고 다음으로 넘긴다. 몇 분 안에, 전 세계 라우터들이 알게 된다: "구글에 도달하려면, 트래픽을 이쪽으로 보내라."
이것은 우아하다. 동시에 소름 끼친다.
검증 없는 신뢰
BGP는 1989년에 설계됐다. 그 당시 인터넷은 대학과 연구 기관들로 이루어진 작은 공동체였다. 모두가 서로를 알았다. 신뢰는 암묵적이었다.
그 인터넷은 이제 존재하지 않는다. 하지만 BGP는 여전히 같은 방식으로 작동한다.
파키스탄 텔레콤이 유튜브의 IP 주소를 광고했을 때, BGP는 물어볼 방법이 없었다: "당신이 정말로 그 주소의 소유자입니까?" 그저 광고를 전파했을 뿐이다. 전 세계 라우터들이 라우팅 테이블을 갱신했다. 트래픽은 파키스탄으로 흘러갔다.
이것은 패치로 고칠 수 있는 버그가 아니다. BGP 운영 방식의 근본적인 부분이다. 인터넷 트래픽 전체를 라우팅하는 이 프로토콜은, 네트워크들이 자신이 도달할 수 있는 주소에 대해 진실을 말한다는 것에 의존한다 — 그 주장을 검증할 수단 없이.
BGP는 7만여 개의 낯선 조직들 사이에서, 트래픽이 어디로 가야 하는지에 대해 서로 거짓말하지 않겠다는 악수 한 번으로 유지되는 협약이다.
경로 선택이라는 춤
라우터가 같은 목적지로 향하는 여러 경로를 알게 되면, 선택을 해야 한다. BGP의 선택 과정은 순서대로 다음을 고려한다:
- 로컬 프리퍼런스(Local Preference): 자신의 네트워크가 선호로 표시한 경로
- AS 경로 길이: 짧은 경로(더 적은 네트워크를 거치는)가 우선
- 오리진 타입(Origin Type): 경로가 어떻게 학습됐는지
- MED: 인접 네트워크가 자신의 선호 진입점에 대해 주는 힌트
- 외부 경로 우선: 자신의 네트워크 외부에서 온 경로를 선호
- IGP 비용: 더 가까운 출구 지점을 선호
- 라우터 ID: 최종 타이브레이커
이것은 어떤 객관적인 의미에서 "최선의" 경로를 찾는 것이 아니다. 정책의 문제다. 네트워크는 비즈니스 관계, 비용, 성능 요구사항, 전략적 선호도에 기반해 경로를 선택한다. 인터넷은 운영자들이 원하는 방식으로 트래픽을 라우팅한다 — 반드시 가장 빠르거나 가장 짧은 방식이 아니더라도.
BGP의 두 가지 종류
**외부 BGP(eBGP)**는 서로 다른 자율 시스템을 연결한다. eBGP 세션을 통해 경로가 이동할 때, 전송 네트워크는 AS 경로에 자신의 AS 번호를 추가한다. 이렇게 해서 경로가 어디를 거쳐왔는지를 보여주는 체인이 만들어진다.
**내부 BGP(iBGP)**는 자율 시스템 내부에서 외부 경로를 배포한다. 네트워크에 외부 경로를 수신하는 경계 라우터가 여러 개 있다면, iBGP는 모두가 모든 경로를 파악할 수 있도록 보장한다 — 트래픽이 최적의 지점을 통해 나갈 수 있도록.
eBGP는 네트워크들이 서로 대화하는 방식이다. iBGP는 네트워크가 다른 곳에서 배운 것에 대해 자기 자신에게 이야기하는 방식이다.
정책이 핵심이다
BGP의 속성은 운영자에게 정밀한 제어권을 준다:
로컬 프리퍼런스는 아웃바운드 트래픽을 제어한다. 선호하는 경로에 더 높은 값을 설정하면, 네트워크는 그 방향으로 트래픽을 보낸다.
**MED(Multi-Exit Discriminator)**는 인바운드 트래픽에 영향을 미친다. 인접 네트워크에게 어떤 진입점을 사용할지 알려준다. 낮은 값이 선호된다.
**커뮤니티(Communities)**는 유연한 정책을 위한 태그다. 경로에 "피어에게 광고하지 말 것" 또는 "고객으로부터 학습됨"과 같은 표시를 달고, 그 태그를 기반으로 정책을 구현한다.
**AS 경로 프리펜딩(AS Path Prepending)**은 경로를 인위적으로 길게 만들어 덜 매력적으로 만든다. 특정 경로를 통해 트래픽이 들어오지 않길 원한다면, AS 번호를 여러 번 앞에 붙이면 된다. 경로 선택에서 더 긴 경로는 불리하다.
이 유연성이 BGP가 실제 인터넷에서 작동하는 이유다 — 비즈니스 관계가 중요하고, 네트워크들이 서로 비용을 주고받거나 그렇지 않는 곳, "최선의 경로"가 기술적 측정이 아닌 정책적 결정인 곳.
무엇이 잘못될 수 있는가
경로 하이재킹: 우발적으로든 악의적으로든 다른 사람의 IP 주소를 광고한다. 그들에게 향하던 트래픽이 당신에게 온다. 파키스탄/유튜브 사건은 우발적이었다. 다른 것들은 의도적이었다 — 암호화폐 탈취, 트래픽 도청, 서비스 거부 공격.
경로 유출: 재광고해서는 안 될 경로를 받아들인 뒤, 어쨌든 광고한다. 갑자기 두 네트워크 사이에 머물러야 할 트래픽이 당신의 네트워크를 통해 흐른다. 경로 유출로 인해 대규모 장애가 발생한 사례가 있다.
느린 수렴: 경로가 변경될 때, BGP가 안정화되는 데 수 분이 걸릴 수 있다. 수렴 중에는 인터넷의 서로 다른 부분들이 목적지에 도달하는 방법에 대해 저마다 다른 정보를 가진다. 패킷이 루프를 돌거나, 블랙홀에 빠지거나, 이상한 경로를 택할 수 있다.
테이블 증가: 전 세계 라우팅 테이블은 90만 개 이상의 항목을 넘어섰고 계속 증가한다. 라우터는 이 전체 테이블을 저장하고 처리해야 한다. 5년 전에는 충분했던 하드웨어가 오늘날에는 버거워한다.
그럼에도 작동하는 이유
이러한 취약점들을 감안하면, BGP가 작동한다는 것 자체가 놀랍다. 그러나 작동한다 — 대부분의 사람들이 BGP에 대해 들어본 적도 없을 만큼 충분히 안정적으로.
그 답은 운영 관행에 있다. 네트워크는 경로 광고를 필터링하여 광고자의 것이 아닌 주소 공간에 대한 경로를 거부한다. 이상 징후를 모니터링한다. 피어와 관계를 구축하고, 문제가 생기면 신속히 대응한다. RPKI(Resource Public Key Infrastructure)는 경로 출처의 암호화 검증을 서서히 추가하고 있다.
BGP의 보안은 프로토콜이 아니라 그것을 운영하는 사람들로부터 나온다 — 그리고 대부분의 조직이 자신의 경로에 대해 거짓말할 이유가 없다는 단순한 사실로부터.
인터넷의 취약한 기반
BGP는 인터넷이 작동하는 이유다. 당신이 만드는 모든 연결, 당신이 보내는 모든 패킷은 BGP 라우팅이 길을 찾는 것에 의존한다.
또한 인터넷이 설계된 시스템이 아니라는 것을 상기시켜 준다. 그것은 창발적인 시스템이다 — 수만 개의 독립 네트워크가, 서로 대부분 진실을 말할 것이라고 가정하는 프로토콜을 통해 협력하는. 그 가정이 실패하면, 트래픽은 잘못된 곳으로 간다. 때로는 몇 분 동안. 때로는 몇 시간 동안.
인터넷을 붙들고 있는 프로토콜은 신뢰를 검증할 수 없는 환경에서 작동하는 신뢰 시스템이다. 이것이 이렇게 잘 작동한다는 것은 인간 협력의 승리이거나, 언제 터질지 모르는 사고이거나 둘 중 하나다.
아마도 둘 다일 것이다.
BGP에 관한 자주 묻는 질문
BGP가 작동을 멈추면 어떻게 될까?
BGP 세션이 실패하면, 네트워크는 직접 연결된 이웃 네트워크 너머의 목적지에 대한 라우팅 정보를 잃는다. 여러 네트워크를 거쳐야 하는 트래픽은 단순히 흐르지 않게 된다. 주요 BGP 장애는 수백만 명의 사용자에게 영향을 미치는 지역 인터넷 중단을 일으킨 바 있다. 인터넷에는 백업 라우팅 시스템이 없다 — BGP가 전부다.
누군가 BGP를 이용해 내 트래픽을 가로챌 수 있을까?
그렇다. 공격자가 BGP를 통해 당신의 IP 주소를 광고하면, 당신에게 향하는 인터넷 트래픽의 일부가 대신 그들에게 흘러갈 것이다. 이것은 암호화폐 거래 도청, DNS 트래픽 리디렉션, 감시 활동에 사용된 바 있다. 방어 수단(RPKI, 경로 필터링, 모니터링)은 존재하지만, 아직 보편적으로 배포되지는 않았다.
BGP가 더 안전한 것으로 교체되지 않은 이유는?
BGP는 인터넷 인프라에 깊숙이 내재되어 있다. 모든 라우터, 모든 네트워크, 모든 피어링 협약이 BGP를 전제로 한다. 교체하려면 수만 개의 독립 조직들의 협력이 필요하다 — 훨씬 더 단순한 변경에도 합의하지 못하는 바로 그 조직들이. 대신, 업계는 RPKI 같은 확장 기능과 운영 모범 사례를 통해 점진적으로 보안을 추가하고 있다.
BGP 경로를 어떻게 볼 수 있을까?
퍼블릭 루킹 글라스(ISP 라우터의 웹 인터페이스)를 통해 BGP 테이블을 조회할 수 있다. bgp.tools, RIPE RIS, Hurricane Electric의 BGP Toolkit 같은 서비스는 글로벌 라우팅에 대한 가시성을 제공한다. 어떤 IP 주소로든 인터넷이 트래픽을 어떻게 라우팅하는지 정확하게 볼 수 있고 — 실시간으로 변화를 지켜볼 수도 있다.
이 페이지가 도움이 되었나요?