IP : Switching IP

Resolución de problemas de balance de carga sobre enlaces paralelos por medio de Cisco Express Forwarding

19 Mayo 2008 - Traducción manual
Otras Versiones: PDFpdf | Traducción Automática (31 Julio 2013) | Inglés (10 Agosto 2005) | Comentarios

Contenidos

Introducción
Requisitos previos
     Requisitos
     Componentes utilizados
     Convenciones
Antecedentes
¿Qué es el balance de carga?
Antes de Cisco Express Forwarding – Recopilación de múltiples trayectos o rutas
Configuración de distribución de carga Cisco Express Forwarding
Mecanismos internos de balance de carga de Cisco Express Forwarding
Verificación del balance de carga de Cisco Express Forwarding
Distribución de carga después de un cambio de enlace
     Información de distribución de carga programada para eliminación
Problemas conocidos
Soporte del hardware para balance de carga en Cisco Express Forwarding

Introducción

En este documento, se explica cómo el software Cisco IOS® implementa el balance de carga de la capa 3 a través de varios enlaces paralelos cuando se usa Cisco Express Forwarding.

Requisitos previos

Requisitos

Este documento requiere conocimientos de las dos estructuras de datos de Cisco Express Forwarding

  • Base de información de reenvío (FIB)

  • Tabla de adyacencia

Consulte la secciónDiscusiones relacionadas de la comunidad de soporte de Cisco
Información relacionada del presente documento para obtener una descripción general del funcionamiento de Cisco Express Forwarding.

Componentes utilizados

Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.

La información que se presenta en este documento se creó a partir de los dispositivos en un entorno específico de laboratorio. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración despejada (predeterminada). Si está trabajando en una red activa, asegúrese de haber comprendido el impacto que puede tener un comando antes de ejecutarlo.

Convenciones

Si desea más información sobre las convenciones del documento, consulte Convenciones de consejos técnicos de Cisco .

Antecedentes

La IP Switching es el mecanismo interno utilizado por Cisco IOS para reenviar paquetes a través del router. Los mecanismos disponibles incluyen conmutación de procesos, conmutación rápida y Cisco Express Forwarding. Para obtener más información sobre estos mecanismos, consulte Descripción general de los trayectos de conmutación del IOS. En función del mecanismo usado para conmutar la mayoría de los paquetes, el desempeño general del sistema y el balance de carga se ven afectados.

Los mecanismos de conmutación de IP soportan dos modos generales, por paquete y por destino. La tabla siguiente describe las ventajas y desventajas de ambos modos.

Por destino

Por paquete

Mecanismo de IP Switching

Conmutación rápida y Cisco Express Forwarding por destino.

Conmutación de procesos y Cisco Express Forwarding por paquete.

Ventajas

Mediante la conmutación rápida, se garantiza que los paquetes con un destino determinado tomen el mismo trayecto, incluso si hay varios trayectos disponibles.

Con la conmutación de Cisco Express Forwarding, se garantiza que los paquetes de un host con un par origen/destino determinado tomen el mismo trayecto, incluso si hay varios trayectos disponibles. El tráfico destinado a pares distintos suele tomar trayectos diferentes.

La ventaja de utilizar el trayecto con balance de carga por paquete es que permite que el router envíe paquetes sucesivos de datos a través de los trayectos independientemente de los host individuales o de las sesiones de usuario. Este método utiliza el método de ordenamiento cíclico para determinar qué trayecto hace cada paquete hacia el destino correspondiente.

Desventajas

Es posible que, mediante la conmutación rápida, la distribución de carga de la conmutación por destino no sea balanceada debido a que los paquetes con el mismo destino siempre siguen el mismo trayecto.

La conmutación de Cisco Express Forwarding puede tener como resultado una distribución desbalanceada si se dispone de una pequeña cantidad de pares de origen-destino. El balance de carga por destino depende de la distribución estadística del tráfico, por lo que la distribución de carga resulta más eficaz a medida que aumenta la cantidad de pares de origen-destino.

Los paquetes de un host con un par de origen-destino determinado pueden tomar trayectos distintos, lo que puede provocar el reordenamiento de los paquetes. Este proceso no se recomienda para la transmisión de voz a través de IP (VoIP) y otros tipos de flujos que requieren una entrega en secuencia.

¿Qué es el balance de carga?

El balance de carga describe la capacidad de un router de transmitir paquetes a una dirección IP de destino (también conocida como prefijo IP) a través de más de un trayecto.

Si se trata el tema del balance de carga, en primer lugar, es necesario definir los siguientes términos.

Término

Definición

Prefijo

Describe una red IP de destino, como por ejemplo 192.16.10.0/24. Cisco IOS añade un prefijo IP de destino a la tabla de ruta mediante la información obtenida del intercambio de mensajes a través de un protocolo de ruteo dinámico o de una configuración manual de rutas estáticas.

Trayecto:

Describe una ruta válida para alcanzar un prefijo de destino. Cisco IOS asigna un costo a cada trayecto. Un conjunto de trayectos activos a un prefijo de destino puede tener el mismo costo o bien costos distintos.

Sesión

Describe un flujo de comunicación unidireccional entre dos nodos IP. Todos los paquetes de una sesión usan la misma dirección IP de origen y de destino.

Para obtener información adicional, consulte ¿Cómo funciona el balance de carga?

Antes de Cisco Express Forwarding – Recopilación de múltiples trayectos o rutas

Cisco Express Forwarding utiliza la información del trayecto de la tabla de IP Routing para balancear el tráfico de varios enlaces. Por este motivo, comprobar el contenido de la tabla de IP Routing es el primer paso para asegurar el balance de carga en Cisco Express Forwarding.

En la siguiente topología, dos routers, el Router A y el Router B, se conectan directamente en tres interfaces seriales con encapsulación de control de enlace de datos de alto nivel (HDLC).

Router A

Router B

interface Ethernet 0
  ip address 194.168.20.1 255.255.255.0
 !
 interface Serial1
  ip address 10.10.10.1 255.255.255.0
 !
 interface Serial2
  ip address 20.20.20.1 255.255.255.0
 !
 interface Serial3
  ip address 30.30.30.1 255.255.255.0
  ip ospf cost 100
 !
 router ospf 1
  network 10.10.10.0 0.0.0.255 area 0
  network 20.20.20.0 0.0.0.255 area 0
  network 30.30.30.0 0.0.0.255 area 0
 network 192.168.20.0 0.0.0.255 area 0
 
interface Serial1
  ip address 10.10.10.2 255.255.255.0
  clockrate 2000000
 !
 interface Serial2
  ip address 20.20.20.2 255.255.255.0
  clockrate 148000
 !
 interface Serial3
  ip address 30.30.30.2 255.255.255.0
 ip ospf cost 100
  clockrate 148000
 router ospf 1
  network 10.10.10.0 0.0.0.255 area 0
  network 20.20.20.0 0.0.0.255 area 0
  network 30.30.30.0 0.0.0.255 area 0
maximum-paths 1

Veamos cómo el Router B selecciona uno o más trayectos para llegar a la red IP 194.168.20.0 de interfaz Ethernet del Router A.

  • De manera predeterminada, el protocolo de ruteo Open Shortest Path First (OSPF) soporta cuatro trayectos de igual costo a un destino. En este caso, se ha configurado el Router B para que el número máximo de trayectos sea uno. Por lo tanto, el Router B sólo seleccionará uno de los trayectos entre todos los trayectos posibles, según el que reciba primero. El Router B se inicia al seleccionar Serial 2 como el trayecto único de la red 194.168.20.0. Use los comandos show ip cef y show ip route para visualizar el trayecto configurado actualmente.

    RouterB#show ip cef 194.168.20.0
    
    	194.168.20.0/24, version 59, cached adjacency to Serial
    2 0 packets, 0 bytes
       via 20.20.20.1, Serial2, 0 dependencies
         next hop 20.20.20.1, Serial2
         valid cached adjacency
    
    	 RouterB#show ip route 194.168.20.
    
    0 Routing entry for 194.168.20.0/24
       Known via "ospf 1", distance 110, metric 74, type intra area
       Redistributing via ospf 1
       Last update from 20.20.20.1 on Serial2, 00:03:58 ago
       Routing Descriptor Blocks:
       * 20.20.20.1, desde 204.204.204.1, hace 00:03:58, a través de Serial2
           Route metric is 74, traffic share count is 1
  • Si desea admitir más de un trayecto en la tabla de ruteo, utilice el comando maximum-paths de OSPF. El OSPF sólo permite el balance de carga de igual costo. Si desea configurar una distribución de carga de costo desigual, configure el protocolo de ruteo de gateway interior mejorado/protocolo de ruteo de gateway interior (EIGRP/IGRP) como Protocolo de gateway interior (IGP). Consulte ¿Cómo funciona el trabajo (varianza) de balance de carga de trayectos de costo desigual en IGRP y EIGRP? para obtener más información.

    RouterB(config)#router ospf 1
    
    	RouterB(config-router)#maximum-paths
    ?   <1-6>  Number of paths
    
       RouterB(config-router)#maximum-paths 3 
  • Utilice el comando show ip route para comprobar que la tabla de ruteo contiene dos trayectos a 194.168.20.0.

    RouterB#show ip route 194.168.20.0
    
    	Routing entry for 194.168.20.0/2
    4   Known via "ospf 1", distance 110, metric 74, type intra area
       Redistributing via ospf 1
       Last update from 10.10.10.1 on Serial1, 00:00:11 ago
       Routing Descriptor Blocks:
       * 20.20.20.1, from 204.204.204.1, 00:00:11 ago, via Serial2
           La métrica de la ruta es 74, y el conteo del tráfico compartido, 1
              10.10.10.1, from 204.204.204.1, 00:00:11 ago, via Serial1
          La métrica de la ruta es 74, y el conteo del tráfico compartido, 1
    
           !--- La métrica de la ruta es 74 para los dos trayectos.
  • Si bien se configuró OSPF para soportar tres trayectos de igual costo, sólo se muestran dos trayectos activos en la salida de show ip route. Es posible utilizar el comando show ip ospf interface para determinar la causa. Serial 3 tiene un costo más elevado que Serial 1 y Serial 2, y, por lo tanto, es desigual.

    RouterB#show ip ospf interface s1
    
    	Serial1 is up, line protocol is up
       Internet Address 10.10.10.4/24, Area 0
       Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 64
    
       RouterB#show ip ospf interface s2
    
    Serial2 is up, line protocol is up
       Internet Address 20.20.20.2/24, Area 0
       Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 64
    
       RouterB#show ip ospf interface s3
    
    Serial3 is up, line protocol is up
      Internet Address 30.30.30.2/24, Area 0
       Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 100
  • Utilice el comando show run para comprobar si Serial 3 se ha configurado mediante el comando ip ospf cost 100 . Utilice el comando no ip ospf cost 100 de la interfaz secundaria para eliminar esta opción de la configuración e igualar los costos de los tres enlaces seriales.

    RouterB#show run interface s3
    
     Building configuration...
    
    Current configuration:
     !
     interface Serial3
      ip address 30.30.30.2 255.255.255.0
      no ip directed-broadcast
      ip ospf cost 100
      ip ospf interface-retry 0
  • En este momento, el comando show ip route muestra tres trayectos del mismo costo para la red 194.168.20.0.

    RouterB#show ip route 194.168.20.0
    
     Routing entry for 194.168.20.0/24
       Known via "ospf 1", distance 110, metric 74, type intra area
       Redistributing via ospf 1
       Last update from 10.10.10.1 on Serial1, 00:00:01 ago
      Routing Descriptor Blocks:
      * 20.20.20.1, from 204.204.204.1, 00:00:01 ago, via Serial2
           Route metric is 74, traffic share count is 1
         30.30.30.1, from 204.204.204.1, 00:00:01 ago, via Serial3
           Route metric is 74, traffic share count is 1
         10.10.10.1, from 204.204.204.1, 00:00:01 ago, via Serial1
           Route metric is 74, traffic share count is

Echemos un vistazo a la utilización de la información de la tabla de ruteo por parte del balance de carga de Cisco Express Forwarding para reenviar paquetes.

Configuración de distribución de carga Cisco Express Forwarding

Cisco Express Forwarding logra un balance de carga al usar la tabla loadshare. Del mismo modo que con el resto de soluciones de balance de carga de los routers Cisco, la decisión de balance de carga se toma en las interfaces de salida. A diferencia de otros métodos de conmutación, Cisco Express Forwarding realiza un seguimiento de los trayectos en función de las direcciones de origen y destino del trayecto. En resumen, podría decirse que el trayecto es una sesión IP, y que cada sesión se identifica de forma lógica como un par único de direcciones de origen y destino.

Para comprender cómo se realiza el balance de carga, primero es necesario entender cómo se relacionan las tablas. La tabla de Cisco Express Forwarding señala 16 cubetas de hash (tabla load share), que indican la tabla de adyacencia para los trayectos paralelos. Consulte la sección Mecanismos internos de balance de carga de Cisco Express Forwarding para obtener más información. Todos los paquetes que deben conmutarse se dividen entre el par de direcciones de origen y destino y se comparan con la tabla loadshare.

Nota: Existen dos tipos principales de conmutación de Cisco Express Forwarding, por destino y por paquete. Si ambos tipos se usan en un router, cada tipo posee su propia tabla loadshare.

El balance de carga por destino permite que el router utilice varios trayectos para lograr distribuir la carga. El balance de carga por destino se habilita de manera predeterminada al habilitar Cisco Express Forwarding, y es el método de balance de carga más recomendable para la mayoría de las situaciones. Como el balance de carga por destino depende de la distribución estadística del tráfico, la distribución de carga resulta más eficaz a medida que aumenta la cantidad de pares de origen-destino.

El balance de carga por paquete permite que el router envíe paquetes sucesivos de datos a través de los trayectos independientemente de los host individuales o de las sesiones de usuario. Este proceso utiliza el método de ordenamiento cíclico para determinar qué trayecto hace cada paquete hacia el destino correspondiente. El balance de carga por paquete asegura el balance sobre los enlaces múltiples. El uso del trayecto con balance de carga por paquete tiene ventajas, pero los paquetes de un host con un par origen-destino determinado pueden tomar trayectos diferentes, lo que podría provocar un reordenamiento de paquetes. Por este motivo, el balance de carga por paquete no es el más adecuado para algunos tipos de tráfico de datos, como por ejemplo VoIP, que requieren que los paquetes lleguen al destino en orden. Utilice el balance de carga por paquete para evitar que el trayecto de un par de origen-destino único se sobrecargue.

Utilice el comando ip load-sharing para pasar del método por paquete al método por destino, y viceversa.

7200-1.3(config)#interface fast 0/0
   7200-1.3(config-if)#ip load-sharing ?
   per-destination  Deterministic distribution
   per-packet       Random distribution
   7200-1.3(config-if)#ip load-sharing per-packet

Utilice el comando show cef interface para guardar los cambios.

7200-1.3#show cef interface fast 0/0
 FastEthernet0/0 is up (if_number 3)
   Corresponding hwidb fast_if_number 3
   Corresponding hwidb firstsw->if_number 3
   Internet address is 172.16.81.13/24
  ICMP redirects are always sent
   Per packet load-sharing is enabled
   IP unicast RPF check is disabled
  Inbound access list is not set
   Outbound access list is not set
   IP policy routing is disabled
   Hardware idb is FastEthernet0/0
  Fast switching type 1, interface type 18
   IP CEF switching enabled
  IP Feature Fast switching turbo vector
   IP Feature CEF switching turbo vector
   Input fast flags 0x0, Output fast flags 0x0
   ifindex 1(1)
   Slot 0 Slot unit 0 VC -1
   Transmit limit accumulator 0x0 (0x0)
   IP MTU 1500

Mecanismos internos de balance de carga de Cisco Express Forwarding

Empecemos con el análisis del mecanismo interno de balance de carga de Cisco Express Forwarding.

  • Cada una de las sesiones (consulte la tabla anterior) se ha asignado a un trayecto activo.

  • La asignación de sesión a trayecto se realiza mediante una función de hash que toma las direcciones IP de origen y de destino y, en las versiones recientes de Cisco IOS, una ID de hash única que hace aleatoria la asignación en el trayecto de extremo a extremo.

  • Los trayectos activos se asignan de forma interna a varias de las 16 cubetas de hash. La asignación de trayecto a cubeta varía con el tipo de balance de carga y el número de trayectos activos.

  • El resultado de la función de hash se usa para elegir una de las cubetas habilitadas y, por lo tanto, elegir qué trayecto usar para la sesión.

  • Para todas las sesiones que reenvíe el router, cada trayecto activo realiza el mismo número de sesiones.

Veamos un ejemplo del funcionamiento interno de Cisco Express Forwarding.

  1. Utilice el comando maximum-paths para reducir a dos el número de trayectos activos del prefijo de destino.

    RouterB(config)#router ospf 1
    RouterB(config-router)#maximum-paths 2
  2. Utilice el comando show ip cef {prefix} internal para visualizar la asignación de trayecto a cubeta.

    RouterB#show ip cef 194.168.20.0 internal
     194.168.20.0/24, version 66, per-destination sharing
     0 packets, 0 bytes
       via 20.20.20.1, Serial2, 0 dependencies
        traffic share 1
        next hop 20.20.20.1, Serial2
        valid adjacency
      via 30.30.30.1, Serial3, 0 dependencies
         traffic share 1
        next hop 30.30.30.1, Serial3
         valid adjacency
       0 packets, 0 bytes switched through the prefix
       Load distribution: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (refcount 1)
    
    
    !--- La línea de distribución de carga resume el proceso de asignación 
    !--- de cada uno de los trayectos a las cubetas de hash.
    
    
        Hash  OK  Interface                 Address         Packets
       1     Y   Serial2                   point2point           0
       2     Y   Serial3                   point2point           0
       3     Y   Serial2                   point2point           0
       4     Y   Serial3                   point2point           0
       5     Y   Serial2                   point2point           0
       6     Y   Serial3                   point2point           0
       7     Y   Serial2                   point2point           0
       8     Y   Serial3                   point2point           0
       9     Y   Serial2                   point2point           0
       10    Y   Serial3                   point2point           0
       11    Y   Serial2                   point2point           0
       12    Y   Serial3                   point2point           0
       13    Y   Serial2                   point2point           0
       14    Y   Serial3                   point2point           0
       15    Y   Serial2                   point2point           0
       16    Y   Serial3                   point2point 

    Las 16 cubetas de hash están configuradas según el tipo de balance de carga y el número de trayectos activos. El caso simple es el de un número de trayectos par. Las 16 cubetas van adquiriendo de manera uniforme trayectos activos. Si no se puede dividir 16 por el número de trayectos activos, las últimas cubetas que representan el resto quedan inhabilitadas. La tabla siguiente muestra el aspecto de las cubetas de hash de dos y tres trayectos activos.

    Cubeta/trayecto

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    2

    0

    1

    0

    1

    0

    1

    0

    1

    0

    1

    0

    1

    0

    1

    0

    1

    3

    0

    1

    2

    0

    1

    2

    0

    1

    2

    0

    1

    2

    0

    1

    2

    x

    En el siguiente ejemplo, tenemos tres trayectos para el destino. Observe que Cisco Express Forwarding ha eliminado la cubeta de hash 16 y que los tres enlaces activos se han asignado de forma uniforme a las cubetas de hash 1 a 15.

    RouterB#show ip cef 194.168.20.0 interface
     194.168.20.0/24, version 64, per-destination sharing
     0 packets, 0 bytes
       via 20.20.20.1, Serial2, 0 dependencies
         traffic share 1
         next hop 20.20.20.1, Serial2
         valid adjacency
       via 30.30.30.1, Serial3, 0 dependencies
         traffic share 1
         next hop 30.30.30.1, Serial3
         valid adjacency
      via 10.10.10.1, Serial1, 0 dependencies
        traffic share 1     next hop 10.10.10.1, Serial1
         valid adjacency
    
       0 packets, 0 bytes switched through the prefix
       Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1)
    
    
    !--- Los trayectos activos se asignan a las cubetas de hash mediante
    !--- un ordenamiento cíclico.
    
    
         Hash  OK  Interface                 Address         Packets
       1     Y   Serial2                   point2point           0
       2     Y   Serial3                   point2point           0
       3     Y   Serial1                   point2point           0
       4     Y   Serial2                   point2point           0
       5     Y   Serial3                   point2point           0
       6     Y   Serial1                   point2point           0
       7     Y   Serial2                   point2point           0
       8     Y   Serial3                   point2point           0
       9     Y   Serial1                   point2point           0
       10    Y   Serial2                   point2point           0
       11    Y   Serial3                   point2point           0
       12    Y   Serial1                   point2point           0
       13    Y   Serial2                   point2point           0
       14    Y   Serial3                   point2point           0
       15    Y   Serial1                   point2point           0
    
    
       !--- La cubeta de hash 16 se ha eliminado. 

    Nota: Si bien tanto Cisco Express Forwarding por destino como los mecanismos de conmutación rápida seleccionan un solo trayecto por destino, utilizan un método de selección distinto. Cisco Express Forwarding tiene en cuenta las direcciones IP tanto de origen como de destino, mientras que la conmutación rápida sólo tiene en cuenta la dirección IP de destino.

Verificación del balance de carga de Cisco Express Forwarding

Utilice los pasos siguientes para verificar el balance de carga de Cisco Express Forwarding en el router.

  1. Compruebe que Cisco Express Forwarding se encuentra habilitado por completo en el router.

    S3-4K-2#show ip cef
     %CEF not running
     Prefix                      Next Hop                     Interface
    
    
    !--- Este resultado muestra que Cisco Express Forwarding no está habilitado.
    !--- Utilice el comando ip cef en el modo de configuración global 
    !--- para habilitarlo.
  2. Compruebe que la conmutación por paquete o por destino está habilitada en las interfaces de salida particulares. El valor predeterminado es por destino.

    RouterA#show cef interface s1
    
     Serial1 is up (if_number 3
    )  Internet address is 10.10.10.1/24
       ICMP redirects are always sent
       El balance de carga por paquete está inhabilitado.
       IP unicast RPF check is disabled
      Inbound access list is not set
      Outbound access list is not set
       Interface is marked as point to point interface
      Hardware idb is Serial1
       Fast switching type 4, interface type 40
       Conmutación CEF IP habilitada
    
    
      !--- Cisco Express Forwarding se encuentra habilitado en la interfaz.
    
    
       IP CEF Fast switching turbo vector
       Input fast flags 0x0, Output fast flags 0x0
      ifindex 5(5)
    
      Slot 0 Slot unit 1 VC -1
    
         Transmit limit accumulator 0x0 (0x0
    )   IP MTU 1500 
  3. Compruebe que la tabla de ruteo y la tabla de Cisco Express Forwarding contienen todos los trayectos paralelos mediante el comando show ip route.

    RouterB#show ip route 192.168.20.0
     Routing entry for 192.168.20.0/32, 1 known subnets
    
      O       192.168.20.1 [110/65] via 20.20.20.1, 00:06:54, Serial1
                          [110/65] via 10.10.10.1, 00:06:54, Serial2
                          [110/65] via 30.30.30.1, 00:06:54, Serial3 
  4. Compruebe Cisco Express Forwarding (FIB) mediante el comando show ip cef.

    RouterB#show ip cef 192.168.20.0
    192.168.20.0/24, version 18, per-destination sharing
    0 packets, 0 bytes
      via 30.30.30.1, Serial3,   0 dependencies
        traffic share 1
        next hop 30.30.30.1, Serial3
        valid adjacency
      via 20.20.20.1, Serial2, 0 dependencies
        traffic share 1
        next hop 20.20.20.1, Serial2
        valid adjacency
      via 10.10.10.1, Serial1, 0 dependencies
        traffic share 1
        next hop 10.10.10.1, Serial1
        valid adjacency
      0 packets, 0 bytes switched through the prefix
     tmstats: external 0 packets, 0 bytes
              internal 0 packets, 0 bytes
    
    
    
    RouterB#show ip cef 192.168.20.0 internal
    192.168.20.0/24, version 18, distribución por destino
    0 packets, 0 bytes
      via 30.30.30.1, Serial3, 0 dependencies
        traffic share 1
       next hop 30.30.30.1, Serial3
        valid adjacency
      via 20.20.20.1, Serial2, 0 dependencies
        distribución del tráfico 1
       next hop 20.20.20.1, Serial2
        valid adjacency
      via 10.10.10.1, Serial1, 0 dependencies
        distribución del tráfico 1
        next hop 10.10.10.1, Serial1
        valid adjacency
    
      0 packets, 0 bytes switched through the prefix
      tmstats: external 0 packets, 0 bytes
               internal 0 packets, 0 bytes
      Distribución de carga: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1)
    
      Hash  OK  Interface                 Address         Packets
      1     Y   Serial3                   point2point           0
      2     Y   Serial2                   point2point           0
      3     Y   Serial1                   point2point           0
      4     Y   Serial3                   point2point           0
      5     Y   Serial2                   point2point           0
      6     Y   Serial1                   point2point           0
      7     Y   Serial3                   point2point           0
      8     Y   Serial2                   point2point           0
      9     Y   Serial1                   point2point           0
      10    Y   Serial3                   point2point           0
      11    Y   Serial2                   point2point           0
      12    Y   Serial1                   point2point           0
      13    Y   Serial3                   point2point           0
      14    Y   Serial2                   point2point           0
      15    Y   Serial1                   point2point           0

    Nota: La tabla loadshare anterior muestra una distribución de carga 0 1 2 0 1 2 . . y el tráfico compartido es 1 por ruta. Esto significa que el costo de la distribución de carga por destino es el mismo entre las tres rutas del mismo costo.

  5. Compruebe las adyacencias de Cisco Express Forwarding.

    RouterB#show adjacency detail
    Protocol Interface                 Address
    IP       Serial1                   point2point(11)
                                       0 packets, 0 bytes
                                       0F000800
                                       CEF   expires: 00:02:31
                                             refresh: 00:00:31
    IP       Serial2                   point2point(11)
                                       0 packets, 0 bytes
                                       0F000800
                                       CEF   expires: 00:02:31
                                             refresh: 00:00:31
    IP       Serial3                   point2point(11)
                                       0 packets, 0 bytes
                                       0F000800
                                       CEF   expires: 00:02:31
                                             refresh: 00:00:31
    
  6. Compruebe que el mecanismo de balance de carga esperado de Cisco Express Forwarding está configurado en todas las interfaces de salida.

    RouterB#show ip cef 194.168.20.0
    
    194.168.20.0/24, version 89, distribución por destino
     0 packets, 0 bytes
       via 10.10.10.1, Serial1, 0 dependencies
         traffic share 1
         next hop 10.10.10.1, Serial1
         valid adjacency
       [output omitted]
  7. Habilite la contabilidad de las cubetas de hash si desea obtener estadísticas que le permitan comprender mejor el patrón que sigue Cisco Express Forwarding en la red. Por ejemplo, puede obtener información sobre el número de paquetes y bytes conmutados a un destino concreto o el número de paquetes conmutados a través de un destino determinado. Use el siguiente comando:

    router(config)# ip cef accounting load-balance-hash

    Compruebe el flujo de paquetes observando los valores que aparecen en el campo Paquete.

    RouterB#show ip cef 192.168.20.0 internal
    [...]
    
      Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1)
    
    Hash  OK  Interface                 Address         Packets
    1     Y   Serial                    point2point           0
    2     Y   Serial2                   point2point           0
    3     Y   Serial1                   point2point           0
    4     Y   Serial3                   point2point           0
    5     Y   Serial2                   point2point          35
    6     Y   Serial1                   point2point           0
    7     Y   Serial3                   point2point           0
    8     Y   Serial2                   point2point          60
    9     Y   Serial1                   point2point           0
    10    Y   Serial3                   point2point           0
    11    Y   Serial2                   point2point           0
    12    Y   Serial1                   point2point           0
    13    Y   Serial3                   point2point           0
    14    Y   Serial2                   point2point          30
    15    Y   Serial1                   point2point           0

    Se han enviado 125 paquetes a través de Serial 2. Si utiliza la opción ping para generar tráfico, recuerde que los paquetes ping deben pasar por el router de conmutaciones de Cisco Express Forwarding. Es decir, los paquetes ping deben acceder desde una interfaz conmutada de Cisco Express Forwarding, dejar que Cisco Express Forwarding las conmute y, a continuación, salir desde otra interfaz conmutada de Cisco Express Forwarding.

    Nota: La distribución de carga por destino se vuelve más eficaz a medida que se incrementa la cantidad de pares de origen-destino.

  8. Mientras envía tráfico al prefijo, capture varios resultados del comando show interface. Analice los valores "txload" y "rxload" (algunas interfaces muestran un solo valor "load", que contiene tanto la transmisión como la recepción). A pesar de que el balance de carga por paquete ofrece una distribución uniforme del número de paquetes, es posible que los enlaces paralelos muestren una ligera diferencia en función del tamaño del paquete.

    Serial1/0:0 is up, line protocol is up
    reliability 255/255, txload 10/255, rxload 3/255
    
     Serial1/1:0 is up, line protocol is up
    reliability 255/255, txload 18/255, rxload 3/255
  9. Mediante el balance de carga por destino de Cisco Express Forwarding, es posible determinar a qué trayecto se ha asignado una sesión con el comando siguiente. Introduzca la palabra clave internal para visualizar la cubeta de hash usada.

    show ip cef exact-route {source-ip-address} {dest-ip-address} [internal]
    
     RouterB# show ip cef exact-route 50.50.50.2 192.168.20.1  internal
    50.50.50.2      -> 192.168.20.1   : Serial9/0 (next hop 20.20.20.1)
                                        Cubeta 4 from 15, total 3 paths
    RouterB# show ip cef exact-route 5.5.5.1 192.168.20.1  internal
       5.5.5.1         ->192.168.20.1   : Serial9/0 (next hop 20.20.20.1)
                                        Cubeta 7 from 15, total 3 paths
    RouterB# show ip cef exact-route 6.6.6.1 192.168.20.1  internal
    6.6.6.1         -> 192.168.20.1   : Serial9/0 (next hop 20.20.20.1)
                                        Cubeta 7 from 15, total 3 paths
    RouterB# show ip cef exact-route 8.8.8.1 192.168.20.1  internal
    8.8.8.1         -> 192.168.20.1   : Serial9/0 (next hop 20.20.20.1)
                                        Cubeta 13 from 15, total 3 paths
  10. Si la salida es irregular, considere lo siguiente:

    • El número de pares de direcciones únicas de origen y destino o de sesiones que atraviesan los enlaces paralelos.

    • El número y el tamaño de los paquetes de cada sesión. ¿Hay alguna sesión que contenga un gran número de paquetes? El balance de carga por destino depende de la distribución estadística del tráfico y resulta más eficaz a medida que aumentan los pares de origen-destino.

Distribución de carga después de un cambio de enlace

Si algún cambio de la tabla de ruteo ajusta el número de trayectos activos de un destino, Cisco Express Forwarding actualiza las estructuras del balance de carga visualizadas en la salida del comando show ip cef {prefix} internal . A continuación, Cisco Express Forwarding hace coincidir los paquetes nuevos entrantes con una adyacencia y la cubeta de hash correspondiente. La cubeta seleccionada puede ser o no la misma que se utilizó anteriormente.

Los pasos siguientes describen el proceso de actualización de la información de balance de carga de Cisco Express Forwarding tras producirse un cambio en el número de trayectos activos del prefijo de un destino.

  1. Suponga que es posible acceder al prefijo de un destino a través de dos trayectos. El trayecto 1 está inactivo, mientras que el trayecto 2 está activo y controla todo el tráfico.

  2. Cuando el trayecto 1 vuelva a estar disponible, éste solicitará que se inicien los procesos de reconvergencia de IP Routing.

  3. En ese momento, Cisco Express Forwarding balanceará la carga de los dos trayectos y no conservará el flujo existente del trayecto 2, ya que de lo contrario el trayecto 1 quedaría inutilizado. Es decir, Cisco Express Forwarding no considera que puede reenviar paquetes de una sesión en un trayecto válido y seleccionar un trayecto nuevo para un flujo en función de la cubeta de hash que seleccione.

Información de distribución de carga programada para eliminación

Cuando se produce algún cambio en la tabla de ruteo, Cisco Express Forwarding elimina y, a continuación, reconstruye las estructuras de balance de carga que asignan trayectos a las cubetas de hash. Durante el proceso de reconstrucción, pueden perderse algunos paquetes, y el comando show ip cef {prefix} internal indicará Información de distribución de carga programada para eliminación.

router#show ip cef 10.10.128.0 int
  10.10.128.0/28, version 63, per-destination sharing
  0 packets, 0 bytes
    via 10.8.0.31, 0 dependencies, recursive
      next hop 10.8.2.49, POS0/0/0
      valid adjacency
    Información de distribución de carga programada para eliminación 

Los cambios implementados mediante un ID de error de funcionamiento de Cisco CSCdm87127 minimizan la pérdida de paquetes durante cualquier cambio en el número de trayectos activos de la ruta predeterminada 0.0.0.0. En concreto, Cisco Express Forwarding asigna ahora una entrada FIB con espacio para la mayor cantidad posible de trayectos activos de esta ruta.

Problemas conocidos

El balance de carga del Cisco Express Forwarding no es igual en los cuatro trayectos. Para obtener más información, consulte CSCdm87756 (solamente clientes registrados) .

Es posible que en versiones de Cisco IOS anteriores a 12.0(16)S, la introducción del comando show ip cef exact-route provoque que el Route Processor (RP) de un router de Internet de la serie 12000 de Cisco o un router de la serie 7500/RSP de Cisco se recargue. Esta situación se produce cuando el prefijo de destino es recurrente y el router comparte la carga con el salto siguiente (next hop). Para obtener más información, consulte CSCdt80914 (solamente clientes registrados) , ya que trata este tema.

Soporte del hardware para balance de carga en Cisco Express Forwarding

Originalmente, el balance de carga por paquete de Cisco Express Forwarding era compatible con plataformas que usaban el reenvío por software. Dichas plataformas incluían las series 2600, 3600 y 7200. En estos momentos, el balance de carga por paquete es compatible con hardware gracias a Parallel Express Forwarding (PXF) de la serie 7200 con NSE-1 y la serie 10000. En la serie 6000 de Catalyst, el IOS de Cisco Express Forwarding ip load-sharing per-packet, ip cef accounting per-prefix y los comandos ip cef accounting non-recursive de MSFC2 sólo se aplican al tráfico conmutado por Cisco Express Forwarding en el software MSFC2. Los comandos no afectan el tráfico de hardware conmutado por Capa 3 en módulos de conmutación equipados con DFC o PFC2. Consulte la sección Configuración de conmutación de Capa 3 de unidifusión IP en el motor supervisor 2 para obtener más información.

Nota: Los routers Cisco 7300 con tarjeta de procesador NSE-100 no son compatibles con el balance de carga CEF por paquete en PXF. PXF únicamente es compatible con el balance de carga por destino. Sin embargo, parecía que eran compatibles porque los comandos de configuración estaban disponibles en el CLI del router. Este hecho se corrigió y se registró en el ID del error de funcionamiento de Cisco CSCdx63389.

En la serie 12000, el balance de carga por paquete está disponible en todos los motores de reenvío de Capa 3 excepto los motores 3 y 4. Cada tarjeta de la línea toma decisiones de reenvío independientes. Para visualizar la ruta exacta de cada flujo IP, use el comando exec slot X show ip hardware-cef exact-route src dst en las tarjetas de la línea que utilizan tablas de Cisco Express Forwarding basadas en hardware.


Discusiones relacionadas de la comunidad de soporte de Cisco

La Comunidad de Soporte de Cisco es un foro donde usted puede preguntar y responder, ofrecer sugerencias y colaborar con colegas.


Document ID: 18285