당신의 백본은 인터넷의 백본이 아니다
다섯 네트워크가 내 테이블 오리진의 94%에 닿는다. AS_PATH를 한 홉 옮기면 전혀 다른 다섯이 된다.
Michel Wijnberg
앞 글은 인터넷에 관한 사실처럼 보이는 결과로 끝났습니다. 백만 경로짜리 테이블에서 자율 시스템 다섯이 오리진 AS의 94%에 닿는다는 것이었습니다. 그 다섯은 이렇습니다.
AS2516. AS7575. AS2497. AS6939. AS1221.
이제 중요한 대목입니다. 이들은 아시아태평양 네트워크이며, 여기서의 지배력은 이 관측 지점과 그것을 먹여 주는 업스트림 두 개의 성질이지 전 지구적 백본의 측정이 아닙니다. 컬렉터의 지리가 그것을 일으켰다고는 일부러 주장하지 않겠습니다. 테이블이 보여 주는 것은 바로 그 업스트림들이 바로 그 경로들에 어떤 네트워크를 올렸는가이고, 업스트림 선정과 정책과 상업적 관계가 전부 거기 얽혀 있습니다. 같은 측정에서 Lumen은 11%, Cogent는 **6%**로 나타 납니다. 인터넷의 백본을 꼽아 보라 하면 대부분의 엔지니어가 망설임 없이 댈 두 네트워크입니다.
피드를 AS_PATH로 한 홉 옮기면 답은 다른 다섯 개의 이름이 됩니다.
이 글은 그 얘기입니다. 이건 진기한 사실이 아니라, 어떤 도구가 인터넷에 대해 말하고 있는지 아니면 당신 자신의 연결성에 대해 말하고 있는지를 가르는 성질이며, 그 둘 중 어느 쪽인지를 표시해 주는 도구는 거의 없습니다.
그 순위가 실제로 재고 있는 것
“트랜싯 도달”은 전역적 성질처럼 들립니다. 계산은 이렇습니다. 내 테이블에 있는 오리진 AS 중에서 이 AS의 원뿔 안에 드는 것이 몇 개인가. 이 문장의 모든 항이 피드로 한정되어 있고, 원뿔은 지배 트리 위에서 취해집니다. 그 지배 트리가 실제 그래프의 기술이 아니라 근사임은 앞 글에서 보였습니다.
그러므로 위 다섯 이름의 정직한 독법은 “이것이 인터넷의 코어다”가 아닙니다. 이렇습니다.
이 라우터가 어디에 있고 그 업스트림 둘이 무엇을 보내기로 했는지를 전제할 때, 이 라우터의 도달성이 얹혀 있는 것은 이 다섯 네트워크다.
진짜로 쓸모 있는 답입니다. 어느 트랜싯 계약을 재협상할지 정하기 전에 원하는 바로 그 답입니다. 다만 다른 누구에게도 옮겨 갈 수 없을 뿐이며, 그것이 옮겨 갈 수 있는 양 제시하는 제품은 저자의 지리를 기능이라며 출하하는 셈입니다.
그래서 Osprey 코드 어디에도 티어 1 네트워크 목록이 없고, 앞으로도 없을 것입니다. 순위는 피드 마다, 당신의 테이블에서, 매번 계산됩니다. 하드코딩한 목록은 그것을 쓴 사람에게는 맞고 나머지 모두에게는 조용히 틀리며, 그 실패는 눈에 보이지 않습니다. 이름들이 그럴듯해 보일 테니까요.
같은 테이블, 세 번째 질문, 네 번째 답
지금까지의 시리즈: 프리픽스 수로 줄 세우면 분할 광고자들이 나옵니다. 트랜싯 도달로 줄 세우면 위의 다섯이 나옵니다. 여기 세 번째 축이 있습니다. “누구와 피어링해야 하는가”가 또 다른 질문 이기에 만든 축입니다.
트랜싯을 거쳐 당신에게 닿는 주소 공간을, 오리진별로, 두 홉 이상에서 줄 세워 보십시오.
AS1136 (KPN). AS6805 (Telefónica Germany). AS9644 (SK Telecom). AS3243 (MEO). AS4739 (iiNet).
액세스 네트워크입니다. 앞의 두 목록 어디에도 나오지 않습니다. 이들은 그 가입자들이 지금 당신이 돈을 내는 누군가를 거쳐 도착하고 있는 네트워크이고, 피어링 담당자가 원하는 집합이 정확히 이것입니다.
그리고 이 축은 프리픽스 수보다 훨씬 가팔라서 쓸 만합니다. 아래 두 열은 같은 모집단, 즉 트랜싯을 거쳐 도달한 오리진 위에서 측정했으므로 서로 직접 비교할 수 있습니다. (앞 글의 8.3%와는 비교할 수 없습니다. 그건 테이블 전체에 대한 프리픽스 수 상위 12였고, 분모가 다릅니다.)
| 트랜싯 경유 모집단 커버리지 | 주소 공간 기준 | 프리픽스 수 기준 |
|---|---|---|
| 상위 12 | 42.2% | 10.9% |
| 상위 48 | 63.5% | 27.9% |
이것은 풀 테이블이 아니라 DN42라는 다른 피드 위에서 돌린 축이므로, 이름도 비율도 그 피드 자신의 것입니다. 옮겨 가는 것은 헤더 한 줄입니다. 이 축이 몇 개의 네트워크에 관한 것인지, 그려진 것들이 공간의 얼마를 쥐고 있는지, 그리고 나머지는 화면에 없다는 것을 말해 줍니다. 마지막 구절을 떨어뜨린 뷰는 겉모습이 똑같고 뜻은 달라집니다.
축 셋, 서로 겹치지 않는 답 셋, 테이블 하나. 그 어느 것도 그 순위가 아닙니다. 각각은 누군가 실제로 품고 있는 질문에 대한 답이고, 여기서 가능한 유일한 부정직은 그중 하나를 이름표 없이 내놓는 것입니다.
우리 구현이 있지도 않은 형태를 전제했던 두 곳
둘 다 적어 둘 만합니다. 옷만 다를 뿐 같은 오류이기 때문입니다. 국소 구조에서 전역 성질을 계산하는 오류입니다.
부분 트리를 더하는 것은 합집합이 아닙니다. 첫 설계는 트랜싯 공간을 클라이언트에서, 어떤 노드 아래 있는 모든 것의 주소 공간을 더해서 계산했습니다. 실제 합집합에 비해 1.3배에서 3.6배 틀립니다. 한 오리진의 주소 공간이 전부 하나의 트랜싯을 통해 도착하지는 않기 때문 입니다. 두 갈래로 도착하는 공간은 두 번 세어지고, 그 오차는 보정으로 없앨 수 있는 상수가 아닙니다. 고객들이 얼마나 멀티홈되어 있느냐에 달려 있습니다. 이 필드는 이제 해당 AS를 통과 하는 프리픽스에 대한 진짜 합집합으로 서버에서 계산되거나, 아니면 아예 제공되지 않습니다.
이 수정은 제품 뒤에 숨어 있지 않고 제품 안에 보입니다. 두 수치가 모두 표시되고, 작은 쪽에는 트리 합이라는 이름표가 붙고, 그 아래 주석이 어느 쪽이 정직한 답이며 왜 그런지를 말합니다. 수치 하나면 될 것보다 말이 많지만, 그것이 그냥 숫자와 그것으로 행동할 수 있는 숫자의 차이입니다.
후보가 반드시 잎은 아닙니다. 세 번째 축의 첫 구현은 오리진이 가장자리에 있다는 논리로 잎 노드만 취했습니다. 그 바람에 전체 기점 프리픽스의 37%를 지고 있는 AS 276개를 건너뛰었 습니다. AS9808은 프리픽스 14,214개를 기점으로 내면서 동시에 아래에 고객 다섯을 두고 있습니다. 앞 글의 94.4%라는 수치가 통계가 아니라 버그로 나타난 형태입니다. 거의 모든 트랜싯이 스스로도 기점이라면, “오리진은 잎이다”는 단순화가 아니라 답의 3분의 1을 버리는 필터입니다.
둘 다 진짜 테이블에 대고 측정하다가 잡혔습니다. 둘 다 DN42로는 잡히지 않았을 것입니다. 거기는 구조가 작아 근사가 우연히 성립해 버리니까요.
여기서는 아무것도 안 하지만 당신에게는 통할 필터
관측 지점이 만든 산물이 하나 더 있고, 이건 거의 우스운 편입니다.
세 번째 축에는 홉 필터가 있습니다. 거리 2 이상의 오리진만 보여 직접 이웃을 제외하는 것입니다. 이 피드에서는 오리진 7,578개 중 3개를 제거합니다. 사실상 아무 일도 하지 않습니다. 관측 지점이 업스트림 둘을 가진 스텁이라 제외할 직접 이웃이 거의 없기 때문입니다.
진짜 피어링을 가진 네트워크에서는 같은 컨트롤이 유의미합니다. 같은 코드, 같은 기본값인데, 그 유용성은 어디서 도느냐에 따라 결정적인 것과 무의미한 것 사이를 오갑니다.
우리는 이것을 남겨 두었습니다. 이 축의 가치는 필터가 아니라 공간 측정에 있고, 대안이란 하나의 관측 지점에 맞춰 컨트롤을 조율하는 일이기 때문입니다. 그래도 이것은 “네트워크란 이렇게 생겼다” 는 직관이 임의의 실제 네트워크로부터 얼마나 멀 수 있는지를 잘 보여 줍니다.
부재 역시 관측 지점의 모양을 하고 있다
13편은 당신의 테이블에서 빠진 것은 멀리 있는 게 아니라 부재하는 것이며, 그 부재에는 반지름이 없다고 논했습니다. 관측 지점이라는 각도가 그 생각을 완성합니다.
경로가 빠지는 네 가지 이유 하나하나가 당신 위치의 성질입니다. 무언가가 당신에게 광고되지 않았다. 당신의 정책이 거부했다. 당신의 피드 상류에 있는 애그리게이터가 뭉갰다. 당신이 뒤에 있는 라우트 서버가 홉을 남기지 않았다. 같은 코드를 다른 테이블에 겨누면 다른 집합이 보이지 않게 됩니다. 조용히, 그리고 어느 것에도 표시가 남지 않은 채로.
그러니 이 빈틈은 같은 자리에서 피드를 더 받으면 평균으로 지워질 잡음이 아닙니다. 당신이 어디에 앉아 있느냐로 구조화되어 있으며, 이것이 이 글이 펴 온 논지의 가장 강한 형태입니다. 당신의 관측 지점은 인터넷의 순위를 다르게 매기는 데 그치지 않고, 인터넷의 어느 부분이 당신에게 존재하는지를 결정합니다.
요점
이 글의 모든 것이 실제 테이블에서 올바르게 계산된 수치이고, 그중 어느 것도 인터넷에 관한 사실이 아닙니다.
당신의 테이블이 얹혀 있는 다섯 네트워크, 수렴하는 순위, 필터가 무언가를 하는지 여부, 심지어 “오리진은 잎”이 안전한 단순화인지까지. 관측 지점이 움직이자 전부 움직였고, 그중 둘은 버그라고 부를 만큼 움직였습니다.
“여기서 보면 인터넷은 어떻게 생겼는가”라고 묻는 운영자는 옳은 질문을 하고 있습니다. 일을 하고 있는 낱말은 여기서이며, 그것을 떨어뜨린 뷰는 더 단순해진 것이 아닙니다. 아무도 하지 않은 질문에, 남의 연결성으로 답하고 있는 것입니다.
다음: 풀 피드를 유지하는 비용을, 추정이 아니라 측정으로. 측정이 죽여 버린 우리 자신의 기본값 까지 포함해서. 풀 피드의 실제 비용.