Configurazione di rete

Loris Tissino

3 aprile 2010

Concetti importanti

Questi concetti dovrebbero essere noti:

Per approfondimenti, si vedano le pagine della Wikipedia, a partire da quella sull'IPv4.

Maschera di rete

Una maschera di rete può essere definita secondo la notazione decimale completa (es. 192.168.1.12/255.255.224.0) oppure con una notazione abbreviata, indicando il numero di bit che identificano la rete (es. 192.168.1.12/19).

Il programma ipcalc può aiutare nei calcoli necessari alla gestione degli indirizzi IP:

$ ipcalc 192.168.1.12/19
Address:   192.168.1.12         11000000.10101000.000 00001.00001100
Netmask:   255.255.224.0 = 19   11111111.11111111.111 00000.00000000
Wildcard:  0.0.31.255           00000000.00000000.000 11111.11111111
=>
Network:   192.168.0.0/19       11000000.10101000.000 00000.00000000
HostMin:   192.168.0.1          11000000.10101000.000 00000.00000001
HostMax:   192.168.31.254       11000000.10101000.000 11111.11111110
Broadcast: 192.168.31.255       11000000.10101000.000 11111.11111111
Hosts/Net: 8190                  Class C, Private Internet

Interfacce di rete

Le interfacce di rete ethernet sono di norma indicate come eth0, eth1, ecc.

L'interfaccia wireless è indicata come wlan0, oppure con un nome che indica il chipset usato (es. ath0 per le interfacce Atheros).

Esiste inoltre, in tutti i sistemi, un'interfaccia di loopback, denominata lo.

Gestione interfacce

È possibile visualizzare (e modificare) la configurazione delle interfacce di rete tramite il programma ifconfig.

$ ifconfig ath0
ath0      Link encap:Ethernet  HWaddr 00:C0:A8:FD:AC:47  
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2c0:a8ff:fefd:ac47/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:311901 errors:0 dropped:0 overruns:0 frame:0
          TX packets:248500 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:337537207 (321.9 MB)  TX bytes:116760011 (111.3 MB)

La configurazione da usare all'avvio del sistema è memorizzata nei file della directory /etc/sysconfig/network-scripts (sistemi RedHat/Fedora) o nel file /etc/network/interfaces (sistemi Debian/Ubuntu).

Gestione indirizzo gateway

È possibile visualizzare (e modificare) l'indirizzo del gateway di default tramite il programma route.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 ath0
link-local      *               255.255.0.0     U     1000   0        0 ath0
default         .               0.0.0.0         UG    100    0        0 ath0

La modifica può avvenire tramite i file di configurazione delle interfacce di rete oppure con il comando:

route add default gw 192.168.1.1

Corrispondenza tra indirizzo MAC e IP

Per ottenere una tabella con le corrispondenze tra indirizzi fisici delle interfacce di rete (MAC addresses) e indirizzi IP, si può consultare la tabella ARP:

$ arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.0.5              ether   00:15:f2:70:0f:4a   C                     wlan0
192.168.0.1              ether   00:0c:f6:39:8e:da   C                     wlan0

Ip

Il modo più moderno per operare sull'infrastruttura IP della propria macchina è tramite il programma ip, che consente di gestire interfacce di rete, rotte, ecc.

$ ip addr show
[...]
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:c0:a8:fd:ac:47 brd ff:ff:ff:ff:ff:ff

i$ ip route show
[...]
default via 192.168.1.1 dev wlan0  proto static 
default dev eth0  scope link  metric 1000 

Risoluzione dei nomi di host

L'attività con cui ad un nome di dominio pienamente qualificato viene fatto corrispondere un determinato indirizzo IP è detta risoluzione del nome.

Essa avviene basandosi su un file di testo (/etc/hosts) presente sulla macchina, oppure interrogando un nameserver (server DNS), indicato nel file /etc/resolv.conf. L'ordine di ricerca è specificato nel file /etc/nsswitch.conf.

$ cat /etc/nsswitch.conf 

[...]
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files
[...]

Nota: le voci mdns4 hanno a che fare con il sistema di risoluzione di nomi e servizi nelle reti locali Avahi.

Programmi di utilità

Esistono innumerevoli programmi di utilità che possono essere impiegati per la configurazione e per la diagnosi di problemi inerenti la rete.

La nostra cassetta degli attrezzi contiene:

Curiosità: apparentemente, nmap è il programma più usato per la rappresentazione delle attività di hacking nei film.

Netstat

Il programma netstat mostra informazioni su tutte le connessioni attive:

$ netstat --protocol=inet,inet6 -n
Active Internet connections (senza server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 192.168.0.100:39261     209.85.135.18:443       TIME_WAIT  
tcp        0      0 192.168.0.100:37817     210.84.125.17:443       ESTABLISHED

È anche possibile elencare i servizi in ascolto (con le relative porte occupate):

$ netstat --protocol=inet,inet6 -nl 
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     

Connessioni PPP

Per configurare una connessione di rete tramite modem o su reti ISDN (o, in generale, tramite porta seriale) si usa il PPP (Point-to-Point Protocol).

La configurazione più semplice di un modem seriale può essere fatta con il programma wvdialconf e le connessioni possono essere avviate con il programma wvdial.

Altrimenti, si può usare il programma setserial per configurare il modem (ad esempio impostando il baud rate), uno script per il programma chat per impostare il dialogo di connessione e il programma pppd per gestire la connessione stessa.

Linux supporta i seguenti metodi di autenticazione PPP:

Ottenimento di indirizzo IP

Per ottenere tramite DHCP un indirizzo IP in una rete, è sufficiente eseguire il comando dhclient:

$ sudo dhclient
Internet Systems Consortium DHCP Client V3.1.2
...
Listening on LPF/wlan0/00:c0:a8:fd:ac:47
Sending on   LPF/wlan0/00:c0:a8:fd:ac:47
...
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPOFFER of 192.168.178.20 from 192.168.178.1
DHCPREQUEST of 192.168.178.20 on eth0 to 255.255.255.255 port 67
DHCPACK of 192.168.178.20 from 192.168.178.1
bound to 192.168.178.20 -- renewal in 423819 seconds.

Configurazione tramite interfaccia grafica

Naturalmente, è possibile la configurazione di molti aspetti relativi all'ambiente di rete tramite interfaccia grafica. È sufficiente usare il programma network-admin (Sistema/Amministrazione/Rete).

Configurazione di rete con GNOME

Configurazione di rete con GNOME

Strumenti di rete

Il programma gnome-nettool (Sistema/Amministrazione/Strumenti di rete) consente di effetuare in modo grafico alcune operazioni di test.

Strumenti di rete con GNOME

Strumenti di rete con GNOME

Risoluzione dei nomi in una rete locale

In una rete locale senza server DNS e con indirizzi IP assegnati dinamicamente, la risoluzione dei nomi può avvenire grazie ad Avahi.

Le query DNS avvengono in maniera multicast e i vari host rispondono al nome assegnato a ciascuno con il suffisso .local.

$ ping uczen.local
PING uczen.local (192.168.0.120) 56(84) bytes of data.
64 bytes from uczen.local (192.168.0.120): icmp_seq=1 ttl=64 time=0.037 ms
...