linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Сеть: L2 / L3/subnetting-cidr

kb/network-l2-l3 ── Сеть: L2 / L3 ── beginner

Subnetting и CIDR

CIDR /N показывает сколько бит из 32 (или 128 для IPv6) - это сеть. /24 = 256 адресов, /30 = 4 (p2p), /16 = 65536. Хост в подсети может напрямую общаться только с хостами с тем же prefix'ом.

view as markdownaka: subnetting, cidr, cidr-notation, ip-subnet

Зачем подсети

В IPv4 32-битный адрес, в IPv6 - 128 бит. Сеть делится на блоки (подсети) чтобы:

  • изолировать broadcast-домен (broadcast-domain)
  • управлять маршрутизацией (агрегация маршрутов)
  • применять security-политики (firewall на границе подсети)
  • выделить адреса разным организациям/отделам

Биты и адреса

Адрес делится на две части: network prefix + host part.

Пример 192.168.1.42/24:

  • /24 = первые 24 бита = network = 192.168.1.0
  • оставшиеся 8 бит = host = 42
192.168.1.42  →  11000000.10101000.00000001.00101010
/24 mask         11111111.11111111.11111111.00000000
network          11000000.10101000.00000001.00000000  = 192.168.1.0
host                                       00101010   = 42

Типичные размеры

CIDRМаскаАдресовЮзабельныхПрименение
/8255.0.0.016M16M-2большая корп., публичный блок
/16255.255.0.065 53665 534дата-центр, VPN
/24255.255.255.0256254стандартная LAN
/29255.255.255.24886малый офис / пара серверов
/30255.255.255.25242point-to-point ссылки
/31255.255.255.25422p2p (RFC 3021, без брода)
/32255.255.255.25511host-route, loopback

«-2» в столбце usable - один адрес уходит на network address (все host-биты в 0), один на broadcast (все в 1).

Зачем -2 (network + broadcast)

Network address (192.168.1.0) - идентификатор подсети, никому не присваивается. Broadcast address (192.168.1.255) - адрес «всем в подсети», тоже не присваивается.

Из 256 адресов в /24 у хостов 254 (.1 - .254). Обычно .1 = шлюз, .255 = broadcast.

Один префикс - один L2-сегмент

Хосты с одним [[ipv4-addressing|IP-prefix'ом]] могут общаться на L2 напрямую (через [[arp|ARP]]). Хосты с разными префиксами обязаны идти через [[default-gateway|шлюз]] - даже если физически в одном кабеле.

Это часто источник «магических» багов: два хоста в 192.168.1.0/24 и 192.168.1.128/25 физически в одной сети, но хост .50 (в /24) считает что .200 в той же подсети, а у .200 (в /25) другая network-mask - не общаются.

VLSM - переменные подсети

Раньше (classful) сети были фиксированы: A=/8, B=/16, C=/24. VLSM (Variable Length Subnet Mask) и CIDR разрешают любую длину.

Пример: дали тебе 10.0.0.0/16 - 65 536 адресов. Делишь:

  • 10.0.0.0/24 - офис 1 (254 хоста)
  • 10.0.1.0/24 - офис 2
  • 10.0.10.0/24 - DMZ
  • 10.0.20.0/24 - VPN-pool
  • 10.0.100.0/30 - p2p ссылка к провайдеру 1
  • 10.0.100.4/30 - p2p ссылка к провайдеру 2

Все эти подсети суммируются в 10.0.0.0/16 для внешнего объявления (один маршрут вместо 6).

Как посчитать в голове

Маска /N означает что (32-N) хост-битов = 2^(32-N) адресов.

/Nхост-битовадресовюзабельно
/30242
/29386
/2841614
/2753230
/2666462
/257128126
/248256254

Для /N где (32-N) % 8 != 0 (например /27) - последний октет шага 256 / 2^(32-N) = 256 / 32 = 8: подсети /27 идут шагами по 8: .0, .32, .64, .96, .128, .160, .192, .224.

Особые блоки RFC 1918 (приватные)

  • 10.0.0.0/8
  • 172.16.0.0/12 (= 172.16.0.0 - 172.31.255.255)
  • 192.168.0.0/16

Эти не маршрутизируются в публичный интернет - используются за NAT.

Также:

  • 127.0.0.0/8 - loopback
  • 169.254.0.0/16 - link-local (когда нет DHCP)
  • 224.0.0.0/4 - multicast
  • 100.64.0.0/10 - CGNAT (мобильные операторы)

IPv6 subnetting

Тот же принцип, только биты другие. Стандарт - /64 на LAN. Корпорации получают /48, провайдеры дают клиенту /56-/60. Подсети IPv6 не считают хостов - 2^64 заведомо хватит.

Когда что-то пошло не так

  • Не пингуется хост в той же сети - проверь маски на обоих хостах, могут не совпадать
  • «сеть переполнена» в /29 - всего 6 usable, выбери больше: /28 или /27
  • Маршруты дублируются - посмотри агрегацию: можно объявить /16 вместо 256 /24
  • DHCP-pool заканчивается - проверь размер подсети (ipcalc), возможно /24 мал, нужен /23

§ команды

bash
ipcalc 192.168.1.42/27

Полный расчёт: network, broadcast, hosts, маска. Удобно для шпаргалки

bash
ip route show

Все маршруты с префиксами - сразу видны размеры подсетей

bash
ip -4 addr show

Адреса с CIDR-нотацией: 'inet 10.0.0.5/24' = ты в /24

bash
ip route get 8.8.8.8

Какая запись маршрута выбрана для конкретного destination - longest prefix match

§ см. также

  • ipv4-addressingIPv4-адресация и CIDRIP-адрес = 32 бита, обычно как `a.b.c.d`. **/N** в конце - длина префикса сети: `/24` = первые 24 бита фиксированы, последние 8 - host'ы (256 адресов).
  • ipv6-basicsIPv6 - адресация и базовые концепцииIPv6 - 128-битные адреса в 8 группах по 16 бит. Link-local fe80::/10 для соседей, global для интернета. SLAAC выдаёт адрес автоматически через Router Advertisement. Neighbor Discovery (NDP) заменяет ARP.
  • default-gatewayDefault gateway - выход из своей сетиIP-адрес роутера в твоей подсети, куда стек шлёт пакеты для всех адресов, которые **не лежат локально**. Один gateway на хост - но в multi-homed сетапах их может быть несколько.
  • routing-tableRouting tableТаблица маршрутизации - список «куда направлять пакеты с таким destination». Самая длинная (longest-prefix) подходящая запись выигрывает.
  • broadcast-domainBroadcast-домен - что это и кто в нём живётГруппа устройств, где L2-фрейм с dst MAC `FF:FF:FF:FF:FF:FF` (broadcast) доходит до всех. Switch расширяет broadcast-домен, router его останавливает.
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки