Questi concetti dovrebbero essere noti:
Per approfondimenti, si vedano le pagine della Wikipedia, a partire da quella sull'IPv4.
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
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.
È 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).
È 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
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
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
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.
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.
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
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:
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.
Naturalmente, è possibile la configurazione di molti aspetti relativi all'ambiente di rete tramite interfaccia grafica. È sufficiente usare il programma network-admin (Sistema/Amministrazione/Rete).
Il programma gnome-nettool (Sistema/Amministrazione/Strumenti di rete) consente di effetuare in modo grafico alcune operazioni di test.
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
...