6. Xarxes Locals

Adreces IP

De portes enfora, tots els ordinadors connectats a un router tenen la mateixa IP (IP externa), que de fet identifica al propi router (Livebox, per exemple). Un router casolà és en veritat un modem + un router + un switch.

De portes endins
però, el conjunt d'ordinadors connectats al router formen una xarxa local o privada.
De portes endins doncs, cada ordinador d'aquesta xarxa local s'identifica amb una IP diferent (IP interna).

La Internet Assigned Numbers Authority (IANA) té reservades els següents tres blocs d'adreces IP per a xarxes privades o locals:

10.0.0.0   -   10.255.255.255  (10/8 prefix)
  • 16.777.214 direccions.
  • 16.777.214 ordinadors en 1 xarxa (10.x.x.x).
  • Subnet mask: 255.0.0.0   
  • El primer número ha de ser igual en tots els ordinadors.
  • Adreça de Classe A.
172.16.0.0  -  172.31.255.255  (172.16/12 prefix)
  • 1,048,574 direccions.
  • 65.534 ordinadors en cada una de les 16 possibles xarxes (172.16.x.x fins 172.31.x.x).
  • Subnet mask: 255.255.0.0
  • Els dos primers números han de ser iguals en tots els ordinadors.
  • Adreça de classe B.
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
  • 65,534 direccions
  • 254 ordinadors en cada una de les 256 possibles xarxes (192.168.0 fins 255.x)
  • Subnet mask: 255.255.255.0
  • Els tres primers nombres han de ser iguals en tots els ordinadors.
  • Adreça de Classe C.
Cadascun del números de l'adreça IP s'anomena octet, perquè va de zero a 255 (8 bits).

La subnet mask indica quina part de la IP identifica la xarxa i quina part a l'ordinador. La part de 255 correspon a la xarxa.

La traducció d'una adreça privada a una de pública o a la inversa, es coneix com a NAT (Network Address Translation).
Aquest procés és el que permet que cada ordinador de la xarxa local pugui accedir a altres ordinadors del mon exterior a través del router.

Les adreces següents no es poden utilitzar per a identificar ordinadors:

"Wire" or "Network" Addresses:

10.0.0.0
172.16-31.0.0
192.168.0-255.0

Broadcast Addresses:

10.255.255.255
172.16-31.255.255
192.168.0-255.255

Habitualment, en els routers domèstics, l'adreça acabada en .1 identifica el router dins la xarxa local.

Per a veure les característiques de la nostra connexió obrim un terminal i fem

sudo ifconfig


MACs, ARPs i altres meravelles

MAC address: identifica la tarja Ethernet o qualsevol altre hardware connectat a la xarxa.
Tot ordinador s'identifica mitjançant la IP i la MAC.

Si sabeu la IP d'un altre ordinador de la xarxa local (o d'internet), podeu obrir un terminal i fer

ping 192.168.0.23

on el numero a continuació de ping es la IP de l'ordinador de la xarxa.
ping es una instrucció que permet determinar si tenim comunicació o no i ens informa del temps que triga a establir comunicació.

Si feu ping a un ordinador dins la xarxa local i després feu

sudo arp -a

veureu les adreces MAC dels elements que hi ha fins a l'ordinador al que feu ping (dins la xarxa local).

En qualsevol "paquet" d'informació que viatge per la xarxa local hi trobem la següent informació


Veiem com a les dades que estem enviant s'hi ha anat afegint informació per a que el paquet pugui arribar a la destinació final. FCS fa referència a un codi de seguretat per a comprovar si les dades arriben correctament.

Fixem-nos que en referència a les dades del destinatari, no només incloem l'adreça IP i MAC, si no també el número del port a on va destinada la informació. El port 80 per exemple correspon a HTTP. El port 21 és per a FTP. D'aquesta manera l'ordinador receptor sap a quin programa li ha de passar les dades que rep. A l'adreça complerta l'anomenem socket, per exemple podem accedir a una pàgina web escrivint
172.16.5.20:80.

Fixem-nos també que està inclosa la MAC del destinatari. Com s'ho fa l'ordinador que envia el paquet per saber la MAC de l'ordinador que rebrà el paquet? Utilitza una demanda ARP (Address Resolution Protocol). Una demanda ARP és una mena de missatge que s'envia a tots els ordinadors de la xarxa tot demanant, per exemple, si tens l'adreça IP 192.168.1.14, diguem la teva MAC. En l'exemple d'abans hem vist quina informació contenia la demanda ARP per a fer ping a un ordinador de la xarxa local. Els routers contenen taules ARP per a poder direccionar els paquets. Els ordinadors també construeixen taules ARP però només ho fan de forma temporal (per a mirar aquesta taula fem arp -a). Un paquet ARP és un "broadcast packet", és a dir, que el reben únicament tots els ordinadors de la xarxa local a través de la broadcast address. Ara bé, si l'adreça IP a la que enviem el paquet correspon a un ordinador de fora de la xarxa, aleshores la demanda ARP no s'envia a través de la broadcast address si no que s'envia a través del default gateway per a que el router faci la demanda ARP corresponent a l'ordinador de l'exterior.

Per a saber quins ports d'un determinat ordinador son accessibles, fem:

nmap -v -sS -p1-9000 192.168.1.10

i podem veure fàcilment els ports que estan oberts.

Una llista de ports que utilitza la màquina per a moltes de les aplicacions del sistema la trobem a  aplicació es troben a

gedit /etc/services.

Si volem veure a traves de quins routers i màquines passa la informació que prové d'un determinat lloc web fem:

mtr www.debian.org

i podrem veure a més el temps de resposta de cada router. MTR (My traceroute, originally called Matt's traceroute) és un programa que utilitza els programes traceroute i ping.



Xarxa Local Domèstica

Quan tenim un sol router ADSL a casa, normalment tenim una connexió com aquesta:

Xarxa Domèstica


Els noms dels ordinadors, dad, mom, etc, els podem fer oficials fent una llista amb els noms que volem donar als ordinadors i les seves IPs.
Aquesta llista s'ha d'incloure dins del fitxer /etc/hosts de cada ordinador i ha de tenir aquesta estructura (noms en minúscula):

127.0.0.1          localhost
192.168.5.10    dad
192.168.5.11    mom
192.168.5.12    grandpa
192.168.5.13    junior
192.168.5.14    sis
192.168.5.15    fido            

Això ens permet, per exemple, fer ping amb els noms, és a dir, si fem ping grandpa, estarem fent ping 192.168.5.11.

Ara imaginem-nos que estem en una habitació on només hi ha un cable que arriba des del router, potser a través d'un PLC (Power Line Communication), però volem tenir internet a dos o més ordinadors. Aleshores necessitem un hub, o un switch, o un router vell. Si tenim un router vell (si heu hagut de canviar de companyia és possible que en tingueu un o més), el fem servir de switch simplement connectant el cable d'Ethernet que arriba a l'habitació i els cables de cada ordinador als ports Ethernet del router:

 
Aprofitant un router vell...

Si feu servir un router com a switch és convenient que les adreces IP no entrin en conflicte.
Si el router principal te adreces de l'estil 192.168.1.X, el router vell haurà de treballar amb adreces diferents, per exemple, 192.168.0.X.
Resulta convenient deshabilitar el DHCP (Dynamic Host Configuration Protocol) del router vell.

Si voleu poder accedir a la configuració del router vell des de qualsevol ordinador de la xarxa local, es convenient assignar-li una adreça IP que no pugui assignar el router principal. Si el router principal assigna adreces en el rang 192.168.10-50, aleshores al router vell podem assignar-li, per exemple, l'adreça 192.168.1.192 de manera que fins i tots els ordinadors que no estiguin connectats directament hi puguin accedir.



Connexió directa de dos ordinadors amb un cable d'Ethernet

També es possible connectar dos ordinadors directament (sense router).
Només necessitarem un cable normal d'Ethernet (el cable que habitualment fem servir per connectar l'ordinador al router).
Farem servir el cable d'Ethernet per connectar directament els dos ordinadors.
Per transferir fitxers farem servir el NFS, tal i com s'expliquem en un altre punt.
Si els ordinadors són vells, és possible que en un cable normal d'Ethernet no funcioni, i hàgim de fer servir un Ethernet crossover cable.

Simplement haurem d'establir una IP fixa a cada ordinador, per a poder utilitzar el protocol NFS.
Amb el Network Manager, definim manualment una connexió amb els següents paràmetres:

Address:    192.168.0.X         on X és un valor diferent per a cada ordinador.
Pel servidor podem assignar X = 18 i pel client X = 12, per dir dos números.

Netmask:    255.255.255.0

Gateway:    192.168.0.1

I ja està.



Wireless ad-hoc network

A wireless ad-hoc network - also known as Independent Basic Service Set (IBSS) - consists of local wireless devices (nodes) discovering each other and forming a network, each able to forward data for other nodes.

An access point is not required for managing this communication.

Two wireless LAN clients will be configured as ad-hoc network nodes with static IP addressing.

On each node, open /etc/network/interfaces in a text editor:

sudo gedit /etc/network/interfaces

Define stanzas for each node's wireless interface, setting the network SSID and the device's operating mode to ad-hoc:

Node A

auto wlan0
iface wlan0 inet static
    address 192.168.11.10
    netmask 255.255.255.0
    gateway 192.168.11.1
    wireless-channel 3
    wireless-essid ECC
    wireless-mode ad-hoc


Node B

auto wlan0
iface wlan0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.11.1
    wireless-channel 3
    wireless-essid ECC
    wireless-mode ad-hoc


To choose the channel it is helpful to look at other ad-hoc cells in range and choose a channel nobody else is using by doing:

iwlist wlan0 scan

This provides full information of all broadcasts detected by the wireless card.

In other to protect the network, easiest and fastest way to generate a WEP encryption.
WEP encryption requires an encryption key that you can make up yourself or you can generate a random one using openssl

openssl rand 13 | xxd -ps

For example, we may obtain c3e711dd734269c0d5f1535c83 as the output.
We use this key by adding the following command in /etc/network/interfaces:

wireless-key c3e711dd734269c0d5f1535c83

WEP encryption is not safe, but it may be enough if you do not intend to keep this kind of connection for a long time.
I use it just to transfer some files between two computers from time to time (12Mb/s maximum speed!)



Using netcat to test network speed

Netcat is described as being a "feature-rich network debugging and exploration tool".

To set up our test, we'll use two machines, one to listen for a connection, and one to connect and send the data stream. In each test we'll use a ten second session and we'll test on three different LANs that differ in speed. The output file will be /dev/null in order to remove the disk from the equation.

On machine A (192.168.0.8, start netcat as an ordinary user thusly:

nc -v -v -l -n -p 2222 >/dev/null
listening on [any] 2222 ...


On machine B, send data to machine A, using the yes command over port 2222, using netcat - timing the session.

time yes|nc -v -v -n 192.168.0.8 2222 >/dev/null
(UNKNOWN) [192.168.0.8] 2222 (?) open


On machine A, notice:

connect to [192.168.0.8] from (UNKNOWN) [192.168.0.4] 34111

Stop after 10 seconds by typing control-c and jot down the time taken:

sent 87478272, rcvd 0  real 0m9.993s
user 0m2.075s
sys 0m0.939s


On machine A, note the data sent (in bytes)

sent 0, rcvd 87478392

Now multiply the bytes rcvd by 8 to get total bits, then divide by the time: Result is 70Mb/s.




Si necessiteu resoldre algun dubte, poseu-vos en contacte a través d'aquest enllaç.