Gli spazi dei nomi di rete Linux sono una funzione del kernel Linux che ci consente di isolare gli ambienti di rete attraverso la virtualizzazione. Ad esempio, utilizzando gli spazi dei nomi di rete, è possibile creare interfacce di rete e tabelle di routing separate che sono isolate dal resto del sistema e funzionano in modo indipendente.
Per comprendere facilmente gli spazi dei nomi, vale la pena dire che gli spazi dei nomi Linux sono la base di tecnologie di container come Docker o Kubernetes.
Per ora, Linux include 6 tipi di spazi dei nomi: PID, Net, UTS, MNT, IPC e utente. Questo tutorial si concentra su spazi dei nomi di rete Linux.
Se comandi LSNS, visualizzerà tutti gli spazi dei nomi esistenti nel sistema, come mostrato nell'immagine seguente.
LSNS
Nota: Lo spazio dei nomi utilizzato per questo tutorial si chiama Linuxhint; Sostituilo con il nome dello spazio dei nomi.
Aggiunta di uno spazio dei nomi di rete Linux:
La gestione degli spazi dei nomi di rete viene eseguita utilizzando il comando IP Netns seguito dalle opzioni corrette.
Per creare uno spazio dei nomi di rete in Linux, è necessario eseguire il comando IP seguito dall'opzione NETNS (Spazio dei nomi di rete), l'opzione Aggiungi e il nome di nuovo spazio dei nomi, come mostrato nella seguente schermata. Quindi, il comando IP Netns può essere eseguito per mostrare solo gli spazi dei nomi di rete esistenti. Ricorda di sostituire Linuxhint con il nome del tuo spazio dei nomi.
IP netns Aggiungi linuxhint
IP netns
Come puoi vedere, è stato creato un nuovo spazio dei nomi chiamato Linuxhint.
Gli spazi dei nomi di rete hanno le proprie interfacce, tabelle di routing, interfaccia loopback, regole iptables, ecc. Devi creare queste risorse per il tuo spazio dei nomi.
Creazione dell'interfaccia Loopback per lo spazio dei nomi:
Per eseguire comandi all'interno di uno spazio dei nomi di rete, la sintassi è la seguente.
IP Netns Exec
Per impostazione predefinita, l'interfaccia Loopback è inattiva. È necessario eseguire il seguente comando; Come spiegato in precedenza, il comando di seguito esegue l'IP Link Imposta Dev Lo su nello spazio dei nomi scelto.
ip netns exec linuxhint ip link set dev lo up
Puoi verificare se l'interfaccia di loopback è stata aggiunta correttamente eseguendo il comando seguente:
IP Netns Exec LinuxHint Indirizzo IP
Puoi anche eseguire il ping dell'interfaccia di loopback dello spazio dei nomi per testarla, come mostrato di seguito.
IP Netns Exec Linuxhint ping 127.0.0.1
Aggiunta di interfacce di rete al tuo spazio dei nomi:
Puoi associare una scheda di rete hardware al tuo spazio dei nomi oppure è possibile aggiungere dispositivi di rete virtuale. Aggiungendo interfacce di rete virtuali, è possibile consentire la connettività tra diversi spazi dei nomi. I dispositivi di rete virtuale sono denominati veth (dispositivo Ethernet virtuale).
Per creare un dispositivo Ethernet di rete virtuale, eseguire il seguente comando, in cui ENP2S0 è il nuovo dispositivo e V-Peer1 il suo nome arbitrario, sostituiscilo con il tuo.
collegamento ip aggiungi v-enp2s0 tipo veth nome peer v-et0
Ora assegna il dispositivo virtuale al tuo spazio dei nomi eseguendo il comando di seguito.
IP Link Set V-Eth0 Netns Linuxhint
Assegna un indirizzo IP al nuovo dispositivo di rete come mostrato di seguito.
IP -N Linuxhint ADDR Aggiungi 10.0.1.0/24 Dev V-Eth0
Per impostazione predefinita, il dispositivo di rete è inattivo; devi configurarlo. Per impostare il dispositivo di rete virtuale, eseguire il comando seguente.
IP -N LinuxHint Link Set V -Eth0
Come puoi vedere nello screenshot qui sotto, il dispositivo virtuale è stato aggiunto correttamente.
ip netns exec linuxhint sudo ifconfig
L'esempio seguente mostra come assegnare una scheda di rete fisica allo spazio dei nomi della rete. In questo caso, la scheda di rete fisica è ENP2S0.
IP Link Set Dev Enp2s0 Netns LinuxHint
Come puoi vedere eseguendo l'esempio di seguito, la scheda di rete è stata aggiunta correttamente. È possibile assegnare un indirizzo IP utilizzando gli stessi comandi spiegati in precedenza.
ip netns exec linuxhint sudo ifconfig
Come spiegato in precedenza, ogni spazio dei nomi ha una propria tabella, IP e altro ancora, comprese le proprie regole del firewall. L'aggiunta di regole di firewall al tuo spazio dei nomi è semplice; Basta eseguire i comandi dopo IP netns Exec Linuxhint, come mostrato di seguito. L'esempio seguente elencerà le politiche iptables se esistenti.
ip netns exec linuxhint sudo iptables -l
L'esempio seguente mostra lo stesso ma usando UFW (firewall semplice) anziché iptables. In questo caso, il firewall è riportato come disabilitato.
IP netns Exec Linuxhint sudo UFW Stato
Rimozione di uno spazio dei nomi di rete Linux:
Rimuovere gli spazi dei nomi di rete è piuttosto semplice, come quando li aggiungi.
Per rimuovere uno spazio dei nomi, eseguire il comando di seguito, sostituire LinuxHint con il tuo spazio dei nomi.
IP netns del Linuxhint
Come puoi vedere, dopo l'esecuzione di IP Netns, non è stato mostrato uno spazio dei nomi di rete; È stato rimosso con successo.
Conclusione:
Gli spazi dei nomi Linux sono un metodo formidabile per isolare processi, filesystem, reti e altro ancora. Questa funzionalità ci consente di eseguire istanze in modo indipendente. Questo è estremamente utile per scopi di sicurezza. Gli spazi dei nomi sono contenitori i cui contenuti sono completamente isolati dal resto del sistema, anche da altri spazi dei nomi. In questo modo, possiamo eseguire servizi diversi in diversi contenitori. Se uno spazio dei nomi viene compromesso sotto un attacco, il resto del sistema rimane sicuro. Usando gli spazi dei nomi Linux, puoi offrire a più clienti il loro ambiente; Questa funzione è anche ottima per scopi di test o per eseguire software la cui origine è sospetta; In caso di esecuzione di un codice dannoso, solo il tuo spazio dei nomi sarà interessato, lasciando il tuo dispositivo al sicuro.
Spero che questo tutorial sugli spazi dei nomi Linux sia stato utile. Continua a seguire il suggerimento Linux per ulteriori suggerimenti e tutorial Linux.