![iptables によるブリッジのような双方向転送](https://rvso.com/image/164730/iptables%20%E3%81%AB%E3%82%88%E3%82%8B%E3%83%96%E3%83%AA%E3%83%83%E3%82%B8%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%8F%8C%E6%96%B9%E5%90%91%E8%BB%A2%E9%80%81.png)
私は Linux ボックスを持っています。そして、2 つのインターフェース (eth0、eth1) があります。
eth0 はアップサイド、eth1 はダウンサイドの接続です。
eth0、eth1は各スイッチ(s/w0、s/w1)に接続されています。
s/w0 はインターネットに接続され、s/w1 は 1 台のラップトップに接続されています。
そして、ブリッジのように eth0 、 eth1 の双方向転送が必要です。
ただし、brctl は使用せず、iptables のみを使用します。
したがって、iptables ルール セットが正しければ、ラップトップはインターネット対応になっているはずです。
このルールを試しましたが、機能しませんでした。
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
何か助けていただければ幸いです。
編集。
私のネットワークは以下のようなものです。
internet - router - switch0 - eth0:linuxBox:eth1 - switch1 - laptop
以下のようにbrctlを使ってブリッジを作成すると、ラップトップはインターネットを利用できるようになります。
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl stp br0 off
ifconfig br0 up
私の目標は、brctl を置き換える iptables ルールを作成することです。
答え1
必要なものを指定する必要があります。ブリッジは NAT を実行せず、インターネットはブリッジが動作するイーサネットのようには動作しません。NAT
を備えたインターネット ゲートウェイを用意し、Linux ボックスの IP ルーティング テーブルに従ってパッケージを転送する場合、iptables ルートは非常に適切に見えます。そのボックスで IP 転送が有効になっていることと、ラップトップのデフォルト ゲートウェイが Linux ボックスの eth1 のアドレスに設定されていることを確認する必要があります。
更新後: ブリッジは必要ありません。ゲートウェイで十分です。1
. Linux ボックスのインターフェイスが別々のサブネットにあることを確認します。または、ルーティング テーブルで、ゲートウェイ インターネット ルーター経由で eth0 にデフォルト ルートがあり、ローカル ネットワーク (たとえば、ラップトップがある場所) のその他のトラフィックが eth1 で送信されることを確認します。2. ラップトップで、
eth1 と同じネットワークの IP と、eth1 の場合はインターフェイス アドレスに設定されたデフォルト ルーターを使用して、静的 IP 構成を作成します。または、Linux ボックスで同じ DHCP サーバーを構成します。3
. Linux ボックスで IP 転送が有効になっていることを確認します。
答え2
あなたが試すことができます
iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE
iptables –A FORWARD –i eth0 –o eth1 –m state --state RELATED,ESTABLISHED –j ACCEPT
iptables –A FORWARD –i eth1 –o eth0 –j ACCEPT
次にIPテーブルルールを保存します
iptables-save
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables.service
次にiptablesファイルを開いてルールを編集し、これらのルールを拒否ルールの上に移動します
iptables –A FORWARD –i eth0 –o eth1 –m state --state RELATED,ESTABLISHED –j ACCEPT
iptables –A FORWARD –i eth1 –o eth0 –j ACCEPT
A FORWARD -o vibr0 -j REJECT --reject-with icmp-port-unreachable
A FORWARD -i vibr0 -j REJECT --reject-with icmp-port-unreachable