LINUX.ORG.RU
ФорумAdmin

Не получает IPv6 адрес по Wi-Fi


0

1

Wi-Fi роутер раздаёт IPv6-адреса в локальной сети (полученные от gogo6). Смартфон с Android нормально получает IPv6 адрес и имеет доступ к IPv6-only сайтам. Если загрузиться с флешки, с установленным Arch Linux, на десктопе, то IPv6 тоже работает. Но вот система, которая непосредственно стоит на десктопе (и является моей рабочей системой) - никак не хочет получать не локальный IPv6-адрес и ничего не работает. В обоих Arch Linux соединение устанавливает NetworkManager. В какую сторону копать? Какие различия в настройках смотреть? Настройки соединения на десктопе такие же как и на флешке.

★★★★★

Ответ на: комментарий от anonymous
$ sysctl -A | grep net.ipv6.conf.wlan0.accept_ra
error: permission denied on key 'vm.compact_memory'
error: permission denied on key 'dev.parport.parport0.autoprobe'
error: permission denied on key 'dev.parport.parport0.autoprobe0'
error: permission denied on key 'dev.parport.parport0.autoprobe1'
error: permission denied on key 'dev.parport.parport0.autoprobe2'
error: permission denied on key 'dev.parport.parport0.autoprobe3'
error: permission denied on key 'net.ipv4.route.flush'
error: permission denied on key 'net.ipv6.route.flush'
net.ipv6.conf.wlan0.accept_ra = 1
net.ipv6.conf.wlan0.accept_ra_defrtr = 1
net.ipv6.conf.wlan0.accept_ra_pinfo = 1
net.ipv6.conf.wlan0.accept_ra_rtr_pref = 1
net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen = 0

То есть да.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Вот что есть в логах NetworkManager:

Oct  8 20:39:30 localhost NetworkManager[887]: <error> [1318091970.5501] [nm-device.c:1689] dhcp6_start(): (wlan0): failed to add IPv6 multicast route: Netlink Error (errno = No route to host)
На десктопе фаервол не настроен вообще (используются правила по умолчанию, который разрешают всем и всё). На роутере фаервол настроен правильно - другие системы (Android-телефон и LiveUSB на этом же компьютере) получают IPv6 адрес нормально и работают с ним.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Версии ПО возможно не совпадают и разработчики добавили багов. Перезапускать интерфейс с помощью ifconfig пробовал? Очень уж вероятно, что проблема в менеджере сетей и/или dhcp клиенте.

anonymous
()
Ответ на: комментарий от anonymous

Да, пробовал. Не помогает.

На десктопе версия NetworkManager новее, чем на LiveUSB.

Что можно попробовать сделать, чтобы IPv6-адрес всё таки получался?

KivApple ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

Не работает... Если я, конечно, правильно это делаю.

Останавливаю NetworkManager, чтобы не мешал.

Подключаюсь к Wi-Fi:

# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf

Получаю IPv4 адрес:

# dhclient -4 wlan0

Адрес нормально получается. Интернет работает. Пробую получить IPv6 адрес:

# dhclient -6 wlan0

dhclient так никогда и не возвращает управление в консоль. Получить IPv6 ему не удаётся.

В daemons.log видим (в errors.log ничего подозрительного нет):

Oct  8 22:53:52 localhost dhclient: Bound to *:546
Oct  8 22:53:52 localhost dhclient: XMT: Solicit on wlan0, interval 1060ms.
Oct  8 22:53:53 localhost dhclient: XMT: Solicit on wlan0, interval 2200ms.
Oct  8 22:53:55 localhost dhclient: XMT: Solicit on wlan0, interval 4560ms.
Oct  8 22:53:59 localhost dhclient: XMT: Solicit on wlan0, interval 9120ms.
Oct  8 22:54:09 localhost dhclient: XMT: Solicit on wlan0, interval 18000ms.
Oct  8 22:54:27 localhost dhclient: XMT: Solicit on wlan0, interval 35480ms.
Oct  8 22:55:02 localhost dhclient: XMT: Solicit on wlan0, interval 74110ms.
Oct  8 22:56:16 localhost dhclient: XMT: Solicit on wlan0, interval 124230ms.
KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

В Iptables на десктопе разрешено всё что только можно, поэтому он точно не может быть виноват:

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
# ip6tables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    

KivApple ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

А вот с этого места подробнее. С tcpdump я дела не имел.

С какими параметрами, когда и насколько времени запускать?

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Открываешь 2 терминала, в одном - tcpdump -i wlan0 -nn, в другом dhclient -6 wlan0. Выхлоп скопируй в текстовый файл(можно сразу перенаправление сделать). Повторить на другом дистре(где всё работает). Содержимое обоих файлов с пояснениями какой откуда - сюда, обернуть в теги [code] [/code]

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Вот данные с системы, где IPv6 не работает:

$ sudo tcpdump -i wlan0 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
00:32:47.081146 EAPOL key (3) v2, len 95
00:32:47.491232 EAPOL key (3) v2, len 95
00:32:47.506876 EAPOL key (3) v1, len 117
00:32:47.506928 EAPOL key (3) v1, len 117
00:32:47.506968 EAPOL key (3) v1, len 117
00:32:47.507536 EAPOL key (3) v1, len 117
00:32:47.508271 EAPOL key (3) v1, len 117
00:32:47.508298 EAPOL key (3) v1, len 117
00:32:47.901187 EAPOL key (3) v2, len 95
00:32:47.902086 EAPOL key (3) v1, len 117
00:32:47.902127 EAPOL key (3) v1, len 117
00:32:47.902732 EAPOL key (3) v1, len 117
00:32:47.908316 EAPOL key (3) v2, len 191
00:32:47.908389 EAPOL key (3) v1, len 95
00:32:48.123993 IP6 fe80::16d6:4dff:fe0e:c037.546 > ff02::1:2.547: dhcp6 solicit
00:32:48.853006 IP 192.168.2.3.5353 > 224.0.0.251.5353: 0 PTR (QM)? _sane-port._tcp.local. (39)
00:32:49.215242 IP6 fe80::16d6:4dff:fe0e:c037.546 > ff02::1:2.547: dhcp6 solicit
00:32:51.315597 IP6 fe80::16d6:4dff:fe0e:c037.546 > ff02::1:2.547: dhcp6 solicit
00:32:51.855500 IP 192.168.2.3 > 224.0.0.251: igmp v2 report 224.0.0.251
00:32:52.106894 IP 199.47.217.146.80 > 192.168.2.3.49199: Flags [P.], seq 516007004:516007183, ack 295332346, win 54, options [nop,nop,TS val 1242271216 ecr 1455544], length 179
00:32:55.580017 IP6 fe80::16d6:4dff:fe0e:c037.546 > ff02::1:2.547: dhcp6 solicit
00:33:03.265705 EAPOL key (3) v2, len 95
00:33:03.269582 EAPOL key (3) v1, len 117
00:33:03.270128 EAPOL key (3) v1, len 117
00:33:03.270808 EAPOL key (3) v1, len 117
00:33:03.674283 EAPOL key (3) v2, len 95
00:33:03.675014 EAPOL key (3) v1, len 117
00:33:03.675025 EAPOL key (3) v1, len 117
00:33:03.675634 EAPOL key (3) v1, len 117
00:33:03.683036 EAPOL key (3) v2, len 191
00:33:03.683091 EAPOL key (3) v1, len 95
00:33:04.472677 IP6 fe80::16d6:4dff:fe0e:c037.546 > ff02::1:2.547: dhcp6 solicit
00:33:04.854908 IP 192.168.2.3.5353 > 224.0.0.251.5353: 0 PTR (QM)? _sane-port._tcp.local. (39)
00:33:05.517527 ARP, Request who-has 192.168.2.3 tell 192.168.2.1, length 28
00:33:05.517556 ARP, Reply 192.168.2.3 is-at 14:d6:4d:0e:c0:37, length 28
00:33:10.438997 IP 199.47.217.146.80 > 192.168.2.3.49199: Flags [P.], seq 0:179, ack 1, win 54, options [nop,nop,TS val 1242273044 ecr 1455544], length 179
00:33:19.037684 EAPOL key (3) v2, len 95
00:33:19.043449 EAPOL key (3) v1, len 117
00:33:19.044183 EAPOL key (3) v1, len 117
00:33:19.044241 EAPOL key (3) v1, len 117
00:33:19.448383 EAPOL key (3) v2, len 95
00:33:19.449146 EAPOL key (3) v1, len 117
00:33:19.449157 EAPOL key (3) v1, len 117
00:33:19.449754 EAPOL key (3) v1, len 117
00:33:19.455137 EAPOL key (3) v2, len 191
00:33:19.455207 EAPOL key (3) v1, len 95
00:33:22.640180 IP6 fe80::16d6:4dff:fe0e:c037.546 > ff02::1:2.547: dhcp6 solicit
00:33:34.810903 EAPOL key (3) v2, len 95
00:33:34.817146 EAPOL key (3) v1, len 117
00:33:34.817163 EAPOL key (3) v1, len 117
00:33:34.817172 EAPOL key (3) v1, len 117
00:33:35.220859 EAPOL key (3) v2, len 95
00:33:35.221781 EAPOL key (3) v1, len 117
00:33:35.221823 EAPOL key (3) v1, len 117
00:33:35.222421 EAPOL key (3) v1, len 117
00:33:35.229865 EAPOL key (3) v2, len 191
00:33:35.229927 EAPOL key (3) v1, len 95
00:33:36.857221 IP 192.168.2.3.5353 > 224.0.0.251.5353: 0 PTR (QM)? _sane-port._tcp.local. (39)
^C
58 packets captured
58 packets received by filter
0 packets dropped by kernel
1 packets dropped by interface
В следующем сообщении выложу данные с системы, где всё работает.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Да, если что, IPv4 адрес роутера - 192.168.2.1, подсеть 192.168.2.0.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

хм. дай-ка конфиг ядер обоих систем. что-то тут не так, даже router solicitation не вызывается в системе, где ipv6 не работает. Более того, я там не вижу сообщений router advertisement, что еще более странно, т.к. роутер то один и он эти сообщения выдает...

Pinkbyte ★★★★★
()
Ответ на: комментарий от KivApple

Есть предположение: Wi-Fi интерфейсы поднимаются до авторизации, но ядро уже пытается посылать router solicitation и после авторизации уже не пытается искать роутер. Для проверки запусти ifconfig down wlan0 && ifconfig up wlan0 && tcpdump -i wlan0 -nn icmp6. Если появятся строчки router solicitation значит теория вероятна. Другая теория: проблема с ipv6-мултикастом, проверка ping6 ff02::1%wlan0 если пусто(таймаут), то верно.

anonymous
()
Ответ на: комментарий от anonymous
$ ping6 ff02::1%wlan0
PING ff02::1%wlan0(ff02::1) 56 data bytes
64 bytes from fe80::16d6:4dff:fe0e:c037: icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from fe80::16d6:4dff:fe0e:c037: icmp_seq=2 ttl=64 time=0.030 ms
64 bytes from fe80::16d6:4dff:fe0e:c037: icmp_seq=3 ttl=64 time=0.033 ms
64 bytes from fe80::16d6:4dff:fe0e:c037: icmp_seq=4 ttl=64 time=0.034 ms
^C
--- ff02::1%wlan0 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.029/0.031/0.034/0.006 ms
# ifconfig wlan0 down && ifconfig wlan0 up && tcpdump -i wlan0 -nn icmp6
tcpdump: WARNING: wlan0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
20:11:13.655695 IP6 :: > ff02::1:ff0e:c037: ICMP6, neighbor solicitation, who has fe80::16d6:4dff:fe0e:c037, length 24
20:11:14.659047 IP6 fe80::16d6:4dff:fe0e:c037 > ff02::2: ICMP6, router solicitation, length 16
20:11:14.872485 IP6 fe80::215:afff:feec:a3d8 > ff02::1: ICMP6, router advertisement, length 64
20:11:18.669029 IP6 fe80::16d6:4dff:fe0e:c037 > ff02::2: ICMP6, router solicitation, length 16
20:11:18.764623 IP6 fe80::215:afff:feec:a3d8 > ff02::1: ICMP6, router advertisement, length 64
20:11:22.682357 IP6 fe80::16d6:4dff:fe0e:c037 > ff02::2: ICMP6, router solicitation, length 16
20:11:22.861678 IP6 fe80::215:afff:feec:a3d8 > ff02::1: ICMP6, router advertisement, length 64
^C
7 packets captured
7 packets received by filter
0 packets dropped by kernel
8 packets dropped by interface
KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Вывод данных о пакетах начался уже когда я в NetworkManager запустил подключение к сети.

До этого tcpdump остановился на «listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes» и ничего не выводил.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Не очень понятно чем является «dropped by interface» в данном случае. Очередная странность: 1. ядро игнорирует RA(router advertisement) пакеты, иначе бы других RS пакетов не посылало бы. 2. если роутер не Windows 7 и не фильтрует мултикаст пинг, то ответов было бы в 2 раза больше. Но при этом до роутера доходят RS. ping6 fe80::215:afff:feec:a3d8%wlan0 работает(адрес роутера)? Вопрос уже вышел на уровень кернер-хакеров, я понятия не имею, что кроме iptables может уничтожать удачно принятые пакеты.

anonymous
()
Ответ на: комментарий от anonymous

Конечно весьма сомнительно... linux игнорирует RA если включен forwarding для ipv6. sysctl -A 2>/dev/null | grep net.ipv6.conf | grep forwarding.

anonymous
()
Ответ на: комментарий от anonymous

$ sudo sysctl -A 2>/dev/null | grep net.ipv6.conf | grep forwarding net.ipv6.conf.all.forwarding = 0 net.ipv6.conf.default.forwarding = 0 net.ipv6.conf.lo.forwarding = 0 net.ipv6.conf.eth0.forwarding = 0 net.ipv6.conf.wlan0.forwarding = 0

KivApple ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Роутер на том же ArchLinux. То же ядро. Только 32-битный, а десктоп 64-битный. Ну и адаптеры Wi-Fi разных моделей. Однако же на том же десктопе при загрузке с LiveUSB (32-битный, месяц не обновлялся) IPv6 нормально работает.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

Новый подробности этой истории - IPv6 адрес не получается только на 64-битном ядре. 32-битное ядро той же версии успешно получает IPv6 адрес.

Запускал две виртуальные машины с арчем в VirtualBox - она 32 бита, другая 64. Обе обновлялись в последний раз в одно и то же время.

Отдаю USB-устройство 32-битной машине - она успешно подключается. Отдаю 64-битной - она получает только IPv4 адрес.

Что со всем этим делать? Ну не переходить же на 32-битное ядро... Может какие-то модули по дефолту не загружаются или опции различаются... Сам по себе IPv6 в 64-битном ядре есть - gogoCLIENT нормально строит тунель. Да и на вики написано, что он включен по умолчанию.

KivApple ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.