Сети
Сеть кажется прозрачной, пока работает, и совершенно непрозрачной, когда ломается. Инженер эксплуатации не проектирует магистрали, но обязан уметь проследить путь пакета: как имя превращается в адрес, как адрес превращается в MAC, куда пакет уходит с хоста и почему firewall его тихо проглотил. Большинство «загадочных» инцидентов — это подмена в /etc/hosts, заблокированный ICMP, исчерпанная таблица NAT или неверная маска подсети, а вовсе не «сеть глючит».
Эта тема разложена по уровням снизу вверх — от кадра и ARP до маршрутизации, NAT и защиты периметра. Мы намеренно называем ловушки, на которых валятся собеседования: SSH на прикладном уровне, а не на транспортном; ARP не ходит через маршрутизаторы; побеждает самый длинный префикс, а не самый короткий; голос идёт по UDP не «потому что быстрее», а потому что поздний повтор бесполезен. Всё обучение — в слоях ниже; здесь только карта.
Карта темы
- Модель OSI — семь уровней как система координат и на каком из них живут коммутатор, маршрутизатор и
SSH. - Ethernet-кадр и устройства — поля кадра,
CRCдля контроля ошибок и разница между L2-коммутатором, L3-коммутатором и маршрутизатором. - Протокол ARP — как хост находит
MACпоIPv4через broadcast в пределах одного сегмента. - Подсети IPv4 — как из длины префикса посчитать число хостов и почему из адресов вычитают два.
- Трёхстороннее рукопожатие TCP — обмен
SYN → SYN-ACK → ACKи синхронизация номеров последовательностей. - TCP против UDP — надёжность и упорядочивание против низкой задержки и почему голос выбирает
UDP. - Разрешение DNS — обход иерархии рекурсивным resolver, роли серверов, кэш по
TTLи транспортUDP/53. - Файл /etc/hosts и порядок разрешения — как
nsswitch.confставит локальный файл передDNSи как это отлаживать. - Путь запроса curl — полный жизненный цикл
curl https://…от$PATHиDNSдоTLSиHTTP. - Проверка доступности порта —
telnet,nc,nmapпротив ложного «pingпрошёл — значит порт открыт». - Выбор next-hop — самый длинный префикс, административная дистанция и разница
RIBиFIB. - NAT, SNAT, DNAT, PAT — переписывание адресов на границе и чем отличается трансляция источника, назначения и портов.
- Динамическая маршрутизация — семейства distance-vector, link-state и path-vector и основы
BGP. - Балансировка нагрузки — round-robin, least-connections, ip-hash и прилипание сессии.
- Соединение FTP — два канала, активный и пассивный режим и дружба с
NAT. - Path MTU Discovery — поиск максимального пакета через
ICMPи чёрная дыра при его блокировке. - AAA и RADIUS/TACACS+ — три A контроля доступа и разница
RADIUSиTACACS+. - Категории DDoS — объёмные, протокольные и прикладные атаки и почему они бьют по разным ресурсам.
Частые ошибки и ловушки
| Ошибка | Последствие |
|---|---|
Ставить SSH на транспортный уровень, раз он поверх TCP | Путаница уровней OSI; SSH — прикладной (L7), TCP — транспорт (L4) |
Считать, что ARP ходит через маршрутизаторы | ARP работает только внутри одного broadcast-домена; за его пределы — L3 |
| Забыть вычесть адрес сети и broadcast в подсети | /25 даёт 126 хостов, а не 128 |
Верить, что ping доказывает открытость порта | ping — это лишь ICMP-достижимость хоста, а не слушающий TCP-порт |
| Думать, что побеждает самый короткий префикс | Пакет идёт по самому длинному (специфичному) совпадению; дефолт — крайний случай |
Менять местами SNAT и DNAT | SNAT переписывает источник, DNAT — назначение; путаница ломает публикацию сервиса |
Считать, что round-robin учитывает нагрузку | Он перебирает серверы по кругу; нагрузку учитывает least-connections |
Блокировать весь ICMP на firewall | Ломается PMTUD: большие пакеты молча пропадают, соединения зависают |
Думать, что голос по UDP — ради гарантированной доставки | Наоборот: поздний повтор бесполезен, важнее низкая задержка |
Путать DDoS (отказ) с кражей данных или считать его одним видом | Один блок IP или правило firewall не остановит распределённую многослойную атаку |
Значение для собеседований
Сети — любимый способ проверить, мыслите ли вы механизмами или заучили определения. Хороший ответ прослеживает путь: «имя → /etc/hosts/DNS → IP → ARP/маршрут → TCP-рукопожатие → TLS → HTTP». Кандидат, который на вопрос «что происходит при curl» рассказывает эту цепочку по шагам, сразу опережает того, кто говорит «ну, отправляется запрос».
Что обычно проверяют:
- Уровни OSI и на каком из них работают коммутатор (L2), маршрутизатор (L3),
SSH(L7). - Быстрый устный расчёт подсети и осознание, что адрес сети и broadcast не назначаются хостам.
- Порядок разрешения имени и почему
pingиnslookupмогут дать разныйIP. - Разницу
TCP/UDP,SNAT/DNAT/PAT, выбор next-hop по длине префикса и административной дистанции.
Типичный неверный ответ: «ping прошёл, значит сервис работает». ping подтверждает лишь ICMP-достижимость хоста; порт может быть закрыт, приложение — упасть, а firewall — резать именно TCP. Проверять доступность порта нужно telnet, nc -zv или nmap.