27. Основні принципи
безкласової маршрутизації між доменами.
CIDR: бесклассовая маршрутизация между доменами (Classless Interdomain Routing)
В главе 3 было сказано, что в настоящее время
ощущается нехватка адресов класса В, поэтому узлам с
несколькими сетями приходится присваивать несколько идентификаторов сетей
класса С вместо одного идентификатора сети класса В. С одной стороны, появление
адресов класса С решает одну проблему (переполнение количества адресов класса
В). С другой стороны, появляется еще одна проблема: каждая сеть класса С требует записи в таблице маршрутизации. Бесклассовая
маршрутизация между доменами (CIDR - Classless Interdomain Routing) это способ,
который позволяет свести к минимуму рост таблиц маршрутизации в Internet. Этот способ также называется supernetting
и описывается в RFC 1518 [Rekhter and
Li 1993] и в RFC 1519 [Fuller
et al. 1993], обзор можно
найти в [Ford, Rekhter and Braun 1993]. CIDR одобрен Internet Architecture Board
[Huitema 1993]. RFC 1467 [Topolcic 1993] кратко описывает состояние и развитие CIDR в
Internet.
Основная концепция, заложенная в CIDR,
заключается в том, что несколько IP адресов можно расположить определенным
образом, что позволит уменьшить количество записей в таблице маршрутизации.
Например, если один узел состоит из 16 адресов класса С,
все 16 могут быть расположены таким образом, что они будут суммироваться,
поэтому ко всем 16-ти можно будет обратиться через одну запись в таблице
маршрутизации. Также, если 8 различных узлов подключены к одному и тому же Internetовскому "поставщику
сервиса" через одну и ту же точку подключения к Internet,
и если все 8 узлов имеют 8 различных IP адресов, они могут быть суммированы,
после чего потребуется только одна запись в таблице маршрутизации, которая
будет использоваться в Internet для всех 8 узлов.
Для того чтобы использовать подобное
суммирование, необходимо, чтобы выполнялось три условия.
В качестве примера скажем, что RFC 1466 [Gerich 1993] рекомендует, чтобы новые адреса класса С в Европе находились в диапазоне 194.0.0.0 -
195.255.255.255. В шестнадцатиричном представлении
эти адреса лежат в диапазоне 0xc2000000 - 0xc3ffffff. Это позволяет
использовать 65536 различных идентификаторов сети класса С,
однако все они имеют одинаковые 7 бит старшего порядка. В других
(неевропейских) странах может быть использована единственная запись в таблице
маршрутизации с IP адресом 0xc2000000 и 32-битной маской 0xfe000000
(254.0.0.0), чтобы организовать маршрут ко всем этим идентификаторам сетей
класса С (в количестве 65536) через одну точку.
Последовательность битов в адресе класса С (это биты,
следующие за 194 или 195) может быть расположена в иерархическом порядке,
например, по странам или по поставщикам сервиса, чтобы тем самым позволить
дополнительное сложение внутри европейских маршрутизаторов
с использованием дополнительных битов, стоящих после 7 бит старшего порядка в
32-битной маске.
CIDR также использует технику, которая
определяет, что "лучшее совпадение это всегда наиболее длинное совпадение
(longest match)": то
есть совпадение максимального количества битов в 32-битной маске. Продолжая
пример из предыдущего параграфа, нужно отметить следующее. Предположим, что
один поставщик сервиса в Европе нуждается в использовании другого маршрутизатора для входа в Internet,
чем вся остальная Европа. Если этот поставщик сервиса находится в диапазоне
адресов 194.0.16.0 - 194.0.31.255 (16 идентификаторов сетей класса С), записи в
таблице маршрутизации для этих сетей должны иметь IP адрес 194.0.16.0 и маску
255.255.240.0 (0xfffff000). Датаграмма, которая
маршрутизируется на адрес 194.0.22.1, будет совпадать с этим пунктом таблицы
маршрутизации и с одной из сетей класса С в остальной
Европе. Однако, так как маска 255.255.240 "длиннее" чем маска
254.0.0.0, будет использован пункт в таблице маршрутизации, который имеет самую
длинную маску.
Термин "бесклассовый" используется
потому, что решения о маршрутизации принимаются на основе масок, накладываемых
на полный 32-битный IP адрес. При этом не существует различия между адресами
класса А, В или С.
Первоначально предполагается использовать
CIDR в адресах новых сетей класса С. Благодаря внесению подобного изменения,
значительно уменьшится рост таблиц маршрутизации в Internet,
при этом не потребуется вносить никаких изменений в
существующие маршрутизаторы. Хотя надо отметить, что
подобное решение является кратковременной мерой. Более значительное улучшение
можно получить, если CIDR будет использоваться для всех IP адресов, и
существующие IP адреса будут переназначены (при этом все существующие хосты
получат новые адреса!) в соответствии с ограничениями по странам, континентам и
поставщикам сервисов [Ford, Rekhter
and Braun 1993]. Выигрыш
будет заключаться в следующем: современная таблица маршрутизации содержит до
10000 записей, тогда как после применения CIDR количество записей уменьшится до
200.
Краткие выводы
Существуют два основных типа протоколов
маршрутизации: протоколы внутренних маршрутизаторов
(IGP - interior gateway protocol), для маршрутизаторов,
находящихся внутри автономной системы (autonomous system), и протоколы внешних маршрутизаторов
(EGP - exterior gateway protocol), для маршрутизаторов,
которые общаются с маршрутизаторами в других
автономных системах.
Наиболее популярный IGP это Routing Information Protocol (RIP), однако постепенно новый IGP - OSPF
становится более популярным, и все чаще и чаще начинает заменять собой RIP. Новый и популярный EGP это Border Gateway Protocol (BGP). В этой
главе мы рассмотрели RIP и типы сообщений, которые он использует. RIP Version 2 это современное расширение, которое поддерживает
разбиение на подсети и другие важные улучшения. Также мы описали OSPF, BGP и
бесклассовую маршрутизацию между доменами (CIDR), новую технологию, которая
призвана уменьшить размер таблиц маршрутизаций в Internet.
Существует еще два OSI протокола
маршрутизации, на которые Вам следует обратить внимание. Протокол междоменной маршрутизации (IDRP - Interdomain
Routing Protocol) появился
как версия BGP, модифицированная для использования с OSI адресами вместо IP.
Протокол промежуточная система - промежуточная система (IS-IS - Intermediate System to Intermediate System) это OSI стандарт IGP. Он используется как протокол
маршрутизации в сетях без соединения (CLNP - Connectionless
Network Protocol), OSI
протокол, похожий на IP. IS-IS и OSPF очень похожи.
Динамическая маршрутизация до сих пор
остается плодотворной почвой для исследований в области межсетевого
взаимодействия. Поэтому выбрать, какой протокол маршрутизации
необходимо использовать и какой демон маршрутизации
необходимо запустить, довольно сложно. [Perlman 1992]
предоставляет множество подробностей.