~からlibvirt ドキュメント:
デフォルトでは、仮想ネットワークを介して接続されたゲストは、必要に応じて発信するネットワーク接続を作成できます。同じlibvirtネットワークに接続されたホストと他のゲストからの着信接続は許可されますが、他のすべての着信接続はiptablesルールによってブロックされます。
しかし、私はゲストが「外部」からの着信接続を受け入れることを望みます。
問題はlibvirtが自動的に設定するiptablesルールです。
*filter
:INPUT DROP [22:4523]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [606:91824]
...
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
NEW
最初のインクルードステータスFORWARD
ルールにステータスを含めるようにlibvirtを設定するにはどうすればよいですか?または、拒否ルールまたは同様のルールを削除してください。
私はそのようなルールをiptablesに手動で追加できることを知っていますが、libvirt設定を変更して実行できるかどうか疑問に思います。すでにこのように構成されているサーバーにアクセスできますが、構成方法が見つかりません(diffingを介しても/etc
)。
私はDebian 8.5 Jessieでlibvirt 1.2.9-9+deb8u2を使用しています。私はdefault
ネットワークを使います:
$ sudo virsh net-list
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
$ sudo virsh net-dumpxml default
<network connections='6'>
<name>default</name>
<uuid>aafc9c08-98b2-499c-9058-8eb6fce47ab6</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
答え1
ゲストがネットワークの残りの部分に完全に透過的にアクセスできるようにするには、デフォルトのNATネットワークを使用しないでください。私の場合でも無効にしました。
virsh net-list
Name State Autostart
-----------------------------------------
私のファイルには、ゲストに使用できるNICのブリッジデバイスを設定する/etc/network/interfaces
次の定義があります。br0
eth0
########################################################################
# The network interface
# 192.168.1.0/24
#
#allow-hotplug eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.1.253
netmask 255.255.255.0
gateway 192.168.1.254
bridge_ports eth0
bridge_fd 0
bridge_maxwait 0
その後、ゲストを定義するときに以前に定義したブリッジを共有デバイスとして指定できます。
virsh dumpxml myguest
...
<interface type='bridge'>
<mac address='52:54:00:3c:75:30'/>
<source bridge='br0'/>
<target dev='vnet5'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
</interface>
...