NATセットアップに少し問題があります。
私がやろうとしていること:
2つのVLAN(この例では100と200)があり、それらが別々のIPを介してネットワークにアクセスできるようにしたいと考えています。これは、iptables
NATによって実現する必要があります。このセットアップはpf(FreeBSD)で作成しましたが、残念ながら、使用する必要のあるハードウェアには互換性がありません。メインルーター内でそれを望んでいますが、CPUはそのような負荷を処理できません。 IP-Tablesなどで私はただの初心者です;)スキーマ:
VLAN 100(10.100.0.0/24)-> 10.100.0.1 NAT xxx.yyy.zzz.6->ネットワーク上のユーザー
VLAN 200(10.200.0.0/24)-> 10.200.0.1 NAT xxx.yyy.zzz.7->ネットワーク上のユーザー
これらすべてが同じ物理インターフェイス上にあり、VLANインターフェイスなどがあります。
これは私の現在の設定です:/ etc/network/interfaces
lo .... iface ens2f3 inet static アドレスxxx.yyy.zzz.6 ネットマスク255.255.252.0 auto ens2f3.100 iface ens2f3.100 inet static アドレス10.100.0.1 ネットマスク255.255.255.0 vlan-raw-device ens2f3 iface ens2f3 inet static アドレスxxx.yyy.zzz.7 ネットマスク255.255.252.0 autoens2f3.200 iface ens2f3.200 inet static アドレス10.200.0.1 ネットマスク255.255.255.0 vlan-raw-device ens2f3
/etc/iptables/rules.v4(自動ロード)
#NAT TABLE * nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [ 0:0] :POSTROUTING ACCEPT [0:0] -POSTROUTING-s 10.100.0.0/24 -o ens2f3 -j SNAT --to-source xxx.yyy.zzz.6 -POSTROUTING -s 10.200.0.0/24 -o ens2f3 -j SNAT --to-source xxx.yyy.zzz.7 COMMIT #一般テーブル * filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0 :0] COMMIT #この設定は非常に安全ではないことを私は知っています! NAT動作中 になったときにサーバーをロックダウンします
問題は、10.100.0.100で取得できることです。NAT経由で取得する必要のあるIPではなく、まさにこのIP(10.100.0.100;不可能なはずです)を使用してxxx.yyy.zzy.1に接続できます。
また、パッケージがインターフェイスに到着したときにパッケージにマークを付けて、個別のルーティングテーブルを用意してみました。上記の問題は存在しませんが、どこにも接続できません
LinuxベースのOSでこれを実現するためのヒントを教えてください。必要に応じて、別の10Gインターフェイスを利用できます
私はすべてを分析していませんが、ステップ1はこれを修正することです:
-o ens2f3
postROUTINGであるため、ルーティングの決定が行われ、パケットは別のインターフェイスを介してゲートウェイxxx.yyy.zzz.1に直接送信されると思います。
-o enp3s0