A adição do dispositivo de toque para fazer a ponte faz com que o DNS falhe (às vezes)

1

Estou no Ubuntu xenial (16.04 LTS), já que uso a virtualização, decidi fazer uma rede de ponte.

Eu criei a ponte em /etc/network/interfaces da seguinte forma:

iface eth0 inet manual

auto br0
iface br0 inet dhcp
  bridge_ports    eth0
  bridge_stp      off
  bridge_maxwait  0
  bridge_fd       0

e a Internet funciona bem antes de criar um dispositivo de toque. Quando eu adiciono um dispositivo de toque para a VM assim:

$ user=anyone
$ dev=tap0
$ ip tuntap add $dev mode tap user $usr
$ ip link set $dev up
$ ip link set $dev master br0

Eu posso usar o dispositivo de toque para acessar a Internet sem problemas do meu convidado virtualizado e às vezes , ainda tenho acesso normal à Internet do meu host (ou seja, o DNS está funcionando).

No entanto, na maioria das vezes, o DNS falha no meu sistema host (eu testei fazendo ping de hosts remotos com seu IP e ele funcionou, com o nome deles falharia). Tudo está bem novamente no meu sistema host assim que eu remover o dispositivo de toque.

Eu não acho que esses sejam problemas de rede externos, já que eu tinha a mesma configuração no Fedora, e funcionava perfeitamente. E, para esclarecer, se inicio ou não a VM, não faz diferença, assim que o tap é ativado, posso perder meu DNS no host e, assim que removo o dispositivo de tap, ele funciona novamente.

Não consigo encontrar nada de útil em dmesg , syslog ou ip route para me ajudar. Então estou perguntando aqui, alguém tem uma ideia do que está errado?

Atenciosamente

    
por tkr 16.05.2017 / 11:56

1 resposta

0

Ok, eu resolvi isso. O problema é que o dispositivo de ponte usa o menor número de endereço mac de seus filhos como seus próprios por padrão. Uma vez que os endereços mac para o dispositivo de toque são mais ou menos aleatórios, às vezes altera o mac da bridge, e às vezes isso não acontece. O MAC aleatório é bloqueado pelo DNS na minha rede.

Felizmente, se você atribuir um MAC à sua ponte, ele será mantido. Então eu preciso adicionar um endereço mac permanente à bridge como este

ip link set br0 address {MAC-ADDRESS}

ou para tê-lo na inicialização, posso adicionar a linha post-up a /etc/network/interfaces

iface br0 inet dhcp
  bridge_ports    eth0
  .
  .
  .
  post-up ip link set br0 address {MAC-ADDRESS}

Para mais informações, consulte link

    
por tkr 06.11.2017 / 13:24