Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Принципы маршрутизации в Internet. Самое полное описание протокола BGP 4 - Сэм Хелеби

.pdf
Скачиваний:
642
Добавлен:
24.05.2014
Размер:
8.46 Mб
Скачать

сервере ARIN (www.arin.net).

Географически адресное пространство распределено между четырьмя основными регионами: Европой, Северной Америкой и Северной Африкой, Тихоокеанским регионом, а также Южной и Центральной Америкой. В табл. 3.5 показано распределение адресов между этими регионами. Некоторые сетевые адреса, согласно плану распределения, выдавались нескольким регионам.

Таблица 3.5. Распределение адресного пространства по регионам

Адресное пространство

Кому выдано

Когда выдано

61.0.0.0 — 61.255.255.255

APNIC — Тихоокеанский регион

апрель 1997

62.0.0.0 — 62.255.255.255

RIPE NCC — Европа

апрель 1997

63.0.0.0 — 63.255.255.255

ARIN

апрель 1997

64.0.0.0 — 64.255.255.255

ARIN

июль 1999

128.0.0.0 — 191.255.255.255

Различные реестры

май 1993

192.0.0.0 — 192.255.255.255

Различные реестры

май 1993

193.0.0.0—195.255.255.255

RIPE NCC — Европа

май 1993

196.0.0.0 — 198.255.255.255

Различные реестры

май 1993

199.0.0.0 — 199.255.255.255

ARIN — Северная Америка

май 1993

200.0.0.0 — 200.255.255.255

ARIN — Центральная и Южная Америка

май 1993

201.0.0.0 — 201.255.255.255

Зарезервировано - Центральная и Южная

май 1993

Африка

 

 

202.0.0.0 — 203.255.255.255

APNIC — Тихоокеанский регион

май 1993

204.0.0.0 — 205.255.255.255

ARIN — Северная Америка

май 1993

206.0.0.0 — 206.255.255.255

ARIN — Северная Америка

март 1994

207.0.0.0 — 207.255.255.255

ARIN — Северная Америка

апрель 1995

208.0.0.0 — 208.255.255.255

ARIN — Северная Америка

ноябрь 1995

209.0.0.0 — 209.255.255.255

ARIN — Северная Америка

апрель 1996

210.0.0.0 — 210.255.255.255

APNIC — Тихоокеанский регион

июнь 1996

211.0.0.0 — 211.255.255.255

APNIC — Тихоокеанский регион

июнь 1996

212.0.0.0 — 212.255.255.255

RIPE NCC — Европа

октябрь 1997

213.0.0.0 — 213.255.255.255

RIPE NCC — Европа

март 1999

216.0.0.0 — 217.255.255.255

ARIN — Северная Америка

апрель 1998

Бесклассовая междоменная маршрутизация

Всего несколько лет назад глобальные таблицы маршрутов выросли настолько, что маршрутизаторам стало не хватать мощностей и памяти для их обработки. Статистические данные показывают, что с 1991 по 1995 год удвоение размера таблиц маршрутов происходило каждые 10 месяцев; наиболее заметный рост наблюдался с 1998 года. На рис. 3.9 представлена диаграмма роста таблиц маршрутов в сети Internet.

Если бы не предпринималось никаких действий по урегулированию роста таблиц маршрутов, то они выросли бы до немыслимых размеров — около 80000 маршрутов в 1995 году. Однако, как видим, в начале 2000 года в таблицах маршрутов было около 76000 маршрутов. Такое снижение роста маршрутных таблиц было достигнуто благодаря схеме распределения IP-адресов, рассмотренной нами в предыдущем разделе, а также за счет реализации бесклассовой междоменной маршрутизации (Classless Interdomain Routing — CIDR).

Бесклассовая междоменная маршрутизация была новым шагом на пути эволюции IPадресов классов А, В и С. При работе с CIDR любая IP-сеть представляется префиксом, в котором в IP-адрес сети через косую черту вносится число, показывающее количество бит соответствующих маске подсети, связанной с данным сетевым адресом. Например, рассмотрим сеть с адресом 198.32.0.0 и префиксом /16, которая записывается как 198.32.0.0/16. Здесь префикс /16 указывает на то, что в маске используются старшие 16 битов. Таким образом, это соответствует IP-сети 198.32.0.0 с маской 255.255.0.0.

Глава 3. IР адресация и методы распределения адресов

71

Рис. 3.9. Рост таблиц маршрутов в сети Internet

*Информация получена из отчета CIDR от 25 мая 2000 года

Сеть можно называть суперсетью (supernet), если префикс маски содержит меньше битов, чем обычная маска сети. Например, сеть класса А с адресом 198.32.1.0 имеет нормальную маску 255.255.255.0, которая соответствует префиксу /24 в представлении CIDR. Сеть 198.32.0.0 с маской 255.255.0.0 можно представить в записи 198.32.0.0/16, при этом обе записи предполагают, что маска будет меньше нормальной маски для сети класса С (16 меньше 24), следовательно, сеть можно отнести к суперсетям. На рис. 3.10 представлены эти схемы адресации.

При такой системе записи обеспечивается механизм для оптимального распределения маршрутов во всей сети 198.32.0.0/16 (таких как 198.32.0.0, 198.32.1.0, 198.32.2.0 и т.д.) с помощью однократного их объявления, которое также называется

совокупным или объединенным (aggregate).

Вся эта терминология может ввести вас в заблуждение, так как термины "совокупное объявление маршрутов", ''блок CIDR" и "суперсеть" часто взаимно заменяют друг друга и обозначают одно и то же. В принципе, все эти термины указывают на то, что группа непрерывных IP-сетей объединяется, и при объявлении маршрутов все сети объявляются одновременно. Выражаясь точнее, при записи маршрутов в представлении CIDR (префикс/длина), у суперсетей длина префикса меньше, чем нормальная маска, и совокупность сетей может быть маршрутизирована по одному любому маршруту.

Глава 3. IР адресация и методы распределения адресов

72

Рис. 3.10. Адресация на основе CIDR

Все сети, которые входят в набор совокупных сетей, или, по-другому, блоки CIDR, обычно относят к специфичным, так как они предоставляют больше информации о расположении сети. Однозначно определенные префиксы длиннее совокупных:

198.213.0.0/16 имеет совокупную длину 16 бит.

198.213.1.0/20 имеет однозначно определенный префикс длиной 20 бит.

Домены маршрутизации, в которых возможно производить разбиение на блоки CIDR, относят к бесклассовым (classless), в отличие от традиционных классовых доменов, в которых невозможно провести такую процедуру. С помощью CIDR можно описать новую структуру сети Internet, где каждый домен получает свой IP-адрес от высшего по иерархии уровня. Таким образом предполагается достичь существенного сокращения рассеивания маршрутов, особенно при суммировании в концевых или, как их еще называют, сетяхзаглушках (stub network). Концевые сети, или сети-заглушки, представляют собой конечные точки глобальных сетей; они, в свою очередь, обеспечивают соединение с другими сетями в Internet. Провайдеры, поддерживающие несколько листовидных сетей делят подсети в них на небольшие блоки адресов, которые предоставляются конечным пользователям. Объединение сетей позволяет провайдерам объявлять одну IP-сеть, которая представляется как суперсеть, вместо того, чтобы проводить несколько отдельных объявлений. В результате, наряду с повышением стабильности объявления маршрутов, создаются более эффективные схемы маршрутизации и процедуры распространения маршрутов. На рис. 3.11 показана сравнительная характеристика разных систем маршрутизации.

Итак, в приведенном примере ISP3 был выделен блок IP-адресов, начиная с 198.0.0.0 до 198.1.255.255 (198.0.0.0/15). Затем провайдер разбивает этот блок адресов на два более мелких блока и выдает их провайдерам ISP1 и ISP2. Так, ISP1 получает диапазон адресов от 198.1.0.0 до 198.1.127.255 (198.1.0.0/17), a ISP2 получает диапазон от 198.1.128.0 до 198.1.255.255 (198.1.128.0/17). Точно так же провайдеры ISP1 и ISP2 распределяют эти адреса между своими клиентами. Частный случай, представленный на рис. 3.11 слева, показывает, что происходит, если не использовать CIDR: провайдеры ISP1 и ISP2 объявляют маршруты ко всем подсетям, выделенным своим клиентам, и провайдер 1SP3, в свою очередь, передает всю эту информацию во внешний мир. Результатом таких действий становится увеличение глобальных таблиц маршрутов в сети на основе TCP/IP.

В правой части рис. 3.11 представлен тот же сценарий распределения адресов, но уже с использованием CIDR. Как видите, в этом случае провайдеры ISP1 и ISP2 объединяют подсети своих клиентов. Провайдер ISP1 при этом объявляет лишь о маршрутах в объединенную сеть с адресом 198.1.0.0/17. В то же время провайдер ISP2 объявляет о маршрутах в объединенную сеть 198.1.128.0/17. Далее провайдер ISP3 точно так же объединяет подсети своих клиентов — провайдеров ISP1 и ISP2 — и посылает затем информацию лишь о маршруте в одну сеть (198.0.0.0/15). Таким образом, значительно сокращаются глобальные таблицы маршрутов.

Глава 3. IР адресация и методы распределения адресов

73

Рис. 3.11. Классовая адресация и адресация на основе CIDR

Итак, можно сделать вывод о том, что большая эффективность достигается при объединении сетей вблизи концевых узлов (так называемых leaf nodes), так как большинство объединяющихся подсетей являются сетями конечных пользователей. Процесс объединения, или, как его еще иногда называют, агрегирования, сетей (от англ. aggregation — Прим. ред.} на более высоких уровнях, таких как, например, на уровне ISP3, дает менее впечатляющие результаты, так как он по сути является объединением небольшого числа сетей, которые состоят из множества клиентских сетей.

Наиболее оптимально процесс агрегирования сетей работает при условии, что каждый клиент подключен к провайдеру только через одно соединение, которое называют одноканальным (single-homing], и получает блоки IP-адресов только из блоков CIDR провайдера. К сожалению, в реальной жизни вы редко встретите подобную ситуацию. Чаше всего возникают другие варианты развития событий. Например, клиент уже получил IPадреса, но не из диапазона, предлагаемого его провайдером. Или несколько клиентов (которые также могут быть провайдерами) нуждаются в соединении не с одним, а с несколькими провайдерами одновременно. Эта схема носит название многоканальной (multihoming). В этих случаях возникают определенные трудности при объединении сетей, и теряется гибкость маршрутизации, достигаемая агрегированием.

Правило длиннейшего подходящего маршрута

Маршрутизация в сетях TCP/IP от одного узла к другому всегда выполняется на основе длиннейшего подходящего маршрута. Суть этого метода маршрутизации заключается в том, что маршрутизатор, принимающий для каждой сети решение на основе префиксов различной длины, всегда будет выбирать маршрут с более длинной маской. Представим, например, что в таблице маршрутов на маршрутизаторе имеются две записи:

Глава 3. IР адресация и методы распределения адресов

74

198.32.1.0/24 по маршруту 1 198.32.0.0/16 по маршруту 2 При попытке доставить трафик на хост 198.32.1.1 маршрутизатор пытается найти

маршрут с пунктом назначения, имеющим самый длинный префикс, и, найдя его, отправит все пакеты по маршруту 1.

На рис. 3.12 показана работа правила длиннейшего подходящего маршрута. Здесь домен В получает сведения о двух маршрутах: 198.32.1.0/24 и 198.32.0.0/16, и маршрутизатор в этом домене направляет трафик на хост с адресом 198.32.1.1 по маршруту

1.

Рис. 3.12. Правило длиннейшего подходящего маршрута

Если по какой-либо причине маршрут 1 станет недоступным, то трафик будет передаваться через следующий ближайший маршрут в таблице маршрутов, который ведет к нужному хосту (в нашем примере это маршрут 2). Если домен В получил сведения о маршрутах с масками одинаковой длины от доменов А и Б, то маршрутизатор выбирает любой из маршрутов или, если в домене используется один из методов балансировки нагрузки, используются оба маршрута.

Правило длиннейшего подходящего маршрута предполагает, что маршруты к пункту назначения, подключенному к нескольким доменам, обязательно должны быть объявлены, причем в специфичной для этих доменов форме, т.е. до проведения объединения сетей. На рис. 3.12, ввиду того, что домен В не объявил явным образом маршрут 198.32.1.0/24, весь трафик от клиента на заданный хост всегда будет пересылаться по маршруту, выбранному с помощью правила длиннейшего подходящего префикса, т.е. через домен А. Однако такая конфигурация маршрутов может вызвать нежелательную перегрузку трафиком домена А.

Менее специфичные (неопределенные) маршруты при объединении сети

Существует специальное правило маршрутизации, которое гласит: для предотвращения образования петель маршрутизации (routing loops) в сети не должны возникать маршруты к пунктам назначения, которые совпадают с маршрутами к сетям, составляющим объединенную (агрегированную) сеть. Петля маршрутизации (routing loop} возникает, когда трафик образует кольцо между элементами сети и следует по нему взад и вперед, не имея возможности достичь конечного пункта назначения. Маршруты вида 0.0.0.0/0, используемые по умолчанию, являются частным случаем этого правила. В сети не следует обозначать маршруты по умолчанию для пунктов назначения, которые являются частью объединенных сетей. Вот почему протоколы маршрутизации, которые обрабатывают маршруты к объединенным сетям, всегда содержат специальную битовую корзину (bit bucket) (в терминах Cisco маршрут NullO) для выделения маршрута самого из себя. Трафик, направленный в битовую корзину, будет уничтожен, что предотвращает образование потенциальных петель в маршрутизации.

Глава 3. IР адресация и методы распределения адресов

75

Совет

При организации маршрутов по умолчанию избегайте создания петель маршрутизации. Для этого используйте битовую корзину.

На рис. 3.13 приведен пример объединения всего домена провайдера ISP1 в один маршрут 198.32.0.0/13.

Рис. 3.13. Следование менее специфичным маршрутам при объединении сети приводит к появлению петель маршрутизации

Предположим, что соединение между провайдером ISP1 и его клиентом —

компанией Foonet (где расположена сеть 198.32.1.0/24) пропадает по каким-либо причинам. Представим также, что у провайдера ISP1 имеется маршрут по умолчанию 0.0.0.0/0, указывающий на сеть провайдера ISP2. По этому маршруту отсылается весь трафик, адреса пунктов назначения которого неизвестны провайдеру ISP1. Тогда трафик, направленный на адрес 198.32.1.1, следуя маршруту для объединенной сети, попадет в сеть провайдера ISP1 и, не найдя пункта назначения, возвращается по маршруту, заданному по умолчанию, в сеть провайдера ISP2. Как видите, трафик передвигается вперед и назад между сетями провайдеров ISP1 и ISP2, образуя петлю. Чтобы избежать появления такого рода петли, на маршрутизаторах провайдера ISP1 создается нулевая запись для объединенного маршрута 198.32.0.0/13. Запись о нулевом маршруте позволяет уничтожать все пакеты, которые следуют в пункт назначения, недоступный в настоящее время, к тому же маршрут к нему определен менее жестко, чем агрегированный маршрут.

Итак, агрегирование (или объединение) при неправильном применении может привести к появлению петель маршрутизации, или, как их еще называют, "черных дыр"

(black holes). "Черная дыра" возникает, когда трафик, несмотря на то, что он предназначен другому узлу, достигает определенного узла и не передается дальше, так как отсутствует маршрут к узлу назначения. Все эти сложности станут для вас менее пугающими, как только вы изучите схемы составного распределения адресов и их взаимодействие с процессом агрегации.

Одноканальное соединение — адреса получены из адресного пространства другого провайдера

Обсуждаемые нами выше правила маршрутизации, наряду с системой сетевого адресного пространства, независимо от подключения (одноили многоканального), так или иначе участвуют в реализации объединения адресов в сети. В этом и в последующих трех разделах мы рассмотрим несколько схем межсетевого взаимодействия.

Глава 3. IР адресация и методы распределения адресов

76

При одноканальном соединении (single-homing scenario) клиент подключается к одному провайдеру, но имеет свое адресное пространство IP, которое совершенно отлично от адресного пространства провайдера. Такая ситуация может возникнуть, если клиент сменил провайдера, но сохранил право на адреса, выданные ему предыдущим провайдером. Обычно в этом случае клиентам настоятельно рекомендуется или даже требуется сменить свои адреса на новые. Если не провести перенумерацию адресов, то новый провайдер не сможет агрегировать адреса клиента. Кроме того, прежний провайдер не сможет выполнять агрегирование так же эффективно, как раньше, ввиду того, что в его адресном пространстве образовалась дыра. В итоге от использования старого адресного пространства мы получим лишь увеличение глобальных таблиц маршрутизации, так как для такой сети потребуется введение дополнительных маршрутов.

Такая схема соединения будет обсуждаться в последующих главах, но здесь следует отметить, что сетевые администраторы, сети которых имеют одноканальное соединение, должны руководствоваться принципом: лучшие параметры маршрутизации — самые простые. В случае одноканального соединения самым беспроблемным является подход, когда провайдер статически маршрутизирует адресное пространство для вашей сети, а вы указываете маршрут по умолчанию на сеть провайдера. Более сложные решения при построении системы маршрутизации следует применять лишь в случаях, когда имеется несколько соединений с различными провайдерами или предъявляются повышенные требования к резервированию соединений.

Принцип упрощения конструкции "Keep It Simple, Stupid (KISS)", которым должен руководствоваться каждый конструктор, архитектор, инженер и администратор, предполагает, что самое простое доступное решение проблемы, чаще всего является самым лучшим.

Многоканальное соединение — адреса получены от одного провайдера

При этой схеме подключения (фрагмент ее вы можете увидеть на рис. 3.14) клиенты имеют несколько каналов, подключенных к различным провайдерам. При этом сеть клиента достаточно мала, чтобы адресного пространства, выделяемого одним из провайдеров, хватило на удовлетворение всех нужд, или пространство было выделено, когда клиент имел одноканальное соединение с одним провайдером. Мы рассмотрим следующую схему: два провайдера (1SP1 и ISP2) и их клиенты — компании Onenet, Twonet и Stubnet взаимодействуют друг с другом. Для каждого домена в табл. 3.6 приведены диапазоны IPадресов, соответствующих им агрегированных (объединенных) сетей и провайдеров.

Обратите внимание на то, что сети Onenet и Twonet имеют многоканальные соединения с провайдерами ISP1 и ISP2, при этом диапазоны IP-адресов получены ими от провайдера ISP1 (рис. 3.14).

Таблица 3.6. Список клиентов и их провайдеров

Домен

Диапазон адресов

Агрегированная

Провайдер

От кого

 

 

сеть

 

получены адреса

ISP1

198.24.0 — 198.31.255.255

198.24.0.0/13

 

 

Onenet

198.24.0.0 — 198.24.15.0

198.24.0.0/20

ISP1, ISP2

ISP1

Stubnet

198.24.16.0 — 198.24.23.0

198.24.16.0/21

ISP1

ISP1

Twonet

198.24.56.0 — 198.24.63.0

198.24.56.0/21

ISP1, ISP2

ISP1

ISP2

198.32.0.0 — 198.39.255.255

198.32.0.0/13

 

 

Глава 3. IР адресация и методы распределения адресов

77

Рис. 3.14. При неправильном объявлении агрегированных маршрутов могут возникать "черные дыры "

Объявление агрегированных маршрутов — весьма сложное и тонкое дело. И клиенты, и их провайдеры должны очень осторожно подходить к вопросу выделения IPадресов, которые входят затем в агрегированную сеть. При этом абсолютно исключается возможность агрегировать еще какие-либо маршруты (так называемая прокси-агрегация (proxy aggregation)), если одна из сторон не является суперсетью для другой стороны или между ними не заключено соответствующее соглашение об этой процедуре. В следующем примере вы увидите, каким образом провайдер ISP2 может создать "черную дыру" в маршрутизации. Это осуществляется объединением диапазонов сетей Onenet и Twonet.

Примечание

"Черные дыры" чаще всего являются результатом неправильного объединения маршрутов.

Если ISP2 при обновлении маршрута посылает информацию об объединенном маршруте, в который включены сети Onenet и Twonet (198.24.0.0/18), как показано на рис. 3.14, то в маршрутизации возникает "черная дыра". Так, например, сеть компании Stubnet, которая является клиентом ISP1, имеет адресное пространство, которое входит в объединенную сеть 198.24.0.0/18. Если провайдер ISP2 объявит такой объединенный маршрут, то весь трафик в сеть компании Stubnet, следуя правилу длиннейшего подходящего префикса в IP-адресе, будет заканчиваться в сети самого провайдера ISP2, что вызовет появление "черной дыры". Именно поэтому провайдер ISP2 должен однозначно анонсировать маршруты к каждому диапазону адресов своих клиентов, адресное пространство которых не входит в его диапазон IP-адресов (198.24.0.0/20 для Onenet и 198.24.0.0/21 для Twonet), который он также получил от ISP1. Кроме того, провайдер ISP2

Глава 3. IР адресация и методы распределения адресов

78

должен вместе с маршрутами к сетям клиентов анонсировать и свое собственное адресное пространство 198.32.0.0/13.

Рис. 3.15. Правильно сформированные объединенные маршруты предотвращают возникновение "черных дыр”

На рис. 3.15 представлена схема правильного объявления маршрутов к объединенным сетям. Здесь, провайдер ISP2 явным образом объявляет маршруты к сетям компаний Onenet и Twonet. В таком случае трафик, предназначенный сети Stubnet, никогда не попадет в сеть провайдера ISP2.

Заметим, что провайдер ISP1 также объявляет явным образом объединенные сети Onenet и Twonet (рис. 3.15). Если бы провайдер ISP1 анонсировал только неопределенный объединенный маршрут 198.24.0.0/13, то весь трафик в направлении сетей Onenet и Twonet пошел бы по более определенному длиннейшему подходящему пути, т.е. через сеть провайдера ISP2.

Многоканальное соединение —адреса получены от разных провайдеров

Как правило, в больших доменах довольно высока вероятность получения IP-адресов от различных провайдеров, в зависимости от их географического положения. Рассмотрим рис. 3.16. Сеть Largenet получила диапазон IP-адресов от двух различных провайдеров —

ISP1 и ISP2. При этом каждый из провайдеров способен объединить собственное адресное пространство без необходимости указывать явным образом диапазоны адресов другого провайдера. Таким образом, ISP1 объявляет о маршруте к объединенной сети 198.24.0.0/13, a ISP2 — о маршруте к сети 198.32.0.0/13. При этом обе объединенные сети являются суперсетями для блоков IP-адресов, составляющих сеть Largenet.

Глава 3. IР адресация и методы распределения адресов

79

Рис. 3.16. Многоканальное соединение с IP-адресами, полученными от разных провайдеров

Основной недостаток схемы, представленной на рис. 3.16, — невозможность обслуживания резервных маршрутов для организаций с многоканальными подключениями. Дело в том, что провайдер ISP2 анонсирует только блок своих адресов и не дает никаких сведений об адресах из диапазона провайдера ISP1. Если на узле провайдера ISP1 возникнет непредвиденная ситуация и маршруты к сети 198.24.0.0/13 будут потеряны, то весь трафик в сети Largenet, адресованный в сеть 198.24.0.0/20, также не достигнет пунктов назначения, так как этот маршрут нигде больше не объявлен. Та же участь ожидает и адреса Largenet, полученные от провайдера ISP2. При пропадании канала с 1SP2 доступ к диапазону адресов 198.32.0.0/20 будет затруднен. Для того чтобы исправить эту ситуацию, провайдер ISP1 должен объявить у себя маршрут к сети 198.32.0.0/20, a ISP2 в свою очередь объявить маршрут в сеть 198.24.0.0/20.

Многоканальное соединение — адреса получены от третьей стороны

На рис. 3.17 показана ситуация, когда адреса, полученные клиентом, не принадлежат ни к одному из диапазонов адресов провайдеров ISP1 и ISP2, т.е. получены у третьей стороны. В этом случае и ISP1, и ISP2 объявляют специальный агрегированный маршрут (202.24.0.0/20) в дополнение к своим собственным диапазонам адресов (198.24.0.0/13 и 198.32.0.0/13). Недостаток этого метода заключается в том, что все маршрутизаторы в сети Internet должны иметь специальный маршрут к новому диапазону адресов. Большое количество подобных схем подключения может привести к значительному росту глобальных таблиц маршрутов в сети Internet.

Глава 3. IР адресация и методы распределения адресов

80