Перейти к содержанию

П/з №5. Адресация IPv4. Классовая и бесклассовая адресация. Расчет подсетей.

1. Адресация IPv6

Чтобы любые две системы могли взаимодействовать между собой, они должны возможность однозначно идентифицировать друг друга, как это показано на рис. 1.

Рисунок 1 - Адреса узлов

Несмотря на то, что показанные адреса не являются фактическими сетевыми адресами, они демонстрируют концепцию группировки адресов. Буквы А и Б идентифицируют сеть, последовательность номеров идентифицирует сетевую станцию. Комбинация из буквы (номер сети) и последовательности цифр (адрес станции) создает уникальный адрес для любого устройства в сети. В повседневной жизни имена или номера (такие, как номера телефонов) часто используются в качестве уникальных идентификаторов. Аналогично этому каждый компьютер в TCP/IP сети обязан иметь как минимум один уникальный идентификатор или адрес. Такой адрес позволяет одному компьютеру в сети находить другой.

Компьютеры могут быть подключены к более чем одной сети, например, так, как показано на рис. 2. Двойное подключение реализовано посредством использования двух сетевых адаптеров. Устройство с двумя соединениями называется устройством с двойной привязкой, или двухканальным устройством (dual-homed).

Рисунок 2 - Компьютеры с двойной привязкой

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

Логические адреса узлов в IP-сетях версии IPv4, используемой в настоящее время, содержат 32 двоичных разряда, т.е. 4 байта, формат IPv4-адреса представлен на рисунке 3. Каждый из 4 байт адреса в технической документации отображается десятичным числом (от 0 до 255), а байты разделяются точкой, например, 172.100.220.14. Часть этого адреса (старшие разряды) является адресом сети, а другая часть (младшие разряды) - номером узла в сети. Таким образом, IP-адреса являются иерархическими, в отличие от плоских МАС-адресов.

Рисунок 3 - Формат IPv4-адреса

Если граница между сетевой частью адреса и номером узла в сети проходит в произвольной части IP-адреса, то такая адресация называется бесклассовой (classless). Если же сетевой части адреса отводится строго 1, 2 или 3 байта, такая адресация называется адресацией на основе полного класса (classfull). Деление адреса на классы производится в соответствии с тем, сколько байт адреса относится к номеру сети, а сколько к номеру узла.

Для создания уникальных адресов узлов используются три класса.

Адреса класса А (рис. 4) предназначены для очень больших сетей. В адресе класса А используется только первый октет в качестве идентификатора сети. Оставшиеся три октета выделены для перечисления адресов узлов.

Первый бит в адресе класса А всегда равен 0. Учитывая это, наименьшее допустимое число будет равно 00000000 (десятичный 0), а наибольшее - 01111111 (десятичное число 127). Следует заметить, что оба номера, 0 и 127, являются зарезервированными и не могут быть использованы в качестве сетевых адресов. Любые адреса, начинающиеся с числа в диапазоне от 1 до 126 в первом октете, являются адресами класса А.

Сеть с номером 127.0.0.0 зарезервирована для обратного петлевого (loopback) тестирования (маршрутизаторы или локальные узлы могут использовать его для передачи пакетов самим себе). Следовательно, такой адрес не может быть присвоен сети.

Рисунок 4 - Адреса класса A

Адреса класса B используются для сетей среднего и крупного размера (рис. 5). В IP-адресе класса B используются два первых октета для сетевого адреса. Оставшиеся два октета представляют адрес узла.

Рисунок 5 - Адреса класса B

Первые два бита первого октета всегда равны 10, оставшиеся 6 битов могут содержать любые комбинации нулей и единиц. Таким образом, наименьшее число, которое может быть использовано для адресов этого класса, равно 10000000 (десятичное 128), и наибольшее - 10111111 (десятичное значение равно 191). Любые адреса, содержащие в первом октете числа от 128 до 191, являются адресами класса В.

Адреса класса С (рис. 6) - это наиболее часто используемые из исходных классов адресов. Данный класс адреса предназначен для использования в малых сетях.

Адрес этого класса начинается с двоичной комбинации 110. Таким образом, наименьшее доступное число - 11000000 (десятичное 192), а наибольшее - 11011111 (десятичное значение 223). Если адрес в первом октете содержит числа от 192 до 223, значит, он относится к классу С.

Рисунок 6 - Адреса класса C

Адреса класса D (рис. 7) были созданы для реализации в IP-адресах механизма многоадресной рассылки. Многоадресным, или групповым, адресом (multicast address) называется уникальный сетевой адрес, используемый для отправки пакетов, содержащих адрес рассматриваемого класса в поле получателя, предопределенным группам сетевых устройств. Таким образом, одна сетевая станция может передавать один поток данных нескольким получателям.

Рисунок 7 - Адреса класса D

Диапазон адресов класса D так же, как и других классов, определенным образом ограничен. Первые четыре бита адреса класса D должны быть равны 1110. Следовательно, первый октет адресов этого класса может принимать значения от 11100000 до 11101111 или, в десятичной записи, от 224 до 239. Многоадресатный IP-адрес, первый октет которого начинается с чисел в диапазоне от 224 до 239, является адресом класса D.

Адреса класса Е (рис. 8) также были описаны в стандартах и выделены в отдельный блок. Однако они были зарезервированы проблемной группой проектирования Internet (Internet Engineering Task Force - IETF) для собственных исследовательских нужд. В результате адреса класса Е никогда не использовались в сети Internet. Первые четыре бита адресов класса Е всегда содержат 1. Следовательно, значение первого октета находится в диапазоне от 11110000 до 11111111 или от 240 до 255 - в десятичном виде.

Рисунок 8 - Адреса класса E

Дополнительная информация по классам и адресам приведена на рисунке 9.

Рисунок 9 - Разбиение сетей IPv4 на классы

Номер узла (адрес хоста - host) не может состоять только из одних единиц или нулей. Если в поле адреса узла все нули, то это значит, что задается номер (адрес) сети или подсети. Если же в этом поле все двоичные разряды равны единице, то это означает широковещательный (broadcast) адрес, когда пакет предназначен всем узлам сети, в которой находится узел, сформировавший данный пакет, т.е. источник передаваемой информации. Этим объясняется уменьшение максимального числа узлов в сети на 2 (см. рис 3). Таким образом, максимальное число узлов в сети класса С будет равно 28 - 2 = 254.

С целью сокращения количества адресов, которыми оперирует маршрутизатор, в его таблице маршрутизации хранятся адреса сетей, а не узлов. В то же время, в адресной части заголовка пакета задаются адреса узлов. Поэтому маршрутизатор, получив пакет, должен из адреса назначения получить адрес сети. Эту операцию маршрутизатор реализует путем логического умножения сетевого адреса узла на маску. Число разрядов маски равно числу разрядов IP-адреса. Непрерывная последовательность единиц в старших разрядах маски задает число разрядов адреса, относящихся к номеру сети. Младшие разряды маски, равные нулю, соответствуют разрядам адреса узла в сети. При логическом умножении адреса узла на маску получается адрес сети. Например, при умножении IP-адреса 192.100.12.67 на стандартную маску класса С, равную 255.255.255.0, получается следующий результат:

11000000.01100100.00001100.01000011
11111111.11111111.11111111.00000000
------------------
11000000.01100100.00001100.00000000

т.е. получен номер сети 192.100.12.0.

Аналогичная запись предыдущего адреса с той же маской класса С может также иметь следующий вид: 192.100.12.67/24, означающий, что маска содержит единицы в 24 старших разрядах. При этом 24 старших разряда будут одинаковы для всех узлов сети, т.е. образуют общую часть адреса, называемую префиксом. Именно префикс имеет обозначение /24.

Стандартная маска адреса класса В имеет 16 единиц в старших разрядах и 16 нулей в младших. Поэтому, если адрес узла будет равен 172.16.37.103/16, то адрес сети будет равен 172.16.0.0. Маска адреса класса А имеет 8 единиц в старших разрядах и 24 нуля в младших. Поэтому, например, адресу узла 10.116.37.103/8 соответствует адрес сети 10.0.0.0.

Жесткому разбиению адресов на классы соответствуют протоколы маршрутизации типа Classful, которые требуют, чтобы использовалась стандартная (единая) маска сети. Например, в сети с адресом 192.168.187.0 может использоваться стандартная маска 255.255.255.0, а в сети 172.16.0.0 используется стандартная маска 255.255.0.0.

Ниже будет приведена таблица масок подсети с указанием количества адресов.

Рисунок 10 - Таблица масок подсетей

2. Формирование подсетей

В ряде случаев для удобства управления администратор может самостоятельно формировать подсети внутри выделенного ему адресного пространства. Например, администратору выделен адрес сети 198.11.163.0 класса С, и ему необходимо создать 10 подсетей по 14 компьютеров. Для адресации 10 подсетей потребуется 4 двоичных разряда адреса (24 = 16), и для адресации 14 узлов также требуется 4 двоичных разряда (24 = 16). Таким образом, сетевая часть адреса будет содержать 28 двоичных разрядов \((24 + 4 = 28)\), а хостовая часть - 4 младших разряда. При этом маска должна иметь единицы в 28 старших двоичных разрядах и 4 нуля в младших - 11111111.11111111.11111111.11110000, т.е. маска будет 255.255.255.240.

В этом случае максимально может быть задано 16 подсетей по 14 узлов в каждой. Из 16 подсетей администратор использует 10, а оставшиеся 6 использоваться не будут. Граница между сетевой частью адреса и номером узла (хоста) проходит посредине четвертого байта (октета), т.е. адресация будет бесклассовой (classless). Следовательно, если задан адрес 198.11.163.83 с маской 255.255.255.240, то после логического умножения адреса на маску будет получен следующий адрес подсети:

11000110.00001011.10100011.01010011
11111111.11111111.11111111.11110000
-----------------------------------
11000110.00001011.10100011.01010000 ,

т.е. подсеть имеет адрес 198.11.163.80, входящий в сеть полного класса 198.11.163.0, и номер узла в подсети равен 3 (0011).

Адреса всех подсетей и узлов, которые могут быть сформированы из выделенного адресного пространства 198.11.163.0/28, приведены в (табл.1).

Таблица 1 - Адреса узлов и подсетей

При использовании других масок можно формировать другие комбинации подсетей и узлов. Например, с помощью маски 255.255.255.224 в адресном пространстве 198.11.163.0/24 можно сформировать 8 подсетей по 30 узлов в каждой, а с помощью маски 255.255.255.248 можно задать 32 подсети по 6 узлов. Используя маски разной (переменной) длины для создания подсетей, администратор может формировать подсети разного размера в пределах одной автономной системы. Таким образом, маски переменной длины (Variable-length subnet mask - VLSM) позволяют создавать подсети разного размера, гибко задавая границы между полем адреса сети и полем адреса узла. VLSM позволяют использовать больше, чем одну маску подсети в пределах выделенного адресного пространства сети.

Например, для формирования сетей по 30 узлов в каждой требуется 27 разрядов маски (255.255.255.224), содержащих единицы, а для создания сети, соединяющей пару маршрутизаторов (точка - точка), требуется всего два адреса, т.е. маска должна иметь 30 единиц (255.255.255.252). При использовании маски в 30 двоичных разрядов два младших разряда адреса позволяют сформировать 4 адреса, из которых первый используется для адресации сети, второй и третий - для адресации узлов, а четвертый - в качестве широковещательного адреса.

В нижеприведенном примере (рис. 11, табл. 2), адресное пространство 192.168.100.0/24 использовано для создания 8 подсетей по 32 адреса в каждой, т.е. маска имеет единицы в 27 старших двоичных разрядах (255.255.255.224). Одна из последних подсетей (подсеть 6) разделена на субподсети, при этом используется маска (255.255.255.252). Каждая из субподсетей служит для связей «точка-точка».

Рисунок 11 - Пример использования масок переменной длины

Таблица 2 - Формирование подсетей и субподсетей

Таким образом, за счет использования VLSM может быть сформировано 7 подсетей с числом узлов до 30 и восемь субподсетей с числом узлов 2. В распределенной составной сети (рис.11) четыре локальных сети (192.168.100.0/27, 192.168.100.32/27, 192.168.100.64/27, 192.168.100.96/27) и три сети «точка-точка».

Маски переменной длины VLSM позволяют создавать подсети разного размера. Например, сеть 198.11.163.0/24 может быть разбита на десять подсетей: две подсети по 62 узла в каждой, две подсети по 30 узлов, 2 подсети по 14 узлов и 4 подсети по 6 узлов в каждой (табл.3). Соответственно маски будут иметь размер: 26 - для первых двух подсетей, 27 - для третьей и четвертой подсети, 28 - для пятой и шестой, 29 - для четырех последних подсетей. Естественно, что могут быть реализованы и другие варианты деления сети на подсети и субподсети.

Важно помнить, что только неиспользованные подсети могут далее делиться на субподсети. Если какой-то адрес подсети уже используется, то подсеть на субподсети далее делиться не может.

Таблица 3 - Формирование подсетей с использование масок переменной длины

На рис.12 представлен еще один пример (в десятичной и двоичной системе) формирования пяти подсетей с маской длиной 26 единиц.

Рисунок 12 - Использование подсетей и субподсетей

Подсети занимают адресное пространство от 172.16.32.0 до 172.16.33.63:

ip-адрес двоичная запись ip-адреса
172.16.32.0/26 10101100.00010000.00100000.00000000
172.16.32.64/26 10101100.00010000.00100000.01000000
172.16.32.128/26 10101100.00010000.00100000.10000000
172.16.32.192/26 10101100.00010000.00100000.11000000
172.16.33.0/26 10101100.00010000.00100001.00000000

Подсеть 172.16.33.0/26, далее подразделили на субподсети с маской длиной 30 разрядов (255.255.255.252).

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

ip-адрес двоичная запись ip-адреса
172.16.14.0 10101100.00010000.00001110.00000000
172.16.15.0 10101100.00010000.00001111.00000000

могут быть агрегированы (объединены) так, чтобы маршрутизаторы использовали только один маршрут для объединенной (агрегированной) сети 172.16.14.0/23, поскольку 23 разряда адреса обеих сетей одинаковы.

Тип маршрутизации, использующий агрегированные адреса, получил название бесклассовой междоменной маршрутизации (classless interdomain routing - CIDR), когда маршрутизация реализуется на основе префикса. Агрегирование маршрутов уменьшает нагрузку на маршрутизаторы.

Ниже рассмотрен следующий пример агрегирования адресов. Группа из четырех подсетей:

ip-адрес двоичная запись ip-адреса
192.168.16.0/24 11000000.10101000.00010000.00000000
192.168.17.0/24 11000000.10101000.00010001.00000000
192.168.18.0/24 11000000.10101000.00010010.00000000
192.168.19.0/24 11000000.10101000.00010011.00000000

Может быть представлена суммарным (агрегированным) адресом, поскольку 22 разряда адреса у них одинаковы.

ip-адрес двоичная запись ip-адреса
192.168.16.0/22 11000000.10101000.00010000.00000000,

Аналогично группа из других четырех подсетей:

ip-адрес двоичная запись ip-адреса
192.168.20.0/24 11000000.10101000.00010100.00000000
192.168.21.0/24 11000000.10101000.00010101.00000000
192.168.22.0/24 11000000.10101000.00010110.00000000
192.168.23.0/24 11000000.10101000.00010111.00000000

Может быть представлена агрегированным адресом:

ip-адрес двоичная запись ip-адреса
192.168.20.0/22 11000000.10101000.00010100.00000000,

Поскольку 22 разряда адреса у них также одинаковы.

Третья группа подсетей:

ip-адрес двоичная запись ip-адреса
192.168.24.0/24 11000000.10101000.00011000.00000000
192.168.25.0/24 11000000.10101000.00011001.00000000
192.168.26.0/24 11000000.10101000.00011010.00000000
192.168.27.0/24 11000000.10101000.00011011.00000000

может быть представлена агрегированным адресом:

ip-адрес двоичная запись ip-адреса
192.168.24.0/22 11000000.10101000.00011000.00000000,

Поскольку у них одинаковы 22 разряда адреса.

Агрегирование приведенных выше адресов иллюстрирует рис.13.

Рисунок 13 - Агрегирование адресов маршрутов

Вместо адресов четырех подсетей в таблице маршрутизации каждого из маршрутизаторов А, В, С используется адрес только одного (агрегированного) маршрута с префиксом в 22 двоичных разряда. Адреса четырех указанных подсетей имеют общую часть - префикс, который используется как единый совокупный адрес. В маршрутизаторе D можно сформировать агрегированный адрес всех трех групп подсетей. Он будет иметь адрес 192.168.16.0/20, т.е. маска (префикс) содержит 20 единиц в старших разрядах, поскольку все представленные на рис.6.5 адреса имеют двадцать одинаковых старших двоичных разрядов адреса.

Таким образом, итоговый суммарный маршрут трех групп подсетей (рис. 13) содержит префикс на 20 битов, общий для всех адресов в указанной сети -

ip-адрес двоичная запись ip-адреса
192.168.16.0/20 11000000.10101000.00010000.00000000

Двадцать старших разрядов адреса (11000000.10101000.0001) используются как единый адрес организации, которая подключается к сети Интернет через маршрутизатор D.

Чтобы функционировала маршрутизация на основе префикса, адреса должны быть назначены иерархическим способом. Маршрутизатор должен знать номера всех присоединенных к нему подсетей и не должен сообщать другим маршрутизаторам о каждой подсети, если он может послать один совокупный маршрут (aggregate routes). Маршрутизатор, который использует агрегированные маршруты, реже обращается к таблице маршрутизации.

Маршрутизация на основе префикса и масок переменной длины возможна, если маршрутизаторы сети используют бесклассовый (classless) протокол маршрутизации, например, OSPF или EIGRP. Бесклассовые протоколы маршрутизации передают в обновлениях маршрутизации (routing updates) 32-разрядные IP-адреса и соответствующие маски.

3. Частные и общедоступные адреса

Адреса всех пользователей сети Internet должны быть уникальными. Первоначально уникальность адресов обеспечивал центр Internet Network Information Center (InterNIC), на смену которому пришла организация Internet Assigned Numbers Authority (IANA). IANA управляет IP-адресами, чтобы не произошло дублирования общедоступных адресов, распределяя их между пятью Региональными регистраторами адресов: ARIN (Северная Америка), RIPE (Россия и Европа), APNIC (Азия и Австралия), LACNIC (Латинская и Южная Америка), AfriNIC (Африка). Таким образом, все общественные (общедоступные) адреса должны быть зарегистрированы Региональным Интернет Регистратором (Regional Internet Regiestry - RIR), который выделяет адреса сетевым операторам и провайдерам, а те, в свою очередь, выделяет адреса сетевым администраторам и отдельным пользователям.

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

Кроме того, проблему нехватки общественных адресов может в некоторой мере ослабить использование частных адресов (Private IP addresses). Сети с частными адресами, не подключенные к Internet, могут иметь любые адреса, лишь бы они были уникальны внутри частной сети. Выход в Интернет пакетов с частными адресами блокируется маршрутизатором. Документ RFC 1918 устанавливает три блока частных адресов для использования внутри частных сетей (табл. 4).

Таблица 4 - Диапазоны частных адресов

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

Второй тип трансляции сетевых адресов с использованием номеров портов (Port Address Translation - PAT), когда один общедоступный адрес комбинируется с набором номеров порта узла источника. При этом один IP-адрес могут использовать сразу несколько узлов частной сети. Поэтому данный метод трансляции частных адресов в общественные эффективно экономит общедоступные IP-адреса.

Контрольные вопросы

  1. Какие различия существуют между логическими адресами узлов и МАС-адресами?
  2. Что такое адресация на основе полного класса (classfull), и в чем ее отличие от бесклассовой адресации (classless)?
  3. Для чего предназначен широковещательный адрес?
  4. Чем отличаются адреса классов B и C?
  5. Причина создания частных и общедоступных адресов?
  6. Какие диапазоны у частных адресов?
  7. Что означает агрегирование адресов, и зачем оно нужно в маршрутизации?
  8. Какова роль масок переменной длины (VLSM) при создании подсетей?