Redes de Comunicaciones en PDF.
Subsecciones
La versión más utilizada de IP (Internet Protocol)
todavía es la 4 (IPv4), la primera versión estable que se
publicó. La versión 5 es experimental y la versión 6 está
sustituyendo progresivamente a la versión 4.
IP utiliza un esquema de red no fiable de datagramas o paquetes
independientes. En particular, en IP no se necesita ninguna
configuración antes de que un equipo intente enviar paquetes a otro
con el que no se había comunicado antes.
Aunque IP define clases de paquetes, no provee ningún mecanismo para
determinar si un paquete alcanza o no su destino, ni verifica la
integridad de los datos transmitidos. Al no garantizar nada sobre la
recepción del paquete, éste podría llegar dañado, en otro orden
con respecto a otros paquetes, duplicado o simplemente no llegar. Si se
necesita fiabilidad, ésta es proporcionada por los protocolos de la
capa de transporte, como TCP.
En v4 verifica la integridad de sus cabeceras (mediante
checksums o sumas de comprobación), pero en v6 ya no.
Los aspectos principales de IP son el direccionamiento y el
encaminamiento. Cada interfaz de red (NIC: Network Interface
Card) se identifica por medio de una dirección IP unívoca.
Además cada NIC está asignado a una subred. La clasificación de
redes estaba definida inicialmente en la propia dirección IP, pero en
1993 IETF definió el sistema CIDR (Classless Inter-Domain
Routing) que estableció la gestión de subredes mediante el uso de
la máscaras de red10.
Una red IP (o una subred) comprende un rango de direccionamiento IP.
Cuando un equipo va a enviar un paquete a otro equipo -identificado por
su dirección IP- comprueba si la dirección del destinatario está
en su misma subred. En caso de ser así emite el mensaje dando por
supuesto que el equipo destinatario será capaz de escucharlo (como
debería ser si la configuración es correcta y el otro equipo está
operativo). Si el equipo destinatario está en otra red diferente a la
del remitente, éste enviará el mensaje a la puerta de enlace
(gateway) que tenga configurada -si la tiene-.
Podemos apreciar que un equipo sin puerta de enlace solo será capaz de
comunicarse con su propia subred, y que la puerta de enlace de un
equipo debe encontrarse en su misma subred.
Las cabeceras IP contienen las direcciones de las máquinas de origen y
destino (direcciones IP), direcciones que serán usadas por los
conmutadores de paquetes (switches) y los encaminadores
(routers) para decidir el tramo de red por el que reenviarán
los paquetes.
La configuración IP (dirección, máscara y pasarela) puede
asignarse de manera estática (especificándose en cada equipo) o
dinámica, mediante DHCP (Dynamic Host Configuration
Protocol). Puede generar confusión el que se suele decir que un
equipo tiene IP fija si siempre tiene la misma dirección IP y que
tiene IP dinámica si su dirección IP varía con el tiempo. Sin
embargo puede asignarse siempre la misma dirección al mismo equipo
dinámicamente por DHCP.
En IPv4 si el paquete a transmitir supera el tamaño máximo negociado
(MTU: Maximum Transmission Unit) en el tramo de red por el que
va a circular, podrá ser dividido en paquetes más pequeños, y
reensamblado luego cuando sea necesario. Estos fragmentos podrán ir
cada uno por un camino diferente dependiendo de la congestión de las
rutas en cada momento. Si uno de los fragmentos se pierde, todo el
paquete original se considerará perdido, y los restantes fragmentos
se descartarán.
Esto puede ocurrir por ejemplo con los protocolos ICMP o UDP, pero no
con el protocolo TCP que adapta su tamaño de paquete para que no deba
ser fragmentado. Para ello al inicio de la comunicación utiliza una
técnica de tanteo enviando paquetes IP con el bit No
fragmentar activado para encontrar el tamaño de MTU
adecuado11.
IP no establece un MTU máximo, pero sí establece un MTU mínimo de
576 bytes para v4 y 1280 bytes para v6 que no permite fragmentación
(solo en origen)12.
Una dirección IP es un número que identifica de manera lógica y
jerárquica a una interfaz de red (NIC). IPv4 utiliza un
direccionamiento de 4 bytes que permite aproximadamente 4.295 millones
de direcciones (232), un número inadecuado para dar
una dirección a cada persona del planeta, y mucho menos para cada
coche, teléfono, PDA o tostadora, lo que obliga a usar
direccionamientos privados y NAT; mientras que el direccionamiento de
16 bytes de IPv6 soporta aproximadamente 340 sextillones de direcciones
(2128) -aproximadamente 670 mil billones de
direcciones por cada mm2 de la superficie de La Tierra-.
En IPv4 las direcciones de 4 bytes (32 bits) se escriben en formato
decimal punteado, es decir, 4 números decimales separados por puntos,
representando cada uno 8 bits. Por tanto cada número debe estar en el
rango [0-255].
Por ejemplo: 127.0.0.1.
Dado que no puede haber dos interfaces con la misma dirección IP,
dichas direcciones las otorgan organismos y entidades especialmente
designadas, que delegan dicha autoridad jerárquicamente13. De este modo, los ISPs (proveedores de Internet,
Internet Services Provider) disponen de rangos de IP que
pueden otorgar.
Cuando un equipo se conecta a Internet necesita una IP pública ya sea
variable o fija, que le proporciona su ISP.
Existen rangos de direcciones IPv4 que no se utilizan en la red
pública, sino que están reservadas para redes internas
(intranets) cuyos equipos no disponen de
conexión directa a Internet. Al reutilizarse los mismo rangos en
todas las organizaciones todavía se consigue disponer de suficientes
direcciones IP públicas para todos... aunque el límite ya casi se
ha alcanzado14. Al utilizar direccionamiento privado,
si se conecta dicha red privada a Internet, la pasarela obtiene una IP
pública con la se conectan todos los equipos de la red privada
utilizando una técnica llamada NAT (Network Address
Translation).
Los rangos de IP v4 reservados para intranets son:
- 1 rango clase A: 10.x.x.x
- 16 rangos clase B: 172.16.x-172.31.x
- 256 rangos clase C: 192.168.0.x-192.168.255.x
- 1 rango clase B para enlace local15: 169.254.x.x
Originalmente existían cinco clases de direcciones IP, indicadas por
el primer 0 de los 4 primeros bits, pero solo se utilizan las tres
primeras:
- Clase A: 7 bits de red || 24 bits de equipo
(host), indicada por un 0 en el primer bit de dirección
IP
0xxx xxxx.||xxxx xxxx.xxxx xxxx.xxxx xxxx
(0.0.0.0-127.255.255.255)
- Clase B: 14 bits de red || 16 bits de equipo,
indicada por un 0 en el segundo bit de dirección IP
10xx xxxx.xxxx xxxx.||xxxx xxxx.xxxx xxxx
(128.0.0.0-191.255.255.255)
- Clase C: 21 bits de red || 8 bits de equipo,
indicada por un 0 en el primer bit de dirección IP
110x xxxx.xxxx xxxx.xxxx xxxx.||xxxx xxxx
(192.0.0.0-223.255.255.255)
- Clase D: Multicasting, no utilizable
1110 xxxx.xxxx xxxx.xxxx xxxx.xxxx xxxx (224.0.0.0-239.255.255.255)
- Clase E: Experimental, no utilizable
1111 xxxx.xxxx xxxx.xxxx xxxx.xxxx xxxx (240.0.0.0 - 255.255.255.255)
Como ya se ha dicho, el sistema de clases de red de IP quedó pronto
sobrepasado, por lo que la IETF estableció en 1993 el sistema CIDR
(Classless Inter-Domain Routing) que eliminó el uso de
clases de direcciones IP y estableció la gestión de subredes
mediante el uso de la máscaras de red. En IPv6 el concepto de clases
se ha abandonado definitivamente.
Una máscara de red es un prefijo de n bits de valor
1 que se aplica sobre las
direcciones IP y que se indica /n. Así
en IPv4 una máscara puede tener hasta 32 bits y en IPv6 hasta 128
bits.
Para conocer si dos direcciones IPs se encuentran en la misma subred
basta con realizar una operación binaria AND entre la máscara y
cada dirección; si el resultado es el mismo es que están en la
misma red.
En IPv4 la máscara se puede especificar con la notación CIDR (/n) o
con la misma notación que las direcciones IP.
Para IPv4 se definen tres clases de red básicas basadas en máscaras:
- Clase A: máscara de 8 bits (/8) o 255.0.0.0
- Clase B: máscara de 16 bits (/16) o 255.255.0.0
- Clase C: máscara de 24 bits (/24) o 255.255.255.0
Por ejemplo, dada la dirección IP 192.168.1.4 con máscara de 24 bits
(/24 o 255.255.255.0).
La dirección en binario es: 1100 0000.1010 1000.0000 0001.0000
0100.
La máscara en binario es: 1111 1111.1111 1111.1111 1111.0000
0000.
Realizamos un AND binario entre dirección y máscara para obtener la
red en la que se encuentra dicha dirección:
1100 0000.1010 1000.0000 0001.0000 0100 [192.168.1.4] IP
AND 1111 1111.1111 1111.1111 1111.0000 0000 [255.255.255.0] Máscara
----------------------------------
1100 0000.1010 1000.0000 0001.0000 0000 [192.168.1.0/24] RED
Para indicar la red de la dirección 192.168.1.4 con máscara de 24
bits puede escribirse en el formato CIDR como 192.168.1.0/24 y en el
formato decimal punteado como 192.168.1.0/255.255.255.0.
Es fácil ver por tanto que dada una dirección IP a.b.c.d:
- La red de clase A (/8) estará formada por todas las direcciones
a.x.x.x (red a.0.0.0/8)
- La red de clase B (/16) estará formada por todas las direcciones
a.b.x.x (red a.b.0.0/16)
- La red de clase C (/24) estará formada por todas las direcciones
a.b.c.x (red a.b.c.0/24)
IPv4 contempla una serie de direcciones con significado especial y que
por tanto no pueden utilizarse en interfaces de red normales:
- 127.x.x.x -> loopback (p.e. 127.0.0.1)
- Todos los bits a 0 -> equipo local
- Todos los bits a 1 (255.255.255.255) -> todos los
equipos (difusión, broadcast)
- Todos los bits de equipo a 1 -> todos los equipos de
la red (difusión limitada, multicast)
- Todos los bits de red a 0 -> un equipo de la red
local
Cuando disponemos de redes grandes y complejas, es interesante crear
subredes, lo que facilita su administración.
Para crear subredes modificamos las máscaras de red, incrementando la
cantidad de bits a 1 de la máscara.
El número n de bits a 1 de la máscara nos proporciona la cantidad de
subredes generadas (2n-2) y el número m de bits a
0 el número de equipos permitidos (2m-2).
Se puede comprobar que en realidad se generan 2n
subredes de 2m equipos, pero por las restricciones
de direccionamiento, solo podemos utilizar 2n-2 y
2m-2, ya que no se permiten las direcciones con
todos los bits de red y/o todos los bits de equipo (host) con
el mismo valor (todos a 1 o todos a 0), ya que son direcciones
especiales.
En concreto el octeto 1000 0000 (128) no
se debe utilizar para crear subredes porque generaría dos subredes
que no se deben usar (todo 0 o todo 1 en el bit de red). Del mismo modo
255.255.255.254 es una máscara inútil porque solo permite dos
direcciones que no se pueden usar (todo 0 o todo 1 en el equipo).
Algunas implementaciones (llamadas
subnet-zero) sí utilizan esas
dos subredes (y también la máscara 128), pero no es una
utilización correcta y en redes complejas puede generar problemas
inesperados.
Bits Subred / Equipo |
1 / 7 *
sxxx xxxx |
2 / 6
ssxx xxxx |
3 / 5
sssx xxxx |
4 / 4
ssss xxxx |
5 / 3
ssss sxxx |
6 / 2
ssss ssxx |
7 / 1 *
ssss sssx |
8 / 0 *
ssss ssss |
Subredes / Rango |
2 / 128 *
sxxx xxxx |
4 / 64
ssxx xxxx |
8 / 32
sssx xxxx |
16 / 16
ssss xxxx |
32 / 8
ssss sxxx |
64 / 4
ssss ssxx |
128 / 2 *
ssss sssx |
256 / 1 *
ssss ssss |
Máscara |
128 *
1000 0000 |
192
1100 0000 |
224
1110 0000 |
240
1111 0000 |
248
1111 1000 |
252
1111 1100 |
254 *
1111 1110 |
255 *
1111 1111 |
Rangos efectivos
(utilizables) |
[0]
* Inútil |
[2]
64-128 |
[6]
32-64-96-
128-160-192 |
[14]
16-32-48-
64-80-96-
112-128-144-
160-176-192-
208-224 |
[30]
8-16-24-
32-40-48-
...
200-208-216-
224-232-240 |
[62]
4-8-12-
16-20-24-
...
232-236-240-
244-248 |
[126]
2-4-6-8-
...
250-252
*Inútil en el último octeto de la máscara |
[254]
* Se pasa de una red a 254 redes de clase inferior. |
- En la primera fila vemos los bits de la máscara de red que
dedicamos a crear subredes, marcados con
s, y los bits que dedicamos a
equipos, marcados con x (p.e. en la
tercera columna dedicamos 3 a subredes y 5 a equipos sssx xxxx).
- En la segunda fila vemos el número de subredes creadas
(2s) y el rango de equipos en cada subred
(2x). Recordemos que siempre hay dos subredes y dos
equipos por subred que no son utilizables (todo 0 y todo 1).
- La tercera fila indica el valor decimal de la máscara. Se puede
obtener para cada celda fácilmente sumando al valor de la celda
izquierda con el rango de la celda superior. P.e.: 128 + 64 = 192; 240
+ 8 = 248 ...
- La cuarta fila nos indica los rangos efectivos (utilizables). Por
ejemplo en la columna 3 -máscara 224-, si los rangos son de 32
direcciones y no podemos usar ni el primer rango (todos los bits de red
a 0) ni el último (todos los bits de red a 1), los rangos resultantes
serán 32-64-96-128-160-192.
- Nótese que en ningún caso se utilizan ni la primera ni la
última subred (la que empieza en 0 y la que acaba en 255). La
penúltima columna (máscara 254) no se puede utilizar en el último
octeto (obtendríamos redes inviables de 2 equipos).
Ejemplo 1 con red tipo B:
Rango de direcciones: 172.16.x.x (máscara inicial /16 o
255.255.0.0)
Queremos crear 6 subredes -> Tomamos la máscara
255.255.224.0 (111|0 0000)
Cada subred tiene un rango de direcciones de 32*255 -2 (x xxxx):
[32-64-96-128-160-192]
Rangos de direcciones IP obtenidos:
172.16. 32.1 - 172.16. 63.254 (001|0
0000.0000 0001 - 001|1 1111.1111 1110)
172.16. 64.1 - 172.16. 95.254 (010|0
0000.0000 0001 - 010|1 1111.1111 1110)
172.16. 96.1 - 172.16.127.254 (011|0
0000.0000 0001 - 011|1 1111.1111 1110)
172.16.128.1 - 172.16.159.254 (100|0
0000.0000 0001 - 100|1 1111.1111 1110)
172.16.160.1 - 172.16.191.254 (101|0
0000.0000 0001 - 101|1 1111.1111 1110)
172.16.192.1 - 172.16.223.254 (110|0
0000.0000 0001 - 110|1 1111.1111 1110)
Ejemplo 2 con red tipo A:
Rango de direcciones: 10.x.x.x (máscara inicial /8 o
255.0.0.0)
Queremos crear 2 subredes -> Tomamos la máscara
255.192.0.0 (11|00 0000)
Cada subred tiene un rango de direcciones de 64*255*255 -2 (xx xxxx):
[64-128-192]
Rangos de direcciones IP obtenidos:
10. 64.0.1 - 10.127.255.254 (01|00 0000.0000
0000.0000 0001 - 01|11 1111.1111 1111.1111 1110)
10.128.0.1 - 10.191.255.254 (10|00 0000.0000
0000.0000 0001 - 10|11 1111.1111 1111.1111 1110)
Ejemplo 3 con red tipo B:
Rango de direcciones: 172.18.x.x (máscara inicial /16 o
255.255.0.0)
Queremos crear 14 subredes -> Tomamos la máscara
255.255.240.0 (1111| 0000)
Cada subred tiene un rango de direcciones de 16*255 -2 (xxxx):
[16-32-48-64-80-96-112-128-144-160-176-192-208-224-240]
Rangos de direcciones IP obtenidos:
172.18. 16.1 - 172.18. 31.254 (0001|
0000.0000 0000.0000 0001 - 0001| 1111.1111 1111.1111 1110)
172.18. 32.1 - 172.18. 47.254 (0010|
0000.0000 0000.0000 0001 - 0010| 1111.1111 1111.1111 1110)
172.18. 48.1 - 172.18. 63.254 (0011|
0000.0000 0000.0000 0001 - 0011| 1111.1111 1111.1111 1110)
172.18. 64.1 - 172.18. 79.254 (0100|
0000.0000 0000.0000 0001 - 0100| 1111.1111 1111.1111 1110)
172.18. 80.1 - 172.18. 95.254 (0101|
0000.0000 0000.0000 0001 - 0101| 1111.1111 1111.1111 1110)
172.18. 96.1 - 172.18.111.254 (0110|
0000.0000 0000.0000 0001 - 0110| 1111.1111 1111.1111 1110)
172.18.112.1 - 172.18.127.254 (0111|
0000.0000 0000.0000 0001 - 0111| 1111.1111 1111.1111 1110)
172.18.128.1 - 172.18.143.254 (1000|
0000.0000 0000.0000 0001 - 1000| 1111.1111 1111.1111 1110)
172.18.144.1 - 172.18.159.254 (1001|
0000.0000 0000.0000 0001 - 1001| 1111.1111 1111.1111 1110)
172.18.160.1 - 172.18.175.254 (1010|
0000.0000 0000.0000 0001 - 1010| 1111.1111 1111.1111 1110)
172.18.176.1 - 172.18.191.254 (1011|
0000.0000 0000.0000 0001 - 1011| 1111.1111 1111.1111 1110)
172.18.192.1 - 172.18.207.254 (1100|
0000.0000 0000.0000 0001 - 1100| 1111.1111 1111.1111 1110)
172.18.208.1 - 172.18.223.254 (1101|
0000.0000 0000.0000 0001 - 1101| 1111.1111 1111.1111 1110)
172.18.224.1 - 172.18.239.254 (1110|
0000.0000 0000.0000 0001 - 1110| 1111.1111 1111.1111 1110)
Ejemplo 4 con red tipo C:
Rango de direcciones: 192.168.2.x (máscara inicial /24 o
255.255.255.0)
Queremos crear 6 subredes -> Tomamos la máscara
255.255.224.0 (111|0 0000)
Cada subred tiene un rango de direcciones de 32 -2 (x xxxx):
[32-64-96-128-160-192-224]
ATENCIÓN: Como trabajamos con el último octeto debemos descontar las
direcciones todo 0 y todo 1.
Rangos de direcciones IP obtenidos:
192.168.2. 33 - 192.168.2. 62 (001|0
0000.0000 0000.0000 0001 - 001|1 1111.1111 1111.1111 1110)
192.168.2. 65 - 192.168.2. 94 (010|0
0000.0000 0000.0000 0001 - 010|1 1111.1111 1111.1111 1110)
192.168.2. 97 - 192.168.2.126 (011|0
0000.0000 0000.0000 0001 - 011|1 1111.1111 1111.1111 1110)
192.168.2.128 - 192.168.2.158 (100|0
0000.0000 0000.0000 0001 - 100|1 1111.1111 1111.1111 1110)
192.168.2.161 - 192.168.2.190 (101|0
0000.0000 0000.0000 0001 - 101|1 1111.1111 1111.1111 1110)
192.168.2.193 - 192.168.2.222 (110|0
0000.0000 0000.0000 0001 - 110|1 1111.1111 1111.1111 1110)
Ejemplo 5 con red tipo B:
Rango de direcciones: 172.16.x.x (máscara inicial /16 o
255.255.0.0)
Queremos crear 126 subredes -> Tomamos la máscara
255.255.254.0 (1111 111|0)
Cada subred tiene un rango de direcciones de 2*255 -2 (x):
[2-4-6-8-10-12-...252]
Rangos de direcciones IP obtenidos:
172.16. 2.1 - 172.18. 3.254 (0000
001|0.0000 0000.0000 0001 - 0000 001|1.1111 1111.1111
1110)
172.16. 4.1 - 172.18. 5.254 (0000
010|0.0000 0000.0000 0001 - 0000 010|1.1111 1111.1111
1110)
172.16. 6.1 - 172.18. 7.254 (0000
011|0.0000 0000.0000 0001 - 0000 011|1.1111 1111.1111
1110)
[...]
172.16.248.1 - 172.18.249.254 (1111
100|0.0000 0000.0000 0001 - 1111 100|1.1111 1111.1111
1110)
172.16.250.1 - 172.18.251.254 (1111
101|0.0000 0000.0000 0001 - 1111 101|1.1111 1111.1111
1110)
172.16.252.1 - 172.18.253.254 (1111
110|0.0000 0000.0000 0001 - 1111 110|1.1111 1111.1111
1110)
Ejemplo de mezcla de subredes en una red tipo B:
Para una mayor flexibilidad, a veces se utilizan rangos de subredes
distintos, cuidando que no se solapen.
Dada la complejidad de mantenimiento de este sistema no se recomienda su
uso.
Rango de direcciones: 172.16.x.x (máscara inicial /16 o
255.255.0.0)
Combinando máscaras de 18, 19 y 21 bits podemos obtener 3 subredes de
8 equipos, 3 de 32 y 1 de 64:
/21 (255.255.248.0) 172.16. 8.1 - 172.16. 15.254
/21 (255.255.248.0) 172.16. 16.1 - 172.16. 23.254
/21 (255.255.248.0) 172.16. 24.1 - 172.16. 31.254
/19 (255.255.224.0) 172.16. 32.1 - 172.16. 63.254
/19 (255.255.224.0) 172.16. 64.1 - 172.16. 95.254
/19 (255.255.224.0) 172.16. 96.1 - 172.16.127.254
/18 (255.255.192.0) 172.16.128.1 - 172.16.191.254
0 |
4 |
8 |
16 |
19 31 |
Version |
Hdr. len. |
Type of Service |
Total Length |
Identification |
Flags |
Fragment Offset |
Time To Live |
Protocol |
Header
Checksum |
Source IP
Address |
Destination IP
Address |
Options &
Padding |
- Version: Versión del protocolo: v4.
- Hdr. Len.: Indica la longitud de la cabecera en palabras
de 32 bits y, por tanto, dónde empiezan los datos. Esta longitud es
de 5 palabras (20 Bytes) más el campo
Opciones si existe.
- Type Of Service: tipo de servicio de calidad solicitado
(QoS).
- Total Length: longitud total del datagrama -cabecera y
datos- en bytes.
- Identification: número del datagrama asignado por el
emisor. Los fragmentos de un datagrama tendrán el mismo número de
identificación.
- Flags: 3 bits utilizados para el control de
fragmentación.
- bit 0 - reservado. Debe ser 0.
- bit DF (Dont Fragment) - A 1 significa
no fragmentar.
- bit MF (More Fragments) - 0 indica que es el último o único
fragmento y 1 que hay más fragmentos.
- Fragment Offset (FO): se usa en datagramas fragmentados.
Indica el número de partes de datos de 64 bits contenidas en
fragmentos anteriores. En el primer (o único) fragmento el valor es
cero.
- Time To Live (TTL): indica un tiempo en segundos
-especificado por el protocolo de alto nivel que genera el datagrama-
tras el cual se debe descartar el paquete -timeout del
protocolo superior-. Cada encaminador actualiza el campo restando su
tiempo de proceso. Como los encaminadores tardan menos de un segundo en
procesar un paquete se convierte en una cuenta de saltos.
- Protocol: número oficial del protocolo de alto nivel al
que IP debe entregar los datos.
- Header Checksum: código de control de la
cabecera16. Si no es correcto se desecha el datagrama.
- Source IP Address: dirección IP del equipo emisor.
- Destination IP Address: dirección IP del equipo
receptor.
- Options & Padding (Opciones y relleno): este es un campo
opcional de longitud variable para pruebas de red o depuración. No se
requiere que las implementaciones de IP puedan generar las opciones,
pero sí que puedan procesar los datagramas que contienen opciones
saltando las opciones, gracias a que conocen la longitud de la
cabecera. Esto hace que la longitud de las opciones deba ser múltiplo
de 32bits, utilizándose bits de relleno si es necesario.
IPv6 utiliza un direccionamiento de 16 bytes. Las direcciones se
escriben mediante 8 grupos de 2 bytes cada uno, escritos mediante 4
cifras hexadecimales y separados por el símbolo
:.
En muchas ocasiones las direcciones IPv6 están compuestas por dos
partes lógicas: un prefijo de 8 bytes (16 cifras hexadecimales) y
otra parte de 8 bytes que corresponde al identificador de interfaz. En
el caso de Ethernet este identificador se genera automáticamente a
partir de su dirección MAC -6 bytes-, insertando dos bytes (0xFFFF)
entre los 3 bytes que identifican al fabricante y los otros 3 bytes.
Las direcciones IPv4 pueden ser transformadas fácilmente al formato
IPv6. Por ejemplo, si la dirección decimal IPv4 es 135.75.43.52 (en
hexadecimal, 0x874B2B34), puede ser convertida a
0000:0000:0000:0000:0000:0000:874B:2B34 con máscara de 96 bits, o
::874B:2B34/9617 lo que se conoce como dirección
``IPv4 compatible''.
Se puede utilizar una notación mixta, que siguiendo el ejemplo
quedaría como ::135.75.43.52. Este tipo de dirección IPv4
compatible casi no está siendo utilizada en la práctica, aunque los
estándares no la han declarado obsoleta.
Algunas reglas acerca de la representación de direcciones IPv6 son:
- Los ceros iniciales, como en IPv4, se pueden obviar.
Ejemplo: 2001:0123:0004:00ab:0cde:3403:0001:0063 ->
2001:123:4:ab:cde:3403:1:63
- Los bloques contiguos de ceros se pueden comprimir empleando
::. Esta operación sólo se puede
hacer una vez.
Ejemplo válido: 2001:0:0:0:0:0:0:4 -> 2001::4
Ejemplo no válido: 2001:0:0:0:2:0:0:1 -> 2001::2::1
(debería ser 2001::2:0:0:1 o 2001:0:0:0:2::1)
- Si la dirección es una dirección IPv4
``camuflada'' o
``mapeada'', los últimos 32 bits
pueden escribirse en base decimal; así:
::ffff:192.168.89.9 es lo mismo que
::ffff:c0a8:5909 pero no lo mismo que
::192.168.89.9 (IPv4 compatible) o
::c0a8:5909 (IPv4 compatible)
El formato ::ffff:1.2.3.4 se denomina dirección IPv4 mapeada, y el
formato ::1.2.3.4 dirección IPv4 compatible.
Los tipos de direcciones IPv6 pueden identificarse tomando en cuenta los
primeros bits de cada dirección.
- :: /128 - Dirección indefinida -todo ceros, máscara de 128
bits- se utiliza para indicar la ausencia de dirección, y no se
asigna a ningún nodo.
- ::1 /128 - Dirección de loopback es una dirección
que puede usar un nodo para enviarse paquetes a sí mismo. No puede
asignarse a ninguna interfaz física.
- :: /96 - (La máscara cubre toda la dirección excepto los
últimos 4 bytes) Dirección IPv4 compatible se usa como un mecanismo
de transición en las redes duales IPv4/IPv6. Es un mecanismo
obsoleto.
- ::ffff:0:0 /96 - Dirección IPv4 mapeada es usada como un
mecanismo de transición en redes duales.
- fe80:: /10 - Prefijo de enlace local específica que la
dirección sólo es válida en el enlace físico local.
- fec0:: /10 - Prefijo de emplazamiento local específica que la
dirección sólo es válida dentro de una organización. Declarado
obsoleto (RFC 1918).
- ff00:: /8 - Prefijo de difusión (multicast).
- ff01::1 - Funcionalidad de todos los
nodos (broadcast) utilizando difusión
(multicast).
Al diseñarse IPv6 se realizaron dos propuestas para el sistema de
nombres de dominio, una basada en registros AAAA (quad-A) y
otra basada en registros A6. Mientras que la idea de quad-A es una
simple generalización del DNS IPv4, la idea de A6 es una revisión y
puesta a punto del DNS para ser más genérico incluyendo otras
innovaciones como las etiquetas de cadena de bits (bit-string
labels) y los registros DNAME, de ahí su complejidad.
El RFC 3363 recomienda utilizar registros AAAA mientras se prueba y
estudia exhaustivamente el uso de registros A6. El RFC 3364 realiza una
comparación de las ventajas y desventajas de cada tipo de registro.
0 |
4 |
12 |
32 |
48 |
56 63 |
Vers. |
Traffic Class |
Flow Label |
Payload Length |
Next Header |
Hop Limit |
Source Address
(128 bits) |
Destination
Address
(128 bits) |
El campo Longitud ya no es necesario, ya que la cabecera de IPv6 siempre
tiene 40 bytes. Tampoco se realiza una suma de integridad de la
cabecera.
- Version: Versión del protocolo: v6.
- Traffic Class: Equivale a Type of
Service. Indica la clase de tráfico para la gestión
de QoS.
- Flow Label: Todos los paquetes pertenecientes al mismo
flujo tienen el mismo valor de FL, haciendo que sea reconocible sin
necesidad de estudiar el contenido del paquete. Esto puede ser útil
para QoS, encaminamiento, filtros...
- Payload Length: Longitud de los datos transmitidos del
paquete.
- Next Header: Indica el tipo de cabecera de los datos
transportados.
- Hop Limit: Equivale a Time to Live (TTL). Indica un
número de saltos -especificado por el protocolo de alto nivel que
genera el datagrama- tras el cual se debe descartar el paquete.
- Source IP Address: dirección IP del equipo emisor.
- Destination IP Address: dirección IP del equipo
receptor.
Los protocolos de IPSec se definieron originalmente en las RFCs 1825 y
1829, publicadas en 1995. IPSec es obligatorio en IPv6 y opcional en
IPv4. El objetivo principal de IPSec es proporcionar protección a los
paquetes IP.
IPSec establece comunicaciones IP con seguridad de extremo a extremo, lo
que significa que los nodos intermedios utilizan el protocolo IP, sin
necesidad de una implementación específica para IPSec.
Antes de iniciar el envío de datos, IPSec realiza una autenticación
de los extremos y negocia los parámetros de la comunicación.
Durante la comunicación utiliza ISAKMP (Internet Security
Association and Key Management Protocol) para realizar cambios
dinámicos de las claves.
Para la comunicación IPSec permite utilizar dos protocolos diferentes:
AH (Authentication Header) y ESP (Encapsulation
Security Payload). El protocolo AH permite únicamente verificar la
integridad del paquete (mediante firma). El protocolo ESP permite
cifrar la información (DES, 3DES...) y opcionalmente verificar la
integridad del paquete.
Los protocolos de IPSec actúan en la capa de red, la capa 3 del modelo
OSI. Otros protocolos de seguridad para Internet de uso extendido, como
SSL, TLS y SSH operan en la capa de transporte o por encima (capas OSI
4 a 7). Esto hace que IPSec sea más flexible, ya que puede ser
utilizado para proteger protocolos de la capa 4, incluyendo TCP y UDP,
los protocolos de capa de transporte más usados. Así para que una
aplicación pueda usar IPSec no es necesario modificarla, mientras que
para usar SSL y otros protocolos de niveles superiores sí.
Hay dos modos de operación de IPSec: modo transporte y modo túnel.
- Modo transporte: El modo transporte permite que dos
equipos se comuniquen entre ellos utilizando IPSec igual que
utilizarían IP pero firmando y/o cifrando los datos que se
transfieren (la carga útil del paquete IP). Este sistema añade poca
sobrecarga de bytes y permite a los dispositivos de la red conocer el
origen y el destino del paquete, lo que puede ser necesario para
algunos servicios como QoS.
El sistema de encaminamiento no varía respecto a IP, ya que no se
modifica ni se cifra la cabecera IP; sin embargo, cuando se utiliza
integridad con AH -que firma la cabecera IP-, las direcciones IP no
pueden ser traducidas (p.e. con NAT), ya que eso invalidaría la firma
del paquete (hash). Para encapsular mensajes IPSec a través
de NAT se usa NAT Transversal (NAT-T).
- Modo túnel: En el modo túnel dos equipos establecen
un canal de comunicación por el que otros equipos o procesos envían
información. Es decir el emisor y el receptor originales siguen
enviando y recibiendo sus datos sin cifrar ni firmar mediante las
pasarelas del túnel IPSec (IPSec Proxy), que se encargan de
cifrar y/o firmar todo el paquete IP original que debe ser encapsulado
en un nuevo paquete IP.
El modo túnel se utiliza para comunicaciones red a red (túneles
seguros entre encaminadores, p.e. para VPNs) o comunicaciones ordenador
a red u ordenador a ordenador sobre Internet.
|
Modo Transporte |
Modo Túnel |
Protocolo
ESP |
-- |
Firmado (Opcional) |
|
|
|
|
Cifrado |
|
IP
Header |
ESP
Header |
TCP/UDP
Header |
DATA |
ESP
Trailer |
ESP
Auh |
|
--- |
Firmado
(Opcional) |
|
|
|
Cifrado |
|
New IP
Header |
ESP
Header |
Orig. IP
Header |
TCP/UDP
Header |
DATA |
ESP
Trailer |
ESP
Auh |
|
Protocolo
AH |
Firmado |
IP
Header |
Auth
Header |
TCP/UDP
Header |
DATA |
|
Firmado |
New IP
Header |
Auth
Header |
Orig. IP
Header |
TCP/UDP
Header |
DATA |
|
IPSec no define unos algoritmos específicos de cifrado sino que
mediante ISAKMP permite utilizar IKE (Internet Key Exchange)
para realizar un autonegociado del algoritmo a utilizar y del
intercambio de claves. IKE funciona sobre UDP y aporta escalabilidad y
flexibilidad ya que permite utilizar algoritmos de varios tipos:
- Claves Pre-Compartidas (PSK: Pre-Shared Key). Su mayor
inconveniente es la distribución de la PSK.
- Kerberos.
- Criptografía de clave pública-privada.
- Certificados digitales.
El principal problema de IKE viene de que, aunque es un estándar
abierto, la norma es admite distintas interpretaciones, lo que ha dado
lugar a implementaciones ligeramente incompatibles. Este es uno de los
motivos por el que se están imponiendo las VPNs sobre SSL.
Actualmente está en desarrollo IKE v2.
Notas al pie
- ... red10
- Máscaras de subred de tamaño variable
(VLSM: Variable-Length Subnet Masks).
- ...
adecuado11
- Para facilitar esto, los encaminadores actuales al
recibir un paquete no fragmentable demasiado grande incluyen el MTU en
el mensaje de error.
- ... origen)12
- Nótese que la MTU de IPv6 es menor que la
MTU de Ethernet (1518B), lo que permite que IPv6 se pueda encapsular
sobre Ethernet sin problemas.
- ...'arquicamente13
- La
autoridad superior es la IANA (Internet Assigned Numbers
Authority) que en este momento es la organización ICANN. Después
aparecen por debajo los distintos ISPs (Internet Services
Providers).
- ... alcanzado14
- El principal objetivo de IPv6 es subsanar el
agotamiento de direcciones IP disponibles. Además introduce
optimizaciones en el protocolo.
- ... local15
- Este sistema configura
automáticamente una NIC asignando una IP aleatoria en el rango de
enlace local tras verificar mediante ARP que está disponible. No
configura pasarela ni servidores DNS (por eso enlace
local). Llamado por Microsoft APIPA (Automatic
Private IP Addressing).
- ...
cabecera16
- Se calcula como el complemento a uno de la suma de
los complementos a uno de todas las palabras de 16 bits de la
cabecera.
- ...
::874B:2B34/9617
- Nótese que la máscara cubre los
0s iniciales.
2009-05
2009-05 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los documentos bajo los términos de la licencia
"Reconocimiento-Compartir bajo la misma licencia 3.0 España" de Creative Commons.
Puede ver una copia de esta licencia completa.
|
Redes de Comunicaciones, LAN, WAN, ISO OSI, IP, Ethernet, IEEE 802.11, Wi-Fi, PDH, RDSI, Frame-Relay, xDSL, CATV, VPN, H.323, SIP, Multimedia