LXC

Configurazione di rete LXC

Configurazione di rete LXC
Quando avvii un contenitore Linux, potresti voler utilizzare le funzioni di rete. La domanda diventa: "Stai cercando di connetterti in rete con l'host, l'ampia Internet, un altro contenitore o forse tutti i contenitori locali??” Meno male che ci sono soluzioni per tutti!

Profili

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

lxc.netto.0.tipo = veth
lxc.netto.0.collegamento = lxcbr0
lxc.netto.0.bandiere = su
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 di seguito. Per ulteriori configurazioni, è meglio creare nuovi profili. Ogni profilo conterrà alcuni dettagli di configurazione, nel nostro caso networking. Puoi modificare qualsiasi impostazione nel tuo contenitore con un profilo, e questo ha ancora più senso quando vuoi eseguirlo sia localmente che su una piattaforma.

Il profilo $ lxc mostra la configurazione predefinita:
descrizione: profilo LXD predefinito
dispositivi:
eth0:
nome: eth0
rete: lxdbr0
tipo: nic
radice:
sentiero: /
piscina: rosa
tipo: disco
nome: predefinito
usato da:
- /1.0/istanze/guiapp
- /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 l'impostazione predefinita utilizza la rete lxdbr0 e digita nic. Ora, crea un nuovo profilo usando quanto segue:

$ lxc profilo crea nicnet

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

$ lxc modifica profilo nicnet

Usi il formato YAML nei file che creano questi profili. Nota che il nome "eth0" è il nome del contenitore interno. Il "genitore" è quello che hai sul tuo sistema e lo controlli tu stesso usando:

$ ip a

La stampa varierà a seconda di ciò che hai avuto prima. Dovresti anche sapere che puoi fare il bridging 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 lo stesso set di programmi 'lxc'. Innanzitutto, assicurati di avere un contenitore, in questo esempio, il contenitore si chiama "ff":

$ lxc profilo aggiungi ff nicnet

La modifica ha effetto quando si riavvia la rete nel contenitore. Il modo più semplice e sicuro è aggiungere sempre i profili solo nei contenitori fermi.

instradato

Una connessione bridge è quella in cui il tuo contenitore riceve un indirizzo MAC sulla stessa interfaccia Ethernet del tuo host. Questo è quello che hai fatto prima in questo post. Con qualche altro trucco, puoi fare in modo che il tuo router assegni un indirizzo IP separato al contenitore e puoi impostarlo nel tuo contenitore. Tuttavia, quando usi macvlan, potresti riscontrare problemi con il Wi-Fi. WPA/WPA2 non accetterà i due indirizzi, quindi il tuo Wi-Fi si interromperà, poiché il tuo host non utilizzerà il Wi-Fi.

L'esempio precedente utilizza gli strumenti brctl poiché lxc ha creato i propri. Questo ottiene un indirizzo dall'host, non dal router. Se lo desideri, puoi ottenere l'indirizzo dal router. Ancora una volta, solo se utilizzi una connessione cablata o un Wi-Fi non sicuro.

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.

configurazione:
descrizione: Impostazione per l'interfaccia di rete
dispositivi:
eth0:
nome: eth0
nictype: macvlan
genitore: enp3s0
tipo: nic
nome: Percorso
usato da:
- /1.0/istanze/guiapp
- /1.0/istanze/ff

Dovrai assicurarti che il valore genitore corrisponda alla tua configurazione, quindi assicurati di crearlo dinamicamente. Fatto ciò, puoi avviare il tuo contenitore e trovarlo nell'elenco delle destinazioni host del tuo router. Beh, sono interfacce, per essere tecnici al riguardo.

Figura 1: il contenitore ora viene visualizzato nel router

Profili mobili

Una parte interessante dei container Linux è che puoi prendere le tue configurazioni e scaricarle in file YAML. Per creare i file per questo, esegui l'opzione show in LXC, quindi pipe in un file. L'output segue lo standard YAML e puoi quindi utilizzare questi file per configurarli altrove.

$ lxc profilo mostra percorso > percorso.yml

Per usarlo per un nuovo contenitore, usa i valori impostati. Normalmente, imposteresti un valore alla volta, ma hai già un file per questo.

$ lxc profile create newroute $ lxc profile set newroute user.Rete.config - < Route.yml

Puoi vedere che devi inserire i valori nello spazio dei nomi "utente".Rete.configurazione'. Questo è importante da sapere quando vuoi aggiungere altri valori non correlati al networking.

Conclusione

La connessione in rete con i tuoi contenitori ha molte opzioni, che possono creare confusione, ma con alcune ricerche e test per conto tuo, puoi farlo funzionare nel modo desiderato. La parte migliore è che puoi provare una cosa alla volta usando i profili. Non rovinerai mai il tuo attuale contenitore, basta rimuovere quello che non ha funzionato e aggiungere quello vecchio old. Questa tecnica funziona per tutto in un contenitore.

Come mostrare il contatore FPS nei giochi Linux
I giochi Linux hanno avuto una grande spinta quando Valve ha annunciato il supporto Linux per il client Steam e i loro giochi nel 2012. Da allora, mol...
Come scaricare e giocare a Sid Meier's Civilization VI su Linux
Introduzione al gioco Civilization 6 è una versione moderna del concetto classico introdotto nella serie dei giochi Age of Empires. L'idea era abbasta...
Come installare e giocare a Doom su Linux
Introduzione a Doom La serie Doom è nata negli anni '90 dopo l'uscita dell'originale Doom. È stato un successo immediato e da quel momento in poi la s...