イントラネットおよびCentOSを搭載したゲートウェイがあり、イントラネットデバイスに接続を提供します。
ゲートウェイのiptablesルールセットでの一般的なポート転送は次のようになります(TCPバージョンが提供されます)。
$IPTABLES -A PREROUTING -t nat -i $EXTERNAL_IF -p tcp -d $EXTERNAL_IP \
--dport $EXTERNALPORT -j DNAT --to $INTERNAL_IP:$INTERNAL_PORT
$IPTABLES -A FORWARD -i $EXTERNAL_IF -p tcp -d $INTERNAL_IP \
--dport $INTERNAL_PORT -j ACCEPT
このような構成では、イントラネットから$ EXTERNAL_IP:$ EXTERNAL_PORTにアクセスできません。
すべての内部(イントラネットから発信)トラフィックを$ EXTERNAL_IP:$ EXTERNAL_PORTに直接$ INTERNAL_IP:$ INTERNAL_PORTにリダイレクトする方法はありますか?
のようなルールを追加する
$IPTABLES -A PREROUTING -t nat -s $INTRANET -p tcp -d $EXTERNAL_IP \
--dport $EXTERNALPORT -j DNAT --to $INTERNAL_IP:$INTERNAL_PORT
$IPTABLES -A FORWARD -s $INTRANET -p tcp -d $INTERNAL_IP \
--dport $INTERNAL_PORT -j ACCEPT
$ INTRANETがイントラネットアドレスのCIDRである場合、機能しません。
その結果、イントラネットデバイスのソースアドレスを保持する必要があります(ターゲットは接続の正確な発信元を知っている必要があります)。
これまでのところ、hostsファイル内のIPの静的オーバーライドが使用されていますが、これは便利ではありません。