GNU/Linux >> Linux Esercitazione >  >> Linux

Impara le basi della rete che ogni amministratore di sistema deve conoscere

Uno dei domini più importanti dell'amministratore di sistema è la rete.

Anche se comprendere tutto ciò che c'è da sapere sulla rete è un argomento importante, c'è molto da imparare dallo stack di rete del tuo umile computer Linux.

L'apprendimento dei comandi di rete di base può aiutarti a capire come un dispositivo sa a quale rete connettersi, come trovare una stampante condivisa o una condivisione file o la rete più grande di tutte, Internet.

Questo articolo illustra le basi della gestione della rete utilizzando l'open source.

[ Potresti anche divertirti a leggere: 5 comandi per la risoluzione dei problemi di rete Linux ]

Che cos'è una rete?

Nell'informatica, una rete è un insieme di due o più computer che possono comunicare.

Affinché la rete faciliti la comunicazione tra i dispositivi, le macchine sulla rete devono essere in grado di trovarsi.

I sistemi responsabili per renderlo possibile sono TCP e IP.

Protocollo di controllo della trasmissione (TCP)

La comunicazione richiede un mezzo di trasporto per i messaggi tra di loro e i computer comunicano utilizzando segnali digitali trasportati su cavi Ethernet o onde radio o microonde.

Le specifiche per questo sono formalmente definite come il protocollo TCP.

Protocollo Internet (IP)

I computer in una rete si identificano e si identificano reciprocamente con indirizzi IP, come 10.0.0.1 o 192.168.0.8.

Questi sono anche generalmente mappati su nomi host, come laptop e desktop o darkstar o penguin o qualunque sia il nome che dai a ciascuna macchina.

Le specifiche per questo sono formalmente definite come il protocollo IP.

Collegamento in rete minimo

La rete più semplice possibile è una rete a nodo singolo.

Potrebbe sembrare un imbroglione, ma in realtà è una rete valida, nel senso che un computer ha bisogno di sapere come affrontare se stesso.

Ogni computer si considera localhost nodo, con un indirizzo IP solo interno di 127.0.0.1.

Puoi verificarlo con il ping comando:

$ ping -c 1 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.031 ms

Il localhost la designazione è definita in /etc/hosts file:

$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Avere un indirizzo IP interno è importante perché servizi importanti, come il server di stampa CUPS e il sistema di gestione del server Cockpit, forniscono interfacce su connessioni TCP/IP. Per accedervi dalla macchina su cui sono in esecuzione, puoi utilizzare localhost più il numero di porta (ad esempio localhost:631 o 127.0.0.1:631 ) in un browser web.

Creazione di una rete di base

Mentre una rete a nodo singolo è utile per alcune attività, una rete solitamente si riferisce a più di un computer.

Linux e lo stack TCP/IP fanno molto lavoro per semplificare la rete, ma quando le impostazioni automatizzate non sono sufficienti per ottenere la configurazione di cui la tua organizzazione ha bisogno, spetta a te come amministratore di sistema capire come creare configurazioni di rete.

Per cominciare, inizia semplice e prova a creare una rete di due computer.

Per eliminare le impostazioni automatiche in modo da poterti abituare a costruire una rete da solo, prova a utilizzare un cavo Ethernet appositamente cablato chiamato cavo crossover .

Un cavo incrociato collega i segnali di trasmissione provenienti da un computer ai recettori appropriati su un altro computer.

Senza router tra i computer, tutta la gestione della rete deve essere eseguita manualmente su ogni macchina, rendendo questo un buon esercizio introduttivo per le basi della rete.

Utilizzando un cavo incrociato per collegare due computer insieme, elimini qualsiasi controller di rete esterno per offrire una guida, quindi nessuno dei due computer fa nulla per creare o unirsi a una rete.

In questa semplice configurazione, sei l'autorità di rete definitiva.

Per creare una rete, devi prima assegnare un indirizzo IP a ciascun computer.

Il blocco riservato agli indirizzi IP autoassegnati è 169.254.x.x.

Visualizza le tue interfacce di rete su Linux

Per creare una rete, hai bisogno di interfacce di rete.

La porta Ethernet è solitamente designata con il termine eth più un numero che inizia con 0 , ma alcuni dispositivi vengono segnalati con termini diversi.

Puoi scoprire le interfacce su un computer con l'ip comando:

$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
    link/loopback 00:00:00:00:00:00 brd ...
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
    link/ether dc:a6:32:be:a3:e1 brd ...
3: wlan0: <BROADCAST,MULTICAST> ...
    link/ether dc:a6:32:be:a3:e2 brd ...

In questo caso, eth0 risulta essere il nome dell'interfaccia corretto.

Tuttavia, vedrai en0 o enp0s1 o simili in alcuni casi, quindi è importante verificare sempre il nome di un dispositivo prima di utilizzarlo.

Assegna un indirizzo IP statico su Linux

Normalmente, un indirizzo IP viene assegnato dinamicamente da un server DHCP dedicato o da un router che esegue un server DHCP incorporato.

È compito del server DHCP trasmettere le offerte per gli indirizzi sulla sua rete.

Quando un computer si connette a una rete, richiede un indirizzo.

Il server DHCP gli assegna uno e registra quale dispositivo sulla rete, identificato dal suo indirizzo MAC (Media Access Control), è stato assegnato a quale indirizzo.

È così che i computer sanno come trovarsi l'un l'altro attraverso una rete.

Nel caso di questa semplice rete, tuttavia, non esiste un server DHCP che distribuisca indirizzi IP o registri dispositivi, quindi è necessario creare un indirizzo IP da soli.

Per assegnare un indirizzo IP a un computer, usa il ip comando:

$ sudo ip address add 169.254.0.1 dev eth0

E ancora sull'altro computer, questa volta incrementando l'indirizzo IP di 1:

$ sudo ip address add 169.254.0.2 dev eth0

Ora ogni computer ha un mezzo di trasporto (il cavo incrociato) e un modo per essere trovato sulla rete (un indirizzo IP univoco).

Il problema è che nessuno dei due computer sa che è un membro di una rete.

Configurazione di un percorso di rete su Linux

Normalmente, un router esterno definisce i percorsi che il traffico di rete deve seguire per andare dal punto A al punto B.

Questa è chiamata tabella di instradamento , ed è essenzialmente una "mappa della città" per la tua rete.

Per la rete semplice che hai creato, non esiste ancora alcuna tabella di routing.

Puoi verificarlo con il route comando su uno o entrambi i computer:

$ route
Kernel IP routing table
Destination | Gateway | Genmask | Flags|Metric|Ref | Use | Iface
$ 

In alternativa, puoi utilizzare il ip comando:

$ ip route
$ 

In ogni caso, non c'è un output significativo perché al momento non è stato definito alcun percorso.

Ma puoi aggiungere un percorso con ip comando:

$ sudo ip route \
add 169.254.0.0/24 \
dev eth0 \
proto static

Questo comando aggiunge una route a un intervallo di indirizzi che inizia da 169.254.0.0 e termina a 169.254.0.255 su eth0 interfaccia.

Imposta il protocollo di instradamento su static per indicare che il percorso è stato creato da te, l'amministratore, come override intenzionale per qualsiasi percorso dinamico.

Verifica la tua tabella di instradamento con il route comando:

$ route
Kernel IP routing table
Destination | Gateway | Genmask       | ... | Iface
link-local  | 0.0.0.0 | 255.255.255.0 | ... | eth0

Oppure usa il ip comando per una vista diversa:

$ ip route
169.254.0.0/24 dev eth0 proto static scope link 

Ping il tuo vicino

La tua rete ora ha:

  • Un mezzo di trasporto
  • Un mezzo per indirizzare
  • Un percorso di rete

Con questi componenti in atto, ogni computer può raggiungere host oltre il semplice localhost .

Provalo con ping .

Ad esempio, dal computer assegnato l'indirizzo 169.254.0.1:

$ ping -c1 169.254.0.2
64 bytes from 169.254.0.2: icmp_seq=1 ttl=64 time=0.233 ms

--- 169.254.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.244/0.244/0.244/0.000 ms

Puoi anche visualizzare i vicini con cui hai interagito:

$ ip neighbour
169.254.0.2 dev eth0 lladdr e8:6a:64:ac:ef:7c STALE

Lo switch di rete

Sebbene sia ottimo per trasferimenti di file sorprendentemente veloci, non ci sono molte altre esigenze per le reti cablate a due nodi.

Ecco dove l'hardware come uno switch di rete entra.

Uno switch consente di collegare più cavi Ethernet e distribuisce i messaggi dal computer inviandoli alla destinazione prevista, identificata dal suo indirizzo IP.

Su molte moderne reti multiuso, uno switch fisico per cavi fisici non è pratico o desiderato, quindi viene utilizzato un punto di accesso Wi-Fi, ma si applicano gli stessi principi.

Router

Le reti locali connettono in pratica molti dispositivi e il numero cresce man mano che sempre più dispositivi diventano consapevoli della rete.

Quando colleghi una rete a Internet (una rete di reti interconnesse), quel numero aumenta di ordini di grandezza.

Non è pratico configurare una rete manualmente. Quindi le attività quotidiane vengono assegnate a nodi specifici della rete e ogni computer esegue un demone per popolare le impostazioni di rete ricevute dai server autorevoli sulla rete.

Ogni attività viene solitamente assegnata a un server dedicato separato in una rete di grandi dimensioni per garantire concentrazione e resilienza.

Queste attività includono:

  • Server DHCP per assegnare e tracciare gli indirizzi IP ai dispositivi che si collegano alla rete
  • Server DNS per convertire nomi di dominio registrati come redhat.com in indirizzi IP come 209.132.183.105
  • Firewall per proteggere la tua rete dal traffico in entrata indesiderato o dal traffico in uscita proibito
  • Router per indirizzare in modo efficiente il traffico sulla rete, fungere da gateway per altre reti (come Internet) ed eseguire la traduzione degli indirizzi di rete (NAT) 

Grazie a progetti open source come VyOS, puoi persino eseguire il tuo router open source costruito con hardware di base.

[ Cheat sheet gratuito:ottieni un elenco di utilità e comandi Linux per la gestione di server e reti. ] 

Concludi

Più schemi di rete implementi nel tuo laboratorio, meglio comprendi tutti i problemi che possono sorgere nel mondo reale.

A volte i problemi sono a carico di singoli computer e dispositivi; altre volte è hardware e infrastruttura, e altre volte è un design non ottimale.

Esercitati a configurare diverse topografie di rete, con macchine virtuali o hardware reale (o entrambi), e impara a conoscere gli strumenti open source del settore.

Il networking è un argomento importante, ma le reti sono ovunque.

Investi nell'impararlo ora e ti ripagherà, in un modo o nell'altro, prima o poi.


Linux
  1. Impara le scorciatoie del window manager di i3 Linux

  2. Impara le nozioni di base su come funziona il reindirizzamento I/O (Input/Output) di Linux

  3. Analisi del comando free:cosa deve sapere l'amministratore di sistema Linux

  4. 3 abilità che ogni amministratore di sistema Linux dovrebbe portare in tavola

  5. 6 Opzioni di comando OpenSSL che ogni amministratore di sistema dovrebbe conoscere

Buone alternative alle pagine man che ogni utente Linux deve conoscere

VLAN per amministratori di sistema:le basi

Nozioni di base sull'amministratore di sistema Linux:avvia NIC all'avvio

Scopri diverse opzioni di rete in VirtualBox

Come conoscere i gruppi di un utente Linux

I 20 migliori siti Web di giochi Linux che ogni giocatore deve conoscere