В последнее время работа в сети libvirt вызывает у меня головную боль - хост теряет соединение, когда libvirt устанавливает маршрут в таблице маршрутизации ядра. Раньше работал нормально, "вдруг" перестал работать несколько дней назад. Должно быть, я сделал что-то не так, но я не могу вспомнить, что я сделал, что могло вызвать проблемы.
Вот что я заметил:
# libvirtd --version
3.0.0
# uname -a
Linux cbpp 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u2 (2018-02-21) x86_64 GNU/Linux
# # Before VM starts
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.43.1 0.0.0.0 UG 600 0 0 wlxe8de271c3ce3
192.168.43.0 0.0.0.0 255.255.255.0 U 600 0 0 wlxe8de271c3ce3
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 vboxnet0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
# # After VM starts
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 0.0.0.0 0.0.0.0 U 0 0 0 vnet0
default 192.168.43.1 0.0.0.0 UG 600 0 0 wlxe8de271c3ce3
link-local 0.0.0.0 255.255.0.0 U 0 0 0 vnet0
192.168.43.0 0.0.0.0 255.255.255.0 U 600 0 0 wlxe8de271c3ce3
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 vboxnet0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Я предполагаю, что проблема заключается в правилах vnet0 в таблице IP-адресов ядра, но я могу ошибаться. Я новичок в сетях libvirt и linux. Я могу быть совершенно не прав. Пожалуйста, укажите это, если я. Благодарю.
Обновление 2018-04-15: я выполнил traceroute
и обнаружил, что все исходящие соединения действительно остановлены в записи по умолчанию в vnet0
:
# # After VM starts
# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 cbpp.local (169.254.27.41) 3079.602 ms !H 3079.540 ms !H 3079.522 ms !H