SNAT em IP6Tables

1

Netfilter diz que eles têm suporte para SNAT e DNAT para ipv6. Eu olho sob as páginas de manual do ip6tables e vejo que há SNAT e DNAT listados. Então, minha pergunta é como você faz regras para eles? Eu tentei usar a mesma estrutura das regras para o iptables, mas ip6tables não tem uma tabela nat e SNAT / DNAT são estados virtuais. Então não sei quais modificações fazer de um exemplo como:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT - para 1.2.3.4

para ser aplicável ao ip6tables. Obrigado pela ajuda!

    
por Peter DiMarco 17.01.2013 / 23:00

3 respostas

4

EDITAR **: Você precisa de um kernel 3.7+ quando eles lançaram a tabela NAT para o ipv6. Então você usa o iptables 1.4.17 e você pode usar o comando simples de:

  • ip6tabelas -t nat -A POSTROUTING -o eth0 -j MASQUERADE

ORIGINAL **:

No site do netfilter você pode encontrar:

  • todos os tipos de endereço de rede e tradução de porta, por exemplo NAT / NAPT (IPv4 e IPv6)

Na página do manual do ipv6 ( link )

  • SNAT
  • Um estado virtual, correspondendo se o endereço de origem original for diferente do destino da resposta.
  • DNAT
  • Um estado virtual, correspondente se o destino original for diferente da fonte de resposta.

Então parece ser possível. Mas eu não encontrei exemplos de seu uso.

    
por 18.01.2013 / 02:49
2

Não há NAT com IPv6. Um dos principais pontos do IPv6 é eliminar o NAT. O NAT foi inventado (principalmente) como uma maneira de estender a quantidade utilizável de espaço IPv4. Com o IPv6, estamos voltando ao design original de todos os end-points na Internet sendo endereçáveis de todos os outros end-points.

    
por 30.08.2013 / 12:58
2

Eu tenho uma tabela nat:

apoc ~ # ip6tables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

E pode escrever regras de SNAT:

apoc ~ # ip6tables -t nat -A POSTROUTING -o eth1 -j SNAT --to 2001:db8::1
apoc ~ # ip6tables -t nat -nvL POSTROUTING
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 SNAT       all      *      eth1    ::/0                 ::/0                 to:2001:db8::1

Isto está no ArchLinux com o kernel 3.10.7-1-ARCH; é uma adição recente ao código do netfilter.

Devo reiterar Michael Hampton embora:

Not to mention, if you're even thinking about NAT in the context of an IPv6 deployment, something is horribly wrong and you need to revisit your network design.

    
por 30.08.2013 / 13:50