Configurazione della rete LXC

Configurazione della rete LXC
Quando si avvia un contenitore Linux, è possibile utilizzare le funzioni di rete. La domanda diventa: “Stai cercando di fare rete con l'host, l'ampio Internet, un altro contenitore o forse tutti i contenitori locali?"Meno male che ci sono soluzioni per tutti loro!

Profili

Per renderlo corretto, è necessario configurare il tuo contenitore. La configurazione di base è già sul sistema se hai utilizzato una distribuzione regolare. Puoi configurarlo ulteriormente con i comandi, ma la maggior parte delle persone userà i file YAML. La base di solito sembra quella sotto. Il file risiede in /etc/lxc/default.conf.

LXC.netto.0.type = veth
LXC.netto.0.link = lxcbr0
LXC.netto.0.flags = up
LXC.netto.0.Hwaddr = 00: 16: 3e: xx: xx: xx

Ogni contenitore segue le impostazioni in base al profilo predefinito e al file sopra menzionato. È possibile stampare il file predefinito come sotto. Per una maggiore configurazione, è meglio realizzare nuovi profili. Ogni profilo conterrà alcuni dettagli di configurazione, nei nostri casi networking. Puoi modificare qualsiasi impostazione nel contenitore con un profilo e questo ha ancora più senso quando si desidera eseguirlo sia a livello locale che su una piattaforma.

$ LXC Profilo Mostra impostazione predefinita
config:
Descrizione: profilo LXD predefinito
dispositivi:
Eth0:
Nome: Eth0
Rete: LXDBR0
Tipo: Nic
radice:
sentiero: /
Piscina: Ros
Tipo: disco
Nome: impostazione predefinita
usato da:
- /1.0/istanze/Guiapps
- /1.0/istanze/ff

L'output risultante è un file yaml. Tutti i tuoi profili saranno nello stesso formato. Con LXC stesso, puoi creare, rimuovere e modificare il tuo profilo. Puoi vedere nel file che il valore predefinito utilizza la rete LXDBR0 e digita NIC. Ora crea un nuovo profilo utilizzando quanto segue:

$ LXC Profile Crea Nicnet

Prima che qualsiasi contenitore sia in esecuzione, modifica il profilo:

$ LXC Profilo Modifica Nicnet

Usi il formato YAML nei file che creano questi profili. Si noti che il nome "Eth0" è il nome del contenitore interno. Il "genitore" è quello che hai sul tuo sistema e lo controlli da solo usando:

$ ip a

La stampa varierà a seconda di ciò che hai avuto prima. Dovresti anche sapere che puoi fare il ponte dall'esterno del contenitore con gli strumenti BRCTL.

Usandolo nel tuo contenitore

Una volta creato un profilo, vuoi aggiungerlo al tuo contenitore. Questo viene fatto con la stessa serie di programmi "LXC". Innanzitutto, assicurati di avere un contenitore, in questo esempio, il contenitore è chiamato "ff":

$ LXC Profilo Aggiungi FF Nicnet

La modifica ha effetto quando si riavvia il networking nel contenitore. Il più semplice e sicuro è aggiungere sempre profili solo nei contenitori fermati.

Instradato

Una connessione a ponte è quella in cui il container riceve un indirizzo MAC sulla stessa interfaccia Ethernet dell'host. Questo è quello che hai fatto in precedenza in questo post. Con alcuni altri trucchi, puoi far assegnare il tuo router un indirizzo IP separato al contenitore e puoi impostarlo nel contenitore. Anche se, quando usi MacVlan, puoi imbatterti nei guai usando Wi-Fi. WPA/WPA2 non accetterà i due indirizzi, quindi il tuo Wi-Fi si romperà, poiché l'host non utilizzerà il Wi-Fi.

L'esempio precedente utilizza gli strumenti BRCTL poiché LXC ha creato il proprio. Questo ottiene un indirizzo dall'host, non dal router. Puoi ottenere l'indirizzo dal router se lo desideri. Ancora una volta, solo se si utilizza una connessione cablata o un Wi-Fi insicuro.

Quando ti sei assicurato di avere una connessione di rete sul tuo host, puoi collegarla al tuo contenitore. Cambia la parola genitore e imposta il tuo nictype su macvlan.

config:
Descrizione: impostazione per l'interfaccia di rete
dispositivi:
Eth0:
Nome: Eth0
Nictype: MacVlan
Genitore: ENP3S0
Tipo: Nic
Nome: percorso
usato da:
- /1.0/istanze/Guiapps
- /1.0/istanze/ff

Dovrai assicurarti che il valore del genitore corrisponda alla tua configurazione, quindi assicurati di crearlo in modo dinamico. Dopo questo, puoi avviare il tuo contenitore e trovarlo nell'elenco delle destinazioni host del router. Bene, sono interfacce, per essere tecnici al riguardo.

Figura 1: il contenitore ora si presenta nel tuo router

Profili mobili

Una parte interessante dei contenitori Linux è che puoi prendere le configurazioni e scaricarle nei file YAML. Per creare i file per questo, si esegue l'opzione Show in LXC, quindi si tuba in un file. L'output segue lo standard YAML e puoi quindi utilizzare questi file per configurarli altrove.

$ LXC Profile Show Route> Route.YML

Per utilizzare questo per un nuovo contenitore, utilizzare i valori impostati. Di solito, imposteresti un valore alla volta, ma hai già un file per questo.

$ LXC Profile crea NewRoute $ LXC Profilo Imposta l'utente di NewRoute.rete.configurazione - < Route.yml

Puoi vedere che devi inserire i valori nell'utente dello spazio dei nomi.rete.configurazione. Questo è importante sapere quando si desidera aggiungere altri valori non correlati al networking.

Conclusione

Il networking con i tuoi contenitori ha molte opzioni, che possono essere confuse, ma con alcune ricerche e test da solo, puoi farlo funzionare nel modo in cui vuoi. La parte migliore è che puoi provare una cosa alla volta usando i profili. Non rovinerai mai il tuo contenitore attuale, basta rimuovere quello che non ha funzionato e aggiungerai quello vecchio. Questa tecnica funziona per tutto in un contenitore.