Установите общедоступный IP-адрес на контейнере LXC

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

1
задан 8 March 2015 в 15:19
1 ответ

Это зависит от того, что вы на самом деле хотите делать.

Если вы просто хотите сделать свой контейнер полностью автономным с его IP-адресом или просто сделать его доступным для определенных протоколов на определенных портах.

Во втором случае вам просто нужно включить маршрутизацию на eth0 и настроить правила NAT для определенных портов и протоколов NAT / unNAT на частный IP-адрес контейнера на мосту LXC и обратно.

В первом случае вам потребуется чтобы добавить еще один мост, включите proxy_arp как на eth0, так и на новом интерфейсе моста и назначьте публичный IP-адрес напрямую интерфейсу veth контейнера без использования псевдонимов IP на eth0. Затем настройте правила iptables, чтобы избежать раскрытия ненужного в вашей сети.

1
ответ дан 4 December 2019 в 00:11

Теги

Похожие вопросы