libvirtネットワークを作成しました。開いているモード用に生成されたiptableルールを追加しました。ナットパターンネットワーク。私の計画は基本的にナットただし、その上にカスタムiptableルールを追加してください。 (オープンモードを使用してルールを直接管理する方が簡単です。)ユースケース例:vmXからvmY、vmZまでを除いて、VM間のネットワーク内通信はありません。これまでのところ、すべてが以前のように動作しています。ナットモデル。
ただし、内部comをブロックするルールを追加すると、次のようなものが表示されます。
いくつかの背景知識:Libvirtは次のようなiptableチェーンを生成します。
LIBVIRT_FWI
:着信トラフィックLIBVIRT_FWO
:アウトバウンドトラフィックLIBVIRT_FWX
:内部トラフィック(例:virbr0内)LIBVIRT_INP
(今は関係ありません)LIBVIRT_OUT
(今は関係ありません)
eth0->>-virbr0 や eth0-<<-virbr0 などの FWI および FWO が期待どおりに動作しますが、内部通信に使用される FWX チェーンは何の影響もありません。
iptables -L LIBVIRT_FWX -v
プログラム
Chain LIBVIRT_FWX (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- virbr0 virbr0 anywhere anywhere
私のカスタムチェーン:
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- virbr2 virbr2 anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT all -- virbr2 virbr2 192.168.122.10 anywhere
0 0 REJECT all -- virbr2 virbr2 anywhere anywhere reject-with icmp-port-unreachable
今私の考えでは、iptablesはネットワークインターフェイスの内部通信には適していないようです。私の家は正しいですか?
私の選択はおそらく次のとおりです。
- iptableルールに私が間違っているのでしょうか?する適用する
- FWXチェーンはFORWARDの一番上にあるので、他の規則が妨げられてはいけません。
- 各仮想マシン間のトラフィックをブロックするには、各仮想マシンのネットワークを作成する必要があります。
この問題について2回目のコメントをいただきありがとうございます。
完全性のために:
Chain DMZ_LIBVIRT_FWO (1 references)
pkts bytes target prot opt in out source destination
58531 24M ACCEPT all -- virbr2 any 192.168.122.0/24 anywhere
133 10336 REJECT all -- virbr2 any anywhere anywhere reject-with icmp-port-unreachable
Chain DMZ_LIBVIRT_FWI (1 references)
pkts bytes target prot opt in out source destination
55149 21M ACCEPT all -- any virbr2 anywhere 192.168.122.0/24 ctstate RELATED,ESTABLISHED
66 3960 REJECT all -- any virbr2 anywhere anywhere reject-with icmp-port-unreachable