Come posso configurare un guest LXC in modo che ottenga un indirizzo dhcp in modo da poterlo accedere sulla mia rete?


15

Ho installato LXC usando:

lxc-create -t ubuntu -n lxcguest1

Ma non riesco ad accedere a nessun servizio in esecuzione su di esso dalla mia LAN, sembra essere NAT. Come lo configuro in modo da potervi accedere (probabilmente deve ottenere il suo indirizzo dhcp dal mio router Linksys)?

Grazie.


Possibile duplicato di askubuntu.com/questions/256304/…
bekce

Risposte:


5

Ho appena affrontato questo problema da solo. Fondamentalmente è necessario impostare un bridge e associare la scheda di rete e il contenitore ad esso. Ecco l'articolo che ho seguito:

http://bj0z.wordpress.com/2011/08/19/howto-build-a-base-lxc-container-in-ubuntu-11-04/

Sembra come me, hai bisogno della soluzione "bridge" piuttosto che della soluzione NAT. Ho anche disattivato la configurazione predefinita del bridge LXC (che è NAT). Per fare questo basta modificare il file: /etc/default/lxce il cambiamento USE_LXC_BRIDGE="TRUE"per USE_LXC_BRIDGE="FALSE"e riavviare.


1
Sono un po 'confuso da questa soluzione: dice che deve installare un bridge, quindi dice che la soluzione è disattivare l'impostazione predefinita del bridge. Sicuramente deve accendere una configurazione bridge. La seconda cosa di cui ho bisogno di aiuto è che l'utente dice che l'installazione del bridge è NAT, sicuramente è a ponte (quindi i contenitori si trovano sulla stessa rete dell'host) o è NAT (su una rete diversa e richiede il routing). La mia comprensione è che si escludono a vicenda?
John Little,

1
Questo non è più valido ora con le versioni correnti. / etc / default / lx * è completamente sparito.
spyderdyne,

5

La mia configurazione su host Ubuntu 14.04.1 LTS (Trusty Tahr)

Aggiungi a /etc/network/interfacessull'host

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 0.0.0.0

auto br0
iface br0 inet dhcp
    bridge_ports eth0

(riavvia dopo le modifiche)

E sul contenitore config files ( /var/lib/lxc/containername/config) ho impostatolxc.network.link = br0

Con questo il contenitore otterrà gli indirizzi IP pubblici dal server DHCP proprio come l'host.


@JonathanY. Il br0 dovrebbe apparire dopo averlo aggiunto a / etc / network / interfaces come indicato nella risposta. Potrebbe essere necessario un riavvio.
Epeli,

3
Grazie. Quello che mi mancava era aggiungere <username> veth br0 2 per poterlo /etc/lxc/lxc-usernetutilizzare br0con contenitori non privilegiati.
Jonathan Y.

2

Ho usato le impostazioni predefinite di Ubuntu LXC e ho configurato il mio router per inviare tutto il traffico su 10.0.3.xxx alla macchina Ubuntu. Su un router abilitato DD-WRT, le impostazioni assomigliano allo screenshot seguente. Sostituire 192.168.1.137con l'IP della macchina che esegue LXC. Altri router dovrebbero avere opzioni simili per impostare una route statica (qui ci sono le istruzioni di route statiche per Linksys , per esempio).

Impostazioni DD-WRT per il routing statico verso LXC

Questo non è correlato, ma ho anche usato il servizio DNSMasq per puntare un nome host all'indirizzo IP del contenitore LXC. In questo modo posso accedere al contenitore in http://gitlab/qualsiasi punto della rete. Secondo me è molto più facile usare un nome host per accedere a un container che ricordare l'indirizzo IP.

Impostazioni DD-WRT DNSMasq


1
Bel approccio: prova. Pollice su! L'aggiunta di route statiche funziona e il router stesso può eseguire il ping di macchine containerizzate! Ma con molti router forniti dall'ISP il port forwarding non funzionerà a causa di: Error code: 4937 The IP address is not in the same subnet with LAN IP address. Please input another one. (il router contiene la sottorete 192.168.xx, mentre LXD / LXC sono sulla sottorete 10.0.xx)
stamster

1
Sì, il tuo router dovrà accettare una maschera di sottorete affinché la mia soluzione funzioni. Mi piace comprare un router e aggiungere un firmware post-vendita per rendere possibili configurazioni pazze :-p
terze parti

1
Sto usando MikroTik sia a casa che in ufficio, ma questo era per una configurazione in cui avevano un semplice router fornito dall'ISP. Quindi la tua idea è molto semplice ma molto efficace - Principio KISS :) Mi piace e la userò sicuramente perché non riesco a capire come quei contenitori non hanno ancora una soluzione per esporli nel mondo esterno.
Criceto
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.