IP : Switching IP

Solucionando Problemas de Balanceamento de Carga em Links Paralelos Usando o Cisco Express Forwarding

22 Maio 2008 - Tradução Manual
Outras Versões: Versão em PDFpdf | Tradução por Computador (29 Julho 2013) | Inglês (10 Agosto 2005) | Feedback


Índice

Introdução
Pré-requisitos
     Requisitos
     Componentes Usados
     Convenções
Informações Complementares
O que é o Balanceamento de Carga?
Antes do Cisco Express Forwarding - Coletando Vários Caminhos ou Rotas
Configurando o Compartilhamento de Carga do Cisco Express Forwarding
Mecanismos Internos de Balanceamento de Carga do Cisco Express Forwarding
Verificando o Balanceamento de Carga do Cisco Express Forwarding
Compartilhamento de Carga após uma Alteração de Link
     Validade de Informações de Compartilhamento de Carga para Exclusão
Problemas Conhecidos
Suporte a Hardware para Balanceamento de Carga Cisco Express Forwarding
Discussões relacionadas da comunidade de suporte da Cisco
Informações Relacionadas

Introdução

Este documento esclarece como o Cisco IOS® Software implementa o balanceamento de carga da Camada 3 em vários links paralelos usando o Cisco Express Forwarding.

Pré-requisitos

Requisitos

Este documento assume um entendimento das duas estruturas de dados do Cisco Express Forwarding.

  • Forwarding Information Base (FIB)

  • Tabela de Adjacência

Consulte a seção Informações Relacionadas deste documento para obter uma visão geral da operação do Cisco Express Forwarding.

Componentes Usados

Este documento não está restrito a versões específicas de software e de hardware.

As informações apresentadas neste documento foram criadas a partir dos dispositivos em um ambiente de laboratório específico. Todos os dispositivos usados neste documento foram iniciados com uma configuração vazia (padrão). Caso esteja trabalhando em uma rede ativa, certifique-se de ter compreendido o possível impacto dos comandos antes de utilizá-los.

Convenções

Para obter mais informações sobre convenções em documentos, consulte as Convenções de Dicas Técnicas da Cisco.

Informações Complementares

IP switching é o mecanismo interno usado pelo Cisco IOS para encaminhar pacotes através de um roteador. Os mecanismos disponíveis incluem switching do processo, switching rápido e Cisco Express Forwarding. Para obter informações adicionais sobre esses mecanismos, consulte Visão Geral de Caminhos de Switching do Cisco IOS. O desempenho geral do sistema e o balanceamento da carga serão afetados, dependendo de quais dos três mecanismos é usado para comutar a maioria dos pacotes.

Os mecanismos de IP switching suportam dois modos gerais, por pacote e por destino. A tabela a seguir descreve as vantagens e as desvantagens de ambos os modos.

Por destino

Por pacote

Mecanismo de IP Switching

Switching rápido e Cisco Express Forwarding por destino.

Switching de processos e Cisco Express Forwarding por pacote.

Vantagens

Com o switching rápido, fica garantido que os pacotes de um determinado destino tomarão o mesmo caminho, ainda que vários caminhos estejam disponíveis.

Com o switching Cisco Express Forwarding, os pacotes para um determinado par de hosts de origem-destino tomarão o mesmo caminho, mesmo se vários caminhos estiverem disponíveis. O tráfego destinado a diferentes pares tende a tomar diferentes caminhos.

A utilização de caminho com balanceamento de carga por pacote é boa porque esse balanceamento permite que o roteador envie pacotes de dados sucessivos pelos caminhos, independentemente de hosts individuais ou sessões de usuário. Ele utiliza o método de rodízio para determinar qual caminho cada pacote toma até o destino

Desvantagens

Com o switching rápido, o switching por destino pode resultar no compartilhamento de carga desigual porque os pacotes para um destino sempre seguem o mesmo caminho.

O switching Cisco Express Forwarding pode resultar na distribuição desigual com um pequeno número de pares de origem-destino. O balanceamento por destino depende da distribuição estatística do tráfego; o compartilhamento de carga torna-se mais efetivo à medida que aumenta o número de pares origem/destino.

Os pacotes de um determinado par de hosts de origem-destino podem tomar caminhos diferentes, o que poderia introduzir a reordenação dos pacotes. Isso não é recomendado para Voice over IP (VoIP) e outros fluxos que requerem entrega em seqüência.

O que é o Balanceamento de Carga?

O balanceamento de carga descreve a capacidade de um roteador de transmitir pacotes para um endereço IP de destino (também conhecido como prefixo IP) por mais de um caminho.

Ao discutir o balanceamento de carga, precisamos primeiramente definir os seguintes termos.

Termo

Definição

Prefixo

Descreve uma rede IP de destino, como 192.16.10.0/24. O Cisco IOS adiciona um prefixo IP de destino à tabela de roteamento utilizando as informações obtidas da troca de mensagens utilizando um protocolo de roteamento dinâmico ou por configuração manual de rotas estáticas.

Caminho

Descreve uma rota válida para alcançar um prefixo de destino. O Cisco IOS atribui um custo para cada caminho. Um conjunto de caminhos ativos para um prefixo de destino pode ter custos iguais ou diferentes.

Sessão

Descreve um fluxo de comunicação unidirecional entre dois nós de IP. Todos os pacotes em uma sessão utilizam o mesmo endereço IP de origem e destino.

Para obter informações adicionais, consulte Como funciona o balanceamento de carga?

Antes do Cisco Express Forwarding - Coletando Vários Caminhos ou Rotas

O Cisco Express Forwarding utiliza as informações de caminho na tabela de IP Routing para equilibrar o tráfego em links múltiplos. Por esta razão, a confirmação do balanceamento de carga adequado do Cisco Express Forwarding começa com a confirmação dos conteúdos da tabela de IP Routing.

Na topologia a seguir, dois roteadores, Roteador A e Roteador B, conectam-se back-to-back em três interfaces seriais com encapsulamento HDLC (High-Level Data Link Control).

Roteador A

Roteador 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

Vamos analisar como o Roteador B seleciona um ou mais caminhos para alcançar a rede IP de interface Ethernet do Roteador A 194.168.20.0.

  • Por padrão, o Open Shortest Path First (OSPF) suporta quatro caminhos de custo iguais para um destino. Neste cenário Roteador B é configurado com caminhos máximos igual a um. Portanto, o Roteador B escolherá apenas um caminho entre os possíveis caminhos iguais com base em qual é recebido primeiro. O Roteador B é iniciado com a seleção de Serial 2 como caminho único para a rede 194.168.20.0. Utilize os comandos show ip cef e show ip route para visualizar o conjunto de caminhos atuais.

    RouterB#show ip cef 194.168.20.0
    
    194.168.20.0/24, version 59, cached adjacency to Serial2
    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, from 204.204.204.1, 00:03:58 ago, via Serial2 
          Route metric is 74, traffic share count is 1
    
  • Utilize o comando maximum-paths em OSPF para permitir mais de um caminho até a tabela de roteamento. O OSPF permite apenas o balanceamento de carga de custo igual. Para configurar o compartilhamento de carga de custo desigual, configure o EIGRP/IGRP (Enhanced Interior Gateway Routing Protocol/Interior Gateway Routing Protocol) como seu IGP (Protocolo de gateway interior). Consulte Como Funciona o Balanceamento de Carga em Caminhos de Custos Desiguais (Variância) no IGRP e no EIGRP? ? para obter informações adicionais.

    RouterB(config)#router ospf 1
    
    RouterB(config-router)#maximum-paths ?
      <1-6>  Number of paths
    
    RouterB(config-router)#maximum-paths 3
    
                   
  • Utilize o comando show ip route para confirmar se a tabela de roteamento contém dois caminhos para 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:11 ago
      Routing Descriptor Blocks:
      * 20.20.20.1, from 204.204.204.1, 00:00:11 ago, via Serial2
          A métrica da rota é 74, a contagem de compartilhamento do tráfego é 1 
             10.10.10.1, from 204.204.204.1, 00:00:11 ago, via Serial1
          A métrica da rota é 74, a contagem de compartilhamento do tráfego é 1 
                      
                         !--- A métrica da rota é 74 para ambos os caminhos.
                      
                   
  • Embora o OSPF tenha sido configurado para suportar três caminhos de custos iguais, apenas dois desses caminhos ativos são apresentados na saída do comando show ip route. Podemos usar o comando show ip ospf interface para determinar a razão. O Serial 3 possui um custo superior a Serial 1 e Serial 2, portanto, é diferente.

    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
    
  • Utilize o comando show run para confirmar se Serial 3 está configurado com o comando ip ospf cost 100 . Utilize o comando de subinterface no ip ospf cost 100 para removê-lo da configuração e tornar iguais os custos de todos os três links seriais.

    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
    
  • O comando show ip route agora exibe três caminhos com o mesmo custo para a rede 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

Agora vamos examinar como o balanceamento de carga Cisco Express Forwarding utiliza as informações na tabela de roteamento para encaminhar os pacotes.

Configurando o Compartilhamento de Carga do Cisco Express Forwarding

O Cisco Express Forwarding realiza o balanceamento de carga utilizando a tabela de compartilhamento de carga. Como ocorre com todas as outras soluções de balanceamento de carga em roteadores Cisco, a decisão de balanceamento de carga é tomada nas interfaces externas. Diferente de outros métodos de switching, o Cisco Express Forwarding rastreia os caminhos com base no endereço tanto de origem quanto de destino do caminho. Para simplificar isso, você poderia dizer que o caminho é uma sessão IP e cada sessão está logicamente identificada como um par de endereços exclusivo de origem-destino.

Para compreender como ocorre o balanceamento de carga, veja primeiro como as tabelas se relacionam. A tabela Cisco Express Forwarding aponta para 16 hash buckets (tabela de compartilhamento de carga), que apontam para a tabela adjacente para caminhos paralelos. Consulte a seção Mecanismos Internos de Balanceamento de Carga do Cisco Express Forwarding para obter mais detalhes. Cada pacote a ser comutado é dividido no par de endereços de origem e de destino e verificado na tabela de compartilhamento de carga.

Observação: Existem dois tipos principais de switching Cisco Express Forwarding, por destino e por pacote. Se ambos os tipos estiverem em uso em um roteador, cada tipo terá sua própria tabela de compartilhamento de carga.

O balanceamento de carga por destino permite que o roteador use vários caminhos para alcançar o compartilhamento de carga. O balanceamento de carga por destino é habilitado, por padrão, ao ativar o Cisco Express Forwarding, e é o método de balanceamento de carga escolhido para a maioria das situações. Como o balanceamento por destino depende da distribuição estatística do tráfego, o compartilhamento de carga torna-se mais efetivo à medida que aumenta o número de pares origem/destino.

O balanceamento de carga por pacote permite que o roteador envie pacotes de dados sucessivos pelos caminhos, independentemente de hosts individuais ou sessões de usuário. Ele utiliza o método de rodízio para determinar qual caminho cada pacote toma até o destino. O balanceamento de carga por pacote garante o balanceamento por vários links. A utilização de caminhos com o balanceamento de cargas por pacote é eficiente, mas os pacotes para um determinado par de hosts de origem e destino podem tomar diferentes caminhos, podendo resultar na reordenação de pacotes. Por esse motivo, o balanceamento de carga por pacote não é apropriado para determinados tipos de tráfego de dados, como VoIP, o que depende dos pacotes que chegam ao destino em seqüência. Use o balanceamento de carga por pacote para ajudar a assegurar que um caminho para um único par de origem-destino não fique sobrecarregado.

Utilize o comando ip load-sharing para alterar entre os métodos por pacote e por destino.

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

         

Utilize o comando show cef interface para confirmar suas alterações.

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
  O compartilhamento de carga por pacote está habilitado
  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 Balanceamento de Carga do Cisco Express Forwarding

Vamos começar dividindo o mecanismo interno sob o balanceamento de carga Cisco Express Forwarding.

  • Cada sessão (consulte a tabela acima) é designada a um caminho ativo.

  • A atribuição sessão para caminho feita com uma função hash que assume os endereços IP de origem e destino e, em versões recentes do Cisco IOS, um ID de hash exclusivo que torna aleatória a atribuição no caminho de ponta a ponta.

  • Os caminhos ativos são atribuídos internamente a vários dos 16 hash buckets. A atribuição path-to-bucket varia com o tipo de balanceamento de carga e o número de caminhos ativos.

  • O resultado da função hash é utilizado para capturar um dos buckets habilitado e, dessa forma, obter o caminho a ser utilizado na sessão.

  • Para todas as sessões que estão sendo encaminhadas pelo roteador, cada caminho ativo carrega o mesmo número de sessões.

Vejamos um exemplo desses internos do Cisco Express Forwarding.

  1. Utilize o comando maximum-paths para reduzir para dois o número de caminhos ativos para o prefixo de destino.

    RouterB(config)#router ospf 1
    RouterB(config-router)#maximum-paths 2
                   
  2. Utilize o comando show ip cef {prefix} internal para visualizar a atribuição path-to-bucket.

    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)
      
                         !--- A linha de distribuição de carga resume como cada caminho é
    !--- atribuído aos hash buckets.
                      
    
    
      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 

    Os 16 hash buckets são configurados de acordo com o tipo de balanceamento de carga e com o número de caminhos ativos. O caso simples é para um número par de caminhos. Os 16 buckets são preenchidos de maneira uniforme com os caminhos ativos. Se 16 não for divisível pelo número de caminhos ativos, os últimos buckets que representam o restante serão desabilitados. A tabela a seguir mostra como os hash buckets procuram por dois e três caminhos ativos.

    Bucket/Caminhos

    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

    No seguinte exemplo, temos três caminhos para o destino. Observe como o Cisco Express Forwarding removeu o hash bucket 16 e como os três links seriais são atribuídos igualmente aos hash buckets 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)
      
                         !--- Os caminhos ativos são atribuídos aos hash buckets em um
    !--- padrão round-robin.
                      
    
    
      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
      
                         !--- O hash bucket 16 foi removido.
                      
    
                   

    Observação: Embora eles selecionem um único caminho para um destino, os mecanismos de switching rápido e por destino do Cisco Express Forwarding são diferentes na maneira como eles selecionam esse caminho. O Cisco Express Forwarding considera os endereços IP de origem e de destino, enquanto o switching rápido considera apenas o endereço IP de destino.

Verificando o Balanceamento de Carga do Cisco Express Forwarding

Utilize as seguintes etapas para verificar o balanceamento de carga do Cisco Express Forwarding em seu roteador.

  1. Confirme se o Cisco Express Forwarding está habilitado globalmente no roteador.

    S3-4K-2#show ip cef
    %CEF not running
    Prefix                      Next Hop                     Interface
    
                         !--- Esta saída mostra que o Cisco Express Forwarding não está habilitado.
    !--- Utilize o comando ip cef na configuração global para ativá-lo.
                      
    
                   
  2. Confirme se o switching por pacote ou por destino está habilitado em determinadas interfaces externas. O padrão é 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
      O balanceamento de carga por pacote está desabilitado
      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
      Switching IP CEF habilitado
                      
                          !--- O Cisco Express Forwarding é habilitado na interface. 
                      
      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. Confirme se a tabela de roteamento e a tabela do Cisco Express Forwarding contêm todos os caminhos paralelos usando o 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. Verifique a FIB do Cisco Express Forwarding usando o 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, 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
      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   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
    

    Observação: A tabela de compartilhamento de carga acima mostra a distribuição de carga 0 1 2 0 1 2 . . . , e o compartilhamento de tráfego é 1 para cada rota. Isso significa um compartilhamento de carga de custo igual por destino entre três rotas de custo iguais.

  5. Verifique as adjacências do 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. Confirme se o mecanismo de balanceamento de carga esperado do Cisco Express Forwarding é configurado em todas as interfaces externas.

    RouterB#show ip cef 194.168.20.0
    
    194.168.20.0/24, version 89, per-destination sharing
    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 a contabilidade de hash bucket para coletar as estatísticas para entender melhor os padrões do Cisco Express Forwarding em sua rede. Por exemplo, você talvez queira coletar informações como o número de pacotes e bytes comutados para um destino ou o número de pacotes comutados através de um destino. Utilize o seguinte comando:

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

    Verifique o fluxo do pacote, observando os valores no campo Packet.

    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

    125 pacotes que fluem através do Serial 2. Se você utilizar ping para gerar o tráfego, assegure-se de que os pacotes ping devam transitar no roteador comutado pelo Cisco Express Forwarding. Em outras palavras, os pacotes de ping devem entrar por uma interface comutada do Cisco Express Forwarding, ser comutados pelo Cisco Express Forwarding e sair por outra interface comutada do Cisco Express Forwarding.

    Observação: O compartilhamento de carga por destino se torna mais eficiente com o aumento no número de pares origem-destino.

  8. Enquanto estiver enviando o tráfego para o prefixo, capture várias saídas do comando show interface. Analise os valores "txload" e "rxload". (Algumas interfaces exibem um único valor "load", que considera a transmissão e a recepção). Embora o balanceamento de carga por pacote forneça uma distribuição uniforme no número de pacotes, os links paralelos podem exibir uma taxa ligeiramente irregular, dependendo do tamanho do pacote.

    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. Com o balanceamento de carga por destino Cisco Express Forwarding, você pode determinar a qual caminho uma sessão é atribuída com o seguinte comando. Inclua a palavra-chave internal para exibir qual hash bucket é utilizado.

                      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)
                                        Bucket 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)
                                        Bucket 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)
                                        Bucket 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)
                                        Bucket 13 from 15, total 3 paths
    
  10. Se a saída parecer irregular, considere o seguinte:

    • O número de pares de endereço exclusivo de origem e de destino ou sessões que atravessam links paralelos.

    • O número e o tamanho dos pacotes em cada sessão. Uma seção conta com um grande número de pacotes? O balanceamento por destino depende da distribuição estatística do tráfego e torna-se mais efetivo à medida que aumenta o número de pares de origem-destino.

Compartilhamento de Carga após uma Alteração de Link

Quando uma alteração de tabela de roteamento ajusta o número de caminhos ativos para um destino, o Cisco Express Forwarding atualiza as estruturas de balanço de carga vistas na saída do comando show ip cef {prefix} internal. Em seguida, o Cisco Express Forwarding combina os pacotes recém-chegados a uma adjacência e a um hash bucket correspondente. O bucket selecionado pode ou não ser o mesmo utilizado anteriormente.

As etapas a seguir descrevem como as informações de balanceamento de carga do Cisco Express Forwarding são atualizadas após alterações no número de caminhos ativos para um prefixo de destino.

  1. Assuma que um prefixo de destino possa ser alcançado através de dois caminhos. O caminho 1 está inativo e o caminho 2 está ativo e carregando todo o tráfego.

  2. Quando o caminho 1 estiver novamente disponível, ele solicitará os processos de reconvergência de IP routing.

  3. Agora, o Cisco Express Forwarding equilibra a carga entre ambos os caminhos e não preserva os fluxos existentes entre o caminho 2. Isso deixaria o caminho 1 inutilizado. Resumindo, o Cisco Express Forwarding não considera que possa encaminhar pacotes de uma sessão em um caminho válido e possa selecionar um novo caminho para um fluxo, dependendo de qual hash bucket ele seleciona.

Validade de Informações de Compartilhamento de Carga para Exclusão

Após uma alteração na tabela de roteamento, o Cisco Express Forwarding exclui e recria as estruturas de balanceamento de carga que atribui caminhos ativos aos hash buckets. Durante o processo de reconstrução, alguns pacotes podem ser perdidos e o comando show ip cef {prefix} internal indica Validade de informações de compartilhamento de carga para exclusão.

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
  Validade de informações de compartilhamento de carga para exclusão
         

As alterações implementadas através da identificação de bug Cisco CSCdm87127 minimizam a perda de pacote durante uma alteração no número de caminhos ativos para a rota 0.0.0.0 padrão. Especificamente, o Cisco Express Forwarding agora aloca uma entrada FIB com espaço para o número máximo possível de caminhos ativos para essa rota.

Problemas Conhecidos

O balanceamento de carga do Cisco Express Forwarding não é igual nos quatro caminhos. Para obter detalhes adicionais, consulte CSCdm87756 (clientes registrados somente) .

Nas versões do Cisco IOS anteriores à 12.0(16)S, digitar o comando show ip cef exact-route pode fazer com que o Route Processor (RP) em um roteador de Internet da série Cisco 12000 ou um roteador da série Cisco 7500/RSP seja recarregado. Essa situação ocorre quando o prefixo de destino for recursivo e o roteador estiver compartilhando a carga para o próximo salto. Para obter mais detalhes, consulte CSCdt80914 (clientes registrados somente) , o que resolve esse problema.

Suporte a Hardware para Balanceamento de Carga Cisco Express Forwarding

O balanceamento de carga por pacote do Cisco Express Forwarding era originalmente suportado em plataformas que utilizam o encaminhamento com base em software. Tais plataformas incluem as séries 2600, 3600 e 7200. Agora existe suporte para o balanceamento de carga por pacote no hardware usando a tecnologia PXF (Parallel eXpress Forwarding) na série 7200 com um NSE-1 e a série 10000. Na série Catalyst 6000, os comandos ip load-sharing per-packet, ip cef accounting per-prefix e ip cef accounting non-recursive Cisco IOS Cisco Express Forwarding no MSFC2 aplicam-se apenas ao tráfego switching no Cisco Express Forwarding no software no MSFC2. Os comandos não afetam o tráfego que é switching pela Camada 3 do hardware nos módulos de switching equipados com PFC2 ou DFC. Consulte Configurando o Switching da Camada 3 do IP Unicast no Supervisor Engine 2 para obter mais informações.

Observação: Um router Cisco 7300 com uma placa do processador NSE-100 não suporta o balanceamento de carga por pacote CEF no PXF. O PXF suporta apenas o balanceamento de carga por destino. No entanto, parecia que eles tinham suporte porque os comandos de configuração ficavam disponíveis na CLI do roteador. Isso foi corrigido e registrado na identificação de bug Cisco CSCdx63389.

Nas séries 12000, o balanceamento de carga por pacote está disponível em todos os engines de encaminhamento da Camada 3, exceto os engines 3 e 4. Cada placa de linha toma decisões de encaminhamento independentes. Para visualizar a rota exata para cada fluxo de IP, use o comando exec slot X show ip hardware-cef exact-route src dst nas placas de linha que utilizam tabelas do Cisco Express Forwarding baseadas em hardware.


Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Informações Relacionadas


Document ID: 18285