У меня проблема с получением ответа фактическим процессом ping, хотя я четко вижу ответ в выводе tcpdump.
Я бегаю по:
Мост создается следующим образом:
sudo ifconfig bridge5 create
sudo ifconfig bridge5 10.0.0.5 netmask 255.255.255.0 up
Интерфейс касания - это тунтап устройство и связано с мостом следующим образом:
sudo ifconfig bridge5 addm tap0
Я без проблем запускаю свою виртуальную машину с помощью qemu и вот что наблюдаю:
Нормальный ping 10.0.0.42
дает мне Request timeout for icmp_seq
, но когда я проверяю вывод tcpdump, я вижу следующее:
$ tcpdump -i bridge5 -vvv
tcpdump: listening on bridge5, link-type EN10MB (Ethernet), capture size 262144 bytes
15:11:40.014240 IP (tos 0x0, ttl 64, id 47005, offset 0, flags [none], proto ICMP (1), length 84, bad cksum 0 (->aedd)!)
10.0.0.5 > 10.0.0.42: ICMP echo request, id 24337, seq 8, length 64
15:11:40.014808 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto ICMP (1), length 118)
10.0.0.42 > 10.0.0.5: ICMP echo reply, id 24337, seq 8, length 98 (wrong icmp cksum af73 (->3b17)!)
Единственное, что я заметил в этом выводе, - это плохая контрольная сумма. Одно и то же решение уже давно работает на Ubuntu, и когда я проверил его, в ответах также была ошибка контрольной суммы icmp.
Есть идеи, что может помешать передаче ответов приложению ping?
WireShark видит пакет перед брандмауэром при приеме. это означает, что брандмауэр или аналогичный продукт фильтруют ваш прием. (ссылка)
неправильная контрольная сумма обычно означает, что разгрузка контрольной суммы tcp включен на nic.
Разгрузка контрольной суммы TCP (много ошибок контрольной суммы)
Есть причины, по которым вы можете увидеть много ошибок контрольной суммы.
Если вы выполняете захват на последней сетевой карте Ethernet, вы можете увидеть много таких «ошибок контрольной суммы». Это связано с тем, что разгрузка контрольной суммы TCP часто реализуется на этих сетевых адаптерах и, следовательно, для пакетов, передаваемых машиной. Контрольная сумма не будет вычисляться до тех пор, пока пакет не будет отправлен аппаратным обеспечением NIC, спустя много времени после того, как ваш инструмент захвата перехватит пакет из сетевого стека.
Поскольку это может сбить с толку и помешать Wireshark повторно собирать сегменты TCP, в этих случаях рекомендуется отключить проверку контрольной суммы.
Чтобы отключить проверку правильности контрольной суммы TCP, перейдите в настройки TCP и снимите флажок для проверки контрольной суммы.