¿Permitir el tráfico IPv6 entrante a un host y puerto cuando el prefijo IPv6 es dinámico?

¿Permitir el tráfico IPv6 entrante a un host y puerto cuando el prefijo IPv6 es dinámico?

Con IPv4, solía poder darle a un host una dirección IP local estática en la LAN y usar una regla de firewall en el firewall/enrutador para reenviar un puerto en la IP (posiblemente dinámica) orientada a Internet utilizada por la red para un puerto en ese host en particular, utilizando la dirección IPv4 LAN estática del host como una forma estable de identificar el host en la regla de firewall.

Pero con IPv6, cada host utiliza IP de Internet enrutables reales, por lo que el tráfico entrante para el host ya estará dirigido a él y no hay necesidad de NAT. Pero aún necesita poder escribir una regla de firewall que indique que se debe permitir el tráfico entrante a un host y puerto en particular, mientras que se debe bloquear el tráfico a otros hosts o puertos.

Pero si el prefijo bajo el cual la red asigna direcciones IPv6 es dinámico, ¿cómo se referiría a un host en particular en una regla de firewall para permitir el tráfico hacia él? No puedes simplemente permitir el tráfico a su dirección IPv6, porque la próxima semana tendrá una dirección IPv6 con un prefijo diferente, porque el ISP le habrá asignado a la red un prefijo diferente.

¿Cómo se configura entonces un firewall para permitir el tráfico entrante a ese host en algún puerto? Parece ip6tablesque hay una --destopción para hacer coincidir por destino, pero eso solo parece permitirle ingresar una dirección completa y no, por ejemplo, un sufijo de la dirección que puede garantizar que se mantenga estático para un host. Desde la página de manual:

       [!] -s, --source address[/mask][,...]
              Source  specification.  Address can be either a network name, a
              hostname, a network IP address (with /mask), or a plain IP  ad‐
              dress. Hostnames will be resolved once only, before the rule is
              submitted to the kernel.  Please note that specifying any  name
              to  be resolved with a remote query such as DNS is a really bad
              idea.  The mask can be either an ipv4 network mask  (for  ipta‐
              bles)  or  a  plain number, specifying the number of 1's at the
              left side of the network mask.  Thus, an iptables mask of 24 is
              equivalent to 255.255.255.0.  A "!" argument before the address
              specification inverts the sense of the address. The flag  --src
              is  an alias for this option.  Multiple addresses can be speci‐
              fied, but this will expand to multiple rules (when adding  with
              -A), or will cause multiple rules to be deleted (with -D).

       [!] -d, --destination address[/mask][,...]
              Destination  specification.   See  the  description  of  the -s
              (source) flag for a detailed description of  the  syntax.   The
              flag --dst is an alias for this option.

¿Hay alguna manera de manejar esto ip6tables? ¿Existe alguna otra capa superior ip6tablesque se supone que genera reglas que cambian a medida que se renumera la red, que todos estén usando realmente? ¿Existe algún tipo de ip6tablescomplemento que me permita hacer coincidir el tráfico que irá a un host en particular incluso si cambia el número de red? ¿Otros firewalls de SO manejan esto de manera diferente?

Respuesta1

ip6tablesacepta una máscara de bits para la dirección. A diferencia de iptablesIPv4, estos bits no necesariamente tienen que estar todos al principio de la dirección, por lo que algo como esto debería funcionar bien:

ip6tables -A INPUT -d ::1234:56ff:fe78:90ab/::ffff:ffff:ffff:ffff -j ACCEPT

Eso haría que ip6tables acepte todos los paquetes que vayan a una dirección IPv6 que termine en ::1234:56ff:fe78:90ab, sin importar el prefijo.

información relacionada