На моем брандмауэре/маршрутизаторе Fedora 34 Linux я заметил
- что запросы IPV6 DHCP PD отправляются нормально.
- что ответы IPV6 DHCP PD действительно поступают по сети
- что ядро брандмауэра по какой-то причине отправляет ответ DHCP PD в правиле FORWARD, даже если dhclient местный
- чтобы адреса в пакетах были правильными, совпадали с DHCP-сервером и локальным брандмауэром.
Подробности можно найти на Красная шляпа.
У нас есть интерфейс ppp:
# ip -6 as dev ppp0
20: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc cbq состояние НЕИЗВЕСТНО группа по умолчанию qlen 3
inet6 fe80::c5d5:e942:39c7:7eb7 узел fe80::9ecc:83ff:fec6:e7e5/128 ссылка области
valid_lft навсегда
У нас есть dhclient, который слушает ppp0:
# lsof -p 4066992 -n
КОМАНДА PID ПОЛЬЗОВАТЕЛЬ ТИП FD УСТРОЙСТВО РАЗМЕР/ВЫКЛ НАЗВАНИЕ УЗЛА
dhclient 4066992 root cwd DIR 254,0 4096 40961 /root
dhclient 4066992 root rtd DIR 254,0 4096 2 /
dhclient 4066992 root txt REG 254,2 2018144 141553 /usr/sbin/dhclient
dhclient 4066992 корневая память REG 254,2 53728 22104 /usr/lib64/libnss_files-2.33.so
dhclient 4066992 корневая память REG 254,2 1913544 21939 /usr/lib64/libc-2.33.so
dhclient 4066992 корневая память REG 254,2 32696 30196 /usr/lib64/libcap-ng.so.0.0.0
dhclient 4066992 корневая память REG 254,2 842360 30776 /usr/lib64/ld-2.33.so
dhclient 4066992 root 0u CHR 136,4 0t0 7 /dev/pts/4 (удален)
dhclient 4066992 root 1u CHR 136,4 0t0 7 /dev/pts/4 (удален)
dhclient 4066992 root 2u CHR 136,4 0t0 7 /dev/pts/4 (удален)
dhclient 4066992 root 3u unix 0x000000001f2593f7 0t0 16525445 тип = DGRAM (НЕ ПОДКЛЮЧЕН)
dhclient 4066992 root 4w REG 254,4 64 251 /var/lib/dhclient/dhclient6.leases
dhclient 4066992 root 5w FIFO 0,8 0t0 16525446 канал
dhclient 4066992 root 6u IPv6 16524541 0t0 UDP [fe80::c5d5:e942:39c7:7eb7]:dhcpv6-client
Вроде все правильно.
Затем приходящие пакеты:
# tcpdump -i ppp0 -vn порт 546
сбросил привилегии в tcpdump
tcpdump: прослушивание ppp0, тип ссылки LINUX_SLL (Linux Cooked v1), длина снимка 262144 байт
06:53:09.236781 IP6 (метка потока 0x7f0d8, hlim 1, следующий заголовок UDP (17), длина полезной нагрузки: 60) fe80::c5d5:e942:39c7:7eb7.dhcpv6-client > ff02::1:2.dhcpv6-server : [udp sum ok] dhcp6 solicit (xid=b68ba1 (client-ID hwaddr/time type 1 time 394565497 004063f60200) (option-request DNS-server DNS-search-list) (истекшее время 65535) (IA_PD IAID:0 T1 :3600 T2:5400))
06:53:09.469530 IP6 (класс 0xc0, hlim 64, следующий заголовок UDP (17) длина полезной нагрузки: 141) .dhcpv6-client: [udp sum ok] реклама dhcp6 (xid=b68ba1 (идентификатор клиента hwaddr/тип времени 1 раз 394565497 004063f60200) (идентификатор сервера vid 0000058339633a63) (IA_PD IAID:0 T1:3600 T2:5760 (IA_PD- префикс 2001:981:a812::/48 pltime:7200 vltime:7200)) (DNS-сервер 2001:888:0:6::66 2001:888:0:9::99))
06:53:09.469756 IP6 (класс 0xc0, hlim 63, следующий заголовок UDP (17) длина полезной нагрузки: 141) .dhcpv6-client: [udp sum ok] реклама dhcp6 (xid=b68ba1 (идентификатор клиента hwaddr/тип времени 1 раз 394565497 004063f60200) (идентификатор сервера vid 0000058339633a63) (IA_PD IAID:0 T1:3600 T2:5760 (IA_PD- префикс 2001:981:a812::/48 pltime:7200 vltime:7200)) (DNS-сервер 2001:888:0:6::66 2001:888:0:9::99))
^ С
Вроде правильно обращаются, к интерфейсу dhclient.
Так почему же dhclient не получает?
Я сделал тест без активного брандмауэра: никаких изменений.
Я упростил маршрутизацию и т. д., но без изменений.
Это не проблема от https://stackoverflow.com/questions/19702489/response-udp-packets-not-arriving-regardless-of-right-ip-and-port-after-sending поскольку с dhcp-сервером можно связаться из-за существующих маршрутов.
Где я могу узнать, почему ответный пакет DHCP с PD не приходит локально?
Пожалуйста, опубликуйте.
Ты делаешь