경계 경로 프로토콜(BGP) 인터넷의 라우팅 프로토콜입니다. BGP는 우편물을 처리하는 우체국처럼 인터넷 트래픽을 전송하기 위해 가장 효율적인 경로를 선택합니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
관련 콘텐츠
인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!
글 링크 복사
경계 경로 프로토콜(BGP)은 인터넷의 우편 서비스입니다. 누군가 우체통에 편지를 투입하면 우체국에서 이 편지를 수거해서 수신자에게 전달하기 위한 빠르고 효율적인 경로를 선택합니다. 마찬가지로 누군가 인터넷을 통해 데이터를 제출하면 BGP는 해당 데이터가 이동할 수 있는 가용 경로를 모두 검토하고 최적의 경로를 선택하는 일을 담당합니다. 최적의 경로에는 자율 시스템 간의 호핑이 포함되는 경우가 많습니다.
BGP는 데이터 라우팅을 가능하게 함으로써 인터넷을 작동하게 하는 프로토콜입니다. 싱가포르에 있는 사용자가 아르헨티나에 원본 서버가 있는 웹 사이트를 로드하게 되면, 이러한 통신이 빠르고 효율적으로 이루어지도록 하는 프로토콜이 BGP입니다.
인터넷은 네트워크의 네트워크로서 자율 시스템(AS)이라고 하는 수십만 개의 작은 네트워크로 나뉘어집니다. 이들 각각의 네트워크는 기본적으로 하나의 조직이 운영하는 라우터들의 큰 집합입니다.
BGP를 인터넷의 우체국으로 생각한다면 AS는 개별 우체국 지점으로 생각하면 됩니다. 하나의 도시에는 수백 개의 우체통이 있겠지만, 이들 우체통에 투입된 우편물은 모두 현지 우체국 지점을 통해 다른 목적지를 향하게 됩니다. AS 내의 내부 라우터는 우체통과 같습니다. 이들은 외부로 향하는 통신을 AS에 전달하며, AS는 다시 BGP 라우팅을 이용해 이러한 통신을 목적지로 보냅니다.
위 그림은 BGP를 단순화하여 표현하고 있습니다. 여기에서는 인터넷에 단 6개의 AS만이 있습니다. AS1이 패킷을 AS3으로 라우팅하려면 두 가지 옵션이 있습니다.
AS2, AS3 순서로의 호핑:
AS2 → AS3
또는 AS6, AS5, AS4, AS3 순서로의 호핑:
AS6 → AS5 → AS4 → AS3
이 단순화된 모델에서는 결정이 명확해 보입니다. AS2 경로가 AS6 경로에 비해 필요로 하는 홉 수가 적으므로 AS2 경로가 가장 빠르고 효율적인 경로입니다. 이제 AS가 수십만 개 있고 홉 수는 복잡한 경로 선택 알고리즘의 한 부분에 불과하다고 생각해 보겠습니다. 바로 이것이 인터넷 상 BGP 라우팅의 현실입니다.
인터넷의 구조는 지속적으로 변화하고 있어 새로운 시스템이 나타나고 기존 시스템을 사용할 수 없게 되기도 합니다. 따라서 모든 AS는 새로운 경로 및 사용할 수 없게 된 경로에 대해 최신 정보를 갖고 있어야 합니다. 이는 각 AS가 라우팅 정보를 공유하기 위해 TCP/IP 연결을 통해 이웃 AS와 연결하는 피어링 세션을 통해 이루어집니다. 각 AS는 이 정보를 이용해 내부에서 발생하여 외부로 보내야 하는 데이터 통신을 적절히 라우팅할 수 있게 됩니다.
여기에서 우체국에 대한 비유와 차이가 생깁니다. 자율 시스템은 우체국 지점과 달리 하나의 조직에 속하지 않습니다. 실제로 경쟁 관계에 있는 사업체에 속하는 경우도 있습니다. 따라서 BGP 라우팅은 사업적 고려를 하기도 합니다. AS들이 자기 네트워크를 통과하는 다른 AS의 트래픽에 비용을 부과하는 경우도 많으며 액세스의 가격도 궁극적으로 어떤 경로를 선택할지에 반영됩니다.
AS는 주로 인터넷 서비스 공급자(ISP) 또는 기술 회사, 대학교, 정부 기관, 과학 연구소 등의 대형 조직에 속합니다. 라우팅 정보를 교환하고자 하는 AS는 등록된 자율 시스템 번호(ASN)가 있어야 합니다. 인터넷 할당 번호 관리 기관(IANA)이 대륙별 인터넷 레지스트리(RIR)들에 ASN을 할당하고, 각 RIR이 이들을 ISP와 네트워크에 할당합니다. ASN은 1과 65534 사이의 16비트 숫자와 131072와 4294967294 사이의 32비트 숫자입니다. 2018년 현재 세계적으로 약 6만 4천 개의 ASN이 있습니다. 이러한 ASN은 외부 BGP에만 필요합니다.
인터넷상에서 경로 교환 및 트래픽 전송은 외부 BGP(eBGP)를 이용합니다. 자율 시스템은 BGP의 내부 버전을 이용해 자체 내부 네트워크 내에서 라우팅할 수도 있는데, 이를 내부 BGP(iBGP)라고 합니다. 내부 BGP를 이용하는 것이 외부 BGP를 이용하기 위한 필요 조건이 아님에 주의해야 합니다. 자율 시스템은 내부 네트워크의 라우터를 연결하기 위해 다수의 내부 프로토콜 중에 선택할 수 있습니다.
외부 BGP는 국제 우편과 유사합니다. 외국으로 우편물을 발송할 때는 특정 표준 및 지침을 따라야 합니다. 이 우편물이 대상 국가에 도착하게 되면 대상 국가의 현지 우편 제도에 따라 최종 목적지에 도달하게 될 것입니다. 국가마다 자체적인 우편 제도가 있으며 이는 다른 나라와 동일한 지침을 따를 필요가 없습니다. 마찬가지로 자율 시스템마다 자체 네트워크 내에 데이터를 라우팅하는 내부 라우팅 프로토콜을 가질 수 있습니다.
전반적으로 BGP는 네트워크 트래픽에 대해 가장 효율적인 경로를 찾으려고 노력합니다. 하지만 위에서 언급했듯이 홉 수만이 BGP 라우터가 이러한 경로를 찾는 데 사용하는 유일한 요소는 아닙니다. BGP는 각 경로에 속성을 할당하며, 이러한 속성은 여러 옵션이 있을 때 라우터가 경로를 선택하는 데 도움이 됩니다. 많은 라우터에서 관리자는 속성을 사용자 지정하여 네트워크에서 트래픽이 흐르는 방식을 보다 세밀하게 제어할 수 있습니다. BGP 속성의 몇 가지 예는 다음과 같습니다:
그 외에도 몇 가지 다른 BGP 속성이 있습니다. 이러한 모든 속성은 BGP 라우터의 우선순위에 따라 정렬되므로, 예를 들어 BGP 라우터는 우선 가중치가 가장 높은 경로를 확인한 다음 로컬 기본 설정을 확인한 다음 라우터가 경로를 시작했는지 확인하는 등의 작업을 수행합니다. (따라서 수신된 모든 경로의 가중치가 동일한 경우 라우터는 로컬 기본 설정에 따라 경로를 선택합니다.)
2004년에 TTNet이라고 하는 터키의 ISP가 실수로 잘못된 BGP 경로들을 이웃에 알렸습니다. 이 경로들은 TTNet 자체가 인터넷상 모든 트래픽에 대한 최적의 목적지라고 주장했습니다. 이 경로들이 점점 더 많은 자율 시스템에 전파되면서 엄청난 장애가 발생하여 하루 동안 전 세계의 많은 사람이 인터넷의 일부 또는 전체에 액세스할 수 없는 위기 상황이 발생했습니다.
마찬가지로 2008년에는 파키스탄의 한 ISP가 BGP 라우팅을 이용해 파키스탄 사용자가 YouTube를 방문하지 못하도록 차단하려 했습니다. 이어서 이 ISP는 실수로 이 경로를 이웃 AS에 알렸으며 해당 경로는 인터넷의 BGP 네트워크를 통해 신속하게 전파됐습니다. 이 경로는 YouTube에 액세스하려는 사용자를 막힌 경로로 보냈으므로 몇 시간 동안 YouTube에 액세스할 수 없게 되었습니다.
이와 관련된 또 다른 사건은 2019년 6월, 펜실베니아의 한 소규모 회사가 버라이즌의 네트워크를 경유하는 경로를 선호하게 되면서 사용자들이 몇 시간 동안 인터넷의 대부분을 사용할 수 없게 된 사건입니다.
이들은 BGP 하이재킹이라고 하는 행위의 사례인데 이는 항상 실수로 발생하는 것은 아닙니다. 2018년 4월에 공격자들이 Amazon의 DNS 서비스로 향하는 트래픽을 리디렉션하도록 세심하게 악성 BGP 경로를 작성하였습니다. 이들은 해당 트래픽을 자신들에게 리디렉션함으로써 10만 달러에 상당하는 암호화폐를 빼돌릴 수 있었습니다.
BGP 하이재킹은 여러 종류의 공격에 사용될 수 있습니다:
이러한 사고가 발생하는 것은 BGP의 경로 공유 기능이 신뢰를 기반으로 하며 자율 시스템이 자신에게 공유되는 경로를 암묵적으로 신뢰하기 때문입니다. 피어가 (의도적이든 아니든) 잘못된 경로를 알리게 되면 트래픽은 원래 예정된 곳이 아닌 곳을 향하게 되며 악의적인 결과로 이어질 가능성이 있습니다.
다행히 BGP 보안에도 몇 가지 진전이 있었습니다. 대표적인 것으로 리소스 공개키 기반구조(RPKI)라고 하는 라우팅의 보안 프레임워크가 2008년에 도입되었습니다. RPKI는 경로 출발지 인증(ROA)이라고 하는, 암호로 서명된 레코드를 이용하여 어떤 네트워크 운영자가 BGP를 이용해 특정 조직의 IP 주소를 발표할 수 있는지 확인합니다. 이렇게 함으로써 인증된 당사자만이 특정 조직의 접두사를 발표할 수 있게 됩니다.
하지만 RPKI의 존재만으로는 충분하지 않습니다. 대규모 네트워크에서 BGP 보안 모범 사례를 따르지 않는다면 대규모의 하이재킹 공격이 펼쳐질 수 있습니다. 현재는 상위 인터넷 공급자의 50% 이상이 어느 정도 RPKI를 지원하고 있지만, BGP 보안을 완전히 확보하려면 대다수가 이를 지원해야 합니다. 네트워크 운영자들은 RPKI를 구현하는 한편 Cloudflare Route Leak Detection 같은 네트워크 경고 기술을 이용함으로써 자체 네트워크를 보호할 수 있습니다. 이 기능은 승인받지 않은 당사자가 자체 접두사를 알릴 경우 이를 고객에게 알림으로써 BGP 하이재킹을 방지하는 데 도움이 됩니다.