O Proxmox é um ambiente de virtualização para Linux muito prático e útil para empresas que demandem virtualização em servidores pequenos (por mais que você possa utilizar ele em ambientes bem maiores). É uma boa alternativa para quem não quer usar OpenStack ou controlar VMs com XenCenter. Ele permite criar máquinas virtualizadas em KVM ou Containers LXC (na versão 3.x utilizava-se OpenVZ para os containers).
Normalmente nestes ambientes pequenos você não possui um roteador bom o suficiente para poder controlar as redes em modo Bridge, vai precisar configurar redes locais e também permitir que seus containers/vms acessem a rede externa. Para isso você deve configurar um NAT no Host do Proxmox e posteriormente atribuir um IP interno ao container/vm.
Acesse o painel administrativo do Proxmox (normalmente em https://seuip:8006/
), clique sobre o host, após em Networking
, e clique em Create
, selecionando Linux Bridge
no submenu.
Na janela que abrirá digite um identificador para a interface (no meu caso escolhi vmbr2
), um IP (que será o gateway das máquinas) e a máscara de rede (/24
, mas você pode usar a máscara que desejar).
Após criar a interface, reinicie o servidor do Proxmox para que ele aplique a configuração da nova interface. Depois de reiniciar você precisará adicionar algumas regras para que o NAT de fato ocorra. Edite o arquivo /etc/network/interfaces
no servidor Proxmox e adicione as seguintes linhas no trecho da interface vmbr2
:
auto vmbr2
iface vmbr2 inet static
address 192.168.200.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
# Adicione as linhas abaixo
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '192.168.200.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.200.0/24' -o vmbr0 -j MASQUERADE
Note que nas regras acima referenciamos um vmbr0
, esta interface é a que possui um IP externo e gateway no Host, provavelmente em sua instalação do Proxmox você precisará configurar com a interface eth0
.
Não esqueça de reiniciar novamente a máquina para testar as configurações. Mas você pode simplesmente reinciar as interfaces com ifdown vmbr2
e ifup vmbr2
se desejar.
Caso tenha problemas com o NAT, verifique se sua politica de
FORWARDING
não está marcada comoDROP
por padrão, isso pode prejudicar o encaminhamento dos pacotes.
Agora ficará fácil configurar os containers/vms. Basta no ato da criação do container escolher um IP "interno", e informar o IP de gateway, que é o IP da interface vmbr2
no Host. Não esqueça de atribuir o bridge criado, conforme indicado na imagem.
As máquinas internas também serão capazes de se conectarem entre si, segmente a sua rede e crie novas interfaces de acordo com a sua necessidade de isolamento. O Proxmox disponibiliza segmentação por VLAN e também controle de tráfego direto pela interface de configuração.
Se você precisar expor alguma porta de um container basta adicionar a seguinte regra post-up
no mesmo trecho da interface vmbr2
onde as regras de MASQUERADE
foram inseridas.
# Expondo a porta 80 do container com IP 192.168.200.40
post-up iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.200.40:80
Agora você poderá acessar a porta 80
no host para que tenha contato com o container.
Note que esta configuração não torna desnecessária a configuração de um firewall nos containers e no Host. Use iptables
ou as configurações de firewall disponíveis na interface do Proxmox.
Estas configurações com vmbr0
e vmbr2
são comuns em servidores dedicados da OVH, Soyoustart e Kimsufi.