O adaptador em ponte do VirtualBox pode pingar, mas não pode enrolar

6

Existe um servidor dedicado rodando o Ubuntu Server 12.04.2. Existem 4 IPs utilizáveis para este servidor: A, B, C, D. O servidor em si leva A.

O servidor agora está executando dois guests do VirtualBox, ambos com o tipo de rede "Bridged adapter". Um convidado está executando o Windows Server 2003, usando o endereço IP B. Outro está executando o Arch Linux (Live CD), usando o endereço IP C.

  1. No host do Ubuntu, a rede está bem. Eu posso apt-get e a velocidade de download é boa.
  2. No convidado do Windows, posso ping www.google.com no cmd.exe, mas não posso visitar www.google.com no IE6.
  3. No convidado do Arch Linux, posso ping www.google.com em zsh, mas curl -v www.google.com não funciona. Eu também posso telnet www.google.com 80 , o que significa que pelo menos 80 / tcp e 53 / udp estão funcionando. (Não há firewall do iptables no servidor, na verdade.)
  4. No guest Arch Linux, posso até ssh para outra máquina! (usando o padrão 22 / tcp)
  5. No guest Arch Linux, eu tento wget algum site https, ele fica preso em "Conectando a XXX.XXX.XXX.XXX:443 ... conectado".

Eu tentei alterar a configuração de --nictype1 para a VM e / ou definir MTUs diferentes no sistema operacional convidado, mas o problema continua.

Alguém pode me ajudar?

Informações adicionais: Ao alterar "Adaptador em ponte" para "NAT", o sistema operacional convidado pode curl www.google.com . Tudo está bem. Mas como preciso de IP público, preciso usar o "Adaptador em ponte" para o sistema operacional convidado.

Informações adicionais 2: No sistema operacional convidado com "adaptador em ponte", posso ssh outro host usando 22 / tcp, posso dig algum domínio usando 53 / udp, mas não consigo wget ou curl sites usando 80 / tcp ou 443 / tcp, mas telnet www.google.com 80 ou telnet www.google.com 443 está bem. Ao usar "NAT", tudo está bem.

    
por Zhuoyun Wei 26.03.2013 / 15:03

2 respostas

7

Bem, eu descobri isso sozinho.

Acidentalmente descobri que posso curl google.com mas não posso curl www.google.com e como o primeiro é bem menor, acho que isso é um problema com o MTU ou algo assim, fazendo com que o sistema operacional convidado não consiga transferir grandes segmentos de dados .

Após pesquisar "mtu em ponte virtual", encontrei esta postagem: link

Então eu tentei ethtool -K eth2 sg off rx off tx off tso off no Ubuntu Server (eth2 é a interface em ponte) e ... funciona como um encanto! Instantaneamente

    
por 27.03.2013 / 09:51
0

Encontrei o mesmo problema.

a MTU padrão do nic com ponte na vm é 1500. mas quando eu uso o ping com o sinalizador DF para detectar a MTU real, ela acaba sendo a 1498.

Então, esse problema pode ser resolvido digitando sudo ifconfig eth0 mtu 1498 no meu host.

    
por 07.03.2016 / 04:04