veth, macvlan ou talvez sth else?

2

Eu não entendo os modos de rede lxc.

Gostaria de ter 4 convidados: apache1, apache2, banco de dados e frontdoor

frontdoor é um squid que decide qual apache deve ser usado

Funciona perfeitamente em vservers, quando todos os hóspedes tem uma interface fictícia (isolada da web) e frontdoor tem duas interfaces eth0 e dummy reais

Agora eu migro para lxc e, em vez de manequim, uso bridge (no host) e mode = veth (em guests)

Eu não estou feliz em ver quatro vethLIJG3f no ifconfig, mas vamos ver tudo bem.

o problema é que eu NÃO posso chegar ao squid. eu estou tentando iptables -t NAT -A PREROUTING -p tcp --dportar 80 -j DNAT - to-dest 172.16.0.2 mas simplesmente não funciona.

Eu me pergunto se devo mudar de opinião para outra coisa?

    
por SledgehammerPL 11.04.2011 / 19:56

2 respostas

2

Bem, isso é interessante Eu estou jogando com um vserver e eu realmente não entendo como ele funciona com eth e manequim.

Seja como for, no seu caso, acho que você precisa ativar o encaminhamento de IP.

sysctl -w net.ipv4.conf.all.forwarding=1

Verifique o /etc/sysctl.conf para torná-lo permanente

A interface de nomes que entra na ponte é uma boa ideia se você quiser saber quem é quem. No arquivo de configuração lxc:

lxc.network.veth.pair=eth0-guest1

rede em lxc permite uma rede mais sofisticada. Por exemplo, você poderia simular um "proxy" real com 2 interfaces virtuais, uma em uma ponte (digamos br0) conectada à internet (IPs públicos, dmz, qualquer coisa) outra (digamos br1) conectada aos "serviços internos"

 .-----------.
 | host eth0 |<----.
 '-----------'     |
         .-------------------.                  .-------------------.
         | br0 (public IP)   |                  | br1 (10.1.1.1/24) |
         '-------------------'                  '-------------------'
                   ^            .--------------------.    ^
                   '------------|    guest squid     |----|
                                '--------------------'    |
                                     .---------------.    |
                                     | guest apache1 |----'
                                     '---------------'    |
                                     .---------------.    |
                                     | guest apache2 |----'
                                     '---------------'    |
                                                 .----------------.
                                                 | guest database |
                                                 '----------------'

Nota: para uma segunda interface ethernet virtual, basta repetir a sub-rotina lxc.network ...

    
por 04.02.2012 / 20:55
2

Tem o mesmo problema. Eu estava tentando encaminhar portas para o contêiner lxc com

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 7070 -j DNAT --to-destination 172.16.110.15:7070

Mas isso não funciona. A solução foi muito simples:

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE

Para mais detalhes, consulte este

    
por 12.10.2012 / 00:05