Основы компьютерных сетей
Сети — это «кровеносная система» IT. Без понимания IP, масок, маршрутизации и модели OSI вы не почините даже Wi-Fi в офисе. Этот раздел — исчерпывающий справочник по сетевому стеку: от физического кабеля до прикладных протоколов.
Модель OSI и стек TCP/IP
OSI (Open Systems Interconnection) — теоретическая 7-уровневая модель ISO. На практике Интернет работает на стеке TCP/IP (4 уровня). Знать уровни нужно, чтобы локализовать проблему: «не пингуется» — это сеть (L3), «страница не грузит» — приложение (L7).
Полная модель OSI (7 уровней)
| Уровень | Название | Функция | Примеры протоколов | Примеры устройств |
|---|---|---|---|---|
| L7 | Прикладной (Application) | Взаимодействие с пользователем/ПО | HTTP, HTTPS, DNS, SSH, FTP, SMTP, POP3, IMAP, SNMP, DHCP, NTP | Браузеры, серверы приложений, прокси |
| L6 | Представительский (Presentation) | Кодировки, шифрование, сжатие | TLS/SSL, ASCII, JPEG, MIME, gzip | Библиотеки шифрования, встроен в L7 |
| L5 | Сеансовый (Session) | Управление сессией/диалогом | NetBIOS, RPC, SMB (частично) | Встроен в приложения |
| L4 | Транспортный (Transport) | Доставка сегментов, порты, надёжность | TCP, UDP, SCTP, QUIC | L4-коммутаторы, балансировщики |
| L3 | Сетевой (Network) | Логическая адресация, маршрутизация | IPv4, IPv6, ICMP, ARP, OSPF, BGP, IGMP | Маршрутизаторы, L3-коммутаторы, Firewall (L3) |
| L2 | Канальный (Data Link) | MAC-адресация, кадры, доступ к среде | Ethernet, Wi-Fi (802.11), PPP, VLAN (802.1Q), LACP | Коммутаторы (switch), мосты, точки доступа |
| L1 | Физический (Physical) | Биты по среде, сигналы, разъёмы | Витая пара, оптика, радио, RJ-45, 802.3 | Кабели, коннекторы, хабы, медиаконвертеры, трансиверы |
Стек TCP/IP (4 уровня) и сравнение
| TCP/IP | Соответствие OSI | Примеры |
|---|---|---|
| Прикладной (Application) | L5–L7 | HTTP, DNS, SSH, DHCP |
| Транспортный (Transport) | L4 | TCP, UDP |
| Межсетевой (Internet) | L3 | IP, ICMP, IGMP |
| Канальный (Network Access / Link) | L1–L2 | Ethernet, Wi-Fi, ARP |
IPv4: классы, CIDR, подсети
IPv4 — адрес из 32 бит (4 октета по 0–255), например 192.168.1.50. Маска определяет границу «сеть / хост». CIDR (Classless Inter-Domain Routing) записывает маску как /число — количество единичных битов слева.
Классовая адресация (историческая, до CIDR)
| Класс | Первый октет | Маска по умолч. | Назначение | Сетей / хостов |
|---|---|---|---|---|
| A | 1–126 | /8 | Огромные сети | 128 сетей, ~16.7M хостов |
| B | 128–191 | /16 | Крупные org | 16384 сетей, ~65K хостов |
| C | 192–223 | /24 | Малые сети | 2M сетей, 254 хоста |
| D | 224–239 | — | Multicast | групповая рассылка |
| E | 240–255 | — | Зарезервировано | эксперименты |
Частные (RFC 1918) и специальные диапазоны
| Диапазон | Назначение |
|---|---|
| 10.0.0.0/8 | Частная сеть (класс A) |
| 172.16.0.0/12 | Частная сеть (класс B, 172.16–172.31) |
| 192.168.0.0/16 | Частная сеть (дома/офис) |
| 100.64.0.0/10 | CGNAT — общая адресация провайдера (RFC 6598) |
| 127.0.0.0/8 | localhost (loopback) |
| 169.254.0.0/16 | Link-local (APIPA, когда нет DHCP) |
| 224.0.0.0/4 | Multicast |
| 8.8.8.8 / 1.1.1.1 | Публичные DNS-резолверы |
Подсети: маски /24, /25, /22 — формулы и расчёт
Формулы:
- Размер подсети (всего адресов) =
2^(32 − prefix). - Доступно хостов =
2^(32 − prefix) − 2(вычитаем сетевой и broadcast-адреса). - Количество подсетей при делении блока =
2^(новый_prefix − старый_prefix).
| Маска | Префикс | Всего адресов | Хостов | Пример сети / broadcast |
|---|---|---|---|---|
| 255.255.255.0 | /24 | 256 | 254 | 192.168.1.0 → 192.168.1.255 |
| 255.255.255.128 | /25 | 128 | 126 | .0→.127 и .128→.255 |
| 255.255.252.0 | /22 | 1024 | 1022 | 192.168.0.0 → 192.168.3.255 |
| 255.255.254.0 | /23 | 512 | 510 | 192.168.0.0 → 192.168.1.255 |
| 255.255.255.252 | /30 | 4 | 2 | точка-точка (link) |
| 255.255.255.254 | /31 | 2 | 0/2* | только p2p (RFC 3021) |
| 255.255.255.255 | /32 | 1 | 1 | хост/loopback-интерфейс |
Пример расчёта вручную
Дан IP 192.168.10.130 с маской /25 (255.255.255.128).
Маска /25: 11111111.11111111.11111111.10000000 = 255.255.255.128
Бит хоста: 7 бит → 2^7 = 128 адресов в блоке.
Сетевые адреса /25 делят /24 на две половины:
.0 – .127 (первая подсеть)
.128 – .255 (вторая подсеть)
IP 192.168.10.130 попадает во ВТОРУЮ:
Network: 192.168.10.128
First host: 192.168.10.129
Last host: 192.168.10.254
Broadcast: 192.168.10.255
Пример для /22: сеть 10.0.4.0/22 (маска 255.255.252.0).
Маска /22: последний октет 252 = 11111100 → 10 заимствованных бит у 4-го октета.
Размер = 2^(32-22) = 1024 адреса.
Границы выравниваются по шагу 4 в 3-м октете: 0, 4, 8, 12 ...
10.0.0.0/22 → .0.0 – .3.255
10.0.4.0/22 → .4.0 – .7.255 ← наша
10.0.8.0/22 → .8.0 – .11.255
Хосты: 10.0.4.1 ... 10.0.7.254 (1022 шт), broadcast 10.0.7.255.
VLSM (Variable Length Subnet Masking)
Разные маски для разных подсетей — чтобы не тратить адреса. Пример: нужно 50, 20 и 10 хостов из блока 192.168.1.0/24.
192.168.1.0/26 (62 хоста) → для 50 хостов (.0–.63)
192.168.1.64/27 (30 хостов) → для 20 хостов (.64–.95)
192.168.1.96/28 (14 хостов) → для 10 хостов (.96–.111)
Остаток .112–.255 можно отдать дальше — экономия против трёх /24.
Суперсети (суммирование маршрутов, route aggregation)
Объединение нескольких подсетей в одну большую для упрощения таблицы маршрутов. Пример: 172.16.0.0/24 … 172.16.3.0/24 → 172.16.0.0/22.
172.16.0.0/24
172.16.1.0/24
172.16.2.0/24
172.16.3.0/24 → сумма 172.16.0.0/22 (общие 22 старших бита)
IPv6
IPv6 — 128 бит (в 4 раза длиннее 32 бит IPv4). Пишется 8 групп по 16 бит (hextet), разделённых двоеточиями, в шестнадцатеричном виде.
Полный: 2001:0db8:0000:0000:0000:ff00:0042:8329
Сокращённый:
- убираем ведущие нули в каждой группе: 2001:db8:0:0:0:ff00:42:8329
- одну самую длинную цепочку нулевых групп заменяем на :: : 2001:db8::ff00:42:8329
:: можно использовать только ОДИН раз в адресе (иначе потеряется количество пропущенных групп). Для IPv4-совместимости есть синтаксис ::ffff:192.168.1.1 (IPv4-mapped).Структура адреса
Обычно: 64 бита префикс сети + 64 бита идентификатор интерфейса (IID). IID часто формируется из MAC через EUI-64 или генерируется случайно (RFC 4941, privacy addresses).
Типы адресов
| Тип | Префикс | Назначение |
|---|---|---|
| Link-local | fe80::/10 (на практике fe80::/64) | Только в пределах линка, не маршрутизируется. Автоконфиг. обязательно на каждом интерфейсе |
| Global unicast | 2000::/3 (например 2001:db8::/32 — документ.) | Публичные, маршрутизируемые в Интернете |
| ULA (Unique Local) | fc00::/7, используется fd00::/8 | Аналог RFC1918, только внутри org, не в Интернет |
| Loopback | ::1/128 | Сам интерфейс (аналог 127.0.0.1) |
| Unspecified | :: | «адрес не задан» |
| Multicast | ff00::/8 | Групповая рассылка (заменяет broadcast) |
SLAAC (Stateless Address Autoconfiguration)
Хост сам строит адрес: берёт префикс из Router Advertisement (RA) и добавляет свой IID. Без состояния (серверу не нужно помнить аренды), в отличие от DHCPv6 (stateful). Флаги в RA: M (Managed, использовать DHCPv6 для адреса), O (Other, DHCPv6 только для опций вроде DNS).
NDP вместо ARP
В IPv6 нет ARP — его заменяет NDP (Neighbor Discovery Protocol) поверх ICMPv6:
| Сообщение NDP | Аналог в IPv4 | Назначение |
|---|---|---|
| Neighbor Solicitation (NS) | ARP request | «кто такой MAC у этого IPv6?» |
| Neighbor Advertisement (NA) | ARP reply | Ответ с MAC |
| Router Solicitation (RS) | — | Хост просит RA |
| Router Advertisement (RA) | — | Роутер сообщает префикс/флаги (SLAAC) |
| Redirect | ICMP redirect | Перенаправить на лучший шлюз |
Ethernet и MAC-адреса
MAC (Media Access Control) — физический адрес канального уровня, 48 бит (12 hex-цифр), обычно пишется 00:1A:2B:3C:4D:5E.
- OUI (Organizationally Unique Identifier) — первые 3 байта (24 бита), назначаются IEEE и указывают вендора (например, 00:1A:2B — Cisco).
- Последние 3 байта — уникальный номер NIC, назначаемый вендором.
- Локально администрируемый бит (второй младший бит первого октета) — MAC задан вручную (например, в виртуалках).
- Мультикаст-бит (младший бит первого октета) — групповой адрес.
Структура кадра Ethernet (IEEE 802.3)
| Preamble (7) | SFD (1) | Dst MAC (6) | Src MAC (6) | EtherType (2) | Payload (46–1500) | FCS (4) |
EtherType указывает протокол верхнего уровня: 0x0800 = IPv4, 0x86DD = IPv6, 0x0806 = ARP, 0x8100 = VLAN (802.1Q).
MTU по умолчанию = 1500 байт полезной нагрузки (jumbo frames — до 9000).
Коммутатор (switch) vs хаб (hub)
| Свойство | Hub (хаб) | Switch (коммутатор) |
|---|---|---|
| Уровень | L1 (физический) | L2 (канальный, часто L3) |
| Передача | Копирует кадр ВО ВСЕ порты | Только в порт получателя (по MAC-таблице) |
| Коллизии | Один collision domain на все | Отдельный домен на порт |
| Безопасность | Весь трафик виден всем | Изолирован per-port |
Маршрутизация
Маршрутизатор соединяет разные сети (L3). Решение о пересылке принимается по таблице маршрутов — выбирается наиболее точное (longest prefix match) совпадение.
Таблица маршрутов (Linux: ip route)
$ ip route
default via 192.168.1.1 dev eth0 proto static
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.50
10.0.0.0/24 via 192.168.1.254 dev eth0 metric 100
Поля: назначение (dest) | шлюз (via/gateway) | выходной интерфейс (dev) | метрика (metric) | источник (src)
Шлюз по умолчанию и статические маршруты
# Шлюз по умолчанию (0.0.0.0/0 — «всё остальное»)
ip route add default via 192.168.1.1
# Статический маршрут до удалённой сети
ip route add 10.0.0.0/24 via 192.168.1.254
# Маршрут через интерфейс (point-to-point)
ip route add 172.16.0.0/16 dev tun0
# Удалить
ip route del 10.0.0.0/24
Метрики
Метрика — «стоимость» маршрута. При нескольких маршрутах до одной сети ОС/протокол выбирает маршрут с меньшей метрикой. Используется для резервирования (failover) и балансировки.
Протоколы маршрутизации (кратко)
| Протокол | Тип | Суть | Где применяется |
|---|---|---|---|
| OSPF (RFC 2328) | IGP, link-state | Каждый роутер строит карту топологии, считает кратчайший путь (алгоритм Дейкстры). Зоны, area 0 — магистраль | Внутри одной организации/AS |
| BGP (RFC 4271) | EGP, path-vector | Обмен маршрутами между автономными системами (ASN). Учитывает политику и атрибуты (AS-PATH, NEXT-HOP) | Между провайдерами / Интернет |
| RIP | IGP, distance-vector | Устаревший, считает хопы (макс 15) | Малые сети, редко |
| IS-IS, EIGRP | IGP | Альтернативы OSPF / Cisco-proprietary | Крупные сети, провайдеры |
TCP vs UDP и транспорт
| Свойство | TCP | UDP |
|---|---|---|
| Установление соединения | Да, 3-way handshake | Нет (connectionless) |
| Надёжность | Гарантия доставки, порядка, без дублей | Нет гарантий («fire and forget») |
| Управление потоком | Скользящее окно (window) | Нет |
| Контроль перегрузки | Да (slow start, congestion avoidance) | Нет |
| Накладные расходы | Выше (заголовок 20+ байт) | Ниже (заголовок 8 байт) |
| Примеры | HTTP, HTTPS, SSH, FTP, SMTP, DB | DNS, DHCP, VoIP, видео, игры, SNMP |
TCP 3-way handshake
Клиент Сервер
── SYN ───────────────────▶ (seq=x)
◀──────── SYN-ACK ───────── (seq=y, ack=x+1)
── ACK ───────────────────▶ (seq=x+1, ack=y+1)
Соединение установлено → пошли данные
Завершение: FIN → ACK → FIN → ACK (4-way, или FIN-ACK/FIN-ACK)
Окно, порты и сокеты
- Окно (window size) в заголовке TCP — сколько байт получатель готов принять без подтверждения (flow control). Растёт/сжимается динамически.
- Порты: 0–1023 — well-known (system), 1024–49151 — registered, 49152–65535 — ephemeral/dynamic (клиентские).
- Сокет = пара (IP-адрес : порт). Полный идентификатор соединения = (src IP, src port, dst IP, dst port).
Примеры портов: 22 SSH, 25/587 SMTP, 53 DNS, 80 HTTP, 443 HTTPS,
110 POP3, 143 IMAP, 3306 MySQL, 5432 PostgreSQL, 3389 RDP, 161 SNMP
NAT и PAT
NAT (Network Address Translation) — подмена IP-адреса в заголовке пакета. Позволяет многим устройствам с частными адресами выходить в Интернет через один публичный.
| Вид | Что делает | Пример |
|---|---|---|
| SNAT (Source NAT) | Меняет SRC-IP исходящего пакета | Домашний роутер: 192.168.1.5 → 85.21.x.x |
| MASQUERADE | SNAT с динамическим внешним IP (для PPPoE/WAN) | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
| DNAT (Destination NAT) | Меняет DST-IP входящего пакета (проброс порта) | Проброс 85.21.x.x:8080 → 192.168.1.10:80 |
| PAT / NAPT (overload) | Многие внутренние IP → один внешний, различие по порту | Вся локалка в 1 публичный IP |
# iptables примеры
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE # SNAT/PAT наружу
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to 192.168.1.10:80
echo 1 > /proc/sys/net/ipv4/ip_forward # включить форвардинг (!)
CGNAT (Carrier-Grade NAT, 100.64.0.0/10)
Провайдеры, исчерпав публичные IPv4, сажают абонентов за 100.64.0.0/10 (RFC 6598) между CPE и CGNAT-оборудованием. Это не RFC1918 и не публичный диапазон — его нельзя использовать внутри своей сети (риск коллизий). Признак «за CGNAT»: WAN-IP роутера в 100.64.x.x, а публичный IP другой → проброс портов не сработает, нужен VPN/tunnel (например, WireGuard) или IPv6.
DNS — глубоко
DNS (Domain Name System) переводит имена (example.com) в IP. Работает поверх UDP/53 (основной) и TCP/53 (зонные трансферы, большие ответы).
Резолвер и рекурсия
- Стуб-резолвер (на хосте, /etc/resolv.conf) — перенаправляет запросы настроенному серверу.
- Рекурсивный резолвер (напр. 8.8.8.8, 1.1.1.1) — сам идёт по цепочке: корневой (.) → TLD (.com) → авторитетный (example.com) и возвращает результат.
- Авторитетный сервер — хранит реальные записи зоны.
- Рекурсия — флаг RD (Recursion Desired) в запросе; публичные резолверы её разрешают, авторитетные — обычно нет.
Типы записей
| Тип | Назначение | Пример |
|---|---|---|
| A | Имя → IPv4 | example.com. 300 IN A 93.184.216.34 |
| AAAA | Имя → IPv6 | example.com. 300 IN AAAA 2606:2800:220:1::248 |
| CNAME | Псевдоним → другое имя | www IN CNAME example.com. |
| MX | Почтовый сервер (с приоритетом) | @ IN MX 10 mail.example.com. |
| NS | Авторитетные NS зоны | example.com. IN NS ns1.example.com. |
| SOA | Старт зоны: первичный NS, email, serial, таймеры | @ IN SOA ns1.example.com. admin.example.com. (2026010101 7200 3600 1209600 3600) |
| TXT | Произвольный текст (SPF, DKIM, проверки) | @ IN TXT "v=spf1 include:_spf.google.com ~all" |
| PTR | Обратный: IP → имя | 34.216.184.93.in-addr.arpa. IN PTR example.com. |
| SRV | Служба: хост+порт (LDAP, SIP, _xmpp) | _sip._tcp IN SRV 10 60 5060 srv.example.com. |
| CAA | Какие CA могут выдавать сертификаты | @ IN CAA 0 issue "letsencrypt.org" |
TTL, зоны, обратный DNS
- TTL (Time To Live, сек) — сколько кэшировать запись. Маленький TTL (60–300) удобен при миграциях, большой (3600+) снижает нагрузку.
- Зона — часть дерева DNS под управлением одного администратора. Прямая зона (имя→IP) и обратная (reverse) зона (IP→имя, PTR), для IPv4 в домене
in-addr.arpa, для IPv6 —ip6.arpa. - SOA serial — при изменении зоны serial надо увеличить, иначе вторичные NS не заберут обновление.
DNSSEC и шифрование (DoH/DoT)
| Технология | Суть | Порт |
|---|---|---|
| DNSSEC | Подписи RRSIG/DNSKEY/DS — защита от подмены ответа (целостность, НЕ конфиденциальность) | 53 |
| DoT (DNS over TLS) | DNS в TLS-туннеле между клиентом и резолвером | 853 |
| DoH (DNS over HTTPS) | DNS поверх HTTPS (трафик неотличим от веба) | 443 |
# Проверка вручную
dig example.com A +short
dig example.com AAAA
dig -x 93.184.216.34 # обратный (PTR)
dig example.com MX
dig +dnssec example.com # покажет RRSIG, если подписано
dig @1.1.1.1 example.com # запрос к конкретному резолверу
DHCP — DORA
DHCP раздаёт IP-адреса и сетевые параметры автоматически. Протокол: UDP/67 (сервер), UDP/68 (клиент).
Процесс DORA
Клиент Сервер
DHCPDISCOVER (broadcast) ───────▶ поиск сервера
◀─────── DHCPOFFER (broadcast) предложение IP+опций
DHCPREQUEST (broadcast) ─────────▶ «хочу этот адрес»
◀──────── DHCPACK (broadcast) подтверждение + lease
- Аренда (lease) — срок (TTL), после половины клиент пытается продлить ( DHCPREQUEST), по истечении — освобождает адрес.
- Опции DHCP: 3 = router (шлюз), 6 = DNS-серверы, 15 = domain name, 51 = lease time, 54 = DHCP server id, 66 = TFTP server (PXE boot), 67 = bootfile name (PXE).
- Резервирование (reservation) — привязка фиксированного IP к MAC (динамически, но всегда один адрес для принтера/сервера).
- Relay / helper —
ip helper-address(Cisco) /dhcrelay(Linux): пересылает broadcasts DHCP между подсетями к серверу, т.к. broadcast не пересекает роутер.
Коммутация, VLAN, STP, LACP
VLAN (IEEE 802.1Q)
VLAN логически разделяет один коммутатор на несколько независимых сетей. В кадр добавляется 4-байтовый тег 802.1Q (EtherType 0x8100, 12-битный VLAN ID = 0–4095, доступно 1–4094, 0 и 4095 зарезервированы).
- Access-порт (нетегированный) — принадлежит одному VLAN, клиенты не видят тега.
- Trunk-порт (тегированный) — пропускает много VLAN, помечая кадры тегами. Native VLAN — нетегированный VLAN на транке (обычно 1).
- Inter-VLAN routing — маршрутизация между VLAN через L3-коммутатор (SVI: interface vlan 10) или внешний роутер («router on a stick» с sub-интерфейсами).
# Cisco-стиль
switch(config)# vlan 10
switch(config)# int gi0/1
switch(config-if)# switchport mode access
switch(config-if)# switchport access vlan 10
switch(config-if)# int gi0/24
switch(config-if)# switchport mode trunk
switch(config-if)# switchport trunk allowed vlan 10,20
STP (Spanning Tree Protocol, 802.1D) и RSTP (802.1w)
Блокирует петли (loops) при избыточных связях, выбирая root bridge и переводя избыточные порты в состояние blocking. RSTP быстрее сходится (секунды против минут). Защиты: BPDU Guard, Root Guard.
LACP (IEEE 802.3ad / 802.1AX)
Link Aggregation — объединяет несколько физических линков в один логический (LAG) для увеличения полосы и отказоустойчивости. Режимы: active/passive (LACP) или on (статический, без LACP). Пакеты распределяются по хешу (MAC/IP/порт), НЕ «балансируются побайтово».
# Linux: bondинг через iproute2 / teamd (пример team)
teamd -c '{"runner":{"name":"lacp"}}' -d -t team0
ip link set eth0 master team0
ip link set eth1 master team0
Port Security
Ограничивает количество разрешённых MAC на порту (sticky MAC) и защищает от подмены. Действия при нарушении: shutdown (порт в err-disable), restrict (дроп + лог), protect (тихий дроп).
Wi-Fi (стандарты IEEE 802.11)
| Стандарт | Год | Диапазон | Макс. скорость* | Ширина канала | Особенности |
|---|---|---|---|---|---|
| 802.11a | 1999 | 5 ГГц | 54 Мбит/с | 20 МГц | Меньше помех, меньше радиус |
| 802.11b | 1999 | 2.4 ГГц | 11 Мбит/с | 20 МГц | Дальше, больше помех |
| 802.11g | 2003 | 2.4 ГГц | 54 Мбит/с | 20 МГц | Совместим с b |
| 802.11n (Wi-Fi 4) | 2009 | 2.4/5 ГГц | 600 Мбит/с | 20/40 МГц | MIMO, 4 потока |
| 802.11ac (Wi-Fi 5) | 2013 | 5 ГГц | ≈3.5 Гбит/с | 20/40/80/160 МГц | MU-MIMO, только 5 ГГц |
| 802.11ax (Wi-Fi 6/6E) | 2019/2020 | 2.4/5/6 ГГц | ≈9.6 Гбит/с | 20/40/80/160 МГц | OFDMA, TWT, 6 ГГц (6E) |
| 802.11be (Wi-Fi 7) | 2024 | 2.4/5/6 ГГц | до ≈46 Гбит/с | до 320 МГц | MLO (мультилинк), 4K-QAM, preamble puncturing |
* — теоретический максимум PHY; реальная пропускная способность ниже.
Диапазоны и каналы
- 2.4 ГГц: каналы 1–13 (Европа/РФ), ширина 20/40 МГц. Только 3 неперекрывающихся канала (1, 6, 11). Дальше, но тесно (Bluetooth, микроволны).
- 5 ГГц: каналы 36–165, ширина до 160 МГц. Меньше помех, короче радиус, хуже сквозь стены.
- 6 ГГц (Wi-Fi 6E/7): до 320 МГц, только для новых устройств, нет legacy-трафика → чище эфир.
Безопасность: WPA2 vs WPA3
| WPA2 (2004) | WPA3 (2018) | |
|---|---|---|
| Шифр | CCMP/AES (TKIP устарел) | AES + обязательный PMF (Protected Management Frames) |
| Аутентификация | PSK / 802.1X (Enterprise) | SAE (Simultaneous Authentication of Equals) в Personal |
| Защита от взлома по словарю | Слабая (WPA2-PSK brute-force) | Сильная (SAE устойчив к off-line словарю) |
| Корпоративный | WPA2-Enterprise (802.1X/EAP) | WPA3-Enterprise с опц. 192-битным модулем (GCMP-256) |
Mesh и роуминг
- Mesh — ячеистая сеть из точек доступа, где узлы соединяются друг с другом (backhaul), расширяя покрытие без проводов.
- Роуминг — бесшовный переход клиента между AP. Стандарты: 802.11k (список соседей), 802.11v (управление/BNM), 802.11r (Fast BSS Transition, FT) — ускоряет повторное 4-way handshake при смене AP.
VPN — сравнение и выбор
| Решение | Транспорт | Плюсы | Минусы | Когда использовать |
|---|---|---|---|---|
| IPsec (IKEv2) | ESP (IP 50) / UDP 500 + 4500 (NAT-T) | Стандарт, встроен в ОС, стабилен при смене сети, site-to-site | Сложная настройка, проблемы с NAT (нужен NAT-T) | Site-to-site между офисами, встроенный клиент в телефонах/ОС |
| WireGuard | UDP (один порт, напр. 51820) | Крошечный код, очень быстрый, простая настройка (публичные ключи), лёгкий в аудите | Меньше «корпоративных» фич (нет встроенного 2FA/центр. управления из коробки) | Современный remote access и site-to-site, замена OpenVPN/IPsec «для своих» |
| OpenVPN | UDP или TCP (чаще 1194) | Гибкий, проходит даже через прокси/HTTP-инспекцию (TCP), зрелый, много фич | Медленнее WireGuard, больше кода, сложнее тюнинг | Когда нужно пробиться через строгие файрволы (TCP/443), legacy-совместимость |
Диагностика сети (инструментарий)
| Утилита | Назначение | Пример |
|---|---|---|
| ping | Проверка достижимости (ICMP echo) | ping -c 4 8.8.8.8 |
| traceroute / tracert | Путь пакетов (TTL-зондирование) | traceroute -I 8.8.8.8 / tracert 8.8.8.8 |
| mtr | Трассировка + live-статистика потерь | mtr -n 8.8.8.8 |
| tcpdump | Захват/анализ пакетов в CLI | tcpdump -i eth0 -n 'port 53' |
| Wireshark | Глубокий GUI-анализатор (pcap) | захват → фильтр http.request |
| iperf3 | Замер пропускной способности | сервер iperf3 -s, клиент iperf3 -c srv -t 10 |
| nmap | Сканирование портов/хостов | nmap -sV -p- 192.168.1.0/24 |
| dig / nslookup | DNS-запросы | dig A example.com / nslookup example.com |
| ss | Сокеты/порты (замена netstat) | ss -tunlp |
| ethtool | Параметры Ethernet-интерфейса | ethtool eth0, ethtool -i eth0 (драйвер) |
| ip (iproute2) | Адреса, маршруты, линки | ip -br addr, ip route, ip -s link |
# Классический набор проверки «нет интернета»
ip -br addr # есть ли IP на интерфейсе
ip route | grep default # задан ли шлюз
ping -c 3 192.168.1.1 # пинг шлюза (локалка L2/L3)
ping -c 3 8.8.8.8 # пинг внешнего (NAT/внешка)
ping -c 3 google.com # резолвится ли DNS
ss -tunlp | grep :443 # слушает ли сервис порт
tcpdump -n icmp # смотрим ли мы ICMP вживую
Методология устранения неполадок
Два основных подхода — выбирайте по ситуации.
Снизу вверх (bottom-up, по OSI)
- L1 Физика: горит ли линк (лампочка), обжат ли кабель, не повреждён ли, правильный ли SFP/оптика.
- L2 Канал: виден ли MAC соседа (
arp -n,bridge fdb), нет ли loop (STP), правильный ли VLAN/транк. - L3 Сеть: есть ли IP и шлюз (
ip addr,ip route), ping шлюза, ping внешнего, не блокирует ли файрвол. - L4 Транспорт: открыт ли порт (
ss -tunlp,nmap), не режет ли MTU (PMTU black hole). - L7 Приложение: работает ли сервис, правильна ли конфигурация, логи (
journalctl,/var/log).
Сверху вниз (top-down)
Начинаем с симптома на уровне приложения и спускаемся, если выше всё ОК. Удобно, когда проблема очевидно в одной зоне (например, «браузер не открывает сайт, но ping есть» — сразу к L7/DNS).