내 libvirt 가상 머신에 이름으로 연결하고 싶습니다. 예전에는 가능했는데 지금은 불가능한가요? 각 가상 머신에 대해 추가 수동 구성을 수행하고 싶지 않습니다.
나는 예를 들어 할 수 있었습니다 ssh debian10-vm.local
. 이는 MDNS/avahi의 마법을 활용합니다. 하지만 어느 시점에서 작동이 멈췄습니다. :-(. 현재 저는 Fedora Workstation 32를 실행하고 있습니다. 약간 이전 버전에서는 작동이 멈춘 것 같습니다.
중지하면 firewalld
이전처럼 작동합니다. 하지만 방화벽을 계속 실행하고 싶습니다.
답변1
설치하다libvirt-nss. Fedora의 경우 를 실행합니다
dnf install libvirt-nss
(Debian의 경우: )apt install libnss-libvirt
.위 의
/etc/nsswitch.conf
링크 에 예가 있습니다 .hosts:
libvirt
이제 호스트 이름(예: )을 통해 가상 머신에 액세스할 수 있습니다
ssh debian10-vm
. 이 솔루션에서는.local
.
답변2
1단계: /etc/firewalld/zones/libvirt.xml
다음과 같이 생성
<?xml version="1.0" encoding="utf-8"?>
<zone target="ACCEPT">
<short>libvirt</short>
<description>
The default policy of "ACCEPT" allows all packets to/from
interfaces in the zone to be forwarded, while the (*low priority*)
reject rule blocks any traffic destined for the host, except those
services explicitly listed (that list can be modified as required
by the local admin). This zone is intended to be used only by
libvirt virtual networks - libvirt will add the bridge devices for
all new virtual networks to this zone by default.
</description>
<rule priority='32767'>
<reject/>
</rule>
<protocol value='icmp'/>
<protocol value='ipv6-icmp'/>
<service name='dhcp'/>
<service name='dhcpv6'/>
<service name='dns'/>
<!-- <service name='ssh'/> --> <!-- Wut? No thank you. -->
<service name='tftp'/>
<service name='mdns'/> <!-- Added by the local admin :). -->
</zone>
2단계: 실행firewall-cmd --reload
libvirt 패치의 이러한 변경 사항에 대한 설명,"Firewalld "libvirt" 영역을 선택적으로 설치". 분명히 이것은 firewalld
using에서 iptables
using으로 전환할 때 발생합니다 nftables
.