Я установил Proxmox VE 5.1 на VirtualBox в macOS (10.12).

Предполагаемая ОС, Debian Strech (Proxmox построен на Debian), имеет 2 "физических" сетевых интерфейса (настроенных из VirtualBox), Host-Only и NAT , я могу получить доступ к Интернету через интерфейс 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

Файл /etc /network /interfaces в хосте debian содержит:

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

"Гость", debian видит macOS ("хост") с обоих интерфейсов (IP-адреса macOS: 192.168.56.1, 10.0.3.2).

Виртуальный интерфейс vmbr0 был создан для контейнеров proxmox LXC, я добавил правило iptables для отправки всего трафика из vmbr0 на интерфейс enp0s8 (интерфейс NAT в VirtualBox).

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

Проблема заключается в том, что когда я создаю контейнер LXC внутри proxmox, используя vmbr0 качестве сетевого интерфейса, контейнер LXC не имеет доступа к Интернету, я могу пропинговать "master" proxmox (IP: 172.16.1.1), но больше ничего.

Я также пытался использовать enp0s8 в качестве параметра bridge_ports , тот же результат.

Файл /etc/network/interfaces в контейнере LXC (Ubuntu 16.04) содержит:

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

У меня довольно похожий конфиг на другом сервере Proxmox (но на голом железе, а не на установке VirtualBox), и он работает нормально.

Может кто-нибудь сказать мне, что неправильно или отсутствует в конфигурации сети, чтобы разрешить контейнерам доступ в Интернет?

1 ответ1

0

Проблема была в том, что на хосте debian ("master" в proxmox) не был активирован ip_routing, поэтому выполнение следующей команды все начинает работать нормально:

echo 1 > /proc/sys/net/ipv4/ip_forward

Итак, теперь я получаю (из контейнера lxc):

# traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1  172.16.1.1 (172.16.1.1)  0.978 ms  0.931 ms  0.911 ms
 2  10.0.3.2 (10.0.3.2)  0.894 ms  0.810 ms  0.757 ms
 3  * * *
 4  1dot1dot1dot1.cloudflare-dns.com (1.1.1.1)  5.780 ms  6.463 ms  6.909 ms

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .