Olá pessoal, tudo bem?
Há alguns meses, tenho enfrentado um problema quando eu uso a VM no meu
notebook.
Em parte, sei o que está acontecendo, mas não sei como resolver.

Eu uso um notebook com uma conexão wireless ao roteador.
Quando eu uso a libvirt para instalar e executar VMs nele, o host perde
alguma conectividade com a Internet, e mesmo com os outros computadores na
rede (muito embora, eu seja capaz de acessar este mesmo notebook por meio
de ssh partindo de outro computador. na rede).

Descobri que isto acontece porque a interface inet0 (inet1, inet2...) que
sobe cada vez que eu ligo a VM é configurada com link-local address (IPs da
rede 169.254.0.0/16), e em seguida, a tabela de roteamento no notebook é
alterada.

Se eu retiro a configuração de IP da interface inet0, eu volto a ter
conectividade com a rede local e com a Internet, mas eu gostaria de
encontrar uma solução para isto.

Vou mostrar o resultado dos comandos "ip a" e "ip r" antes e depois da VM
subir.

$ ip a # Antes da VM subir:
 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UP group default qlen 1000
    link/ether 00:45:e2:de:81:3d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.243/24 brd 192.168.1.255 scope global dynamic
noprefixroute wlp1s0
       valid_lft 29072sec preferred_lft 29072sec
    inet6 fd1b:630d:a7be::904/128 scope global dynamic noprefixroute
       valid_lft 29072sec preferred_lft 29072sec
    inet6 fd1b:630d:a7be:0:594c:ab81:5462:68a5/64 scope global
noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::779:de34:7646:eae9/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state
DOWN group default qlen 1000
    link/ether 52:54:00:56:d5:0e brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
----//----
$ ip r # antes da VM subir (tabela de roteamento):
default via 192.168.1.1 dev wlp1s0
default via 192.168.1.1 dev wlp1s0 proto dhcp src 192.168.1.243 metric 600
169.254.0.0/16 dev virbr0 scope link metric 1000 linkdown
192.168.1.0/24 dev wlp1s0 proto kernel scope link src 192.168.1.243 metric
600
192.168.1.1 dev wlp1s0 scope link
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
linkdown

====||====

$ ip a # Depois da VM subir:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UP group default qlen 1000
    link/ether 00:45:e2:de:81:3d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.243/24 brd 192.168.1.255 scope global dynamic
noprefixroute wlp1s0
       valid_lft 28365sec preferred_lft 28365sec
    inet6 fd1b:630d:a7be::904/128 scope global dynamic noprefixroute
       valid_lft 28366sec preferred_lft 28366sec
    inet6 fd1b:630d:a7be:0:594c:ab81:5462:68a5/64 scope global
noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::779:de34:7646:eae9/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UP group default qlen 1000
    link/ether 52:54:00:56:d5:0e brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master
virbr0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:a4:25:89 brd ff:ff:ff:ff:ff:ff
    inet 169.254.152.55/16 brd 169.254.255.255 scope global vnet1
       valid_lft forever preferred_lft forever
    inet6 fe80::fc54:ff:fea4:2589/64 scope link
       valid_lft forever preferred_lft forever
----//----
$ ip r # Depois da VM subir:
0.0.0.0 dev vnet1 scope link
default dev vnet1 scope link
default via 192.168.1.1 dev wlp1s0 proto dhcp src 192.168.1.243 metric 600
169.254.0.0/16 dev vnet1 proto kernel scope link src 169.254.152.55
169.254.0.0/16 dev virbr0 scope link metric 1000
192.168.1.0/24 dev wlp1s0 proto kernel scope link src 192.168.1.243 metric
600
192.168.1.1 dev wlp1s0 scope link
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

====||====

Eu pesquisei um pouco, e a melhor resposta que eu encontrei foi esta (ainda
não testada):
https://serverfault.com/questions/1074912/host-has-no-internet-access-when-vms-are-running

Achei a solução um pouco estranha.

No meu desktop, que não tem nenhuma interface wifi, essas coisas não
acontecem.

Alguém já enfrentou problema parecido?

Atenciosamente,
Atenágoras Souza Silva.

Responder a