ルーターとして機能するCentosミニマル6.5があります。 eth0はCiscoスイッチトランクポートに接続され、VLAN 200〜213を許可します。
このリンクが示唆しているように、私はいくつかのVLANインターフェースを持っています:
また、IPv4転送があるため、200〜213のネットワークのすべてのネットワークデバイスは、このLinuxボックスをルーターとして使用して相互に通信できます。
問題は、インターネットにアクセスするためにそれらが必要なので、次のルールを追加しました。
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j SNAT --to 1.1.1.56
1.1.1.56は「外部」アドレスです。これは正常に機能し、内部ネットワークに接続されたデバイスはIntertnetアドレスにpingを実行できますが、サブネット間で相互に通信できなくなるため、192.168.211.55は8.8.8.8にpingを実行できますが、192.168.213.5とは通信できません。
ルールを削除するためにサービスiptablesを再起動するとすぐに、内部サブネット間での会話を再開できます。
複数のプライベートサブネットに対してNAT)を設定する正しい方法は何でしょうか?それとも転送を設定する正しい方法でしょうか?
また、ファイアウォールルールで、NATされるトラフィックの宛先インターフェイスを指定する必要があります。それ以外の場合は、すべてをNATしようとしますが、これまで見てきたように、それは機能しません。外の世界に向かうトラフィックのみをNAT変換する必要があります。
したがって、インターネットに接続されたすべてのトラフィックのデフォルトルートが送信されるとしましょうVLAN 200(指定しなかったため)、a VLAN専用)外部トラフィック。その場合、ファイアウォールルールに-o eth0.200
を追加します。
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0.200 -j SNAT --to 1.1.1.56