Представленный ниже материал взят из двух следующих книг:
– Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы технологии, протоколы. Учебник. – Издательство “Питер”, 2000.
– Кульгин М. Технологии корпоративных сетей. Энциклопедия. – Издательство “Питер”, 2000.
1. Адресация в IP-сетях
1.1 Типы адресов стека TCP/IP
В стеке TCP/IP используются три типа адресов: локальные (называемые также аппаратными), IP-адреса и символьные доменные имена.
В терминологии TCP/IP под локальным адресом понимается такой тип адреса, который используется средствами базовой технологии для доставки данных в пределах подсети, являющейся элементом составной сети. Если подсетью составной сети является локальная сеть, то локальный адрес – это MAC-адрес. MAC-адрес назначается сетевым адаптерам и сетевым интерфейсам маршрутизаторов. MAC-адреса назначаются производителями оборудования и являются уникальными. Для всех существующих технологий локальных сетей MAC-адрес состоит из 6 байт, например 11-A0-17-3D-BC-01. MAC-адрес – это адрес, используемый на канальном уровне.
IP-адрес – это адрес сетевого уровня. IP-адреса представляют собой основной тип адресов, на основании которых сетевой уровень передает пакеты между сетями. Эти адреса состоят из 4 байт, например, 109.26.17.100. IP-адрес назначается администратором во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер узла назначается независимо от локального адреса узла.
Символьные доменные имена здесь не рассматриваются.
1.2 Классы IP-адресов
IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме и разделенных точками, например, 128.10.2.30 – традиционная десятичная форма представления адреса, а 10000000 00001010 00000010 00011110 – двоичная форма представления этого же адреса.
Адрес состоит из двух логических частей – номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая – к номеру узла, определяется значениями первых бит адреса. Значения этих бит являются также признаками того, к какому классу относится тот или иной IP-адрес.
На рис. 1.1 показана структура IP-адреса разных классов.
Если адрес начинается с 0, то сеть относят к классу A и номер сети занимает один байт, а остальные три байта интерпретируются как номер узла в сети. Сети класса A имеют номера в диапазоне от 1 до 126. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей.) Сетей класса A немного, зато количество узлов в них может достигать 224, то есть 16 777 216 узлов.
Если первые два бита адреса равны 10, то сеть относится к классу B. В сетях класса B под номер сети и под номер узла отводится по 16 бит, то есть по два байта. Таким образом, сеть класса B является сетью средних размеров с максимальным числом узлов 216, что составляет 65 536 узлов.
Если адрес начинается с последовательности 110, то это сеть класса C. В это случае под номер сети отводится 24 бита, а под номер узла – 8 бит. Сети этого класса наиболее распространены, число узлов в них ограничено 28, то есть 256 узлами.
Рис. 1.1. Структура IP-адреса
Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес – multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес.
Если адрес начинается с последовательности 11110, то это значит, что данный адрес относится к классу E. Адреса этого класса зарезервированы для использования в будущем.
В представленной ниже таблице 1.1 приведены диапазоны номеров сетей.
Таблица 1.1. Диапазоны номеров сетей
Класс | Первые биты | Наименьший номер сети | Наибольший номер сети |
A | 0 | 1.0.0.0 | 126.0.0.0 |
B | 10 | 128.0.0.0 | 191.255.0.0 |
C | 110 | 192.0.0.0 | 223.255.255.0 |
D | 1110 | 224.0.0.0 | 239.255.255.255 |
E | 11110 | 240.0.0.0 | 247.255.255.255 |
Большие сети получают адреса класса A, средние – класса B, а маленькие – класса C.
1.3 Подсети
Традиционная схема деления IP-адреса на номер сети и номер узла основана на понятии класса, который определяется значениями нескольких первых бит адреса. Именно потому, что первый байт адреса 185.23.44.206 попадает в диапазон 128-191, можно сказать, что этот адрес относится к классу B, а значит, номером сети являются первые два байта, дополненные двумя нулевыми байтами – 185.23.0.0, а номером узла – 0.0.44.206. В таком представлении IP-адрес состоит из двух иерархических уровней. Необходимость во введении третьего уровня иерархии – уровня подсетей – была продиктована возникновением дефицита номеров сетей и резким ростом таблиц маршрутизации маршрутизаторов в сети Интернет. После введения уровня подсети номер узла разделяется на две части – номер подсети и номер узла в этой подсети (рис. 1.2).
Двухуровневая иерархия
Номер сети | Номер узла |
Трехуровневая иерархия
Номер сети | Номер подсети | Номер узла |
Рис. 1.2. Формирование трехуровневой иерархии
Увеличение количества уровней снимает проблему роста таблиц маршрутизации благодаря тому, что информация о топологии частных сетей становится ненужной магистральным маршрутизаторам Интернета. Маршруты из сети Интернет до любой конкретной подсети, расположенной в сети с данным IP-адресом, одинаковы и не зависят от того, в какой подсети расположен получатель. Это стало возможным благодаря тому, что все подсети сети с данным номером используют один и тот же номер сети, хотя их номера (номера подсетей) разные. Маршрутизаторам в частной сети требуется различать отдельные подсети, но для маршрутизаторов Интернета все подсети относятся к единственной записи в таблице маршрутизации. Это позволяет администратору частной сети вносить любые изменения в логическую структуру своей сети, не влияя на размер таблиц маршрутизации маршрутизаторов Интернета.
Кроме того, легко решается проблема выделения номеров при росте организации. Организация получает номер сети, а затем администратор произвольно присваивает номера подсетей для каждой внутренней сети. Это позволяет организации расширять свою сеть без необходимости получения еще одного сетевого номера.
Если маршрутизаторы в сети Интернет используют только номер сети адреса получателя для передачи трафика в организацию, то маршрутизаторы внутри частной сети организации для передачи трафика в отдельные подсети используют так называемый расширенный сетевой префикс. Расширенным сетевым префиксом называют номер сети и номер подсети. Так что схему на рис. 1.2 можно представить также следующим образом (рис. 1.3):
Расширенный сетевой префикс Номер сети | Номер подсети | Номер узла |
Рис. 1.3. Расширенный сетевой префикс
Понятие расширенного сетевого префикса, по сути, эквивалентно понятию маска подсети. Маска подсети – это двоичное число, содержащее единицы в тех разрядах, которые относятся к расширенному сетевому префиксу.
Старшие биты IP-адреса используются рабочими станциями и маршрутизаторами для определения класса адреса. После того как класс определен, узел может легко вычислить границу между битами, используемыми для идентификации номера сети, и битами номера узла в этой сети. Однако, для определения границ битов, идентифицирующих номер подсети, такая схема не подходит. Для этого как раз и используется 32-разрядная маска подсети, которая помогает однозначно определить требуемую границу. Для стандартных классов сетей маски имеют следующие значения:
• 255.0.0.0 (11111111. 00000000. 00000000. 00000000) – маска для сети класса A;
• 255.255.0.0 (11111111. 11111111. 00000000. 00000000) – маска для сети класса B;
• 255.255.255.0 (11111111. 11111111. 11111111. 00000000) – маска для сети класса C.
Например, если сетевой администратор хочет использовать весь третий байт для номера подсети в сети класса B 130.5.0.0, то ему необходимо указать маску подсети 255.255.255.0. Биты в маске подсети должны быть установлены в единицу, если система, проверяющая адрес, должна рассматривать соответствующий бит в IP-адресе как часть расширенного сетевого префикса. Другими словами, после определения класса IP-адреса любой разряд в номере узла, который имеет соответствующий установленный в единицу бит в маске подсети, используется для идентификации номера подсети. Оставшаяся часть номера узла, которой соответствуют нулевые биты в маске подсети, используется для задания номера узла. На рис. 1.4 показан пример IP-адреса класса B с соответствующей маской подсети.