У меня есть raspberry pi с двумя сетевыми интерфейсами; один подключен к традиционной точке доступа управляемого режима (wlan0
) и тот, в котором размещается специальная (IBSS) сеть (wlan1
). Недавно я начал с нуля с чистой сборки raspbian, и у меня, похоже, что-то пошло не так с моей конфигурацией ipv6, потому что простой пинг моего собственного интерфейса не работает. Пример:
Во-первых, шаги по настройке wlan1
:
# Clear out any previous configuration
ip link set wlan1 down
ip link set wlan1 up
# Set it to IBSS with a particular SSID and frequency
iw wlan1 set type ibss
iw wlan1 ibss join bananaNET 2462
# Set static IP address/routing prefix
ip addr change fd37:5041::1/96 dev wlan1
Выполнение этих шагов дает нам хороший результат от ip link
и ip addr
:
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether dc:a6:32:3b:9d:f6 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DORMANT group default qlen 1000
link/ether dc:a6:32:3b:9d:f7 brd ff:ff:ff:ff:ff:ff
4: wlan1: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT mode DORMANT group default qlen 1000
link/ether 74:da:38:41:d5:55 brd ff:ff:ff:ff:ff:ff
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether dc:a6:32:3b:9d:f6 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether dc:a6:32:3b:9d:f7 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.102/24 brd 192.168.0.255 scope global dynamic noprefixroute wlan0
valid_lft 84051sec preferred_lft 73251sec
inet6 fd00::1205:53bb:f0a0:57f1/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 3559sec preferred_lft 559sec
inet6 2602:47:d406:fe00:99cf:b40b:509b:4f1a/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 3559sec preferred_lft 559sec
inet6 fe80::86f:5a1f:7689:f407/64 scope link
valid_lft forever preferred_lft forever
4: wlan1: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT group default qlen 1000
link/ether 74:da:38:41:d5:55 brd ff:ff:ff:ff:ff:ff
inet6 fd37:5041::1/96 scope global tentative
valid_lft forever preferred_lft forever
Попытка проверить связь с моим собственным IP-адресом, на удивление, терпит неудачу, и, что еще хуже, выдает очень подозрительное сообщение об ошибке:
$ ping -6 fd37:5041::1
PING fd37:5041::1(fd37:5041::1) 56 data bytes
From fd00::1205:53bb:f0a0:57f1: icmp_seq=1 Destination unreachable: Address unreachable
From fd00::1205:53bb:f0a0:57f1: icmp_seq=2 Destination unreachable: Address unreachable
From fd00::1205:53bb:f0a0:57f1: icmp_seq=3 Destination unreachable: Address unreachable
Я не понимаю, почему fd00::1205:53bb:f0a0:57f1
будет пытаться отправить эти пакеты. Проверим таблицы маршрутизации:
$ route -6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
localhost/128 [::] U 256 2 0 lo
2602:47:d406:fe00::/64 [::] U 303 1 0 wlan0
fd00::/64 [::] U 303 1 0 wlan0
fd37:5041::/96 [::] U 256 5 0 wlan1
fe80::/64 [::] U 256 2 0 wlan0
[::]/0 fe80::72f2:20ff:fee3:c870 UG 303 3 0 wlan0
localhost/128 [::] Un 0 7 0 lo
2602:47:d406:fe00:99cf:b40b:509b:4f1a/128 [::] Un 0 6 0 wlan0
fd00::1205:53bb:f0a0:57f1/128 [::] Un 0 5 0 wlan0
fe80::86f:5a1f:7689:f407/128 [::] Un 0 3 0 wlan0
ff00::/8 [::] U 256 7 0 wlan0
ff00::/8 [::] U 256 2 0 wlan1
[::]/0 [::] !n -1 1 0 lo
Насколько я могу судить, все налаживается. Даже пытаясь указать интерфейс для ping
не работает, и действительно экспериментирует с ping
показывает, что ping
вещи, которые есть в двух интерфейсах тот же адрес:
$ ping -6 -I wlan0 fd37:5041::1
PING fd37:5041::1(fd37:5041::1) from fd00::1205:53bb:f0a0:57f1 wlan0: 56 data bytes
$ ping -6 -I wlan1 fd37:5041::1
PING fd37:5041::1(fd37:5041::1) from fd00::1205:53bb:f0a0:57f1 wlan1: 56 data bytes
Поэтому мои вопросы:
Почему ping
думаете, что два интерфейса имеют одинаковый адрес?
Почему кажется, что маршрутизация так сильно нарушена?
Сведения о системе: Raspberry pi v4 под управлением Raspbian 10 с ядром 4.19.108 (скомпилировано пользователем, но с конфигурацией по умолчанию, за исключением CONFIG_HZ=1000
). wlan0
это встроенный rpi4 brcmfmac
, пока wlan1
представляет собой набор микросхем USB ( Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
)
РЕДАКТИРОВАТЬ: Я обнаружил, что отключение dhcpcd
на wlan1
добавляя denyinterfaces wlan1
к /etc/dhcpcd.conf
исправляет это! Я понятия не имею, почему это на что-то влияет, и мне все равно было бы интересно узнать.