IP-адрес — это уникальный адрес каждого устройства в сети: компьютера, смартфона, маршрутизатора, сервера, умной техники. Он нужен, чтобы устройства в сети видели друг друга и могли обмениваться данными. IP-адрес записывается числами, разделенными точками или двоеточиями, и может выглядеть так:
В локальной сети: 10.0.2.11
В интернете: 40.188.18.75
Версии протокола IP
Протокол IPv4 использует 32-битные адреса длиной 4 октета, которые записываются в виде четырех чисел в диапазоне от 0 до 255, разделенных точками. Всего возможно адресов — 4,3 млрд. Но из-за роста количества сетевых устройств их уже недостаточно — это призвана исправить шестая версия протокола с новым форматом адресов.
Протокол IPv6 — это 128-битные адреса длиной 8 квартетов, которые записываются в виде групп по четыре шестнадцатеричных числа, разделенных двоеточиями. Например: 2001:0bb8:85e3:0000:0000:8a2e:0370:7334. Такая конфигурация увеличивает адресное пространство для сетевых устройств до 2¹²⁸ адресов.
Развернутое представление числа 2¹²⁸:
340 282 366 920 938 463 463 374 607 431 768 211 456 — столько IP-адресов в протоколе IPv6.
Данные IP-адреса
IP‑адрес состоит из адреса сети и адреса хоста (устройства). Например, в подсети 10.0.2.0/24 числа 10.0.2.0 — адрес сети. А в последнем октете содержатся адреса устройств, подключенных к этой сети. Чтобы понять, какие числа к чему относятся, используют маску подсети.
Пример адреса сети и хоста IP-адреса 10.0.2.0 в двоичной системе:
10.0.2.0: 00001010.00000000.00000010.00000000
Адрес сети: 00001010.00000000.00000010
Адрес хоста: 00000000
Маска подсети и нотация CIDR
Маска подсети — это 32-битное число, которое выглядит как группа нулей и единиц, разделенных точками. С ее помощью можно разделить IP-адрес на адрес сети и адрес хоста в этой сети. В двоичном представлении маски нули показывают номер хоста, а единицы — номер сети.
Например, чтобы применить маску подсети 255.255.255.0 к IP-адресу 10.0.2.11, нужно сначала перевести все числа в двоичную систему:
IP-адрес: 00001010.00000000.00000010.00001011
Маска: 11111111.11111111.11111111.00000000
Потом применить операцию логического «И». Результатом такой операции будет адрес сети в двоичном представлении:
IP-адрес сети: 00001010.00000000.00000010.00000000
А в конце привести IP-адрес сети в десятичное представление:
10.0.2.0
Нотация CIDR
Нотация CIDR (Classless Inter-Domain Routing) — более эффективный метод представления масок подсети. Он записывается как адрес сети с числом префикса после косой черты (/). Число после черты означает длину префикса в битах.
Например, маска /24 означает, что первые 24 бита относятсям к адресу сети, а оставшиеся 8 бит — к хосту.
Исключения /31 и /32
Использование сетей /31 — это особый случай, когда нужно соединить два IP-адреса в подсети Point-to-Point по стандарту RFC 3021 для экономии адресного пространства IPv4.
Но не все операционные системы поддерживают RFC 3021. Например, Windows не поддерживает. В таких случаях подсеть /31 непригодна, поскольку маской определяются только два адреса: нулевой маршрут и широковещательный адрес. Из-за этого не остается свободных адресов для назначения хостам.
Использование сетей /32 означает, что каждое устройство имеет свой собственный уникальный IP-адрес, который одновременно является адресом сегмента сети. Когда одно устройство хочет отправить сообщение другому, оно сначала передает его на шлюз и только потом — адресату. Эту схему связи называют end-to-end.