Литмир - Электронная Библиотека

Поскольку длина префикса не выводится из IP-адреса, протоколы маршрутизации вынуждены передавать префиксы на маршрутизаторы. Иногда префиксы задаются с помощью указания длины (например, «/16»). Длина префикса соответствует двоичной маске, в которой единицы указывают на сетевую часть. Такая маска называется маской подсети (subnet mask). Выполнение операции И между маской и IP-адресом позволяет выделить сетевую часть. В нашем примере (рис. 5.42) маска подсети выглядит так: 255.255.255.0. У

Компьютерные сети. 5-е издание - _297.jpg

Рис. 5.42. Префикс IP-адреса и маска подсети

У иерархических адресов есть существенные преимущества и недостатки. Важное преимущество префиксов состоит в том, что маршрутизаторы могут направлять пакеты, используя только сетевую часть адреса, поскольку каждой сети соответствует свой уникальный адресный блок. Маршрутизатору не нужно учитывать часть адреса, задающую хост, так как пакеты для всех хостов одной сети передаются в одном направлении. Пакеты направляются на хосты только после того, как попадают в соответствующую сеть. В результате таблицы маршрутизации становятся гораздо меньше. Притом что число хостов в Интернете приближается к миллиарду, это очень существенное преимущество, так как иначе таблицы маршрутизации были бы невероятно большими. Но благодаря иерархии им приходится хранить маршруты лишь для 300 000 префиксов.

Хотя иерархия упрощает маршрутизацию в Интернете, она обладает двумя недостатками. Во-первых, IP-адрес хоста зависит от его местоположения в сети. Адреса Ethernet можно использовать в любой точке мира, а IP-адрес принадлежит конкретной сети, и поэтому маршрутизаторы могут доставить пакет, предназначенный для данного адреса, только в данную сеть. Для того чтобы хосты могли перемещаться из одной сети в другую, сохраняя свой IP-адрес, необходимы новые решения, такие как мобильный IP.

Второй недостаток состоит в том, что неправильная иерархия может привести к неэффективному использованию адресов. Если адреса приписываются сетям (слиш-

ком) крупными блоками, большое количество адресов будет выделено, но не будет использоваться. Если бы адресов было много, этот факт не имел бы такого значения. Однако уже более десяти лет назад стало ясно, что свободное адресное пространство в Интернете заполняется с невероятной скоростью. Протокол IPv6 решил эту проблему, но до тех пор, пока он не будет применяться повсеместно, эффективное выделение адресов будет вызывать серьезные затруднения.

Подсети

Во избежание конфликтов, номера сетям назначаются некоммерческой корпорацией по присвоению имен и номеров, ICANN (Internet Corporation for Assigned Names and Numbers). В свою очередь, ICANN передала полномочия по присвоению некоторых частей адресного пространства региональным органам, занимающимся выделением IP-адресов провайдерам и другим компаниям. Таким образом компании получают блоки IP-адресов.

Однако с этого история только начинается, так как с ростом компаний им требуются новые IP-адреса. Как мы уже говорили, маршрутизация по префиксу требует, чтобы у всех хостов сети был один и тот же номер сети. Это свойство IP-адресации может вызвать проблемы при росте сети. Например, представьте, что университет создал сеть с префиксом /16 из нашего примера, используемую факультетом информатики в качестве Ethernet. Год спустя факультету электротехники понадобилось подключиться к Интернету, а затем и факультету искусств. Какие IP-адреса будут использовать эти факультеты? Если запросить дополнительные блоки, то получится, что новые сети не будут частью сети университета; к тому же, это может быть дорого и неудобно. Более того, префикс /16 позволяет подключить более 60 000 хостов. Возможно, такой префикс был выбран с учетом того, что сеть может вырасти. Но пока этого не произошло, выделять университету новые блоки будет неэффективно. Требуется новая архитектура.

Проблема решилась предоставлением сети возможности разделения на несколько частей с точки зрения внутренней организации. Это называется разбиением на подсети (subnetting). Сети, полученные в результате разбиения крупной сети (например, локальные сети в сети Ethernet), называются подсетями (subnets). Как уже упоминалось в главе 1, подобное использование этого термина конфликтует со старым понятием «подсети», обозначающим множество всех маршрутизаторов и линий связи в сети.

На рис. 5.43 показано, как разбиение на подсети может быть полезным в нашем примере. Единая сеть /16 разделена на части. Части не обязаны быть одинаковыми, но адреса должны быть распределены с учетом длины оставшейся части хоста. В нашем случае половина блока (/17) выделяется факультету информатики, четверть (/18) — факультету электротехники, восьмая часть (/19) — факультету искусств. Оставшаяся восьмая часть не используется. Еще один способ понять, как блок разбивается на части, — посмотреть на префиксы в двоичной нотации.

Информатика

10000000

11010000

1|xxxxxxx

xxxxxxxx

Электротехника

10000000

11010000

00|xxxxxx

xxxxxxxx

Искусства

10000000

11010000

011|xxxxx

xxxxxxxx

Вертикальная черта (|) обозначает границу между номером подсети и номером хоста.

Компьютерные сети. 5-е издание - _298.jpg

Рис. 5.43. Разделение IP-префикса при разбиении на подсети

Как центральный маршрутизатор узнает, в какую из подсетей направить пришедший пакет? Здесь и могут пригодиться специфические свойства префиксов. Одним из способов является поддержание каждым маршрутизатором таблицы из 65 536 записей, говорящих о том, какую исходящую линию использовать для доступа к каждому из хостов. Но это сведет на нет основное преимущество иерархии, касающееся размеров таблиц маршрутизации. Вместо этого можно сделать так, чтобы маршрутизаторы знали маски этих подсетей.

Когда приходит пакет, маршрутизатор просматривает адрес назначения и определяет, к какой подсети он относится. Для этого маршрутизатор может выполнить операцию И от этого адреса и маски каждой из подсетей, сравнивая результат с соответствующим префиксом. Пусть у нас есть пакет с адресом 128.208.2.151. Чтобы проверить, относится ли он к факультету информатики, прибавим к нему (используя логическое И) маску 255.255.128.0, таким образом отрезав первые 17 бит (то есть

128.208.0.0). Далее сравним полученный результат с префиксом (128.208.128.0). Они не совпадают. Для факультета электротехники аналогичным образом берем первые 18 бит адреса и получаем 128.208.0.0. Это значение совпадает с префиксом, поэтому пакет передается на интерфейс, ведущий к сети факультета электротехники.

Разделение на подсети можно впоследствии изменить. Для этого потребуется обновить сведения о сетевых масках подсетей на всех маршрутизаторах сети университета. За пределами сети разделение на подсети незаметно, поэтому нет нужды с появлением каждой подсети обращаться в ICANN или изменять какие-либо внешние базы данных.

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

Даже при эффективном выделении IP-адресов проблема разрастания сети сохраняется.

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

Маршрутизаторы интернет-провайдеров и магистралей не могут позволить себе такую роскошь. Они должны знать путь к любой сети, поэтому для них не может существовать простого правила по умолчанию. Про такие магистральные маршрутизаторы говорят, что они находятся в свободной от умолчаний зоне (default-free zone) сети Интернет. Никто не знает точно, сколько всего сетей подключено к Интернету, но очевидно, что их много — возможно, порядка миллиона. Из них можно составить очень большую таблицу. Может быть, и не очень большую с точки зрения компьютерных стандартов, но представьте себе, что маршрутизатор должен просматривать ее при отправке каждого пакета, а за секунду он отправляет миллионы таких пакетов. Для обработки пакетов с такой скоростью требуются специализированные аппаратные средства и быстродействующая память; обычный компьютер для этого не подойдет.

157
{"b":"639789","o":1}