L3 IP-адресация и подсети

Адресация — это главный навык сетевого инженера. На собеседовании могут попросить «дай 200 хостов в каждой VLAN, оптимально нарежь /22» — и считать ты должен в голове или на бумаге за минуту. Этот урок учит так считать.

Что узнаешь

1. IPv4 побитно

IPv4-адрес — это 32 бита, записанные четырьмя октетами (по 8 бит каждый) в десятичной форме через точку. Каждый октет — число от 0 до 255 (2⁸ = 256).

Адрес 192.168.10.45 — как в битах
192 168 10 45 . . . 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1 Десятичный = сумма степеней 2 для бит = 1 192 = 128 + 64 = 1·128 + 1·64 168 = 128 + 32 + 8 = 1·128 + 1·32 + 1·8 10 = 8 + 2 = 1·8 + 1·2 45 = 32 + 8 + 4 + 1 = 1·32 + 1·8 + 1·4 + 1·1 Запомни степени 2: 128, 64, 32, 16, 8, 4, 2, 1
8 бит на октет, 4 октета на адрес = 32 бита, 4 миллиарда адресов IPv4 (но их давно не хватает).

2. Маска подсети — главный концепт

Маска говорит: «сколько старших бит — это номер сети, а сколько остальных — номера хостов». Маска /24 (или 255.255.255.0) значит: первые 24 бита фиксированы (сеть), последние 8 — переменные (хосты).

Маска /24 разделяет адрес на «сеть» и «хост»
IP: 192.168.10.45 192.168.10 .45 часть сети часть хоста Mask: 255.255.255.0 (/24) 11111111.11111111.11111111 .00000000 24 единицы = «сеть фиксирована» 8 нулей = «хост может быть любой» IP AND mask = адрес сети: 192.168.10 .0 → 192.168.10.0 / 24 — сеть, в которой живёт наш хост Диапазон 192.168.10.0/24: 192.168.10.0 = network · 192.168.10.1254 = пригодны для хостов (254 шт.) · 192.168.10.255 = broadcast
Маска просто говорит «вот эти биты — сеть, остальные — хост». Маршрутизаторы по этому работают.

3. CIDR-нотация — современный стандарт

CIDR (Classless Inter-Domain Routing) — это запись префикса одной цифрой после /. Скажем /24 = 24 единичных бита в маске = 255.255.255.0.

Соответствие CIDR ↔ маска ↔ количество хостов
CIDR Маска Хостов Где применяется /8 255.0.0.0 16 777 214 провайдеры, исторические class A /16 255.255.0.0 65 534 крупные кампусные сети, ДЦ /20 255.255.240.0 4 094 отделы крупной компании /22 255.255.252.0 1 022 офис компании, ~1000 устройств /24 255.255.255.0 254 стандарт VLAN в офисе /25 255.255.255.128 126 небольшая подсеть /26 255.255.255.192 62 маленький сегмент /27 255.255.255.224 30 VoIP, IoT, гостевая сеть /29 255.255.255.248 6 пара серверов + gateway /30 255.255.255.252 2 P2P-линки между роутерами /31 255.255.255.254 2 (RFC3021) P2P без потери адресов
Формула: хостов = 2^(32-N) − 2. Минус 2 на network и broadcast. /31 — исключение (P2P, RFC3021).

4. Метод «магического числа» — считаем подсети в голове

Главный трюк сетевика. Любую подсеть можно вычислить за 10 секунд, если знаешь степени 2 и базовый алгоритм.

Алгоритм: 192.168.10.45/26 — найти network и broadcast
1 Найди «интересный» октет. /26 → 26 / 8 = 3 целых, 2 в остатке → 4-й октет, биты 7 и 6. Маска /26 побитно: 11111111.11111111.11111111.11000000 ↑ интересный октет 2 «Магическое число» = 256 − значение интересного октета маски. Маска в 4-м октете: 11000000 = 128 + 64 = 192 Магическое число = 256 − 192 = 64 Это шаг между подсетями /26 в 4-м октете. 3 Подсети шагают по магическому числу. Находим, в какой попадает наш хост. .0 .64 .128 .192 .256 = .0 след. .45 .45 находится между .0 и .64 → попадает в подсеть .0/26 4 Готовый ответ: Network: 192.168.10.0 First host: 192.168.10.1 Last host: 192.168.10.62 Broadcast: 192.168.10.63 Hosts: 62 Mask: 255.255.255.192
Алгоритм работает для любой маски. На бумаге решается за минуту, в голове — за 10-15 секунд после практики.
Скоростной приём для частых масок: /24 → шаг 1 в 4-м октете (192 подсети по 256), /25 → шаг 128, /26 → 64, /27 → 32, /28 → 16, /29 → 8, /30 → 4. Запомни 128, 64, 32, 16, 8, 4 — этого хватает в 99% случаев.

5. VLSM — разная длина маски

VLSM (Variable Length Subnet Masking) — это когда внутри одной большой сети ты режешь подсети разной длины, чтобы не тратить адреса впустую.

VLSM пример: дана /24, нужно нарезать оптимально
Задача У тебя есть 10.0.0.0/24. Нужно: • VLAN USERS — 100 хостов · VLAN SERVERS — 50 хостов · VLAN GUEST — 20 хостов · 2× P2P-линка Без VLSM пришлось бы взять 4×/24 = 1024 адреса. С VLSM — поместим всё в одну /24. 256 адресов /24 — оптимально разрезано: USERS — 10.0.0.0/25 .0—.127 · 126 хостов · 128 адресов SERVERS — 10.0.0.128/26 .128—.191 · 62 хоста GUEST /27 · 30 резерв .222—.255 Детальная разбивка ┌──────────────┬──────────────────────┬─────────┬───────────┬────────────┐ VLANSubnetMaskHostsGateway ├──────────────┼──────────────────────┼─────────┼───────────┼────────────┤ USERS │ 10.0.0.0/25 │ /25 │ 1—126 │ 10.0.0.1 │ SERVERS │ 10.0.0.128/26 │ /26 │ 129—190 │ 10.0.0.129 │ GUEST │ 10.0.0.192/27 │ /27 │ 193—222 │ 10.0.0.193 │ P2P-R1↔R2 │ 10.0.0.224/30 │ /30 │ 225, 226 │ — │ P2P-R1↔R3 │ 10.0.0.228/30 │ /30 │ 229, 230 │ — │ RESERVE │ 10.0.0.232—10.0.0.255│ — │ 24 адр. │ свободно │ └──────────────┴──────────────────────┴─────────┴───────────┴────────────┘
VLSM позволяет нарезать «по нужде»: большим — большие куски, мелким — мелкие. Ничего не пропадает.

Правило раздачи VLSM

  1. Раздавай от больших к меньшим (сначала /25 для 100 хостов, потом /26 для 50 и т.д.).
  2. Считай нужное число хостов с запасом ×1.3 на рост.
  3. Адреса для P2P — последние, /30 или /31. Это аксиома в энтерпрайз-проектах.
  4. Оставляй 10-20% резерва на новые подсети.

6. Спецадреса и зарезервированные диапазоны

ДиапазонНазначениеRFC
0.0.0.0/8«Эта сеть». Источник в DHCP-discover. Также 0.0.0.0/0 — default route.RFC 1122
10.0.0.0/8Приватная сеть (большая).RFC 1918
100.64.0.0/10Carrier-Grade NAT (CGN), не для LAN.RFC 6598
127.0.0.0/8Loopback. Чаще всего 127.0.0.1 = localhost.RFC 1122
169.254.0.0/16Link-local (APIPA, когда DHCP не ответил).RFC 3927
172.16.0.0/12Приватная сеть (средняя).RFC 1918
192.0.2.0/24TEST-NET-1 (для документации).RFC 5737
192.168.0.0/16Приватная сеть (домашняя, малая).RFC 1918
198.51.100.0/24TEST-NET-2.RFC 5737
203.0.113.0/24TEST-NET-3.RFC 5737
224.0.0.0/4Multicast.RFC 5771
240.0.0.0/4Reserved (для experimental).RFC 1112
255.255.255.255Limited broadcast (только в локальной сети).RFC 919

7. IPv6 — база за 5 минут

IPv4-адреса закончились в 2011 году (формально). Долгосрочное решение — IPv6 с 128-битным адресом (3.4×10³⁸ адресов — больше, чем песчинок на всех пляжах Земли).

IPv6 адрес — как читать
Полная форма (128 бит = 32 hex-цифры = 8 групп по 4): 2001:0db8:85a3:0000:0000:8a2e:0370:7334 Компактная форма (правила сокращения): • Ведущие нули в группе можно опустить: 0db8 → db8 • Подряд идущие группы нулей заменить на :: — но только один раз в адресе 2001:db8:85a3::8a2e:370:7334 Структура (по умолчанию /64 за интерфейсом): Global Routing Prefix 48 бит · префикс провайдера Subnet ID 16 бит · 65536 подсетей Interface ID (IID) 64 бита · уникальный на интерфейсе IID генерируется через SLAAC (EUI-64 или privacy) — без DHCP Типы адресов: 2000::/3 Global Unicast · fc00::/7 Unique Local (≈ RFC1918) · fe80::/10 Link-Local ff00::/8 Multicast · ::1/128 Loopback · ::/0 Default route
В IPv6 нет broadcast — заменён multicast. NDP заменяет ARP. SLAAC заменяет DHCP (опционально).

8. Команды для практики

Linux

$ ip addr show # все интерфейсы и их IP $ ip addr add 10.0.0.5/24 dev eth0 # добавить IP $ ip route show # таблица маршрутизации $ ip route add default via 10.0.0.1 # задать default gateway $ ip -6 addr show # IPv6 адреса $ ipcalc 192.168.10.45/26 # калькулятор подсетей $ sipcalc 10.0.0.0/22 # альтернатива (с splitting)

Cisco

router(config)# interface GigabitEthernet0/0 router(config-if)# ip address 192.168.10.1 255.255.255.0 router(config-if)# no shutdown router(config)# ip route 0.0.0.0 0.0.0.0 192.168.10.254 # default route router# show ip route # таблица маршрутизации router# show ip interface brief # краткая сводка router# show running-config interface gi0/0

9. Частые ошибки в проектировании

сценарий 1 «Назначил /24 на P2P-линк между двумя роутерами» — использовал 2 адреса из 254, остальные 252 пропали. Должно быть /30 (или /31, если поддерживается RFC 3021).
сценарий 2 «Все офисы на /24, гостевая сеть тоже на /24» → тратится огромное адресное пространство. Реально подумай, сколько хостов нужно, и режь под VLSM.
сценарий 3 «Использую 1.0.0.0/8 как приватный, я же видел этот диапазон в DHCP» → 1.0.0.0/8 — публичный диапазон APNIC, 1.1.1.1 — Cloudflare. RFC1918 = 10/8, 172.16/12, 192.168/16. Точка.
сценарий 4 «Хосты не пингуются друг другу в одной подсети» → проверь, что маска одинаковая на всех хостах! 192.168.0.5/24 и 192.168.0.10/25 — это разные подсети, L3-роутинг между ними не сработает без gateway.

10. Чеклист для проектирования адресации

Ключевое за этот урок