web-dev-qa-db-ja.com

iptablesが発信トラフィックを拒否する方法は?

そのため、いくつかのDockerコンテナーを実行しており、それぞれが発信トラフィックに特定のネットワークインターフェイスを使用するように構成されています。

たとえば、インターフェースeth1を使用するdocker_1というDockerネットワークがあり、その発信トラフィックを0x0c3f(-set-mark 0x0c3f)でマークしたとします。

現在、eth1がダウンしている場合、コンテナはデフォルトで発信トラフィックに代わりにeth0を使用しますが、これは望ましくない動作です。 eth1が使用できない場合でも、コンテナーでeth0を使用しないようにしたいと思います。

私は走ってみました:

iptables -t filter -I OUTPUT -p tcp -o eth0 -m mark --mark 0x0c3f -j REJECT

それは動作しません。

何が正しく機能していないのか誰かが知っていますか?

ありがとう。

1
user551581

問題は、出力チェーンではなく、FORWARDを使用する必要があることです。 「OUTPUT」を「FORWARD」に変更してみてください

1
davidgo