Configuração do Jool no OpenWrt

Configuração do Jool no OpenWrt
Código copiado para a área de transferência!

Configuração do Jool no OpenWrt

Este tutorial ensina como configurar o Jool para NAT64 em uma namespace de rede separada no OpenWrt.

1. Instalação de Pacotes Necessários

Instale os pacotes necessários para a configuração do Jool.

# Instalar pacotes
opkg update &&
opkg install kmod-veth ip-full kmod-jool-netfilter jool-tools-netfilter
        

1. Configuração do Namespace de Rede do Jool

Criar ou copiar o seguinte script de shell para /etc/jool/setupjool.sh:

# Copie e cole o comando via SSH:
vi /etc/jool/setupjool.sh
    
#!/bin/sh
# Configurar Jool
ip link add jool type veth peer openwrt
ip netns add jool
ip link set dev openwrt netns jool
ip netns exec jool sh << EOF
    sysctl -w net.ipv4.conf.all.forwarding=1
    sysctl -w net.ipv6.conf.all.forwarding=1
    sysctl -w net.ipv6.conf.openwrt.accept_ra=2
    sysctl -w net.ipv4.ip_local_port_range="32768 32999"
    ip link set dev lo up
    ip link set dev openwrt up
    ip addr add dev openwrt 192.168.164.2/24
    ip addr add dev openwrt fe80::64
    ip route add default via 192.168.164.1
    modprobe jool
    jool instance add --netfilter --pool6 64:ff9b::/96
    jool global update lowest-ipv6-mtu 1500
    jool pool4 add 192.168.164.2 33000-65535 --tcp
    jool pool4 add 192.168.164.2 33000-65535 --udp
    jool pool4 add 192.168.164.2 33000-65535 --icmp
EOF
        

3. Torne o Script Executável

Execute o seguinte comando para tornar o script executável e executá-lo uma vez:

# Tornar script executável e executar
chmod +x /etc/jool/setupjool.sh
/etc/jool/setupjool.sh
        

Adicionar linha ao /etc/rc.local

Adicione a seguinte linha por /etc/rc.local meio da CLI ou da Luci UI (System - Startup - Local Startup), antes do exit 0.

vi /etc/rc.local
    

Copiar e colar comando via SSH

Copie e cole o comando via SSH.

/etc/jool/setupjool.sh
    

Persistir sysupgrades

Adicione o arquivo /etc/sysupgrade.conf por meio da CLI ou da Luci UI (System - Backup / Flash Firmware - Configuration).

Copie e cole o comando via SSH.

cat << EOF >> /etc/sysupgrade.conf
/etc/jool/setupjool.sh
EOF
    

4. Configurar Interface Jool

  • Use sub-rede IPv4 192.168.164.1/24
  • Alocar um IPv6 /64 com SLAAC
  • Rota prefixo NAT64 para fe80::64
  • Configurar Jool zona de firewall e encaminhar da zona LAN

Configurar nova interface no arquivo /etc/config/network.

uci set network.jool='interface'
uci set network.jool.proto='static'
uci set network.jool.device='jool'
uci set network.jool.ipaddr='192.168.164.1'
uci set network.jool.netmask='255.255.255.0'
uci set network.jool.ip6assign='64'
uci set network.jool.ip6hint='64'
uci commit network
/etc/init.d/network restart
    

5. Configurar DHCPv4 e SLAAC/DHCPv6

Configure o arquivo '/etc/config/dhcp' para gerenciar a alocação de endereços IP na interface Jool.

# Configurar DHCPv4 e SLAAC/DHCPv6
uci set dhcp.jool='dhcp'
uci set dhcp.jool.interface='jool'
uci set dhcp.jool.start='100'
uci set dhcp.jool.limit='150'
uci set dhcp.jool.leasetime='12h'
uci set dhcp.jool.ignore='1'
uci set dhcp.jool.ra='server'
uci set dhcp.jool.ra_default='2'
uci commit dhcp
/etc/init.d/dnsmasq restart
    

6. Adicionar uma rota IPv6 estática

Protocolo de Internet versão 6

Arquivo: /etc/config/network

uci add network route6
uci set network.@route6[-1].interface='jool'
uci set network.@route6[-1].target='64:ff9b::/96'
uci set network.@route6[-1].gateway='fe80::64'
uci commit network
/etc/init.d/network restart
    

7. Adicionar Jool à zona de firewall

Arquivo: /etc/config/firewall

uci add firewall zone
uci set firewall.@zone[-1].name='jool'
uci set firewall.@zone[-1].input='ACCEPT'
uci set firewall.@zone[-1].output='ACCEPT'
uci set firewall.@zone[-1].forward='REJECT'
uci add_list firewall.@zone[-1].network='jool'

uci add firewall forwarding
uci set firewall.@forwarding[-1].src='jool'
uci set firewall.@forwarding[-1].dest='wan'

uci commit firewall
/etc/init.d/firewall restart
    

8. Zona de avanço de LAN para Jool

Arquivo: /etc/config/firewall

uci add firewall forwarding
uci set firewall.@forwarding[-1].src='lan'
uci set firewall.@forwarding[-1].dest='jool'

uci commit firewall
/etc/init.d/firewall restart
    

9. Teste

Após a configuração, você pode testar o NAT64 pingando um endereço IPv4 sintetizado:

# Testar NAT64
ping 64:ff9b::1.1.1.1
        

10. Configuração do DNS64

Você pode configurar o DNS64 usando um servidor DNS como Cloudflare ou Google:

  • Cloudflare DNS64: 2606:4700:4700::64
  • Google DNS64: 2001:4860:4860::64

Adicionar a opção PREF64 às redes existentes

Opção nas mensagens de Anúncio de Roteador (Router Advertisement) que carrega o prefixo NAT64 que a rede está usando. Nova funcionalidade introduzida com a versão 23.05.0.

arquivo /etc/config/dhcp

config dhcp 'lan'
    option interface 'lan'
    ...
    option ra_pref64 '64:ff9b::/96'
    

Configurar DNS64

Em uma rede padrão de pilha dupla, com DNS regular, um dispositivo apenas IPv6 não consegue se conectar a servidores apenas IPv4, pois não tem acesso ao NAT44.

O DNS64 vem para corrigir isso, sintetizando registros AAAA a partir de registros A. Esses endereços IPv6 são traduzidos pelo NAT64 (jool) para endereços IPv4.

Para usar o DNS64, você pode alterar seu DNS para o DNS64 do Cloudflare, DNS64 do Google ou configurar o unbound para DNS64 a fim de resolver corretamente os nomes de domínio em endereços traduzidos. O DNS64 do Cloudflare e do Google só pode ser usado se você utilizar o prefixo NAT64 bem conhecido 64:ff9b::/96.

11. Tornando sua Rede IPv6-Only (Modo IPv6-Mostly)

Adicione a opção DHCP 108 no arquivo /etc/config/dhcp da zona desejada para sinalizar aos dispositivos que eles devem operar apenas com IPv6.

Android, iOS e macOS funcionam bem em redes apenas IPv6. Para sinalizar aos clientes que estão aptos e dispostos a executar apenas IPv6, a opção DHCP 108 foi introduzida com a RFC8925.

Adicione esta opção à configuração DHCPv4 da zona desejada, por exemplo, lan.

arquivo /etc/config/dhcp

# 30 minutos = 1800 segundos = 0x708 segundos
dhcp_option '108,0:0:7:8'
    

Após isso, todos os seus dispositivos móveis e macOS abandonarão o lease IPv4 e funcionarão em modo apenas IPv6.

Postar um comentário

Postagem Anterior Próxima Postagem