Definir endereço IPv6 primário

1

Eu tenho um / 64 de endereços IPv6 disponíveis para um dos meus servidores (Ubuntu 12.04). Estou ligando assim:

auto eth0
    iface eth0 inet static
    address xxx.xxx.xxx.82
    netmask 255.255.255.248
    network xxx.xxx.xxx.80
    broadcast xxx.xxx.xxx.255
    gateway xxx.xxx.xxx.81

    iface eth0 inet6 static
    address xxxx::2
    netmask 64
    gateway xxxx::1

    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/autoconf
    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra
    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra_defrtr
    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra_pinfo
    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra_rtr_pref

    up /sbin/ifconfig eth0 inet6 add xxxx::3/64
    # ... snip ...
    up /sbin/ifconfig eth0 inet6 add xxxx::25/64

Isso funciona, mas todos os aplicativos estão usando xxxx::25 para suas solicitações de saída, a menos que seja especificamente indicado de outra forma. Se eu adicionar xxxx::26 no meu /etc/network/interfaces , todos eles começarão a usar isso. Parece que eles usam apenas o maior número possível.

Como eu especifico um determinado endereço a ser usado como padrão? No meu caso, eu quero usar o endereço mais baixo ( xxxx::2 ), mas eu realmente gostaria de saber como especificar um endereço específico, caso a necessidade apareça no futuro.

    
por Dan 22.03.2014 / 05:16

1 resposta

2

Você pode resolver isso modificando a rota padrão. Cada rota no Linux tem a opção de especificar o endereço de origem padrão. Se você especificar o endereço xxxx :: 3 em sua rota, então aquele será usado por padrão:

/sbin/ip -6 route del default
/sbin/ip -6 route add default via xxxx::1 src xxxx::3

Se você mostrar a tabela de roteamento, verá o resultado:

/sbin/ip -6 route
default via xxxx::1 dev eth0  src xxxx::222  metric 1024

Uma coisa a observar é que os endereços IPv6 estão em estado de tentativa até que a detecção de endereço duplicado tenha sido executada. O Linux se recusará a usar um endereço provisório como o endereço de origem padrão. Isso significa que você pode precisar adicionar um pequeno sleep antes de adicionar essa rota, para que o endereço tenha tempo de sair do estado provisório e se tornar utilizável.

    
por Sander Steffann 22.03.2014 / 12:11