Proxmox: VMs e IPs públicos diferentes

1

Eu tenho um servidor que tem dois NICs e ambos estão diretamente conectados à internet. Eu tenho cinco endereços IP públicos diferentes disponíveis para as VMs. A máquina host (Proxmox) não precisa usar nenhum (ele usará um IP privado e isso é tudo), mas terá conexão com a Internet.

Eu passei pela documentação do Proxmox e não consigo entender o panorama geral para configurar a configuração de rede certa para minhas necessidades. Em suma, o que eu tenho é:

  • Um servidor (Proxmox, máquina host)
  • Nesse servidor, 5 VMs são criadas
  • 5 endereços IP públicos disponíveis (um para cada VM), digamos: 80.123.21.1, 80.123.21.2, 80.123.21.3, 80.123.21.4, 80.123.21.5

O que eu tenho agora para o host é o seguinte:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto vmbr0
iface vmbr0 inet static
        address  192.168.1.101
        netmask  255.255.255.0
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

auto vmbr1
iface vmbr1 inet manual

Ele pode ser acessado pela rede interna, então tudo bem. Tem conexão com a internet, o que também é OK. O vmbr1 será usado pelas VMs. Cada VM terá seu próprio IP em seu arquivo de configuração de interfaces de rede.

Por algum motivo, as VMs não terão acesso à Internet e não poderão ter endereço IP público. Se eu usar o NAT, ele funcionará corretamente, mas eles não usarão os endereços IP públicos alocados para eles. Estou faltando alguma coisa?

    
por Raj 22.09.2013 / 23:23

1 resposta

1

Você não precisa atribuir um endereço IP público, mas precisa atribuir eth1 a uma porta de bridge e fornecer as outras opções de ponte.

Se você é novo no proxmox, o webui suporta o gerenciamento de interfaces e pontes Ethernet para você. Também impede que você nomeie suas pontes com problemas (proxmox impõe um vmbrNNNN, onde o Ns é um número entre 0 e 4095).

O arquivo de interfaces requer que você forneça um endereço IP para qualquer interface definida, para convencê-lo, caso contrário você pode adicionar um IP local e simplesmente deixá-lo, ou como neste exemplo, derrubá-lo imediatamente após a interface terminar :

auto lo
iface lo inet loopback

iface eth0 inet manual
iface eth1 inet manual

auto vmbr0
iface vmbr0 inet static
        address  192.168.1.101
        netmask  255.255.255.0
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

auto vmbr1
iface vmbr1 inet static
       address  127.1.0.1
       netmask  255.255.255.255
       bridge_ports eth1
       bridge_stp off
       bridge_fd 0
       up ip addr del 127.1.0.1/32 dev vmbr1

Editar : Edite sua pergunta se você estiver usando regras de firewall estranhas que possam bloquear o tráfego em ponte e o valor de sysctl net.ipv4.ip_forward .

Você pode querer tcpdump -n -i ethN (a interface externa de saída) para verificar se seus pacotes estão viajando para fora do nó do host.

    
por 23.09.2013 / 01:02