Ubuntu não se conecta à rede no Hyper-V

33

Não consigo conectar o convidado do Ubuntu (12.10 e 12.04) à Internet via hyper-V.

Aqui está o que eu fiz até agora (com muito obrigado devido à postagem do blog de @ Kronos sobre o assunto ):

  • Criei um switch no gerenciador de switches com a conexão definida como externa, selecionei minha placa wifi (Intel Centrino Ultimate-N 6300 AGN). Se isso importa, a Plataforma de Filtragem da Microsoft é verificada em extensões.
  • Adicionado essa opção ao meu convidado do Ubuntu.
  • Também tentei uma placa sem fio diferente (Aethros 9285) e tive o mesmo problema.
  • A conexão através da minha placa com fio funciona muito bem (assumindo que eu selecione essa placa e que eu esteja conectado, é claro).
  • Tornar um adaptador de rede herdado não resolve o problema.

O Ubuntu pode ver essa conexão, mas não consegue se conectar a ela. A seguir, é o que tentei fazer para conectar o Ubuntu:

  • Iniciar e reiniciar o gerenciador de rede
  • Reinicie a máquina
  • Verifique se ele realmente conseguiu ver o adaptador (o dispositivo não ficou pronto algumas vezes) insira a descrição da imagem aqui

Como faço para que isso funcione corretamente?

Atualização: funciona quando conectado a outra rede sem fio (mas não a minha universidade). Além disso, o Ubuntu ainda parece estar conectado à rede, mesmo quando troquei de local, embora tudo retorne um "Host de Destino Inacessível" a partir de 10.0.44.159 (presumo que esse seja o meu host, pois o convidado pode fazer o ping, mas o meu host não pode). Por que a rede sem fio em que está inserida?

soandos
fonte
Ateando fogo acima à vm agora :)
James Mertz
Na medida em que a ponte vai, essa é a maneira que as coisas foram implementadas para Hyper-V Cliente (olhada na Figura 2)
James Mertz
Você tem algum outro software de máquina virtual instalado além do Hyper-V? Por exemplo, ter o VirtualBox instalado pode causar problemas de rede com o Hyper-V. forums.virtualbox.org/viewtopic.php?f=6&t=48044 #
James T #
@JamesT não, apenas Hyper-V
soandos
Acho que não é da sua rede universitária, é? Eles têm alguma restrição no número de dispositivos ou precisam de autenticação para se conectar?
tombull89

Respostas:

35

O que parece ter sido o problema é que o protocolo de ponte não era suportado pelo ponto de acesso da minha universidade.

Aqui está a solução alternativa (pelo que sei dessa maneira, é mais robusta do que a maneira de ponte feita por padrão, mas pode haver alguma sobrecarga adicional (não tenho certeza quanto)):

  1. Crie um switch de rede interno
  2. Conecte-o ao sistema operacional convidado
  3. Ligar o adaptador virtual interna ao adaptador virtual criado pelo Hyper-V da seguinte forma: insira a descrição da imagem aqui.
    Vá para o adaptador que fornece acesso à Internet na máquina e clique em compartilhamento. Selecione o adaptador criado na etapa 1.
  4. Tudo deve funcionar bem.

O crédito por esta solução é atribuído ao pessoal de rede da Universidade Binghamton, mais especificamente Joe e Alan.

soandos
fonte
Faça Joe e Alan se juntarem à SU e vamos dar-lhes algum representante: P
James Mertz
@KronoS realmente fizeram comentários sobre SU (eu tenho um dos adesivos no meu teclado), mas me disse para deixar isso para eles "apenas fazendo o seu trabalho", etc
soandos
@soandos: Você pode fornecer instruções passo a passo mais detalhadas?
Richard Cook
@RichardCook, o que você quer que eu adicione?
soandos
Você poderia fornecer mais informações para a etapa 3?
Richard Cook
11

Eu tive o mesmo problema. Eu estava usando meu laptop, que possui apenas uma conexão sem fio. Nenhuma construção na placa Ethernet.

O sistema é o Windows server 2012 padrão. Eu estava tentando usar o hyper-v para instalar o ubuntu 12.04 lts. Eu tenho o mesmo problema. O Ubuntu não será capaz de acessar a Internet, a rede continua se conectando e desconectada.

Então, eu segui a abordagem de "Joe e Alan". Funciona.

Mas quero descobrir por que o comutador virtual externo não funciona.

Depois de ler este blog,

Trazendo o Hyper-V para o “Windows 8”

Encontrei o problema e talvez uma solução melhor.

para o hyper-v, se o comutador virtual externo estiver na parte superior de uma NIC sem fio, o hyper-v utilizou a ponte da Microsoft entre eles para fazer a conversão MAC. Porque um canal sem fio está ligado a um MAC. Leia o artigo completo se você realmente quer entender.

Agora, com base nas informações desse artigo, posso concluir facilmente que haverá dois endereços IP para o mesmo MAC da NIC física se você olhar o servidor de fora.

Obviamente, os dois endereços IP são atribuídos a duas NIC virtuais diferentes com endereço MAC diferente, se você olhar para dentro. Mas esses dois MAC estão escondidos atrás da ponte e não são visuais de fora.

O primeiro IP será usado pelo sistema operacional host (Windows Server 2012 no meu caso). Esse não tem problema porque o servidor DHCP atribui um quando a máquina é inicializada.

O problema vem com o segundo endereço IP, quando você inicializa a máquina virtual (ubuntu no meu caso), a máquina virtual tenta obter o endereço IP do servidor DHCP, mas falhará. A maioria dos servidores DHCP, pelo menos o roteador que tenho em minha casa, não atribui dois endereços IP diferentes ao mesmo MAC. Provavelmente, devolva o mesmo endereço IP à solicitação DHCP da máquina virtual, mas não funcionará porque não podemos usar o mesmo endereço IP para duas máquinas. Se alguém puder capturar os pacotes do DHCP, poderá encontrar os detalhes do problema.

aqui mais algumas informações sobre DHCP

Não tenho certeza se algum servidor DHCP pode fornecer dois IP para um MAC. Com base na descrição de @soandos, parece sim.

Agora, sabemos que o verdadeiro problema é que a máquina virtual não pode obter o endereço IP atribuído.

Então, qual é a solução?

O mais fácil é apenas atribuir um endereço IP estático na máquina virtual. Depois de inicializar a máquina virtual, você pode atribuir um endereço IP estático a essa máquina virtual. Isso funciona perfeitamente para mim porque eu uso meu laptop apenas em casa.

Mas em algumas situações, por exemplo, em um wifi público, você provavelmente não pode fazer isso (com segurança).

liuhongbo
fonte
Obrigado por chegar à raiz do problema. Eu tinha o mesmo problema e realmente precisava de uma conexão externa, e não interna. Definir os IPs estáticos com o tipo de conexão externa fez o truque. Obrigado!
JohnP
1

A solução da soandos não funcionou de maneira confiável para mim. Em vez disso, a sugestão de liuhongbo funcionou. A seguir, a configuração que funcionou de maneira confiável. As configurações de rede da máquina virtual Ubuntu estão à esquerda e as ipconfiglistagens do Windows 8 estão à direita.

Configurações de rede do Ubuntu e Windows 8

Observe que a máscara de sub-rede, o gateway padrão e os servidores DNS são os mesmos no Ubuntu e no Windows 8. A única diferença é o endereço IPv4, que é diferente apenas por um dígito.

Shaun Luttin
fonte