< Facebook을 다운 시킨 원인, BGP hijacking이 무엇인가? >
페이스북의 서버 다운이 이례적으로 복구되는데 까지 오래 걸렸습니다. (약 4시간~5시간) 정확히 말하자면 이는 서버 다운은 아니었습니다. 네트워크의 문제였죠. 그리고 이렇게 복구에 오래 걸리는 네트워크 관련 문제는 대부분 "DNS"에 의해 발생합니다.
실제로 페이스북, 인스타그램 접속 제한의 문제도 DNS였구요. 이전 게시글에서 BGP hijacking을 비롯한 BGP 관련 문제가 아닐까 단순히 '추정'하고 있었는데 그 추정이 사실이었습니다. https://www.zdnet.com/article/what-took-facebook-down-major-global-outage-drags-on/
BGP(Border Gateway Protocol)는 인터넷 최상위에 존재하는 autonomous systems (AS) (ex. KT, SKT, LGU+ 등 ISP)간에 라우팅에 사용되는 표준 프로토콜입니다. 그렇기 때문에 대부분의 사람들과 각 기업의 네트워크 관리자들은 이러한 BGP를 다룰 일이 없습니다. 그래서 BGP와 BGP Hijacking이 뭐길레 이런 문제가 발생했을까 궁금해 하실텐데요.
> BGP
앞서 잠깐 설명 드렸듯 BGP는 인터넷 라우팅 프로토콜이며, 사용자의 트래픽이 목적지 IP 주소에 최대한 효율적으로 도달할 수 있도록 방향을 제공합니다.
사용자가 웹 브라우저에서 도메인 주소(ex. facebook.com)를 입력하면 DNS 서버에서 IP를 주소를 제공하고, BGP는 해당 IP 주소에 도달하는 가장 효율적인 방법을 제공하는 것이죠.
> BGP Hijacking
인터넷은 상호 연결된 여러 개의 대규모 네트워크로 구성되어 있습니다. 이들은 모두 분산되어 있기 때문에 데이터 패킷이 의도한 대상 IP 주소에 도달할 수 있도록 하는 관리 기관이나 교통 경찰이 따로 존재하지 않습니다. 그래서 BGP가 이 역할을 수행합니다. BGP가 없다면 웹 트래픽은 비효율적인 라우팅으로 인해 목적지에 도달하는 데 엄청난 시간이 걸리거나 의도한 목적지에 전혀 도달하지 못할 수도 있습니다. 그리고 각 BGP 라우터들은 AS의 업데이트를 무조건 신뢰합니다.
그런데 악의적으로 또는 의도치 않은 BGP에서 특정서비스(예:페이스북)의 IP Prefix는 '우리한테 연결해' 라고 브로드캐스트해버리면, 다른 BGP Peer들은 이 AS의 업데이트 요청을 신뢰하게 되고(가장 최근 브로드캐스트를 신뢰함) 실제로 특정서비스(예:페이스북) IP 주소로 연결되는 요청은 악의적으로 또는 의도치 않은 BGP로 보내버리게 됩니다.
이것이 BGP와 BGP Hijacking 이며, 이를 방지하기 위해 RPKI와 BGPsec라는 솔루션이 제시되기도 했지만, 이러한 솔루션들은 아직까지 널리 적용/구현되지 않은 상태입니다.
좀 더 자세한 내용은 링크 참조 플리즈~ ^^