GNU/Linux >> Linux Esercitazione >  >> Linux

Contenitori LXD e networking con IP statico

Ho trovato una soluzione qui

Grazie a Stéphane Graber.

Citazione:

"Se esegui un LXD moderno con un bridge gestito LXD, puoi semplicemente impostare la proprietà ipv4.address sull'interfaccia di rete del contenitore.

  • lxc stop c1
  • collegamento di rete lxc lxdbr0 c1 eth0 eth0
  • lxc config device set c1 eth0 ipv4.address 10.99.10.42
  • lxc inizia c1

"


Se vuoi specificare gli indirizzi IP per i contenitori in LXD, guarda /etc/default/lxd-bridge file. Lì troverai un punto per includere un file di configurazione dnsmasq esterno.

Supponendo che tu sia su Ubuntu 16.04,

Apri /etc/default/lxd-bridge nel tuo editor preferito. Dovrai utilizzare sudo .

Verso la riga 16,

LXD_CONFILE=""

Aggiungi una voce che punta a un file di configurazione dnsmasq. Dovrai creare questo file. Quindi chiamalo come preferisci. Qualcosa come lxd_bridge.conf .

Quindi crea e modifica il file che hai nominato sopra.

Aggiungi una riga per ogni contenitore a cui desideri assegnare un indirizzo IP specifico.

In questo modo:

dhcp-host=containername,ipaddress

Quindi dovrai riavviare lxd-bridge e quindi riavviare i contenitori.

Ecco un articolo dettagliato su questo:

IP statici LXD

Tieni presente che se stai eseguendo Alpine Linux nei tuoi container, è necessario eseguire passaggi aggiuntivi per farlo funzionare.alpine


Informazioni di sistema:lxc-3.0.1 su Ubuntu Server 18.04.1 .

Dopo molte ricerche, ho trovato questo semplice comando per assegnare un ip statico a un container:

lxc config set [container] raw.lxc 'lxc.net.[i].ipv4.address = [ip]/[subnet-mask]'

dove [container] , [i] , [ip] e [subnet-mask] sono rispettivamente il nome del contenitore, il numero dell'interfaccia di rete, l'indirizzo IP statico desiderato e il CIDR per la subnet mask desiderata.

Ad esempio, se vuoi assegnare 240.10.0.20 con subnet mask 255.255.255.0 alla decima interfaccia di rete del contenitore denominato hello , puoi utilizzare:

lxc config set hello raw.lxc 'lxc.net.0.ipv4.address = 240.10.0.20/24'

Probabilmente dovrai riavviare il contenitore dopo aver eseguito il comando.

Nota che questo probabilmente non cambierà l'attuale indirizzo IP del contenitore (nella mia configurazione comunque); il contenitore dovrebbe essere raggiungibile sia al suo IP originale sia a quello appena assegnato. Di conseguenza, la voce del contenitore in lxc list potrebbe contenere diversi indirizzi IP.

Dai un'occhiata qui per le chiavi di configurazione accettabili che possono essere aggiunte a lxc.net.[i] . Questa pagina web contiene informazioni sulla notazione CIDR.

Sfortunatamente, non ricordo dove ho trovato questa soluzione per la prima volta. Ecco un problema rilevante di GitHub che potrebbe contenere informazioni utili.


Linux
  1. Come configurare contenitori virtuali con LXC e supporto per le quote su Debian 8

  2. Configura il contenitore Linux con LXC su Ubuntu 16.04

  3. Come eseguire il debug dei problemi con i volumi montati su contenitori senza root

  4. Qual è la differenza tra un container Linux e un'immagine?

  5. Come eseguire il backup e il ripristino dei container Docker

Guida introduttiva ai contenitori LXD su Ubuntu 16.04

Che cosa sono i contenitori multi-account di Firefox? Perché e come usarlo?

Lxc e come iniziare?

Aggiornamento dei contenitori Docker con tempi di inattività pari a zero o minimi

Procedura:Introduzione a Windows Containers e Docker

Come installare e configurare i contenitori Linux LXC su CentOS / RHEL / Ubuntu