Распределение IP-адресов

Ревин Алексей, Понедельник, 10 Январь 2005, 13:58

1. IP - адреса.

IP-адрес является уникальным 32-битным идентификаторомIP-интерфейса в Интернете. Часто говорят, что IP-адрес присваивается узлу сети (например, хосту); это верно в случае, если узел является хостом с одним IP-интерфейсом, иначе следует уточнить, об адресе какого именно интерфейса данного узла идет речь. Далее для краткости там, где это не вызывает неверного толкования, вместо адреса IP-интерфейса узла сети говорится об IP-адресе хоста.

IP-адреса принято записывать путем разбиения всего адреса по октетам, каждый октет записывается в виде десятичного числа, числа разделяются точками (так называемая десятично-точечная нотация). Например, адрес 10100000010100010000010110000011 записывается как 10100000.01010001.00000101.10000011 = 160.81.5.131.

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


2. Классовая модель.

В классовой модели IP-адрес может принадлежать к одному из четырех классов сетей. Каждый класс характеризуется определенным размером сетевой части адреса, кратным восьми, таким образом, граница между сетевой и хостовой частями IP-адреса в классовой модели всегда проходят по границе октета. Принадлежность к тому или иному классу определяется по старшим битам адреса (Рис. 1).


Рисунок 1


Класс А. Старший бит адреса равен нулю. Размер сетевой части равен 8 битам. Таким образом, может существовать всего 2<sup>7</sup> сетей класса А, но каждая сеть обладает адресным пространством на 2<sup>24</sup> хостов. Так как старший бит адреса нулевой, то все IP-адреса этого класса имеют значение старшего октета в диапазоне от 0-127, который является также и номером сети.

Класс В. Два старших бита адреса равны 10. Размер сетевой части равен 16 битам. Таким образом, может существовать всего 2<sup>14</sup> сетей класса В, каждая сеть обладает адресным пространством на 2<sup>16</sup> хостов. Значения старшего октета IP-адреса лежат в диапазоне 128-191, при этом номером сети являются два старших октета.

Класс С. Три старших бита адреса равны 110. Размер сетевой части равен 24 битам. Количество сетей класса С – 221, адресное пространство каждой сети рассчитано на 254 хоста. Значения старшего октета IP-адреса лежит в диапазоне 192-223, а номером сети являются три старших октета.

Класс D. Сети со значением старшего октета IP-адреса 224 и выше – зарезервированыдля специальных целей. Адреса из диапазона 224.0.0.0 – 224.255.255.255 используются для групповой рассылки (мультикастинга) – передачи датаграмм группе узлов сети, например:

224.0.0.1 - всем хостам данной сети;
224.0.0.2 – всем маршрутизаторамданной сети;
224.0.0.5 – всем OSPF-маршрутизаторам
224.0.0.6 – всем выделенным OSPF-маршрутизаторам

В классе А выделены две особые сети, их номера 0 и 127. Сеть 0 используется при маршрутизации как указание на маршрут по умолчанию и в других особых случаях.

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

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

Пример: 194.84.124.0 – сеть класса С, номер хоста в ней определяется последним октетом. При отправлении широковещательнго сообщения оно отправляется по адресу 194.84.124.255. Номера, разрешенные для присваивания хостам: от 1 до 254 (194.84.124.1 - 194.84.124.254), всего 254 возможных адреса.

Другой пример: в сети 135.198.0.0 (класс В, номер хоста занимает два октета) широковещательнй адрес – 135.198.255.255, диапазон номеров хостов: 0.1 – 255.254 (135.198.0.1 – 135.198.255.254).

3. Бесклассовая модель.

Предположим, в локальной сети, подключаемой к Интернету, находиться 2000 компьютеров. Каждому из них требуется выдать IP-адрес. Для получения необходимого адресного пространства нужны либо 8 сетей класса С, либо одна сеть класса В. Сеть класса В вмещает 65534 адреса, что много больше требуемого количества. При общем дефиците IP-адресов, такое использование сетей класса В расточительно. Однако, если мы будем использовать 8 сетей класса С, возникнет следующая проблема: каждая такая IP-сеть должна быть представлена на маршрутизаторах потому что с точки зрения маршрутизаторов– это 8 абсолютно никак не связанных между собой сетей, маршрутизация датаграмм в которых осуществляется независимо, хотя, фактически, эти IP-сети и расположены в одной физической локальной сети и маршруты к ним идентичны. Таким образом, экономя адресное пространство, мы многократно увеличиваем служебный трафик в сети и затраты по поддержанию и обработке маршрутных таблиц.

С другой стороны, нет никаких формальных причин проводить границу сеть – хост в IP-адресе именно по границе октета. Это было сделано исключительно для удобства представления IP-адресов и разбиения их на классы. Если выбрать длину сетевой части в 21 бит, а на номер хоста отвести соответственно 11 битов, мы получим сеть, адресное пространство которой содержит 2046 IP-адресов, что максимально точно соответствует поставленному требованию. Это будет одна сеть, определяемая своим уникальным 21 – битным номером, следовательно, для её обслуживания потребуется только одна запись в маршрутной таблице.

Единственная проблема, которую осталось решить: как определить, что на сетевую часть отведен 21 бит? В случае классовой модели, старшие биты IP-адреса определяли принадлежность этого адреса к тому или иному классу, и, следовательно, количество битов, отведенных на номер сети.

В случае адресации вне классов, с произвольным положением границы сеть – хост внутри IP-адреса, к IP-адресу прилагается 32-битовая маска, которую называют маской сети (netmask) или маской подсети (subnet mask). Сетевая маска конструируется по следующему правилу:

<ul><li>На позициях, соответствующих номеру сети, биты установлены;</li>
<li>На позициях, соответствующих номеру хоста, биты сброшены;</li></ul>

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


4. Запись адресов в бесклассовой модели.

Для удобства записи IP-адрес в бесклассовой модели часто представляют в виде a.b.c.d/n, где a.b.c.d – IP адрес, n – количество битов в сетевой части, например: 137.158.128.0/17.

Маска сети для этого адреса; 17 единиц (сетевая часть), за ними 15 нулей (хостовая часть), что в октетном представлении равно 11111111.11111111.10000000.00000000 = 255.255.128.0 (Рис 2).


Рисунок 2


Представив IP-адрес в двоичном виде и побитно умножив его на маску сети, мы получим номер сети (все нули в хостовой части). Номер хоста в этой сети мы можем получить, побитно умножив IP-адрес на инвертированную маску сети.

Очевидно, что сети классов А,В,С в бесклассовой модели представляются при помощи масок, соответственно, 255.0.0.0 (или /8), 255.255.0.0 (или /16) и 255.255.255.0 (или /24).

Блоки адресов 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 зарезервированыдля использования в частных сетях – эти сети, не взаимодействующие напрямую с Интернетом – то есть, либо подключенные к Интернету через брандмауэр, либо вообще изолированные (RFC-1597). Гарантируется, что никому в Интернете не будут выделены адреса из указанных блоков.


Надеюсь, эта информация поможет не только мне, но и людям только начинающим разбираться в сетях.


это контент от Центр информации по операционным системам
( http://www.osrc.info/plugins/content/content.php?content.79 )