
506 Глава 5. Сетевой уровень
Сетевой уровень в Интернете 507
означает, что каждый маршрутизатор должен учитывать только другие сети и
локальные хосты, а не пары <сеть, хост>, что значительно уменьшает размер
таблиц маршрутизатора.
При разбиении сети на подсети таблицы маршрутизации меняются — добав-
ляются записи вида <эта_сеть, подсеть, 0> и <эта_сетъ, эта_подсеть, хост>.
Таким образом, маршрутизатор подсети k знает, как получить доступ ко всем
другим подсетям и как добраться до всех хостов своей подсети. Ему нет нужды
знать детали адресации хостов в других подсетях. На самом деле, все, что для
этого требуется от маршрутизатора, это выполнить двоичную операцию И над
маской подсети, чтобы избавиться от номера хоста, а затем найти получившийся
адрес в таблицах (после определения класса сети). Например, пакет, адресован-
ный хосту с IP-адресом 130.50.15.6 и прибывающий на центральный маршрути-
затор, после выполнения операции И с маской 255.255.252.0/22 получает адрес
130.50.12.0. Это значение ищется в таблицах маршрутизации, и с его помощью
определяется выходная линия маршрутизатора к подсети 3. Итак, разбиение на
подсети уменьшает объем таблиц маршрутизаторов путем создания трехуровне-
вой иерархии, состоящей из сети, подсети и хоста.
CIDR — бесклассовая междоменная маршрутизация
В течение многих лет IP оставался чрезвычайно популярным протоколом. Он ра-
ботал просто прекрасно, и основное подтверждение тому - экспоненциальный
рост сети Интернет. К сожалению, протокол IP скоро стал жертвой собственной
популярности: стало подходить к концу адресное пространство. Эта угроза вы-
звала бурю дискуссий и обсуждений в Интернет-сообществе. В этом разделе мы
опишем как саму проблему, так и некоторые предложенные способы ее решения.
В теперь уже далеком 1987 году некоторые дальновидные люди предсказыва-
ли, что настанет день, когда в Интернете будет 100 000 сетей. Большинство экс-
пертов посмеивались над этим и говорили, что если такое когда-нибудь и про-
изойдет, то не раньше, чем через много десятков лет. Стотысячная сеть была
подключена к Интернету в 1996 году. И, как уже было сказано, нависла угроза
выхода за пределы пространства IP-адресов. В принципе, существует 2 миллиар-
да адресов, но на практике благодаря иерархической организации адресного про-
странства (см. рис. 5.48) это число сократилось на миллионы. В частности, од-
ним из виновников этого является класс сетей В. Для большинства организаций
класс А с 16 миллионами адресов — это слишком много, а класс С с 256 адреса-
ми — слишком мало. Класс В с 65 536 адресами — это то, что нужно. В интернет-
фольклоре такая дилемма известна под названием проблемы трех медведей
(вспомним Машу и трех медведей).
На самом деле и класс В слишком велик для большинства контор, которые
устанавливают у себя сети. Исследования показали, что более чем в половине
случаев сети класса В включают в себя менее 50 хостов. Безо всяких сомнений,
всем этим организациям хватило бы и сетей класса С, однако почему-то все уве-
рены, что в один прекрасный день маленькое предприятие вдруг разрастется на-
столько, что сеть выйдет за пределы 8-битного адресного пространства хостов.
Сейчас, оглядываясь назад, кажется, что лучше было бы использовать в классе С
10-битную адресацию (до 1022 хостов в сети). Если бы это было так, то, возмож-
но, большинство организаций приняло бы разумное решение устанавливать у се-
бя сети класса С, а не В. Таких сетей могло бы быть полмиллиона, а не 16 384,
как в случае сетей класса В.
Нельзя обвинять в создавшейся ситуации проектировщиков Интернета за то,
что они не увеличили (или не уменьшили) адресное пространство сетей клас-
са В. В то время, когда принималось решение о создании трех классов сетей, Ин-
тернет был инструментом научно-исследовательских организаций США (плюс
несколько компаний и военных организаций, занимавшихся исследованиями с
помощью сети). Никто тогда не предполагал, что Интернет станет коммерческой
системой коммуникации общего пользования, соперничающей с телефонной се-
тью. Тогда кое-кто сказал, ничуть не сомневаясь в своей правоте: «В США около
2000 колледжей и университетов. Даже если все они подключатся к Интернету и
к ним присоединятся университеты из других стран, мы никогда не превысим
число 16 000, потому что высших учебных заведений по всему миру не так уж
много. Зато мы будем кодировать номер хоста целым числом байт, что ускорит
процесс обработки пакетов».
Даже если выделить 20 бит под адрес сети класса В, возникнет другая про-
блема: разрастание таблиц маршрутизации. С точки зрения маршрутизаторов,
адресное пространство IP представляет собой двухуровневую иерархию, состоя-
щую из номеров сетей и номеров хостов. Маршрутизаторы не обязаны знать но-
мера вообще всех хостов, но им необходимо знать номера всех сетей. Если бы ис-
пользовалось полмиллиона сетей класса С, каждому маршрутизатору пришлось
бы хранить в таблице полмиллиона записей, по одной для каждой сети, в кото-
рых сообщалось бы о том, какую выходную линию использовать, чтобы добрать-
ся до той или иной сети, а также о чем-нибудь еще.
Физическое хранение полумиллиона строк таблицы, вероятно, выполнимо,
хотя и дорого для маршрутизаторов, хранящих таблицы в статической памяти
плат ввода-вывода. Более серьезная проблема состоит в том, что сложность об-
работки этих таблиц растет быстрее, чем сами таблицы, то есть зависимость ме-
жду ними не линейная. Кроме того, большая часть имеющихся программных и
программно-аппаратных средств маршрутизаторов разрабатывалась в те време-
на, когда Интернет объединял 1000 сетей, а 10 000 сетей казались отдаленным
будущим. Методы реализации тех лет в настоящее время далеки от оптималь-
ных.
Различные алгоритмы маршрутизации требуют от каждого маршрутизатора
периодической рассылки своих таблиц (например, протоколов векторов расстоя-
ний). Чем больше будет размер этих таблиц, тем выше вероятность потери части
информации по дороге, что будет приводить к неполноте данных и возможной
нестабильности работы алгоритмов выбора маршрутов.
Проблема таблиц маршрутизаторов может быть решена при помощи увеличе-
ния числа уровней иерархии. Например, если бы каждый IP-адрес содержал по-
ля страны, штата, города, сети и номера хоста. В таком случае каждому маршру-
тизатору нужно будет знать, как добраться до каждой страны, до каждого штата
или провинции своей страны, каждого города своей провинции или штата и до