Protocolo IP

Funcionalidad

El protocolo IP, como bien es sabido, es el que se emplea a nivel de red, dentro de la arquitectura de protocolos de comunicaciones TCP/IP para la transmisión de paquetes desde un equipo hasta otro, a través de pasarelas y encaminadores. Es el que nos va a permitir asignar direcciones a las distintas interfaces de un equipo y crear la tabla de rutas correspondiente, que será la que se utilice para determinar qué camino han de tomar los paquetes.

A eso se resume la funcionalidad básica del protocolo IP propiamente dicho. No obstante, puesto que hay muchos protocolos que se apoyan en él (RIP, OSPF, BGP, etc.), existen otros aspectos a los que hay que hacer referencia y que necesitan ser explicados más detalladamente. En este caso, como se puede observar a continuación, el único parámetro que ha hecho falta analizar ha sido el modo de envío broadcast de los datagramas IP.

Broadcast

De entre todas las formas en las que el protocolo IP puede enviar un paquete, el modo broadcast es aquel mediante el cuál un paquete enviado por un equipo es distribuido a todos los equipos conectados a esa misma red. Como ya hemos comentado anteriormente, esta opción en sí no es relevante para el funcionamiento del protocolo IP sin embargo, para protocolos de encaminamiento dinámico como RIP, OSPF o BGP, es fundamental, ya que es uno de los mecanismos que utilizan para que un router pueda enviar las rutas que tiene almacenadas al resto de router conectados a la red.

Configuración CIT

Para poder implementar las operaciones anteriores en el router GNU/Linux es necesario averiguar previamente cómo se hacen en CIT, porque nos pueden servir de guía y porque nos van a hacer falta cuando queramos realizar alguna prueba concreta en la que haya un router CIT involucrado.

Interfaces

Agregar dirección

Operación que asigna una dirección IP a una interfaz determinada.

p 4                                                                            


Config> protocol ip                                                              

-- Internet protocol user configuration --                                      
IP config> address <interfaz> <dir_IP> <máscara>

Borrar dirección

Operación que borra la dirección IP asociada a una interfaz concreta.

p 4                                                                            


Config> protocol ip                                                              

-- Internet protocol user configuration --                                      
IP config> no address <interfaz> <dir_IP> <máscara>

Mostrar interfaces

Operación que muestra la información relativa a todas y cada una de las interfaces existentes.

p 4                                                                            


Config> protocol ip                                                              

-- Internet protocol user configuration --                                      
IP config> list addresses

Habilitar broadcast

Con esta opción lo que hacemos es habilitar el envío de direcciones broadcast a través de una interfaz concreta, determinando para ello cómo queremos que se construya la parte de la dirección correspondiente a la máquina (completando con 1’s, que es como vamos a hacerlo nosotros, o completando con 0’s).

p 4                                                                            


Config> protocol ip                                                              

-- Internet protocol user configuration --                                      
IP config> broadcast-address network <interfaz|dir_interfaz> 1

Deshabilitar broadcast

Con esta opción se deshabilita el envío de direcciones broadcast a través de una interfaz concreta.

p 4                                                                            


Config> protocol ip                                                              

-- Internet protocol user configuration --                                      
IP config> no broadcast-address network <interfaz|dir_interfaz> 1

Rutas

Agregar ruta

Operación que inserta una nueva entrada en la tabla de rutas.

p 4                                                                            


Config> protocol ip                                                              

-- Internet protocol user configuration --                                      
IP config> route <dir_destino> <máscara> <dir_sig_salto|interfaz> 

Borrar ruta

Operación que elimina una entrada concreta de la tabla de rutas.

p 4                                                                            


Config> protocol ip                                                              

-- Internet protocol user configuration --                                      
IP config> no route <dir_destino> <máscara> <dir_sig_salto|interfaz> 

Mostrar rutas

Existen dos tipos de rutas que un router puede manejar y almacenar: rutas estáticas y rutas dinámicas. Las rutas estáticas son aquellas que no varían nunca y que fueron creadas en su momento por el administrador de la máquina, mientras que las rutas dinámicas son aquellas que el router aprende de forma automática de otros router, a través de protocolos específicos como RIP, OSPF o BGP.

Para ver únicamente la tabla de rutas estáticas del router, basta con hacer lo siguiente:

p 4                                                                            


Config> protocol ip                                                              

-- Internet protocol user configuration --                                      
IP config> list routes

Ahora bien, si lo que se quiere es ver todas las rutas existentes (estáticas y dinámicas), se debe proceder de la siguiente manera:

p 3                                                                            
Console Operator                                                                
                                                                              
                                                                              
+protocol ip                                                                    
                                                                              
-- IP protocol monitor --                                                       
                                                                              
IP+ dump-routing-table rip

Configuración GNU/Linux

La manera en que se van a realizar las operaciones aquí descritas va a ser a través del servicio Zebra (Quagga), que es el que se encarga de gestionar todo lo relacionado con el protocolo IP. Sin embargo, puesto que el router trabaja con un kernel Linux, se va a mostrar también como podrían llevarse a cabo algunas de estas operaciones desde la consola.

Interfaces

Agregar dirección

Si queremos asignar una dirección IP a una interfaz específica, podemos hacerlo desde la consola de GNU/Linux procediendo de la siguiente forma:

> sudo ifconfig <interfaz> <dir_IP> netmask <máscara>

Y si lo hacemos a través de Zebra, habrá que hacer lo siguiente:

Router> enable
Password: 
Router# configure terminal
Router(config)# interface <interfaz>
Router(config-if)# ip address <dir_IP>|<máscara>

Borrar dirección

Para borrar la dirección IP asociada a una determinada interfaz, sólo podemos hacerlo a través de Zebra ejecutando los siguientes mandatos:

Router> enable
Password: 
Router# configure terminal
Router(config)# interface <interfaz>
Router(config-if)# no ip address <dir_IP>|<máscara>

Mostrar interfaces

Para mostrar la información relativa a todas y cada una de las interfaces existentes, tenemos que ejecutar cualquiera de los siguientes mandatos, si decidimos hacerlo a través de la consola de GNU/Linux:

> ifconfig
> ifconfig <interfaz>

Y si lo hacemos con Zebra, entonces habrá que ejecutar lo siguiente:

Router> show interface  

Rutas

Antes de pasar a comentar en detalle cada una de las operaciones relacionadas con la gestión de la tabla de rutas, es importante recalcar algo muy importante a tener en cuenta. En el caso en el que se decida trabajar desde la consola de GNU/Linux se debe habilitar el reenvío de paquetes, ya que por defecto no está activo (esta funcionalidad es exclusiva de los router y GNU/Linux no es un sistema operativo específico para router).

> sysctl -w net.ipv4.ip_forward=1

En Zebra, en cambio, no es necesario activarlo porque lo hace automáticamente y de forma transparente al usuario. No obstante, como se puede ver en la implementación de los scripts correspondientes al tratamiento de rutas, se activa para evitar posibles situaciones indeseadas.

Agregar ruta

Desde la consola de GNU/Linux, para insertar una nueva entrada en la tabla de rutas, podemos ejecutar uno de los siguientes mandatos:

> sudo route add -net <dir_IP> netmask <máscara> dev <interfaz>
> sudo route add default gw <dir_sig_salto>

Para hacer esto mismo a través de Zebra, se debe hacer lo siguiente:

Router> enable
Password: 
Router# configure terminal
Router(config)# ip route <dir_IP>/<máscara> <dir_sig_salto|interfaz>

Borrar ruta

Si queremos borrar una entrada concreta de la tabla de rutas, desde la consola de GNU/Linux, debemos ejecutar el mandato de los dos siguientes que corresponda:

> sudo route del -net <dir_IP> netmask <máscara> dev <interfaz>
> sudo route del default gw <dir_sig_salto>

Para hacer ésto mismo, pero a través de Zebra:

Router> enable
Password: 
Router# configure terminal
Router(config)# no ip route <dir_IP>/<máscara> <dir_sig_salto|interfaz>

Mostrar rutas

Para mostrar toda la información almacenada en la tabla de rutas, debemos hacer lo siguiente, suponiendo que estemos trabajando desde la consola de GNU/Linux:

> route

Con el siguiente mandato de Zebra podemos ver todas las rutas activas del router, tanto las estáticas como las dinámicas.

Router> show ip route 

Aunque en este último caso, si sólo queremos ver las rutas dinámicas aprendidas por un protocolo como RIP, entonces es recomendable acceder al servicio correspondiente (Ripd) y hacer lo siguiente:

ripd> show ip rip

Pruebas

Para comprobar que el protocolo IP funciona correctamente en el router GNU/Linux, se han preparado dos pruebas de testeo de las funcionalidades básicas. La forma en que se van a describir las pruebas consiste en un diagrama de red, en el que se muestran todos los equipos que participan y la manera en que están interconectados entre sí, y la configuración de cada uno de esos equipos.

Prueba-1: Funcionalidad Básica

Pasamos a detallar equipo por equipo cuáles son los pasos que hay que seguir para configurar cada uno de ellos. En el caso del router GNU/Linux la configuración se hará a través de Zebra, ya que, junto con el resto de componentes que conforman Quagga, resulta ser la base Software sobre la que se va realizar todo el desarrollo del proyecto, así como las futuras ampliaciones.

En el caso de los terminales, la configuración se hará directamente desde la consola GNU/Linux.

EQUIPO_A

  1. Asignamos la dirección IP 192.168.1.1 a la interfaz eth0 del equipo.
  2. Creamos una ruta por defecto al router GNU/Linux.
  3. Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
  > sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0
  > sudo route add default gw 192.168.1.2
  > route
  ==================================================================================
  Tabla de rutas IP del núcleo
  Destino         Pasarela        Genmask         Indic Métric Ref    Uso Interfaz
  192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
  link-local      *               255.255.0.0     U     1000   0        0 eth0
  default         192.168.1.2     0.0.0.0         UG    0      0        0 eth0
  ==================================================================================

Router GNU/Linux

  1. Asignamos la dirección IP 192.168.1.2 a la interfaz eth0 del router.
  2. Asignamos la dirección IP 192.168.2.1 a la interfaz eth1 del router.
  3. Creamos una ruta a la red 192.168.1.0 a través de la interfaz eth0.
  4. Creamos una ruta a la red 192.168.2.0 a través de la interfaz eth1.
  5. Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
  Router> enable
  Password:
  Router# configure terminal
  Router(config)# interface eth0
  Router(config-if)# ip address 192.168.1.2/24
  Router(config-if)# quit
  Router(config)# interface eth1
  Router(config-if)# ip address 192.168.2.1/24
  Router(config-if)# quit
  Router(config)# ip route 192.168.1.0/24 eth0
  Router(config)# ip route 192.168.2.0/24 eth1
  Router(config)# quit
  Router# show ip route

EQUIPO_B

  1. Asignamos la dirección IP 192.168.2.2 a la interfaz eth0 del equipo.
  2. Creamos una ruta por defecto al router GNU/Linux.
  3. Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
  > sudo ifconfig eth0 192.168.2.2 netmask 255.255.255.0
  > sudo route add default gw 192.168.2.1
  > route
  ==================================================================================
  Tabla de rutas IP del núcleo
  Destino         Pasarela        Genmask         Indic Métric Ref    Uso Interfaz
  192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
  link-local      *               255.255.0.0     U     1000   0        0 eth0
  default         192.168.2.1     0.0.0.0         UG    0      0        0 eth0
  ==================================================================================

Por último, si hacemos un ping desde un equipo a otro podemos observar que se lleva a cabo satisfactoriamente.

Prueba-2: Funcionalidad Básica

Pasamos a detallar equipo por equipo cuáles son los pasos que hay que seguir para configurar cada uno de ellos. En el caso del router GNU/Linux la configuración se hará a través de Zebra, ya que, junto con el resto de componentes que conforman Quagga, resulta ser la base Software sobre la que se va realizar todo el desarrollo del proyecto, así como las futuras ampliaciones.

En el caso de los terminales, la configuración se hará directamente desde la consola GNU/Linux.

EQUIPO_A

  1. Asignamos la dirección IP 192.168.1.1 a la interfaz eth0 del equipo.
  2. Creamos una ruta por defecto al router GNU/Linux.
  3. Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
  > sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0
  > sudo route add default gw 192.168.1.2
  > route
  ==================================================================================
  Tabla de rutas IP del núcleo
  Destino         Pasarela        Genmask         Indic Métric Ref    Uso Interfaz
  192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
  link-local      *               255.255.0.0     U     1000   0        0 eth0
  default         192.168.1.2     0.0.0.0         UG    0      0        0 eth0
  ==================================================================================

Router GNU/Linux

  1. Asignamos la dirección IP 192.168.1.2 a la interfaz eth0 del router.
  2. Asignamos la dirección IP 192.168.2.1 a la interfaz eth1 del router.
  3. Creamos una ruta a la red 192.168.1.0 a través de la interfaz eth0.
  4. Creamos una ruta a la red 192.168.2.0 a través de la interfaz eth1.
  5. Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
  Router> enable
  Password:
  Router# configure terminal
  Router(config)# interface eth0
  Router(config-if)# ip address 192.168.1.2/24
  Router(config-if)# quit
  Router(config)# interface eth1
  Router(config-if)# ip address 192.168.2.1/24
  Router(config-if)# quit
  Router(config)# ip route 192.168.1.0/24 eth0
  Router(config)# ip route 192.168.2.0/24 eth1
  Router(config)# quit
  Router# show ip route

Router CIT

  1. Asignamos la dirección IP 192.168.2.2 a la interfaz eth0 del router.
  2. Asignamos la dirección IP 192.168.3.1 a la interfaz eth1 del router.
  3. Creamos una ruta a la red 192.168.2.0 a través de la interfaz eth0.
  4. Creamos una ruta a la red 192.168.3.0 a través de la interfaz eth1.
  5. Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
  p 4                                                                            
  
  
  Config> protocol ip                                                              
  
  -- Internet protocol user configuration --                                      
  IP config> address ethernet0/0 192.168.2.2 255.255.255.0
  IP config> address ethernet0/1 192.168.3.1 255.255.255.0
  IP config> route 192.168.2.0 255.255.255.0 ethernet0/0
  IP config> route 192.168.3.0 255.255.255.0 ethernet0/1
  IP config> list routes

EQUIPO_B

  1. Asignamos la dirección IP 192.168.3.2 a la interfaz eth0 del equipo.
  2. Creamos una ruta por defecto al router GNU/Linux.
  3. Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
  > sudo ifconfig eth0 192.168.3.2 netmask 255.255.255.0
  > sudo route add default gw 192.168.3.1
  > route
  ==================================================================================
  Tabla de rutas IP del núcleo
  Destino         Pasarela        Genmask         Indic Métric Ref    Uso Interfaz
  192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
  link-local      *               255.255.0.0     U     1000   0        0 eth0
  default         192.168.3.1     0.0.0.0         UG    0      0        0 eth0
  ==================================================================================

Del mismo modo que en la prueba anterior, podemos comprobar que un ping desde un equipo a otro se realiza correctamente.

 
proyectos/teldatsi/teldatsi/protocolos_de_comunicaciones/protocolo_ip.txt · Última modificación: 2012/10/08 17:58 (editor externo)
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki