Bug 13916 - ping6 & tracepath6 не работают даже от root
: ping6 & tracepath6 не работают даже от root
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/iputils)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
: 14167 17072
  Show dependency tree
 
Reported: 2008-01-07 13:21 by
Modified: 2008-09-15 17:57 (History)


Attachments
fixing patch (34.36 KB, patch)
2008-01-07 13:51, Denis Ovsienko
no flags Details | Diff
fixing patch (1.39 KB, patch)
2008-01-07 13:54, Denis Ovsienko
no flags Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2008-01-07 13:21:08
Исходная ситуация: при загрузке конечного хоста в Fedora 8 ping6 на нём
работает; на маршрутизирующем хосте с Desktop 4.0.2 ping6 не работает.

Загружаем конечный хост в Sisyphus, на нём также перестаёт работать ping6:
# ping6 6bone.net
can't receive hop limit: Protocol not available

При этом в обоих случаях снаружи через looking-glass конечный хост по IPv6
пингуется. Также, порывшись в архивах, обнаружил, что tracepath6 также должна
была сломаться, и это оказалось правдой. Для версии iputils-20020927 эти
регрессии чинились в Debian:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=397935
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=402121

В то же время, например, доступна версия
http://www.skbuff.net/iputils/iputils-s20071127.tar.bz2 (я её не проверял).
------- Comment #1 From 2008-01-07 13:42:59 -------
Взяв патч из Debian #397935 и немного его переделав (иначе он не
прикладывался),
я получил рабочие ping6 и tracepath6.
------- Comment #2 From 2008-01-07 13:51:01 -------
Created an attachment (id=2358) [details]
fixing patch

Патч соответственно прикладываю. На ядрах из недавнего Sisyphus
(2.6.18-std-smp-alt8 и 2.6.18-std-smp-alt10) работает.
------- Comment #3 From 2008-01-07 13:54:49 -------
Created an attachment (id=2359) [details]
fixing patch
------- Comment #4 From 2008-09-09 15:12:37 -------
(In reply to comment #3)
> Created an attachment (id=2359) [details] [details]
> fixing patch

-    if (setsockopt(fd, SOL_IPV6, IPV6_HOPLIMIT, &on, sizeof(on))) {
+    if (setsockopt(fd, SOL_IPV6, IPV6_2292HOPLIMIT, &on, sizeof(on))) {
         perror("IPV6_HOPLIMIT");
         exit(1);

Я думаю, что сообщение об ошибке, тоже нужно поправить
(s/IPV6_HOPLIMIT/IPV6_2292HOPLIMIT/).
------- Comment #5 From 2008-09-09 15:18:12 -------
Слишком старая версия iputils, не интересно фиксить. :(
------- Comment #6 From 2008-09-09 16:04:56 -------
Слава, можно править, а можно и оставить.
Дима, тут вопрос не об интересе, а о функционале, сломанном в коробочном
продукте.
------- Comment #7 From 2008-09-09 16:07:39 -------
(In reply to comment #6)
> Дима, тут вопрос не об интересе, а о функционале, сломанном в коробочном
> продукте.

Баг висит на Сизифе, а не на коробочном продукте.  Наверное, надо его
клонировать.
------- Comment #8 From 2008-09-09 17:36:36 -------
Я перевесил на Desktop, но в нём нет пакетов (то есть iputils тоже нет). Ничего
лучше я сейчас изобретать не буду, нужно заниматься делами.
------- Comment #9 From 2008-09-15 17:57:14 -------
в сизиф ушел iputils-20071127-alt1

по ошибке в ping6.c наличествует:
#ifdef IPV6_RECVHOPLIMIT
            setsockopt(icmp_sock, IPPROTO_IPV6, IPV6_RECVHOPLIMIT,
                   &on, sizeof(on)) == -1 &&
            setsockopt(icmp_sock, IPPROTO_IPV6, IPV6_2292HOPLIMIT,
                   &on, sizeof(on)) == -1
#else
            setsockopt(icmp_sock, IPPROTO_IPV6, IPV6_HOPLIMIT,
                   &on, sizeof(on)) == -1
#endif

bug закрываю.