OSPF en Quagga

Quagga

  • Quagga (www.quagga.net) es un software que gestiona la tabla de encaminamiento de una máquina Linux según el funcionamiento de varios protocolos de encaminamiento de la arquitectura TCP/IP.

  • La arquitectura de Quagga está formada por un conjunto de procesos:

    • Proceso zebra: actualiza la tabla de encaminamiento e intercambia rutas según diferentes protocolos de encaminamiento

    • Proceso de cada protocolo de encaminamiento: ripd, opsfd, bgpd

  • Utilizaremos Quagga para probar los protocolos: OSPFv2 y BGP-4.

Quagga

Configuración y monitorización de los procesos de Quagga

  • Configuración a través de los ficheros:

  • Monitorización a través de:

    • capturas de tráfico, utilizando tcpdump con la opción -s 0 que permite capturar los paquetes completos.

    • Shell VTY (Virtual Terminal Interface) :vtysh (págs. [vtysh-begin]–[vtysh-end]) La Shell VTY se comunica con cada uno de los procesos quagga de la máquina y permite configurar los protocolos de encaminamiento y monitorizar su comportamiento.

Ficheros de configuración

daemons

    # Entries are in the format:   <daemon>=(yes|no|priority)
    # ...
    # ...
    # /usr/doc/quagga/README.Debian for details.
    # Daemons are: bgpd quagga ospfd ospf6d ripd ripngd isisd
    zebra=yes
    bgpd=no
    ospfd=yes
    ospf6d=no
    ripd=no
    ripngd=no
    isisd=no

Las líneas que comienzan por # son comentarios.

ospfd.conf

La configuración del fichero ospf.conf en el router r1:

Ejemplo quagga.conf

 ! 
 ! OSPFd sample configuration file
 !
 hostname ospfd
 password zebra

 router ospf
 router-id 12.0.0.1
 network 11.0.0.0/24 area 0.0.0.0
 network 12.0.0.0/24 area 0.0.0.0

Asignamos como ID del router la mayor de sus IPs por las que se activará OSPF:

router-id 12.0.0.1

Se activa OSPF en las interfaces conectadas a estas redes, pertenecientes al área 0: a través de eth0 y eth1 se anunciarán las rutas utilizando OSPF. Hay que especificar a qué área pertenece cada interfaz del router por la que se activa OSPF.

 network 11.0.0.0/24 area 0.0.0.0
 network 12.0.0.0/24 area 0.0.0.0

Las líneas que comienzan por ! son comentarios.

ospfd.conf: interfaces pasivas

La configuración del fichero ospf.conf en el router r1 con una interfaz pasiva:

Ejemplo quagga.conf

! -*- ospf -*-
! 
! OSPFd sample configuration file
!
hostname ospfd
password zebra

router ospf
router-id 13.0.0.1
passive-interface eth2
network 11.0.0.0/24 area 0.0.0.0
network 12.0.0.0/24 area 0.0.0.0
network 13.0.0.0/24 area 0.0.0.0

La interfaz eth2 es pasiva, no se envían mensajes OSPF a través de ella.

Iniciar Quagga

  • Al iniciar un router en NetGUI normalmente el software de quagga no estará arrancado. Para realizar una configuración:

    1. Se editan los ficheros de configuración (págs [conf-begin]–[conf-end]).

    2. Se arranca quagga: /etc/init.d/quagga start

    3. Se realizar la monitorización.

    4. Si es necesario modificar la configuración, se interrumpe la ejecución de quagga (/etc/init.d/quagga stop), se modifican los ficheros, y se vuelve a arrancar quagga (/etc/init.d/quagga start)

  • En algunos escenarios puede que algunos routers estén preconfigurados para que arranquen con quagga ya lanzado.

Monitorización de la configuración: vtysh

    r1:~# vtysh
    Copyright 1996-2005 Kunihiro Ishiguro, et al.

     r1# ?
      clear        Reset functions
      configure    Configuration from vty interface
      copy         Copy from one file to another
      debug        Debugging functions (see also 'undebug')
      disable      Turn off privileged mode command
      end          End current mode and change to enable mode
      exit         Exit current mde an down to previous mode
      list         Print command list
      no           Negate a command or set its defaults
      ping         Send echo messages
      quit         Exit current mode and down to previous mode
      show         Show running system information
      ssh          Open an ssh connection 
      start-shell  Start UNIX shell
      telnet       Open a telnet connection
      terminal     Set terminal line parameters
      traceroute   Trace route to destination
      undebug      Disable debugging functions (see also 'debug')
      write        Write running configuration to memory, network, or terminal
    r1#

Tabla de encaminamiento OSPF

Tabla de encaminamiento OSPF si sólo hay 1 área

  • El comando show ip ospf route muestra la información sobre la tabla de encaminamiento OSPF del router (el ejemplo muestra la configuración del router r1 de la figura):

Tabla OSPF

    r1# show ip ospf route
    ========== OSPF network routing table =========
    N    11.0.0.0/24       [10] area: 0.0.0.0
                          directly attached to eth0
    N    12.0.0.0/24       [10] area: 0.0.0.0
                          directly attached to eth1
    N    13.0.0.0/24       [20] area: 0.0.0.0
                          via 12.0.0.2, eth1
    N    14.0.0.0/24       [30] area: 0.0.0.0
                          via 12.0.0.2, eth1
    ========== OSPF router routing table ==========
    ========== OSPF external routing table ========

Tabla de encaminamiento OSPF si hay varias áreas

  • El comando show ip ospf route muestra información adicional:
    r1#  show ip ospf route
    ============ OSPF network routing table ============
    N    15.0.0.0/24           [10] area: 0.0.0.1
                               directly attached to eth0
    N    16.0.0.0/24           [10] area: 0.0.0.1
                               directly attached to eth2
    N    17.0.0.0/24           [20] area: 0.0.0.1
                               via 16.0.0.5, eth2
    N IA 18.0.0.0/24           [30] area: 0.0.0.1
                               via 16.0.0.5, eth2
    N IA 19.0.0.0/24           [40] area: 0.0.0.1
                               via 16.0.0.5, eth2
    N IA 20.0.0.0/24           [40] area: 0.0.0.1
                               via 16.0.0.5, eth2

    ============ OSPF router routing table =============
    R    18.0.0.4              [20] area: 0.0.0.1, ABR
                               via 16.0.0.5, eth2

    ============ OSPF external routing table ===========
  • ABR: router frontera de área
  • IA: rutas inter-área (de otras áreas)
  • El campo área indica a través de que área ha aprendido un router dicha ruta.
  • Las rutas precedidas por N son rutas hacia una red.
  • Las rutas precedidas por R son rutas hacia un router.

Información de los vecinos OSPF

  • El comando show ip ospf neighbor muestra la información sobre los vecinos que conoce el router (el ejemplo muestra el resultado del comando en el router r2 de la figura):

Tabla de vecinos OSPF

    r2#  show ip ospf neighbor
    Neighbor ID   Pri  State         Dead Time     Address   Interface
    12.0.0.1      1   Full/Backup     00:00:30    12.0.0.1  eth0:12.0.0.2
    14.0.0.3      1   Full/DR         00:00:40    13.0.0.3  eth1:13.0.0.2

Router Link State DB

  • El comando show ip ospf database router muestra la información sobre la base de datos de Router Link States que conoce el router (el ejemplo muestra el resultado del comando en el router r1 de la figura):

    Router Link State DB

    r1#  show ip ospf database router

           OSPF Router with ID (12.0.0.1)

                    Router Link States (Area 0.0.0.0)

      LS age: 1112
      Options: 2
      Flags: 0x0
      LS Type: router-LSA
      Link State ID: 12.0.0.1 
      Advertising Router: 12.0.0.1
      LS Seq Number: 80000004
      Checksum: 0x549d
      Length: 48
       Number of Links: 2

        Link connected to: Stub Network
         (Link ID) Net: 11.0.0.0
         (Link Data) Network Mask: 255.255.255.0
          Number of TOS metrics: 0
           TOS 0 Metric: 10

        Link connected to: a Transit Network
         (Link ID) Designated Router address: 12.0.0.2
         (Link Data) Router Interface address: 12.0.0.1
          Number of TOS metrics: 0
           TOS 0 Metric: 10

      LS age: 1107
      Options: 2
      Flags: 0x0
      LS Type: router-LSA
      Link State ID: 13.0.0.2
      Advertising Router: 13.0.0.2
      LS Seq Number: 80000004
      Checksum: 0x2ab0
      Length: 48
       Number of Links: 2

        Link connected to: a Transit Network
         (Link ID) Designated Router address: 12.0.0.2
         (Link Data) Router Interface address: 12.0.0.2
          Number of TOS metrics: 0
           TOS 0 Metric: 10

        Link connected to: a Transit Network
         (Link ID) Designated Router address: 13.0.0.3
         (Link Data) Router Interface address: 13.0.0.2
          Number of TOS metrics: 0
           TOS 0 Metric: 10

      LS age: 1107
      Options: 2
      Flags: 0x0
      LS Type: router-LSA
      Link State ID: 14.0.0.3 
      Advertising Router: 14.0.0.3
      LS Seq Number: 80000003
      Checksum: 0xd210
      Length: 48
       Number of Links: 2

        Link connected to: a Transit Network
         (Link ID) Designated Router address: 13.0.0.3
         (Link Data) Router Interface address: 13.0.0.3
          Number of TOS metrics: 0
           TOS 0 Metric: 10

        Link connected to: Stub Network
         (Link ID) Net: 14.0.0.0
         (Link Data) Network Mask: 255.255.255.0
          Number of TOS metrics: 0
           TOS 0 Metric: 10

Network Link State DB

  • El comando show ip ospf database network muestra la información sobre la base de datos de Network Link States que conoce el router (el ejemplo muestra el resultado del comando en el router r1 de la figura):

    Network Link State DB

    r1# show ip ospf database network

           OSPF Router with ID (12.0.0.1)

                    Net Link States (Area 0.0.0.0)

      LS age: 112
      Options: 2
      LS Type: network-LSA
      Link State ID: 12.0.0.2 (address of Designated Router)
      Advertising Router: 13.0.0.2
      LS Seq Number: 80000002
      Checksum: 0x5bc8
      Length: 32
      Network Mask: /24
            Attached Router: 12.0.0.1
            Attached Router: 13.0.0.2

      LS age: 105
      Options: 2
      LS Type: network-LSA}
      Link State ID: 13.0.0.3 (address of Designated Router)
      Advertising Router: 14.0.0.3
      LS Seq Number: 80000002
      Checksum: 0x5fbc
      Length: 32
      Network Mask: /24
            Attached Router: 13.0.0.2
            Attached Router: 14.0.0.3

Summary Link State DB

  • El comando show ip ospf database summary muestra la información sobre la base de datos de Summary Link States que conoce el router:
      r1#  show ip ospf database summary
          OSPF Router with ID (16.0.0.1)

                    Summary Link States (Area 0.0.0.1)

      LS age: 592
      Options: 2
      LS Type: summary-LSA
      Link State ID: 18.0.0.0 (summary Network Number)
      Advertising Router: 18.0.0.4
      LS Seq Number: 80000006
      Checksum: 0x0c07
      Length: 28
      Network Mask: /24
            TOS: 0  Metric: 10

      LS age: 580
      Options: 2
      LS Type: summary-LSA
      Link State ID: 19.0.0.0 (summary Network Number)
      Advertising Router: 18.0.0.4
      LS Seq Number: 80000005
      Checksum: 0x63a4
      Length: 28
      Network Mask: /24
            TOS: 0  Metric: 20

      LS age: 588
      Options: 2
      LS Type: summary-LSA
      Link State ID: 20.0.0.0 (summary Network Number)
      Advertising Router: 18.0.0.4
      LS Seq Number: 80000006
      Checksum: 0x56b0
      Length: 28
      Network Mask: /24
            TOS: 0  Metric: 20

Resumen de las DBs si sólo hay 1 área

  • El comando show ip ospf database muestra un resumen de la información sobre las bases de datos del router (el ejemplo muestra el resultado del comando en el router r1 de la figura):

    Router State DB

    r1#  show ip ospf database
    
           OSPF Router with ID (12.0.0.1)
    
                    Router Link States (Area 0.0.0.0)
    
    Link ID         ADV Router      Age  Seq#       CkSum   Link count
    12.0.0.1        12.0.0.1         579 0x80000005 0x529e    2 
    13.0.0.2        13.0.0.2         574 0x80000005 0x28b1    2
    14.0.0.3        14.0.0.3         574 0x80000004 0xd011    2
    
                    Net Link States (Area 0.0.0.0)
    
    Link ID         ADV Router      Age  Seq#       CkSum
    12.0.0.2        13.0.0.2         586 0x80000002 0x5bc8
    13.0.0.3        14.0.0.3         579 0x80000002 0x5fbc
    

Resumen de las DBs si hay varias áreas

  • El comando show ip ospf database también muestra la información de los Summary Link States:
   r1# show ip ospf database

           OSPF Router with ID (12.0.0.1)

                    Router Link States (Area 0.0.0.1)

    Link ID         ADV Router      Age  Seq#       CkSum Link count
    12.0.0.1        12.0.0.1         579 0x80000005 0x529e 2 
    13.0.0.2        13.0.0.2         574 0x80000005 0x28b1 2
    14.0.0.3        14.0.0.3         574 0x80000004 0xd011 2

                    Net Link States (Area 0.0.0.1)

    Link ID         ADV Router      Age  Seq#       CkSum
    12.0.0.2        13.0.0.2         586 0x80000002 0x5bc8
    13.0.0.3        14.0.0.3         579 0x80000002 0x5fbc

                    Summary Link States (Area 0.0.0.1)

    Link ID         ADV Router      Age  Seq#       CkSum  Route
    18.0.0.0        18.0.0.4         592 0x80000006 0x0c07 18.0.0.0/24
    19.0.0.0        18.0.0.4         580 0x80000005 0x61a5 19.0.0.0/24
    20.0.0.0        18.0.0.4         588 0x80000006 0x56b0 20.0.0.0/24

results matching ""

    No results matching ""