Existe uma maneira de compartilhar um serviço de escuta no loopback do host com um convidado LXC?

3

Estou tentando fornecer um serviço para os convidados do LXC, mas não quero expô-lo do host. Eu também não quero colocar regras de firewall para o serviço, então o loopback parece ser a solução mais simples.

Existe uma maneira de ter um serviço de escuta em lo (loopback) compartilhado com convidados LXC, por exemplo? semelhante aos diretórios de montagem de ligação no lugar?

    
por 0xC0000022L 17.05.2014 / 20:43

1 resposta

3

Existem diferentes maneiras de atingir seu objetivo.

Se os convidados compartilharem uma rede virtual (ou seja, não estiverem apenas conectados à interface física), será fácil. Basta informar seus serviços para ouvir essa interface - ou criar um novo convidado e permitir que ele hospede o serviço.

Se os convidados forem vinculados a ethX , talvez você ainda deseje criar uma interface virtual guest + host apenas, pois esse tipo de encapsulamento faz sentido para todos os tipos de serviços (servidor de email interno, qualquer servidor de banco de dados, DNS local, etc.)

(E obviamente há a maneira que você já descartou por algum motivo: regras de firewall)

Quanto a lo : cada host lxc tem o seu próprio, e isso é bom imo

Todos os meus clientes lxc compartilham uma interface virtual e para cada serviço que deve ser exposto à Internet pública, eu crio regras de encaminhamento de porta no iptables do host. E tento executar o menor número de serviços possível no próprio host. Dessa forma, há pouco ou nenhum risco expondo acidentalmente qualquer serviço.

E por questão de integridade, aqui está minha configuração:

Meu arquivo interfaces (debian stable):

auto br0
iface br0 inet static
    bridge_maxwait 0
    bridge_fd 0
    bridge_ports dummy0
    address 192.168.x.1
    netmask 255.255.255.0
    # if there are lxc clients that need a public IP, add something like this (a.b.c.d being the public IP) and set the client's 'lxc.network.ipv4' config parameter to the same address:
    #post-up route add a.b.c.d dev br0

A parte relevante da configuração do cliente:

lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.veth.pair = lxc-apache # each client gets their own .pair name
lxc.network.ipv4 = 192.168.x.y/24 # ... and of course their own address
    
por 17.05.2014 / 22:13

Tags