Еще больше «утечек» маршрутов
Большую часть времени почти везде большая часть Интернета функционирует просто прекрасно. И действительно, кажется, что Интернет работает достаточно хорошо - вплоть до того момента, когда начинаются серьезные неприятности. После этого он превращается в повод для заголовков в отраслевой прессе.
Большую часть времени почти везде большая часть Интернета функционирует просто прекрасно. И действительно, кажется, что Интернет работает достаточно хорошо – вплоть до того момента, когда начинаются серьезные неприятности. После этого он превращается в повод для заголовков в отраслевой прессе.
В этот раз проблемы начались 12 июня в Малайзии у крупного интернет-провайдера страны – компании Telekom Malaysia. Рассматривая сейчас, что случилось и почему это произошло, возможно, полезно будет начать с краткого резюме, описав то, каким образом Интернет «знает», где все находится. Итак, краткое отступление на тему системы маршрутизации.
Связность и маршрутизация в Интернете – краткий курс
При установлении соединения двух сетей способ, с помощью которого они узнают друг о друге, заключается в обмене маршрутной информацией. В этом случае сеть можно себе представить как набор достижимых IP-адресов (маршрутов), а соединение двух сетей реализует простую форму следующего утверждения: «Я скажу тебе мои маршруты, а ты расскажешь мне о своих».
Давайте рассмотрим две сети и назовем их A и B. И давайте предположим, что сети A и B соединены между собой таким способом. Теперь если источник в сети A желает отправить пакет в некий пункт назначения в сети B, то поскольку A и B напрямую соединены между собой, сеть A знает все о наборе IP-адресов, которые достижимы в сети B.
Поэтому система маршрутизации сети А направит пакет в сеть В.
Теперь давайте добавим в эту модель третий элемент. Что если у нас имеется третья сеть, C, которая соединена с сетью B? Если сеть B была подготовлена, чтобы действовать в качестве «транзитного» провайдера услуг, тогда В может объявить маршруты сети С в А в дополнение к своим собственным маршрутам и объявить маршруты сети А в С. Теперь все точки этих трех сетей могут достигнуть друг друга. Если источник в сети А отправляет пакет в пункт назначения в сети С, то система маршрутизации сети А направит пакет в сеть В, поскольку сеть А узнала о маршрутах в С через сеть В. Система маршрутизации сети В признает адрес назначения как расположенный в сети С и передаст пакет в С.
Обычно мы называем сети A, B и C Автономными системами, а протоколом маршрутизации, используемым для обмена маршрутами в Интернете, является BGP (Border Gateway Protocol, Протокол пограничной маршрутизации). Если вы повторите вышеприведенный сценарий межсетевого соединения еще 50 тысяч раз для учета взаимных соединений 50 тысяч сетей и примените протокол BGP для обмена информацией о маршруте по 560 тысячам маршрутов, то у вас получится что-то, по масштабам напоминающее современный Интернет.
Существует множество способов для соединения между собой 50 тысяч Автономных систем с использованием базового парного соединения. Можно использовать линейные соединения, кольца, веерную структуру или любую форму топологии соединений. Один из примеров визуализации межсетевого соединения в Интернете показан ниже: Что формирует конкретную конфигурацию Интернета? Лучший ответ, который я могу предложить, заключается в том, что форму Интернета определила комбинация денег и географии. География – это тенденция сетей соединяться с другими сетями, которые расположены на физически близком расстоянии. Существует мощная индустрия, посвященная эксплуатации так называемых точек обмена по всему миру.
Точка обмена представляет собой выделенную систему, к которой локальные сети могут подсоединиться и использовать коммутационное оборудование точки обмена для установления соединения со всеми другими сетями, представленными в этой точке. Заинтересованность в географической близости объясняется производительностью и, конечно, деньгами. Если две сети соединены каналом, который проходит по всему миру, то время, необходимое пакету для прохода по этому расширенному пути, будет гораздо больше того интервала, который потребуется пакету для путешествия по соединению, охватывающему область города или региона. Поэтому более близкое соединение позволяет предоставить более качественные услуги пользователям. И хотя это и не является универсальной истиной, чаще всего более протяженные маршруты, особенно пересекающие один или несколько океанов, имеют более высокую стоимость из расчета на пакет, чем менее длинные «дороги». В общем, получается, что более короткие пути дешевле.
Деньги являются главной движущей силой для установления межсетевых соединений, поскольку в конечном счете именно деньги двигают вперед эту индустрию. Для того, чтобы это проиллюстрировать, давайте вернемся к нашему простому примеру сетей A, B и C. Когда сеть C соединяется с B, что будет мотивировать сеть B на анонсирование маршрутов в C для сети A? Не забудьте о том, что в этом случае трафик, текущий между A и C, будет потреблять сетевые ресурсы B, однако сеть B не имеет прямых отношений с любым из конечных пользователей, которые генерируют этот поток трафика. Поэтому сеть B не может выставить счета ни заказчику сети А, ни заказчику сети С для получения компенсации за предоставление этой услуги. Одно из жизнеспособных решений заключается в том, что сеть С платит сети В за эту транзитную услугу. В действительности сеть B является провайдером сети С или, если посмотреть с другой стороны, С является клиентом В. Теоретически возможно так организовать мир соединенных между собой сетей, чтобы превратить его в соединительную сетку, используя для этого только взаимоотношения типа клиент-провайдер, однако сделать это порой довольно сложно. Для того, чтобы это проиллюстрировать, давайте добавим в наш пример еще одну сеть – сеть D, которая является клиентом A. Теперь, когда D обменивается трафиком с C, эта сеть будет платить A, а C будет платить сети B – согласно тому, что можно ожидать от отношений типа клиент-провайдер. Но что можно сказать об отношениях между сетями A и B? В ряде случаев, когда A и B имеют сходный размер и масштаб, нелегко естественным образом определить, кто является провайдером, а кто клиентом. Индустрия ISP (провайдеров интернет-услуг) изобрела дополнительную форму отношений для разрешения именно такой ситуации, которая представляет собой отношение «с равным по положению», в рамках которого две сети соединяются между собой, но соглашаются не выставлять друг другу счета (это представляет собой старое соглашение SKA, или Sender Keeps All – соглашение о бесплатном пиринге).
В результате у нас имеются три возможные роли сети в сфере межсетевого соединения: клиент, провайдер и равный партнер, или пир. При этом многие сети играют все три роли одновременно. Имея в виду, что сеть генерирует доход со своих клиентов, тратит деньги на провайдеров и занимает нейтральное положение в отношении доходов для своих пиров, очевидно, что провайдеры стремятся максимизировать привилегии в отношении своих клиентов по сравнению с пирами и провайдерами и предпочитают партнеров провайдерам. Таким способом провайдер может максимизировать свой доход и свести к минимуму расходы.
Способ, которым это реализовано в маршрутизаторах сети, заключается в использовании в BGP локальных настроек предпочтений. Все внешние соединения просто относят к одной из этих категорий, после чего можно использовать локальную настройку предпочтений, чтобы предпочесть объявленные клиентом маршруты по сравнению с объявленными партнером и провайдером, а объявленные партнером маршруты – по сравнению с объявленными провайдером. Поэтому если сеть видит один и тот же маршрут, анонсированный со стороны клиента, а также со стороны партнера или провайдера, то локальная настройка предпочтений гарантирует, что сеть выберет маршрут через клиента, а не через партнера.
Эти локальные настройки предпочтений имеют высокий приоритет в алгоритмах принятия решений BGP: локальные предпочтения переопределяют алгоритм сравнения BGP по умолчанию, который сравнивает длину маршрутов между Автономными системами. Поэтому даже если сеть использует механизм добавления АS в AS-PATH для того, чтобы повлиять на выбор маршрута, настройки локальных предпочтений берут вверх.
Кроме того, полезно понимать предпочтения сети относительно ре-анонсирования, поскольку они также являются частью процесса попыток сети оптимизировать свое положение за счет максимизации доходов и минимизации расходов, а также прекратить «бесплатную езду», при которой ресурсы сети используются нефинансируемым трафиком.
Для выполнения этой задачи большинство сетей использовало следующие базовые правила распределения анонсов:
- маршруты, о которых стало известно от клиента, анонсируются клиентам, пирам и провайдерам;
- маршруты, о которых стало известно от пира, анонсируются клиентам, но не другим партнерам или провайдерам;
- маршруты, о которых стало известно от провайдера, анонсируются клиентам, но не другим провайдерам или пирам.
Эти правила схематично показаны на рисунке ниже. Крестиками отмечены недопустимые анонсы.
Что произошло?
Теперь давайте возвратимся в 12 июня и посмотрим на то, что случилось. Совершенно определенно что-то произошло, как это можно увидеть на приведенных ниже двух графиках. Первый представляет собой почасовой график общего количества префиксов, объявленных в таблице маршрутизации Интернета (рис.1).
Рис. 1 Размер таблицы маршрутизации: неделя, начинающаяся с 9 июня 2015 г. (www.potaroo.net)
Это выглядит так, будто в систему маршрутизации были добавлены дополнительные 2500 маршрутов, а затем через пару часов примерно 5500 маршрутов были отозваны, после чего 2500 маршрутов были восстановлены, оставив в таблице маршрутизации примерно на 500 маршрутов меньше по сравнению с исходным состоянием.
Похожая картина становится очевидной при взгляде на обновления в BGP за тот же самый период, в рамках которого изменение в размере таблицы BGP совпало с соответствующим взрывом в операциях обновления BGP. Смотреть рисунок 2.
Этот взрыв активности имел своим источником AS4788 – сеть, которую эксплуатирует компания Telekom Malaysia.
Telekom Malaysia – это относительно крупный провайдер в Малайзии. Клиентская база этой компании составляет примерно 15 миллионов пользователей из своей собственной сети, кроме того, она предоставляет транзитные услуги 64 другим сетям, большая часть из которых базируется в Юго-Восточной Азии. Эта сеть также, по-видимому, соединена с 13 восходящими (более крупными) провайдерами. Восходящие провайдеры и количество префиксов, видимых через каждого провайдера с пункта наблюдения, расположенного в Австралии в AS131072, имеют следующий вид: Смотреть таблицу 1 (*По-видимому это некий вид ошибки маршрутизации)
- Таблица 1 Провайдеры транзита и количество префиксов
AS3320 | DTAG Deutsche Telekom AG, DE (7 префиксов) |
AS3356 | LEVEL3 – Level 3 Communications, Inc., US (1 префикс) |
AS4637 | ASN-TELSTRA-GLOBAL Telstra Global, HK (1,131 префиксов) |
AS9304 | HUTCHISON-AS-AP Hutchison Global Communications, HK (1 префикс) |
AS24115 | ASN-EQIX-MLPE Equinix, HK (1,296 префиксов) |
AS6453 | TATA COMMUNICATIONS (AMERICA) INC, US (2 префикса) |
AS2516 | KDDI KDDI CORPORATION, JP (2,074 префиксов) |
AS18206 | VPIS-AP VADS Managed Business Internet Service Provider, MY (1 префикс *) |
AS1273 | CW Cable and Wireless Worldwide plc, GB (183 префиксов) |
AS3257 | TINET-BACKBONE Tinet SpA, DE (179 префиксов) |
AS1299 | TELIANET TeliaSonera AB, SE (3 префикса) |
AS6939 | HURRICANE – Hurricane Electric, Inc., US (2,222 префиксов) |
AS17557 | PKTELECOM-AS-PK Pakistan Telecommunication Company Limited, PK (15 префиксов) |
Рис. 2 Активность обновления маршрутизации: неделя, начинающаяся с 9 июня 2015 г.
Подобно многим другим ISP с большим набором восходящих провайдеров, Telekom Malaysia использует метод анонсирования более детальных маршрутов для управления нагрузкой трафика через различные межсетевые соединения. В данном случае компания Telekom Malaysia взяла 56 блоков адресов IPv4, которые она получила от своей локального Регионального Интернет-регистратуры и анонсировала примерно 2.200 отдельных префиксов, в основном используя префиксы /24 («more specifics» – более детальные префиксы, которые имеют приоритет в маршрутизации BGP), извлеченные из изначальных блоков адресов. Анонсирование 1.144 более детальных префиксов делает Telekom Malaysia одним из крупнейших генераторов таких префиксов в современном Интернете, но отнюдь не самым крупным. Этот подход, который заключается в регулировании трафика, передаваемого по различным физическим соединениям, при помощи выборочного анонса более детальных префиксов, может быть общей практикой, однако он по-прежнему остается сложным. И конечно, сложные подходы часто превращаются в эксплуатационно хрупкие способы и методы реализации, которые имеют склонность к поломкам.
И это именно то, что случилось 12 июня с Telekom Malaysia.
То, что увидел остальной мир, было всплеском анонсов маршрутов, источником которого стала сеть AS4788, включая примерно 2500 новых префиксов, которых раньше не было. Через пару часов случился крупномасштабный отзыв примерно 5500 префиксов, после чего состоялась стабилизация с повторным объявлением около 2500 префиксов, согласно показанному на рис. 3.
Если мы посмотрим на сеть AS4788 и взглянем на обновления, поступающие из этой Автономной системы, то их можно разбить на префиксы, порожденные самой сетью AS4788, и префиксы, для которых AS4788 является транзитным провайдером. График анонсов для AS4788 за 12 июня показывает быстрый рост активности в 08:43, который продолжается 9 минут.
Большая часть этой активности по обновлению маршрутов имела место в виде анонсов маршрутов, в которых сеть AS4788 была транзитной АS, а не новых маршрутов от самой AS4788.
Так что же произошло? Существуют два главных вида утечки маршрутов: один, при котором сеть импортирует узнанные через eBGP маршруты в одной части своей сети и преобразовывает внутренние маршруты в экспортируемые eBGP маршруты в другой части сети. Маршруты, которые по ошибке обрабатываются таким образом, видятся другим сетям, как будто они берут начало в этой сети. Другой вид утечки заключается в том, что полученные через eBGP маршруты из одной сети-пира по ошибке экспортируются другому пиру. В этом случае внешнее представление заключается в том, что утекшие маршруты указывают на эту сеть как на транзитную.
В случае данной конкретной утечки мы видим утечку транзитных маршрутов, при которой сеть AS4788 ошибочно аннонсировала маршруты, узнанные от одного пира, другому пиру.
Какие маршруты были при этом затронуты? Список, включающий все 22.577 маршрута, слушком длинный, чтобы приводить его здесь, однако давайте взглянем на набор соседних Автономных систем, чьи маршруты, по-видимому, повторно аннонсировались сетью AS4877 в течение этого периода. В таблице 2 приведены верхние 20 строк списка, увиденные с наблюдательного пункта BGP, расположенного в сети AS4777 в Японии.
Этот список сильно отличается от списка провайдеров транзита, который приведен в таблице 1. Вероятная причина заключается в том, что сеть AS4788 присутствует в целом ряде точек обмена (трафиком) и принимает большое число маршрутов из этих точек обмена. В ходе этого инцидента с маршрутами сеть AS4788 переаннонсировала эти полученные маршруты обратно провайдерам транзитам. Для маршрутов, транзитный путь которых через AS4877 являлся более коротким, этот альтернативный путь был выбран этими транзитными сетями и распространен дальше их собственным пирам.
Теперь мы, вероятно, достаточно близки к тому, чтобы понять, что произошло 12 июня внутри сети AS4788. В рамках приведенного выше «букваря» маршрутизации говорилось, что, как показывает опыт, существуют три руководящих принципа маршрутизации:
- маршруты, о которых стало известно от клиента, анонсируются клиентам, пирам и провайдерам;
- маршруты, о которых стало известно от пира, анонсируются клиентам, но не другим партнерам или провайдерам;
маршруты, о которых стало известно от провайдера, анонсируются клиентам, но не другим провайдерам или партнерам.
- Таблица 2 Утечка транзитных маршрутов
Префиксы | ASN | Описание |
5,545 | 6695 | DECIX-AS DE-CIX Management GmbH, DE |
3,699 | 9394 | CTTNET China TieTong Telecommunications Corporation, CN |
3,381 | 1273 | CW Cable and Wireless Worldwide plc, GB |
1,594 | 4788 | TMNET-AS-AP TM Net, Internet Service Provider, MY (объявленные префиксы) |
818 | 8359 | MTS MTS OJSC, RU |
781 | 38285 | M2TELECOMMUNICATIONS-AU M2 Telecommunications Group Ltd, AU |
643 | 2119 | TELENOR-NEXTEL Telenor Norge AS, NO |
561 | 3209 | VODANET Vodafone GmbH, DE |
422 | 8708 | RCS-RDS RCS & RDS SA, RO |
365 | 17557 | PKTELECOM-AS-PK Pakistan Telecommunication Company Limited, PK |
260 | 16150 | PORT80-GLOBALTRANSIT Availo Networks AB, SE |
242 | 12552 | IPO-EU IP-Only Networks AB, SE |
241 | 23520 | COLUMBUS-NETWORKS – Columbus Networks USA, Inc., US |
220 | 3741 | IS, ZA |
186 | 4635 | HKIX-RS1 Hong Kong Internet Exchange–Route Server 1, HK |
162 | 41095 | IPTP IPTP LTD, NL |
153 | 5588 | GTSCE T-Mobile Czech Republic a.s., CZ |
147 | 2647 | SITA Societe Internationale de Telecommunications Aeronautiques, FR |
144 | 8426 | CLARANET-AS ClaraNET LTD, GB |
143 | 2686 | ATGS-MMD-AS – AT&T Global Network Services, LLC, US |
- Судя по всему, сеть AS4877 переанонсировала маршруты, которые она получила от пиров (возможно от DECIX), своим провайдерам транзита, осуществив своего рода «захват» маршрутов. По-видимому, это произошло из-за ошибки конфигурации политики маршрутизации в маршрутизаторе eBGP внутри сети AS4877.
- Предотвращение
- Этот вид утечки маршрутов не является редкостью. Однако когда это происходит, последствия могут быть крайне разрушительными. Можно ли предотвратить такую утечку?
- RPKI?
- Сегодня мы слышим много рассуждений об инфраструктуре открытых ключей для ресурсов нумерации (Resource Public Key Infrastructure, RPKI) и объектов авторизации маршрутов (Route Origination Authorisations, ROA). Если бы соседи сети AS4877 по eBGP внедрили управление фильтрацией на основе ROA, то предотвратили бы эту утечку маршрутов?
- Объекты ROA удостоверяют источник маршрута и не дают неавторизованным Автономным системам инициировать маршрут для префикса. В нашем случае из 22 577 утекших маршрутов только 1594 имели своим началом сеть AS4877. Это означает, что в лучшем случае механизм фильтрации маршрутов на основе ROA – если бы он был внедрен всеми пирами AS4877 и всеми держателями префиксов – был бы эффективен при отфильтровывании только 7% утекших маршрутов. Проблема же заключается в том, что утекала информация о транзите, поэтому фильтры, базирующиеся на определении происхождения (маршрутов), оказались бы, в основном, не эффективны.
- Если это так, то что произойдет, когда мы реализуем защиту пути следования АS-PATH? Что если все соседи сети AS4877 внедрили бы полный пакет BGPSEC и применили валидацию пути для всех маршрутов, полученных от AS4877. Наверняка это позволит обнаружить проблему и отклонить утекшие маршруты. Да?
- Нет.
Если вы получаете маршрут с AS-PATH: A B C и источник в АS C был проверен, то единственным способом, с помощью которого вы можете определить, что этот маршрут является ненамеренной утечкой по сравнению с обычной работой BGP, это не просмотр того, как работает протокол сам по себе, а изучение намерений в политике маршрутизации сетей A, B и C и определение того, является ли, согласно наблюдениям, поведение пути следования АС намеренным в рамках политик маршрутизации этих сетей. Однако защищенный протокол BGP не содержит информации о политиках маршрутизации. Защищенный протокол BGP может позволить вам проверить, что держатель префикса уполномочил С на инициацию маршрута, а это он и делает. Защита пути в рамках защищенного BGP может также позволить вам проверить, что сеть С передала объявление в сеть B, которая, в свою очередь, передала его в A. Поэтому с точки зрения безопасного BGP в этом маршруте нет ничего недопустимого. BGPSEC не может информировать вас о том, является ли это намеренным объявлением маршрута или неавторизованной утечкой маршрута.
Поэтому сервис RPKI здесь не поможет. Нет ничего «неправильного» в работе протокола маршрутизации BGP как такового, и не было и умышленных попыток фальсифицировать информацию о маршрутизации. Проблема заключается в том, что информация о маршрутизации, которая в остальном является правильной, была переанонсирована соседям, которые не ожидали услышать об этих маршрутах. Клиент сети переанонсировал транзитные маршруты, и без наличия дополнительных знаний о концепциях политики маршрутизации, таких, как «транзит», «клиент» и «пир», система маршрутизации не может автоматически обнаружить такие пробелы в целостности предполагаемой политики маршрутизации.
Реестры маршрутов?
Использование Реестров интернет-маршрутизации (Internet Routing Registries) и связанного с ними Языка спецификаций политики маршрутизации (Routing Policy Specification Language, RPSL) (RFC 2622, RFC4012) является альтернативным подходом к ручному управлению фильтрами маршрутов. RPSL – это относительно богатый язык, он, как говорит его название, позволяет пользователю описывать политики импорта и экспорта сети в терминах взаимоотношений с соседними Автономными системами и ее политики транзита (переанонсирования).
Использование таких описаний в контексте реестра маршрутизации позволяет оператору сети перечислить все префиксы, инициированные локальной Автономной системой, и политики транзита, которые связаны с этими маршрутами. Кроме того, это позволяет оператору сети описать свои политики анонсирования, задав соседние АS и политики маршрутизации для маршрутов, полученных от соседних АS.
Если бы каждая Автономная система поддерживала точный, актуализированный и полный набор префиксов и записей политики маршрутизации в Реестре интернет-маршрутизации, то, по-видимому, для АS было бы теоретически возможным сгенерировать набор фильтров префиксов и AS-PATH для всех своих соседей путем поиска в рамках всего содержимого реестра. И действительно, существуют инструменты, которые пытаются сделать именно это для существующих реестров маршрутов.
Тогда почему мы все не делаем именно это? Почему мы не используем эти инструменты для реестра маршрутов как часть стандартной процедуры эксплуатации?
История использования реестров маршрутов вызывает очень смешанные чувства.
Эти реестры существуют в той или иной форме вот уже на протяжении почти двадцати лет. Некоторые регионы мира очень усердно принуждали каждого сетевого оператора своего региона вести точную информацию в локальных реестрах маршрутизации. Однако в других случаях история реестра маршрутов не была столь обнадеживающей.
RPSL – это сложный язык, с его помощью может быть довольно трудно точно описать хитросплетения некоторых политик маршрутизации. Часто происходит, что реестр заполнен записями «на всякий случай», а также историческими записями, поэтому чрезвычайно трудно отсортировать то, что относится к текущим концепциям маршрутизации от других посторонних данных. Выполнение этой задачи с помощью автоматического инструмента для сканирования реестров до сих пор оказывалось невозможным. Справедливо также и то, что сетевые операторы часто используют уровень детализации, связанный с каждым сеансом eBGP между соседними АS, тогда как RPSL использует более грубый уровень детализации – отдельные АS. Поэтому труднее описать отдельные политики маршрутизации, которые применяются к различным сеансам BGP между одними и теми же двумя АS. Кроме того, существует вопрос относительно того, насколько комфортна для сетевых операторов публикация такой детальной информации о своих политиках маршрутизации.
Используемые сегодня реестры маршрутов имеют разнообразные модели аутентичности и целостности. Во многих случаях возможно, чтобы пользователь реестра вводил информацию о маршрутизации для сторонних префиксов, не имея полномочий со стороны фактического владельца префикса. Отделение достоверной информации от недостоверной не поддерживается моделью данных реестра, которая обычно не включает в себя информацию о валидации или полномочиях. Кроме того, существует множество реестров маршрутов, и часто они содержат противоречащую информацию. Какой из реестров должен иметь приоритет, если кто-то попытается разрешить эти содержащиеся в данных противоречия? И почему?
Эта проблема достаточно сложна уже сама по себе, однако ее еще больше усугубляет тот факт, что во многих областях Интернета операторы отказались от применения реестров маршрутов и полагаются на собственные кастомизированные инструменты. Поэтому меняется не только качество информации, содержащейся в реестрах маршрутов, но и полнота этой информации.
- Рис. 3 Активность обновления маршрутизации: AS4788 0830 – 09:30, 12 июня
«Безовражная» маршрутизация?
Возможно мы пытаемся быть слишком умными и используем излишне сложные инструменты для решения того, что в действительности является простой проблемой. Проблема, которая произошла в сети AS4778, заключалась в переанонсировании маршрутов, о которых стало известно от пиров и транзитных систем, другим транзитным системам.
Принцип политики маршрутизации, целью которого является предотвращение этого вида утечки маршрутов – это концепция, получившая название «valley-free routing» — маршрутизация «без долин» или «безовражная» маршрутизация.
Если маршрут проходит из сети клиента в сеть транзитного провайдера, то этот сегмент называют «восходящим» сегментом. Если маршрут проходит пиринговое соединение, то это «пересекающий» сегмент. И если маршрут проходит из сети транзитного провайдера в сеть клиента, то это «нисходящий» сегмент. Последовательность этих маршрутных пар может начинаться с последовательности восходящих сегментов, затем самое большее один пересекающий сегмент и после этого последовательность нисходящих сегментов. Путь «безовражного» маршрута не включает нисходящий сегмент, сразу за которым следует восходящий.
Рис. 4 Пример топологии между АС для маршрутизации без долин
В показанном здесь примере (рис. 4) маршрут, начинающийся в АS А, может быть распространен по пути A B C D до сети AS4788, и при этом он удовлетворяет «безовражному» ограничению. Однако после получения сетью AS4778 маршрут не может быть продолжен в E или F, поскольку это нарушит «безовражное» ограничение (эти пути формируют своего рода овраг – прим. ред). Маршрут, начатый в G, может быть продолжен в D, E и F согласно тому же принципу. Если он продолжен в D, то согласно данному принципу он может быть далее продолжен из D в C, B и A. С другой стороны, маршруты, начинающиеся из E и F, могут быть продолжены сетью AS4788 только в G, но не в D.
Такое ограничение можно относительно легко встроить в протокол BGP как атрибут транзитного сообщества, называемый UP. Если маршрут начинается с атрибутом UP, то его можно анонсировать во все соседние узлы eBGP. Однако обращение с атрибутом при продолжении маршрута зависит от отношения между сетью и соседней сетью. Если сосед является транзитным провайдером, то атрибут UP остается неизменным. Если сосед является пиром или нисходящим клиентом, то атрибут UP снимается при переходе маршрута к соседу. Если маршрут начинается без атрибута UP, то его можно передать только нисходящим соседям-клиентам.
Хотя такой механизм является простым и, несомненно, эффективным во многих сценариях, возможно, он слишком простой. В теории, каждая АS имеет единую политику маршрутизации, и все отношения Автономных систем можно однозначно классифицировать как провайдер-клиент или пиринг, однако в реальном мире присутствуют более тонкие нюансы, и отношения между АS нельзя втиснуть в эту очень простую модель.
И это весьма печально в некоторых отношениях, поскольку такой более простой мир сделал бы обнаружение и предотвращение утечек маршрутизации гораздо более легкой задачей!
Куда теперь?
Некоторые многолетние проблемы являются такими давними из-за того, что мы не сумели применить подходящий аналитический подход к их решению. Решение где-то рядом, но нужно приложить некоторые усилия по его поиску!
Мы можем в очередной раз попробовать принудить индустрию к использованию реестров маршрутов для внешней маршрутизации, однако чем будет отличаться этот призыв к использованию реестров маршрутов от всех других подобных призывов в прошлом? И если отличий не будет, то почему такой призыв встретит более радостный отклик по сравнению с тем, что случилось в прошлом?
Возможно, мы могли бы использовать цифровые подписи и RPKI, чтобы объединить аутентичность информации с реестрами маршрутов. Однако проблема, с которой мы столкнемся в этом случае, будет заключаться в том, что и так уже сложная система станет еще более сложной и трудной в использовании.
Возможно, данная конкретная проблема относится к другому типу многолетних проблем. Некоторые проблемы становятся давними просто потому, что они являются исключительно трудными проблемами!
Это заставляет меня задаться вопросом, существуют ли альтернативные перспективы в той области, в которой мы работаем. Например, не стали бы мы рассматривать эту проблему по-другому, если бы думали о маршрутизации не как об инструменте топологии и достижимости, а как о распределенном алгоритме для решения системы уравнений. Уравнения здесь выражают политики маршрутизации, а целью алгоритма является нахождение решений, которые решают отдельные уравнения, а также нахождение общесетевого решения максимальной связности. Будет ли такая перспектива обеспечивать получение отличающихся выводов относительно способа, в рамках которого взаимодействуют политики и протоколы маршрутизации? И может ли такая перспектива обеспечить получение предложений относительно того, каким образом мы можем защитить систему маршрутизации не только от умышленных злоупотреблений и неправомерных действий, но от несчастных случаев в форме утечек маршрутов?
Источник: “More Leaky Routes” . Geoff Huston. The ISP Column