3

Introducción

DIRECCIONAMIENTO IP Y CONFIGURACIÓN DE TABLAS DE ENRUTAMIENTO
El proceso de lograr que cada máquina de una red se encuentre enlazada o unida a Internet se le denomina enrutamiento. Sin éste, la máquina estaría limitada sólo a una red física. El enrutamiento permite al tráfico de una red buscar el camino óptimo a un destino en cualquier lugar del mundo, pasando por supuesto a través de varias redes. Como administradores de redes es necesario asegurar que las rutas del sistema estén correctamente configuradas. El enrutamiento se encuentra ubicado dentro de la capa de red en el modelo ISO/OSI ó en la capa de Internet en el modelo TCP/IP. Estas capas se encargan de las conexiones entre máquinas a través del protocolo IP. El enrutamiento puede ser realizado por los hosts (localmente) y especialmente por los enrutadores (routers) en redes externas. El direccionamiento IP se refiere a la asignación de un identificador único a un dispositivo que esté enlazado a la red. En esta práctica se estudiará como asignar direcciones IP y como configurar los enrutadores, para que máquinas ubicadas en redes físicas diferentes puedan comunicarse. Esto se logra mediante el enrutamiento estático y mediante el enrutamiento dinámico utilizando el protocolo OSPF.

Direcciones y Redes
Todos los destinos en una red poseen un único identificador que permite a otras máquinas enviar información. Este identificador es llamado usualmente dirección. En algunas tecnologías una dirección identifica una máquina en particular, mientras que en otras, como en el protocolo IP, una dirección identifica un punto de unión a la red, comúnmente llamado interfaz. Una máquina puede tener múltiples interfaces, teniendo una dirección IP por cada una de ellas, las interfaces son por lo general conexiones físicas distintas, pero también pueden ser conexiones lógicas compartiendo una misma interfaz.

Estructura De Una Dirección IP
Las direcciones IP poseen 32 bits de longitud y están divididas en cuatro octetos (8 bits). Una dirección IP puede ser escrita en varias formas: binaria, decimal y hexadecimal. Para escribir una dirección IP en decimal se convierte cada octeto a decimal y se separaran por un punto. Así 10101100 00011101 00100000 01000010

-------------------------------------------------------------------------------------------------------------------------------------ESLARED 99 Práctica 3 – Direccionamiento IP

3-1

se puede escribir como

172.29.32.66

esta forma es llamada “dotted quat”. 0xAC1D2042.

La dirección, también puede ser escrita en forma hexadecimal:

Una dirección IP consiste de dos niveles jerárquicos, los cuales son: el identificador de red, netid, y el identificador de máquina, hostid, Fig. 3-1. En el protocolo IP el identificador de red representa un número de máquinas que pueden comunicarse entre ellas a través de la capa dos del modelo de referencia OSI. El identificador de máquina representa el número de la máquina dentro de la red. La dirección IP identifica la máquina de forma única en toda Internet. Las direcciones y rangos de los números IP son asignados por un organismo central en los EEUU para evitar su duplicación.

Números de Red y Máscaras
La división del número de red y de máquina es distinta para cada red. Esto facilita al software de enrutadores y máquinas identificar con facilidad dónde ocurre la división. Cada dirección tiene una máscara de red asociada, la cual es representada por un número de 32 bits, donde todos los bits de la porción de red están en 1 y todos los bits de la porción de máquina están en 0. Por ejemplo: 11111111 11111111 00000000 00000000 Los primero 16 bits están asociados al número de red y los 16 restantes al número de la máquina dentro de la red. Una computadora puede extraer el número de red de una dirección IP realizando una operación lógica AND de la máscara con la dirección IP. Las máscaras de redes permiten tener 1 discontinuos, pero esta práctica ha sido eliminada pues tiende a confundir a las personas. Al igual que las direcciones IP, las máscaras se representan con dotted quat, hexadecimal y una notación adicional llamada dirección base/conteo de bit. Ver la tabla 1. Ejemplo la red 192.168.10.0/23. Fig. 3-1.

Formato Terminal ip máscara - Formato cuenta de bit Terminal ip máscara - Formato decimal Terminal ip máscara – Formato hexadecimal

Visualización de formato 192.168.2.0/23 192.168.2.0 255.255.254.0 192.168.2.0 0xFFFFFE00

Tabla 1. Visualización de Formatos de Máscaras

netid

hostid

192.168.10.0 = 11000000 10101000 00001010 00000000 192.168.11.0 = 11000000 10101000 00001011 00000000 255.255.254.0 = 11111111 11111111 11111110 00000000
Fig. 3-1. Dos direcciones con un prefijo común de 23 bit.

-------------------------------------------------------------------------------------------------------------------------------------ESLARED 99 Práctica 3 – Direccionamiento IP

3-2

Clases de dirección IP
Antes que las máscaras fueran generalizadas, existieron las clases de red, con máscaras implícitas asociadas a éstas. Sin embargo esto se fue haciendo obsoleto debido a la generalización de la arquitectura classless de la cual hablaremos más adelante. Los diseñadores de red no previnieron una red del tamaño de Internet; pensaron que solo necesitarían soportar unas cuantas redes gigantescas (como corporaciones de computadoras, universidades y centros de investigación), un mediano número de redes de tamaño moderado y muchas redes pequeñas. Por esta razón se crearon solo tres tipos de red: clase A para grandes redes, clase B para redes medianas y clase C para redes pequeñas. Se pensó además en hacer los procesos de decisión de enrutamiento fáciles, y codificaron las clases mediante los primeros bits de la dirección IP. Ver Fig. 3-2. Las redes clase A, utilizan el primer octeto (byte) para referirse al número de red. El primer bit comienza en 0. El rango de direcciones para estas redes está entre el 1.x.x.x y el 126.x.x.x y se pueden asignar direcciones hasta 16194277 hosts. La dirección 127.x.x.x está reservada para designar la interfaz local. Las redes clase B, emplean los dos primeros octetos para referirse al número de red. Los dos primeros bits son 10. El rango de direcciones para estas redes está comprendido entre el 128.1.x.x y el 191.254.x.x, pudiéndose asignar direcciones para 64516 hosts. Las redes clase C, usan los tres primeros octetos para referirse al número de red. Los tres primeros bits son 110; y su rango de direcciones de red está comprendido entre el 192.1.1.x y el 223.254.254.x . A esta clase de red se le pueden asignar direcciones a 254 hosts. Originalmente las redes clase D eran definidas como las redes con los tres primeros bits en 111 y fueron reservadas para usos futuros. Desde entonces las investigaciones han provocado cambios en la definición de la clase D, considerándose actualmente como las redes que comiencen con 1110. Estas redes no representan una máquina sino una colección que forma parte de un grupo multicast IP. Comprende las direcciones de red desde la 224.0.0.0 hasta la 239.255.255.255. Las redes clase E, comienzan con sus cinco primeros bits en 11111 y están compuestas por las redes comprendidas desde la 240.0.0.0 hasta la 247.255.255.255. Estas direcciones de red están reservadas para uso futuro y son conocidas como redes “marcianas”. Posiblemente una nueva clase podría ser necesaria, así la definición de clase tipo E podría ser modificada por una clase que comience por 11110 y una nueva clase se definiría ( y se reservaría para uso futuro) comenzando con 11111. Existen además direcciones IP con un significado especial como se muestra en la Fig. 33. Los valores con ceros (0) significan esta red o esta máquina. Los valores con unos (1) representan todas las máquinas en la red indicada. Se descuentan también los octetos compuestos en su totalidad de 0’ y 1´s que se emplean para “Broadcast”. s

-------------------------------------------------------------------------------------------------------------------------------------ESLARED 99 Práctica 3 – Direccionamiento IP

3-3

32 bits

Rango de Direcciones de Host hostid 1.0.0.0 a 127.255.255.255 128.0.0.0 a 191.255.255.255 hostid 192.0.0.0 a 223.255.255.255 224.0.0.0 a 239.255.255.255 240.0.0.0 a 247.255.255.255

0 10 110 1110 11110

netid

netid

hostid

netid

direcciones multicast

Reservadas para el Futuro

Fig. 3-2. Clases de direcciones IP

32 bits

00000000 0 0 ... 00

00000000

00000000
hostid

00000000

Esta maquina*

Una maquina* de esta red

11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
netid

11111111 11111111

11111111 11111111

Broadcast en la red local** Broadcast en una Red distante**

11111111

127
Notas:

Loopback*** Cualquier cosa * Es permitido solo en el arranque del sistema, pero nunca es dirección validad de destino. ** Nunca es dirección válida de origen. ***Nunca debe aparecer en una red.

Fig. 3-3. Direcciones IP especiales Existen además direcciones IP públicas y privadas, en Internet la manera como son asignadas garantiza su unicidad. El organismo encargado de administrar la asignación de números IP es conocido como Internet Registry. Las direcciones IP que son únicas son las conocidas como públicas. Algunas direcciones no son únicas y son utilizadas por corporaciones que no están conectadas a Internet o que requieren de acceso restringido. Para estos casos se hace necesario el uso de direcciones privadas, las cuales son duplicadas en distintas corporaciones pues por lo general están aisladas. La tabla 2 muestra la lista de
-------------------------------------------------------------------------------------------------------------------------------------ESLARED 99 Práctica 3 – Direccionamiento IP
3-4

direcciones IP privadas que pueden ser usadas. Por lo general este tipo de direcciones se encuentran definidas como direcciones marcianas o reservadas. Las redes de este tipo se conectan a Internet generalmente mediante el uso de un servidor proxy1, lo cual introduce complejidad y errores al enrutamiento.

Comienzo 10.0.0.0 172.16.0.0 192.168.0.0

FIN 10.255.255.255 172.31.255.155 192.168.255.255

Notacion Classless 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16

Tabla 2. Direcciones reservadas para espacio de Direcciones IP privadas

Subredes y Superedes
Los diseñadores de IP obtuvieron experiencia con la definición de clases, descubriendo que las clases originales deberían ser menos amplias para ser mas útiles a las nuevas tecnologías de LAN. Por ejemplo, era innecesario asignar una clase tipo C con posibilidad de 65000 máquinas a una red con solo 1.200 conexiones. La solución que desarrollaron fue llamada subred, y fue el primer uso explícito de la máscara. La estructura de las direcciones IP puede ser localmente modificada usando los bits del hostid como bits adicionales para el netid. Esencialmente, la línea de división entre el hostid y netid es desplazada, creando redes adicionales pero reduciendo el número de máquinas que pueden existir en cada red de clase. En resumen la asignación de nuevos bits al netid a una red más grande se le denomina subred. Las subredes permiten descentralizar la administración de direcciones de máquina, es decir un administrador puede delegar subredes a organizaciones pequeñas. Una subred es definida por el cambio de bits de la máscara. Una máscara de subred funciona de igual manera que una máscara de red normal. La diferencia es que una máscara de subred que es usada localmente, para el mundo es considerada como una dirección IP estándar. Una subred posee por lo general un número menos que las máscaras naturales de las redes classfull. En algunos casos se hace necesario agregar al menos un número en la máscara natural de las redes tipo C, creando las llamadas superredes, permitiendo agrupar a un conjunto de redes tipo C, lográndose así definir grupos contiguos de redes tipo C.

CIDR (Classless Inter - Domain Routing)
Con la creación de subredes y superredes, los algoritmos de enrutamiento deberían conocer las redes a través de su número IP y su máscara. En el caso de las subredes resulta tener que agregar mas información para cada subred. Gracias a las superredes se
Servidor Proxy: es una aplicación de puertas de enlace creado originalmente como parte de un sistema corta-fuego (firewall) para proveer seguridad. La conexión de sistemas internos al mundo exterior se realiza a través de un proxy. Los sistemas externos responden a un servidor proxy. -------------------------------------------------------------------------------------------------------------------------------------ESLARED 99 Práctica 3 – Direccionamiento IP
3-5
1

logró agrupar a un conjunto de subredes, facilitando el enrutamiento. Así el asignar varias direcciones tipo C en lugar de una sola tipo B se conservan los números tipo B y se resuelve el problema inmediato de la terminación de espacio para direcciones de este tipo. Sin embargo, esto da origen a un nuevo problema: la información que los enrutadores almacenan e intercambian aumenta dramáticamente. Una técnica conocida como CIDR resuelve el problema. Esta técnica está descrita en detalle en la RFC 1519. Conceptualmente CIDR condensa un grupo de direcciones tipo C contiguas en un solo registro representados por dos datos: dirección de red y conteo de número de bits, en donde la dirección de red es la dirección de red más pequeña del grupo y conteo especifica el número total de direcciones en el grupo. Por ejemplo el par de datos: 192.5.48.0/ 3 se puede utilizar las tres direcciones de red 192.5.48.0, 192.5.49.0 y 192.5.50.0 . En la práctica, CIDR no restringe los números de red sólo a direcciones tipo C, ni utiliza un conteo de números enteros para especificar el tamaño de un grupo. Mas bien requiere que cada grupo de direcciones sea una potencia de dos y utiliza una máscara de bit para identificar el tamaño del grupo. Por ejemplo, supóngase que se tiene asignado un grupo de 2048 direcciones contiguas (8 clases C contiguas), comenzando en la dirección 234.170.168.0. Calculando los valores binarios de las direcciones en dicho rango se tiene: Notación decimal con puntos Equivalencia binaria de 32 bits más baja más alta 234.170.168.0 234.170.175.255 11101010 10101010 10101000 00000000 11101010 10101010 10101111 11111111

CIDR requiere que dos valores especifiquen el rango: la dirección más baja y una máscara de 32 bits. La máscara opera como un estándar de subred al delimitar el fin del prefijo. Para el rango mostrado, la máscara CIDR tiene un grupo de 21 bits comunes, 11111111 11111111 11111000 00000000 que puede ser denotada en notación decimal como 255.255.248.0. La notación en CIDR para el rango trabajado, con su respectiva máscara, será la siguiente: 234.170.168.0 / 21 En lugar de estar limitados a identificadores de red (o “prefijos”) de 8, 16 o 24 bits, CIDR actualmente usa prefijos que van de 13 a 27 bit, (ver tabla 3). De este modo se pueden asignar bloques de direcciones para redes pequeñas de 32 hosts hasta redes con más de 50000 hosts permitiendo la asignación de direcciones que se ajusten a las necesidades específicas de las organizaciones. El CIDR es llamado comúnmente classless routing.

-------------------------------------------------------------------------------------------------------------------------------------ESLARED 99 Práctica 3 – Direccionamiento IP

3-6

Prefijo de bloque CIDR

Porción Equivalente de clase C

Número de direcciones de hosts

/27 /26 /25 /24 /23 /22 /21 /20 /19 /18 /17 /16 /15 /14 /13

un 1/8 de clase C un ¼ de clase C un ½ de clase C 1 clase C 2 clase C 4 clase C 8 clase C 16 clase C 32 clase C 64 clase C 128 clase C 256 clase C (= 1 clase B) 512 clase C 1024 clase C 2048 clase C

32 hosts 64 hosts 128 hosts 256 hosts 512 hosts 1024 hosts 2048 hosts 4096 hosts 8192 hosts 16384 hosts 32768 hosts 65536 hosts 131072 hosts 262144 hosts 524288 hosts

Tabla 3. Prefijos de CIDR

Diferencia Entre Enrutamiento y Protocolos De Enrutamiento
Antes de seguir adelante se debe establecer la diferencia entre enrutamiento y protocolos de enrutamiento. Enrutamiento es el acto de reenviar paquetes basados en la información de las tablas de enrutamiento. Los protocolos de enrutamiento se encargan de intercambiar la información usada para construir las tablas de enrutamiento.

Configuraciones Comunes De Enrutamiento Rutas Mínimas
Una red completamente aislada de otra red TCP/IP requiere solo de rutas mínimas. Las rutas mínimas son creadas por el comando ifconfig al momento de configurar una interfaz. Las rutas mínimas son: la ruta de red local y la ruta para loopback. En linux es necesario crear la interfaz y la ruta. # route –n Kernel IP routing table
Destination 150.185.162.0 127.0.0.0 Gateway 0.0.0.0 0.0.0.0 Genmask Flags U U Metric 0 0 0 Ref Use Iface 0 1 2 lo eth0

255.255.255.128 255.0.0.0

Una entrada es la ruta a la red 150.185.156.0 a través de eth0. La otra entrada es la ruta loopback a localhost establecida cuando lo fue creada. Observe los campos de bandera en cada entrada. Ambas entradas tienen la bandera U (Up), esto indica que la interfaz esta lista para ser usada. Ninguna de las entradas tiene la bandera G (Gateway). Esta bandera indica que un gateway externo esta siendo usado. La bandera G no aparece
-------------------------------------------------------------------------------------------------------------------------------------ESLARED 99 Práctica 3 – Direccionamiento IP
3-7

pues estas rutas son directas a través de interfaces locales y no a través de gateway externos. Observe que sólo tenemos la ruta loopback y la ruta 150.185.156.0. Por lo que mimáquina sólo se podrá comunicar con otras máquinas dentro de la misma red. Esto es fácil de verificar con el comando ping1.
#ping 189.148.1.10 PING 189.148.1.10: 56 data bytes 64 bytes from 189.148.1.10 : icmp_seq=0 ttl= 234 time=110.0 ms 64 bytes from 189.148.1.10 : icmp_seq=1 ttl= 234 time=100.7 ms ^C ---- 189.148.1.10 ping statistics---2 packets transmitted, 2 packet received, 0% packets loss round-trip (ms) min/avg/max = 100/105/110 ms

ping muestra una línea de salida por cada mensaje ICMP de respuesta recibida. Cuando ping es interrumpido muestra un resumen estadístico. Ahora veamos que pasa si intentamos comunicarnos con una máquina fuera de la red. #ping 150.185.128.10 Network is unreachable Este mensaje indica que mimáquina no conoce como enviar paquetes a la red de la maquina 150.185.128.10

Enrutamiento Estático
Una red con un número mínimo de enrutadores puede ser configurada con enrutamiento estático. Para una red con un solo gateway, la mejor opción es el enrutamiento estático. Una tabla de enrutamiento estático es construida manualmente, por el administrador de la red, usando el comando route. Las tablas de enrutamiento estático no se ajustan a los cambios de la red, ellos trabajan mejor cuando las rutas no cambian. Para agregar una ruta se utiliza el comando route. El destino final debe ser conocido. El Linux utiliza el comando route para agregar o borrar entradas manualmente en la tabla de enrutamiento. Por ejemplo, para agregar la ruta 150.185.156.1 a la tabla de enrutamiento en linux se procede como sigue: #route add –host 150.185.156.1 eth0 Esta nueva ruta se agregará a la tabla de enrutamiento: # route –n Kernel IP routing table
Destination
1

Gateway

Genmask

Flags

Metric

Ref Use Iface

Ping, usa un mensaje ICMP para forzar a una máquina remota a reqresar un mensaje de respuesta. Si ambos mensajes llegan significa que se pueden comunicar perfectamente. -------------------------------------------------------------------------------------------------------------------------------------ESLARED 99 Práctica 3 – Direccionamiento IP
3-8

150.185.162.0 150.185.162.1 127.0.0.0

0.0.0.0 0.0.0.0 0.0.0.0

255.255.255.128 255.255.255.128 255.0.0.0

U UH U

0 0 0

0 0 0

2 0 1

eth0 eth0 lo

En la tabla de enrutamiento anterior, se observa que la nueva dirección agregada tine una bandera UH. La U sabemos que signifca que esta lista a ser usada y el H nos indica de que esta ruta pertenece a un host.

Otras redes pueden ser agregadas a la tabla de enrutamiento. Para especificar la ruta exacta que deben seguir, cada ruta se especificará mediante el comando route. Por ejemplo, si se necesita agregar una red (150.185.146.0) con máscara 255.255.255.0 a través de un gateway (150.185.162.1) podemos escribir: #route add –net 150.185.146.0 gw 150.185.162.10 netmask 255.255.255.0 eth1 Visualizando la tabla de enrutamiento observamos: #route –n Kernel IP routing table
Destination 150.185.162.0 150.185.162.1 150.185.146.0 127.0.0.0 Gateway 0.0.0.0 0.0.0.0 150.185.162.1 0.0.0.0 Genmask Flags U UH UG U Metric 0 0 0 0 Ref 0 Use Iface 2 0 0 0 1 eth0 0 0 eth0 eth1 lo

255.255.255.128 255.255.255.128 255.255.255.0 255.0.0.0

Observe que la bandera de la ruta a través del gateway posee una G lo que indica que es un gateway. Esta ruta por omisión se utiliza para enviar todos los paquetes que no pertenecen ni al localhost ni a la red local. Si se tiene una máquina y se desea que todo el tráfico, por defecto, salga a través de un gateway se utilizará una línea como sigue: #route add default gw 150.185.162.1 La salida aparecerá como sigue: Kernel IP routing table
Destination 150.185.162.0 127.0.0.0 0.0.0.0 Gateway 0.0.0.0 0.0.0.0 150.185.162.1 Genmask Flags U U UG Metric 0 0 0 Ref Use 0 0 0 Iface 3 1 0 eth0 lo eth0
3-9

255.255.255.128 255.0.0.0 0.0.0.0

-------------------------------------------------------------------------------------------------------------------------------------ESLARED 99 Práctica 3 – Direccionamiento IP

En esta tabla de enrutamiento podemos observar las rutas mínimas, las rutas por defecto y las rutas por omisión. El enrutador al recibir un paquete, busca la ruta por la cual debe enviarlo, tomando en cuenta primero las rutas mínimas, luego las específicas y de no encontrar el destino en ninguna de estas rutas, lo envía por la ruta por defecto. Para obtener la sintaxis del comando route se puede escribir: route –help. Mayor información al respecto mediante el comando man route.

Enrutamiento Dinámico
Una red con más de una posible ruta al mismo destino podría usar enrutamiento dinámico. Una ruta dinámica es construida por información intercambiada por los protocolos de enrutamiento. Los protocolos son diseñados para distribuir información que dinámicamente ajustan las rutas reflejadas en las condiciones de la red. Los protocolos de enrutamiento manejan complejas situaciones de enrutamiento más rápido de lo que un administrador del sistema podría hacerlo. Los protocolos de enrutamiento no sólo están diseñados para cambiar a una ruta de respaldo cuando la ruta primaria se vuelve inoperante sino que ellos también evalúan y deciden cual es la mejor ruta para un destino. Una red con múltiples caminos a un mismo destino puede utilizar enrutamiento dinámico. Los protocolos de enrutamiento se pueden dividir en dos grupos generales protocolos de enrutamiento interior y exterior, Fig. 3-4.

IGP

IGP

Sistema Autonomo 1

Protocolos EGP conectando Sistemas Autonomos

Sistema Autonomo 2

Fig. 3-4. Protocolos de enrutamiento Dinámico IGP y EGP.

Protocolos entre gateways exteriores - Exterior Gateway Protocol (EGP)
Son utilizados para intercambiar información de enrutamiento entre diferentes sistemas autónomos1 en donde cada enrutador es responsable de la información de su propio
1

Sistema autónomo es un grupo de enrutadores intercambiando información a través de un protocolo de enrutamiento común. Generalmente se le conoce por sus siglas en inglés AS (Autonomous System). Cada sistema autónomo a la vez puede constituirse de un conjunto de hosts y enrutadores -------------------------------------------------------------------------------------------------------------------------------------- 3-10 ESLARED 99 Práctica 3 – Direccionamiento IP

sistema. Como ejemplo de este protocolo podemos citar al BGP (Border Gateway Protocol) y el EGP.

Protocolos entre gateways interiores - Interior Gateway Protocol (IGP)
Son usados para intercambiar información de enrutamiento entre enrutadores dentro de un sistema autónomo. Entre ellos se encuentran: RIP, IGRP, HELLO y OSPF entre otros. Todos lo IGP cumplen la misma función, determinar la ruta optima de destino, para ello utilizan diferentes algoritmos los cuales se pueden definir en dos: • Protocolos de Vector de Distancia y • Protocolos de estado de Enlace. Protocolos de Vector de Distancia: En este protocolo cada enrutador conoce las rutas a las diferentes subredes y la métrica asociada a esa ruta. Cada enrutador envía a sus vecinos información de toda la red, Fig. 3-5. Este protocolo considera que la mejor ruta es aquella que tiene menor métrica. La métrica puede representar el número de saltos o enrutadores intermedios. Periódicamente cada enrutador envía su tabla de rutas a todos sus vecinos. Ellos calculan sus propias tablas con esta información y con los datos locales. Uno de estos protocolos es el que viene normalmente con el UNIX conocido como RIP (Route Information Protocol). Éste acepta un máximo de 15 saltos; si existe una ruta con más de esta distancia dicho protocolo la considera como inalcanzable. Esto significa, que en un sistema autónomo que tenga una ruta con más de 15 enrutadores no puede usarse RIP.
A G B C A1 B1 C1 G sup H1 H G E I A2 B2 C1 D1 E sup F1 G1 H1 F D

Fig. 3-5. Información intercambiada entre enrutadores en Protocolos de vector a distancia. Protocolos de estado de Enlace: Cada enrutador mantiene un mapa interno de toda la topología de la red y envía información a toda la red acerca de cuales son sus vecinos, Fig. 3-6. Periódicamente intercambia mensajes con sus vecinos para asegurarse que sus conexiones están bien. Si falla una conexión, envía un mensaje con el nuevo estado a los vecinos alcanzables quienes lo propagan a los demás. Todos redefinen sus tablas de enrutamiento en base a la nueva información. Como ejemplo de estos protocolos podemos mencionar el OSPF (Open Shortest Path First) el cual escoge como el mejor camino el de costo mínimo, donde el costo se puede definir como tiempo
-------------------------------------------------------------------------------------------------------------------------------------- 3-11 ESLARED 99 Práctica 3 – Direccionamiento IP

de transmisión, número de saltos, etc. En este protocolo cada enrutador mantiene una base de datos que describe la topología completa del sistema autónomo.

A G B C Router 1 A,B,C,G,H H G

D E I Router 2 H,I
Fig. 3-6. Intercambio de información en protocolo de Estado de Enlace

Router 3 I,D,E,F

F

En la tabla 4 se muestra una comparación entre los protocolos de enrutamiento interior más utilizados:
Protocolo Tipo Tiempo de Convergencia Consumo Ancho de Banda Consumo de Recursos Soporte de Múltiples caminos Escalabilidad Propietario Enrutamiento no IP RIP Vector Distancia Lento Alto Bajo No No No No OSPF Estado Enlace Rápido Bajo Alto Sí Sí No No IGRP Vector Distancia Lento Alto Bajo No Sí Sí No EIGRP Vector Distancia Rápido Bajo Bajo Sí Sí Sí Sí

Tabla 4. Cuadro comparativo de los protocolos mas usados

OSPF (Open Shortest Path First)
OSPF es un protocolo de estado de enlace y de dominio publico, definido en el RFC 2178. OSPF comparte información acerca de sus vecinos a una red entera, es decir solo con su sistema autónomo. El trabajo de OSPF no es informar a todos los sistemas autónomos de Internet, su trabajo es construir las rutas dentro de un sistema autónomo. OSPF refina esta tarea definiendo una jerarquía de áreas de enrutamiento dentro de un sistema autónomo y estas son: Áreas Una área es una colección arbitraria de interconexión de redes, maquinas y enrutadores. El intercambio de información de rutas entre áreas se realiza a través del enrutador de borde de área.
-------------------------------------------------------------------------------------------------------------------------------------- 3-12 ESLARED 99 Práctica 3 – Direccionamiento IP

Backbone Es una área esencial que interconecta todas las áreas dentro de un sistema autónomo. Todas las áreas deben estar conectadas al backbone porque éste es el responsable de distribuir la información de rutas a todas las demás. Stub Area Un área stub posee solo un enrutador de borde de área, lo cual significa que solo existe una ruta para salir del área. Los sistemas autónomos grandes deben ser divididos en áreas. Esto es debido a la gran cantidad de datos que deben ser almacenados en una base de datos del estado de enlace y el tiempo que puede tomar el calcular las rutas de esta base de datos. Los enrutadores OSPF construyen un gráfico directo de la red utilizando el algoritmo Djijkstra Shortest Path First (SPF). Un gráfico directo es un mapa de la red con perspectiva del enrutador, que es la raíz del gráfico. El gráfico es construido a partir de la base de datos del estado de enlace, la cual incluye información acerca de todos los enrutadores de la red y de todos los vecinos de estos enrutadores. La información de las bases de datos del estado de enlace es conocida y distribuida a través del envío de paquetes OSPF Hello a los enrutadores vecinos; al llegar este tipo de paquete al enrutador vecino, éste coloca al enrutador que envió el paquete OSPF Hello como vecino. Los enrutadores OSPF reconocen sus vecinos gracias al flujo de Link-State Advertisiment (LSA) el cual contiene la información de costo de cada uno de sus vecinos. Los LSA son enviados periódicamente a los enrutadores vecinos. Al llegar a ellos, éstos comparan y descartan las entradas duplicadas y guardan el LSA recibido. Los enrutadores OSPF observan sus vecinos mediante el envío de paquetes Hello, cuando un enrutador no recibe paquetes de un vecino asume que está caído. Sus vecinos actualizan sus LSA y los fluyen a través de la red. El nuevo LSA se incluye en la base de datos de estado de enlace y recalcula el mapa. En redes grandes este cálculo hace ineficiente el protocolo de enrutamiento. Es por esta razón que se divide el sistema autónomo en áreas. Cada área es autónoma; el conocimiento de la topología de un área se mantiene oculto para las otras áreas. Así, varios grupos dentro de una localidad dada pueden cooperar en el uso de OSPF para enrutar, lo que permite, que cada grupo conserve la capacidad de cambiar su topología de red interna de manera independiente. Otra característica de eficiencia del OSPF es el permitir un enrutador designado el cual está dentro de la red unido a todos los otros enrutadores con sus vecinos. Debe tomarse en cuenta que los otros enrutadores sólo tiene de vecino al enrutador designado. Esto ayuda a reducir el tamaño de la base de datos de enlace de estado y a reducir el proceso de recalculación del mapa. El OSPF puede mantener más de un camino a un destino único; esta característica es usada por medio de balance de carga a través de múltiples enlaces de red. Además el OSPF provee autentificación para asegurar que la actualización de la base de dato se realice por un enrutador válido y no sean modificadas inescrupulosamente.
-------------------------------------------------------------------------------------------------------------------------------------- 3-13 ESLARED 99 Práctica 3 – Direccionamiento IP

Backbone Router

Backbone

IGP

Internal Router

Sistema Autonomo 1 Protocolos EGP conectando Sistemas Autonomos

Sistema Autonomo 2

Areas

Fig. 3-7. Relación entre AS, backbone y áreas en OSPF GATED - Gateway Routing Protocol Gateway Routing Protocol es una aplicación que provee gran variedad de protocolos de enrutamiento. Las características del gated son las siguientes: • Puede ejecutar varios protocolos al mismo tiempo. El gated aprende de los diferentes protocolos y escoge la mejor ruta. • Las rutas aprendidas a través de los protocolos de enrutamiento interior pueden ser anunciadas a través de protocolos de enrutamieno exterior, lo cual permite ajustar el cambio. • Aplica políticas para el control de rutas aceptadas y rechazadas • Todos los protocolos son configurados a través de un archivo (/etc/gated.conf) usando una sintaxis consistente. • El gated es constantemente actualizado. • El gated, además de usar la métrica para seleccionar la mejor ruta a cada protocolo, usa su propio valor de preferencia para las rutas de un protocolo. Las preferencias por defecto son mostradas en la tabla 5 y pueden ser configuradas en el archivo de gated.conf.

Tipo de Ruta Ruta Directa OSPF Internamente generada por defecto Redireccionamiento ICMP Rutas Estáticas Protocolo HELLO

Preferencia por defecto 0 10 20 30 60 90

-------------------------------------------------------------------------------------------------------------------------------------- 3-14 ESLARED 99 Práctica 3 – Direccionamiento IP

RIP Rutas OSPF ASE BGP EGP

100 150 170 200

Tabla 5. Preferencia del Gated.

Configuración del gated.
El gated se encuentra disponible en http://www.gated.org. En donde existe información de cómo instalarlo y configurarlo. El gated se configura mediante el uso del archivo de configuración gated.conf, el cual se encuentra, en Linux, por omisión en el directorio /etc. Este archivo debe contener secciones que deben mantener el siguiente orden: opciones, interfaces, definiciones, protocolos, rutas estáticas, control y agregación. Un sumario de los comando de configuración del gated se muestra en la tabla 6. Comando %directory %include traceoptions options interfaces autonomoussystem routeid martians snmp rip hello isis kernel ospf redirect egp bgp icmp static import export aggregate generate Tipo Directive Directive Trace Option Interface Definition Definition Protocol Protocol Protocol Protocol Protocol Protocol Protocol Protocol Protocol Protocol Protocol Static Control Control Agregate Agregate Función Ubica el directorio para incluir archivos. Incluye un archivo dentro del gated.conf. Especifica cuáles eventos son remontados. Define opciones gated. Define opciones de interface. Define el número AS. Define la ruta originaria para BGP u OSPF. Define direcciones de destino inválidas Habilita información para SNMP. Habilita RIP. Habilita el protocolo Hello Habilita el protocolo ISIS Configura las opciones del Kernel Interface. Habilita el protocolo OSPF. Remueve rutas instaladas por ICMP Habilita EGP Habilita BGP Configura el procesamiento general de paquetes ICMP Define rutas estáticas. Importa Rutas de otros ASE Exporta Rutas a Otros ASE Agrega Rutas Genera Rutas

Tabla 6. Sumario de comandos en el gated. Ejemplo de un archivo de configuración de gated.conf: #Intefaz Section interfaces {

-------------------------------------------------------------------------------------------------------------------------------------- 3-15 ESLARED 99 Práctica 3 – Direccionamiento IP

interface 150.185.1.2 passive ; }; ospf yes { # activando el protocolo OSPF monauthkey "marxjhony"; #Clave de autentificacion para monitoreo OSPF backbone { authtype simple ; #Activa la autentificacion networks { # redes que se encuentran dentro del area 150.185.1.xx mask 255.255.255.224 ; 150.185.1.xx mask 255.255.255.224 ; }; interface all { priority 1 ; # Eleccion de enrutador designado authkey "marx" ;# clave para autentificacion }; }; }; export proto ospfase { # expote para sistemas autonomos exteriores }; A continuación una breve explicación de las directivas que componen este archivo: área Cada enrutador OSPF debe ser configurado dentro de al menos una área OSPF. Si más de una área v a ser configurada, al menos una debería ser backbone. El backbone sólo puede ser configurado usando la palabra backbone, y no puede ser especificado como área 0. La interfaz backbone puede ser un enlace virtual (virtuallink). authtype 0 | 1 | none | simple El OSPF especifica un esquema de autenticación por área. Cada interfaz en el área debe usar el mismo esquema de autenticación, aunque puede usar diferente autenticationkey. Los valores válidos actuales son none (0) para la no autenticación, ó simple (1) para la autenticación mediante password simple. networks

-------------------------------------------------------------------------------------------------------------------------------------- 3-16 ESLARED 99 Práctica 3 – Direccionamiento IP

La lista de redes (networks) describe el alcance de un área. Las entradas en esta lista son redes ó un par de subred-máscara. Interface. Lista de interfaces [ cost costo ] Esta forma de la cláusula de la interfaz es usada para configurar un broadcast (el cual requiere soporte IP multicast) o una interfaz punto a punto. Cada interfaz tiene un costo. El costo de todas las interfaces que un paquete debe cruzar para alcanzar un destino se suma para obtener el costo total a ese destino. El costo por defecto es uno, pero se puede especificar otro valor diferente de cero. priority priority Es un número entre 0 y 255 que especifica la prioridad para convertirse en el enrutador designado en esta interfaz. Cuando dos enrutadores conectados a una red intentan convertirse en enrutador designado, gana el que tenga la mayor prioridad. Un enrutador cuya prioridad sea cero no puede ser elegido para convertirse el enrutador designado. authkey auth_key Es la autenticación en el encabezado OSPF. La llave de autenticación puede ser configurada sobre la base de cada interfaz. Es especificada desde uno hasta ocho dígitos decimales separados por puntos, de uno a ocho cadenas de bytes hexadecimales precedidas por 0x , ó de una a ocho cadenas de caracteres entre comillas. static La declaración static define la rutas estáticas usadas por gated. Una declaración static simple puede especificar cualquier número de rutas. Estas declaraciones ocurren después de la declaración de los protocolos y antes de las declaraciones de control en el archivo gated.conf. Cualquier número de declaraciones static pueden ser especificadas; cada una puede contener cualquier cantidad de definiciones de rutas estáticas. Estas rutas pueden ser sobrepuestas por rutas con mejor valor de preferencia. retain Normalmente gated remueve todas las rutas excepto las rutas de las interfaces de la tabla de enrutamiento del kernel durante un apagado condescendiente. La opción retain puede ser usada para prevenir que ciertas rutas estáticas sean removidas. Es útil para asegurarse que algún enrutamiento exista en caso de que el gated no esté corriendo. Todos los enrutadores de borde de área deben formar parte del área backbone. Cuándo esto no se cumple, se deben crear enlaces virtuales o virtuallinks. Para utilizarlos se utiliza la siguiente directiva en el archivo gated.conf : virtuallink neighborid router_id transitarea area Los enlaces virtuales son utilizados para establecer o incrementar la conectividad del área backbone. El neighborid es el router_id del otro extremo del enlace virtual. El área de tránsito especificada debe estar también configurada en este sistema.

-------------------------------------------------------------------------------------------------------------------------------------- 3-17 ESLARED 99 Práctica 3 – Direccionamiento IP

Herramientas De Bajo Costo
Netstat Provee información muy variada. Es comúnmente usada para visualizar estadísticas detalladas acerca de cada interfaz de red, socket de red y tablas de enrutamiento. Para enrutamiento usaremos las opciones –rn. netstat -rn
Routing Table: Destination Gateway Flags Ref Use Interface

-------------------- -------------------- ----- ----- ------ --------150.185.156.0 224.0.0.0 default 127.0.0.1 150.185.156.1 150.185.156.1 150.185.156.254 127.0.0.1 U U UG UH 3 3 57412 0 eth0 eth0 eth0 lo

0 395819 0 1602041

Ifconfig Provee información básica acerca de las interfaces. Es muy útil para detectar malas direcciones IP, mascaras incorrectas, direcciones broadcast inapropiadas. Se usará, en esta práctica, con las opciones –a.
l0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu ff000000 8232inet 127.0.0.1 netmask

eth0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> 150.185.156.1 netmask fffffe00 broadcast 150.185.157.255

mtu

1500

inet

Traceroute Imprime información acerca de los saltos entre rutas que los paquetes dan cuando van de un sistema a otro sistema remoto. #traceroute 150.185.146.21

-------------------------------------------------------------------------------------------------------------------------------------- 3-18 ESLARED 99 Práctica 3 – Direccionamiento IP

Desarrollo Práctico
En esta práctica el participante aprenderá a configurar una máquina con Linux como enrutador. Se configurará la máquina como un enrutador con dos interfaces de red conectadas a ella, cada una de ellas conectada a una red local de tal manera que las diferentes subredes formadas dentro del laboratorio puedan interactuar entre sí. Se usará enrutamiento estático y dinámico. En la primera parte usted configura los enrutadores con enrutamiento estático, creará en cada enrutador la tabla de enrutamiento respectiva, utilizando el comando route, usted podrá observar el camino que toman los paquetes para ir de una red a otra, con ayuda del comando traceroute. En la segunda parte usted configura los enrutadores haciendo uso de enrutamiento dinámico, a través del protocolo de enrutamiento OSPF y el demonio gated. Usted deberá crear el archivo de configuración del gated, en el cual especificará el área, código de autenticación e interfaces del enrutador.

Primera Parte – Enrutamiento estático
Para lograr el objetivo de esta práctica deben seguirse los siguientes pasos: Configure 4 subredes con la topología que muestra la Fig. 3-8.

Red A PC Router 2 PC Router 1

Red B

PC Router 3

Red C
PC Router 4

Red D

Host Enlace Físico PC Router

Fig. 3.8 . Diagrama de red a Montar en el desarrollo práctico

Nombre red RedA RedB RedC RedD

Notacion Classless 150.185.142.0/26 150.185.142.64/26 150.185.142.128/26 150.185.142.192/26

Default Router PCRouter1 PCRouter2 PCRouter3 PCRouter4

-------------------------------------------------------------------------------------------------------------------------------------- 3-19 ESLARED 99 Práctica 3 – Direccionamiento IP

Router PCRoter1 PCRoter2 PCRoter3 PCRoter4

Red Adyacente RedA RedA RedB RedC

IP Address Eth0 150.185.142.62 150.185.142.61 150.185.142.125 150.185.142.189

Red Adyacente RedC RedB RedD RedD

IP Address Eth1 150.185.142.190 150.185.142.126 150.185.142.254 150.185.142.253

Configuración de los hosts
• Modifique en el archivo /etc/rc.d/rc.inet1 los siguientes campos: IPADDR, NETMASK, NETWORK, BROADCAST, GATEWAY con los datos asignados por el coordinador. • Defina la interfaz a usar para comunicarse con la red a través del comando ifconfig que debe ser incluido dentro del rc.inet1. Su sintaxis es la siguiente: /sbin/ifconfig lo 127.0.0.1 /sbin/ifconfig eth0 <IPADDR> broadcast <BROADCAST> netmask <NETMASK> En donde lo y eth0 son las interfaces para la máquina local (loopback) y para la red ethernet respectivamente. • NOTA: Las modificaciones mostradas arriba pueden hacerse en forma automática utilizando el comando netconfig. Responda las preguntas que se le hagan y se generará automáticamente el archivo /etc/rc.d/rc.inet1 • Dentro de ese mismo archivo asegúrese de que existan las siguientes rutas: • A la máquina local. (127.0.0.0) • A la red que pertenece. • Al enrutador por omisión. Si estas no existieran, entonces defínalas. Esto se logra escribiendo dentro del archivo rc.inet1 la siguiente instrucción /sbin/route add <opciones> <dirección> <interfaz> donde <opciones> varía según si es una red, un enrutador o una máquina en particular, <dirección> es la dirección IP de la máquina o red a la cual se desea conectar e <interfaz> es la interfaz de salida para llegar al destino deseado. Para una mejor compresión de la sintaxis de este comando se recomienda ejecutar man ifconfig. Luego de hacer dichas modificaciones ejecute /etc/rc.d/rc.inet1 para actualizar los cambios realizados en él. Compruebe la conectividad entre las máquinas de su propia subred utilizando el comando ping <dir IP del la máquina a verificar>.

-------------------------------------------------------------------------------------------------------------------------------------- 3-20 ESLARED 99 Práctica 3 – Direccionamiento IP

Configuración de los enrutadores para enrutamiento estático
Escoja alguna de sus máquinas para que ejecute la labor de enrutamiento, asegúrese que las máquinas posean el mismo número de tarjetas de red que las redes a enrutar. Si hay dos redes conectadas a un enrutador éste debe contener dos tarjetas de red. Los PC router 2 y 4 deberán tener dos tarjetas. Las IRQ’ y las direcciones de base de dichas s tarjetas deben de ser diferentes. Compile el kernel con la opción IP FORWARDING e IP ALIASING activada e instale la nueva imagen del kernel. • Declare la configuración de las tarjetas en el archivo /etc/lilo.conf, para los PC Router 2 y 4 insertando en él las siguientes líneas: append=”ether=IRQ1,dirección de base1,interfaz1 ether=IRQ2,dirección de base2,interfaz2” Por ejemplo : append=”ether=10,0x300,eth0 ether=3,0x340,eth1” . Esto le indica al sistema que la interfaz eth0 va a ser utilizada por una tarjeta que está en la interrupción 10 y que usará la dirección de base 0x300 y que la interfaz eth1 va a ser utilizada por una tarjeta con una interrupción 3 y con dirección de base 0x340. Luego ejecute el comando lilo1 para que guarde la configuración y reinicie la máquina. Observe los mensajes que aparecen durante la carga del sistema y asegúrese que las tarjetas fueron reconocidas correctamente. • Configuración de las interfaces del enrutador: coloque dentro del archivo /etc/rc.d/ rc.inet1 las siguientes líneas, las cuales corresponden a la declaración de las interfaces con las cuales va a ser visto el enrutador por las diferentes redes con las cuales tiene relación. /sbin/ifconfig interfaz1 <NETMASK> /sbin/ifconfig interfaz2 <NETMASK> <IPADDR> <IPADDR> broadcast broadcast <BROADCAST> <BROADCAST> netmask netmask

Luego de hacer dichas modificaciones ejecute dentro del directorio /etc/rc.d el archivo rc.inet1 para actualizar los cambios realizados en él. Verifique la existencia de las interfaces asignadas mediante el comando ifconfig, este debería mostrar en pantalla las interfaces utilizadas, su estado, su dirección IP, la interrupción y la dirección base utilizada por cada una de ellas así como unas estadísticas de transmisión y de recepción de paquetes.
1

lilo: es una herramienta llamada linux loader, que permite establecer configuraciones al arranque de la máquina como por ejemplo arrancar con diferentes sistemas operativos, dar especificaciones acerca de discos duros, tarjetas de red, etc.

-------------------------------------------------------------------------------------------------------------------------------------- 3-21 ESLARED 99 Práctica 3 – Direccionamiento IP

• Una vez hecho esto proceda a editar el archivo /etc/rc.d/rc.inet1 y añada en él las siguientes líneas: /sbin/route add -net <dir IP red 1> <interfaz 1> /sbin/route add -net <dir IP red 2> <interfaz 2> Ejemplo : /sbin/route add -net 150.185.176.0 eth0 /sbin/route add –net 150.185.134.0 eth1 Esta línea le indica al enrutador que utilice la interfaz eth0 para dirigir los paquetes que van a la red 150.185.176.0 y la interfaz eth1 para dirigir los paquetes que van a la red 150.185.134.0. Luego de hacer dichas modificaciones ejecute dentro del directorio /etc/rc.d el archivo rc.inet1 para actualizar los cambios realizados en él. Visualice la tabla de enrutamientto mediante el comando : route -n ó nestat -rn. Ahí verá las rutas que esta usando el enrutador en este momento. • Compruebe el funcionamiento del enrutador ejecutando, desde una máquina de su subred, el comando siguiente: traceroute -n <dir IP máquina remota> y mostrará el camino recorrido por un paquete desde la máquina local hasta la máquina remota. Para una mejor comprensión de la sintaxis del comando traceroute recomendamos ejecutar man traceroute. • Interrumpa la conexión entre dos subredes y comprueba la conectividad entre las demás subredes, habrá maquinas inalcanzables. Discuta el por qué de esta situación con sus compañeros.

Segunda Parte – Enrutamiento dinámico Configuración de los enrutadores para enrutamiento dinámico
• Ahora la topología de las subredes creadas anteriormente será cubierta dentro de una área, cuyo concepto fue visto anteriormente y para el enrutamiento dinámico se usará el demonio llamado gated.

-------------------------------------------------------------------------------------------------------------------------------------- 3-22 ESLARED 99 Práctica 3 – Direccionamiento IP

Red A PC Router 2 PC Router 1
Red C

Red B

PC Router 3

PC Router 4

Red D

Host Enlace Físico PC Router

• Modifique el archivo /etc/gated.conf de acuerdo a la configuración de su subred. Utilice el siguiente ejemplo como guía: # Public Release 3 # # $Id: ospf,v 1.2 1997/07/17 22:39:31 chopps Exp $ # rip no; ospf yes { backbone { authtype simple ; networks { 150.185.143.0 150.185.137.0 150.185.142.0 mask 255.255.255.0 ; mask 255.255.255.128 ; mask 255.255.255.0;

150.185.137.128 mask 255.255.255.128; }; interface all { priority 1 ;

-------------------------------------------------------------------------------------------------------------------------------------- 3-23 ESLARED 99 Práctica 3 – Direccionamiento IP

authkey "marx" ; }; }; }; export proto ospfase { }; #END • Remueva todas las rutas estáticas creadas anteriormente. • Verifique que el archivo /etc/gated.conf no tiene errores mediante el comando: /etc/gdc checkconf • Si existe un error de sintaxis visualícelo mediante el comando: cat /usr/tmp/gated_parse • Corregido el error ejecute nuevamente el comando /etc/gdc checkconf para verificar que el archivo gated.conf está correcto. • Active el demonio de enrutamiento dinámico mediante el comando: /etc/gdc start • Verifique que el demonio esté activo ejecutando el comando: ps –ax grep gated • Visualice la tabla de enrutamiento mediante el comando: route -n ó nestat -rn. Ahí verá las rutas nuevas que aprendió el enrutador por el OSPF. • Interrumpa la conexión entre dos subredes y verifique la conectividad con los comandos ping y traceroute, vuelva a ver la tabla de enrutamiento. • Discuta con sus compañeros los posibles cambios que encuentre. • Mayor información sobre el uso del comando gdc puede ser visualizada mediante el comando: gdc

-------------------------------------------------------------------------------------------------------------------------------------- 3-24 ESLARED 99 Práctica 3 – Direccionamiento IP