Ubuntu: como você troca eth0 e eth1? (Ubuntu 13.10 servidor em uma VM VirtualBox)

2

Instalei o servidor Ubuntu 13.10 (64 bits) em uma VM do VirtualBox 4.3.6 (host do Windows) com um adaptador NAT atribuído. O único software não padrão selecionado durante a instalação foi o OpenSSH. Até aí tudo bem ... eu poderia pingar o mundo e o endereço é 10.0.2.15 como seria de esperar (por ifconfig o adaptador NAT é eth0 neste momento).

Eu quero acessar a VM por meio do host sem nenhum mapeamento de porta. Como o bridging não é uma opção (não consigo obter um segundo IP direto de fora do host), criei um adaptador somente host (com DHCP ativado e tudo), editado / etc / network / interfaces (duplicando os padrões eth0 para eth1), encerre a VM, conecte o novo adaptador somente de host (selecionado paravirtualizado) e reinicialize.

Neste ponto, o / etc / network / interfaces continha o seguinte:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp

E, de fato, tudo funciona ... mas por ifconfig o adaptador NAT agora é eth1, enquanto o adaptador somente host recém-adicionado é eth0. Eu quero o contrário - e isso leva a todos os tipos de problemas!

Primeiro, tentei adicionar os endereços MAC ao arquivo de interfaces, por exemplo, "hwaddress ether xx: xx: xx: xx: xx: xx", como espero que seja para eth0 e eth1. Nenhuma alegria ... que acaba quebrando redes inteiramente. Eu comentei essas linhas e reiniciei (na verdade, tive que desabilitar esse adaptador somente para host e reinicializar novamente, então finalmente consegui reativá-lo ... isso pode ser uma pista).

Lendo mais, vejo muitas referências à atualização do /etc/udev/rules.d/70-persistent-net.rules para trocar os endereços MAC. Boa ideia! Exceto que diferente de um arquivo README /etc/udev/rules.d está completamente vazio. Eu tentei "sudo udevadm trigger" (e algumas permutações) ... sem alteração.

Então, pergunta # 1: o que aconteceu com o 70-persistent-net.rules? Isso é obsoleto? /etc/udev/rules.d está vazio, exceto por um arquivo README.

Em seguida, tentei o seguinte:

sudo ifconfig eth0 down sudo ifconfig eth1 down sudo ifconfig eth0 hw éter xx: xx: xx: xx: xx: xx sudo ifconfig eth1 hw éter yy: yy: yy: yy: yy: yy sudo ifconfig eth0 up sudo ifconfig eth1 up

Hmm. O ifconfig agora relata os endereços mac esperados, mas os endereços IP ainda estão como estavam. Então eu reinicio ...

E mais uma vez, a rede está quebrada (é nesse ponto que se aprende o mérito de editar o /etc/init/failsafe.conf para encurtar os atrasos da rede durante o processo de depuração de rede). O conteúdo de / etc / network / interfaces permanece inalterado em relação à aparência anterior. O ifconfig agora relata que eth0 e eth1 possuem o mesmo endereço (MAC do adaptador NAT), embora eu realmente tenha trocado os endereços MAC acima. Restaure os MACs pelo mesmo procedimento e reinicie e estamos de volta ao ponto de partida (eth0 = somente host e eth1 = NAT).

Portanto, a questão principal é: como você troca eth0 e eth1 corretamente no Ubuntu 13.10? No CentOS (dado DHCP) foi tão fácil quanto trocar os endereços MAC em / etc / sysconfig / network-scripts / ifcfg-eth0 e ifcfg-eth1 e, em seguida, reinicializar. No Ubuntu é como puxar dentes ... tudo o que deve funcionar não funciona, e eu estou perplexo. Eu suspeito que há algo relativamente novo acontecendo sob o capô (assim, os arquivos de regras "ausentes" e assim por diante), mas o que poderia ser? Note que o gerenciador de rede não é instalado por padrão (e definitivamente não está presente).

Atualização: Apenas para sorrisos, criei outra VM com a mesma configuração de servidor padrão (incluindo o OpenSSH de antes), com um adaptador de rede (NAT). Nenhuma mudança - a rede funciona como normalmente seria para essa configuração, mas não há nada em /etc/udev/rules.d exceto um arquivo README (chequei até como root ... nada).

    
por MartyMacGyver 16.01.2014 / 22:54

1 resposta

2

Bem, eu tenho pelo menos uma resposta parcial até agora.

Como eu disse, isso está em uma VM. A VM cria endereços MAC especiais no formato 08: 00: 27: xx: yy: zz. Juntamente com vários outros scripts, eu dei uma olhada em /lib/udev/rules.d/75-persistent-net-generator.rules para ver se o problema estava lá. Acontece que esse é um dos vários intervalos de endereços excluídos mencionados especificamente nesse arquivo (ele tenta ignorar interfaces virtuais)!

Então, para testar essa teoria eu comentei a linha nesse arquivo, reiniciei e pronto! /etc/udev/rules.d/70-persistent-net.rules é gerado com o MAC da interface que tenho atualmente.

Próximo passo: testando se a atualização sozinha e a reinicialização solucionam o problema. Eu vou atualizar quando eu tiver testado isso.

Atualização: Foi isso! Eu removi a correção de teste e o arquivo gerado, encerrei, adicionei o segundo adaptador de rede somente host e reiniciei. O novo adaptador foi enumerado primeiro como eth0 e o NAT tornou-se eth1. Eu refiz a edição no gerador para remover a exclusão, reiniciei e agora eu tinha um arquivo de regras persistente para trabalhar.

Nesse arquivo eu simplesmente troquei os nomes dos dispositivos (eu mudei NAME="eth0" para "eth1" e vice-versa), salvei, reiniciei e voila - funcionou!

Agora, se você tivesse inserido endereços MAC em outro local, também seria correto corrigi-los, mas, nesse caso, era muito simples.

    
por 17.01.2014 / 02:16