Протокол BGP Цель данной статьи, показать теоретическую возможность разделить Интернет на различные несвязанные друг с другом части Для того чтоб понять как это возможно, и для понимания а как же устроена Сеть Сетей на глобальном уровне, немного теоретического введения с одного из курсов по коммуникационным технологиям и теории взлома. Протокол BGP - задача внешней маршрутизации Рассматриваемый на этом уровне, Интернет представляет собой множество автоном- ных систем, произвольным образом соединенных между собой Внутреннее строение автономных систем скрыто, известны только адреса IP-сетей, составляющих АС. Internet организована как совокупность взаимосвязанных между собой автономных систем (АС) - понятие,означающее здесь достаточно значительную по объему груп- пу сетей IP, как правило, но не обязательно, объединенных между собой, а по территориальному признаку,находящихся под общим административным управлением и имеющих общую единую политику маршрутизации по отношению ко всем остальным се- тям. Эти АС с позиций маршрутизации называются также ‘регионами’ (domains). Внутри АС используются протоколы внутри региональной маршрутизации (Interior Gateway Protocols - IGP), такие как OSPF,IGRP, RIP итд, а между АС - протоколы межрегиональной маршрутизации (Exterior Gateway Protocols - EGP). Первый меж- региональный протокол, продолжающий в ограниченном масштабе использоваться в Internet и сейчас, получил то же название, что и весь класс протоколов - EGP, являющийся по сути протоколом достижимости. Автономные системы соединяются с помощью пограничных маршрутизаторов. Связи между маршрутизаторами могут иметь разную физическую природу: например,это мо- жет быть сеть Ethernet, к которой подключено сразу несколько пограничных марш- рутизаторов разных автономных систем,выделенный канал типа “точка-точка” между двумя маршрутизаторами и т.п. В зависимости от своего расположения в общей структуре Интернет автономная система может быть тупиковой (stub) - имеющей связь только с одной АС или мно- гопортовой (multihomed), т.е. имеющей связи с несколькими АС. Если администра- тивная политика автономной системы позволяет передавать через свои сети тран- зитный трафик других АС, то такую автономную систему можно назвать транзитной (transit). Пограничный маршрутизатор сообщает связанным с ним другим пограничным маршру- тизаторам, какие сети каких автономных систем достижимы через него.Обмен подо- бной информацией позволяет пограничным маршрутизаторам занести в таблицу марш- рутов записи о сетях, находящихся в других АС. При необходимости эта информа- ция потом распространяется внутри своей автономной системы с помощью протоко- лов внутренней маршрутизации (см., например, внешние маршруты в OSPF) с тем, чтобы обеспечить внешнюю коннективность своей АС. Задачей этого пункта является обсуждение протокола обмена маршрутной информа- цией между пограничными маршрутизаторами. Принципиальным отличием внешней маршрутизации от внутренней является наличие маршрутной политики, то есть при расчете маршрута рассматривается не столько метрика, сколько политические и экономические соображения. Это обстоятельство не позволяет адаптировать под задачу внешней маршрутизации готовые протоколы внутренней маршрутизации, просто применив их к графу автономных систем, как раньше они применялись к графу сетей. По той же причине существующие подходы - дистанционно-векторный и состояния связей - непригодны для решения поставлен- ной задачи. Для решения задачи внешней маршрутизации был разработан протокол BGP (Border Gateway Protocol). Используемая в настоящий момент версия этого протокола име- ет номер 4, соответствующий стандарт RFC-1771, 1772. Общая схема работы BGP такова. BGP-маршрутизаторы соседних АС, решившие обмениваться маршрутной инфо- рмацией, устанавливают между собой соединения по протоколу BGP и становятся BGP-соседями (BGP-peers). Далее BGP использует подход под названием path vector, являющийся развитием дистанционно-векторного подхода. BGP-соседи рассылают (анонсируют, advertise) друг другу векторы путей (path vectors). Вектор путей, в отличие от вектора расстояний, содержит не просто адрес сети и расстояние до нее, а адрес сети и список атрибутов (path attributes), описывающих различные характеристики марш- рута от маршрутизатора-отправителя в указанную сеть. В дальнейшем для краткос- ти мы будем называть набор данных,состоящих из адреса сети и атрибутов пути до этой сети, маршрутом в данную сеть. Данных, содержащихся в атрибутах пути, должно быть достаточно, чтобы маршрути- затор-получатель, проанализировав их с точки зрения политики своей АС,мог при- нять решение о приемлемости или неприемлемости полученного маршрута. Например, наиболее важным атрибутом маршрута является AS_PATH - список номеров автономных систем, через которые должна пройти дейтаграмма на пути в указанную сеть. Атрибут AS_PATH можно использовать для: обнаружения циклов - если номер одной и той же АС встречается в AS_PATH дважды; вычисления метрики маршрута - метрикой в данном случае является число АС, которые нужно пересечь; применения маршрутной политики - если AS_PATH содержит номера политически неприемлемых АС, то данный маршрут исключается из рассмотрения. Анонсируя какой-нибудь маршрут, BGP-маршрутизатор добавляет в AS_PATH номер своей автономной системы. Очевидно, что BGP-маршрутизаторы, находящиеся в одной АС, также должны обмени- ваться между собой маршрутной информацией. Это необходимо для согласованного отбора внешних маршрутов в соответствии с политикой данной АС и для передачи транзитных маршрутов через автономную систему. Такой обмен производится также по протоколу BGP, который в этом случае часто называется IBGP (Internal BGP), (соответственно, протокол обмена маршрутами между маршрутзаторами разных АС обозначается EBGP - External BGP). Отличие IBGP от EBGP состоит в том, что при объявлении маршрута BGP-соседу,на- ходящемуся в той же самой АС,маршрутизатор не должен добавлять в AS_PATH номер своей автономной системы. Действительно, если номер АС будет добавлен, и сосед анонсирует этот маршрут далее (опять с добавлением номера той же АС),то одна и та же АС будет перечислена AS_PATH дважды, что расценивается как цикл. Это очевидное правило влечет за собой интересное следствие: чтобы не возникло циклов, маршрутизатор не может анонсировать по IBGP маршрут, полученный также по IBGP,поскольку нет способов определить зацикливание при объявлении BGP-мар- шрутов внутри одной АС. Следствием этого следствия является необходимость полного графа IBGP-соедине ний между пограничными маршрутизаторами одной автономной системы: то есть каж- дая пара маршрутизаторов должна устанавливать между собой соединение по прото- колу IBGP. При этом возникает проблема большого числа соединений (порядка N*N, где N-число BGP-маршрутизаторов в АС). Для уменьшения числа соединений приме- няются различные решения: разбиение АС на конфедерации (подсистемы),применение серверов маршрутной информации и др. Сервер маршрутной информации (аналог выделенного маршрутизатора в OSPF), обс- луживающий группу BGP-маршрутизаторов,работает очень просто: он принимает мар- шрут от одного участника группы и рассылает его всем остальным. Таким образом, участникам группы нет необходимости устанавливать BGP-соединения попарно;вмес- то этого каждый участник устанавливает одно соединение с сервером.Группой мар- шрутизаторов могут быть,например, все BGP-маршрутизаторы данной АС,однако мар- шрутные серверы могут применяться для уменьшения числа соединений также и на внешних BGP-соединениях - в случае, когда в одной физической сети находится много BGP-маршрутизаторов из различных АС (например, в точке обмена трафиком между провайдерами) Следует особо отметить, что сервер маршрутной информации обслуживает только анонсы маршрутов, а не сам трафик по этим маршрутам. Очевидно, что сервер маршрутной информации не является маршрутизатором.То есть в общем случае узел, на котором работает модуль BGP, не обязательно маршрути- затор. В технических документах этот факт подчеркивается тем, что для обозна- чения BGP-узла используется термин BGP-speaker(не router). Атрибуты пути (Path Attributes) Ниже перечислены основные атрибуты пути, определенные для протокола BGP. ORIGIN ORIGIN(тип 1)-обязательный атрибут,указывающий источник информации о маршруте: 0 - IGP (информация о достижимости сети получена от протокола внутренней маршрутизации или введена администратором) 1 - EGP (информация о достижимости сети импортирована из устаревшего протокола EGP) 2 - INCOMPLETE (информация получена другим образом) Атрибут ORIGIN вставляется маршрутизатором, который генерирует информацию о маршруте, и при последующем анонсировании маршрута другими маршрутизаторами не изменяется. Атрибут фактически определяет надежность источника информации о маршруте (наиболее надежный ORIGIN=0). AS_PATH AS_PATH (тип 2) - обязательный атрибут содержащий список автономных систем, через которые должна пройти дейтаграмма на пути в указанную в маршруте сеть. AS_PATH представляет собой чередование сегментов двух типов: AS_SEQUENCE - упорядоченный список АС,и AS_SET - множество АС (последнее может возникнуть при агрегировании нескольких маршрутов со схожими, но не одинаковы- ми AS_PATH в один общий маршрут). Каждый BGP-узел при анонсировании маршрута(за исключением IBGP-соединений) до- бавляет в AS_PATH номер своей АС.Возможно (в зависимости от политики) дополни- тельно добавляются номера других АС. NEXT_HOP NEXT_HOP (тип 3) - обязательный атрибут, указывающий адрес следующего BGP-мар- шрутизатора на пути в заявленную сеть может совпадать или не совпадать с адре- сом BGP-узла, анонсирующего маршрут. Указанный в NEXT_HOP маршрутизатор должен быть достижим для получателя данного маршрута. При передаче маршрута по IBGP NEXT_HOP не меняется. Итак, глобальная маршрутизация в internet осуществляется при помощи протокола BGP, при помощи которого общаются между собой различные АС ,собственно поэтому интернет и считается децентрализованным и способным устоять при нанесения ядер ного удара по кому либо (C.Ш.А. of course . Но не факт что он уцелеет после экспериментального рывка исследователей в этом направлении BGP протокол использует идентификацию, то есть прямое взаимодействие с погра- ничным маршрутизаторами не принесет результатов, необходимо знать magic word, как минимум. Кроме того для транспорта BGP протокол использует TCP протокол, что делает весьма сложным подделку данных передающихся BGP маршрутизаторам. Однако, возможны несколько теоретических вариантов влияния на протокол BGP. Первый, это простo мощная DDoS атака на сеть с BGP маршрутизатором. Пример, недавняя атака на ripn - европейский сетевой координационный центр,при которой как они сообщают, рвались BGP соединения, и перестроился роутинг к некоторым системам, причем некоторые участки стали недоступны. Второй, наиболее интересный способ, это использовать протокол EGP не имеющий идентификации,однако воспринимаемый BGP маршрутизаторами. EGP протокол это пре- дшественник сегодняшнего BGP протокола, применявшийся ранее в основном скелете arpanet, для определения доступны ли те или иные участки сети,без дополнитель- ных сведений внесенных в BGP, типа векторов путей.Таким образом возможно испо- льзовать его для модификации данных в таблице маршрутизации BGP, а также, воз- можно, анонсировать другим пограничным маршрутизаторам нужную нам информацию. Для реализации этого способа достаточно послать egp пакет (egp не использует tcp или udp для транспортировки, он входит в стэк tcp/ip наряду с ними а также с icmp/igmp/igrp итд..),далее если BGP роутер понимает egp протокол, все будет в порядке, иначе мы получим сообщение icmp proto unreachable,что говорит о том что обработчик данного протокола в системе незарегистрирован. Третий, самый элементарный и надежный в реализации, и самый трудный в исполне- нии- получить контроль над системой работающей как bgp роутер,обычно это cisco Принципиально этими методами или их комбинацией возможно навязать ложный марш- рут(ы) АС,таким образом отсплитить(отрезать) некоторую АС от остальных,либо от некоторых. Изменение же информации в нескольких десятках много портовых тран- зитных АС может привести к глобальным результатам Например, разделения сети internet на несколько или несколько десятков различный сетей состоящих из раз- личного количества АС Отключение какой либо страны от остального интернета в принципе. Или перенаправление трафика транзитной АС обслуживающей гигабайт- ные трансатлантические каналы, на мелко-маcштабную АС регионального значения;) Также, при правильном расчете можно создать лавинный эффект, когда из-за пере- направления трафика транзитной АС на другую, не предназначенную для этого АС, загружаются ее каналы, и она также передает неверную информацию в другие АС, в следствии чего вслед за ней перегружаются трафиком и другие АС.В итоге из-за одной АС, вылетает из сети большой кусок АС. Кроме того, контролируя маршрутизацию АС, можно будет создавать так называемые “черные дыры”, участки адресного пространства видимые и нормально маршрутизи- руемые в пределах данной АС, но невидимые, либо указывающие на совершенно дру- гую область сети, в остальном интернете. Это очень полезно для сокрытия злых действий либо обмана различных систем авторизирующих по ип адресу(-ам)(нап- ример, системы баннерных сетей, накрутка счетчиков и тд). Для выяснения конкретной структуры маршрутизации в пределах одного участка се- ти, кол-во АС, их взаимодействие и тд, существуют очень хорошие сервисы a-la whois , выдающие максимум информации на том же европейском NCC,www.ripn.net ,где можно проследить какие адресные блоки обслуживает та или иная АС и другую полезную информацию, кроме того в whois сервисах так же иногда можно найти ка- кой АС принадлежит тот или иной адрес. К сожалению (к счастью ?;) данная информация чисто теоретическая, но по моему мнению весьма достойная для исследования. Однако, читайте новости се- тевого мира, возможно практические результаты будут именно там Автор:free_hunt http://www.x25zine.org
Источник: http://www.x25zine.org |