Назад | Перейти на главную страницу

Почему пакеты ICMP не захватываются на целевом интерфейсе?

У меня настройка сети как на картинке:

Центральный блок - это шлюз (Ubuntu 15.10), который ретранслирует пакеты между различными сетями (на картинке показана только одна - lan0) и Интернет.

Я пока не знаю, почему я не могу пинговать его, и именно поэтому я захватываю трафик. Это не мой вопрос, хотя, если у кого-то есть идея, приветствую. Все интерфейсы принимают весь трафик, и между всеми интерфейсами существует пересылка.

При захвате пакетов, чтобы понять, почему пинг не работает, я провел три теста

  1. пинг от laptop к 192.168.0.10

Пинг идет через, но tcpdump -i int0 icmp не показывает захваченные пакеты

  1. пинг от laptop к 192.168.0.254

Пинг не проходит и tcpdump -i int0 icmp показывает

13:26:28.032635 IP 10.10.10.93 > 192.168.0.254: ICMP echo request, id 1, seq 671, length 40
13:26:32.604606 IP 10.10.10.93 > 192.168.0.254: ICMP echo request, id 1, seq 672, length 40
  1. пинг от laptop к 8.8.8.8

Пинг проходит и tcpdump -i int0 icmp показывает

14:02:52.016081 IP 192.168.0.10 > google-public-dns-a.google.com: ICMP echo request, id 1, seq 749, length 40
14:02:52.029388 IP google-public-dns-a.google.com > 192.168.0.10: ICMP echo reply, id 1, seq 749, length 40

Я понимаю второй случай (по крайней мере, тот факт, что эхо-запрос улавливается).

Почему в первом случае во время пинга пакеты не захватываются?

Почему в третьем случае захват показывает только запрос от 192.168.0.10? Откуда тот laptop? (Думаю, причина та же, что и выше)

Почему в первом случае во время пинга пакеты не захватываются?

Потому что вы захватываете int0, но пакет не отправляется на int0. Ноутбук отправляет его на шлюз через lan0, и шлюз говорит: «192.168.0.10 - эй, это я!» и отправляет ответ обратно на lan0. Ему не нужно пересылать пакет на другой хост в сети 192.168.0, и, следовательно, не нужно отправлять его на int0.

да, int0 маскирует трафик от lan0 в интернет. Также есть DNAT для перенаправления порта на 192.168.0.10 к внутреннему хосту.

Тогда это может объяснить: «Почему в третьем случае захват показывает только запрос от 192.168.0.10?» - запрос от портативного компьютера мог иметь IP-адрес источника, измененный на 192.168.0.10 перед отправкой на int0.