Capa de xarxa

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
La versión para imprimir ya no se admite y puede contener errores de representación. Actualiza los marcadores del navegador y utiliza en su lugar la función de impresión predeterminada del navegador.

El nivell de xarxa és l'encarregat de realitzar les tasques bàsiques per transportar les dades des d'un origen fins a una destinació a traves d'una xarxa.

Aquest nivell correspon al nivell 3 de xarxa de la OSI i TCP/IP. Són pràcticament iguals, simplement canvia el nom i la família de protocols TCP/IP es centra només en el protocol IP.

Protocol IP

IP és el protocol més utilitzat a nivell de xarxa ja que és el protocol de la xarxa Internet. Aquest protocol ha sofert molts canvis i modificacions des de la seva primera versió, actualment la versió del protocol que s'està utilitzant és la versió 4 (Ipv4) que data del 1980. Al 1996 es va proposar la versió IPv6 que tot i que actualment les adreces IP de la versió 4 s'estan acabant encara no està prou implantat a Internet.

IP és un protocol Best Effort (el millor esforç possible), és a dir intenta transmetre els paquets el millor possible per la xarxa però no pot assegurar:

  • Que els paquets arriben
  • Que els paquets arriben correctament (sense errors)
  • Que els paquets arriben en ordre
Es el nivell de transport el que s'encarrega de garantir tots aquests requisits

La Internet Engineering Task Force (IETF) és qui s'encarrega de definir el protocol IP.

Les funcions del protocol IP són:

  • Control de la xarxa/subxarxa
  • Encaminament: Determinar la ruta (nodes de xarxa pels quals circular) més adequada per als paquets
  • Identificació: Els nodes han de tenir una identificació única que els permeti distingir dels altres nodes i localitzar-los a la xarxa. ADREÇES IP
  • Control de la congestió: determina quins són els camins menys congestionats (similar al trànsit rodat)
  • Interconnexió de xarxes

El protocol IP treballa amb blocs de dades de xarxa (PDU) anomenats paquets.

TCP/IP va ser creat pel DoD (Departament of Defense) dels Estats Units amb l'objectiu de crear una xarxa que sobrevisques a qualsevol circumstància (per exemple un atac Nuclear). La idea era que les comunicacions funcionessin encara que un moment concret un o més nodes de xarxa estiguin caiguts.

IP ha anat creixent a mesura que Internet anava creixent. Per exemple la primera versió d'IP era per a xarxes de com a màxim 2^5 màquines (32 màquines). La següent versió era per a 2^4(16) xarxes i 2^8 (256) màquines per xarxa. La versió IPv4 actual suporta 2^32(4.294.967.296 màquines)

Actualment uns 4 billions (americans) d'adreces no són suficients adreces. S'està implantant poc a poc el protocol IPv6 amb 2128 (3,4x1038 màquines).

Consulteu #IPv6.

Adreces IP

Notation Value Conversion from dot-decimal
Dotted decimal 192.0.2.235 N/A
Dotted hexadecimal 0xC0.0x00.0x02.0xEB Each octet is individually converted to hexadecimal form
Dotted octal 0300.0000.0002.0353 Each octet is individually converted into octal
Hexadecimal 0xC00002EB Concatenation of the octets from the dotted hexadecimal
Decimal 3221226219 The 32-bit number expressed in decimal
Octal 030000001353 The 32-bit number expressed in octal


Les adreces IP estan constituïdes per 32 bits o el que és el mateix una mica menys de 4300 millions d'adreces. Com veurem en l'apartat de subxarxes aquesta quantitat teòricament tan alta s'ha demostrat insuficient per al creixement espectacular d'Internet.

Hi ha diferents notacions o formes d'escriure una adreça IP, però la més normal és la notació decimal amb punts:

  • Exemple: 207.142.131.235 correspon als 32 bits: 11001111.10001110.10000011.11101011

La majoria d'aquests formats es poden utilitzar en els navegadors moderns.

Els dos formats més utilitzats són el decimal utilitzat pels humans i el binari, utilitzat per les màquines. Per tal de convertir una adreça d'un format a l'altre podeu utilitzar ipcalc i o la calculador del sistema (suporta treballar directament en format binari).

$ ipcalc 192.168.0.0/16 -s 1000 1000 1000

Recursos:

Subxarxes

En xarxes, una subxarxa és un rang d'adreces lògiques IP que s'assigna a una organització. Les subxarxes estableixen una partició jeràrquica de les adreces de xarxa d'una organització. Típicament els routers constitueixen els límits entre subxarxes.

El primer sistema de subxarxes va ser el sistema classful network Addresses que dividia l'espai d'adreces IP de xarxa en 5 classes diferents. Més endavant va aparèixer el sistema CIDR que permetia refinar el sistema d'assignació de xubxarxes.

Les subxarxes no són cap invent nou. La majoria de xarxes grans utilitzant el concepte de subxarxa. Per exemple la xarxa telefònica o PSTN(Public Switched Telephone Network) també utilitza subxarxes. Per a un nº telèfon concret: +34 93 894 05 50

  • +34: Codi de país (Espanya)
  • 93: Codi de província (Barcelona)
  • 894: Codi de ciutat/zona (Sitges)
  • Número:05 50: Número de l'abonat

Recursos:

Màscara de xarxa

La màscara determina quins bits estan reservats a la xarxa i quins bits a les màquines. La màscara més utilitzada és la màscara:

255.255.255.0

o en format binari:

11111111.11111111.11111111.00000000

Que correspon a la màscara de les adreces IP de classe C.

Les màscares tenen el format de les adreces IP però no tots els valors són possibles.

En format binari, la màscara ha de tenir tots els uns junts i al principi, seguit d'un sèrie de ceros.

Per tant, només són vàlides les màscares que tenen els valors:

255, 254, 252, 248, 240, 224, 192, 128

Per què s'utilitza aquest format? doncs:

  • Els bits de l'esquerre, marcats amb uns (1s) s'utilitzen per indicar la xarxa
  • Els bits de la dreta, marcats amb ceros (0s) s'utilitzen per identificar una màquina dins d'una xarxa concreta

Un representació alternativa de la màscara de xarxa és coneguda com a prefix length, un nombre enter entre 0 i 32 (a IPv4) o 0-128 (IPv6) que identifica el nombre de bits significatius (nombre de uns) de la màscara de xarxa. EL prefixe és el numero que apareix a la dreta després de la barra a la notació CIDR d'una adreça IP.

Exemples

Una escola dividida en aules:

  • Aula 1: Totes les adreces IP comencen per 192.168.201 (màscara 255.255.255.0)

...

  • Aula 4: Totes les adreces IP comencen per 192.168.204 (màscara 255.255.255.0)

La màscara 255.255.255.0:

  • Ens indica que estem a una xarxa de 254 màquines
  • Ens indica quines adreces IP són de la nostra xarxa
  • Hi ha una adreça màxima i una adreça mínima dins de la xarxa

Podeu obtenir tota la informació sobre una (sub)xarxa amb ipcalc:

$ ipcalc 192.168.201.0/255.255.255.0
Address:   192.168.201.0        11000000.10101000.11001100. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.201.0/24     11000000.10101000.11001100. 00000000
HostMin:   192.168.201.1        11000000.10101000.11001100. 00000001
HostMax:   192.168.201.254      11000000.10101000.11001100. 11111110
Broadcast: 192.168.201.255      11000000.10101000.11001100. 11111111
Hosts/Net: 254                   Class C, Private Internet

Per exemple:

 Network(N)/Hosts (H)  NNNNNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH
MÀSCARA : 255.255.255.0 / 11111111.11111111.11111111.00000000
IP xarxa: 192.168.201.x / 11000000.10101000.11001001.00000000 
Màquina1: 192.168.201.1 / 11000000.10101000.11001001.00000001
Màquina2: 192.168.201.2 / 11000000.10101000.11001001.00000010
Màquina3: 192.168.201.3 / 11000000.10101000.11001001.00000011
Màquina4: 192.168.201.4 / 11000000.10101000.11001001.00000100
Màquina5: 192.168.201.5 / 11000000.10101000.11001001.00000101
Màquina6: 192.168.201.6 / 11000000.10101000.11001001.00000110
Màquina7: 192.168.201.7 / 11000000.10101000.11001001.00000111
Màquina8: 192.168.201.8 / 11000000.10101000.11001001.00001000
Màquina9: 192.168.201.9 / 11000000.10101000.11001001.00001001
.............................................................
Màqui252: 192.168.201.250/11000000.10101000.11001001.11111010
Màqui252: 192.168.201.251/11000000.10101000.11001001.11111011
Màqui252: 192.168.201.252/11000000.10101000.11001001.11111100
Màqui252: 192.168.201.253/11000000.10101000.11001001.11111101
Màqui252: 192.168.201.254/11000000.10101000.11001001.11111110
Màqui255: 192.168.201.255/11000000.10101000.11001001.11111111

Adreça de xarxa

Una adreça de xarxa és el conjunt format per una adreça IP (la primera de la xarxa) i la màscara de xarxa que ens indica el rang útil d'adreces IP de la xarxa. En resum l'adreça de xarxa és la primera adreça del rang d'adreces de la xarxa i es reserva per identificar la xarxa sencera.

Exemples:

192.168.187.0/24
205.254.211.192/26
4.20.17.128/255.255.255.248
10.0.0.0/255.0.0.0
12.35.17.112/28. 

Vegeu també l'ordre ipcalc (en negreta a l'exemple):

$ ipcalc 192.168.0.1/24
Address:   192.168.0.1          11000000.10101000.00000000. 00000001
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.0.0/24       11000000.10101000.00000000. 00000000
HostMin:   192.168.0.1          11000000.10101000.00000000. 00000001
HostMax:   192.168.0.254        11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255        11000000.10101000.00000000. 11111111
Hosts/Net: 254                   Class C, Private Internet

Adreça de broadcast

És una adreça que es deriva d'una operació OR entre la host address portion d'una adreça IP i la l'adreça especial de broadcast: 255.255.255.255. En resum la adreça de broadcast és l'última adreça disponible de la xarxa i es reserva per tal de ser utilitzada pel trànsit de broadcast.

Exemples:

192.168.205.255/24
172.18.255.255/16
12.7.149.63/26

Vegeu també l'ordre ipcalc (en negreta a l'exemple):

$ ipcalc 192.168.0.1/24
Address:   192.168.0.1          11000000.10101000.00000000. 00000001
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.0.0/24      11000000.10101000.00000000. 00000000
HostMin:   192.168.0.1          11000000.10101000.00000000. 00000001
HostMax:   192.168.0.254        11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255        11000000.10101000.00000000. 11111111
Hosts/Net: 254                   Class C, Private Internet

Classes IP. Classful Networks

Quan van començar a aparèixer les xarxes d'àrea Local es va crear un pegat per resoldre el problema de les subxarxes. Aquest pegat és el sistema definit al 1981 per el RFC 791, que permetia tres tamanys de xarxa diferents (classes A, B i C):

ClassesIP.jpg

Class Leading
bits
Size of network
number
bit field
Size of rest
bit field
Number
of networks
Addresses
per network
Start address End address
Class A     0     8     24     128 (27)     16,777,216 (224) 0.0.0.0 127.255.255.255
Class B     10     16     16     16,384 (214)     65,536 (216) 128.0.0.0 191.255.255.255
Class C     110     24     8     2,097,152 (221)     256 (28) 192.0.0.0 223.255.255.255
Class D (multicast)     1110     not defined     not defined     not defined     not defined 224.0.0.0 239.255.255.255
Class E (reserved)     1111     not defined     not defined     not defined     not defined 240.0.0.0 255.255.255.255
Class A
  0.  0.  0.  0 = 00000000.00000000.00000000.00000000
127.255.255.255 = 01111111.11111111.11111111.11111111
                  0nnnnnnn.HHHHHHHH.HHHHHHHH.HHHHHHHH

Class B
128.  0.  0.  0 = 10000000.00000000.00000000.00000000
191.255.255.255 = 10111111.11111111.11111111.11111111
                  10nnnnnn.nnnnnnnn.HHHHHHHH.HHHHHHHH

Class C
192.  0.  0.  0 = 11000000.00000000.00000000.00000000
223.255.255.255 = 11011111.11111111.11111111.11111111
                  110nnnnn.nnnnnnnn.nnnnnnnn.HHHHHHHH

Class D
224.  0.  0.  0 = 11100000.00000000.00000000.00000000
239.255.255.255 = 11101111.11111111.11111111.11111111
                  1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

Class E
240.  0.  0.  0 = 11110000.00000000.00000000.00000000
255.255.255.255 = 11111111.11111111.11111111.11111111
                  1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

Amb aquest sistema ja va aparèixer el concepte d'IPS reservades.

Recursos:

Classless Inter-Domain Routing. CIDR

Classless Inter-Domain Routing CIDR és un sistema que es va introduir el 1993 i és l'última especificació de com les adreces IP s'han d'interpretar i per tant és el sistema que s'utilitza actualment (fins que no s'implanti IPv6) i reemplaça el sistema antic (classful networks). Aquest sistema augmenta la flexibilitat en la creació de subxarxes i permet:

  1. Un ús més eficient de les adreces IP
  2. Un sistema més senzill d'establir les rutes

Amb CIDR podem establir subxarxes utilitzant bits previàment reservats a adreces de màquina com a bits de subxarxa. El procés el podem veure en el següent gràfic:

Subnet.gif

Amb aquest sistema, podem conèixer si dues adreces estan a la mateixa subxarxa simplement veient si comparteixen els bits de la mascara de subxarxa (els que estan a 1) són iguals en les dues adreces. Exemple:

CIDR2.jpg

Podem utilitzar l'operació AND binaria:

x 	y 	x AND y
0 	0 	0
0 	1 	0
1 	0 	0
1 	1 	1

Per a partir d'una adreça IP i la seva màscara obtenir l'adreça de xarxa):

Subneting.jpg

L'adreça de broadcast s'obté substituint els 0 de l'adreça de xarxa corresponents a bits de host per 1.

Recursos:

Subnetting-table.png

Adreces Reservades. Xarxes privades

Diferents RFCs defineixen valors d'IP que no es poden utilitzar lliurament ja que estan reservats per a usos concrets.

IPsReservades.jpg

D'aquesta llista els rangs més importants són els reservats a IPs de xarxes LAN privades. Tenim 3 rangs reservats, un per cada clase IP (A,B i C):

IPsPrivades.jpg

Observeu que la de clase B i C tenen menys bits de màscara de xarxa que el que la teoria diu per a la clase B i C. És perqué es reserva 8 bits en la C i 4 en la B per a les subxarxes. D'aquesta manera, una subxarxa, per exemple, 192.168.1.0 és de tipus C i té de máscara 255.255.255.0, però podem tindre 255 subxarxes tipus C dins de la xarxa 192.168.0.0 amb màscara 255.255.0.0

http://cesarcabrera.info/blog/que-diferencia-existe-entre-vlsm-cidr-y-sumarizacion/

Capçalera IP

Capçalera IPv4

La mida màxima és 65535 (2 elevat a la 16 menys 1) (per a IPv4) i està limitada per la mida del camps Total Length (16 bits)

Una capçalera IP té les següents parts:


IPv4 Header Format
Offsets Octet 0 1 2 3
Octet Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 Version IHL DSCP ECN Total Length
4 32 Identification Flags Fragment Offset
8 64 Time To Live Protocol Header Checksum
12 96 Source IP Address
16 128 Destination IP Address
20 160 Options (if IHL > 5)


La mida de la capçalera IP pot variar depenent de la longitud del seu camp d'opcions. Com a mínim ocuparà 5 WORDS (5x32 bits cada paraula) i com a màxim 16 words. Com la mida de les opcions és variable sempre hi ha uns bits anomenats padding que permeten omplir fins arribar a omplir una paraula (és a dir, la capçalera IP sempre serà un múltiple de 32).

  • Version (bits 0-3). Número de versió IP. IPv4 (0100), IPv6 (0110).
  • IHL (Internet Header Length) (bits 4-7). Ens indica en format binari quantes paraules (WORDS=32 bits) té la capçalera IP. Mínim 5.
  • Type of Service, DSCP, ECN (bits 8-15). Camp conflictiu perquè s'ha canviat diferents cops la seva implementació. També conegut com a preferència d'encaminament. Té un format xxxdtrc0. xxx indica una precedència (té sentit en una mateixa xarxa i no a internet). L'últim bit es posa a 0. I dtrc és un dels següents valors:
  • d = delay --> optimitzar el retard.
  • t = throughput --> optimitzar la velocitat eficaç
  • r = realiability --> optimitzar la fiabilitat
  • c = cost --> optimitzar el cost econòmic
  • Total Length (bits 16 - 31). Ens indica la mida del paquet en octets (bytes). D'aquí s'extreu que la mida màxima d'un paquet IP és 65535. La mida mínima és 576 bytes. La mida més utilitzada de paquet actualment és 1500 byte en xarxes Ethernet i en la majoria de connexions a Internet.
  • Identification (bits 32 - 46). S'utilitza per identificar paquets fragmentats i poder reagrupar-los.
  • Flags - bits 47 - 49. S'utilitzen per recuperar paquets fragmentats. El primer bit està reservar i no s'utilitza (valor 0 fixe), el segon bit indica si el paquet està fragmentat(0) o no (1) i el tercer bit indica si aquest és l'últim fragment (0) o hi ha més fragments (1).
  • Fragment Offset - bits 50 - 63. conté el número de fragment.
  • Time to live (bits 64 - 72). Indica quant de temps el paquet haurà de continuar viu o, el que normalment és el mateix, quants salts (hops) li queden de vida. Cada procés o router ha de disminuir en 1 aquest contador i si el paquet arriba a 0 cal eliminar-lo. Evita que un paquet estigui donant voltes per la xarxa indefinidament. Abans de destruir el paquet, la màquina ha d'enviar un paquet ICMP Time exceeded a qui ha enviat el missatge.
  • Protocol (bits 73 - 80). Indica el protocol del següent nivell (TCP, UDP or ICMP, etc.). Els números els assigna Internet Assigned Numbers Authority (IANA) i es poden trobar a la seva pàgina principal
  • Header checksum (bits 81 - 96). Un codi de cheksum per comprovar que no hi ha errors. Observeu que només es comprova que la capçalera sigui correcte, no es comproven les dades!. Es responsabilitat dels protocols superiors comprovar les dades (p.ex. TCP) o no comprovar-les (UDP).
  • Source address (bits 97 - 128). Adreça IP d'origen (32 bits).
  • Destination address (bits 129 - 160). Adreça IP destinació (32 bits).
  • Options (bits 161 - 192 <> 478). És l'únic camp de mida variable. Aquest camp conté opcions però no és opcional i és un dels camps més complexes de la capçalera IP. Conté coses com timestamps, SACK. Comença amb un resum de 8 bits que es fa saber quines opcions utilitzem. Podem trobar un resum de les opcions aquí o la descripció completa a IANA. Les més freqüents són
  • DF: S'utilitza per indicar que no es vol fragmentar el paquet. Util per a Path MTU Discovery
  • Record Route: Els routers afegeixen l'adreça IP de la interfície per encaminar el datagrama.
  • Loose Source Routing: Especifica una llista d'adreces IP de router que ha de travessar el datagrama (pot travessar també altres routers que no siguin a la llista).
  • Strict Source Routing: Adreces IP dels únics routers que pot travessar el datagrama.

Recursos:

IPv6

IPv6 és la versió 6 del Protocol d'Internet (IP), un estàndard de nivell de xarxa que s'encarrega de dirigir i encaminar els paquets commutats. Està dissenyat per a substituir l'actual IPv4, ja que el seu límit en el nombre d'adreces de xarxa disponibles està començant a restringir el creixement d'Internet.

La nova IPv6, permetrà proporcionar als futurs telèfons cel·lulars i mòbils, una direcció fixa i pròpia per a cada un d'ells.

IPv6 és la segona versió del Protocol d'Internet que s'ha adoptat per l'ús general. Va ser definit l'any 1996 per l'IETF a partir del document | RFC 2460. També va existir un IPv5, tot i que no va ser un successor d'IPv4, sinó que va ser un protocol experimental orientat al flux d'streaming que intentava suportar veu, vídeo i so.

Es preveu que caldrà seguir suportant el protocol IPv4 junt amb l'IPv6 durant molt de temps. A més, els nodes (clients o servidors) exclusivament IPv4 no són capaços de comunicar-se directament amb els nodes IPv6 i necessitaran, per tant, utilitzar algun servei intermediari.

Per què IPv6?

El protocol IPv6 està pensat per implementar certes millores però especialment per resoldre els problemes actuals de la versió 4 del protocol IP:

  • Falta de subxarxes lliures: Des de la creació del protocol IP s'han anat creant pegats per resoldre aquest problema, primer es van utilitzar les classes IP i actualment s'utilitza el sistema (Classless Inter-Domain Routing (CIDR).
  • Falta d'adreces IP lliures: també es va inventar el concepte de l'espai d'adreces IP privades ( 10.0.0.0/8, 172.16.0.0/12, i 192.168.0.0/16) que combinat amb Network Address Translation (NAT) permet que múltiples dispositius IP comparteixin una sola adreça IP per tal de connectar-se a Internet.
  • Taules de rutes massa grans: Quan més grans són les taules de rutes més capacitat de memòria i de processament han de suportar els routers d'Internet.

Característiques

Les dividirem en dos parts, les característiques dissenyades per solucionar els problemes de IPv4 i les característiques noves.

Solucions als problemes de IPv4:

  • Adreçament IPv6: Un espai d'adreces de 128 bits dissenyat per que no s'acabi mai.
  • Cada dispositiu podrà tindre la seva pròpia IP enrutable a Internet (el que a IPv4 coneixem com a IP pública). NO hi ha cap necessitat d'utilitzar NAT i a més es desaconsella el seu ús. Amb aquest canvi es retorna als orígens de la xarxa Internet la qual va ser dissenyada amb una arquitectura P2P (Peer To Peer) on tots els dispositius poguessin comunicar-se directament entre ells sense necessitat d'intermediaris.
  • Taules de rutes menys grans. Degut al millor suport geogràfic i a una millor estratègia en l'assignació jeràrquica de rangs de xarxa, el protocol IPv6 genera taules de rutes més petites. [1] [2] [3]

Característiques noves:

Cal destacar també que ja no s'utilitza el protocol ARP i el seu lloc s'instaurà el protocol Neighbor Discovery un protocol de missatges que utilitza ICMPv6

Adreçament IPv6

El canvi més dràstic d'IPv4 respecte d'IPv6 és la longitud de les adreces de xarxa. Les adreces IPv6, definides als RFC: RFC 2373 i RFC 2374, són de 128 bits.

  • IPv4 suporta 4.294.967.296 (232) adreces de xarxa diferents, un número inadequat si a la llarga volem donar una adreça a cada persona del planeta, i menys encara per a cada cotxe, telèfon, PDA, etc.
  • IPv6 suporta 340.282.366.920.938.463.463.374.607.431.768.211.456 (2128 o 340 sextilions) adreces fet que permet assignar prop de de 3,4 × 1020 (340 trilions) adreces per cada polzada quadrada (6,7 × 1017 o 670 mil bilions d'adreces/mm2) de la superfície de la Terra. Aquest nombre pot representar-se també com 1632, amb 32 dígits hexadecimals, cadascun dels quals pot prendre 16 valors possibles.

Nanobots.png

Font: xkcd


En molts casos, les adreces IPv6 estan formades per dues parts lògiques: un prefix de 64 bits i una altra part de 64 bits que correspon a l'identificador de la interfície. Aquest últim acostuma a generar-se automàticament a partir de l'adreça MAC de la interfície a la que es troba assignada l'adreça.


Format de les adreces

Les adreces IPv6 tenen una longitud de 128 bits, i s'escriuen com vuit grups de quatre dígits hexadecimals.

Vegem un exemple d'adreça IPv6 vàlida:

2001:0db8:85a3:08d3:1319:8a2e:0370:7334

Si un grup de quatre dígits és nul (és a dir, pren el valor "0000"), pot ser comprimit utilitzant els caràcters ::. Per exemple,

2001:0db8:85a3:0000:1319:8a2e:0370:7344  

és la mateixa adreça que

2001:0db8:85a3::1319:8a2e:0370:7344

Seguint aquesta regla, si més de dos grups consecutius són nuls, poden comprimir-se com "::". Si l'adreça té més d'una sèrie de grups nuls consecutius, la compressió es por aplicar en més d'un. Així,

2001:0DB8:0000:0000:0000:0000:1428:57ab
2001:0DB8:0000:0000:0000::1428:57ab
2001:0DB8:0:0:0:0:1428:57ab
2001:0DB8:0::0:1428:57ab
2001:0DB8::1428:57ab

són totes vàlides i representen el mateix, però

2001::25de::cade

no és vàlida perquè no queda clar quants grups nuls hi ha a cada costat.

Els zeros inicials en un grup poden ser omesos. Així,

2001:0DB8:02de::0e13

és el mateix que

2001:DB8:2de::e13 

Si l'adreça és una IPv4 camuflada, els últims 32 bits poden escriure's en base decimal; així,

::ffff:192.168.89.9 és el mateix que  
::ffff:c0a8:5909, però no equival a
::192.168.89.9 o bé 
::c0a8:5909. 

El format ::ffff:1.2.3.4 es denomina adreça IPv4 mapejada, i el format ::1.2.3.4 adreça IPv4 compatible.

Les adreces IPv4 poden ser fàcilment transformades al format IPv6. Per exemple, si l'adreça decimal IPv4 és 135.75.43.52 (en hexadecimal, 0x874B2B34), aquesta pot ser convertida a 0000:0000:0000:0000:0000:0000:874B:2B34 o ::874B:2B34. Llavors es pot usar la notació mixta adreça IPv4 compatible, de manera que en aquest cas seria ::135.75.43.52. Aquest tipus d'adreça IPv4 compatible no està essent quasi utilitzada a la pràctica, malgrat que els estàndards no l'han declarat obsoleta.

Els tipus d'adreces IPv6 poden identificar-se prenent en compte els primers bits de cadascuna.

  • /128 – l'adreça amb tot zeros s'utilitza per a indicar l'absència d'adreça, i no s'assigna cap node.
    1/128 – l'adreça de loopback és una adreça que pot usar un node per a enviar-se paquets a si mateix (correspon amb 127.0.0.1 de IPv4). No pot assignar-se a cap interfície física.
  • ::/96 – L'adreça IPv4 compatible s'utilitza com un mecanisme de transició en les xarxes duals IPv4/IPv6. És un mecanisme obsolet.
  • ::ffff:0:0/96 – L'adreça IPv4 mapejada és utilitzada com un mecanisme de transició en terminals duals.
  • fe80::/10 – El prefix d' enllaç local (< anglès link local) especifica que l'adreça només és vàlida a l'enllaç físic local.
  • fec0::/10 – El prefix d'emplaçament local (< anglès site-local prefix) especifica que l'adreça només és vàlida dintre d'una organització local. El RFC 3879 el va declarar obsolet, establint que els sistemes futurs no devien implementar cap suport per aquest tipus d'adreça especial.
  • ff00::/8 – El prefix de multicast s'utilitza per a les adreces multicast.

Cal ressaltar que les adreces de difusió (< anglès broadcast) no existeixen en IPv6, tot i que la funcionalitat que ofereixen pot emular-se utilitzant l'adreça multicast FF01::1, denominada tots els nodes (< anglès all nodes)

Tipus d'adreces

Els tipus d'adreces possibles segons el seu àmbit de destinació ( Destination scopes ) són:

  • link-local: Els paquets que tenen una destinació d'aquest tipus han de mantenir-se al enllaç on van ser generats. Aquest tipus de paquets mai han de ser encaminats pels routers. Aquest tipus de Destination Scope s'utilitza per a les interfícies loopback.
  • Unique local (ULA): Són els subtituts de les direccions de xarxa local. No es poden encaminar fora de una xarxa local d'una organització.
  • global: Són els paquets que tenen un àmbit/scope il·limitat i que poden ser encaminats per tot Internet. Una capacitat important de IPv6 és que pot assignar una adreça global a cada Network Interface Cards (NICs).

Com a mínim una NIC té associada una adreça de tipus link-local, però el més comú serà que tingui una adreça Unique local i com a mínim una adreça global. El següent exemple uns mostra un sistema Linux amb els dos tipus de adreces IP:

$ ip address list
...
2: eth0: <broadcast,multicast,up mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:0c:29:c2:52:ff brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fec2:52ff/10 scope link
inet6 3ffe:1200:4260:f:20c:29ff:fec2:52ff/64 scope global

Cada Direcció agregable Global consta de tres parts:

  • Prefix rebut del proveïdor: el prefix assignat a una organització per un proveïdor ha de ser com a mínim de 48 bits (recomanat pel RFC 3177). El prefix assignat a l'organització és part del codi del proveïdor.
  • Lloc: amb un prefix de 48 bits distribuït a una organització per mitjà d'un proveïdor, s'obre la possibilitat per aquesta organització de tenir 65,535 subxarxes (assignant un prefix de 64 bits a cadascuna de les subxarxes). L'organització pot utilitzar els bits 49-64 (16 bits) del prefix rebut per subxarxes.
  • Ordinador: utilitza cada Identificador d'interficie del node. Aquesta part de l'adreça IPv6, que representa els 64 bits de més baix ordre de la direcció, és anomenada Identificador d'Interficie.
A diferencia de IPv4, els hosts tenen el mateix sufix de 64 bits sempre, que és calculat amb la MAC

La següent figura mostra l'exemple del prefix 2001:0410:0110::/48 que és assignat per un proveïdor a una organització. Dins de l'organització el prefix 2001:0410:0110:0002::/64 és habilitat en una subxarxa. Finalment, un node en aquesta subxarxa té la direcció 2001:0410:0110:0002:0200:CBCF:1234:4402.

Ipv6 2.png

IPv6 Address

Unique local address

En IPv6 "l'equivalència" a les adreces privades d'IPv4 són les ULA (http://tools.ietf.org/html/rfc4193), del rang fc00::/7.

La pregunta en tot cas és: per què vols funcionar amb adreces IPv6 internament si no són enrutables i globals a Internet?

IPv6 i Subxarxes

En IPv6 l'única forma acceptable de representar una màscara de xarxa és mitjançant notació CIDR. Encara que les adreces estiguin en format hexadecimal, el valor de la màscara de xarxa es manté com un valor decimal.

En l'apartat de subxarxes dels punts destacats són els següents:

  • De la mateixa manera que succeeix amb IPv4, en IPv6 el nombre de bits posats a 1 en la màscara de xarxa defineix la longitud del prefix de xarxa i la part restant és per al adreçament del node. Això és important per a les IPs, ja que defineix quan els paquets seran enviats al ruteador per defecte o a un node específic en la mateixa subxarxa.
  • En IPv6 se suprimeix el concepte de direcció reservada en un rang de xarxa. A diferència de IPv4 on es reservava la primera (adreça de xarxa) i la darrera (direcció de difusió) d'un rang, en IPv6 no existeixen aquests conceptes.
  • El nombre de bits per al adreçament del node dins d'un prefix de lloc (48 bits) en IPv6 resulta ser tan gran que no cal fer un pla d'adreçament per un lloc utilitzant diferents valors de màscara. Per aquest motiu el càlcul de màscara de xarxa per a cada subxarxa i l'ús de VLSM no són requerits.

Encaminadors IPv6 Routers

Per definició un encaminador és un node que encamina paquets IP que no tenen com a destinació el encaminador en sí sinó una altre màquina. Es diu que els paquets estan en trànsit (de pas) per l'encaminador.

Els encaminadors amb suport per a IPv6 s'ajusten a aquesta definició però a més, els routers IPv6 informen (advertise) regularment a els enllaços (links) als quals estan connectats.

Aquest missatges s'anomenen advertisements i s'envien utilitzant el protocol Internet Control Message Protocol Versió 6 (ICMPv6). El nom d'aquest tipus de missatges és Router Advertisement (RA) i s'envien a l'adreça multicast ff02::1.

Observeu que no s'utilitza broadcast! Això és més eficient i més segur, de fet el concepte de broadcast en IPv6 és pot considerar obsolet ja que de fet el broadcast es considerat un tipus de multicast concret.

Tots els sistemes que formen part d'un enllaç han de formar part del grup multicast ff02::1 i rebran aquests paquets. Per tant per tal de poder ser autoconfigurat cal formar part d'aquest grup multicast.

A més els nodes també poden iniciar el procediment d'autoconfiguració enviant paquets Router Solicitation. La freqüència en que s'envien els missatges RA és sovint de 10 segons o més una quantitat de temps que pot ser considerada massa llarga per a als usuaris finals. Per tal de reduir aquest temps els nodes poden enviar paquets/missatges Router Solicitation (RS) a tots els routers existents a un enllaç per forçar l'enviament de paquets RA.

Els paquets que encara no tenen una IP assignada s'assignen la IP especial "::" (aka unassigned IP que equival a la IP tot zeros). En resposta a aquests paquets els routers han d'enviar automàticament missatges RA que continguin el prefix global que cal utilitzar. Aquest prefix global s'utilitza conjuntament amb el identificador local per crear l'adreça IPv6 global del node.

Tingueu en compte que aquest procediment només es vàlid per a nodes finals de la xarxa i no pas per a routers. Per aquesta raó amb IPv6 els encaminadors s'han de configurar manualment.

Autoconfiguració d'adreces

Hi ha tres possibles formes d'assignar una adreça IPv6 a un dispositiu:

  • Configuració manual: de forma similar al que succeïa amb IPv4 podem assignar adreces IP de forma manual ja sigui utilitzant ordres de la línia d'ordres (ifconfig, ip, netsh) o utilitzant eines gràfiques de configuració de la xarxa.
  • Configuració automàtica:
  • Autoconfiguració sense estat: el propi protocol IPv6 implementa un servei d'autoconfiguració.
  • Autoconfiguració amb estat: S'utilitza el protocol DHCPv6 per autoconfigurar els dispositius de la xarxa. Aquest tipus de serveis requereixen d'un servidor el qual guarda l'estat de la configuració de la xarxa i per això es diu que aquesta configuració és amb estat (en anglès stateful).

Recursos:

Autoconfiguració sense estat

L'autoconfiguració sense estat ( Stateless address autoconfiguration) és un concepte nou a IPv6 que proporciona una alternativa a mig camí entre la configuració manual i l'autoconfiguració amb sistemes stateful com DHCPv6. La seva principal virtut és la seva facilitat ja que l'autoconfiguració es realitza sense necessitat de cap mena de servidor.

Anem a veure quin és el procediment per autoassignar adreces IP segons el tipus d'adreça

Adreces locals

Com sabeu una adreça IPv6 té 128 bits i es divideix en dos parts:

  • Subnet prefix: Part de l'adreça IP que representa la xarxa a la qual la interfície de xarxa està connectada.
  • Local identifier: és la part que identifica de forma unívoca aquella NIC dins de la xarxa (aka token).

En el cas de les adreces locals els prefix de subxarxa és sempre de 64 bits (la meitat dels bits de l'adreça IP) i té un valor predeterminat i estandaritzat.

En el cas de les targetes de xarxa Ethernet el identificador local normalment es calcula a partir de la adreça EUI-48 Media Access Control (Adreça MAC)

Si la configuració manual d'adreces IP ja es prou feixuga, imagineu la configuració manual de les adreces IPv6! Es per aquesta raó que durant la fase d'inicialització de les targetes de xarxa IPv6 el sistema assigna automàticament una adreça de tipus link-local a la interfície de xarxa.

El protocol per a crear l'adreça link-local és el següent:

  • Es genera un identificador local únic (els últims 64 bits ja que els primers 64 venen fixats per a totes les adreces IPv6). S'acostuma a utilitzar el procediment de transformació EUI-48-to-EUI-64 que permet transformat una MAC de 48 bits en una porció de 64 bits d'una adreça IPv6.
  • S'afegeix el prefix predeterminat per a les adreces locals (0xFFFE) per tal d'obtenir una adreça IPv6
  • Es comprovar la unicitat de la nova adreça IPv6 (s'engega el procés anomenat Duplicate Address Detection/DAD )
  • Si l'adreça és única aleshores s'assigna a la interfície. Si no és així aleshores es requereix d'una intervenció manual.

El mètode més comú per a calcular el identificador local és utilitzar l'adreça MAC les quals són de 48 bits de longitud. Com que l'espai disponible per a l'identificador local és de 64 bits el que es fa és afegir sempre els 16 bits següents:

0xFFFE

que podeu veure estan en format hexadecimal. Així per exemple la MAC:

00:0C:29:C2:52:FF

es converteix a:

00:0C:29:FF:FE:C2:52:FF

és a dir l'adreça IPv6:

000C:29FF:FEC2:52FF

Després, es necessari (RFC 3513), invertir el bit universal (u bit) en la septima posició del primer octet:

020c:29ff:fec2:52ff
Universal uniqueness of IEEE 802 and EUI-64 is given by a "u" bit set to 0. This global uniqueness is assured by  
IEEE, which delivers those addresses for the entire planet. Inverting the "u" bit allows ignoring it for short  
values in the manual configuration case, as explained in paragraph 2.5.1 of RFC 3513 [4].

Un cop és té l'identificador local només cal afegir-li el prefix:

fe80::/64

Que és el prefix reservat per a les adreces locals. L'adreça IP resultant és doncs:

fe80::20c:29ff:fec2:52ff
Observeu la eliminació dels zeros al davant

Aquesta adreça és assignada originalment com a a adreça "tentative" ja que fins que no sigui confirmada la seva unicitat no serà assignada definitivament a la interfície.

La probabilitat de que hi hagi dos interfícies de xarxa amb la mateixa IP és molt baixa però no nul·la ja que alguns proveïdors han reconegut errors a l'hora d'assignar adreces MAC a les interfícies de xarxa

Per detectar si la IP està duplicada s'inicia la fase Duplicate Address Detection (DAD). El sistema envia paquets ICMPv6 que contenen missatges de tipus Neighbor Solicitation on les adreces del paquet són:

  • Adreça origen: "::"
  • Adreça destinació: és la adreça que s'esta intentant comprovar si està

S'espera no obtenir cap resposta fet que aleshores indica que la adreça IPv6 no s'està utilitzant localment. Si hi ha alguna resposta aleshores l'adreça no es pot assignar a la interfície i s'atura el procés d'assignació automàtica (cal resoldre el problema manualment).

Adreces globals i prefixes globals

Per tal de que la interfície de xarxa es pugui comunicar a nivell d'Internet (nivell global) i no només a nivell local, aleshores cal assignar a la interfície una adreça IPv6 que tingui un prefix global.

Generalment els prefixos globals són assignats pels administradors de xarxa d'una entitat o empresa. per els ISP o directament pels registradors regionals (p. ex. el RIPE a Europa).

Es força comú que el prefix global assignat sigui de 64 bits. Sovint (tot i que no necessàriament) és segueix el mateix procediment que amb les adreces locals per tal de calcular el identificador local, és a dir s'obté l'identificador local transformant la MAC de 48 bits a una porció d'adreça IPv6 (procediment EUI-48-to-EUI-64).

Cal tenir en compte que també s'executarà el procediment DAD per tal de verificar la unicitat de l'adreça IP assignada.

Els routers IPv6, sense necessitat de cap sistema extra (com DHCP) poden autoconfigurar els nodes d'una xarxa utilitzant missatges ICMPv6.

Random Identifiers

Permeten augmentar la privacitat.

The EUI-48-to-EUI-64 transform process is attractive because it is simple to implement. However, it generates a privacy problem. Global unicast as well as link-local addresses may be built with an identifier derived from the MAC address. A Website tracking where a node frequently attaches can collect private information such as the time spent by employees in the enterprise or at home.

Because a MAC address follows the interface it is attached to, the identifier of an IPv6 address does not change with the physical location of the Internet connection. Hence it is possible to trace the movements of a portable laptop or Personal Digital Assistant (PDA) or other mobile IPv6 device.

RFC 3041 [5] allows the generation of a random identifier with a limited lifetime. Because IPv6 architecture permits multiple suffixes per interface, a single network interface is assigned two global addresses, one derived from the MAC address and one from a random identifier. A typical policy for use of these two addresses would be to keep the MAC-derived global address for inbound connections and the random address for outbound connections. A reason for not using it for inbound connections is the need to update the DNS just as frequently as it is changes.

Such a system, with two different global addresses—one of which changes regularly—becomes very difficult to trace.

By default, Microsoft enables this feature on Windows XP and Windows Server 2003. The random-identifier-based global addresses of Microsoft systems have the address type "temporary." EUI-64 global addresses have type "public." Those types as well as other information can be displayed in a cmd.exe DOS-box with the command line: netsh interface ipv6 show address

DHCPv6

Consulteu DHCPv6

IPv6 i el Sistema de Noms de Domini (DNS)

Les adreces IPv6 es representen en el Sistema de Noms de Domini (DNS) mitjançant registres AAAA (també anomenats registres de quad-A, per analogia amb els registres A per a IPv4)

El concepte d'AAAA fou una de les dues propostes en el moment en què l'arquitectura IPv6 estava essent dissenyada. L'altra proposta utilitzava registres A6 i altres innovacions com les etiquetes de cadena de bits (bit-string labels) i els registres DNAME.

Mentre la idea d'AAAA és una simple generalització del DNS IPv4, la idea d'A6 fou una revisió i posta a punt del DNS per a ser más genèric, d'aquí la seva complexitat.

El RFC 3363 recomana utilitzar registres AAAA mentre no es provi i estudiï exhaustivament l'ús dels registres A6. El RFC 3364 realitza una comparació de les avantatges i inconvenients de cada tipus de registre.

Transició IPv4 a IPv6

El protocol IPv6 està pensat per a substituir el actual protocol IP versió 4 (IPv4) però aquesta substitució no serà d'un dia per l'altre ni tant sols es realitzarà en un període curt de temps. Es preveu que els protocols IPv6 i IPv4 convisquin durant molt de temps treballant de forma conjunta en un mecanisme que s'anomena arquitectura de doble pila

Existeixen però altres mecanismes que faciliten la transició:

IPv6 i NAT

Amb IPv6 el NAT queda obsolet. IPv6 només planteja les relaciones extrem a extrem, cosa que trenca el NAT.

Recursos

El llibre que la fundació .cat ha traduït al català:

Llibre: http://www.domini.cat/ipv6/

Vídeo curs:

  1a part: http://blip.tv/guifimedia/1-3-ipv6-el-futur-d-internet-5036165
  2a part: http://blip.tv/guifimedia/2-3-ipv6-el-futur-d-internet-5037574
  3a part: http://blip.tv/guifimedia/3-3-ipv6-el-futur-d-internet-5037866

Routers

El procés d'aconseguir que cada màquina d'una xarxa es pugui comunicar amb una altra a Internet s'anomena enrutament. Sense aquest, la màquina estaria limitada només a una xarxa local, definida pel domini de difusió (broadcast). El enrutament permet que el trànsit d'una xarxa busque el camí òptim a una destinació en qualsevol lloc del món, passant eventualment a través de diverses xarxes. Com administradors de xarxes és necessari assegurar que les rutes del sistema estiguen correctament configurats.

Una diferència fonamental entre un host i un router normal, és que un amfitrió mai reenvia un datagrama d'una interfície a una altra, mentre que un router pot reenviar un datagrama.

Avui en dia, la majoria dels sistemes multiusuari es poden configurar per actuar com un router Quan un host pot actuar com un router, en general es diu que l'amfitrió té una funcionalitat de router integrat. Un sistema així que té una funcionalitat de router integrat mai reenvia datagrames fins que es configura per això, és a dir, es configura per actuar com un router.

Capa IP manté una taula d'enrutament que s'utilitza en prendre decisions sobre què fer amb els datagrames rebuts. Quan es reben dades de la xarxa, la capa IP comprova primer la seva adreça IP per veure si l'adreça IP és de la seva pròpia o no.

En cas que l'adreça IP de destinació en el datagrama és del seu propi host, aleshores el datagrama s'envia al protocol adequat en la capa de transport, però si l'adreça de destinació no és de la seva pròpia, es reenvia el datagrama si el host es configura per actuar com un encaminador en cas contrari el datagrama és descartat.

Com funciona l'enrutament?

Les dades en la taula d'enrutament tenen, generalment, la forma d'entrades. Una entrada típica taula d'enrutament conté les entrades principals:

  • Adreça IP de destinació: Aquest camp representa l'adreça IP de la destinació. Aquesta adreça IP pot ser la direcció d'un únic host o que podria ser d'una xarxa. Si l'entrada conté l'adreça IP d'una xarxa, llavors s'identifica amb un valor d'ID de host de 0.
  • Adreça IP del router del següent: Per què hem utilitzat el terme "següent" és perquè aquest no és sempre el router final, podria molt bé ser un encaminador intermedi. Aquesta variable dóna l'adreça IP del següent router que decideix com enviar encara més un gram de dades IP rebuts en la seva interfície.
  • Banderes: Aquest camp proporciona un altre conjunt d'informació vital com l'adreça IP de destinació (especificat a dalt) és una adreça de host o una adreça de xarxa. També, banderes transmetre si el router següent (especificat a dalt) és realment un router següent o una interfície directament.
  • Especificacions de xarxa: Algunes especificacions de la interfície de xarxa que el datagrama ha de passar per la seva posterior transmissió.

Podem veure que, tan aviat com un datagrama d'una xarxa es rep en la capa IP d'un amfitrió (que està configurat per actuar com un router), després de verificar que l'adreça IP de destinació en el paquet no és que d'aquest host, es consulten les taules d'enrutament.

Si el primer camp d'una entrada coincideixi amb l'adreça IP de destinació del tot (un host) o parcialment (una xarxa), el paquet s'envia a la següent destinació que indica la taula.

Els punts següents donen la informació detallada sobre l'algoritme de taula d'enrutament:

  • En primer lloc, a la taula d'enrutament es busca una entrada amb el camp "Adreça IP de destí" que coincideix amb la destinació del datagrama IP complet. Si el troba, el datagrama s'envia a la interfície o al router intermedi.
  • Si no es troba, es fa una recerca de coincidència ID de xarxa. Si el troba, el datagrama s'envia al router indicat. Veiem, doncs, que tots els hosts d'aquesta xarxa són gestionats per aquesta sola entrada a la taula d'enrutament.
  • Si cap dels dos anteriors és cert, llavors el datagrama s'envia un 'router per defecte ".
  • Si el pas anterior falla també és dir que no hi ha router per defecte el datagrama acaba per ser impossible de lliurar. Qualsevol datagrama no es pot lliurar produiria un host inabastable ICMP d'error de xarxa o ICMP inabastable i aquest error es retorna a l'aplicació que va generar aquest datagrama.

De vegades, un es pregunta per què hi ha dos tipus d'entrades de la taula d'enrutament o per ser més precisos perquè les entrades de xarxa es necessiten en un router? Bé, tenir entrades en la taula d'enrutament corresponent a xarxes té un gran avantatge. L'avantatge és que en tenir una entrada relacionada amb una xarxa completa evita la necessitat de tenir un gran nombre d'entrades separades de cada host a la xarxa. Això fa baixar la mida de la taula d'enrutament a un nivell significatiu, que sempre és bo.

Si fem la comanda:

$ ip route show

Tenim un resultat paregut a:

192.168.99.0/24 dev eth0  scope link 
127.0.0.0/8 dev lo  scope link 
default via 192.168.99.254 dev eth0
  • En la priemra entrada diu que per anar a la xarxa 192.168.99.0/24 es pot anar dirèctament per la targeta eth0, ja que aquesta té una direcció en la xarxa i està en el seu domini de difusió.
  • La segona entrada és per a la connexió local.
  • La tercera indica que, si no coneguem la ruta, ha d'anar a la seua porta d'enllaç per defecte.

Configurant l'enrutament en Linux

Es recomana utilitzar iproute2 amb la comanda ip route.

Afegir un nou gateway per defecte

$ sudo ip route add default via 192.168.1.10

Averiguar la informació de rutes guardada en caché

Per fer més ràpides les connexions, el sistema es guarda la porta d'enllaç utilitzada.

Es pot averiguar la caché fent:

$ ip route show cache

Afegir una entrada en la taula d'enrutament

ip route [ add | del | change | append | replace ] destination-address
$ ip route add 192.168.3.0/24 via 192.168.3.10 [dev ifname]

Amb aquest comandament, els paquets que van a la xarxa 192.168.3.0/24 aniran per la direcció 192.168.3.10

Per comprovar si ha funcionat:

$ ip route get 192.168.3.24 

Si volem transformar el nostre linux en un router, tenim que activar el reenviament de paquets:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Si s'ha de quedar per a sempre, podem modificar la configuració en /etc/sysctl.conf

net.ipv4.ip_forward=1

Afegir una ruta estàtica

En /etc/network/interfaces, darrere de la configuració d'una targeta de xarxa:

 post-up ip route change default via 10.20.0.1 dev eth2

Configurar NAT

Cal configurar les IPtables:

# iptables -A FORWARD -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #(on eth0 va a internet)

Fer persistent en ubuntu:

# iptables-save > /etc/iptables/rules.v4
# apt install iptables-persistent

Fer persistent en Alpine

# rc-update add iptables 
# /etc/init.d/iptables save

Exemple pràctic

Imaginem que tenim la següent situació:


---------                       -----------                       -----------     
| Host1 |---[192.168.40.0/22]---| Router1 |---[192.168.36.0/22]---| Gateway |---> Internet
---------                       -----------                       -----------    
                                    |
                           [192.168.44.0/22]
                                    |
                                ---------
                                | Host2 |          
                                ---------

Les IPs dels hosts i routers són:

  • Host1: eth0: 192.168.40.1
  • Host2: eth0: 192.168.44.1
  • Router1: eth2: 192.168.40.100, eth1: 192.168.44.100, eth0: 192.168.36.100
  • Gateway: eth1: 192.168.39.254, eth0: 195.53.25.123

Explicació del les subxarxes:

He suposat que ens proporcionen la xarxa 192.168.0.0/16 i apliquem una màscara de 22 bits per crear 64 possibles subxarxes amb 1022 possibles hosts.

De les 64 subxarxes em quede en les que van de la 9 a la 11 o el que és el mateix, de la 192.168.36.0 a la 192.168.44.0.

xarxa host min hots max màscara
192.168.36.0 192.168.36.1 192.168.39.254 255.255.252.0
192.168.40.0 192.168.40.1 192.168.43.254 255.255.252.0
192.168.44.0 192.168.44.1 192.168.47.254 255.255.252.0

Per als hosts seleccione la primera IP possible de cada xarxa i per als routers la 100. Per al gateway he seleccionat la última possible de la xarxa 192.168.36.0/22, ja que en binari és 11000000.10101000.001001 11.11111110

Amb aquesta configuració, les taules de rutes completes dels routers queden de la següent manera: Router1:

Destí P. enllaç màscara Interfície
default 192.168.39.254 0.0.0.0 eth0
192.168.36.0 0.0.0.0 255.255.252.0 eth0
192.168.40.0 0.0.0.0 255.255.252.0 eth1
192.168.44.0 0.0.0.0 255.255.252.0 eth2

Gateway:

Destí P. enllaç màscara Interfície
default 195.53.25.123 0.0.0.0 eth0
192.168.36.0 0.0.0.0 255.255.252.0 eth1
192.168.40.0 192.168.36.100 255.255.252.0 eth1
192.168.44.0 192.168.36.100 255.255.252.0 eth1

Encara que es pot simplificar amb:

Destí P. enllaç màscara Interfície
default 195.53.25.123 0.0.0.0 eth0
192.168.36.0 0.0.0.0 255.255.252.0 eth1
192.168.0.0 192.168.36.100 255.255.0.0 eth1

De manera que, tant els paquets que va a la 40 com els de la 44 com totes les possibles 64 subxarxes que poden anar a partir del router van a passar per el mateix router. Observem el canvi en la màscara.

Suposant que tant el Router1 com el Gateway són dos Linux, aquests serien els comandaments: Router1:

# cat << 'EOF'  > /etc/network/interfaces
> auto eth0
> iface eth0 inet static
> address 192.168.36.100
> netmask 255.255.252.0
> gateway 192.168.39.254
> 
> auto eth1
> iface eth1 inet static
> address 192.168.40.100
> netmask 255.255.252.0
> 
> auto eth2
> iface eth2 inet static
> address 192.168.44.100
> netmask 255.255.252.0
> EOF
# sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
# reboot

Gateway:

# cat << 'EOF'  > /etc/network/interfaces
> auto eth0
> iface eth0 inet dhcp
>
> auto eth1
> iface eth1 inet static
> address 192.168.39.254
> netmask 255.255.252.0
> post-up route add -net 192.168.40.0 netmask 255.255.252.0 gw 192.168.39.100 dev eth1
> post-up route add -net 192.168.44.0 netmask 255.255.252.0 gw 192.168.39.100 dev eth1
> EOF 
# sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
# iptables -A FORWARD -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables-save > /etc/iptables/rules.v4
# apt install iptables-persistent
# reboot

DNS

Mireu DNS

Enllaços

Cal mirar també Configuració de la xarxa en Linux

Molts del contiguts d'aquesta pàgina estan trets de [4]