Como posso restringir um convidado LXD a usar um único endereço IP público?

2

Eu tenho um contêiner LXD do Ubuntu 14.04 em um host do servidor Ubuntu 14.04 (usando o PPA lxd-git-master). Eu quero impedir que ele atinja qualquer outro contêiner ou se comunique com a Internet pública em qualquer intervalo de IP, exceto para um bloco / 32 específico (ou seja, um IP). Esse IP é roteado estaticamente para o meu servidor em um datacenter e eu preciso ser capaz de especificar o IP, a sub-rede e o gateway padrão.

Eu li que o LXD em si não faz rede, então qual programa / utilitário especificamente é o mais fácil de instalar e configurar de maneira direta para configurar isto explicitamente?

P.S. Eu preciso que ele seja capaz de se ligar a todas as portas TCP e UDP possíveis naquele endereço IP, e seria ideal se o host não tentasse se ligar ao IP quando ele inicia um processo que liga em 0.0.0.0.

    
por allquixotic 17.05.2015 / 05:10

1 resposta

1

Você provavelmente deseja encaminhar esse IP público para seu contêiner, portanto, certifique-se de que o próprio host não o tenha em sua configuração de rede e faça algo como:

ip route add IP/32 via CONTAINER-IP dev lxcbr0

Em seguida, você pode adicionar o IP público à configuração de rede do contêiner adicionando-o a sua configuração de rede na seção eth0:

post-up ip addr add IP/32 dev eth0

Nesse ponto, você deve conseguir fazer ping no contêiner usando o IP público.

Você vai querer ter certeza de que o host não faz o tráfego NAT vindo daquele IP e quanto a restringir o acesso a outros recursos do contêiner, você teria que fazer isso com o iptables no host. Note que uma boa propriedade das pontes Linux é que o iptables é chamado no tráfego intra-bridge, então você pode absolutamente impedir que o container acesse qualquer vizinho.

    
por stgraber 23.11.2015 / 19:03