Может ли кто-нибудь сказать мне, как настроить сетевой интерфейс для каждого контейнера LXC, чтобы каждый контейнер мог иметь свой собственный выделенный IP-адрес?
Вот что /etc/network/interfaces
файл на моем хост-узле выглядит так:
# Generated by SolusVM
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 160.201.10.167
gateway 160.201.8.1
netmask 255.255.252.0
dns-nameservers 8.8.8.8 8.8.4.4
auto eth0:0
iface eth0:0 inet static
address 160.201.8.32
gateway 160.201.8.1
netmask 255.255.252.0
dns-nameservers 8.8.8.8 8.8.4.4
auto eth0:1
iface eth0:1 inet static
address 160.201.8.36
gateway 160.201.8.1
netmask 255.255.252.0
dns-nameservers 8.8.8.8 8.8.4.4
auto eth0:2
iface eth0:2 inet static
address 160.201.8.37
gateway 160.201.8.1
netmask 255.255.252.0
dns-nameservers 8.8.8.8 8.8.4.4
Вот как выглядит мой файл конфигурации контейнера LXC:
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
lxc.rootfs = /var/lib/lxc/francis/rootfs
lxc.mount = /var/lib/lxc/francis/fstab
lxc.utsname = francis
lxc.arch = amd64
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = eth0
lxc.network.hwaddr = 00:16:3e:de:53:6f
lxc.network.ipv4 = 160.201.8.32
lxc.cgroup.memory.limit_in_bytes = 256M
lxc.cgroup.memory.memsw.limit_in_bytes = 256M
Может ли кто-нибудь показать мне, как дать контейнеру «francis» собственный публичный IP-адрес, например 160.201.8.32
например?
На моем хост-узле работает сервер Ubuntu 14.04.
Это зависит от того, чем вы действительно хотите заниматься.
Если вы просто хотите сделать свой контейнер полностью автономным с его IP-адресом или просто сделать его доступным для определенных протоколов на определенных портах.
Во втором случае вам просто нужно включить маршрутизацию на eth0 и настроить правила NAT для определенных портов и протоколов NAT / unNAT на частный IP-адрес контейнера на мосту LXC и обратно.
В первом случае вам нужно будет добавить еще один мост, включите proxy_arp
как на eth0, так и на новом интерфейсе моста, и назначить публичный IP-адрес напрямую интерфейсу контейнера veth без использования псевдонимов IP на eth0. Затем настройте правила iptables, чтобы не подвергать вашу сеть ненужному.