Estou explorando os recursos LXC no Ubuntu 12.04 e realmente quero configurar uma rede como esta:
client1: 192.168.56.101/24
lxc-host: 192.168.56.102/24
guest1 192.168.56.201/24
guest2 192.168.56.202/24
guest3 192.166.56.203/24
Eu só quero uma rede "plana", na qual os convidados tenham acesso total à LAN e sejam visíveis a partir dos clientes. Estou acostumado a criar uma ponte de rede com o libvirt / KVM, conforme descrito aqui: http://libvirt.org/formatdomain.html#elementsNICSBridge
No host:
# /etc/network/interfaces
auto br0
iface br0 inet static
address 192.168.56.102
netmask 255.255.255.0
broadcast 192.168.56.255
bridge_ports eth1
lxc.conf para o primeiro convidado:
# /var/lib/lxc/guest1/config:
lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up
lxc.network.hwaddr=00:16:3e:13:48:4e
lxc.network.ipv4=192.168.56.201/24
Parece que 192.168.56.201 é invisível para o mundo exterior, o que não é o que eu quero. Parece que eu tenho que fazer uma destas coisas:
1) Configure manualmente o roteamento no host e no convidado
2) Faça algo hokey ... crie interfaces virtuais no host com antecedência e configure os convidados para usá-las lxc.network.type=phys
. Não sei se isso realmente funcionaria.
Estou focado no Ubuntu, mas as respostas para o RHEL / Fedora também seriam úteis ....
fonte
Respostas:
Isso está certo - embora você esteja perdendo uma linha como esta:
Eu tenho um convidado LXC rodando no Debian. Primeiro, você configura a ponte do host (a maneira mais fácil), em
/etc/network/interfaces
:No seu caso, você chamou
br0
e eu o chameiwan
. A ponte pode ser chamada como você quiser. Você trabalha primeiro - se falhar, investigue com (por exemplo,)brctl
Em seguida, sua configuração do LXC é configurada para ingressar nessa ponte:
Como observa o HoverHell, alguém com raiz no contêiner pode alterar o endereço IP. Sim. É uma ponte (também conhecida como switch Ethernet). Se você deseja impedir isso, pode usar regras de firewall no host - pelo menos no meu caso, os pacotes precisam passar pelas tabelas de ip do host.
fonte
auto
também é um valor válidolxc.network.ipv4.gateway
e, no meu entender, o padrão é o IP da ponte à qual a interface veth é conectada.wan_phy
estiver voltado para a Internet, o IP da ponte teria que ser outro endereço IPv4 público válido, porque ele deve estar na mesma sub-rede que os outros endereços IPv4 públicos com os quais configurarei meus convidados lxc, certo? Mas isso parece um grande desperdício. askubuntu.com/a/884293/394569 sugere que a configuração de um endereço de ponte não é estritamente necessária.Eu não entrei totalmente no LXC,
mas eu configurei vários contêineres com seus próprios ips estáticos na lan, que fornecem serviços de internet para alguns dos meus sites ...
Talvez isso possa ajudar no que você deseja para o seu.
Eu corro vários contêineres, assim,
NA MÁQUINA DE HOSPEDAGEM, editei o arquivo do host, adicionando cada contêiner e máquina host: vi / etc / hosts
depois de salvar ...
Novamente, na máquina host, defino rede e ponte para:
acima da rede está o meu roteador ip, para lan. endereço (interno) e transmissão é máquina host, ip interno, que mais tarde uso um VHOST para acesso à Internet, servidores da web, ftp, etc.
PARA RECIPIENTES LXC 1-4, CONFIGURAR CONFIGURAÇÃO ASSIM:
agora IP do contêiner 1 = 192.168.1.101
repito para contêineres adicionais terem seu próprio IP estático na LAN ..
no contêiner 1-4,
efetue login no host:
& eu defino cada rede de contêineres como static, eth0 para:
CADA UM DOS CONTENTORES TEM PRÓPRIO IP, (local) DISPONÍVEL NA LAN. U PODE SSH CADA IP LOCAL INDIVIDUAL, PARA TESTAR USANDO PUTTY!
Depois disso, tenho certeza de que você deve descobrir como executá-los via internet depois, por exemplo, do vhost para o contêiner ip / load balancers / proxy / etc.
Talvez essa configuração possa ajudar de qualquer maneira.
fonte
iface
estrofe comomanual
(notstatic
ordhcp
).up
,down
,dns-nameservers
Etc ainda pode ser utilizado no Debian etcAinda não joguei com o LXC, mas este artigo deve ajudá-lo: configuração de rede usando pontes ethernet (consulte o Método 2).
Para lhe dar uma dica sobre a configuração (presumo que o br0 já esteja configurado corretamente):
ip link add type veth
brctl addif br0 veth0
ns_exec -nm -- /bin/bash
ip link set veth1 netns PID_OF_LXC_SHELL
fonte