В Интернете каждый соединен с каждым – верно?
Является ли Интернет единым согласованным доменом связности, где каждый может соединиться с каждым? И каким удивительным образом связность Интернета остается такой стабильной и всеобъемлющей, учитывая тот факт, что этот результат зависит от потребностей рынка без каких-либо конкретных гарантий правильного исхода. В этой статье Джефф Хьюстон исследует глобальную систему маршрутизации Интернета с различных наблюдательных точек и обнаруживает адресное пространство, недостижимое для многих. Джефф предлагает несколько объяснений этому явлению, раскрывая внутреннюю механику отношений между операторами.
Джефф ХьюстонСуществует ряд серверов, которые собирают анонсы BGP в различных точках наблюдения и публикуют все множество этих отдельных потоков информации о маршрутизации. В данной статье я использую данные, полученные в рамках проекта Route Views, поскольку собранные данные имеют удобный размер и легко перемещаются скриптами. RIPE NCC также обслуживает набор коллекторов маршрутов в рамках услуги Routing Information Service (RIS), которая содержит большое собрание моментальных снимков таблиц маршрутизациии обновлений BGP.
Ниже приведен график (рис. 1), над которым я уже некоторое время размышляю, иллюстрирующий тему, которую я бы хотел рассмотреть в данной статье. Существует целый ряд «маршрутизационных коллекторов», которые собирают проекции междоменной маршрутизации с нескольких различных точек наблюдения, расположенных по всему Интернету. Рисунок 1 показывает график количества записей маршрутов, видимых в рамках ежедневного моментального снимка таблицы маршрутизации с каждого пира одного из серверов проекта Route Views. Каждая отдельная линия на этом графике представляет собой число маршрутов, анонсированных серверу Route Views каждым из его пиров.
Этот график показывает, что вид на систему маршрутизации Интернета немного различается для каждого пира Route Views. Несомненно, если бы Интернет представлял собой единый, согласованный домен связности и если бы каждый мог единообразно «дотянуться» до любой другой точки, то не ожидали ли бы мы в таком случае, что проекция системы маршрутизации, системы, которая в конечном счете гарантирует, что каждый соединен с каждым, была везде одинаковой? И если это было бы правдой, и проекция системы маршрутизации обеспечивала бы одинаковый вид Интернета, независимо от конкретной точки наблюдения, то вместо нарисованных на рис. 1 примерно 40 разных линий за определенный год – каждая для отдельной точки наблюдения за маршрутизацией – мы должны были бы увидеть одну и ту же линию, повторенную более 40 раз.
Однако данный график демонстрирует, что каждая из этих точек наблюдения видит немного разный Интернет. И эти различия не являются временными. На протяжении всего 2015 года эти разные точки наблюдения устойчиво видят разное число маршрутов в своей локальной системе маршрутизации. Поэтому данный феномен не является чем-то, что произошло в конкретный момент времени и что будет откорректировано в ходе обычной работы протокола маршрутизации. Эти различия устойчиво наблюдаются в течение всего года. Некоторые объявления маршрутов просто не видны для части точек наблюдения. Одна из причин, почему мы используем эти «коллекторы» маршрутизации, заключается в сборе разных ракурсов и в понимании полученных различий. Поэтому я бы хотел более подробно взглянуть на эти различия и увидеть, можно ли сделать какие-либо выводы о связности Интернета.
Возможно, что эти различия возникли как некий результат размера и возраста, и что «почтенный» Интернет, работающий по протоколу IPv4, получил эти расходящиеся ракурсы маршрутизации исключительно вследствие своего размера и возраста. Поэтому более «молодая» и меньшая по размерам система маршрутизации может по этой причине предоставить единый ракурс. Второй рассматриваемый график (рис. 2) относится к Интернету IPv6 за 2015 год.
Вместо примерно 600 тысяч маршрутов он содержит всего 20 тысяч. Однако мы по-прежнему наблюдаем, что некоторые сети видят больше маршрутов, чем другие, и эта картина остается устойчивой и стабильной в течение всего года.
Что означают эти различия? Возможно, мы видим доказательство фрагментированности Интернета, когда из некоторых точек Интернета нельзя дотянуться до других мест? Являются ли эти различия в ракурсах для разных пунктов наблюдения за маршрутизацией признаками разрывов в ткани связности Интернета?
Перед тем как переходить к выводам, полезно собрать вместе дополнительные данные. Одно из возможных объяснений различия в количестве объявленных маршрутов заключается в том, что система маршрутизации содержит два компонента информации: базовая достижимость и информация, относящаяся к политике, или правилам, определяющим, каким образом можно добраться до места назначения.
В общих чертах последнюю часть можно назвать набором анонсов для «инжиниринга трафика». Они не меняют общий набор адресов, которые анонсированы как достижимые в системе маршрутизации, однако предоставляют уточнения относительно того, каким образом следует «добираться» до конкретного адреса. Одна половина из 600 тысяч входных данных в системе маршрутизации IPv4 анонсирует «достижимость» как агрегированные объявления или «корневые» префиксы маршрутизации. Вторая половина добавляет к некоторым из этих базовых данных достижимости оговорки, уточняющие достижимость за счет предложения немного отличающихся путей (или нет!) к месту назначения. Поэтому возможно, что различия, видимые из каждой точки наблюдения, фактически не являются различиями в базовой связности, а представляют собой различия в более специфических анонсах, и они демонстрируют, что в разных частях сети могут существовать разные предпочтительные пути, по которым добираются до определенных мест назначения. Смотреть Рис. 3.
Различие в количестве маршрутов, видимое с каждой точки наблюдения, может быть объяснено тем фактом, что усилия по установлению скрупулезного контроля над определенными путями, которые использует междоменный трафик за счет объявления более специфических маршрутов, до некоторой степени намеренно локализованы. Распространение этих префиксов управления трафиком аналогичным образом умышленно ограничено конкретной областью или регионом. Поэтому в качестве вывода можно было бы заключить, что разброс в количестве объектов маршрутизации, видимых в каждой точке наблюдения обоих сетей – IPv4 и IPv6, – не происходит вследствие какой-либо фундаментальной разницы в достижимости любых адресов, а просто объясняется желанием установить дополнительный контроль над путями перемещения трафика.
Один из способов протестировать обоснованность такого вывода заключается в том, чтобы еще раз взглянуть на данные коллекторов маршрутов, но в этот раз вместо того, чтобы обращать внимание на количество маршрутов, которые видны в каждой точке наблюдения, следует посмотреть на общий диапазон адресов, которые анонсируются как достижимые. Если эта теория является верной, то общий диапазон адресов должен быть одинаковым для каждой точки наблюдения, и мы можем вполне оправданно поверить, что Интернет действительно представляет собой однородную область связности.
И опять, данные не согласуются с этой теорией. При рассмотрении данных (рис. 4) можно заметить, что для IPv4 существует диапазон из примерно пяти миллионов адресов, при этом некоторые точки наблюдения «видят» более значительный набор адресов, анонсированных как достижимые, по сравнению с другими точками наблюдения. И опять прослеживается четкое постоянство в рамках всего года: те пиры, которые «видят» более крупный интервал адресов по сравнению с другими пирами, последовательно испытывают это на протяжении всего года. Если пренебречь тремя исключениями, то те пиры, которые объявляют меньший интервал адресов, делают это устойчиво в течение всего периода. Одно из исключений указывает на тенденцию увеличе ния диапазона достижимости, приближая его к диапазону достижимых адресов группы, тогда как два других пира анонсируют диапазон, который сокращается в течение года.
На графике для IPv6 можно заметить ту же ситуацию, при которой разные точки наблюдения «видят» разный диапазон адресов. Для IPv6 существуют крупномасштабные различия, например, один из пиров маршрутизации «видит» только половину суммарного интервала адресов пира, который анонсировал самый большой диапазон (рис. 5). Различие заключается в том, что этот пир не анонсирует маршрут /16, который анонсируют все другие пиры. Этому случаю легко найти объяснение: существует только один анонс /16 в «мире» IPv6, а именно – 2002::/16, анонсирование туннельного входа для технологии туннельного перехода 6to4. Возможно, что данная сеть не использует шлюз 6to4, или, что более вероятно, в сети расположен локальный шлюз, анонс которого ограничен локальной областью, которая невидима в Route Views.
Рис. 5 предполагает, что IPv6 показывает тесный «кластер» достижимости адресов, и в этом отношении это, возможно, лучше, чем эквивалентная картинка для Интернета на базе IPv4. Однако это не является хорошим отображением Интернета на базе IPv6. Когда мы рассматриваем только данный центральный кластер (рис. 6), становится понятно, что здесь подобно IPv4 существует разброс, и некоторые сети «видят» намного больше IPv6-префиксов /32 (в некоторых случаях на 600 больше), чем другие, что эквивалентно вариации в диапазоне достижимости адресов в размере /23.
Таблица 1. Вид от Route Views на анонсированные таблицы маршрутизации IPv4 каждого пира, 17 февраля 2016 г.
Таблица 2. Вид от Route Views на анонсированные таблицы маршрутизации IPv6 каждого пира, 18 февраля 2016 г.
Давайте продолжим детализацию в этой области и перейдем на еще один более подробный уровень. Одним из способов изучения этого является определение «ядра» анонсированных префиксов. В данном случае мы будем использовать пороговое значение в 5/8 от набора пиров или 62,5%. Если 5/8 (или больше) пиров объявляют какой-либо префикс адреса, то мы можем включить его в «кворумный» набор объявленных маршрутов. После этого мы можем взять набор «корневых» префиксов кворума и определить кворумный диапазон адресов, который затем можно использовать для сравнения с каждым пиром, анонсирующим таблицу маршрутов в Route Views. Что нас интересует, так это область, в которой отдельные пиры анонсируют больший диапазон адресов, видимый в кворумном наборе, и, подобным же образом, суммарный диапазон адресов, существующий в кворумном наборе, но явно не анонсируемый пиром. Например, оператор Telstra из Австралии (AS1221) анонсировал диапазон адресов, эквивалентный 166.06 /8 из кворумного набора. Примерно 14 миллионов адресов IPv4, которые образуют часть кворумного набора, не были анонсированы компанией Telstra, при этом Telstra включила 199 552 анонсированных адреса, которые не входили в кворумный набор.
Полный анализ всех пиров из моментального снимка BGP проекта Route Views, зафиксированного 17 февраля 2016 года, показан в таблице 1. На основе этой таблицы очевидно, что никто не видит тот же самый набор адресов, что и любой другой участник, при этом разброс может быть достаточно велик. Таблица 2 показывает аналогичный отчет для IPv6. И опять очевидно, что здесь не существует единого ракурса. Некоторые пиры видят очень мало адресов сверх кворумного набора, тогда как другие видят 120-130 дополнительных адресов /32. Картина для пропущенных адресов также является смешанной. Некоторые пиры имеют очень мало пропущенных данных, тогда как другие не видят более крупный набор адресов. Хотя единый моментальный снимок системы маршрутизации способен проиллюстрировать, что в терминах явно анонсированного адресного пространства в разных частях Интернета существуют значительные различия, он не может показать, являются ли такие различия следствием обычной работы динамического протокола маршрутизации, а это означает, что моментальный снимок, сделанный одним днем или даже одним часом позже, покажет существенно отличающуюся картину, либо же эти различия являются структурными, в каковом случае картина, показывающая различия в анонсированных наборах адресов для каждого пира, будет относительно постоянной с течением времени.
Анализ ежедневных моментальных снимков маршрутизации, сделанных в рамках проекта Route Views, показан на рис. 7. Масштаб этого графика равен ±100 миллионов адресов или примерно шесть диапазонов адресов /8. На этом графике каждый пир вычерчен в виде двух линий. Линия в положительной области представляет собой количество дополнительных адресов, которые пир анонсирует в дополнение к адресам, образующим кворумный набор. Линия в отрицательной области – это суммарный объем адресного пространства, которое входит в кворумный набор, но не было анонсировано данным пиром. Некоторые пиры «видят» значительно меньший диапазон адресов по сравнению с другими, и эта разница остается стабильной с течением времени. Если мы посмотрим на кворум более близко, изменив масштаб графика до ±5 миллионов адресов (эквивалентно диапазону адресов /10), то можно увидеть аналогичную картину стабильности этих наборов адресов. На этом уровне детализации можно заметить некоторые суточные колебания. Что интересно, в данных имеется скачок в начале 2016 года, когда кластер пиров стал объявлять примерно четыре миллиона адресов (один /10), которые не включаются в состав кворумного набора. В середине 2015 года этот пул дополнительных адресов составлял приблизительно два миллиона и увеличился в два раза за прошедшие семь месяцев. Мы можем также взглянуть на это на уровне детализации /16 или 65 536 адресов
Здесь ряд пиров «видят» дополнительные адреса, которые не входят в кворумный набор, а степень, в которой они отличаются от кворума, остается нестабильной в течение года. Несколько пиров отличаются от кворумного набора на (вплоть до) 130 тысяч адресов (рис. 9). Аналогичная картина наблюдается для сети IPv6, где отдельные пиры могут «видеть» отличия диапазона адресов от кворумного набора, насчитывающие примерно 1000 миллионов /48 (рис. 10). Эти аномалии являются относительно долговременными, охватывая несколько месяцев. На более высоком уровне детализации, охватывающем ±50 миллионов /48 (примерно один /22), можно заметить более значительную степень расхождения от кворумного набора, когда отдельные пиры не делают анонсы маршрутов, входящих в состав кворумного набора.
И наконец, при взгляде на те же данные в масштабе ±5 миллионов /48 (примерно один /27) можно заметить перемещения отдельных анонсов /32 внутрь и из расходящегося множества для каждого пира. При этом существует базовая стабильность этих различий в течение наблюдаемого периода времени.
Насколько серьезна эта проблема?
Другими словами, до какой степени попытки одной конечной точки Интернета напрямую связаться с другой конечной точкой затрудняются структурными разрывами связности Интернета? Возможно, что на этот базовый вопрос нельзя получить сколько-нибудь точный ответ. Несмотря на то, что на этот вопрос, скорее всего, нельзя ответить, существуют некоторые представления, которые содержат косвенные указатели, помогающие количественно оценить серьезность этой проблемы в современном Интернете. Первое наблюдение: то, что мы видим в системе маршрутизации как уровень управления данными, и то, что происходит на уровне пересылки данных, не всегда согласовано. Согласно тому, как это было показано в научной работе в IMC в 2009 году («Internet Optometry: Assessing the Broken Glasses in Internet Reachability», R. Bush, O. Maennel, M. Roughan, S. Uhlig, ACM SIGCOMM IMC, 2009), целый ряд сетевых операторов использовали маршрут «по умолчанию» для того, чтобы дополнить восходящую связность. Это подразумевает, что по мере того, как пакет проходит через последовательность восходящих соединений, он не обязательно должен следовать по явно объявленным маршрутам, а может перейти на маршрут по умолчанию. Что крайне важно для широко распространенной симметричной связности, так это то, что эти маршруты присутствуют как явные маршруты провайдеров первого уровня (tier 1), поскольку на этом уровне иерархии маршрутизации Интернета маршруты по умолчанию не используются. Эта научная работа содержит сведения о том, что в то время примерно три четверти AS вели себя так, что это согласуется с восходящими маршрутами по умолчанию. Однако это открытие применимо к путям прохождения данных, которые ведут вдоль последовательностей «восходящих» отношений между AS. Довольно необычно видеть сетевого провайдера, направляющего свои маршруты по умолчанию через соединение пиров, и еще более необычным является маршрут по умолчанию, указывающий на сеть клиента. Поэтому использование маршрутов по умолчанию до некоторой степени помогает, но с помощью этого способа можно исправить только определенное подмножество аномалий маршрутизации, что ни в коем случае не является панацеей. Вторая проблема – это асимметрия связности. Очень часто мы думаем, что нарушения связности являются симметричными, поэтому если конечная точка А не может отправить пакеты в конечную точку В, то предполагается, что и обратное тоже верно. В сетях с коммутацией пакетов, особенно в таких, как Интернет, которые используют однонаправленный протокол маршрутизации для поддержания своей внутренней топологии и достижимости, такие предположения о симметрии связности не являются верными. В рамках этих сценариев не являются редкими случаи, когда А не может передать пакеты в В, но В по-прежнему может передавать пакеты в А. Можем ли мы увидеть доказательство этому? В APNIC мы используем систему измерения, в рамках которой каждый день примерно 4-10 миллионов конечных точек Интернета рекрутируются для выполнения небольшого набора базовых тестов на установление связи. Эти псевдослучайно выбранные браузеры, привлеченные практически со всех просторов Интернета, пытаются установить контакт с небольшим набором серверов, которые оборудованы и настроены для записи попыток соединения. Как это ни странно, не каждая попытка соединения получается успешной. Периодически возникает картина асимметричных неудач, при которых конечная точка может отправить пакет на сервер эксперимента, но попытка сервера ответить заканчивается безуспешно.
В течение 2015 года мы наблюдали за попытками соединения примерно 446 миллионов конечных точек IPv4 и зафиксировали 1,1 миллиона асимметричных неудач. Необработанные данные предполагают, что приблизительно одна из 400 попыток соединения заканчивается неудачей в подобной асимметричной манере. Является ли это базовым доказательством того, что не все соединено со всем в любой момент времени? Ежедневная частота неудачных соединений показана на рис. 13.
Существует целый ряд потенциальных причин для неудачи соединения в этом конкретном эксперименте. По данным невозможно провести различие между соединениями, инициированными в контексте эксперимента, и различными сканами адресов, которые сканируют адресное пространство Интернета с помощью TCP SYNS в портах 80 и 443. Поэтому маловероятно, чтобы все асимметричные неудачные попытки соединения, показанные на рис. 13, объяснялись асимметричной связностью. Однако весьма вероятно, что значительная часть неудач произошла вследствие данной конкретной формы фрагментации асимметричной связности в Интернете. Сравнимая картина для асимметричных неудач IPv6 демонстрирует еще более плохую ситуацию (рис. 14).
Вполне вероятно, что в эту относительно высокую частоту асимметричных отказов, составляющую 1 из 50 соединений, вносит свой вклад целый ряд дополнительных факторов, включая подозреваемые проблемы с абонентским оборудованием (CPE, Consumer Premises Equipment), и фрагментарная поддержка IPv6, однако в эту разочаровывающую цифру вносит свой вклад и асимметричная сетевая связность.
Почему это происходит?
Или, если задать этот вопрос в противоположном смысле, почему весь Интернет полностью не соединен между собой? Несомненно, это тот случай, когда индивидуальные мотивы совпадают с общественным благом. Каждая подключенная сеть лучше всего обслуживается, когда она достижима из всех других подключенных сетей, и потенциально на сети пагубно отражается ситуация, когда существуют сети, которые не могут с ней связаться. Кроме того, это симметричное пожелание – то же самое применимо к набору сетей, с которыми может связаться данная подключенная сеть. Теоретическое значение соединения максимизируется, когда сеть способна достичь всех других подключенных сетей (и быть достигнутой ими). Однако на практике невозможно приобрести услугу, которая гарантирует такую всеобъемлющую достижимость. Провайдеры услуг стремятся осуществить такие ожидания от имени своих заказчиков, однако всеобъемлющая связность попадает в категорию «лучшее из возможного», что отличается от «гарантии услуги».
Почему это происходит?
Всеобъемлющая связность не является требованием, налагаемым каким-либо регулирующим указанием, или предметом заранее подготовленного соглашения между сетевыми операторами. Межсетевые соединения имеют свой собственный рынок, а результаты можно рассматривать как рыночные. Сеть каждого отдельного оператора услуг работает в рамках домена или «пиринга» либо «ярусности». «Ярусность» обозначает подразумеваемую структурированность сетей с учетом набора отношений клиента и провайдера. Такая структурированность обычно бывает иерархической, т.е. если A – это клиент B, а B – клиент C, то крайне необычной является ситуация, когда C является клиентом A (рис. 15).
Рис.15. Отношения клиент/провайдер.
В данном примере A – это сеть, работающая на уровне 3, B – на уровне 2 и C – на уровне 1, при этом деньги, связанные с предоставлением услуг связи и транзитных услуг, обычно текут по тому же пути. В данном примере отсутствуют любые другие отношения между AS, A ожидает, что B сможет предоставить полный набор маршрутов ко всем другим подключенным сетям, а B аналогичным образом полагается на C. «Пиринг» обозначает немного другие отношения между сетями, в рамках которых ни одна из сетей не является клиентом другой. Типовой шаблон пиринговых отношений заключается в том, что две пиринговые сети обмениваются информацией о достижимости своих собственных маршрутов и маршрутов своих клиентов, но не обмениваются маршрутами, о которых они узнали, являясь клиентом провайдера более высокого уровня, а кроме того, они не обмениваются маршрутами, о которых узнали в результате других пиринговых отношений. Поэтому в рамках нашей простой схемы, состоящей из трех сетей A -> B -> C, если мы введем четвертую сеть – D, которая является одноранговой с сетью B, то D сможет узнать о том, как достичь адресов конечных точек, расположенных в сетях B и A, но не C (рис. 16).
Рис.16. Отношения клиент/провайдер и отношения пиринга.
Для D пиринговые отношения с A не приведут к расширению достижимости, и если бы даже это произошло, B может прийти к выводу, что «поскольку D имеет пиринговые отношения с одним из моих клиентов, D также должен быть моим клиентом». Пиринговые отношения обычно подразумевают, что обе сети расположены на одном и том же уровне в иерархии клиент/провайдер. Очевидно, что реальность мира коммерции гораздо изощреннее, чем приведенный пример, и сетевые операторы сумели изобрести многочисленные вариации на эту базовую тему, однако лежащие в основе принципы межсетевых соединений остаются относительно неизменными. Если бы все эти отношения были статичными, то ситуация оставалась бы легко управляемой, однако курс системы постоянно меняется. Провайдеры меняют свои отношения в экосистеме связности.
Появляются новые провайдеры, например, сети распределения контента, и конечно, происходят приобретения, слияния и разделения (компаний), после которых возникшие организации должны заново откалибровать свои позиции в мире связности. На ситуацию можно посмотреть таким образом, что удивительно, каким образом связность Интернета остается такой стабильной и всеобъемлющей, учитывая тот факт, что этот результат зависит от потребностей рынка без каких-либо конкретных гарантий правильного исхода.
Возможно, результат не является столь уж удивительным. Еще один взгляд, нельзя не признать, что циничный, заключается в том, что все это – результат действия того, что можно приблизительно назвать «информационным картелем» провайдеров первого уровня, которые расположены в самом ядре связности. До тех пор, пока каждая подключившаяся сеть предпринимает усилия для того, чтобы ее маршруты были объявлены в по крайней мере одном маршрутизаторе уровня 1 через одно или несколько отношений клиент/провайдер, результатом будет некоторый уровень базовой связности. После достижения этой базовой связности вступает в действие пиринг, обеспечивающий минимизацию стоимости и/или улучшение обслуживания для выбранных маршрутов. В рамках этой точки зрения связность на уровне всего Интернета почти полностью определяется способностью ввести свои маршруты в картель провайдеров первого уровня. Эта группа взаимосвязанных пиринговых сетей по существу определяет, что подлежит подключению в Интернете.
Поэтому другой взгляд на связность Интернета утверждает, что это не распределенный открытый рынок для связности, а вместо этого в его «ядре» мы имеем самовозобновляющуюся монополию маршрутизации!
Является ли Интернет полностью взаимосвязанным?
Нет.
По его границам существует серая зона асимметричной связности, внутри которой вы, возможно, сможете отправить мне пакет данных, но это отнюдь не означает, что вы получите мой ответ!
Источник: On the Internet Everyone is Connected
to Everyone Else – Right?, http://www.potaroo.net/ispcol/2016-02/connected.html