Без указания IP-адреса невозможно построить компьютерную сеть. Адресация используется как во внутренних, так и во внешних, включая интернет, каналах связи. Разберемся в принципе функционирования и разновидностях сетевых адресов.
Расшифровка термина и назначение
В компьютерной сети для распознавания каждого узла необходимо задать ему неповторяющееся число. Благодаря ему, можно соединить элементы системы между собой, определить источник неисправности.
Для решения указанных задач был введен IP-адрес. Он используется в сетях, функционирующих по протоколам TCP/IP. IP — это англоязычная аббревиатура, первые две буквы читаются, как «ай-пи», и расшифровываются, как «Internet Protocol».
Сетевой протокол имеет иерархическую основу. Разные устройства включаются в одну подсеть. Маршрутизаторы оперируют не одиночными устройствами, а подсетями.
Адрес устройства
Записывается IP в виде набора чисел. Первоначально цифры записывались в 32-х разрядном двоичном виде, например, 11100010101000100010101110011110. Каждому узлу присваивалось подобное число. Для облегчения восприятия его разделили на 4 части, разделенных точками. Каждая часть имеет 8 разрядов и поэтому называется «октет». По сути — это байт, имеющий 8 битов.
Для удобства двоичную систему перевели в десятичную. Число из указанного выше примера стало записываться, как 226.162.43.158.
Так как каждый октет состоит из 8 разрядов, то он не может быть больше 255 в десятичной системе.
Адрес состоит из двух частей: цифр, обозначающих ID подсети, и ID компьютера или узла. Первые октеты указывают подсеть, последние — узел. Например, в записи «10.2.6.21» первые 3 цифры «10.2.6» — это сеть и она указывается, как «10.2.6.0», а последний октет идентифицирует узел в ней и записывается, как «0.0.0.21».
Для определения границы между подсетью и узлом используется маска.
Маска подсети
Маска также записывается в виде 4-х октетов. Но для нее существует правило: между октетами с единицами не должно быть нулевых наборов.
Она записывается в десятичном и двоичном исчислении. Например, 255.255.255.192 можно записать, как 11111111.11111111.11111111.11000000. Номер узла показан в октетах с нулями, а подсети — с единицами. Если вместе с данной маской имеется номер 192.168.10.130, то 192.168.10 — это ID сети, а 130 — ID узла. Чем меньше единиц имеет маска, тем больше узлов может быть.
Чтобы узнать первый адрес подсети, который не присваивается никакому устройству, необходимо провести логическую операцию AND между рассматриваемыми элементами. Например:
11000000.10101000.00001010.10000010 (192.168.10.130)
11111111.11111111.11111111.11000000 (255.255.255.192)
11000000.10101000.00001010.10000000 (192.168.10.128)
Полученный номер называется «адрес подсети».
Для удобства написания элементы хоста указывают вместе, через слэш или префикс. Для рассмотренного выше примера справедлива следующая запись: 192.168.10.130/26. Здесь 26 — количество единиц в маске. Количество устройств или хостов в сети определяется формулой 232-N– 2, где N — количество единиц в маске или префикс. 2 вычитается в формуле, так как существуют 2 идентификатора, которые не присваиваются хостам: первый и последний.
В примерах был рассмотрен протокол IPv4, но существует и версия IPv6.
Две версии
IPv4 был внедрен в 1981 году. Так как он использует 32 бита, то общее количество возможных номеров равно 232 = 4294967296. Тогда это казалось достаточным, но с появлением интернета их количество стало быстро уменьшаться.
Для их увеличения в 1996 году была предложена версия IPv6. В этом случае адрес имеет 128 разрядов, состоит из 8 наборов, записанных в 16-ричном исчислении, их также называют «хекстет». Каждый хекстет состоит из 4 цифр и отделяется двоеточием. Например, 2001:0BB0:0000:123B:0000:0000:0000:0030. Если хекстеты состоят из одних нулей, то их можно опускать для сокращения записи, и оставлять только двоеточия. Вот та же запись, но в сокращенно виде: 2001:BB0:0:123B::30.
Маска в цифровом виде не используется для данной версии, а указывается префиксом. Это сделано с целью сокращения записи, так как маска имеет 128 бит. Выполняет те же функции, что и в четвертой версии.
Шестая версия становится все более распространенной, так как уже не осталось свободных идентификаторов четвертого протокола. На данный момент 25%-30% устройств работают на версии IPv6.
Для определения границ между адресом сети и хостом существует 2 метода: использование классов и бесклассовый. Первый устарел и не используется, но вкратце будет рассмотрен, так как в литературе еще встречаются описания классов.
Классы
Маска определяет количество хостов. С момента начала использования протокола и до 1993 года применялись фиксированные маски. Все IP были строго поделены на классы с неизменяемой маской в каждом разделе. Это приводило к неэкономному и неудобному их распределению.
Всего было 5 классов: A, B, C, D, E. Они имели следующие параметры:
- Категория А. Здесь первый октет используется для указания сети, а остальные 3 для задания номера хоста. Сети располагаются в диапазоне 00000001.00000000.00000000.00000000 — 01111110.00000000.00000000.00000000 или 1.0.0.0 — 126.0.0.0. Для идентификации узла используются 3 октета. Всего может быть 126 подсетей и 224 = 16777216 хостов. Маска для данной категории 255.0.0.0 или префикс 8. Использовалась категория в больших компаниях, на производстве.
- Категория B. Увеличивается количество подсетей, располагаются они в двух октетах от 100000001.00000000.00000000.00000000 до 10111111.11111111.00000000.00000000 или 128.0.0.0 — 191.255.0.0. Количество узлов — 216 = 65536. Маска — 255.255.0.0, префикс 16.
- Категория С. Сети начинаются с 1100000.00000000.00000001.00000000 до 11011111.11111111.11111111.000000000 или 192.0.1.0 — 223.255.255.0. Маска — 255.255.255.0, префикс 24. На основе данной категории строились небольшие сети, в которых умещалось 254 узла.
- Категория D. Использовалась для одновременной рассылки пакетов первым трем категориям. Начинался с 11100000.00000000.00000000.00000000 и заканчивался 11101111.11111111.11111111.11111111 или 224.0.0.0 — 239.255.255.255.
- Категория E. Была зарезервирована. Номера из этого раздела не раздаются. Начинается с 11110000.00000000.00000000.00000000 — 11110111.11111111.11111111.11111111 или 240.0.0.0 — 247.255.255.255.
Подобная классификация была неудобной, например, если нужно было 15 адресов, то приходилось брать весь сегмент категории. При возрастании количества устройств в интернете она стала неэкономичной, так как кому-то приходилось брать избыточное количество идентификаторов, и они не использовались. Для придания гибкости системе была внедрена бесклассовая идентификация.
Бесклассовое распределение
В середине 90-х годов была внедрена бесклассовая система распределения. Назвали ее CIDR, что расшифровывается, как «Classless Inter-Domain Routing». Здесь нет жесткой фиксации маски в рамках границ октетов. Она имеет переменную длину, префикс меняется от 0 до 32. Поэтому можно организовать сеть с нужным количеством хостов.
Изменяемые маски используются для разбития сети на более мелкие части. В этом случае они не будут оканчиваться на границах октетов. Например, имеется «локалка» 192.168.1.0/24. Необходимо разделить ее на 2 части.
Согласно формуле в ней доступно 232-24 – 2 = 254 хоста. Если изменить данные на 192.168.1.0/25, то количество хостов на одну подсеть уменьшится до 126. Маска будет иметь вид: 11111111.11111111.11111111.10000000 или 255.255.255.128. Появятся две подсети: 192.168.1.0/25 и 192.168.1.128/25, в каждой из них будут доступны 126 хостов. Увеличивая длину маски, можно еще больше раздробить сеть.
Также адреса различают по количеству охватываемых хостов.
Виды идентификаторов
Адреса используются как для передачи пакетов одиночному хосту, так и нескольким узлам. По этому признаку они делятся на следующие виды:
- Unicast или индивидуальный. Назначается одному хосту.
- Multicast или групповой. Объединяет несколько компьютеров. Поэтому информация, посланная на данный идентификатор, будет получена всеми участниками группы.
- Broadcast или широковещательный. Специальный номер подсети, при посылке на него информации, она будет передана всем компьютерам.
Широковещательные идентификаторы отличаются по направлению отправки пакетов.
Broadcast передача
Если в хостовой части поставить номер 255 или единицы в двоичном исчислении, то пакеты с этого сетевого интерфейса будут переданы всем узлам. Например, имеется хост 192.168.1.1/24, для отправки с него информации всем участникам подсети для него устанавливается IP 192.168.1.255.
Подобные номера циркулируют только в рамках сети, где были созданы. Они не передаются маршрутизаторами во внешнее пространство. Существуют 2 типа broadcast идентификаторов.
Типы broadcast идентификаторов
Если необходимо внутри сети отправить информацию всем хостам от одного узла, то на источнике передачи устанавливается идентификатор 255.255.255.255. Подобный IP называется «ограниченный широковещательный». Все внутренние компьютеры получат пакеты, маршрутизатор не пропустит данные во внешнюю среду.
Если нужно послать данные хостам во внешней среде, то указывается адрес этой подсети, а в качестве хоста пишется 255. Например, для передачи из 192.168.0.0 в 192.168.1.0 создается адрес 192.168.0.255. Маршрутизатор перешлет данные всем хостам. Такой тип широковещания называется «направленный».
Раздача номеров для узлов по всему миру производится специальными организациями.
Распределение
Раздачей новых адресов, повторным вводом неиспользуемых занимается организация ICAAN или «Internet Corporation for Assigned Names and Numbers» в развернутом виде. Компания имеет 5 региональных отделов, распределяющих IP номера в соответствующих уголках мира, а именно:
- ARIN — относится к Северной Америке;
- LACNIC — Латинская Америка;
- APNIC — распределяет в Юго-Восточной Азии;
- AfriNIC — обслуживает Африку;
- RIPE NCC — раздает идентификаторы на Ближнем Востоке, Центральной Азии и Европе.
Далее каждый из региональных отделов заключают договоры с крупными провайдерами, которые раздают адреса более мелким. Конечным пунктом этой цепи будет одиночный компьютер.
Особые IP номера
Существуют выделенные номера, которые не используются в качестве хоста или имеют ограниченное применение.
В номере узла не ставится в разрядах двоичный 0 или 1. В первом случае это будет адрес сети, рассмотренный выше, например, 192.168.1.0. Во втором случае получится широковещательный идентификатор, например 192.168.1.255.
Неофициально номер шлюза имеет в конце десятичную единицу. Так 10.2.66.1 относится к шлюзу. Нет инструкций по использованию таких номеров в адресации шлюзов, однако, большинство администраторов придерживаются данного правила.
Запрещено использование IP 127.x.x.x в сетях. Он предназначен для тестирования соединения. При его использовании происходит прием и передача пакетов на одном и том же компьютере. Образуется «петля» в посылке и приеме данных. Поэтому 127.0.0.1 называют «обратная петля».
Если компьютер еще не получил адрес для работы в сети, то он имеет идентификатор 0.0.0.0, который также запрещено использовать для других целей.
Если интерфейс не был настроен вручную или автоматически, то ему присваивается номер из набора 169.254.0.0/16. Для данной подсети существует особое имя — «Link-local». Данные из нее не выходят за пределы маршрутизатора и циркулируют внутри нее.
Динамические и статические номера
Еще одним решением проблемы наличия свободных идентификаторов стало использование непостоянных (динамических) номеров. Вначале все хосты в интернете имели постоянные (статические) адреса. При выключении компьютера идентификатор оставался за ним.
С увеличением количества подключенных компьютеров стало неэкономично предоставлять им постоянные IP указатели. Нода могла проработать несколько часов и выключиться, а адрес продолжал оставаться занятым. Поэтому были введены динамические номера. Они изменяются при подключении к интернету. Назначение в этом случае происходит по протоколу DHCP — Dynamic Host Configuration Protocol.
Каждый раз после включения система выдает хосту новый IP, предыдущий его адрес присваивается другому хосту, находящемуся в сети. Это улучшает распределение идентификаторов. Статические IP имеют только сервера. Если они будут работать по DHCP технологии, то буду возникать проблемы с подключением к ним.
Еще одним способом высвобождения адресов стало деление их на внутренние и внешние.
Внутренние и внешние IP
Все идентификаторы поделили на два вида: внешние, их могут называть «публичные», «глобальные», «белые», и внутренние или частные, локальные, «серые».
«Белый» используются в интернете. Через них возможно прямое подключение к всемирной «паутине». Для организации, например, игрового сервера, необходимо, чтобы компьютер имел публичный идентификатор. Тогда к нему можно будет подключиться через интернет.
«Серые» адреса используются в локальных сетях, не имеющих прямого выхода в интернет. Существует несколько диапазонов частных номеров:
Все «локалки» внутри организаций работают с «серыми» номерами. Так как они не имеют выхода в интернет, то не возникает никаких конфликтов между ними.
Для вывода входящих в них устройств в интернет используется технология NAT — Network Address Translation. При использовании такого подключения маршрутизатору предоставляется один или несколько «белых» адресов. Когда из локальной сети отправляется запрос в интернет, то NAT меняет «серый» номер на публичный. При получении ответа NAT отправляет его на нужный локальный компьютер.
Внутренняя сеть, состоящая из сотен или тысяч компьютеров, получает доступ в интернет через 1 или несколько глобальных идентификаторов. Это позволяет сэкономить «белые» номера.
Интернет постоянно расширяется, и знание его основ позволит понять вектор его развития. На данный момент решение проблемы исчерпания идентификаторов видится в переходе на версию IPv6.