Allora ragazzi ho provato a buttar giù un mini howTo sul networking ma già mi sembra un impresa ciclopica, cmque è da finire !!
Leggetelo e magari dite cosa c'è che non va!!
Se volete potete modificarne alcune parti aggiungerne!!
INSTALLIAMO UNA RETE FRA PC:
Di Marcarelli Marco
marcarelli80@libero.it
Ver 0.1 15/04/2003
Ver 0.2 27/08/2003
--------------------------------
Come installare ed usare una nostra piccola rete casalinga, una sorta di
FaiDaTe per entrare nel mondo del Networking con il nostro pinguino!
--------------------------------
1) Disclaimer
Quanto scritto nel segunte testo si intende come una serie di consigli,
al fine di aiutare chi sia ffaccia al mondo delle Reti di PC in linux.
Inoltre l'autore non sarà responsabile di eventuali problemi incontrati nel
seguire i passi consigliati, che hanno si funzionato per l'autore ma che
non è detto sortiscano lo stesso effetto per tutti.
2) Cosa trovate nel testo:
Nel testo troverete una breve guida sui passi da seguire per realizzare
una piccola, e quando dico piccola dico proprio piccola, rete tra due PC,
collegati direttamente con un cavo di tipo incrociato, senza quindi usare
un Hub o uno Switch.
Inoltre quando possibile ci saranno una serie di spunti sulle varie
possibilità offerte da Linux (a).
Il presupposto di base è che ormai abbiate già montato fisicamente le schede
all'interno dei PC, che abbiate già provveduto a configurare il kernel
in modo da riconoscerle.
Inoltre anche se cercherò di essere il più generico possibile, per quanto
riguarda la configurazione farò inevitabilmente riferimento alla mia
situazione, ed in particolar modo avendo istallato Debian 3.0 Woody
potrà capitare che faccia riferimento a questa Distribuzione!(b)
(a) Invito la lettura dell'ottimo ....
(b) Se siete interessati alla Distribuzione Debian Gnu/Linux visitate
l'home page del Progetto Debian <http://www.debian.org>
3) Schematizzare.
Innazitutto realizziamo uno schema che in più di un occasione sarà utile
e provvidenziale:
PC NetAddress NetMask Nome.Dominio
PC1 192.168.2.1 255.255.255.0 linuxbox.marco4linux
PC2 192.168.2.2 255.255.255.0 debianbox.marco4linux
Nel testo ora in avanti si farà sempre riferimento a questi due PC,
con i dati che vedete sopra.
CONSIGLIO: provate ad usare gli stessi indirizzi di rete (NetAddress)
al fine di non confondervi, cambiate magari il nome completo, scegliendone
uno di vostro gusto per i PC e per il dominio!
ATTENZIONE : Non tutti sanno che se avete un solo PC a disposizione potrete
comunque fare un pò di epsrienza nella gestione di una rete, usando dei
software in grado di simulare una macchina virtuale all'interno della
macchina Linux in esecuzione (Ad esempio un VMware ben configurato
o più semplicemente usando UML UserModeLinux (c))
(c) Visità la pagina del progetto OpenSource <http://sourceforge.net/projects/user-mode-linux>
4) Configuriamo le interfacce.
Allora iniziamo con la configurazione delle interfacce, e per farlo
procederemo usando il metodo migliore, più semplice ed efficace, cosa
volete di più dalla vita?
Ovviamnte sto parlando della linea di comando (o CommandLine CL), quindi da
shell (se state eseguendo X allora aprite un terminale, una Konsole o
un Xterm, ma se andate su una tty diversa dalla 7 CTRL-ALT-F1
ad esempio vi assicuro che fa più scena!):
root@debianbox /root : # ifconfig eth0 192.168.2.2 netmask 255.255.255.0 up
(d)
Mi raccomando da root! Stessa cosa dall'altro PC, cambiando i parametri
ovviamente (non eth0 che indica la prima interfaccia ethernet sul PC).
Cerchiamo di capire cosa abbiamo appena fatto, perchè vi assicuro che
la rete è bella e completata!!
_ ifconfig è il comando per la definizione delle interfacce di rete
(InterFaceCONFIG)
_ eth0 indichiamo di settare la prima interfaccia di tipo ethernet,
se ne avvessimo più di una in un PC allora sarebbe da configurare anche eth1
(per esempio un computer che svolge il ruolo di Router!)
_ netmask indica la netmask (maschera di rete) del indirizzo 192.168.2.2(IP)
_ up serve per avviare tale interfaccia
Questa operazione ovviamente va ripetuta una sola volta, e 'ora in avanti
il nostro PC2 verra identificato all'interno della nostra rete all'indirizzo
192.168.2.2, una sorta di recapito!
Netmask inoltre è un'informazione aggiuntiva, che ci dice quali computer
fanno parte della rete interna, e quali invece sono esterni.
Spero che ognuno di voi sappia come ogni computer collegato ad internet sia
identificato da un indirizzo IP, indirizzo che sarà strutturato esattamente
come quello che abbiamo dato ai nostri PC, ma non uguali ovviamente.
Per ammirare l'opera che avete compiuto potete dare il comando ifconfig
senza argomenti e vedrete qualcosa di simile:
debianbox:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:BA:B8:BA:EB
inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:128 errors:0 dropped:0 overruns:0 frame:0
TX packets:66 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:18170 (17.7 KiB) TX bytes:11394 (11.1 KiB)
Interrupt:10 Base address:0x1000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Sostanzialmente la fase di istallazione della rete è terminata, non dobbiamo
fare altro ma, come vedremo tra poco, le porte che ci si aprono davanti sono
molteplici.
(d) Come sempre quando trovate un comando nuovo date un occhiata alla pagina
di manuale : man ifconfig
NOTA: ifconfig non è l'unico modo per configurare le interfacce di rete, per
chi ama le interfacce grafiche più di me può benissimo provare ad usare un
tool come Webmin (si tratta di istallare un demone che funge da server in
ascolto sulla porta 10000 e che ci permette di amministrare il sistema da
un'interfaccia web anche da remoto) oppure usare Yast con Suse o mcc con MDK!
Infine per gli smanettoni se avete debian date uno sguardo in /etc/network!!
5) Pinghiamo i due PC
E' arrivato il momento della prova del fuoco, ovvero vedere se tuute le
operazioni sono state eseguite correttamente!
Un primo semplicissimo comando è detto ping, e come suggerisce il nome
non è altro che una specie di sonar. Infatti proviamo a lanciare ping da PC2:
root@debianbox /root : ping 192.168.2.1
ovvero pinghiamo la macchina PC1, ed oserviamo il risultato, che ci dice
qunti pacchetti PC2 ha spedito e quanti ne ha ricevuti PC1, ed il tempo
impiegato!
root@debianbox # ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1): 56 data bytes
64 bytes from 192.168.2.1: icmp_seq=0 ttl=64 time=0.4 ms
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=0.2 ms
--- 192.168.2.1 ping statistics ---
2 packets transmitted, 2 packets recived, 0% packet loss
round-trip min/avg/max = 0.2/0.3/0.4 ms
Se l'output di ping non dovesse essere qualcosa di simile allora il problema
dovrà essere ricercato nel collegamento del cavo crossover, nei connettori
RJ45 e nell'eventuale Hub.
6) Ed i nomi dei PC?
Finora abbiamo usato IP e NetMask, ma non abbiamo visto come usare i nomi
che abbiamo deciso di dare ai PC, se non altro per non dover ricordare
sempre l'IP in forma numerica!
Quindi il nostro nuovo obiettvio è quello di indicare un PC con un nome,
ed automaticamente il sistema lo converte nel IP corrispondente!
Ci sono due metodi per ottenere questo risulato, per così dire uno manuale
ed uno automatizzato; per ora ci limitiamo a seguire il primo metodo, che
consiste nel fornire al sistema un elenco contenuto in un particolare file.
Questo file è /etc/hosts, e non è altro che una lista dei PC collegati alla
rete con il loro IP ed il loro nome! (e)
Eccone un esempio:
debianbox:~# cat /etc/hosts
### etherconf DEBCONF AREA. DO NOT EDIT THIS AREA OR INSERT TEXT BEFORE IT.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
### END OF DEBCONF AREA. PLACE YOUR EDITS BELOW; THEY WILL BE PRESERVED.###
192.168.1.2 debianbox.marco4linux debianbox
192.168.1.1 linuxbox.marco4linux linuxbox
Salta subito agli occhi come per una piccola rete questo non costi troppi
sforzi, se non quei cinque secondi necesasri ad editare il file in ogni PC!!
(e) Se siete interessati un ottima lettura è Appunti di Informatica Libera
di Daniele Giacomini "Cap. 108 Indirizzi di rete"
6) Automatizzare tutto
Se la rete è più complessa, presenta ad esempio un certo numero di computer
portatili(che quindi vengono continuamente collegati e scollegati), con Linux
c'è la possibilità di automatizzare il tutto mediante due server da
configurare, ovvero DHCP e DNS.
Il primo dei due ci solleverebbe dal compito di assegnare ad ogni PC un
indirizzo IP valido, cosa molto utile per i portatili appunto.
In pratica dovremmo destinare un PC quale server DHCP (Dynamic Host
Configuration Protocol) in modo tale che qualunque altro PC venga inserito
nella rete possa ricevere tutti i dati necessari in modo automatico e
dinamico! Va da se che il Server deve essere acceso prima degli altri
pena il non riconoscimento dei PC nella LAN.
Senza dilungarsi troppo sulla teoria basti sapere che il servente DHCP è
sempre in ascolto sulla porta 67 UDP in attesa di richieste di configurazione,
pronto a rispondere sulla porta 68 UDP.
Per quanto riguarda l'installazione dovrete istallare semplicemente il
pacchetto dhcp-3.01p1.i386.rpm (f) o superiore se usate una distro RH o MDK,
oppure se usate Debian apt-cache search dhcp (e poi installate il pacchetto
tramite apt-get install "nomepacchetto").
Va poi fatto in modo che parta automaticamente all'avvio della macchina,
aggiungendo un link simbolico nella cartella /etc/rc5.d (sempre che 5 sia
il vostro runlevel) allo script che avvia il demone!
Una volta installato dovrete editare a mano un solo file di configurazione
/etc/dhcpd.conf, file molto semplice di cui eccone un esempio:
# DHCP Configuration for LAN
# Parametri globali
default-lease-time 604800;
max.lease-time 2592000;
#Definizione delle info comuni
#a tutti i clientserviti
option broadcast-address 192.168.2.255;
option subnet-mask 255.255.255.0;
option routers 192.168.2.1;
option domain-name-server 192.168.2.1;
option domain-name "marco4linux";
subnet 192.168.2.0 netmask 255.255.255.0
{
#range degli indirizzi allocabili dinamicamente
range 192.168.2.2 192.168.2.254;
}
Nelle altre macchine linux dovrete installare (se non è già installato)
un client (in Debian apt-cache search dhcpcd e poi apt-get install )
che inoltrerà le richieste al servente!
Per quanto riguarda la risoluzione dei nomi si tratta di mettere su un server
DNS (Dynamic Name Server), e quando si parla di DNS nel mondo linux si parla
di BIND, un tool OpenSource davvero ottimo.
ATTENZIONE : Senza entrare troppo nella teoria, la configurazione che andremo
ad effettuare si chiama "Caching Only", nel senso che non fornisce alcun
servizio a nessuno in giro per Internet, ma solo localmente alla vostra LAN,
inoltre c'è da dire che è una configurazione che funziona
Quindi istallate Bind (rpm, urpmi, apt, quello che volete!) e la configurazione
si riduce ad editare il file /etc/named.conf
(f) Fare riferimento al sito del Internet Software Consortium (ISC) all'URL
<http://www.isc.org/products/DHCP> Per il Server!!
7) Orizzonti di gloria
Con la configurazione ottenuta fin ora siamo riusciti a verificare che i PC
si vedono tra loro è che possono effettivamente comunicare (ping!), ma allora
tutta la nostra fatica è servita solo a questo?
Ovviamnete no, infatti sono molte le cose che questa configurazione ci
permette di fare, vediamone alcune:
_ Condividere una connesione ad internet (XDSL ma anche Dial-Up)!
_ Amministrare un sistema da remoto.
_ Fare interagire Linux e Windows (Se presente!)
_ Condividere dati e file tra i PC.
_ Creare un Ftp server.
_ Creare un Web server.
_ Creare un Mail server.
_ ...
Come vedete le possibilità sono tante, ma sicuramente ce ne sono ancora
molte altre (g)!!
(g) Per un maggior approfondimento rimando all'ottimo Networking howto