Acesso à Internet a partir de contêineres LXC no proxmox 5.1 no VirtualBox

1

Instalei um Proxmox VE 5.1 em um VirtualBox no macOS (10.12).

O palpite OS, Debian Strech (Proxmox é baseado no debian), tem 2 interfaces de rede "físicas" (configuradas do VirtualBox), Host-Only e NAT , eu consigo acessar a internet através da interface NAT:

root@proxmox:~# traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1  10.0.3.2 (10.0.3.2)  0.792 ms  0.694 ms  0.625 ms
 2  1dot1dot1dot1.cloudflare-dns.com (1.1.1.1)  2.829 ms  2.818 ms  3.318 ms

O / etc / network / interfaces no host debian contém:

auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet static
    address  192.168.56.101
    netmask  255.255.255.0

auto enp0s8
iface enp0s8 inet static
    address  10.0.3.15
    netmask  255.255.255.0
    gateway  10.0.3.2
#NAT

auto vmbr0
iface vmbr0 inet static
    address  172.16.1.1
    netmask  255.255.255.0
    bridge_ports dummy1
    bridge_stp off
    bridge_fd 0

O "guest", debian, vê o macOS ("host") de ambas as interfaces (macOS IPs: 192.168.56.1, 10.0.3.2).

A interface vmbr0 virtual foi criada para os contêineres LXC do proxmox, adicionei uma regra do iptables para enviar todo o tráfego do vmbr0 para a interface enp0s8 (a interface NAT no VirtualBox).

iptables -A POSTROUTING -s 172.16.1.0/24 -o enp0s8 -j MASQUERADE -t nat

O problema é que quando eu crio um contêiner LXC dentro do proxmox, usando a interface de rede vmbr0 as, o contêiner LXC não tem acesso à Internet, eu posso pingar para o proxmox "master" ( IP: 172.16.1.1) mas nada mais.

Eu também tentei usar o parâmetro enp0s8 como bridge_ports , mesmo resultado.

O arquivo /etc/network/interfaces no contêiner LXC (Ubuntu 16.04) contém:

auto eth0
iface eth0 inet static
        address 172.16.1.100
        netmask 255.255.255.0
        gateway 172.16.1.1

Eu tenho uma configuração bastante semelhante em outro servidor proxmox (mas no bare metal, não na instalação do VirtualBox) e funciona ok.

Alguém pode me dizer o que está incorreto ou faltando na configuração de rede para permitir que os contêineres acessem a Internet?

    
por Roberto 26.04.2018 / 23:20

1 resposta

1

Para fazer o roteamento de um trabalho de VM, você precisa

  1. uma configuração de roteamento correta no host (o que parece ser o caso aqui)
  2. para habilitar o roteamento em geral via /proc/sys/net/ipv4/ip_forward (o que pode ser feito de forma permanente com as ferramentas de rede da distro ou diretamente em /etc/sysctl.* )
  3. para permitir o roteamento de pacotes com iptables (ou seja, filter/FORWARD chain e / ou seus filhos)
por 27.04.2018 / 09:11