У меня есть две виртуальные машины, одна 192.168.1.233, другая 192.168.1.234.

Сначала у всех есть два маршрута:
Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0

Затем в 192.168.1.233 я запускаю route del -net 192.168.1.0/24 , поэтому у него остается только один маршрут по умолчанию.

Теперь я могу ping 192.168.1.234 из 192.168.1.233, но не могу ping 192.168.1.233 из 192.168.1.234.

Я не совсем понимаю. Кто-нибудь может мне объяснить? СПАСИБО!!!

1 ответ1

0

Я решил это, по крайней мере, частично. При удалении локального маршрута ответный пакет ICMP содержит правильный IP-адрес для ответа, но неверный MAC-адрес. Фактически, MAC-адрес, используемый в этом случае, является адресом маршрутизатора, а не адресом машины проверки связи.

Это поведение (с использованием MAC-адреса маршрутизатора) является правильным, когда компьютер хочет, чтобы маршрутизатор позаботился о пакете для дальнейшей маршрутизации. Например, если вы попытаетесь пропинговать 8.8.8.8 с компьютера без локального маршрута, пакет ICMP будет содержать в качестве пункта назначения MAC-адрес маршрутизатора, который (сам по себе) захватит его и посмотрит, что с ним делать (отправить). это на его стороне на стороне WAN, в этом последнем случае).

Но неверно сформированный ICMP-ответ отправляется маршрутизатору, который не может отправить его на своей стороне глобальной сети, и он не может отправить его предполагаемому получателю, поскольку MAC-адрес не соответствует его IP-адресу.

Следовательно пакет отброшен.

Вы должны оставить свой местный маршрут на месте.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .