libvirt guest:外部ネットワークからの接続を許可する

libvirt guest:外部ネットワークからの接続を許可する

~から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次の定義があります。br0eth0

########################################################################
# 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>
    ...

関連情報