Классы IP-адресов протокола IPv4
IP-адрес для протокола версии 4 имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме и разделенных точками, например, 128 10.2.30 — традиционная десятичная форма представления адреса, а 10000000 00001010 00000010 00011110 - двоичная форма представления этого же адреса.
Адрес состоит из двух логических частей — номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая — к номеру узла, определяется значениями первых бит адреса. Значения этих бит являются также признаками того, к какому классу относится тот или иной IP-адрес,
На рис. 8.2 показана структура IP-адреса разных классов.
Если адрес начинается с 0, то сеть относят к классу А и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126. Номер 0 не используется, а номер 127 зарезервирован для специальных целей. Сетей класса А немного, зато количество узлов в них может достигать 224, то есть 16 777 216 узлов.
Если первые два бита адреса равны 10, то сеть относится к классу В. В сетях класса В под номер сети и под номер узла отводится по 16 бит, то есть по 2 байта. Таким образом, сеть класса В является сетью средних размеров с максимальным числом узлов 216, что составляет 65 536 узлов.
Если адрес начинается с последовательности 110, то это сеть класса С. В этом случае под номер сети отводится 24 бита, а под номер узла — 8 бит. Сети этого класса наиболее распространены, число узлов в них ограничено 28, то есть 256 узлами.
Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес — multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес.
Если адрес начинается с последовательности 11110, то это значит, что данный адрес относится к классу Е. Адреса этого класса зарезервированы для будущих применений.
Большие сети получают адреса класса А, средние — класса В, а маленькие — класса С.
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов.
1. Если весь IP-адрес состоит только из двоичных нулей, то он обозначает адрес того узла, который сгенерировал этот пакет; этот режим используется только в некоторых сообщениях IСМР.
2. Если в поле номера сети стоят только нули, то по умолчанию считается, что узел назначения принадлежит той же самой сети, что и узел, который отправил пакет.
3. Если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast).
4. Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, пакет с адресом 192.190.21.255 доставляется всем узлам сети 192.190.21.0. Такая рассылка называется широковещательным сообщением (broadcast).
При адресации необходимо учитывать те ограничения, которые вносятся особым назначением некоторых IP-адресов. Так, ни номер сети, ни номер узла не может состоять только из одних двоичных единиц или только из одних двоичных нулей.
Особый смысл имеет IP-адрес, первый октет которого равен 127. Он используется для тестирования программ и взаимодействия процессов в пределах одной машины. Когда программа посылает данные по IP-адресу 127.0.0.1, то образуется как бы «петля». Данные не передаются по сети, а возвращаются модулям верхнего уровня как только что принятые. Поэтому в IP-сети запрещается присваивать машинам IP-адреса, начинающиеся со 127. Этот адрес имеет название loopback. Можно отнести адрес 127.0.0.0 ко внутренней сети модуля маршрутизации узла, а адрес 127.0.0.1 — к адресу этого модуля на внутренней сети. На самом деле любой адрес сети 127.0.0.0 служит для обозначения своего модуля маршрутизации, а не только 127.0.0.1, например 127.0.0.3.
В протоколе IP нет понятия широковещательности в том смысле, в котором оно используется в протоколах канального уровня локальных сетей, когда данные должны быть доставлены абсолютно всем узлам. Как ограниченный широковещательный IP-адрес, так и широковещательный IP-адрес имеют пределы распространения — они ограничены либо сетью, к которой принадлежит узел-источник пакета, либо сетью, номер которой указан в адресе назначения. Поэтому деление сети с помощью маршрутизаторов на части локализует широковещательный шторм пределами одной из составляющих общую сеть частей просто потому, что нет способа адресовать пакет одновременно всем узлам всех сетей составной сети.
Форма группового IP-адреса — multicast — означает, что данный пакет должен быть доставлен сразу нескольким узлам, которые образуют группу с номером, указанным в поле адреса. Узлы сами идентифицируют себя, есть определяют, к какой из групп они относятся. Один и тот же узел может входить в несколько групп. Члены какой-либо группы multicast не обязательно должны принадлежать одной сети. В общем случае они могут распределяться по совершенно различным сетям. Групповой адрес не делится на поля номера сети и узла и обрабатывается маршрутизатором особым образом.
Основное назначение multicast-адресов — распространение информации по схеме «один-ко-многим».
Система доменов представляет собой распределенную базу данных, размещенную на множестве компьютеров. Такие компьютеры называются серверами имен или просто DNS-серверами. Каждый сервер имен содержит обычно лишь информацию по одному домену, но знает адреса DNS-серверов вышестоящих и нижестоящих доменов. Программное обеспечение, которое общается с серверами имен, называется клиентом DNS. Клиент DNS выполняет роль посредника между сетевыми приложениями и серверами имен и может функционировать как на отдельном компьютере, так и на сервере имен.
Сервер имен служит для перевода имени узла в соответствующий ему адрес при маршрутизации сообщения. Поскольку маршрутизация в сети осуществляется по IP-адресам, то перевод указанного пользователем IP-имени в IP-адрес с помощью DNS обязателен. На рис. 9.2 показана схема работы с DNS-сервером.
Клиент DNS входит в состав программного обеспечения TCP/IP, которое, для поддержания “плоской” (не иерархической) системы именования содержит программу, называемую файл-hosts. За счет этого поддерживается работоспособность сетевых устройств при отсутствии связи с сервером имен.
Клиенты DNS и серверы имен кэшируют в своей оперативной памяти данные, получаемые от других серверов имен. Время, в течении которого информация хранится в кэше, определяется источником и обычно составляет от десятков минут до нескольких суток. Это время зависит от частоты обращения к некоторому домену. Кэширование позволяет уменьшить трафик сети и снизить нагрузку на серверы имен.
Для повышения отказоустойчивости доменной системы имен одной зоной сети должны управлять как минимум два сервера имен – один выделяют как первичный и один или два – как вторичные серверы. При добавлении нового компьютера в сеть или изменении его IP-адреса информация о нем изменяется только на первичном сервере имен. Обновление содержимого других серверов имен данной зоны сети происходит по мере устаревания содержимого их кэш-памяти.
В большинстве приложений TCP/IP принято, что настройки клиента DNS задаются в специальном конфигурационном файле.
Для Unix – это файл /etс/resolv.conf
DOS – etс\resolv.cfg
Windows – etс\resolv.cfg
NetWare – sys:etс\resolv.cfg.
Форматы данных файлов полностью идентичны. Для Windows’95 и Windows NT 4.0 подобный файл отсутствует, а параметры настроек задаются на панели управления.
Файл типа resolv.conf имеет формат:
domain <текущий домен>
nameserver <адрес 1-го сервера>
nameserver <адрес 2-го сервера>
nameserver <адрес 3-го сервера>,
где domain указывает текущий домен узла сети, а nameserver – IP-адрес сервера имен.
Пример файла resolv.conf:
domain company1.msk.ru
nameserver 194. 195.12.1
nameserver 194.195.12.5
Количество строк с адресами DNS-серверов не может превышать трех, а порядок их следования имеет значение для определения порядка вызова серверов. Первым вызывается самый первый в списке DNS-сервер. Обычно первым указывают ближайший вторичный сервер имен данного домена, а затем – первичный. Это позволяет снизить нагрузку на первичный сервер. К следующему в списке DNS-серверу клиент DNS обратится в случае, если первый сервер не работает. Первичный сервер должен быть свободен, чтобы следить за работоспособностью сети и перестраивать таблицы маршрутизации.
Раньше в каждом узле сети был файл hosts (т.е. файл конфигурации узлов сети) отвечает за “плоскую” (т.е. не за доменную иерархическую) систему именования. При помощи этого файла устанавливается соответствие между IP-адресами и NetBIOS- именами.
Местонахождение этого файла также зависит от операционной системы:
Unix – /etc/hosts
DOS, Windows – etc\hosts
NetWare – sys: etc\hosts.
Этот файл состоит из строк формата
<IP-адрес> <имя>[<псевдоним> ... <псевдоним>],
каждая из строк определяет один узел сети. Файл hosts может содержать имена в доменном формате. Например:
194. 195. 12.3 ko-srv ftp-srv
192. 15.2.6 www.company.com
194.195.12.6 pc3
В большинстве ОС клиент DNS запускается автоматически при наличии файла resolv.conf. В связи с этим, программное обеспечение TCP/IP сначала пытается определить IP-адрес узла через файл resolv.conf, а лишь затем, в случае ошибки в этом файле, через файл hosts.
Для того чтобы сократить время подключения к серверу, с которым приходится работать очень часто, можно при помощи одной из команд ping, host или nslookup узнать IP-адрес этого сервера и в дальнейшем вызывать сервер непосредственно через его адрес. Это позволяет избежать длинных цепочек обращений к серверам имен.