それぞれKVMを実行する2つのマシンがあります。したがって、次のネットワークを使用する2つのkvmsがあります。
Host 1: 192.168.10.100 (eth2)
10.10.100.1 (virbr1)
KVM 1 (NAT with Host 1): 10.10.100.128 (eth0 inside kvm)
Host 2: 192.168.10.101 (eth2)
10.10.100.1 (virbr1)
KVM 2 (NAT with Host 2): 10.10.100.128 (eth0 inside kvm)
KVMはポート6000でサーバーをホストします。 KVMをクライアントとサーバーの両方として実行したいです。例えば、KVM1は、KVM2のサーバまたはそれ自体とクライアントと通信することを選択することができる。この場合、KVM1は192.168.10.101または192.168.10.100(自己)に接続されます。
これを行うには、次のiptablesルールを設定しましたが、KVMが実行中のサーバーと通信できるようにすることはできません。不足しているリンクを見つけるのに役立つ人がいますか?
KVM1とKVM2の両方に、次の規則が設定されています。 (すべてのルールは私のボックスに表示されています。)
ベーステーブルからKVMネットワークへの転送を設定しました。
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
114 7254 ACCEPT udp -- virbr1 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- virbr1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
314 103K ACCEPT udp -- virbr1 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ACCEPT tcp -- virbr1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
6810K 1271M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
43 2723 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8000
475 60252 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8443
270 15588 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:111
35125 4776K ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:111
720 112K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4001
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:4001
6 328 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:564
6 500 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:564
14532 5776K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:2049
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:2049
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4002
19070 1526K ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:4002
2900K 852M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6500flags: 0x17/0x02
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6550flags: 0x17/0x02
7294 379K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9000
0 0 REJECT all -- eth0 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
8574K 1767M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
934 642K ACCEPT all -- * * 0.0.0.0/0 10.10.100.0/24 state NEW,RELATED,ESTABLISHED
88 7740 ACCEPT all -- * virbr1 0.0.0.0/0 10.10.100.0/24 state RELATED,ESTABLISHED
533 39866 ACCEPT all -- virbr1 * 10.10.100.0/24 0.0.0.0/0
0 0 ACCEPT all -- virbr1 virbr1 0.0.0.0/0 0.0.0.0/0
4 240 REJECT all -- * virbr1 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 REJECT all -- virbr1 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT 8939K packets, 2177M bytes)
pkts bytes target prot opt in out source destination
NAT テーブルでは PREROUTING と MASQUERADE でポート転送を設定し、すべてのパケットは kvm の仮想インターフェイスから出ます。
Chain PREROUTING (policy ACCEPT 116K packets, 20M bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- * * !10.10.100.128 0.0.0.0/0 tcp dpt:8080 to:10.10.100.128:8080
0 0 DNAT tcp -- * * !10.10.100.128 0.0.0.0/0 tcp dpt:6002 to:10.10.100.128:6002
0 0 DNAT tcp -- * * !10.10.100.128 0.0.0.0/0 tcp dpt:6001 to:10.10.100.128:6001
0 0 DNAT tcp -- * * !10.10.100.128 0.0.0.0/0 tcp dpt:6000 to:10.10.100.128:6000
Chain INPUT (policy ACCEPT 114K packets, 20M bytes)
pkts bytes target prot opt in out source destination
54 16928 ACCEPT all -- * * 10.10.100.128 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 7539 packets, 410K bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 7537 packets, 410K bytes)
pkts bytes target prot opt in out source destination
2 104 MASQUERADE all -- * virbr1 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE tcp -- * * 10.10.100.0/24 !10.10.100.0/24 masq ports: 1024-65535
0 0 MASQUERADE udp -- * * 10.10.100.0/24 !10.10.100.0/24 masq ports: 1024-65535
0 0 MASQUERADE all -- * * 10.10.100.0/24 !10.10.100.0/24
上記の規則によれば、KVM1はKVM2で実行されているサーバーと通信できますが、独自に実行されているサーバーとは通信できません。これは、上記のPREROUTINGルールがKVMアドレスを持つすべてのソースパケットを無効にするためです。
上記のPREROUTINGルールを次のように変更した場合:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:x11 to:10.10.100.128:6000
この場合、問題は新しいものです。 KVM1からKVM2へのすべての要求は、内部的にKVM1に再ルーティングされます。