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

NAT не работает с LXC

У меня есть выделенный сервер, и я пытаюсь создать NAT. Мои виртуальные хосты - это контейнеры LinuX, у меня только 1 общедоступный IP-адрес, и я пытаюсь подключиться к Интернету внутри своего LXC.

На моем хосте интерфейс по умолчанию, через который у меня есть доступ в Интернет, - eno1, и я создал на нем мост:

auto lxc-nat-bridge
iface lxc-nat-bridge inet static
    bridge_ports none
    bridge_fd 0
    bridge_stp off
    address 192.168.1.1
    netmask 255.255.255.0
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward

Вот конфигурация сети моего LXC:

# Network configuration
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = lxc-nat-bridge
lxc.network.ipv4 = 192.168.1.2/24
lxc.network.ipv4.gateway = 192.168.1.1
lxc.network.veth.pair = vethWeb

Затем я ввел это правило iptables, чтобы создать маскарад:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eno1 -j MASQUERADE

Когда я запускаю контейнер, я могу пинговать его с хоста, но когда я присоединяюсь к контейнеру и выполняю подходящее обновление (это команда, которую я использую для проверки доступа в Интернет, потому что ping не установлен):

root@web_container:/# apt update
Err:1 http://deb.debian.org/debian stretch InRelease                 
  Temporary failure resolving 'deb.debian.org'
Err:2 http://security.debian.org stretch/updates InRelease           
  Temporary failure resolving 'security.debian.org'
Reading package lists... Done                                        
Building dependency tree       
Reading state information... Done
All packages are up to date.
W: Failed to fetch http://deb.debian.org/debian/dists/stretch/InRelease  Temporary failure resolving 'deb.debian.org'
W: Failed to fetch http://security.debian.org/dists/stretch/updates/InRelease  Temporary failure resolving 'security.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
root@web_container:/#

Не работает :(

Вот ifconfig, выполняемый в контейнере:

root@web_container:/# /sbin/ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.1.2  netmask 255.255.255.0  broadcast 192.168.1.255
    inet6 fe80::7c2c:37ff:fe50:ab0e  prefixlen 64  scopeid 0x20<link>
    ether 7e:2c:37:50:ab:0e  txqueuelen 1000  (Ethernet)
    RX packets 11  bytes 786 (786.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 60  bytes 4623 (4.5 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Пожалуйста, помогите мне, ребята, я застрял в этом несколько дней!