Сидни Фейт - TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Address: 128.121.50.2
Name: nicol.jvnc.net
Address: 128.121.50.10
Aliases: gopher.jvnc.net
> www.jvnc.net.
Server: r2d2.jvnc.net Address: 128.121.50.2
Name: nicol.jvnc.net
Address: 128.121.50.10
Aliases: www.jvnc.net
>
Когда нагрузка на nicol становится слишком большой, одну из его служб (и краткое имя этой службы) можно перенаправить на другой хост. Такой способ дает пользователю возможность достичь службы по неизменному имени, даже если ее домашний сайт будет изменен. Реальное имя хоста называется каноническим именем (canonical name).
5.15 Неэффективность классов адресов
Сеть класса А охватывает 16 777 216 адресов, класса В — 65 536, а сеть класса С содержит только 256 номеров. Огромная разница между этими значениями делает неэффективным выделение адресных блоков и приводит к истощению адресного пространства IP.
Более эффективный бесклассовый метод выделения адресов для организации рассмотрен в разд. 5.19.
5.16 Сети и подсети TCP/IP
Организации с адресами сетей класса А или В, как правило, имеют очень большие сети, состоящие из множества локальных и нескольких региональных сетей. В этом случае имеет смысл разделить адресное пространство так, чтобы оно отражало структуру сети в виде нескольких подсетей. Для этого локальная часть адреса разделяется на часть для подсети (subnet part) и системную часть (system part) любым выбранным организацией способом (см. рис. 5.6).
Рис. 5.6. Деление локального адреса на подсеть и системную часть
Определение размера части адреса для подсети и присваивание номеров подсетям производится организацией, владеющей данной частью адресного пространства.
Адреса подсети часто создаются в соответствии с байтовой границей. Организация с адресом класса В, например 128.21, может использовать для идентификации подсети третий байт:
128.121.1
128.121.2
128.121.3
Четвертый байт будет использоваться для идентификации отдельных хостов в подсети.
Организация с адресом класса С имеет только однобайтовое адресное пространство. Она может вообще не проводить деления на подсети или использовать первые 4 бита для адреса подсети и 4 бита для адресов хостов (см. рис. 5.7). На рисунке видно, что локальный адрес (61) имеет двоичное представление 0011 1101. Первые 4 бита идентифицируют подсеть, а последние 4 бита определяют системы.
Рис. 5.7. Четырехбитовая часть для подсети в адресе класса С
5.17 Маска подсети
Маршрутизация трафика на хост выполняется посредством анализа сетевой части и части для подсети IP-адреса. Сетевые части адресов классов А, В и С имеют фиксированный размер. Однако организация может указать собственный размер для поля подсети, и тут возникает вопрос о распознавании этой части в хостах и маршрутизаторах. На рис. 5.8 показано меню программы Chameleon для ввода размера поля подсети.
Рис. 5.8. Конфигурирование маски подсети
Размер поля подсети реально хранится в конфигурационном параметре, называемом маской подсети (subnet mask). Маска подсети имеет длину в 32 бита. Эти биты отражают для заданной сети длину поля подсети в адресе: для поля подсети в маске располагаются единицы, а для системного поля — нули.
Например, если для идентификации подсети используется третий байт, а сеть имеет адрес 128.121, то маска подсети будет:
11111111 11111111 11111111 00000000
Часто маска подсети записывается десятичной нотацией с точками: 255.255.255.0
Иногда применяется шестнадцатеричный формат:
X'FF-FF-FF-00
Подключенные к подсети хосты и маршрутизаторы конфигурируются с маской подсети. Общепринятым способом является использование одной маски подсети для всей интернет-сети организации. Однако из этого правила есть исключения, и некоторые организации применяют несколько размеров для различных подсетей.
Например, если сеть содержит большое количество линий "точка-точка", то номера подсети будут использованы очень неэкономно, поскольку в коммуникации участвуют только две системы в каждой из подсетей "точка-точка". Организация может решить использовать 14-битовую маску (255.255.255.252) для соединений "точка-точка".
Таблица 5.2 Подсети в сети класса В
Биты подсети Количество подсетей Биты для хостов Количество хостов Маска подсети 0 0 16 65534 255.255.0.0 1 - 15 - Недопустимая комбинация 2 2 14 16382 255.255.192.0 3 6 13 8190 255.255.224.0 4 14 12 4094 255.255.240.0 5 30 11 2046 255.255.248.0 6 62 10 1022 255.255.252.0 7 126 9 510 255.255.254.0 8 254 8 254 255.255.255.0 9 510 7 126 255.255.255.128 10 1022 6 62 255.255.255.192 11 2046 5 30 255.255.255.224 12 4096 4 14 255.255.255.240 13 8190 3 6 255.255.255.248 14 16382 2 2 255.255.255.252 15 - 1 - Недопустимая комбинацияВ таблице 5.2 показаны способы разделения локального адреса для сети класса B. В ней также приведено количество подсетей и хостов в разделах. Это количество на 2 меньше, чем можно было предположить, поскольку существуют некоторые ограничения, которые будут рассмотрены ниже. Например, если подсеть использует 6 бит, шаблон маски подсети будет:
11111111 11111111 11111100 00000000,
что можно записать как 255.255.252.0. Далее мы рассмотрим, почему нельзя использовать комбинации 1/15 (1 бит для подсети и 15 бит для адресов хостов) и 15/1.
В приложении D представлены примеры использования в одной сети нескольких различных масок подсетей, что позволяет эффективно присваивать адреса.
5.18 Специальные зарезервированные адреса
Для номера подсети или хоста нельзя использовать любое число. Например, некоторые адреса служат для широковещательных рассылок, а другие — резервируются для таблиц маршрутизации. Следует руководствоваться правилом: никогда не применять блоки из одних нулей или единиц — как в поле подсети, так и в поле хостов. Также не существует сетевых номеров, состоящих из одних нулей или единиц.
5.18.1 Идентификация сети и подсети
Для указания сети удобно использовать формат адреса с точками. По соглашению, это делается при заполнении локальной части адреса нулями. Например, 5.0.0.0 указывает на сеть класса А, 131.18.0.0 — на сеть класса В, а 201.49.16.0 — на сеть класса С.
Аналогичным образом указываются подсети. Например, если сеть 131.18.0.0 использует 8-битовую маску подсети, то 131.18.5.0 и 131.18.6.0 будут определять подсети. Эта же нотация применяется для записи сети или подсети назначения в таблице маршрутизации IP. Данное соглашение приводит к тому, что такие адреса нельзя присваивать хостам и маршрутизаторам. Кроме того, использование нуля как номера подсети делает некоторые адреса неоднозначными, например 130.15.0.0. По этой причине применение нулей в поле подсети запрещено в стандарте (см. RFC 1122). Сайты, использующие ноль как маску подсети, тем самым нарушают соглашение.