Quasi sicuramente, uno degli utilizzi più frequenti di FreeBSD è come sistema gateway tra due reti, solitamente tra un rete locale e Internet. Bastano pochi passi per impostare il sistema. Occorre sapere che gli indirizzi ip usati sulle reti locali non possono essere usati in Internet, per una questione di standard e tuttavia è difficile avere a disposizione un indirizzo IP pubblico per ogni macchina, occorre quindi effettuare un mascheramento degli indirizzi privati in modo che vengano visti come un solo indirizzo pubblico, quello del gateway; il termine tecnico di quest'operazione è NAT[1]. Ci sono due modi di effettuare il NAT: utilizzando l'opzione -nat del PPP[2] di sistema oppure facendo uso del demone natd. Ma andiamo con ordine: prima di tutto occorre abilitare la trasmissione dei pacchetti da una rete all'altra (forwarding), inserendo la seguente riga nel file /etc/rc.conf:
gateway_enable="yes"
Al prossimo riavvio il forwarding sarà abilitato; tuttavia, se non possiamo
riavviare il sistema in quanto esso offre dei servizi che non possono essere interrotti,
possiamo cambiare il valore di una sysctl:
# sysctl net.inet.ip.forwarding=1
In questo modo possiamo utilizzare subito la trasmissione dei pacchetti tra due reti.
Fatto questo possiamo scegliere se usare il NAT offertoci fa ppp(8) oppure se usare il
natd(8). Vediamo
come agire in entrambi i casi. Prima di tutto però occorre ricompilare il kernel
con l'opzione
options IPDIVERTper abilitare il NAT, sia quello del PPP sia natd.
Configurare la propria connessione in modo che utilizzi il NAT offerto da PPP è semplicissimo. Basta specificare l'opzione -nat quando lanciamo la connessione a Internet oppure inserire nel file di configurazione di PPP, /etc/ppp/ppp.conf, la riga
nat enable yes
Se facciamo partire la connessione all'avvio del sistema, è sufficiente
aggiungere/etc/rc.conf la riga
ppp_nat="YES"
Usare natd è facile quanto utilizzare il NAT del PPP, tuttavia di solito si preferisce quest'ultimo quando non si ha a che fare con più reti locali. Per prima cosa apriamo /etc/rc.conf in un editor e aggiungiamo le righe:
natd_enable="YES"
natd_interface="fxp0"
fxp0 indica l'interfaccia connessa ad Internet. Creiamo
inoltre il file /etc/natd.conf:
interface fxp0
use_sockets yes
same_ports yes
La prima riga indica nuovamente l'interfaccia di rete connessa ad Internet, mentre le
altre due servono per assicurare il funzionamento di FTP e delle DCC[3] di IRC. Dal
prossimo riavvio del sistema il natd sarà funzionante. Ovviamente bisogna
configurare appropriatamente anche i client della rete locale, in modo che usino la
macchina su cui è in esecuzione natd come gateway principale per uscire in
Internet.| [1] |
NAT: Network Addresses Translation (Traduzione degli indirizzi di rete). In ambiente Linux viene anche chiamato Masquerading IP. |
| [2] |
PPP: Point to Point Protocol. |
| [3] |
DCC: Direct Client Connection, particolari opzioni di IRC per lo scambio di file e altro. |