Кто-либо может сказать мне, как установить сетевой интерфейс для каждого контейнера 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, чтобы избежать раскрытия ненужного в вашей сети.