Протокол IP (Internet Protocol) — это протокол сетевого уровня, который отвечает за адресацию узлов и маршрутизацию пакетов между разными сетями. IP-адрес — это числовой идентификатор сетевого интерфейса, по которому протокол находит нужный узел. Это разные вещи: протокол — правила доставки, адрес — конкретный номер получателя. Ниже разберем формат IPv4 и IPv6, размер адресного пространства, приватные диапазоны, маску и CIDR, статику против DHCP и коротко NAT.
Содержание
- Протокол IP и IP-адрес — разводим термины
- IPv4: формат и размер адресного пространства
- IPv6: формат и размер адресного пространства
- Публичные и приватные адреса
- Подсети, маска и CIDR
- Статические и динамические адреса, DHCP
- NAT кратко
- Практика на Python (ipaddress)
- Выводы
- Где применяется / связь с практикой
- FAQ
Протокол IP и IP-адрес — разводим термины
Путаница между протоколом и адресом мешает понять остальное, поэтому зафиксируем словарь темы.
- Протокол IP — набор правил: как упаковать данные в пакет (датаграмму), как проставить адреса отправителя и получателя, как маршрутизаторы передают пакет от сети к сети. IP не гарантирует доставку: пакеты могут потеряться, продублироваться или прийти не по порядку. За надежность отвечает транспортный уровень (TCP), а не IP.
- IP-адрес — значение в заголовке пакета, которое идентифицирует интерфейс. Адрес привязан к сетевому интерфейсу, а не к устройству целиком: у хоста с двумя интерфейсами будет два адреса.
- Версия протокола (IPv4 или IPv6) определяет формат адреса и заголовка. IPv4 и IPv6 — это два разных формата, а не «старый и новый адрес одного вида».
IPv4: формат и размер адресного пространства
IPv4 использует 32-битные адреса. Запись — четыре десятичных числа (октета) от 0 до 255, разделенные точками, например 192.168.1.10. Каждый октет — один байт адреса.
Размер адресного пространства — 2 в степени 32, то есть 4 294 967 296 адресов. Часть из них зарезервирована (приватные, loopback, служебные), поэтому публично маршрутизируемых меньше. Именно исчерпание этого пространства стало главной причиной перехода на IPv6.
Адрес делится на сетевую и хостовую части. Сетевая часть общая для всех узлов одной сети, хостовая различает узлы внутри нее. Где проходит граница — задает маска или префикс (см. раздел про CIDR).
IPv6: формат и размер адресного пространства
IPv6 использует 128-битные адреса. Запись — восемь групп по четыре шестнадцатеричных цифры через двоеточие, например 2001:0db8:0000:0000:0000:0000:0000:0001. Правила сокращения:
- незначащие ведущие нули в группе опускаются:
0db8пишется какdb8; - одну самую длинную цепочку групп из нулей заменяют на
::(двойное двоеточие), но только один раз в адресе; - в URL адрес берут в квадратные скобки, а порт указывают после них:
[2001:db8::1]:443.
С учетом сокращений адрес выше записывается как 2001:db8::1. Размер пространства — 2 в степени 128, это примерно 3,4 на 10 в степени 38 адресов: запас, снимающий дефицит IPv4. IPv6 — не «версия адреса», а отдельный протокол с собственным форматом заголовка фиксированной длины 40 байт.
Публичные и приватные адреса
Публичный (белый) адрес маршрутизируется в интернете и уникален глобально. Приватный (серый) используется только внутри локальной сети и в интернете не маршрутизируется — такие пакеты выходят наружу через NAT. Приватные диапазоны IPv4 закреплены в RFC 1918:
| Диапазон (CIDR) | Границы | Число адресов | Типичное применение |
|---|---|---|---|
10.0.0.0/8 |
10.0.0.0 — 10.255.255.255 | 16 777 216 | крупные корпоративные сети |
172.16.0.0/12 |
172.16.0.0 — 172.31.255.255 | 1 048 576 | средние сети |
192.168.0.0/16 |
192.168.0.0 — 192.168.255.255 | 65 536 | домашние и офисные сети |
Отдельно стоит помнить про 127.0.0.0/8 — это loopback (петля на сам узел, 127.0.0.1), не приватная сеть в смысле RFC 1918, и про 169.254.0.0/16 — link-local, который узел назначает себе сам, когда не получил адрес по DHCP. В IPv6 роль приватных играют ULA (fc00::/7, практически fd00::/8) и link-local (fe80::/10).
Подсети, маска и CIDR
Подсеть — логическое деление сети на меньшие части. Границу между сетевой и хостовой частью задает маска подсети — двоичная маска, где единицы стоят на битах сетевой части, а нули — на битах хостовой. Для 192.168.1.0 с 24 сетевыми битами маска — 255.255.255.0.
CIDR (бесклассовая маршрутизация) пишет длину сетевой части после адреса через слеш — в БИТАХ, не в байтах: 192.168.1.0/24 значит 24 сетевых бита. Это заменило старую классовую адресацию (A, B, C), где размер сети был жестко привязан к первому октету.
Для сети /24 доступно 256 адресов, из них два служебных: 192.168.1.0 — адрес самой сети, 192.168.1.255 — широковещательный (пакет всем узлам сети). Под хосты остается 254 адреса — от .1 до .254. Общее правило: у сети с префиксом /n число адресов равно 2 в степени (32 минус n), а под хосты в IPv4 обычно на два меньше (сеть плюс broadcast). Чем длиннее префикс, тем меньше сеть.
Как выбрать префикс на практике: считайте нужное число хостов и берите ближайшую большую степень двойки. Для двух узлов «точка-точка» подойдет /30 (4 адреса, 2 под хосты); для сегмента на сотню машин — /24 (254 хоста); для объединения нескольких подсетей в одну запись маршрутизации — короткий префикс вроде /16 (65 536 адресов). Именно так CIDR позволяет нарезать пространство под задачу, а не под фиксированный класс.
Статические и динамические адреса, DHCP
Статический адрес назначается вручную и не меняется — его берут для серверов, принтеров, шлюзов, которые всегда должны быть по одному адресу. Динамический адрес узел получает автоматически на время (аренду) и при следующем подключении может получить другой.
Раздает динамические адреса DHCP (Dynamic Host Configuration Protocol). Упрощенно обмен идет в четыре шага (DORA): клиент шлет Discover (ищет сервер), сервер отвечает Offer (предлагает адрес), клиент шлет Request (просит именно его), сервер подтверждает Ack. Вместе с адресом DHCP обычно выдает маску, шлюз по умолчанию и адреса DNS. Это упрощенная схема; детали (продление аренды, релеи между подсетями) выходят за рамки статьи.
NAT кратко
NAT (Network Address Translation) — трансляция адресов: пограничный маршрутизатор подменяет приватный адрес отправителя на свой публичный, чтобы устройства локальной сети выходили в интернет через один белый адрес. В домашних роутерах работает разновидность с учетом портов (PAT, она же NAT overload): по номеру порта роутер различает, какому внутреннему узлу вернуть ответ.
NAT смягчил дефицит IPv4, но нарушает сквозную адресуемость: снаружи к узлу за NAT напрямую не обратиться без проброса портов. Провайдеры нередко ставят еще один уровень трансляции (CGNAT), когда даже роутер абонента получает не белый, а общий адрес — это усложняет, например, хостинг сервисов из дома. В IPv6 из-за огромного пространства адресов необходимость в NAT для выхода в интернет по большей части отпадает.
Практика на Python (ipaddress)
Модуль ipaddress из стандартной библиотеки Python разбирает адреса и сети без сторонних пакетов. Пример проверен на Python 3.12; вывод указан в комментариях.
import ipaddress
net = ipaddress.ip_network("192.168.1.0/24")
print(net.netmask) # 255.255.255.0
print(net.num_addresses) # 256
print(net.network_address) # 192.168.1.0
print(net.broadcast_address) # 192.168.1.255
hosts = list(net.hosts())
print(hosts[0], hosts[-1], len(hosts)) # 192.168.1.1 192.168.1.254 254
addr = ipaddress.ip_address("192.168.1.10")
print(addr.is_private) # True
print(addr in net) # True
print(ipaddress.ip_address("8.8.8.8").is_private) # False
Тот же модуль сокращает IPv6-адрес и раскрывает его обратно:
import ipaddress
v6 = ipaddress.ip_address("2001:0db8:0000:0000:0000:0000:0000:0001")
print(v6.compressed) # 2001:db8::1
print(v6.exploded) # 2001:0db8:0000:0000:0000:0000:0000:0001
Выводы
- Протокол IP — это правила адресации и маршрутизации пакетов; IP-адрес — идентификатор интерфейса. Это разные сущности, не синонимы.
- IPv4 — 32 бита (около 4,29 млрд адресов), IPv6 — 128 бит (примерно 3,4 на 10^38): IPv6 решает дефицит адресов IPv4.
- Приватные диапазоны IPv4:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16; в интернете не маршрутизируются, наружу выходят через NAT. - Маска и префикс CIDR (длина в битах) делят адрес на сетевую и хостовую части; у
/24под хосты остается 254 адреса. - Статику задают вручную для постоянных узлов, динамику раздает DHCP на время аренды; NAT дает выход в интернет через один публичный адрес.
Где применяется / связь с практикой
Адресация, подсети, DHCP и NAT — базовый инструментарий любого, кто настраивает и диагностирует сети: от домашнего роутера до корпоративной инфраструктуры. На практике это планирование адресного плана, деление на подсети, настройка маршрутизации и трансляции адресов.
Освойте тему на практике
Освоить это системно, с маршрутизаторами, коммутаторами и практическими стендами, помогает курс Сетевой инженер. Посмотреть формат занятий и разобрать тему с преподавателем можно на открытых уроках — они бесплатные.
FAQ
Может ли у одного устройства быть несколько IP-адресов?
Да. Адрес привязан к интерфейсу, поэтому у устройства с несколькими интерфейсами (или с IPv4 и IPv6 одновременно) будет несколько адресов.
Приватный адрес виден в интернете?
Нет. Приватные адреса не маршрутизируются в интернете; наружу узел выходит под публичным адресом роутера через NAT.
Нужно ли отключать IPv4, если включен IPv6?
Нет. Большинство сетей работают в режиме dual-stack — IPv4 и IPv6 одновременно, узел выбирает версию под доступность собеседника.



