IP Alias / Interface Virtual para ESXi no KVM / libvirt [closed]

2

Eu preciso executar dois hosts ESXi no KVM e atribuir a eles IPs externos distintos visíveis para a rede externa. Topologia desejada:

  ESXI     ESXI
   ↓        ↓       
  KVM      KVM
   ↓        ↓
  vIF      vIF
(own ip)  (own ip)
   ↓        ↓
 Physical NIC 
      ↓
 External Net

É uma coisa fácil com outros hosts, já que duas interfaces virtuais em ponte com o modelo vNIC configurado para o dispositivo Virtio funcionariam. Mas o Virtio como modelo NIC não é suportado pelo ESXi e não inicializa reclamando sobre nenhum adaptador de rede detectado.

Existe uma maneira de fazer as Interfaces Virtuais funcionarem com o ESXi no KVM? Tentei ir junto com o E1000 como NIC, mas não consegui conectar o ESXi à rede externa.

Aqui está a configuração que eu tentei. Nenhum trabalhou:

<interface type='bridged'>
  <source bridge='br0'/>
  <model type='virtio'/>  #ESXi won't boot due to no adapter detected
</interface>

<interface type='bridged'>
  <source source='br0'  />
  <model type='e1000'/>  #ESXi boots but no network connectivity
</interface>

<interface type='direct'>
  <source dev='br0' mode='bridged' />
  <model type='e1000'/> #ESXi boots but no network connectivity
</interface>

<interface type='direct'>
  <source dev='br0' mode='passthrough' />
  <model type='e1000'/>  #ESXi boots but no network connectivity
</interface>

#Not applicable to my requirements as physical NIC would be passed to KVM
<interface type='direct'>
  <source dev='enp2s0:0' mode='passthrough' />
  <model type='e1000'/>  
</interface>

<interface type='direct'>
  <source dev='br0' mode='bridged' />
  <model type='e1000'/>  #ESXi boots but no network connectivity
</interface>

Aqui estão minhas interfaces:

 br0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
    inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
    inet6 fe80::b8ca:7bff:fe23:e847  prefixlen 64  scopeid 0x20<link>
    ether ba:ca:7b:23:e8:47  txqueuelen 1000  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 4  bytes 300 (300.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 enp0s26u1u6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.1.9  netmask 255.255.255.0  broadcast 192.168.1.255
    inet6 fe80::3be6:18f3:cdd7:d837  prefixlen 64  scopeid 0x20<link>
    ether a0:ce:c8:01:75:ef  txqueuelen 1000  (Ethernet)
    RX packets 25284  bytes 1737100 (1.6 MiB)
    RX errors 0  dropped 6860  overruns 0  frame 0
    TX packets 25208  bytes 29421441 (28.0 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.1.6  netmask 255.255.255.0  broadcast 192.168.1.255
    inet6 fe80::ca2d:afad:d824:1205  prefixlen 64  scopeid 0x20<link>
    ether 90:2b:34:9a:bf:67  txqueuelen 1000  (Ethernet)
    RX packets 3375628  bytes 4511208522 (4.2 GiB)
    RX errors 0  dropped 3301  overruns 0  frame 0
    TX packets 1832807  bytes 847946426 (808.6 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    device interrupt 18  

  enp2s0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
    ether 90:2b:34:9a:bf:67  txqueuelen 1000  (Ethernet)
    device interrupt 18 
    
por Bryan Huang 10.03.2017 / 14:49

2 respostas

1

É compreensível que o virtio-net não funcione com o ESXi, já que é improvável que eles se importem em fornecer drivers para um NIC que seja relevante somente em virt-nested. O e1000 é um tipo de NIC padrão, então eu esperaria que funcionasse. Há sempre a possibilidade de que algum bug na emulação do QEMU o torne incompatível com o ESXi.

A seguinte postagem no blog sugere testar o modelo de NIC 'vmxnet3' com o QEMU

link

Este é o modelo de NIC paravirtualizada do VMware, que o QEMU também suporta.

    
por 10.03.2017 / 14:59
0

Você começou com essa configuração, que está correta, mas o ESXi não pode usar um virtio NIC:

<interface type='bridged'>
  <source bridge='br0'/>
  <model type='virtio'/>  #ESXi won't boot due to no adapter detected
</interface>

Mas, por alguma razão, você não parece ter simplesmente mudado o tipo de modelo NIC para e1000 e não fez outras alterações . Todas as outras configurações que você tentou possuem o modelo de NIC correto, mas outras configurações quebradas ou impróprias.

É claro, você pode (e provavelmente deve) também é só usar o vmxnet3 tipo NIC, que tem sido apoiada no libvirt e qemu muito bem por muitos anos agora.

Portanto, altere apenas o tipo de modelo e não altere mais nada.

    
por 10.03.2017 / 16:33