Ip6tables DNAT на openwrt не работает

Я настраиваю ipv6 dnat, используя ip6tables на моем маршрутизаторе openwrt:

ip6tables -t nat -I PREROUTING -p udp --dport 5100 -j DNAT --to-destination fdca:3aae:fe2e::1:53 # fdca:3aae:fe2e::1 is my router address

Затем протестируйте его на другом сервере Linux, копая так:

dig -6 www.google.com @fdca:3aae:fe2e::1 -p5100

Копать не удалось, время соединения истекло через несколько секунд. Но счетчик pkts ip6tables добавил 1 после выполнения команды dig. И tcpdump показывает, что маршрутизатор получил пакет udp, но без ответа. Я проверил IPv4, как это и добился успеха. Так почему же провалился ipv6?

Пакеты TCPDUMP:

16: 29: 16.914206 IP6 fdca: 3aae: fe2e: 0: 5054: ff: fe32: 8d8b.48898> fdca: 3aae: fe2e:: 1.5100: UDP, длина 43

ip6tables -t nat -L -x -n -v show:

Цепное ПРЕДУПРЕЖДЕНИЕ (политика ПРИНИМАЕТ 1 пакет, 91 байт) pkts bytes target prot opt ​​in out source destination 8 728 DNAT udp * *:: / 0:: / 0 udp dpt: 5100 to: fdca: 3aae: fe2e:: 1: 53

cat / proc / net / nf_conntrack | grep 5100 показать:

ipv6 10 udp 17 56 src = fdca: 3aae: fe2e: 0000: 5054: 00ff: fe32: 8d8b dst = fdca: 3aae: fe2e: 0000: 0000: 0000: 0000: 0001 sport = 47169 dport = 5100 пакетов = 1 байт =91 [UNREPLIED] src=fdca:3aae:fe2e:0000:0000:0000:0001:00dst=fdca:3aae:fe2e:0000:5054:00ff:fe32:8d8b sport=5100 dport=47169 пакетов = 0 байт = 0 отметка = 0 зона = 0 использование = 2

1 ответ

Я думаю, вам нужно защитить адрес IPv6 с [] :

ip6tables -t nat -I PREROUTING -p udp --dport 5100 -j DNAT --to-destination [fdca:3aae:fe2e::1]:53 # fdca:3aae:fe2e::1 is my router address

Это также должно работать и проще:

ip6tables -t nat -I PREROUTING -p udp --dport 5100 -j REDIRECT --to-ports 53
Другие вопросы по тегам