Network configuration (Italiano)

Questo articolo descrive come configurare le connessioni di rete su OSI layer 3 e versioni successive. Le specifiche del supporto sono gestite nelle sottopagine Ethernet e Wireless.

Translation Status: This article is a localized version of Network configuration. Last translation date: 2021-11-16. You can help to synchronize the translation, if there were changes in the English version.

Una semplice guida per la configurazione di rete e risoluzione di problemi annessi.

Controllare la connessione

Per risolvere i problemi relativi a una connessione di rete, attenersi alle seguenti condizioni e assicurarsi di soddisfarle:

  1. La tua interfaccia di rete è elencata e abilitata. Altrimenti, controlla il driver del dispositivo – vedi Ethernet#Device driver o Wireless#Device driver.
  2. Sei connesso alla rete. Il cavo è collegato o sei connesso alla LAN wireless.
  3. La tua interfaccia di rete ha un indirizzo IP.
  4. Puoi effettuare il ping di un indirizzo IP locale (ad esempio il tuo gateway predefinito).
  5. Puoi effettuare il ping di un indirizzo IP pubblico (ad es. 8.8.8.8, che è un server DNS di Google ed è un indirizzo conveniente con cui testare).
  6. Controlla se puoi risolvere i nomi di dominio (es. archlinux.org).

Ping

Per ogni risposta che ricevi, l'utility ping stamperà una riga come quella sopra. Per maggiori informazioni vedere il manuale . Si noti che i computer possono essere configurati per non rispondere alle richieste echo ICMP.

Se non ricevi risposta, ciò potrebbe essere correlato al tuo gateway predefinito o al tuo provider di servizi Internet (ISP). Puoi eseguire un traceroute per diagnosticare ulteriormente il percorso verso l'host.

Gestione della rete

Per configurare una connessione di rete, seguire i seguenti passaggi:

  1. Assicurati che la tua interfaccia di rete sia elencata e abilitata.
  2. Connettiti alla rete. Collega il cavo Ethernet o connettiti alla LAN wireless.
  3. Configura la tua connessione di rete:

net-tools

Arch Linux ha deprecato in favore di iproute2.

Comando deprecatoNuovo comando
arpip neighbor
ifconfigip address, ip link
netstatss
routeip route

Per una panoramica più completa, vedere Comandi di rete Linux deprecati e loro sostituzioni.

iproute2

iproute2 è una dipendenza del meta pacchetto e fornisce l'interfaccia a riga di comando ip(8), utilizzata per gestire le interfacce di rete, indirizzi IP e la tabella di instradamento. Tieni presente che la configurazione eseguita utilizzando andrà persa dopo un riavvio. Per una configurazione persistente, puoi utilizzare un gestore di rete o automatizzare i comandi ip utilizzando script e systemd units. Si noti che i comandi possono essere generalmente abbreviati, per chiarezza sono comunque spiegati in questo articolo.

Interfacce di rete

Per impostazione predefinita udev assegna i nomi alle interfacce di rete utilizzando Predictable Network Interface Names, che antepone i nomi alle interfacce con (wired/Ethernet), (wireless/WLAN) o ww (WWAN). Vedi .

Elenco delle interfacce di rete

a indicarea indicare I nomi delle interfacce cablate e wireless possono essere trovati tramite o . Nota che è l'virtual loopback interface e non viene utilizzata per effettuare connessioni di rete.

I nomi dei dispositivi wireless possono essere recuperati anche utilizzando iw dev. Vedi anche Wireless#Ottieni il nome dell'interfaccia.

Se la tua interfaccia di rete non è elencata, assicurati che il driver del dispositivo sia stato caricato correttamente. Vedere Ethernet#Device driver o [[Wireless#Device driver]

Indirizzo==== Abilitazione e disabilitazione delle interfacce di rete ====

Le interfacce di rete possono essere abilitate o disabilitate usando , si veda .

Per controllare lo stato dell'interfaccia :

La parola in sta a indicare che l'interfaccia è attiva, non si considera la successiva state DOWN.

Indirizzo IP statico o dinamico?

Se utilizzate un Wi-FI o un router, ad esempio, a casa, molto probabilmente utilizzerete un indirizzo IP dinamico. L'indirizzo IP viene assegnato dal Wi-Fi o dal router ed è il modo in cui il vostro computer dovrebbe essere configurato. Oppure, se si e a casa e il vostro computer è connesso al modem del vostro ISP, ad esempio un modem via cavo, anche questo utilizzerà un indirizzo IP dinamico. Gli indirizzi IP dinamici possono cambiare ogni volta che accendi il computer. In un ambiente di lavoro si potrebbe avere un indirizzo IP statico o un indirizzo IP dinamico. Si può configurare il proprio router in modo che assegni sempre al proprio computer lo stesso indirizzo IP, in questo casi si sta utilizzando un indirizzo IP statico. Quando si utilizza un indirizzo IP dinamico, sarà necessario utilizzare DHCP in modo che possa configurare l'interfaccia di rete con l'indirizzo IP corretto. Oltre a configurare l'ìndirizzo IP, DHCP può anche configurare il routing (come arrivare da dove ti trovi a qualsiasi punto della rete sta andando) così come i name server, che convertono il nome host, ad esempio, google.com, nel suo indirizzo IP, un numero con dei punti.

Indirizzo IP statico

Un indirizzo IP statico può essere configurato con la maggior parte dei gestori di rete e anche con dhcpcd.

Per configurare manualmente un indirizzo IP statico, aggiungi un indirizzo IP come descritto in #Indirizzi IP, imposta la tua Tabella di routing e configura i tuoi server DNS.

Indirizzi IP

Gli indirizzi IP sono gestiti usando .

Per un elenco d'indirizzi IP

$ ip address show

Per aggiungere un indirizzo IP a una interfaccia

# ip address add address/prefix_len broadcast + dev interface
Nota che :

Eliminare un indirizzo IP da una interfaccia:

# ip address del address/prefix_len dev interface

Eliminare tutti gli indirizzi che corrispondono a un criterio, ad es. di una specifica interfaccia:

# ip address flush dev interface

Tabella di routing

La routing table è usata per determinare se puoi raggiungere direttamente un indirizzo IP o quale gateway (router) dovresti usare. Se nessun'altra route corrisponde all'indirizzo IP, viene utilizzato il gateway predefinito.

La tabella di routing è gestita utilizzando .

PREFIX è una notazione CIDR o per il gateway predefinito.

Elenco percorsi IPv4

$ ip route show

Elenco percorsi IPv6

$ ip -6 route

Aggiungere un percorso

# ip route add PREFIX via address dev interface

Cancellare un percorso

# ip route del PREFIX via address dev interface

DHCP

Un server Dynamic Host Configuration Protocol (DHCP) fornisce ai client un indirizzo IP dinamico, la subnet mask, l'indirizzo IP del gateway predefinito e, facoltativamente, anche i server dei nomi DNS.

Per utilizzare DHCP è necessario un server DHCP nella rete e un client DHCP:

ClientPackageArchisoNoteSystemd units
dhcpcdDHCP, DHCPv6, ZeroConf, static IP,
ISC dhclientdhclientDHCP, DHCPv6, BOOTP, static IP

Servers

ServerPackageIPv4IPv6GUIInterfacesStorage backend(s)Note
dhcpdGlass-ISC-DHCP?File
dnsmasq?Filecome DNS, PXE e TFTP
KeaKea-Anterius (Experimental)REST, RADIUS e NETCONFFile, MySQL, PostgreSQL e Cassandracome DNS

Gestori di rete

Un gestore di rete consente di gestire le impostazioni della connessione di rete nei cosiddetti profili di rete per facilitare il cambio di rete.

Network managerGUIArchiso CLI toolsPPP support
(e.g. 3G modem)
DHCP clientsystemd units
ConnMan connmanctl(1) (with )internal
netctl , wifi-menudhcpcd or dhclient, netctl-auto@interface.service
NetworkManager , internal or dhclient
systemd-networkd ()internalsystemd-networkd.service,

Impostare l'host name

Un hostname è un nome univoco creato per identificare un pc in rete, configurato in -per ulteriori dettagli vedere e . Il file può contenere il nome di dominio del sistema, se presente. Per impostare il nome host, editare per includere una singola riga con :

Suggerimento: Per consigli sulla scelta di un nome host, vedere RFC 1178.

In alternativa, usando :

# hostnamectl set-hostname myhostname

Per impostare temporaneamente il nome host (fino al riavvio), usa da :

# hostname myhostname

Per impostare il nome host 'pretty' e altri metadati della macchina, vedere .

Risoluzione del nome host locale

(un modulo NSS fornito da systemd) fornisce la risoluzione del nome host locale senza dover modificare /etc/hosts. Si è abilitata di default.

Alcuni software possono comunque leggere direttamente /etc/hosts, vedere per esempi. Per evitare che possano potenzialmente interrompere, bloccare o ritardare in altro modo l'operazione, assicurati che possano risolvere il nome host locale e configurando il file hosts(5):

Per un sistema con un indirizzo IP permanente, sostituire con quell'indirizzo IP permanente. Per un sistema con un nome di dominio completo, inserire il nome di dominio completo prima del nome host. Per esempio:

Di conseguenza il sistema risolve entrambe le voci:

Risoluzione del nome host della rete locale

Per rendere la tua macchina accessibile nella tua LAN tramite il suo nome host puoi:

  • modifica il file /etc/hosts per ogni dispositivo nella tua LAN, vedi hosts(5)
  • configura un DNS server per risolvere il tuo nome host e fare in modo che i dispositivi LAN lo utilizzino (ad es. tramite #DHCP)
  • o nel modo più semplice: usa un servizio Rete a configurazione zero:
    • Risoluzione del nome host tramite NetBIOS di Microsoft. Fornito da Samba su Linux. Richiede solo . I computer che eseguono Windows, macOS o Linux con nmb in esecuzione potranno trovare la tua macchina.
    • Risoluzione del nome host tramite mDNS. Fornito da con Avahi (vedi Avahi#Hostname resolution per i dettagli di configurazione) o systemd-resolved. I computer che eseguono macOS, o Linux con Avahi o sistema risolto in esecuzione, saranno in grado di trovare la tua macchina. L'API Win32 precedente non supporta mDNS, il che potrebbe impedire ad alcune applicazioni Windows meno recenti di accedere al dispositivo.

Tips and tricks

Cambia il nome dell'interfaccia

È possibile modificare il nome del dispositivo definendo il nome manualmente con una regola udev. Per esempio:

Queste regole verranno applicate automaticamente all'avvio.

Un paio di cose da notare:

  • Per ottenere l'indirizzo MAC di ogni scheda, usa questo comando: cat /sys/class/net/device_name/address
  • Assicurati di utilizzare i valori esadecimali minuscoli nelle regole udev. Non gli piacciono le maiuscole.

Se la scheda di rete ha un MAC dinamico, puoi utilizzare , ad esempio:

Per ottenere il di tutti i dispositivi attualmente connessi, guarda dove portano i collegamenti simbolici in . Per esempio:

Il percorso del dispositivo deve corrispondere sia al nuovo che al vecchio nome del dispositivo, poiché la regola può essere eseguita più di una volta all'avvio. Ad esempio, nella seconda regola, sarebbe sbagliato poiché smetterà di corrispondere una volta cambiato il nome in . Solo la regola predefinita del sistema si attiverà la seconda volta, causando la modifica del nome ad es. enp1s0.

Se stai utilizzando un dispositivo di rete USB (ad es. Tethering del telefono Android) che ha un indirizzo MAC dinamico e desideri essere in grado di utilizzare diverse porte USB, puoi invece utilizzare una regola che corrisponda a seconda del fornitore e dell'ID prodotto:

Per testare le regole, si possono essere verificare direttamente dallo spazio utente, ad es. con . Ricordati di rimuovere prima l'interfaccia che stai cercando di rinominare (es. ).

Ripristina i nomi delle interfacce tradizionali

Se si preferisce mantenere i nomi delle interfacce tradizionali come eth0, Predictable Network Interface Names si può disabilitare mascherando la regola udev:

  1. ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules


In alternativa, aggiungere ai kernel parameters.

Imposta l'MTU del dispositivo e la lunghezza della coda

Puoi modificare il dispositivo MTU e la lunghezza della coda definendo manualmente con una regola udev. Per esempio:

: l'utilizzo di un valore maggiore di 1500 (i cosiddetti jumbo frames) può accelerare notevolmente i trasferimenti di rete. Si noti che tutte le interfacce di rete, inclusi gli switch nella rete locale, devono supportare la stessa MTU per utilizzare i frame jumbo. Per PPPoE, l'MTU non deve essere maggiore di 1492. Puoi anche impostare l'MTU tramite .

tx_queue_len: valore ridotto per dispositivi più lenti con una latenza elevata come collegamenti modem e ISDN. Un valore alto è consigliato per server connessi tramite connessioni Internet ad alta velocità che eseguono grandi trasferimenti di dati.

Incollaggio o LAG

Vedere netctl o systemd-networkd, o Wireless bonding.

Aliasing dell'indirizzo IP

L'aliasing IP è il processo di aggiunta di più di un indirizzo IP a un'interfaccia di rete. Con questo, un nodo su una rete può avere più connessioni a una rete, ognuna con uno scopo diverso. Gli usi tipici sono l'hosting virtuale di server Web e FTP o la riorganizzazione dei server senza dover aggiornare altre macchine (questo è particolarmente utile per i server dei nomi).

Esempio

Per impostare manualmente un alias, per alcune NIC, utilizzare iproute2 per eseguire

  1. ip addr add 192.168.2.101/24 dev enp2s0 label enp2s0:1

Per rimuovere un dato alias eseguire

  1. ip addr del 192.168.2.101/24 dev enp2s0:1

I pacchetti destinati a una sotto rete utilizzeranno l'alias primario per impostazione predefinita. Se l'IP di destinazione si trova all'interno di una sotto rete di un alias secondario, viene impostato rispettivamente l'IP di origine. Considera il caso in cui ci sia più di una NIC, le route predefinite possono essere elencate con .

Modalità promiscua

L'attivazione della modalità promiscua farà sì che una NIC (wireless) inoltri tutto il traffico che riceve al sistema operativo per un'ulteriore elaborazione. Questo è l'opposto della 'modalità normale' in cui una NIC eliminerà i frame che non è destinata a ricevere. Viene spesso utilizzato per la risoluzione dei problemi di rete avanzata e packet sniffing.

Se vuoi abilitare la modalità promiscua sull'interfaccia esegui enable promiscuous@enp2s0.service.

Interrogare i socket

ss è un'utilità per esaminare le porte di rete e fa parte del pacchetto iproute2. Ha una funzionalità simile all'utilità netstat .

L'uso comune include:

Visualizza tutti i socket TCP con i nomi dei servizi:

$ ss -at

Visualizza tutti i socket TCP con i numeri di porta:

$ ss -atn

Visualizza tutti i socket UDP:

$ ss-au

Per maggiori informazioni vedi .

Risoluzione dei problemi

Scambio computer/modem via cavo

La maggior parte degli ISP (videotron for example) ha il modem via cavo configurato per riconoscere un solo PC client, attraverso il MAC Address della sua interfaccia di rete. Una volta che il modem via cavo ha acquisito il MAC Address del primo PC, o della relativa periferica, non risponderà in alcun modo ad un altro MAC Address. Pertanto, se si cambia un PC con un altro (o router), il nuovo PC (o router) non funzionerà con il modem via cavo, in quanto ha un MAC Address diverso dal precedente. Per effettuare il reset del modem via cavo in modo che riconosca il nuovo PC, è necessario spegnerlo e riaccenderlo. Una volta che il modem via cavo si è riavviato ed è ritornato completamente in linea (le spie luminose sono stabili), riavviare il nuovo computer in modo da effettuare una nuova richiesta DHCP, o effettuarla manualmente.

Se questo metodo non funziona, è necessario clonare il MAC Address del pc originario. Vedere quindi #Cambiare MAC/hardware address.

Il problema del TCP Window Scaling

I pacchetti TCP contengono nell'header un campo "window" che indica la quantità di dati che deve restituire l'altro host. Questo campo è di 16 bit, dato che la dimensione della finestra è al massimo 64kb. I pacchetti TCP vengono mantenuti in cache per un certo tempo e, se la memoria è (o era) limitata, è probabile che l'host la finisca rapidamente.

Nel 1992, quando cominciò ad essere disponibile molta memoria, per migliorare la situazione, fu scritta la RFC 1323: fu introdotto in "Window Scaling". Il valore "window", presente in tutti i pacchetti, viene modificato da uno "Scale Factor" definito una sola volta all'inizio della connessione. Questo campo, di 8 bit, permette alla finestra di essere fino a 32 volte più grande dei 64Kb iniziali.

Sembra che alcuni router e firewall riscrivano lo Scale Factor a 0 che causa "incomprensioni" tra gli host.

Il kernel 2.6.17 ha introdotto un nuovo algoritmo che genera Scale Factors più alti, in modo tale da rendere il problema di questi router e firewall virtualmente più visibile.

La connessione, in questi casi, si interrompe o è, al più, molto lenta.

Come diagnosticare questo problema?

Prima di tutto chiariamo: è molto difficile. In alcuni casi, non sarà possibile effettuare connessioni TCP (HTTP, FTP, ...), in altri sarà possibile comunicare solo con alcuni host (molto pochi).

Quando si ha questo problema, l'output di è ok, i log sono puliti e riporta una configurazione corretta... quindi sembra tutto normale.

Se non è possibile raggiungere nessun sito Web, ma è possibile pingare alcuni host, probabilmente si è incappati in questo problema: il ping utilizza il protocollo ICMP e non è affetto da problemi TCP.

Si può provare ad utilizzare Wireshark. Si possono vedere comunicazioni UDP e ICMP che avvengono correttamente e le connessioni TCP che non vanno a buon fine (solo verso host 'esterni').

La strada sbagliata

Per risolvere il problema, si può cambiare il valore tcp_rmem, su cui si basa il calcolo dello Scale Factor. Sebbene dovrebbe funzionare per la maggior parte degli host, non è sicuro che funzioni in tutti i casi, specialmente per host molto distanti.

echo "4096 87380 174760" > /proc/sys/net/ipv4/tcp_rmem
Il metodo corretto)

Semplicemente, disabilitare il Window Scaling. Anche se è una caratteristica carina, può rivelarsi scomoda se non si può sistemare il router malfunzionante. Ci sono diversi metodi per disabiltare il Window Scaling, e sembra che il più sicuro (che funziona sui kernel più recenti) sia aggiungere la seguente linea in : (vedere anche sysctl)

net.ipv4.tcp_window_scaling = 0
Il metodo migliore

Questo problema è causato da router/firewall malfunzionanti, quindi vanno cambiati.

Ulteriori informazioni

Questa sezione si basa sull'articolo LWN TCP window scaling and broken routers e sull’articolo di Kernel Trap : Window Scaling on the Internet.

Altre discussioni pertinenti sono presenti su LKML.

Il secondo PC connesso non è in grado di utilizzare la LAN in parallelo

Il primo PC ha due LAN. Il secondo PC ha una LAN ed è connesso al primo PC. Andiamo al secondo PC per dare tutto l'accesso alla LAN dopo l'interfaccia a ponte:

# sysctl net.bridge.bridge-nf-filter-pppoe-tagged=0
# sysctl net.bridge.bridge-nf-filter-vlan-tagged=0
# sysctl net.bridge.bridge-nf-call-ip6tables=0
# sysctl net.bridge.bridge-nf-call-iptables=0
# sysctl net.bridge.bridge-nf-call-arptables=0

Fonti esterne

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.