O convidado do VirtualBox pode fazer o ping do host, mas não acessar a Internet

0

Eu exportei uma VirtualBox VM (Debian 7.11) do Mac e importei na minha máquina Linux (Ubuntu 17.04). Tudo parece funcionar bem, exceto que minha máquina importada não pode se conectar à internet.

(Eu acho que não mudei os endereços MAC na importação, pois isso falhou por algum motivo que eu não investiguei mais).

Aqui está a configuração atual:

  • O VirtualBox é configurado para ter uma "NatNetwork" e uma "rede somente host"

  • Para a VM, ambos os adaptadores de rede estão ativos e o cabo está conectado.

  • No host e dentro da VM, há uma configuração OpenVPN (a mesma em ambas as máquinas). Mas não está ativado por enquanto.

A máquina convidada

# /etc/init.d/openvpn status
[FAIL] VPN 'vpn' is not running ... failed!

# ifconfig 
eth0      Link encap:Ethernet  HWaddr 08:00:27:e7:5d:aa  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fee7:5daa/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:357 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1830 (1.7 KiB)  TX bytes:21368 (20.8 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:cb:4b:40  
          inet addr:192.168.56.120  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fecb:4b40/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3466 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3228 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2247873 (2.1 MiB)  TX bytes:638995 (624.0 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:659 errors:0 dropped:0 overruns:0 frame:0
          TX packets:659 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:49216 (48.0 KiB)  TX bytes:49216 (48.0 KiB)

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.2.1        0.0.0.0         UG    0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

Agora o teste:

# ping -c 1 192.168.56.1
PING 192.168.56.1 (192.168.56.1) 56(84) bytes of data.
64 bytes from 192.168.56.1: icmp_req=1 ttl=64 time=0.831 ms

--- 192.168.56.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.831/0.831/0.831/0.000 ms

# wget 172.217.21.206 # google.com
--2017-05-25 17:31:28--  http://172.217.21.206/
Connecting to 172.217.21.206:80... failed: No route to host.

A máquina host

# /etc/init.d/openvpn status
● openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Thu 2017-05-25 17:33:12 CEST; 3s ago
 Main PID: 1280 (code=exited, status=0/SUCCESS)

# ifconfig 
enp0s31f6: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 54:ee:75:c6:13:46  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0xf1200000-f1220000  

enx0050b6dfa166: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.178.26  netmask 255.255.255.0  broadcast 192.168.178.255
        inet6 fe80::1682:e4a2:aca4:9424  prefixlen 64  scopeid 0x20<link>
        ether 00:50:b6:df:a1:66  txqueuelen 1000  (Ethernet)
        RX packets 1310132  bytes 1599207507 (1.5 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 840018  bytes 90022576 (90.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 7627  bytes 379131 (379.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7627  bytes 379131 (379.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vboxnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.1  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::800:27ff:fe00:0  prefixlen 64  scopeid 0x20<link>
        ether 0a:00:27:00:00:00  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3557  bytes 299336 (299.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:1d:1b:76  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp4s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 06:eb:85:c3:6b:3a  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.178.1   0.0.0.0         UG    100    0        0 enx0050b6dfa166
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enx0050b6dfa166
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
192.168.178.0   0.0.0.0         255.255.255.0   U     100    0        0 enx0050b6dfa166

# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A OUTPUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT

# cat /proc/sys/net/ipv4/ip_forward
1

E os testes:

# ping -c1 192.168.56.120
PING 192.168.56.120 (192.168.56.120) 56(84) bytes of data.
64 bytes from 192.168.56.120: icmp_seq=1 ttl=64 time=1.66 ms

--- 192.168.56.120 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.664/1.664/1.664/0.000 ms

# wget 172.217.21.206 # google.com
--2017-05-25 17:39:15--  http://172.217.21.206/
Connecting to 172.217.21.206:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.google.com/ [following]
--2017-05-25 17:39:15--  http://www.google.com/
Resolving www.google.com (www.google.com)... 172.217.22.196
Connecting to www.google.com (www.google.com)|172.217.22.196|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://www.google.de/?gfe_rd=cr&ei=o_omWdH5KefVXp7imGA [following]
--2017-05-25 17:39:15--  http://www.google.de/?gfe_rd=cr&ei=o_omWdH5KefVXp7imGA
Resolving www.google.de (www.google.de)... 216.58.207.131
Connecting to www.google.de (www.google.de)|216.58.207.131|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

index.html                        [ <=>                                            ]  11,05K  --.-KB/s    in 0,003s  

2017-05-25 17:39:15 (4,11 MB/s) - ‘index.html’ saved [11316]

Portanto, no host, o acesso normal à Internet está disponível e a máquina convidada está disponível via rede. (Eu posso até mesmo ssh na VM do host.)

O que eu tentei adicionalmente:

  • iptables -F no host

O que estou perdendo? Na máquina Mac, ele funciona sem problemas (na mesma rede).

Há algo faltando na configuração do iptables? Ou deveria ser tratado a partir do próprio VirtualBox?

    
por Thomas 25.05.2017 / 18:42

1 resposta

1

Eu tive o mesmo problema após liberar e reconectar um Linux VDI para fazer um backup. Poderia pingar sites externos a partir da sessão do VB, mas não carregar páginas. Tentei várias configurações do adaptador de rede (NAT / Bridged).

No final, funcionou desabilitando o Adaptador 1 e ativando o Adaptador 2 (como Bridged), que funcionou bem.

    
por Greg 07.01.2018 / 06:15