При адресации необходимо учитывать те ограничения, которые вносятся особым назначением некоторых IP-адресов. Так, ни номер сети, ни номер узла не может состоять только из одних двоичных единиц или только из одних двоичных нулей. Отсюда следует, что максимальное количество узлов, приведенное в таблице для сетей каждого класса, на практике должно быть уменьшено на 2. Например, в сетях класса С под номер узла отводится 8 бит, которые позволяют задавать 256 номеров: от 0 до 255. Однако на практике максимальное число узлов в сети класса С не может превышать 254, так как адреса 0 и 255 имеют специальное назначение. Из этих же соображений следует, что конечный узел не может иметь адрес типа 98.255.255.255, поскольку номер узла в этом адресе класса А состоит из одних двоичных единиц.
Особый смысл имеет 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-адреса на номер сети и номер узла основана на понятии класса, который определяется значениями нескольких первых бит адреса. Именно потому, что первый байт адреса 185.23.44.206 попадает в диапазон 128-191, мы можем сказать, что этот адрес относится к классу В, а значит, номером сети являются первые два байта, дополненные двумя нулевыми байтами - 185.23.0.0, а номером узла - 0.0.44.206.
Однако более гибко устанавливать границу между номером сети и номером узла можно с помощью маски. Маска - это число, которое используется в паре с IP-адресом; двоичная запись маски содержит единицы в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети. Поскольку номер сети является цельной частью адреса, единицы в маске также должны представлять непрерывную последовательность.
Для стандартных классов сетей маски имеют следующие значения:
· класс А - 11111111. 00000000. 00000000. 00000000 (255.0.0.0);
· класс В - 11111111. 11111111. 00000000. 00000000 (255.255.0.0);
· класс С-11111111.11111111.11111111.00000000 (255.255.255.0).
Десятичное представление
Двоичное представление
IP-адрес
172. 16. 96.0
10101100. 00010000. 01100000. 00000000
Маска подсети
255.255.192.0
11111111. 11111111. 11000000. 00000000
Интерпретация адреса:
- адрес подсети
- адрес компьютера
172. 16. 1
32.0
10101100. 00010000. 01
100000. 00000000
Возьмем IP-адрес 82.204.216.116, принадлежащий одному из реально работающих серверов в сети Интернет. В двоичном виде он будет выглядеть как 01010010110011001101100001110100. Полученная последовательность содержит в себе адрес сети (сетевая часть) и номера хоста, который ему присвоен в данной сети.
Для разделения IP-адреса на данные составляющие, применяется параметр, названный выше «маска подсети» (net mask). Маска определяет, сколько разрядов IP-адреса из имеющихся 32 занимает адрес сети, а сколько – номер хоста. Количество единиц в маске определяет количество разрядов адреса сети, а количество нулей определяет количество разрядов занимаемое номером хоста. Перемножая оба 32 разрядных числа с помощью логической операции «И» (накладывая маску на адрес), мы получим адрес сети, а вычтя из IP-адреса адрес сети, получим номер хоста.
Возьмем наш адрес 82.204.216.116 и маску сети 255.255.255.240. Эти параметры были выданы провайдером при подключении сервера к Интернет. Найдем с помощью этих значений номер сети и номер хоста. Для этого сначала переведем все в двоичный вид.
Определим адрес сети, к которой принадлежит сервер. Для этого произведем логическое умножение (функция «логическое И» или &) двух получившихся двоичных чисел. При логическом умножении 1 х 0 = 0, 0 х 0 = 0, 1 х 1 = 1. В итоге:
&
------------------------------------------------
Разделим получившуюся последовательность на октеты и переведем их в десятичный вид. Результат будет выглядеть как 82.204.216.112.Чтобы получить номер хоста, вычтем получившийся адрес сети из исходного IP-адреса хоста:
-
------------------------------------------------
00000000000000000000000000000100 или просто 0100, что в десятичном виде выглядит как 4.
Обратите внимание, что при маске 255.255.255.240 под номер хоста отведено всего 4 разряда. Это значит, что максимальное количество номеров хостов, которое мы можем получить в нашей сети– 16 шт. Число 16 – это 24. В четвертой степени, потому что у нас под номер хоста отдано 4 разряда. Если бы маска подсети была короче, и под хост оставалось бы 5 разрядов, то число номеров хостов было бы 2 в пятой степени (или 32 шт.).
Однако, номер хоста не может быть нулевым, а наибольший номер хоста зарезервирован под broadcast-адрес. Таким образом, число хостов в сети сокращается на 2 шт и составляет 14 шт:
0001 (82.204.216.113) – заметьте, хоть номер хоста в сети равен 1, его IP-адрес имеет значение, равное адресу сети +1
0010 (82.204.216.114) – номер хоста равен 2, IP-адрес равен адресу сети +2
0011 (82.204.216.115) – номер хоста равен 3
0100 (82.204.216.116) – и так далее
0101 (82.204.216.117)
0110 (82.204.216.118)
0111 (82.204.216.119)
1000 (82.204.216.120)
1001 (82.204.216.121)
1010 (82.204.216.122)
1011 (82.204.216.123)
1100 (82.204.216.124)
1101 (82.204.216.125)
1110 (82.204.216.126)
IP-адрес 82.204.216.127 (сочетание 1111) зарезервирован под broadcast.
Адрес данной сети записывается как 82.204.216.112 / 28. Запись «/ 28» означает, что маска подсети состоит из 28 единиц (и соответственно, 4 нулей, т.к. маска 32-битная также, как и IP-адрес).
Порядок распределения IP-адресов
Номера сетей назначаются либо централизованно, если сеть является частью Internet, либо произвольно, если сеть работает автономно. Номера узлов и в том и в другом случае администратор волен назначать по своему усмотрению, не выходя, разумеется, из разрешенного для этого класса сети диапазона.
Координирующую роль в централизованном распределении IP-адресов до некоторого времени играла организация InterNIC, однако с ростом сети задача распределения адресов стала слишком сложной, и InterNIC делегировала часть своих функций другим организациям и крупным поставщикам услуг Internet.
Уже сравнительно давно наблюдается дефицит IP-адресов. Очень трудно получить адрес класса В и практически невозможно стать обладателем адреса класса А. При этом надо отметить, что дефицит обусловлен не только ростом сетей, но и тем, что имеющееся множество IP-адресов используется нерационально. Очень часто владельцы сети класса С расходуют лишь небольшую часть из имеющихся у них 254 адресов.
Рассмотрим пример, когда две сети необходимо соединить глобальной связью. В таких случаях в качестве канала связи используют два маршрутизатора. Для сети, образованной каналом, связывающим порты двух смежных маршрутизаторов, приходится выделять отдельный номер сети, хотя в этой сети имеются всего 2 узла.
Если IP-сеть создана для работы в «автономном режиме», без связи с Internet, тогда администратор этой сети волен назначить ей произвольно выбранный номер. Но и в этой ситуации для того, чтобы избежать каких-либо коллизий, в стандартах Internet определено несколько диапазонов адресов, рекомендуемых для локального использования. Эти адреса не обрабатываются маршрутизаторами Internet ни при каких условиях. Адреса, зарезервированные для локальных целей, выбраны из разных классов; в классе А - это сеть 10.0.0.0, в классе В - это диапазон из 16 номеров сетей 172.16.0.0-172.31.0.0, в классе С - это диапазон из 255 сетей - 192.168.0.0-192.168.255.0.
Назначение IP-адресов узлам сети даже при не очень большом размере сети может представлять для администратора утомительную процедуру. Протокол Dynamic Host Configuration Protocol (DHCP) освобождает администратора от этих проблем, автоматизируя процесс назначения IP-адресов.
DHCP может поддерживать способ автоматического динамического распределения адресов, а также более простые способы ручного и автоматического статического назначения адресов. Протокол DHCP работает в соответствии с моделью клиент-сервер. Во время старта системы компьютер, являющийся DHCP-клиентом, посылает в сеть запрос на получение IP-адреса. DHCP - cepвер откликается и посылает сообщение-ответ, содержащее IP-адрес. Предполагается, что DHCP-клиент и DHCP-сервер находятся в одной IP-сети.
При динамическом распределении адресов DHCP-сервер выдает адрес клиенту на ограниченное время, называемое временем аренды (lease duration), что дает возможность впоследствии повторно использовать этот IP-адрес для назначения другому компьютеру. Иногда динамическое разделение адресов позволяет строить IP-сеть, количество узлов в которой превышает количество имеющихся в распоряжении администратора IP-адресов.
В ручной процедуре назначения статических адресов активное участие принимает администратор, который предоставляет DHCP - серверу информацию о соответствии IP-адресов физическим адресам или другим идентификаторам клиентов. DHCP-сервер, пользуясь этой информацией, всегда выдает определенному клиенту назначенный администратором адрес.
При автоматическом статическом способе DHCP-сервер присваивает IP-адрес без вмешательства оператора. Границы назначаемых адресов задает администратор при конфигурировании DHCP-сервера. Адрес дается клиенту в постоянное пользование, то есть с неограниченным сроком аренды. Между идентификатором клиента и его IP-адресом по-прежнему, как и при ручном назначении, существует постоянное соответствие. Оно устанавливается в момент первого назначения DHCP-сервером IP-адреса клиенту. При всех последующих запросах сервер возвращает тот же самый IP-адрес.
DHCP обеспечивает надежный и простой способ конфигурации сети TCP/IP, гарантируя отсутствие дублирования адресов за счет централизованного управления их распределением. Администратор управляет процессом назначения адресов с помощью параметра «продолжительность аренды», которая определяет, как долго компьютер может использовать назначенный IP-адрес, перед тем как снова запросить его от DHCP-сервера в аренду.
Примером работы протокола DHCP может служить ситуация, когда компьютер, являющийся DHCP-клиентом, удаляется из подсети. При этом назначенный ему IP-адрес автоматически освобождается. Когда компьютер подключается к другой подсети, то ему автоматически назначается новый адрес. Ни пользователь, ни сетевой администратор не вмешиваются в этот процесс. Это свойство очень важно для мобильных пользователей.
DHCP-сервер может назначить клиенту не только IP-адрес клиента, но и другие параметры стека TCP/IP, необходимые для его эффективной работы, например, маску, IP-адрес маршрутизатора по умолчанию, IP-адрес сервера DNS, доменное имя компьютера и т. п
.
Класс
Первые биты
Наименьший номер сети
Наибольший номер сети
Максимальное число узлов в сети
А
1.0.0.0
126.0.0.0
224
В
128.0.0.0
191.255.0.0
216
С
192.0.1.0
223.255.255.0
28
D
224.0.0.0
239.255.255.255
Multicast
E
240.0.0.0
247.255.255.255
Зарезервирован
При адресации необходимо учитывать те ограничения, которые вносятся особым назначением некоторых IP-адресов. Так, ни номер сети, ни номер узла не может состоять только из одних двоичных единиц или только из одних двоичных нулей. Отсюда следует, что максимальное количество узлов, приведенное в таблице для сетей каждого класса, на практике должно быть уменьшено на 2. Например, в сетях класса С под номер узла отводится 8 бит, которые позволяют задавать 256 номеров: от 0 до 255. Однако на практике максимальное число узлов в сети класса С не может превышать 254, так как адреса 0 и 255 имеют специальное назначение. Из этих же соображений следует, что конечный узел не может иметь адрес типа 98.255.255.255, поскольку номер узла в этом адресе класса А состоит из одних двоичных единиц.
Особый смысл имеет 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-адреса на номер сети и номер узла основана на понятии класса, который определяется значениями нескольких первых бит адреса. Именно потому, что первый байт адреса 185.23.44.206 попадает в диапазон 128-191, мы можем сказать, что этот адрес относится к классу В, а значит, номером сети являются первые два байта, дополненные двумя нулевыми байтами - 185.23.0.0, а номером узла - 0.0.44.206.
Однако более гибко устанавливать границу между номером сети и номером узла можно с помощью маски. Маска - это число, которое используется в паре с IP-адресом; двоичная запись маски содержит единицы в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети. Поскольку номер сети является цельной частью адреса, единицы в маске также должны представлять непрерывную последовательность.
Для стандартных классов сетей маски имеют следующие значения:
· класс А - 11111111. 00000000. 00000000. 00000000 (255.0.0.0);
· класс В - 11111111. 11111111. 00000000. 00000000 (255.255.0.0);
· класс С-11111111.11111111.11111111.00000000 (255.255.255.0).
Порядок распределения IP-адресов
Номера сетей назначаются либо централизованно, если сеть является частью Internet, либо произвольно, если сеть работает автономно. Номера узлов и в том и в другом случае администратор волен назначать по своему усмотрению, не выходя, разумеется, из разрешенного для этого класса сети диапазона.
Координирующую роль в централизованном распределении IP-адресов до некоторого времени играла организация InterNIC, однако с ростом сети задача распределения адресов стала слишком сложной, и InterNIC делегировала часть своих функций другим организациям и крупным поставщикам услуг Internet.
Уже сравнительно давно наблюдается дефицит IP-адресов. Очень трудно получить адрес класса В и практически невозможно стать обладателем адреса класса А. При этом надо отметить, что дефицит обусловлен не только ростом сетей, но и тем, что имеющееся множество IP-адресов используется нерационально. Очень часто владельцы сети класса С расходуют лишь небольшую часть из имеющихся у них 254 адресов.
Рассмотрим пример, когда две сети необходимо соединить глобальной связью. В таких случаях в качестве канала связи используют два маршрутизатора. Для сети, образованной каналом, связывающим порты двух смежных маршрутизаторов, приходится выделять отдельный номер сети, хотя в этой сети имеются всего 2 узла.
Если IP-сеть создана для работы в «автономном режиме», без связи с Internet, тогда администратор этой сети волен назначить ей произвольно выбранный номер. Но и в этой ситуации для того, чтобы избежать каких-либо коллизий, в стандартах Internet определено несколько диапазонов адресов, рекомендуемых для локального использования. Эти адреса не обрабатываются маршрутизаторами Internet ни при каких условиях. Адреса, зарезервированные для локальных целей, выбраны из разных классов; в классе А - это сеть 10.0.0.0, в классе В - это диапазон из 16 номеров сетей 172.16.0.0-172.31.0.0, в классе С - это диапазон из 255 сетей - 192.168.0.0-192.168.255.0.
Назначение IP-адресов узлам сети даже при не очень большом размере сети может представлять для администратора утомительную процедуру. Протокол Dynamic Host Configuration Protocol (DHCP) освобождает администратора от этих проблем, автоматизируя процесс назначения IP-адресов.
DHCP может поддерживать способ автоматического динамического распределения адресов, а также более простые способы ручного и автоматического статического назначения адресов. Протокол DHCP работает в соответствии с моделью клиент-сервер. Во время старта системы компьютер, являющийся DHCP-клиентом, посылает в сеть запрос на получение IP-адреса. DHCP - cepвер откликается и посылает сообщение-ответ, содержащее IP-адрес. Предполагается, что DHCP-клиент и DHCP-сервер находятся в одной IP-сети.
При динамическом распределении адресов DHCP-сервер выдает адрес клиенту на ограниченное время, называемое временем аренды (lease duration), что дает возможность впоследствии повторно использовать этот IP-адрес для назначения другому компьютеру. Иногда динамическое разделение адресов позволяет строить IP-сеть, количество узлов в которой превышает количество имеющихся в распоряжении администратора IP-адресов.
В ручной процедуре назначения статических адресов активное участие принимает администратор, который предоставляет DHCP - серверу информацию о соответствии IP-адресов физическим адресам или другим идентификаторам клиентов. DHCP-сервер, пользуясь этой информацией, всегда выдает определенному клиенту назначенный администратором адрес.
При автоматическом статическом способе DHCP-сервер присваивает IP-адрес без вмешательства оператора. Границы назначаемых адресов задает администратор при конфигурировании DHCP-сервера. Адрес дается клиенту в постоянное пользование, то есть с неограниченным сроком аренды. Между идентификатором клиента и его IP-адресом по-прежнему, как и при ручном назначении, существует постоянное соответствие. Оно устанавливается в момент первого назначения DHCP-сервером IP-адреса клиенту. При всех последующих запросах сервер возвращает тот же самый IP-адрес.
DHCP обеспечивает надежный и простой способ конфигурации сети TCP/IP, гарантируя отсутствие дублирования адресов за счет централизованного управления их распределением. Администратор управляет процессом назначения адресов с помощью параметра «продолжительность аренды», которая определяет, как долго компьютер может использовать назначенный IP-адрес, перед тем как снова запросить его от DHCP-сервера в аренду.
Примером работы протокола DHCP может служить ситуация, когда компьютер, являющийся DHCP-клиентом, удаляется из подсети. При этом назначенный ему IP-адрес автоматически освобождается. Когда компьютер подключается к другой подсети, то ему автоматически назначается новый адрес. Ни пользователь, ни сетевой администратор не вмешиваются в этот процесс. Это свойство очень важно для мобильных пользователей.
DHCP-сервер может назначить клиенту не только IP-адрес клиента, но и другие параметры стека TCP/IP, необходимые для его эффективной работы, например, маску, IP-адрес маршрутизатора по умолчанию, IP-адрес сервера DNS, доменное имя компьютера и т. п