Em pf, por que o IPv6 pode ser especificado como um 'protocolo' bem como uma família de endereços?

2

No firewall pf, parâmetros do pf.conf man page ' 'section afirma que "protocol" é qualquer coisa de /etc/protocols e que é diferente de "address family" ( "<af>" ) que é inet ou inet6. /etc/protocols , por sua vez, inclui "IPv6" como protocolos e, em aplicativos baseados em BSD, como o firewall pfSense, o IPv6 é listado como um protocolo distinto de uma família IP (por exemplo, em definições de regras NAT).

Mas o IPv6 não é um protocolo no sentido em que tcp / udp / icmp é. Há uma clara distinção lógica e funcional entre IPv4 / IPv6 como as duas famílias de endereços IP (o transporte subjacente) e os muitos protocolos transportados dentro de IPv4 / IPv6.

(Se fosse, então, nat on em1 inet proto ipv6 from 1.2.3.4 to any -> 5.6.7.8 port 2000:2999 e block drop in inet proto ipv6 from 1.2.3.4 to any
seriam significativos e comparáveis a nat on em1 inet proto tcp from 1.2.3.4 to any -> 5.6.7.8 port 2000:2999 e block drop in inet proto tcp from 1.2.3.4 to any )

Quando o IPv6 seria significativo ou usado no campo "protocolo" em uma regra de FP, em vez de especificá-lo como a família de endereços? (E poderia NAT ser quase sempre usado apenas para IPv4, tem algo a ver com isso?)

    
por Stilez 03.10.2016 / 10:44

1 resposta

2

IPv6 é um protocolo no sentido de TCP / UDP / ICMP. Enquanto eles trabalham em camadas diferentes, há nada que impede você de colocar em camadas o IP em cima do IP, a fim de obter um túnel simples semelhante a VPN. (Compare isso com o IP dentro do GRE dentro do IP.) Por essa razão, tanto o IPv4 quanto o IPv6 têm atribuições de número de protocolo - um pacote IPv4 aninhado é "protocolo 4" e IPv6 é "protocolo 41".

Mais especificamente, IPv6-over-IPv4 também é conhecido como "6in4" ou "proto41", um mecanismo de transição usado para obter conectividade IPv6 de um provedor de encapsulamento por meio de uma rede somente IPv4. (Hurricane Electric é um popular, há também "6to4" automático usando relés anycast.)

O pfSense tem documentação para configurar tal túnel - no FreeBSD isso seria feito usando um gif(4) interface; no Linux, usando sit ou ipip . O provedor de túneis tem configuração idêntica (mas espelhada) que descompacta o pacote IP interno e o encaminha para sua rede IPv6 nativa.

Este não é o método de túnel mais ideal em comparação com, e. GRE, L2TP (apenas um túnel por par externo src / dst); ou FOU, GUE (muitos roteadores domésticos não permitem encaminhamento de porta para qualquer coisa que não seja TCP ou UDP); ou protocolos VPN especiais (sem autenticação, sem criptografia). No entanto, é o túnel mais simples , e um com o menor overhead (apenas 20 bytes).

Referência obrigatória "Inception": O IPv4 requer um mínimo de MTU de 68 bytes, enquanto o IPv6 aumenta para 1280 bytes. Com a Ethernet MTU padrão de 1500, o número máximo de vezes que você pode empilhar túneis IPv4 é ~ 70 e, da mesma forma, ~ 5 camadas para IPv6.

    
por 03.10.2016 / 10:51

Tags