libvirt가 호스트 dnsmasq 서비스를 사용하도록 강제하는 방법은 무엇입니까?

libvirt가 호스트 dnsmasq 서비스를 사용하도록 강제하는 방법은 무엇입니까?

dnsmasqLibvirt에는 DHCP/DNS 서버 역할을 하는 정의된 네트워크가 있습니다 . 그러나 이는 dnsmasq별도의 인스턴스( 에서 구성됨 /var/lib/libvirt/dnsmasq/default.conf)이며 추가 프로세스를 생성합니다 dnsmasq. 나는 한동안 내 전역/시스템 인스턴스를 사용해 왔으며 dnsmasq이를 libvirt 가상 머신과 함께 사용하고 싶습니다. 하지만 이는 달성하기 쉬운 일은 아닌 것 같습니다.

이제 virsh net-edit default다음()을 제거하여 기본 네트워크에 대해 DNS 및 DHCP를 비활성화했습니다.

<dhcp>
  <range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>

그리고 다음을 추가하세요:

<dns enable="no"/>

물론 이렇게 하면 libvrt가 추가 dnsmasq 프로세스를 생성하는 것이 중지되지만 /etc/dnsmasq.conf가상 머신이 DHCP를 통해 IP 주소를 얻고 DNS 이름을 사용하여 네트워크에 액세스할 수 있도록 시스템 구성 파일에 무엇을 추가해야 할까요?

답변1

나는 그것을 해결했습니다.

기본적으로 문제는 기본 네트워크에 있습니다. 사용하지 않거나 변경해야 합니다. 방금 /etc/libvirt/qemu/networks/host-bridge.xml다음 내용으로 다른 네트워크( )를 만들었습니다 .

<network>
  <name>host-bridge</name>
  <forward mode="bridge"/>
  <bridge name="virbr0"/>
</network>

그런 다음 가상 머신에서 사용하던 네트워크를 새로 생성된 네트워크로 변경했습니다.

브리지는 virbr0다음 파일을 사용하여 생성됩니다 /etc/network/interfaces.

auto virbr0
iface virbr0 inet static
    bridge_bridgeprio 20
    address 192.168.122.1
    netmask 255.255.255.0
    bridge_ports none
    bridge_stp on
    bridge_waitport 5
    dns-nameservers 127.0.0.1
    dns-search libvirt

꽤 잘 작동하는 것 같지만, 실제로 내가 원하는 대로 작동하는지 확인하려면 좀 더 사용해 봐야 할 것 같습니다.

관련 정보