Configure o endereço IP público no contêiner LXC

1

Alguém pode me dizer como configurar uma interface de rede para cada contêiner LXC para que cada contêiner possa ter seu próprio endereço IP dedicado?

Veja como o arquivo /etc/network/interfaces no nó do host se parece:

# 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

Veja como se parece o meu arquivo de configuração do contêiner 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

Alguém pode me mostrar como dar ao contêiner "francis" seu próprio endereço IP público, como 160.201.8.32 , por exemplo?

Meu nó host está executando o Ubuntu 14.04 Server.

    
por Francis 08.03.2015 / 14:19

1 resposta

1

Depende do que você realmente quer fazer.

Se você deseja simplesmente tornar seu contêiner totalmente autônomo com seu IP ou simplesmente torná-lo acessível para determinados protocolos em portas específicas.

Para o segundo caso, basta ativar o roteamento em eth0 e configurar as regras NAT para portas e protocolos NAT / unNAT específicos para / do IP privado do contêiner na ponte do LXC.

Para o primeiro caso, você precisará adicionar outra ponte, habilitar proxy_arp na interface eth0 e na nova ponte e atribuir diretamente o endereço IP público à interface container veth sem usar qualquer alias de IP em eth0. Em seguida, configure as regras do iptables para evitar expor o que é desnecessário à sua rede.

    
por 09.03.2015 / 20:10