Серия23 частиВиталий Лещенко

Сети для самых маленьких

Серия для тех, кто пишет программы, администрирует серверы или просто хочет понять, что происходит между нажатием Enter в адресной строке и появлением страницы.

У серии один принцип: о каждом протоколе — не только зачем он нужен, но и как он работает. Какие байты идут по проводу, кто на них отвечает, что происходит, когда что-то ломается. Поэтому почти в каждой части есть заголовки пакетов, команды и вывод tcpdump. Чтобы повторять примеры, хватит любой Linux-машины (подойдёт и WSL) с tcpdump и Wireshark на рабочем компьютере.

Порядок — снизу вверх по стеку и затем вширь: сначала основа (модели, Ethernet, Wi-Fi и PPPoE), затем IPv4 с ARP и ICMP, транспорт UDP и TCP, служебные DHCP и DNS, отдельным блоком IPv6 с Neighbor Discovery, SLAAC и DHCPv6, потом VLAN, VXLAN, IPsec с IKEv2, VPN и прокси, маршрутизация с OSPF и BGP и в конце TLS с сертификатами.

  1. Часть 1

    Модели OSI и TCP/IP

    Первая статья серии о сетях с нуля: зачем стек разбит на уровни, модели OSI и TCP/IP, инкапсуляция, кто какие заголовки обрабатывает по пути пакета.

  2. Часть 2

    Ethernet

    Кадр Ethernet по байтам, устройство MAC-адреса, минимальный кадр в 64 байта, таблица адресов коммутатора, дуплекс, витая пара и оптика, петли и STP.

  3. Часть 3

    Wi-Fi

    Чем радио отличается от кабеля: CSMA/CA, каналы и ширина полосы, кадры 802.11, подключение к точке, рукопожатие WPA2 и SAE в WPA3, скрытый узел, роуминг.

  4. Часть 4

    PPPoE

    Зачем провайдеры заворачивают PPP в Ethernet: поиск концентратора PADI, PADO, PADR, PADS, сессия PPP с LCP, PAP, CHAP и IPCP, и откуда MTU 1492.

  5. Часть 5

    IPv4 — адреса, маски и подсети

    Что такое IPv4-адрес и маска, как считать адрес сети и число хостов, как делить подсети, как хост решает, нужен ли шлюз, и какие адреса не ходят в интернет.

  6. Часть 6

    IPv4 — заголовок, маршрутизация и NAT

    Заголовок IPv4 по полям, зачем TTL, выбор маршрута по самому длинному префиксу, фрагментация и почему её избегают, устройство NAT, проброс портов и CGNAT.

  7. Часть 7

    ARP

    Как хост узнаёт MAC-адрес соседа: запрос и ответ ARP, таблица соседей и её состояния, gratuitous ARP, proxy ARP, конфликт адресов и подмена соседа.

  8. Часть 8

    ICMP

    Как устроены сообщения ICMP, что делают ping и traceroute, как работает Path MTU Discovery и что ломается, когда ICMP режут файрволом.

  9. Часть 9

    UDP

    Что транспортный уровень добавляет к IP: восемь байт заголовка UDP, порты и сокеты, что значит «без соединения», UDP за NAT и прямое соединение через NAT.

  10. Часть 10

    TCP

    Как TCP делает из IP надёжный поток: заголовок и номера последовательности, рукопожатие, повторы и SACK, окна и медленный старт, TIME_WAIT, tcpdump.

  11. Часть 11

    DHCPv4

    Как машина без адреса получает адрес, шлюз и DNS: DISCOVER, OFFER, REQUEST, ACK по байтам, опции, аренда, relay, резервирования и два сервера в сети.

  12. Часть 12

    DNS

    Дерево имён и зоны, рекурсивные и авторитативные серверы, путь запроса от стаба до ответа, формат DNS, типы записей, TTL, DNSSEC, DoT и DoH, dig.

  13. Часть 13

    IPv6 — адреса и заголовок

    Как записываются адреса IPv6, типы адресов link-local, ULA, multicast и anycast, заголовок IPv6 и extension headers, фрагментация и почему нет NAT.

  14. Часть 14

    ICMPv6 и Neighbor Discovery

    ICMPv6 как обязательная часть IPv6, Neighbor Discovery вместо ARP, поиск роутера через RA, проверка DAD, MLD, Redirect и почему ICMPv6 нельзя фильтровать.

  15. Часть 15

    SLAAC

    Как хост IPv6 собирает адрес без сервера: префикс из Router Advertisement и идентификатор интерфейса, сроки valid и preferred, флаги A, L, M, O, radvd.

  16. Часть 16

    DHCPv6

    Зачем DHCPv6 при SLAAC, чем он отличается от DHCPv4: DUID, multicast, IA, stateful и stateless, обмен Solicit, Advertise, Request, Reply, prefix delegation.

  17. Часть 17

    VLAN

    Как одна сеть становится несколькими: тег 802.1Q, access и trunk, native VLAN, таблица MAC по VLAN, router on a stick и L3-коммутатор, VLAN hopping, Linux.

  18. Часть 18

    VXLAN

    Зачем VXLAN при VLAN: кадр Ethernet внутри UDP, VNI, VTEP и underlay, flood-and-learn и EVPN, накладные расходы и MTU, облака и Kubernetes, VXLAN на Linux.

  19. Часть 19

    IPsec и IKEv2

    Как IPsec шифрует на сетевом уровне: ESP и AH, режимы, SA и SPI, политики; как IKEv2 договаривается о ключах: обмены, PSK, сертификаты, EAP, NAT-T, MOBIKE.

  20. Часть 20

    VPN и прокси

    Что такое VPN в терминах интерфейсов и маршрутов, полный и раздельный туннель, HTTP CONNECT и SOCKS5, чем прокси отличается от VPN и что видит DPI.

  21. Часть 21

    OSPF

    Зачем динамическая маршрутизация и чем link-state отличается от distance-vector: Hello, соседство, LSA, Дейкстра, DR и BDR, области, FRR на двух роутерах.

  22. Часть 22

    BGP

    Как автономные системы договариваются о маршрутах: сессия BGP, сообщения, атрибуты пути, eBGP и iBGP, route reflector, выбор пути, RPKI, FRR.

  23. Часть 23

    TLS и сертификаты

    Что обещает TLS, рукопожатие TLS 1.3, forward secrecy, сертификаты X.509 и цепочка доверия, удостоверяющие центры, Let's Encrypt и ACME, отзыв и CT.