Назад | Перейти на главную страницу

Проблема Proxmox VE 4.2 на серверах OVH, LXC не может получить доступ в Интернет

Я заменил IP на фиктивные IP.

1.2.3.4 - основной IP 5.6.7.194 - выделенный IP LXC

Детали для основного сервера:

Основной IP-сетевой интерфейс 1.2.3.4

auto lo
iface lo inet loopback

iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto vmbr1
iface vmbr1 inet manual
        bridge_ports dummy0
        bridge_stp off
        bridge_fd 0
        post-up /etc/pve/kvm-networking.sh

auto vmbr0
iface vmbr0 inet static
        address  1.2.3.4
        netmask  255.255.255.0
        gateway  1.2.3.254
        broadcast  1.2.3.255
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        network 1.2.3.0

iface vmbr0 inet6 static
        address  2607:5300:120:00cc::
        netmask  64
        gateway  2607:5300:120:00FF:FF:FF:FF:FF
        post-up /sbin/ip -f inet6 route add 2607:5300:120:00ff:ff:ff:ff:ff dev vmbr0
        post-up /sbin/ip -f inet6 route add default via 2607:5300:120:00ff:ff:ff:ff:ff
        pre-down /sbin/ip -f inet6 route del default via 2607:5300:120:00ff:ff:ff:ff:ff
        pre-down /sbin/ip -f inet6 route del 2607:5300:120:00ff:ff:ff:ff:ff dev vmbr0

auto vmbr2
iface vmbr2 inet static
        address  192.168.100.1
        netmask  255.255.255.0
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0

        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr1 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr1 -j MASQUERADE

Файл сетевого интерфейса контейнера LXC:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 5.6.7.194
        netmask 255.255.255.255
        broadcast 5.6.7.194
        gateway 1.2.3.254
        post-up ip  route add 1.2.3.254 dev eth0
        post-up ip route add default via 1.2.3.254
        pre-down ip  route del 1.2.3.254 dev eth0
        pre-down ip  route del default via 1.2.3.254

dns-nameservers 213.186.33.99 # OVH DNS Server
dns-search ovh.net # For faster hosts resolution on the OVH network

Основная таблица IP-маршрутизации

Main IP Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         1.2.3.254  0.0.0.0         UG    0      0        0 br0
default         1.2.3.254  0.0.0.0         UG    0      0        0 vmbr0
1.2.3.0    *               255.255.255.0   U     0      0        0 vmbr0
1.2.3.0    *               255.255.255.0   U     0      0        0 br0
192.168.100.0   *               255.255.255.0   U     0      0        0 vmbr2

LXC container Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         1.2.3.254  0.0.0.0         UG    0      0        0 eth0
1.2.3.254  *               255.255.255.255 UH    0      0        0 eth0

Я не могу решить проблему с сетью. Это на серверах OVH. Есть какие-нибудь идеи?

Я сам нашел решение. С настройкой сети все было правильно. Отсутствовал только адрес виртуального Mac, поэтому после его добавления виртуальная машина теперь начинает отвечать.

Проблема здесь в том, что ваша виртуальная машина находится в другой IP-сети. 5.6.7.0/24 чем шлюз по умолчанию 1.2.3.4 что вы пытаетесь использовать. Конечно, это могло быть просто ошибкой в ​​вашем вопросе.

Однако, если они находятся в разных IP-сетях, у вас есть два варианта исправить это:

1) Подключите общедоступный сетевой интерфейс к виртуальному интерфейсу виртуальной машины и назначьте виртуальной машине общедоступный IP-адрес из основной IP-подсети, например 1.2.3.5. Затем вы можете назначить 1.2.3.254 в качестве шлюза по умолчанию в виртуальной машине. Этот вариант требует наличия общедоступных IP-адресов.

2) Создайте отдельную IP-сеть между хостом и виртуальной машиной. В этом случае вы не соединяете общедоступный сетевой интерфейс с виртуальным интерфейсом виртуальной машины, но вы назначаете IP-адрес частной сети интерфейсу виртуальной машины хоста, например 192.168.121.1.

Затем вы назначаете 192.168.121.2 в качестве IP-адреса в виртуальной машине и используйте 192.168.121.1 как шлюз по умолчанию.

Наконец, вам нужно добавить SNAT для трафика из частной сети, чтобы трафик из частной сети был изменен на исходящий из 1.2.3.4 IP. А для любого трафика, поступающего на виртуальную машину извне, вам необходимо добавить DNAT для этих портов на хосте.