00:00:00인터넷 세상에 좀비가 우글거린다는 사실, 알고 계셨나요? 아, 여러분이 생각하시는 그런 좀비는 아닙니다.
00:00:05제가 말씀드리는 건 바로 'BGP 좀비'입니다. BGP는 경계 경로 프로토콜(Border Gateway Protocol)의 약자로,
00:00:12대규모 네트워크가 어떤 IP 주소로 트래픽을 전달할 수 있는지 알리는 통신 규약입니다.
00:00:18인터넷은 네트워크끼리 서로 찾아가는 방법을 알려주는 거대한 글로벌 지도로 연결되어 있는데,
00:00:24이 모든 것이 BGP 시스템을 통해 유지됩니다. 대개의 경우
00:00:29이 시스템은 원활하게 작동하지만, 가끔 예기치 못한 좀비들이 시스템에 나타나곤 하죠.
00:00:35왜 이런 일이 발생하는 걸까요? 오늘 영상에서 그 이유를 함께 알아보겠습니다.
00:00:39BGP 시스템에서는 네트워크가 트래픽을 새로운 위치로 보내고 싶을 때,
00:00:49해당 경로를 광고(Advertise)합니다. 반대로 이전 위치로의 트래픽을 중단하고 싶을 때는
00:00:54해당 경로를 철회(Withdraw)하죠. 이런 일은 비일비재합니다. 네트워크는 데이터 센터 간에 트래픽을 이동시키거나,
00:01:00고객을 새로운 에지로 옮기기도 하고, 점검을 위해 서버를 오프라인으로 전환하기도 하니까요.
00:01:04경로 철회는 단순히 해당 경로가 더 이상 유효하지 않음을 전 세계에 알리는 방식입니다.
00:01:09그런데 가끔 이상한 일이 벌어집니다. 분명 경로가 철회되었는데도,
00:01:13일부 네트워크가 그 경로가 여전히 존재한다고 믿는 상황이죠. 이미 사라졌어야 할 경로로
00:01:20계속해서 트래픽을 보내는 겁니다. 이것이 바로 'BGP 좀비'입니다. 경로를 생성한 네트워크가 이미 삭제했음에도 불구하고,
00:01:26글로벌 라우팅 테이블에서 사라지기를 거부하는 오래된 경로를 말합니다.
00:01:32그럼 이 좀비가 살아있을 때 트래픽은 어떻게 될까요? 목적지에 도달하지 못합니다. 트래픽은
00:01:38폐기되기 전까지 잠시 라우터 사이를 맴돌거나(루프), 막다른 길에 이를 때까지
00:01:43여러 네트워크를 가로지르며 길고 먼 길을 돌아가게 됩니다. 혹은 트래픽을 전달받은 네트워크가
00:01:49어떻게든 전송해보려 애쓰지만 결국 유효한 곳으로 보내지 못할 수도 있죠. 사용자 입장에서는
00:01:55페이지 로딩이 멈추거나 타임아웃이 발생하고, 앱 연결이 잠시 끊기는 현상으로 나타납니다.
00:02:01때로는 거의 느껴지지 않을 수도 있지만, 어떤 경우에는 속도 저하가 매우 뚜렷하게 나타납니다.
00:02:06그다음으로 궁금한 점은 왜 라우터들이 즉시 글로벌 지도를 업데이트하지 못하느냐는 것입니다.
00:02:11답은 BGP가 변경 사항을 처리하는 방식에 있습니다. 구체적인 경로가 사라지면,
00:02:17라우터는 대체할 수 있는 덜 구체적인 경로를 찾습니다. 이 검색에는 시간이 걸리죠. 그 과정에서
00:02:23일부 라우터가 이전 항목을 지우지 못해 케케묵은 정보에 갇혀버리는 일이 발생합니다. 실제로
00:02:29Cloudflare의 관찰 결과, 대규모 네트워크에서 이러한 좀비들은 약 6분에서 11분 정도 지속되었습니다.
00:02:34IPv4 좀비가 IPv6 좀비보다 더 오래 살아남는 경향도 있었죠. 하지만 결국
00:02:40시스템은 스스로를 수정합니다. BGP의 모든 경로에는 타이머가 있기 때문입니다. 라우터가
00:02:46일정 기간 새로운 업데이트를 받지 못하면 자동으로 해당 경로를 삭제합니다. 설령 라우터가
00:02:52처음에 철회 신호를 놓쳤더라도, 이웃 라우터들과 계속해서 주고받는 BGP 메시지를 통해
00:02:57결국 경로가 사라졌음을 알게 됩니다. 주변의 충분한 라우터들이 새로운 상태에 합의하면,
00:03:03좀비는 비로소 사라집니다. Cloudflare는 BYOIP(Bring Your Own IP) 고객과 작업하던 중 이 현상을 발견했습니다.
00:03:09이 과정에서 Cloudflare는 고객의 IP 대역을 일시적으로 광고했다가 핸드오프가 완료되면 이를 철회합니다.
00:03:15철회 자체가 깔끔하게 이루어져야 함에도 불구하고, 실제로는
00:03:21일부 제공업체들이 경로가 사라진 후에도 한참 동안 이전 경로를 계속 사용하는 모습이 포착되었습니다.
00:03:27이런 정보의 불일치는 트래픽이 Cloudflare 네트워크로 들어올 때 예상치 못한 비효율적인 경로를 타게 만들었죠.
00:03:33이 문제를 해결하기 위해 Cloudflare는 더 안전한 방식을 도입했습니다. 기존 경로를 바로
00:03:38철회하는 대신, 먼저 안정적인 위치에서 동일한 경로를 다시 공표합니다. 그러면 전 세계
00:03:45라우터들이 새로운 버전으로 깔끔하게 전환하도록 유도할 수 있습니다. 그런 다음에야 비로소 이전
00:03:50공고를 철회합니다. 이는 좀비를 발생시키는 급격한 대체 경로 검색 현상을 방지합니다. 또한 Cloudflare는
00:03:56내부 시스템을 튜닝하여 향후 이러한 전환이 더 매끄럽게 이루어지도록 조치했습니다. 이 주제에 대해
00:04:02더 자세히 알고 싶으시다면, Cloudflare가 발행한 상세 블로그 포스트를 확인해 보시기 바랍니다.
00:04:07결론적으로, 이번 사례는 인터넷의 가장 근본적인 부분조차 특정 조건에서는
00:04:13예상치 못하게 작동할 수 있음을 보여줍니다. 다행히 대부분의 경우 이런 문제는
00:04:19사용자가 눈치채기도 전에 해결됩니다. 하지만 가끔 좀비가 나타날 수도 있죠. 인터넷은 매초 발생하는
00:04:25수백만 건의 라우팅 결정으로 유지됩니다. BGP 좀비와 같은 가끔씩의 이변은 인터넷의
00:04:31모든 것을 원활하게 유지하는 데 얼마나 정교한 협력이 필요한지 잘 보여줍니다. 자, 여기까지입니다.
00:04:37이제 BGP 좀비가 무엇인지 알게 되셨을 겁니다. 다음에 웹페이지가 멈추거나 연결에 실패한다면,
00:04:43방금 인터넷 좀비를 마주친 것일지도 모릅니다. 이런 기술적인 분석이 흥미로우셨다면,
00:04:48영상 하단의 좋아요 버튼을 꼭 눌러주세요. 채널 구독도 잊지 마시고요. 지금까지
00:04:53Better Stack의 Andris였습니다. 다음 영상에서 뵙겠습니다.