Configure o OpenNebula para usar o DHCP

2

Estou tentando configurar o OpenNebula para usar o servidor DHCP que já existe na minha rede. Sim, eu já sei que o OpenNebula gerencia endereços mac virtuais em vez de endereços IP, mas isso não me diz como fazer isso funcionar. ;)

Meus convidados e hosts são ambos CentOS, então eu imagino que tudo que precisa ser feito é configurar contextualização para que BOOTPROTO = dhcp seja despejado em / etc / sysconfig / network-scripts / ifcfg-eth0.

  1. Como configuro a contextualização para que isso aconteça? Eu apenas modifico meu modelo de uma determinada maneira? Se sim, como isso é feito?
  2. Depois de configurar meu modelo com essas novas configurações de contextualização, como devo configurar minha rede virtual em UMA?

Parece que isso deve ser fácil de fazer, já que isso deve parecer mais simples do que gerenciar um monte de IPs estáticos para vms, e você pensaria que este é um caso de uso comum. No entanto, o googleing até agora se mostrou muito pouco.

Obrigado !!

Editar: Meu servidor DHCP dá meu endereço vm ip corretamente se eu definir BOOTPROTO = dhcp e DHCP_HOSTNAME = foo manualmente e reiniciar a rede na minha VM. O que é bom, eu gostaria de poder definir os nomes de host da vms que eu giro também.

Agora, é apenas uma questão de determinar como fazer ONE fazer essas coisas automaticamente / por meio da interface da Web ou das ferramentas CLI. Além disso, ONE ainda lista o endereço IP da concessão original, em vez do IP que o DHCP forneceu à minha máquina virtual. Seria bom ter esse problema resolvido também.

    
por cat pants 23.07.2014 / 00:19

3 respostas

1

Meu Opennebula é a versão 4.8.0. Eu tive necessidades semelhantes, então aqui está o que eu fiz:

  1. Eu configurei o servidor DHCP que já existe em nossa rede para reservar um intervalo de IP para o DHCP. O intervalo foi: 10.23.1.201 - 10.23.1.254. São 54 IPs dinâmicos.
  2. Eu criei uma nova rede virtual, que chamei de "DHCP". Na aba "Endereços" escolhi o botão de opção "Ethernet". Desta forma, o Opennebula só fornecerá endereços MAC para as VMs usando essa rede. Deixei "MAC Start" vazio porque é opcional de qualquer forma. Eu digitei 54 no campo "Tamanho" porque meu DHCP pode fornecer muitos endereços IP dinâmicos. Então, o Opennebula dá às novas VMs apenas um endereço mac e nada mais.

O sistema operacional convidado precisa ser configurado manualmente para usar o DHCP. Eu não sei como fazer isso automaticamente, mas isso não é um grande problema.

Veja como eu continuei para ter um modelo que usa DHCP. Eu fui instalar um novo sistema operacional, por exemplo, o CentOS 6.5.

  1. Eu criei um modelo usando essa nova rede virtual e dois discos - uma imagem ISO e uma imagem de bloco de dados vazia definida como "persistent = yes".
  2. Em seguida, instancio o modelo, a VM inicializa a partir do ISO e, quando instalo a VM, deixo a configuração de rede "dinâmica".
  3. Quando a instalação termina, minha VM tem um IP atribuído automaticamente do servidor DHCP, como se fosse uma máquina real.
  4. Eu paro e excluo a VM.
  5. Defina a imagem do bloco de dados de volta para "persistent = no".

Agora, todas as novas VMs que surgirem desse modelo estarão usando a rede virtual "DHCP", terão um endereço IP dinâmico e o Opennebula não exibirá nenhum endereço IP para essas VMs.

Não consigo responder sobre a configuração automática do nome do host, mas acho que deve ser uma questão de configurar o sistema operacional convidado e o DHCP. Por outro lado, o DHCP deve saber qual nome de host deve ser fornecido para qual endereço MAC e, como o Opennebula estará gerando esses endereços MAC dinamicamente, não sei como você pode informar ao servidor DHCP sobre eles com antecedência.

    
por 30.10.2014 / 11:55
0

Considere usar um bit de configuração do dhcpd para definir os nomes de host temporários em novas caixas até que você possa hospedá-los por conta própria. Ele tem a vantagem de configurar um nome de host previsível que você pode usar para conectar-se, sem ter que rastejar os logs nem adivinhar o IP.

if (not (option host-name ~~ "^[a-z0-9][a-z0-9\-]+[a-z0-9]$")) {
    set new_host-name = concat("host-", binary-to-ascii(16, 8, "", substring(hardware, 1, 6)));
    log(concat("invalid hostname: ", option host-name, " => ", new_host-name));
    ddns-hostname = new_host-name;
} else {
    ddns-hostname = pick (option fqdn.hostname, option host-name, substring (option dhcp-client-identifier, 1, 20));
}

Eu peguei isso de um ótimo post de Peter Rathlev, aqui: link . Embora seja uma resposta a outra pergunta, ela fornece um ótimo exemplo de como o dhcpd pode ser configurado para fazer coisas incríveis e, pelo menos, fazer o que eu acho que você precisa.

    
por 18.05.2016 / 16:58
0

Para v4.x (menor que 4.10?):

Primeiro, crie um VNET , usando qualquer configuração desejada. Por exemplo, para uma rede com ponte, você pode ter:

NAME = "net0"
TYPE = "FIXED"
BRIDGE = "br0"

Em seguida, crie uma concessão associada a esse VNET . Observe que o endereço IP é obrigatório e exclusivo, mas é usado apenas como 'chave' da NIC, se você estiver usando DHCP (veja abaixo). Certifique-se de definir o endereço MAC de forma que seu servidor DHCP ofereça um endereço:

VNET = "net0"
IP = "192.168.0.1"
MAC = "02:00:d7:00:00:01"

Agora, adicione uma NIC à sua VM:

NETWORK="net0"   IP="192.168.0.1"   MODELO="virtio"

Certifique-se agora de configurar o DHCP adequadamente para esse endereço MAC.

Para 4.x > 10? e 5.x , é quase o mesmo, exceto que as concessões agora são substituídas por intervalos de endereço:

Crie uma VNET (quase) como acima:

NAME = "net0"
VN_MAD = "dummy"
BRIDGE = "br0"

Em seguida, crie um intervalo de endereços contendo apenas um endereço:

VNET= "net0"
SIZE = "1"
MAC = "02:00:d7:00:00:01"

Use este AR na sua VM:

NETWORK="net0"
MAC="02:00:d7:00:00:01"
MODEL="virtio"

E novamente configure o DHCP conforme apropriado.

Mais informações sobre intervalos de endereços aqui:

    
por 14.01.2018 / 23:08