Por que uma rota IPv6 adicionada antes da máquina virtual ser iniciada não funciona

3

Eu tenho um servidor externo no Hetzner com o Debian 7 e tentando configurar o KVM com o IPv6 Routing (a mesma configuração funciona para o IPv4 sem problemas).

Eu tenho uma VM do servidor Ubuntu com duas interfaces que estão em duas sub-redes diferentes. A primeira interface é conectada ao host por meio de uma ponte:

Host-eth0 <-- external bridge --> vnet0-VM-vnet1 <-- internal bridge

Configurei a ponte para adicionar uma rota estática à segunda sub-rede por meio da primeira interface da VM:

ip -6 route add 2a01:4f8:X:Y:2::/80 via 2a01:4f8:X:Y:1::3 dev virbr_external

Isso adiciona a entrada da rota ANTES que a VM seja iniciada. Quando eu uso ping6 do host para a interface vnet1 (2 :: 2) eu recebo esta mensagem de erro:

ping: sendmsg: Network is down

Quando não adiciono a rota na configuração das interfaces e a chamo manualmente DEPOIS que a VM é iniciada, tudo funciona.

Então, minha pergunta é por que a rota add para endereços IPv6 funciona somente depois que a VM é iniciada?

Detalhes adicionais de configuração:

Interfaces de host

auto lo
iface lo inet6 loopback

auto eth0
iface eth0 inet6 static
    address 2a01:4f8:X:Y:0::2
    netmask 128
    gateway fe80::1

# Bridge between Host and VM
auto virbr_external
iface virbr_external inet6 static
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    address 2a01:4f8:X:Y:1::2
    netmask 80

up ip -6 route add 2a01:4f8:X:Y:2::/80 via 2a01:4f8:X:Y:1::3 dev virbr_external

# Bridge between VM and other VMs
auto virbr_internal
iface virbr_internal inet6 manual
    bridge_ports none
    bridge_stp off
    bridge_fd 0

Interfaces VM

auto lo
iface lo inet6 loopback

auto eth0
iface eth0 inet6 static
    address 2a01:4f8:X:Y:1::3
    netmask 80
    gateway 2a01:4f8:X:Y:1::2

auto eth1
iface eth1 inet6 static
    address 2a01:4f8:X:Y:2::2
    netmask 80

Por favor, diga-me se você precisa de mais registros (antes e depois do trabalho), então eu os reunirei.

    
por Dresel 05.09.2013 / 21:07

1 resposta

2

Tendo o mesmo problema aqui. A solução é liberar o cache da rota IPV6 depois de definir a rota:

ip -6 route flush cache

Alterando sua seção de interfaces para:

...
auto virbr_external
iface virbr_external inet6 static
   bridge_ports none
   bridge_stp off
   bridge_fd 0
   address 2a01:4f8:X:Y:1::2
   netmask 80
   up ip -6 route add 2a01:4f8:X:Y:2::/80 via 2a01:4f8:X:Y:1::3 dev virbr_external
   up ip -6 route flush cache # Flush cache after setting route
   ...

corrige o problema na inicialização.

    
por 07.05.2015 / 10:32