¿Esta regla de iptable afecta a todo el tráfico entrante?

¿Esta regla de iptable afecta a todo el tráfico entrante?

Pregunta

Si uso las siguientes condiciones en una regla de iptable, ¿cuál es el efecto? ¿Es lo mismo que especificar cualquier conexión dirigida a mí?

! -d 127.0.0.0/8 -p tcp -m addrtype --dst-type LOCAL

Fondo

Específicamente, lo estoy usando para redirigir puertos en mi host (con IP pública, digamos, 150.200.30.40) a uno de mis contenedores LXC (con IP 10.0.3.202). Me parece que estas reglas son equivalentes para el tráfico dirigido a la dirección IP pública de mi host.

## IPTABLE RULE FOR INCOMING CONNECTIONS??
iptables -t nat -A PREROUTING ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -p tcp --dport 2222 -j DNAT --to-destination 10.0.3.202:22

## EQUIVALENT RULE?? (for connections directed at 150.200.30.40)
iptables -t nat -A PREROUTING -d 150.200.30.40 -p tcp --dport 2222  -j DNAT --to-destination 10.0.3.202:22

Respuesta1

Hay casos en los que estos dos no son idénticos. He aquí por qué (no estoy discutiendo aquí otras coincidencias como protocolo y puerto):

  1. La primera regla coincide cuando el paquete está destinado a una dirección local (sin incluir el rango 127.0.0.0).
  2. La segunda regla coincide cuando el paquete está destinado a una dirección IP específica (asignada a esta máquina como mencionaste).

Serán idénticas si solo hay una dirección asignada a esta máquina, que es 150.200.30.40. Ambos coincidirán con paquetes destinados a una dirección local que no coincide con el rango 127.0.0.0.

Serán diferentes cuando haya al menos una dirección asignada a cualquier interfaz distinta de la IP pública mencionada (y, por supuesto, excluyendo el rango privado especial 127.0.0.0).

Si la IP pública mencionada no está asignada a esta máquina, seguramente son diferentes.

información relacionada