2014-05-14 10 views
7

Desidero reindirizzare le richieste in entrata su un intervallo di porte (da 30000 a 40000) su un altro host su un intervallo di porte diverso (10000-20000) mappandole da 1 a 1. (30.000-10.000, 40.000-20.000 ecc) Se l'intervallo di porte è la stessa e cioè:Iptables inoltra l'intervallo di porte su un altro intervallo di porte su un host diverso

iptables -t nat -I PREROUTING -p tcp -m tcp --dport 10000:20000 -j DNAT --to [local_ip]:10000-20000 

funziona perfettamente. Ma se l'intervallo di porta iniziale è diversa dalla gamma porta sul server secondario:

iptables -t nat -I PREROUTING -p tcp -m tcp --dport 30000:40000 -j DNAT --to [local_ip]:10000-20000 

Allora, invece di mappare ogni porta con la sua porta corrispondente tutte le connessioni incomming sulle porte 30000-40000 sono invece associate allo stesso (casuale penso) porto sull'host secondario (al momento stanno andando tutti a 13675).

Ho anche cercato di utilizzare il reindirizzamento porta utilizzando

-j REDIRECT 

non posso convincere quello per funzionare neanche.

Come posso mantenere lo stesso comportamento dal primo esempio per lavorare con diversi intervalli di porte?

risposta

2

Dopo molte ricerche e domande in giro, apparentemente iptables non è in grado di gestirlo, nemmeno se utilizza interfacce pseudo.

1

Vorrei provare a utilizzare xinit.d per accettare le connessioni in ingresso nell'intervallo di porte desiderato e creare automaticamente un'istanza di qualcosa come netcat (nc) per ogni tunnel che è attivamente in uso.

forse questo link potrebbe aiutare, è simile: https://blog.linuxnet.ch/automatic-tunnels-with-xinetd-and-netcat/ o Executing script on receiving incoming connection with xinetd

+0

penso che questo sarebbe un grande riduzione delle prestazioni se si lavora con qualcosa di più di un carico minimo. –