Introducción a las redes locales y al Internet Stefano Barale <[email protected]> ¿Que vamos a aprender? ● Definiciones de base: LANs, WANs ● Conceptos de base sobre Ethernet y TCP/IP ● Como se colegan dos pc utilizando un cabo cross ethernet ● Costruir una LAN sencilla (a traves de un HUB u Switch) ● ● Diferencia entre conexión física y protocoles “hablados” sobre esta conexión física: HTTP, FTP, HTTPS, SMTP, POP, IMAP, DNS, NFS. Como conectar una LAN en el Internet Definiciones básicas I La red está hecha por un colegamento físico entre varias computadoras y por varios niveles u estratos (layers) que oferecen servicios de conexión. ● ● ● LAN: Local Area Network (0-100 m.) MAN: Medium Area Network (10 Km.), solitamente dentro de una ciudad WAN: World Area Network (10000 Km.) Arquitectura de red: interfaces físicas y protocoles software juntos crian una arquitectura de red. Definiciones básicas II Protocoles y estandares libres y abiertos (por suerte) venceron la “guerra de las arquitecturas” de las LAN. Los vencedores son el Ethernet (como “estrato” físico) y el Transmission Control Protocol / Internet Protocol Suite (a.k.a. TCP/IP, el protocolo de la Internet). Todo lo que tiene allí fuera es construido y funciona de manera más que segura exclusivamente con el software libre. Ejemplos: los servidores estan hechos, en larga parte, con Apache, las direcciones las “resolve” el Bind9, buena parte del correo electrónico es distribuydo por Postfix, Exim y Sendmail... Conexión Cross Ethernet La conexión Ethernet más sencilla posible es realizada colegando dos computadoras a traves de un cable Ethernet “crossed”: este cable conecta el hilo de “trasmisión” de la 1a maquina al hilo “recepción” de la 2a. Este es el motivo por lo cual se llama “cross” (miren los cables en estas imagenes). Algunas tarjetas de red “modernas” hacen “autocross”, sobretodo las de los laptops. Cabo Ethernet “recto” Cabo Ethernet “cross” Esquema para bloques Una vez que los dos PC sean físicamente conectados teremos que darle una dirección. ● Laptop (ejecutando a GNU/Linux): $ su # ifconfig eth0 192.168.1.77 up ● PC (ejecutando Windows): Abrir “Impostaciones” -> “Red y conexión ” Local Area Network -> TCP/IP Modificar las propriedades de manera de introducir la dirección 192.168.1.68 Controlar a la conexión Para controlar la conexión: ● Abrir una Shell (o Línea de comando) y escribir: ● $ ping 192.168.1.68 del Laptop $ ping 192.168.1.77 del PC El resultado deberia ser: hostname:/home/barale# ping 192.168.1.68 PING 192.168.1.68 (192.168.1.68): 56 data bytes 64 bytes from 192.168.1.68: icmp_seq=0 ttl=255 time=0.4 ms 64 bytes from 192.168.1.68: icmp_seq=1 ttl=255 time=0.2 ms ● Ping è un comando que ci serve a capire se l'altro computer esta rispondendo. Y ahora? Vale, en este punto nuestros dos computadores son collegati. Pero como hacemos para cambiar file o a “farli parlare”? Este es el momento en cui entrano in gioco i protocolia: la forma mas simple sotto Windows es usando el protocolo de Samba simplemente activando la “condivision” dei file che ci interessa siano visibili sulla rete, oppure usar un programa de condivision como FileZilla. Sotto GNU/Linux podemos continuar usando el protocolo Samba (ci sono varie interfaccie che ci permettono di farlo), pero el modo mas simple y seguro es continuar usando la shell (por ejemplo con el comando ssh). Direcciones IP Las direcciones IP son numeros de 32 bit (4 byte). ----------------- --------------- Direccion PC 192.168.110.23 Network Mask 255.255.255.0 Network Portion 192.168.110.0 Host portion ----------------Network Address .23 --------------192.168.110.0 Broadcast Address 192.168.110.255 ----------------- --------------- Clases de las direcciones IP Clase A: 16 millones de direcciones, usadas en la WAN. El primer numero esta entre 0 y 127. Existen solo 128 “redes” de clase A en el mundo (esto hasta la introduccion del IPv6). Clase B: 64000 direcciones, usadas en la WAN. El primer numero esta entre 128 y 191. Hay 16000 redes de clase B en el mundo. Clase C: 256 direcciones, usadas para construir LANs. Comienzan con un numero entre 192 e 223. La mas “famosa” es 192.168.1.x. Clases D, E: fuera de nuestro objetivo (son usadas para Multicast y otros usos particulares). Direcciones disponibles por Clase -------------------------------------------------------------------------| Clase | Netmask | Network Addresses | | Red | | -------------------------------------------------------------------------| A | 255.0.0.0 | 0.0.0.0 | B | 255.255.0.0 | 128.0.0.0 - 191.255.255.255 | | C | 255.255.255.0 | 192.0.0.0 - 223.255.255.255 | | Multicast| 240.0.0.0 - 127.255.255.255 | | 224.0.0.0 - 239.255.255.255 | --------------------------------------------------------------------------- Construir una LAN I Para construir una pequeña LAN necesitamos: Cables ethernet (uno por computador) Un HUB o switch, o modem/switch con el numero apropiado de puertos (uno para cada computadora) Elementos de una LAN ● ● ● ● ● ● HUB: conecta varias computadoras entre si, in manera analoga a cuanto abbiamo visto fare ad un cable ethernet. Switch: aggiunge un poco di “intelligenza”. I messaggi (paquete) sono filtrati dallo switch que los repite unicamente en la direccion del computador al cual esta destinado. Router: collega dos redes (p.es. LAN e WAN). Può essere un computer collegato ad entrambe le reti o un apparecchio pensato per svolgere solo quel preciso compito. Modem: connette un certo computer (o Router) a internet. Cavo Ethernet: è usato per connettere tutti gli elementi, a meno che non si decida di passare alla tecnologia wireless. Stampanti o altre periferiche: possono essere connesse direttamente alla LAN. Collegare una LAN Schemi possibili: Schema HUB Schema Switch Configurare i PC Ecco le informazioni di cui abbiamo bisogno per configurare i nostri PC sulla rete: – Indirizzo: e.g. 192.168.1.77 – Netmask: e.g. 255.255.255.0 – Broadcast: e.g. 192.168.1.255 – Gateway: e.g. 192.168.1.1 (necessario solo per uscire dalla LAN) – Indirizzo IP del server DNS: e.g. 62.101.66.80 – Rete: e.g. 192.168.1.0 Servizi e protocolli correlati Ecco cosa possiamo fare con la nostra LAN nuova di zecca: ● ● ● ● Condividere file da un computer all'altro, secondo una logica peer-to-peer (attraverso protocollo SMB) Creare un File Server su una macchina (usando protocollo SFTP o SMB) Creare un server di stampa (protocollo CUPS o SMB) Creare un Server per la connessione ad Internet (fare routing con NAT) ● Creare un Server di Database interno (p.es. con MySQL) ● Creare un Server Web (protocolli HTTP, HTTPS) Creare un File Server (SFTP) Usando SSHD e GNU/Linux possiamo creare un file server affidabile, sicuro e veloce a cui tutte i computer della rete potranno accedere attraverso un'interfaccia semplice e graziosa da vedere. SSH è il protocollo. Per far partire il server sarà sufficiente dare il comando: # /etc/init.d/sshd restart dopodiché dovremo unicamente creare le cartelle da condividere e decidere i permessi utenti per ciascuna di esse. Creare un Server MySQL L'installazione è molto semplice, ma potreste incappare in problemi se non configurate MySQL correttamente. # apt-get install mysql # /etc/rc.d/init.d/mysql restart # mysqladmin -u root password 'qualsiasi' Questo per poter usare MySQL “alla maniera di Access”. IMPORTANTE: se vorrete abilitare l'accesso al vostro DB Server da qualsiasi altro computer sulla rete dovrete accertarvi che l'opzione “skip-networking” sia disabilitata e che TUTTI gli utenti abbiano i permessi per accedere. Creare un Web Server Dovremo installare Apache, il software che offre i servizi HTTP (Hyper Text Transfer Protocol) e HTTPS. Ogni computer che abbia installato Apache potrà poi condividere una o più cartelle ed accedere a quelle degli altri computer che abbiano installato Apache. Questo è il sistema utilizzato nel moderno MacOS X per condividere i file velocemente e semplicemente usando un protocollo libero e aperto (HTTP). HTTPS è la versione sicura (crittata) dello stesso protocollo. Licenza Copyright (c) Stefano Barale 2004/2005 Queste lezioni sono rilasciate sotto licenza GNU/FDL (Free Documentation License) Per maggiori informazioni: http://www.gnu.org/copyleft/fdl.html