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

Наличие одного из многих общедоступных IP-адресов только для LXC

У меня есть VPS-сервер, размещенный с использованием Xen от хостинг-провайдера. Мне присвоено несколько IP-адресов (*. *. 56.234, *. *. 56.235, *. *. 56.236, ...), однако есть одно физическое сетевое устройство eth0.

Хост использует первый из пула (*. *. 56.234). Я хочу, чтобы мой контейнер использовал *. *. 56.235 и был полностью автономным. Другими словами, адрес .235 должен быть доступен только для контейнера, а .234 - для хоста, чтобы я мог запускать две разные службы как на хосте, так и в контейнере, где оба они прослушивают один и тот же порт.

Думаю, я испортил записи конфигурации, так как смог запустить сеть в контейнере, но:

Вот моя конфигурация (обратите внимание, что X, Y обозначают общедоступный диапазон, ни один из них не является диапазоном LAN)

Хост / etc / network / interfaces

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
        address X.Y.56.234
        netmask 255.255.255.248
        network X.Y.56.232
        broadcast X.Y.56.239
        gateway X.Y.56.233
        dns-nameservers 8.8.8.8

auto br0
iface br0 inet static
        bridge_ports eth0
        bridge_fd 0
        ###################
        address X.Y.56.235
        network X.Y.56.232
        broadcast X.Y.56.239
        gateway X.Y.56.233
        dns-nameservers 8.8.8.8

/ Etc / network / interfaces контейнера

auto lxcnet0
iface lxcnet0 inet static
        address X.Y.56.235
        network X.Y.56.232
        broadcast X.Y.56.239
        gateway X.Y.56.233
        dns-nameservers 8.8.8.8

записи конфигурации контейнера

## Network
lxc.network.type = veth
lxc.network.flags = up
lxc.network.name = lxcnet0
lxc.network.hwaddr = 00:FF:AA:11:22:33
lxc.network.link = br0
lxc.network.ipv4 = X.Y.56.235/32

Вы поступили частично неправильно. IP-адрес хоста должен быть на интерфейсе моста (по какой-то причине сетевой стек Linux не работает должным образом, когда IP-адрес настроен на одной из ветвей), а IP-адрес контейнера должен быть на интерфейсе контейнера, но со стороны контейнера, а не с хоста один (и, вероятно, поэтому у вас бывают спайки). Кроме того, вы можете опустить IP-адрес контейнера в его конфигурации, достаточно иметь конфигурацию IP только из ОС контейнера (и очень удобно иметь адрес контейнера только в одном месте).