iptables ブリッジなどの双方向配信

iptables ブリッジなどの双方向配信

私はLinuxボックスを持っています。 2つのインターフェース(eth0、eth1)があります。

eth0 は上部接続で、eth1 は下部接続です。

eth0、eth1は各スイッチ(s/w0、s/w1)に接続されています。

s/w0 はインターネットに接続され、s/w1 はノートブックに接続されています。

私はeth0、eth1をブリッジのように双方向に渡したいと思います。

ただし、brctlを使用せずにiptableのみを使用してください。

したがって、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. IPがeth1と同じネットワーク上にあり、プライマリルータがインターフェイスアドレス(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

関連情報