Seleção de fonte de endereço IPv6 ULA

1

Eu tenho dois Raspberry Pis (executando o Raspbian 2016-27-5) e estou tentando configurá-los para usar endereços IPv6 ULA para comunicações restritas dentro da minha LAN.

Tudo está bem, mas um detalhe muito importante: se eu me conectar de um para o outro, usando o ULA (endereço local exclusivo) e imprimir o endereço de origem no destino, o "Global" é mostrado. Então, de alguma forma, isso está sendo selecionado como o endereço de origem.

Eu li estes dois guias e tentei várias coisas sem sucesso:

Tudo dentro de /etc/gai.conf é comentado.
Eu consideraria remover completamente o endereço Global , se eu soubesse como. Quero dizer, impedir que o sistema consiga um em primeiro lugar, removê-lo depois não é uma solução viável.
Removendo a estrofe eth0:1 e, em vez disso, designando diretamente o ULA para eth0 com ifconfig eth0 inet6 add fc00::6666/64 funciona. Talvez isso aconteça porque o algoritmo de seleção de endereço de origem agora está usando corretamente o menor escopo disponível. Parece que o uso de uma interface de alias de alguma forma estraga o algoritmo de seleção de endereço de origem. Talvez possa ser resolvido usando route -6 ?

/ etc / network / interfaces

<--- IPv4 ellipsized --->
auto eth0:1
iface eth0:1 inet6 static
address fc00::6666
netmask 64
autoconf 1

Prefixos e rotas atuais:

# ip addrlabel list
prefix ::1/128 label 0 
prefix ::/96 label 3 
prefix ::ffff:0.0.0.0/96 label 4 
prefix 2001::/32 label 6 
prefix 2001:10::/28 label 7 
prefix 3ffe::/16 label 12 
prefix 2002::/16 label 2 
prefix fec0::/10 label 11 
prefix fc00::/7 label 5 
prefix ::/0 label 1 

# route -6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
::1/128                        ::                         U    256 0     0 lo
2001:760:XXXX:XXXX::/64        ::                         U    202 0     0 eth0
fc00::/64                      ::                         U    256 0     0 eth0
fe80::/64                      ::                         U    256 0     0 eth0
::/0                           fe80::210:WWWW:WWWW:WWWW   UG   202 1     8 eth0
::/0                           ::                         !n   -1  1     9 lo
::1/128                        ::                         Un   0   2     2 lo
2001:760:YYYY:YYYY:YYYY:YYYY:YYYY:YYYY/128 ::                         Un   0   1     0 lo
fc00::6666/128                 ::                         Un   0   1     0 lo
fe80::ba27:ZZZZ:ZZZZ:ZZZZ/128  ::                         Un   0   2     2 lo
ff00::/8                       ::                         U    256 1    35 eth0
::/0                           ::                         !n   -1  1     9 lo
    
por ppparadox 13.07.2016 / 12:01

1 resposta

2

Os aliases foram usados para permitir vários endereços antes do IPv6. Vários endereços são uma parte essencial do IPv6, portanto, os aliases agora estão obsoletos.

Eu não sei especificamente por que eles causariam confusão aqui, mas desde que você identificou isso, a solução é não usar aliases.

Você deve ser capaz de literalmente substituir eth0:1 por eth0 em sua configuração e funcionará. (Há também uma alternativa mais manual com ganchos de script).

link

Crítica: obviamente, seus endereços estão sem a parte U da UL.

Exemplo de como trabalhar / etc / network / interfaces :

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
address aaa.aaa.aaa.aaa
netmask 255.255.255.0
broadcast aaa.aaa.aaa.255
gateway aaa.aaa.aaa.254
dns-nameservers aaa.aaa.aaa.254
post-up /etc/firewallup.sh

auto eth0
iface eth0 inet6 static
address fc00::6666
netmask 64
autoconf 1
    
por 13.07.2016 / 16:35