Horquilla en Linux

Horquilla en Linux

Tengo un enrutador en el que instalé un sistema Linux.

Quiero que mi enrutador admita la horquilla NAT

¿Existe tal característica en Kernel Linux? En caso afirmativo, ¿cómo activarlo? ¿Existe algún parche para aplicarlo en mi kernel para soportar la horquilla?

Explicación de horquilla de Wikipedia:

Let us consider a private network with the following:

    Gateway address: 192.168.0.1
    Host 1: 192.168.0.5
    Host 2: 192.168.0.7

    The gateway has an external IP : 192.0.2.1
    Host 1 runs a P2P application P1 on its port 12345 which is externally mapped to 4444.
    Host 2 runs a P2P application P2 on its port 12345 which is externally mapped to 5555.

If the NAT device supports hairpinning, then P1 application can connect to the P2 application using the external endpoint 192.0.2.1:5555.
If not, the communication will not work.

Respuesta1

Esto es algo que iptablesse maneja bien con un kernel "reciente" (cualquier cosa desde2.4, eso es mayor de 10 años).

El truco consiste en hacer una "natación inversa": asignar la dirección IP de cualquier host de su red local que acceda a los dos servidores NAT a la IP pública de su puerta de enlace.

Algo como lo siguiente (eso essoloque gobierna NATting, sin firewall):

iptables -t nat -A PREROUTING -p tcp -m tcp  -s 192.168.0.0/24   -d 192.168.0.5  --dport 4444 -j DNAT --to-destination :12345
iptables -t nat -A POSTROUTING -o eth1  -p tcp -m tcp  -s 192.168.0.0/24   --dport 12345 -j SNAT --to-source 192.10.2.1
iptables -t nat -A PREROUTING -p tcp -m tcp  -s 192.168.0.0/24   -d 192.168.0.7  --dport 5555 -j DNAT --to-destination :12345
iptables -t nat -A POSTROUTING -o eth1  -p tcp -m tcp  -s 192.168.0.0/24   --dport 12345 -j SNAT --to-source 192.10.2.1
iptables -t nat -A PREROUTING -p tcp -m tcp   -d 192.168.0.1  --dport 4444 -j DNAT --to-destination 192.168.0.5:12345
iptables -t nat -A PREROUTING -p tcp -m tcp   -d 192.168.0.1  --dport 5555 -j DNAT --to-destination 192.168.0.7:12345
iptables -t nat -A POSTROUTING -o eth0   -j SNAT --to-source 192.168.0.1

Si no está familiarizado con el arcano arte de escribir reglas de firewall, le sugiero que utilice una interfaz gráfica de usuario comoconstructor de fw.

información relacionada