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

관련 정보