12.2.1. Адресация в TCP/IP сетях

12.2.2. Протокол автоматического назначения IP адресов - DHCP

12.2.3. Отображение доменных имен на IP адреса. Служба DNS

12.2.1. Адресация в TCP/IP сетях

Протокол TCP/IP является на настоящий момент наиболее распространенным протоколом сетевого и транспортного уровней. Поэтому реализацию конечных протоколов данных уровней OSI рассмотрим на их примере.

В стеке TCP/IP используются три типа адресов:

- локальные (называемые также аппаратными или МАС-адресами),

- символьные доменные имена

- IP-адреса.

В терминологии TCP/IP под локальным адресом (МАС-адресом) понимается такой тип адреса, который используется средствами базовой технологии для доставки данных в пределах сети, являющейся элементом более глобальной интерсети.

Если подсетью интерсети является локальная сеть, то локальный адрес - это МАС - адрес. МАС - адрес сетевого адаптера и сетевого интерфейса маршрутизаторов. МАС - адреса назначаются производителями оборудования и являются уникальными, так как управляются централизованно. Для всех существующих технологий локальных сетей МАС - адрес имеет формат 6 байт, например 11-AO-17-3D-BC-01.

Символьные доменные имена. Символьные имена в IP-сетях называются доменными и строятся по иерархическому признаку. Составляющие полного символьного имени в IP-сетях разделяются точкой и перечисляются в следующем порядке:

- сначала простое имя конечного узла,

- затем имя группы узлов (например, имя организации),

- затем имя более крупной группы (поддомена) и так до имени домена самого высокого уровня (например, домена объединяющего организации по географическому принципу: RU - Россия, UK - Великобритания, SU - США),

Примеров доменного имени может служить имя base2.sales.zil.ru. Между доменным именем и IP-адресом узла нет никакого алгоритмического соответствия, поэтому необходимо использовать какие-то дополнительные таблицы или службы, чтобы узел сети однозначно определялся как по доменному имени, так и по IP-адресу. В сетях TCP/IP используется специальная распределенная служба Domain Name System (DNS), которая устанавливает это соответствие на основании создаваемых администраторами сети таблиц соответствия. Поэтому доменные имена называют также DNS-именами.

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

Когда протокол IP был стандартизирован в сентябре 1981 года, его спецификация требовала, чтобы каждое устройство, подключенное к сети, имело уникальный 32-битный адрес. Этот адрес делится на две части. Первая часть адреса идентифицирует сеть, в которой располагается устройство. Вторая часть однозначно идентифицирует само устройство. Такая схема создает двухуровневую адресную иерархию, которая показана на рис. 12.2

0 1 2 3...

…30 31

Ключ

Номер сети

Номер устройства в сети

Рисунок 12.2 - Двухуровневая адресная иерархия

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

IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме и разделенных точками, например,

128.10.2.30 - традиционная десятичная форма представления адреса,

10000000 00001010 00000010 00011110 - двоичная форма представления этого же адреса.

Маска - это число, которое используется в паре с IP-адресом; двоичная запись маски содержит единицы в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети.

Поскольку номер сети является цельной частью адреса, единицы в маске также должны представлять непрерывную последовательность.

Для обеспечения гибкости в присвоении адресов компьютерным сетям разработчики определили, что адресное пространство протокола IP должно быть разделено на три различных класса — А, В и С. Каждый из этих основных классов фиксирует границу между сетевым префиксом и номером устройства в различных точках 32-битного адреса.

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

Класс адреса

Диапазоны значений

A

1. ХХХ.ХХХ.ХХХ–126. ХХХ.ХХХ.ХХХ

B

128.0.ХХХ.ХХХ–191.255.ХХХ.ХХХ

C

192.0.0.ХХХ–223.255.255.ХХХ

Для стандартных классов сетей маски имеют следующие значения:

- класс А:

11111111. 00000000. 00000000. 00000000 (255.0.0.0);

- класс В:

11111111. 11111111. 00000000. 00000000 (255.255.0.0);

- класс С:

11111111. 11111111. 11111111. 00000000 (255.255.255.0).

В масках количество единиц в последовательности, определяющей границу номера сети, не обязательно должно быть кратным 8, чтобы повторять деление адреса на байты. Пусть, например, для IP-адреса 129.64.134.5 указана маска 255.255.128.0, то есть в двоичном виде:

IP-адрес 129.64.134.5 - 10000001. 01000000. 10000110. 00000101,

Маска 255.255.128.0 - 11111111. 11111111. 10000000. 00000000.

Снабжая каждый IP-адрес маской, можно отказаться от понятий классов адресов и сделать более гибкой систему адресации. Например, если рассмотренный выше адрес 185.23.44.206 ассоциировать с маской 255.255.255.0, то номером сети будет 185.23.44.0, а не 185.23.0.0, как это определено системой классов.

В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов.

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

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

- Если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным. сообщением (limited broadcast).

- Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, пакет с адресом 192.190.21.255 доставляется всем узлам сети 192.190.21.0. Такая рассылка называется широковещательным сообщением (broadcast).

Таблица 12.2 - Зарезервированные IP-адреса

IP-адрес

Примечания

Все биты установлены в «0»

Данное устройство

Номер сети

Все биты номераравны 0

Данная IP-сеть

Все биты равны 0

Номер устройства

Устройство в данной IP-сети

Все биты установлены в «1»

Все устройства в данной IP-сети

Номер сети

Все биты номера равны 1

Все устройства в указанной IP-сети

127 (десятичное)

Что-нибудь (обычно 1)

Адрес обратной связи

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

Особый смысл имеет IP-адрес, первый сокет которого равен 127. Он используется для тестирования программ и взаимодействия процессов в пределах одной машины т. е. образуется как бы «петля». Данные не передаются по сети, а возвращаются модулям верхнего уровня как только что принятые. Поэтому в IP-сети запрещается присваивать машинам IP-адреса, начинающиеся со 127. Этот адрес имеет название loopback.

12.2.2. Протокол автоматического назначения IP адресов - DHCP

Назначение IP-адресов узлам сети даже при не очень большом размере сети может представлять для администратора утомительную процедуру. Протокол автоматического назначения конфигурации Dynamic Host Configuration Protocol (DHCP) освобождает администратора от этих проблем, автоматизируя процесс назначения IP-адресов.

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

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

При динамическом распределении адресов DHCP-сервер выдает адрес клиенту на ограниченное время, называемое временем аренды, что дает возможность впоследствии повторно использовать этот IP-адрес для назначения другому компьютеру. Основное преимущество DHCP - автоматизация рутинной работы администратора по конфигурированию стека TCP/IP на каждом компьютере. Иногда динамическое разделение адресов позволяет строить IP-сеть, количество узлов в которой превышает количество имеющихся в распоряжении администратора IP-адресов.

12.2.3. Отображение доменных имен на IP адреса. Служба DNS

При идентификации аппаратного и программного обеспечения компьютеров в сетях протокол TCP/IP использует IP-адреса. Поэтому для доступа к сетевому ресурсу вполне достаточно указать его IP-адрес. Например, команда ftp://192.45.66.17 будет устанавливать сеанс связи с нужным ftp-сервером, а команда http://203.23.106.33 откроет начальную страницу на Web-сервере. Однако пользователи обычно предпочитают работать с символьными именами компьютеров. Следовательно, в сетях TCP/IP должны существовать символьные имена хостов и механизм для установления соответствия между символьными именами и IP-адресами.

В операционных системах, которые первоначально разрабатывались для работы в локальных сетях, таких как Novell NetWare, Microsoft Windows или IBM OS/2, пользователи всегда работали с символьными именами компьютеров. Так как локальные сети состояли из небольшого числа компьютеров, то использовались так называемые плоские имена, состоящие из последовательности символов, не разделенных на части. Примерами таких имен являются: NW1_1, mail2, MOSCOW_SALES_2.

Для стека TCP/IP, рассчитанного в общем случае на работу в больших территориально распределенных сетях, подобный подход оказывается.

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


Рисунок 12.3 - Пространство доменных имен

Иерархия доменных имен аналогична иерархии имен файлов, принятой во многих популярных файловых системах. Дерево имен начинается с корня, обозначаемого здесь точкой (.). Затем следует старшая символьная часть имени, вторая по старшинству символьная часть имени и т. д. Младшая часть имени соответствует конечному узлу сети.

В отличие от имен файлов, при записи которых сначала указывается самая старшая составляющая, затем составляющая более низкого уровня и т. д., запись доменного имени начинается с самой младшей составляющей, а заканчивается самой старшей. Составные части доменного имени отделяется друг от друга точкой. Например, в имени partnering.microsoft.com составляющая partnering является именем одного из компьютеров в домене Microsoft.com.

Необходимо подчеркнуть, что компьютеры входят в домен в соответствии со своими составными именами, при этом они могут иметь совершенно различные IP-адреса, принадлежащие к различным сетям и подсетям. Например, в домен mgu.ru могут входить хосты с адресами 132.13.34.15, 201.22.100.33,14.0.0.6. Доменная система имен реализована в сети Internet, но она может работать и как автономная система имен в крупной корпоративной сети, использующей стек TCP/IP, но не связанной с Internet.

В сети Internet корневой домен управляется центром InterNIC. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Имена этих доменов должны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов организаций - следующие обозначения:

- edu - образовательные (например, mitedu);

- gov - правительственные организации (например, nsf.gov);

- org - некоммерческие организации (например, fidonet.org);

- net - организации, поддерживающие сети (например, nsf.net).

Соответствие между доменными именами и IP-адресами может устанавливаться как средствами локального хоста, так и средствами централизованной службы.

В качестве централизированнной специальной службы используется - система доменных имен (Domain Name System, DNS).

DNS - это централизованная служба, основанная на распределенной базе отображений «доменное имя - IP-адрес». Служба DNS использует в своей работе протокол типа «клиент-сервер». В нем определены DNS-серверы и DNS-клиенты:

- DNS-серверы поддерживают распределенную базу отображений,

- DNS-клиенты обращаются к серверам с запросами о разрешении доменного имени в IP-адрес.

Каждый DNS-сервер кроме таблицы отображений имен содержит ссылки на DNS-серверы своих поддоменов. Эти ссылки связывают отдельные DNS-серверы в единую службу DNS. Ссылки представляют собой IP-адреса соответствующих серверов. Для обслуживания корневого домена выделено несколько дублирующих друг друга DNS-серверов, IP-адреса которых являются широко известными

Существуют две основные схемы разрешения DNS-имен.

В первом варианте работу по поиску IP-адреса координирует DNS-клиент:

- DNS-клиент обращается к корневому DNS-серверу с указанием полного доменного имени;

- DNS-сервер отвечает, указывая адрес следующего DNS-сервера, обслуживающего домен верхнего уровня, заданный в старшей части запрошенного имени;

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

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

Во втором варианте реализуется рекурсивная процедура:

- DNS-клиент запрашивает локальный DNS-сервер, то есть тот сервер, который обслуживает поддомен, к которому принадлежит имя клиента;

- если локальный DNS-сервер знает ответ, то он сразу же возвращает его клиенту; это может соответствовать случаю, когда запрошенное имя входит в тот же поддомен, что и имя клиента, а также может соответствовать случаю, когда сервер уже узнавал данное соответствие для другого клиента и сохранил его в своем кэше;

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

В этой схеме клиент перепоручает работу своему серверу, поэтому схема называется косвенной или рекурсивной. Практически все DNS-клиенты используют рекурсивную процедуру.