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=1In 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 yesSe 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 yesLa 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. |