Исходная ситуация: при загрузке конечного хоста в 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 (я её не проверял).
Взяв патч из Debian #397935 и немного его переделав (иначе он не прикладывался), я получил рабочие ping6 и tracepath6.
Created attachment 2358 [details] fixing patch Патч соответственно прикладываю. На ядрах из недавнего Sisyphus (2.6.18-std-smp-alt8 и 2.6.18-std-smp-alt10) работает.
Created attachment 2359 [details] fixing patch
(In reply to comment #3) > Created an attachment (id=2359) [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/).
Слишком старая версия iputils, не интересно фиксить. :(
Слава, можно править, а можно и оставить. Дима, тут вопрос не об интересе, а о функционале, сломанном в коробочном продукте.
(In reply to comment #6) > Дима, тут вопрос не об интересе, а о функционале, сломанном в коробочном > продукте. Баг висит на Сизифе, а не на коробочном продукте. Наверное, надо его клонировать.
Я перевесил на Desktop, но в нём нет пакетов (то есть iputils тоже нет). Ничего лучше я сейчас изобретать не буду, нужно заниматься делами.
в сизиф ушел 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 закрываю.