awesome-everything EN
↑ Обратно к восхождению

Сети и протоколы

IP-пакеты: чтение дампов и трейсов

Суть Читай реальные packet-дампы, route-таблицы и вывод traceroute; декодируй header, предскажи решение forwarding и выбери фикс с наибольшим рычагом.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 14 min

Packet-дампы, route-таблицы и вывод traceroute — это место, где реально диагностируются проблемы на уровне IP. Прочитай каждый, разберись, что значат байты и колонки, затем выбери решение, которое senior-инженер сделает первым.

Цель

Отработай петлю каждого инцидента с routing или path-MTU: декодируй header или таблицу перед глазами, предскажи поведение и возьмись за фикс, который не зависит от сигнала, который ты не можешь гарантировать.

Сниппет 1 — декодируй IPv4 header

Захват tcpdump -X показывает первые 20 байт IPv4-packet:

45 00 00 3c 1c 46 40 00 28 06 a6 ec c0 a8 00 0a 5d b8 d8 22
байт 0:  45        -> version 4, IHL 5 (5 * 4 = 20-байтный header)
байт 8:  28        -> TTL = 0x28 = 40
байт 9:  06        -> protocol = 6
байты 12-15: c0 a8 00 0a -> source 192.168.0.10
байты 16-19: 5d b8 d8 22 -> destination 93.184.216.34
Викторина

Из этого header: какой протокол L4, какой TTL, и о чём значение TTL = 40 скорее всего говорит о пути packet до этого момента?

Сниппет 2 — route-таблица

$ ip route show
default via 203.0.113.1 dev eth0
10.0.0.0/8 via 10.4.0.1 dev eth1
10.4.0.0/16 via 10.4.0.1 dev eth1
10.4.2.0/24 dev eth2 scope link
Викторина

Приходит packet для 10.4.2.9. Какая строка его пересылает и какая обработает packet для 8.8.8.8?

Сниппет 3 — traceroute

$ traceroute -n example.com
 1  192.168.1.1      0.9 ms
 2  203.0.113.1      8.4 ms
 3  * * *
 4  198.51.100.7    24.1 ms
 5  93.184.216.34   71.2 ms
Викторина

На hop 3 три звёздочки, а hop 4 и 5 отвечают нормально. Что происходит на hop 3 и сломан ли путь?

Сниппет 4 — MSS clamping на gateway

# VPN/PPPoE gateway, packet зависают на больших передачах
# рассматриваемое правило iptables:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
  -j TCPMSS --clamp-mss-to-pmtu
Викторина

Большие передачи через этот gateway зависают, мелкие проходят. Что делает это правило и почему оно лучше, чем просто разблокировать ICMP?

Итог

Каждый инцидент на уровне IP читается в байтах и колонках: первый ниббл IPv4-header даёт version и длину, байт 8 — это TTL (счётчик hop, а не часы), байт 9 — protocol L4; route-таблица разрешается по longest-prefix match с default route как последним резервом; звёздочки traceroute обычно значат hop, скрывающий ICMP, а не сломанный путь; а правило MSS-clamp чинит зависания path-MTU без опоры на ICMP. Декодируй то, что перед тобой, предскажи поведение, затем чини причину — а не симптом.

Продолжить восхождение ↑IP-пакеты: трассируй, декодируй и почини path-MTU black hole
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.