CONCEPTES BÀSICS D'ADRECES IP I MÀSCARES DE SUBXARXA

1- Introducció

Aquest document explica la manera de determinar quins ordinadors pertanyen a una mateixa subxarxa en funció de la seva IP i màscara de subxarxa. Els ordinadors que formen part d'una mateixa xarxa a nivell físic, però que formen part de subxarxes diferents no poden comunicar-se, llevat que hi hagi algún dispositiu que faci d'encaminador (router) entre les dues subxarxes.

Al llarg d'aquest document es tractarà el tema de les IP's i de les màscares de subxarxa, per la versió IPv4 del protocol IP. Això vol dir que tant la IP, com la màscar a de subxarxa es composen de 4 conjunts de números, i cadascún d'aquests números poden anar de 0 a 255 en decimal, és a dir, de 00000000 a 11111111 en binari (o de 00 a FF en hexadeciamal). Així doncs, una IP i màscara posible d'un ordinador serà 192.168.108.125 i màscara 255.255.255.0. Dins d'aquest document, no es tractarà el tema de les limitacions d'utilització de núimeros IP (en principi, es suposarà que qualsevol combinació d'IP's és posible, tot i que s'utilitzaran sempre IP's de les considerades com a privades i de classe C).

2- Com determinem si dos ordinadors pertanyen a la mateixa subxarxa?

2.1- Màscares de subxarxa senzilles

Cadascún del dos ordinadors ha de tenir una IP i una màscara de subxarxa. Dos ordinadors pertanyen a la mateixa subxarxa si al fer l'operació lògica AND bit a bit entre la IP i la màscara de subxarxa, donà com a resultat un mateix número que rep el nom d'adreça IP de la subxarxa.

Per exemple, si tenim un ordinador amb IP1=192.168.108.21 i màscara de subxarxa M1=255.255.255.0, llavors la IP de la subxarxa a la qual pertany és:

192.168.108.21 ==> 11000000 . 10101000 . 01101100 . 00010101
255.255.255.0   ==> 11111111 . 11111111 . 11111111 . 00000000
--------------------------------------------------------------------------------------------------
IP de subxarxa ==> 11000000 .10101000 . 01101100 . 00000000 ==> 192.168.108.0

Si un segon ordinador tingués una IP2=192.168.108.47 i màscara de subxarxa M2=255.255.255.0, quan realitzem la mateixa operació, tindrem el segúent resultat:

192.168.108.47 ==> 11000000 . 10101000 . 01101100 . 00101111
255.255.255.0   ==> 11111111 . 11111111 . 11111111 . 00000000
--------------------------------------------------------------------------------------------------
IP de subxarxa ==> 11000000 .10101000 . 01101100 . 00000000 ==> 192.168.108.0

Comprovem que tots dos ordinadors tenen la mateixa IP de subxarxa, de manera que formen part de la mateixa subxarxa, i es poden comunicar sense necessitat d'encaminador, en el cas de que es trobin connectats físicament al mateix segment de xarxa.

Si un tercer ordinador tingués una IP3=192.168.107.21 i màscara de subxarxa M3=255.255.255.0, si fem l'operació AND bit a bit, tindrem com a resultat:

192.168.107.21 ==> 11000000 . 10101000 . 01101011 . 00010101
255.255.255.0   ==> 11111111 . 11111111 . 11111111 . 00000000
--------------------------------------------------------------------------------------------------
IP de subxarxa ==> 11000000 .10101000 . 01101011 . 00000000 ==> 192.168.107.0

Com que la seva adreça IP de subxarxa es diferent de la dels dos ordinadors anteriors, no forma part de la mateixa subxarxa. Per tant, entre el tercer ordinador i els altres dos no hi ha comunicació a nivell de xarxa del model OSI (o nivell Internet de la família de protocols TCP/IP). Per unir-los a nivell de xarxa ens caldria un encaminador o router.

Si un quart ordinador tingués una IP4=192.168.109.21 i màscara de subxarxa M4=255.255.255.0, el resultat serà:

192.168.109.21 ==> 11000000 . 10101000 . 01101101 . 00010101
255.255.255.0   ==> 11111111 . 11111111 . 11111111 . 00000000
--------------------------------------------------------------------------------------------------
IP de subxarxa ==> 11000000 .10101000 . 01101011 . 00000000 ==> 192.168.109.0

Com que la seva adreça IP de subxarxa es diferent de la dels dos primers ordinadors, no forma part de la mateixa subxarxa. Podem veure que tampoc no forma part de la subxarxa del tercer ordinador.

2.2- Màscares de subxarxa més complexes

Suposem ara que el primer ordinador té una IP1=192.168.108.21 i màscara de subxarxa M1=255.255.255.240, i el segon ordinador té una IP2=192.168.108.47 i màscara de subxarxa M2=255.255.255.240. Formen tots dos parts de la mateixa subxarxa?. Anem a comprovar-ho:

192.168.108.21 ==> 11000000 . 10101000 . 01101100 . 00010101
255.255.255.240   ==> 11111111 . 11111111 . 11111111 . 11110000
--------------------------------------------------------------------------------------------------
IP de subxarxa ==> 11000000 .10101000 . 01101100 . 00010000 ==> 192.168.108.16

Veiem que ha canviat la subxarxa a la qual pertany el primer ordinador, sense haver canviat la seva IP.

Veiem que passa amb el segon ordinador:

192.168.108.47 ==> 11000000 . 10101000 . 01101100 . 00101111
255.255.255.240   ==> 11111111 . 11111111 . 11111111 . 11110000
--------------------------------------------------------------------------------------------------
IP de subxarxa ==> 11000000 .10101000 . 01101100 . 00100000 ==> 192.168.108.32

Veiem que ha canviat la subxarxa a la qual pertany el segon ordinador sense haver canviat la seva IP, i que a més a més, ja no pertany a la mateixa subxarxa que el primer ordinador.

Si un tercer ordinador tingués una IP3=192.168.108.34 i màscara de subxarxa M3=255.255.255.240, el resultat seria el següent:

192.168.108.34 ==> 11000000 . 10101000 . 01101100 . 00100010
255.255.255.240   ==> 11111111 . 11111111 . 11111111 .11110000
--------------------------------------------------------------------------------------------------
IP de subxarxa ==> 11000000 .10101000 . 01101100 . 00100000 ==> 192.168.108.32

El tercer ordinador forma part de la mateixa subxarxa que el segon ordinador, però no forma part de la mateixa subxarxa que el primer ordinador.

Ara bé, si la màscara de subxarxa de tots tres ordinador fora ara M1=M2=M3=255.255.255.192, llavors tots 3 ordinadores formarien part de la mateixa subxarxa 192.168.108.0 (es deixa al lector la tasca de fer la comprovació d'aquesta afirmació) i hi hauria connexió entre ells a nivell 3 (o de xarxa) del model OSI o nivell d'Internet de la família de protocols TCP/IP.

3- Determinació d'una IP que formi part d'una subxarxa a partir de la màscara i d'una altra IP que ja en forma part

Suposem que tenim una xarxa de 4 ordinadors amb màscara 255.255.255.224 i adreces IP: 192.168.108.99, 192.168.108.111, 192.168.108.120 i 192.168.108.108. Si fem la comprovació, veurem que tots formen part de la subxarxa 192.168.108.96.

La qüestió ara és: Si afegeixo un nou ordinador, quina IP hauria de tenir per estar segur que formarà part de la mateixa subxarxa que la resta d'ordinadors que ja en formen part.?

La resposta requereix dos passos: 1- Trobar dins de quin marge es troben les IP's que amb la mateixa màscara de subxarxa donariem com a resultat la IP de la subxarxa dins de la qual es trobarà el nou ordinador 2- Escollir una IP dins d'aquest marge que no coincideixi amb IP's ja existents.

El segon pas en senzill i no requereix de gaires esforços per dur-lo a terme, en principi. Un cop trobat el marge de valors, simplement hem d'escollir un valor que no hagi estat utilitzat per cap dels ordinadors de la subxarxa.

El primer pas és més problemàtic. Hem de fixar-nos en el valor de la màscara i IP, però treballant en binari. Cada posició de la màscara on hi hagi un 1, és una posició en la qual el valor del bit corresponent en les IP de tots els ordinadors que formen part d'una mateixa subxarxa han de tenir el mateix valor, un 1 o un 0, però el mateix valor. On hi hagi un 0 en la màscara de subxarxa, és una posició en la qual el valor del bit corresponent en les IP de tots els ordinadors que formen part d'una mateixa subxarxa poden tenir un valor diferent.

Posem un exemple: Un dels ordinadors té l'adreça IP=192.168.108.99, i la màscara és 255.255.255.224. Per tant:

IP de l'ordinador que ja forma part de la subxarxa =====> 11000000 . 10101000 . 01101100 . 01100011
Màscara de l'ordinador que ja forma part de la suxarxa  => 11111111 . 11111111 . 11111111 . 11100000
---------------------------------------------------------------------------------------------------------------------------------------------------------
IP del nou ordinador que formarà part de la subxarxa  ==>  11000000 . 10101000 . 01101100 . 011xxxxx   (on x pot ser 1 o 0)

Això vol dir que l'adreça IP del nostre ordinador ha de ser per força:

192.168.108.96+Y

on Y és qualsevol valor que es pogui combinant 1 i 0 amb, en aquest cas, 5 bits. De manera que el marge de valor anirà desde:

xxxxx=00000 ==> Y=0 ==> 192.168.108.96

fins a:

xxxxx=11111 ==> Y=31 ==> 192.168.108.127

ara ja podem fer el segon pas. Per exemple, l'adreça 192.168.108.123 està dins del marge indicat, i encara no l'utilitza cap altre ordinador, de manera que podem escollir aquest valor, i la màscara, evidentment, serà 255.255.255.224.

4- Una manera racional i còmoda d'assignar màscares de subxarxa

En principi la màscara la podem posar segon els nostres interessos i sin cap mena de restricció, però hi ha una manera racional i còmoda d'assignar màscares. Generalment quan posem una màscara, volem limitar a un cert número la quantitat d'ordinadors que pertanyen a una mateixa subxarxa, i al mateix temps, volem que les adreces IP siguin consecutives, i sense salts estranys entre marges de valors d'IP que formin part d'una mateixa subxarxa, bàsicament per comoditat i per no haver de fer més càlculs estranys dels que ja ens veiem obligats a fer.

Per això, un mètode per assignar 1 i 0 a la màscara, és assignar zeros començant per la dreta. Com més gran volguem fer la subxarxa, més zeros posarem a partir de la dreta.

Per exemple, si volem treballar amb 10 ordinadors, podem posar una màscara com:

11111111 . 11111111 . 11111111 . 11110000 ==> 255.255.255.240

ja que aquesta màscara permet treballar amb 16 adreces IP diferents. En canvi, si només volem treballar amb 5 ordinadors, podem fer servir una màscara com per exemple:

11111111 . 11111111 . 11111111 . 11111000 ==> 255.255.255.248

que permet treballar amb 8 adreces IP diferents. I si ara volem una subxarxa de 113 ordinadors diferents posarem:

11111111 . 11111111 . 11111111 . 10000000 ==> 255.255.255.248

que permet treballar amb 128 adreces IP diferents.

Com sabem el número d'adreces IP diferents amb les qual pot treballar una mateixa màscara de l'estil 255.255.255.X (on X és 240, 224, etc....) ?. Doncs el número és igual a:

N = 2p

on N és el número d'adreces IP diferents que pot tenir una subxarxa en funció de la màscara, i p és el número de zeros que té la màscara.

És important fixar-se que els zeros en tots els exemples es van posant des de l'última posició de la màscara, i es van afegint consecutivament i anant de dreta a esquerra. No és obligatori seguir aquest mètode, però dóna lloc a una manera fàcil de saber quantes IP diferents pot tenir una subxarxa, fer que siguin consecutives, i que sigui fàcil de trobar dins que margen es trobaran, es a dir, aquest mètode fa fàcil l'assignació de les IP a cada ordinador. Podem veure que, en principi, és posible assignar els números 128, 192, 224, 240, 248, 252, 254 i 255 a l'últim valor de la màscara. Posteriorment comprovarem que alguns d'aquests valors no són vàlids.

5- IP de subxarxa i IP de broadcast: Totes les IP's d'una subxarxa es poden utilitzar?

No. Tota subxarxa té dues adreces que no es poden utilitzar com adreces d'un ordinador:

1- La pròpia adreça de la subxarxa.
2- L'adreça de broadcast de la subxarxa.

de manera que el número d'adreces que pot aprofitar una subxarxa és:

M =N -2

on N és el número d'adreces IP diferents que pot tenir una subxarxa en funció de la màscara (essent la màscara de l'éstil 255.255.255.X, on X és 240,224,etc....), i M és el número d'adreces IP que realment es pot aprofitar per posar-les a ordinadors de la subxarxa.

Si per exemple, a un ordinador li posem una màscara de subxarxa 255.255.255.224 i una IP 192.168.108.198, el marge d'adreces posibles que es poden donar a altres ordinadors de la subxarxa van des de 192.168.108.192 fins a 192.168.108.223, però, 192.168.108.192 no es pot utilitzar perquè és l'adreça IP de la subxarxa, i 192.168.108.223 tampoc es pot utilitzar perquè és l'adreça IP de broadcast de la subxarxa. Per tant podem utilitzar les adreces 192.168.108.193 fins a 192.168.108.222, que en total són 30 adreces IP.

Comprovem que la fòrmula és correcta:

p = Número de zeros que té la màscara = 5 (recordem que 224 = 11100000)
N = Número d'adreces IP diferents que pot tenir una subxarxa en funció de la màscara = 25 = 32
M = Número d'adreces IP que realment es pot aprofitar per posar-les a ordinadors de la subxarxa = 32-2=30

Podem veure que una màscara 255.255.255.254 o 255.255.255.255 no són posibles perquè donarien lloc a un número d'ordinadors igual a 0 o -1.

6- Hi ha cap mena més de limitació a les IP's dels ordinadors i a les màscares posibles?

Sí, però, això voldria dir parlar de segmentació de xarxes. Si algú està interessat en aquest tema, pot trobar una explicació clara i concreta (en castellà) a:

http://www.htmlweb.net/redes/subredes/subredes_1.html