Estou tentando configurar uma rede somente IPv6 com o NAT64 / DNS64 em um GL.iNet GL-AR150 executando o OpenWRT "Chaos Calmer" 15.05 (kernel Linux 3.18.27). Eu configurei com sucesso o DNS64 usando bind9 e agora estou tentando fazer com que o NAT64 funcione.
Eu instalei o "tayga" do repositório do OpenWRT:
root@GL-AR150:~# opkg info tayga
Package: tayga
Version: 0.9.2-2
Depends: libc, ip, kmod-ipv6, kmod-tun
Status: install user installed
Architecture: ar71xx
Installed-Time: 1516620745
E adquirimos um script do link que supostamente automatiza a configuração do tayga (embora eu também precisei faça algumas modificações no script para contornar alguns erros . Isso configura uma interface de rede de encapsulamento chamada nat64
e executa o tayga para processar pacotes nele. Eu posso ver via ps
que tayga está sendo executado, e a interface definitivamente existe, no entanto, as tentativas de executar ping em hosts IPv4 por meio de endereços mapeados em IPv6 não estão funcionando. Não tenho certeza se isso é um problema de roteamento ou outra coisa.
A configuração do tayga produzida pelo script de inicialização é:
tun-device nat64
ipv4-addr 192.168.2.1
prefix 64:ff9b::/96
ipv6-addr fdcf:101c:d870::1
dynamic-pool 192.168.2.0/24
data-dir /tmp/db/tayga
Minha tabela de roteamento IPv6 depois de executar o script é:
Destination Next Hop Flags Metric Ref Use Iface
::/0 :: !n -1 1 12003 lo
64:ff9b::/96 :: U 1024 0 0 nat64
fdcf:101c:d870:0:2801:1f4d:c311:e529/128 :: UC 0 2 31 br-lan
fdcf:101c:d870::/64 :: U 1024 1 0 br-lan
fdcf:101c:d870::/48 :: !n 2147483647 0 0 lo
fe80::/64 :: U 256 0 0 br-lan
fe80::/64 :: U 256 0 0 wlan-sta
fe80::/64 :: U 256 0 0 wlan0
::/0 :: !n -1 1 12003 lo
::1/128 :: Un 0 1 0 lo
fdcf:101c:d870::/128 :: Un 0 1 0 lo
fdcf:101c:d870::1/128 :: Un 0 3 52 lo
fe80::/128 :: Un 0 1 0 lo
fe80::/128 :: Un 0 1 0 lo
fe80::/128 :: Un 0 1 0 lo
fe80::e495:6eff:fe43:1ef7/128 :: Un 0 1 0 lo
fe80::e695:6eff:fe43:1ef7/128 :: Un 0 1 230 lo
fe80::e695:6eff:fe43:1ef7/128 :: Un 0 1 0 lo
ff02::1/128 :: UC 0 0 1 br-lan
ff02::c/128 :: UC 0 0 3578 br-lan
ff02::1:ff00:1/128 :: UC 0 0 1 br-lan
ff05::c/128 :: UC 0 0 3520 br-lan
ff0e::c/128 :: UC 0 0 3520 br-lan
ff00::/8 :: U 256 5 0 br-lan
ff00::/8 :: U 256 0 0 wlan-sta
ff00::/8 :: U 256 0 0 wlan0
::/0 :: !n -1 1 12003 lo
conforme relatado por route -A inet6
ou, alternativamente, conforme relatado por ip -6 route
:
64:ff9b::/96 dev nat64 metric 1024
fdcf:101c:d870::/64 dev br-lan proto static metric 1024
unreachable fdcf:101c:d870::/48 dev lo proto static metric 2147483647 error -128
fe80::/64 dev br-lan proto kernel metric 256
fe80::/64 dev wlan-sta proto kernel metric 256
fe80::/64 dev wlan0 proto kernel metric 256
e minha tabela de roteamento IPv4 é:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlan-sta
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan-sta
192.168.1.254 0.0.0.0 255.255.255.255 UH 0 0 0 wlan-sta
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 nat64
192.168.8.0 0.0.0.0 255.255.255.0 U 0 0 0 br-lan
Informações relevantes sobre redes:
fe80::e695:6eff:fe43:1ef7/128
- é o endereço IPv6 de ligação local para o meu router
64:ff9b::/96
- é o prefixo de rede usado para mapear endereços IPv4 no espaço de endereço IPv6
wlan0
- é a rede sem fio usada para se conectar ao roteador e na qual desejo oferecer suporte a clientes IPv6 que se conectam a serviços IPv4. Eu acredito que também é superado para eth0
as br-lan
(essa foi a configuração padrão do roteador que eu não mudei). Isto tem os seguintes endereços:
fdcf:101c:d870::/64
- é o prefixo da minha rede privada roteável, a partir do qual os endereços de clientes estão sendo alocados apenas na sub-rede 0 (embora ainda não tenha feito nada para evitar que outras sub-redes sejam roteadas para a rede) wlan-sta
é uma conexão a uma rede somente IPv4 com acesso público à Internet. Esta rede tem endereços:
Os pacotes IPv4 alcançam com sucesso a Internet, mas o envio de pacotes via IPv6 falha:
root@GL-AR150:~# ping unix.stackexchange.com
PING unix.stackexchange.com (151.101.1.69): 56 data bytes
64 bytes from 151.101.1.69: seq=0 ttl=58 time=16.900 ms
64 bytes from 151.101.1.69: seq=1 ttl=58 time=22.749 ms
^C
--- unix.stackexchange.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 16.900/19.824/22.749 ms
root@GL-AR150:~# ping6 unix.stackexchange.com
PING unix.stackexchange.com (64:ff9b::9765:c145): 56 data bytes
^C
--- unix.stackexchange.com ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
Eu configurei o firewall adicionando uma nova zona "nat64" com configurações:
Alguma sugestão do que há de errado com essa configuração?
Tags networking ipv6 nat openwrt