IPv6: ping6 с внешнего хоста работает, но не может ping6 на том же хосте

У меня странная проблема с ipv6 в Ubuntu 12.04.

Есть два хоста, напрямую подключенных к Интернету. Оба назначили сеть / 64. Они правильно сконфигурированы с конечной точкой / 128 каждый, и один может пинговать другой, и наоборот. Мой план состоял в том, чтобы прекратить подсеть / 112 моего назначенного ipv6 / 64 для интерфейса, чтобы иметь много адресов для использования в apache2 vhosts. Но дело не в этом.

Хост 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

Хост B может выполнить ping6 2a01:xxx:xx:000A::[0001-FFFF] правильно и работает так, как я ожидал. Но на хосте А я не могу пропинговать свои собственные адреса. Если я пытаюсь ping6 2a01:xxx:xxx:000A::n, я получаю это:

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

Я подозреваю, что таблица маршрутизации, но я долго играл с ней, и даже с помощью Google я не могу получить работа.

Есть идеи? Благодаря.

0
задан 11 April 2013 в 14:53

1 ответ

Проблема, как представляется, заключается в следующем:

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

У вас есть маршрут / 112, который более специфичен, чем маршрут / 64:

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

И вы хотите, чтобы он доставил через петлевой интерфейс.

Также любопытно, что у вас есть:

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

Можете ли вы убедиться, что все эти адреса находятся на интерфейсе eth0, и что, если вы добавляете маршруты, вы добавляете их в eth0?

0
ответ дан 11 April 2013 в 14:53

Другие вопросы по тегам:

Похожие вопросы: