私は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