← Back to notes

Сетевые основы: подсети, MAC,
DNS, DHCP, NAT

2025-10-22


Подсети и маски IPv4

IPv4-адрес — 32 бита (RFC 791). Маска подсети делит его на сетевой префикс и host-часть. Применяется побитовое AND между адресом и маской.

IP:    192.168.10.15   11000000.10101000.00001010.00001111
Mask:  255.255.255.0   11111111.11111111.11111111.00000000
Net:   192.168.10.0    11000000.10101000.00001010.00000000

Адрес 192.168.10.15 принадлежит сети 192.168.10.0/24. Цифра после / — длина префикса (CIDR, RFC 4632).

CIDR и VLSM

  • CIDR (RFC 4632) — бесклассовая маршрутизация, заменила классы A/B/C.
  • VLSM — переменная длина маски, разные подсети внутри одного блока.
  • /31 — point-to-point линки (RFC 3021), /32 — host route.
  • Агрегирование префиксов уменьшает таблицы маршрутизации.

cidr

Зарезервированные адреса в /24

В /31 и /32 host/broadcast не выделяются.


Шлюз и маршрутизация

Default gateway — IP роутера в той же подсети. Логика отправки пакета:

  1. Назначение в той же подсети (определяется маской) → ARP по IP-получателю → отправка кадра напрямую.
  2. Назначение вне подсети → ARP по IP шлюза → кадр уходит на gateway, который маршрутизирует пакет дальше.
ip route add default via 192.168.10.1
ip route show
# default via 192.168.10.1 dev eth0
# 192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.15

MAC и ARP

MAC-адрес — 48-битный идентификатор L2-интерфейса (00:1A:2B:3C:4D:5E).

ARP (RFC 826) сопоставляет IPv4 с MAC внутри L2-сегмента:

  1. Узел шлёт broadcast ARP request who-has <IP>.
  2. Владелец IP отвечает unicast ARP reply со своим MAC.
  3. Ответ кэшируется в neighbor table.
ip neigh show

В IPv6 функция ARP заменена на NDP (RFC 4861).


DNS — записи

DNS (RFC 1034/1035) — иерархическая система имён, порт 53 UDP/TCP.

dig example.com
dig example.com MX

Подробнее — в отдельной заметке по DNS.


DHCP

DHCP (RFC 2131) выдаёт IP, маску, шлюз, DNS-серверы. Обмен по UDP-портам 67 (server) и 68 (client). Стадии DORA: Discover → Offer → Request → Ack.

Для IPv6 — DHCPv6 (RFC 8415) или SLAAC (RFC 4862).


NAT и PAT

NAT (RFC 3022) подменяет адреса. PAT/NAPT — разделение по портам, один публичный IP на множество внутренних:

192.168.1.10:52345  198.51.100.10:40001  203.0.113.5:80
192.168.1.11:52346  198.51.100.10:40002  203.0.113.5:80
sudo iptables -t nat -L -n -v

Сводка


Источники

Сетевые основы: подсети, MAC, DNS, DHCP, NAT | Aleksandr Suprun