IPv6: ping6 do host externo funciona, mas não pode pingar no mesmo host

0

Eu tenho um problema estranho com o ipv6 no Ubuntu 12.04.

Existem dois hosts, diretamente conectados à internet. Ambos atribuíram uma rede / 64. Eles estão configurados corretamente com um ponto de extremidade / 128 e um pode pingar o outro e vice-versa. Meu plano era terminar uma sub-rede / 112 do meu ipv6 / 64 atribuído à interface para ter muitos endereços para uso em vhosts do apache2. Mas esse não é o ponto.

Anfitrião A:

$ ifconfig
eth0      Link encap:Ethernet  HWaddr (...)
          inet6 addr: fe80::5246:5dff:(...)/64 Scope:Link
          inet6 addr: 2a01:xxx:xxx:000A::2/64 Scope:Global

$ route -A inet6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
2a01:xxx:xx:000A::/64          ::                         U    256 0     0 eth0
fe80::/64                      ::                         U    256 0     0 eth0
::/0                           fe80::1                    UG   1024 0     0 eth0
::/0                           ::                         !n   -1  1  5689 lo
::1/128                        ::                         Un   0   1    18 lo
2a01:xxx:xx:000A::2/128        ::                         Un   0   1   202 lo
2a01:xxx:xx:000A::/112        ::                         U    1024 0     0 lo
fe80::5246:5dff:fea1:977c/128  ::                         Un   0   1    86 lo
ff00::/8                       ::                         U    256 0     0 eth0
::/0                           ::                         !n   -1  1  5689 lo

O host B pode fazer ping6 2a01:xxx:xx:000A::[0001-FFFF] corretamente e funciona como eu esperava. Mas no Host A, eu não consigo pingar meus próprios endereços. Se eu tentar fazer o ping6 2a01:xxx:xxx:000A::n , obtenho este:

$ ping6 2a01:xxx:xxx:000A::3
PING (...) 56 data bytes
ping: sendmsg: Invalid argument
ping: sendmsg: Invalid argument
ping: sendmsg: Invalid argument

Eu suspeito da tabela de roteamento, mas eu brinquei com ela há muito tempo e mesmo usando o google eu não consigo trabalhar.

Alguma idéia? Obrigado.

    
por t2m 11.04.2013 / 12:31

1 resposta

1

O problema parece ser este:

2a01:xxx:xx:000A::/112        ::                         U    1024 0     0 lo

Você tem uma rota / 112 que é mais específica que a rota / 64:

2a01:xxx:xx:000A::/64          ::                         U    256 0     0 eth0

E estão dizendo para entregar a interface de loopback.

Também é curioso que você tenha:

2a01:xxx:xx:000A::2/128        ::                         Un   0   1   202 lo

Você pode garantir que todos esses endereços estejam na interface eth0 e que, se você estiver adicionando rotas, adicione-os à eth0?

    
por Justin King 06.06.2013 / 18:42