Atribui o endereço IP público a VMs do KVM com DHCP e rede roteada

0

Eu tenho

  • um host da VM física
  • com várias VMs no qemu-kvm
  • e um conjunto de 8 endereços IPv4 públicos e uma sub-rede IPv6 que eu quero atribuir facilmente às VMs.

É igual a este gráfico de Configurar endereços IP públicos em VMs do KVM

Comofazerisso?

Atualmente,usoumdispositivoumapontevirtualparaconectararedefísicacomtodasasportasethernetdaVMesimplesmenteconfiguraroIPnasVMs.Agoraqueroadotarrederoteadaparasegurança(asVMsnãopodemfalsificaroendereçoIPdeoutraVM)econfiguraçãomaisfácil(detalhesdeconfiguraçãodeIPnãodevemserinseridosemtodasasinstalaçõesdeVM).

Meuhostertemumaredemaior(digamos/24paraIPv4),masconfigurouseusswitchespararotearsomenteosmeusendereçosIPparaaportadomeuswitch.ParasinalizarqueosendereçosIPdaVMestãodisponíveisnoendereçoMACdomeuhost,euprecisohabilitaroproxyARP.

EuusooatualDebianLinux9Stretchcomtodosossoftwaresdospacotesdadistribuição.

Soluçãomanualdavelhaescola?

AchoqueeupoderiacriarumdispositivodepontenoLinuxeconfigurarumservidorDHCPparacadaendereçoIPv4eregrasdoiptablesmanualmenteeconectarcadaVMaumadaspontes.Masalibvirtpareceterrecursosparasimplificarisso.

Amelhordescriçãodeumaconfiguraçãosemelhantequeencontreiéo link

Edição 1

Acho complicado copiar o endereço MAC da porta ethernet da VM e reescrever o arquivo XML da rede e reiniciar a rede para todas VMs. Em vez disso, gostaria de selecionar o endereço IPv4 ao configurar a VM.

Acho que criar 1 rede por endereço IPv4 com um nome como static-192.168.1.2 (com um endereço IP público) e um intervalo DHCP para apenas esse endereço permitiria isso. Para mais endereços, isso pode não escalar, mas para 8 eu considero isso. Existe uma solução melhor?

Edição 2

Eu tentei criar uma rede refletindo a rede local com um curto intervalo DHCP para fornecer dois exemplos de endereços IPv4 em uma configuração de teste. 192.168.23.0/24 é a rede local e o host da VM tem 192.168.23.7 em br1 .

<network>
  <name>static</name>
  <bridge name="br1" />
  <forward mode="route"/>
  <ip address="192.168.23.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.23.8" end="192.168.23.10"/>
    </dhcp>
  </ip>
</network>

mas não consigo começar

# virsh net-create net.xml 
error: Failed to create network from net.xml
error: internal error: Network is already in use by interface br1

Eu já configurei uma ponte conectada à interface física porque achei que o IPv4 do host nessa interface a bloquearia. Como definir uma rede libvirt roteada com um DHCP que contenha um único endereço IPv4 da rede local?

Eu acho isso bastante complexo porque eu nunca trabalhei com libvirt ainda e provavelmente alguma informação está faltando. Vou atualizar a questão conforme necessário.

    
por Daniel Böhmer 02.11.2017 / 13:02

0 respostas