Recentemente a rede libvirt me causou dores de cabeça - o host perde a conexão quando o libvirt configura uma rota na tabela de roteamento do kernel. Ele costumava funcionar bem, "de repente" parou de funcionar há alguns dias. Eu devo ter feito algo errado, mas não consigo lembrar o que fiz que poderia ter causado os problemas.
Isso é o que eu observei:
# 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
Meu palpite é que o problema está nas regras vnet0 na tabela IP do kernel, mas posso estar errado. Eu sou novo na rede libvirt e linux. Eu posso estar completamente errado. Por favor, aponte isso se eu sou. Obrigado.
Atualizar 2018-04-15: Eu fiz um traceroute
e descobri que todas as conexões de saída estão de fato paradas na entrada padrão de 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
Tags networking libvirt linux