O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento esclarece como o Cisco IOS? O software implementa o balanceamento de carga da Camada 3 em vários links paralelos ao usar o Cisco Express Forwarding.
Este documento pressupõe uma compreensão das duas estruturas de dados do Cisco Express Forwarding.
Base de informação de encaminhamento (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.
Este documento não se restringe a versões de software e hardware específicas.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. All of the devices used in this document started with a cleared (default) configuration. Se você estiver trabalhando em uma rede ativa, certifique-se de que entende o impacto potencial de qualquer comando antes de utilizá-lo.
Para obter mais informações sobre convenções de documento, consulte as Convenções de dicas técnicas Cisco.
O switching IP é o mecanismo interno usado pelo Cisco IOS para encaminhar pacotes por meio de um roteador. Os mecanismos disponíveis incluem: switching de processos, switching rápida e Cisco Express Forwarding. Depending on which of the three mechanisms is used to Switch the majority of packets, the overall system performance and load balancing is affected.
Os mecanismos de switching de IP 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 switching IP | Switching rápida e Cisco Express Forwarding por destino. | Switching de processos e encaminhamento Cisco Express por pacote. |
Vantagens | Com a switching rápida, fica garantido que os pacotes de um determinado destino tomarão o mesmo caminho, ainda que vários caminhos estejam disponíveis. Com a comutação Cisco Express Forwarding, os pacotes para um determinado par de hosts origem-destino têm garantia de seguir o mesmo caminho, mesmo que vários caminhos estejam disponíveis. O tráfego destinado a pares diferentes tende a tomar caminhos diferentes. | 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 a comutação rápida, a comutação por destino pode resultar em compartilhamento de carga desigual, pois os pacotes para um destino sempre seguem o mesmo caminho. O switching do Cisco Express Forwarding pode resultar em distribuição desigual com um pequeno número de pares origem-destino. O balanceamento de carga por destino depende da distribuição estatística do tráfego; o compartilhamento de carga torna-se mais eficiente à medida que o número de pares origem-destino aumenta. | 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 Voz sobre IP (VoIP) e outros fluxos que exigem entrega em sequência. |
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 inclui um prefixo de IP de destino para a tabela de roteamento usando as informações obtidas pelo intercâmbio de mensagens usando um Dynamic Routing Protocol 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 a cada caminho. Um conjunto de caminhos ativos para um prefixo de destino pode ter custos iguais ou desiguais. |
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 mais informações, consulte Como funciona o balanceamento de carga?
O Cisco Express Forwarding utiliza as informações de caminho na tabela de IP Routing para equilibrar o tráfego em enlaces 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).
Router A | Router B |
---|---|
interface Ethernet 0 ip address 192.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 192.168.20.0.
Por padrão, o OSPF suporta quatro caminhos de custo iguais para um destino. Neste cenário, o Roteador B é configurado com caminhos máximos iguais a um. Portanto, o Roteador B escolherá apenas um caminho entre os possíveis caminhos iguais com base em qual ele recebeu primeiro. O Roteador B é iniciado com a seleção de Serial 2 como caminho único para a rede 192.168.20.0. Use os comandos show ip cef e show ip route para exibir o conjunto de caminhos atual.
RouterB#show ip cef 192.168.20.0 192.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 192.168.20.0 Routing entry for 192.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
Use o comando de máximo de caminhos no OSPF para permitir mais de um caminho para 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 Enhanced Interior Gateway Routing Protocol/Interior Gateway Routing Protocol (EIGRP/IGRP) como seu Interior Gateway Protocol (IGP). Veja como o balanceamento de carga de caminho de custo desigual (variação) funciona no IGRP e no EIGRP? para obter mais informações.
RouterB(config)#router ospf 1 RouterB(config-router)#maximum-paths ? <1-6> Number of paths RouterB(config-router)#maximum-paths 3
Use o comando show ip route para confirmar se a tabela de roteamento contém dois caminhos para 192.168.20.0.
RouterB#show ip route 192.168.20.0 Routing entry for 192.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 Route metric is 74, traffic share count is 1 10.10.10.1, from 204.204.204.1, 00:00:11 ago, via Serial1 Route metric is 74, traffic share count is 1 !--- The route metric is 74 for both paths.
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. A Serial 3 tem um custo mais alto que a Serial 1 e Serial 2 e, portanto, é 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
Use o comando show run para confirmar se a Serial 3 está configurada com o comando ip ospf cost 100. Use o comando de subinterface no ip ospf cost 100 para removê-lo da configuração e fazer com que os custos em todos os três links seriais sejam iguais.
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 192.168.20.0.
RouterB#show ip route 192.168.20.0 Routing entry for 192.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 ver como o balanceamento de carga do Cisco Express Forwarding usa as informações na tabela de roteamento para encaminhar pacotes.
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 Cisco routers, a decisão de balanceamento de carga é tomada nas interfaces de saída. 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ê pode dizer que o caminho é uma sessão IP e cada sessão é logicamente identificada como um par de endereços origem-destino exclusivo.
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 origem e destino e verificado em relação à tabela de compartilhamento de carga.
Observação: há dois tipos principais de switching do 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 como padrão quando você habilita o Cisco Express Forwarding, sendo o método preferido de balanceamento de carga 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 por caminhos sem considerar 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 enlaces. 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 pode considerar diferentes caminhos, podendo resultar na reordenação de pacotes. Por esse motivo, o balanceamento de carga por pacote é inapropriado para certos tipos de tráfego de dados, como VoIP, que dependem dos pacotes que chegam ao destino em sequência. Use o balanceamento de carga por pacote para ajudar a garantir que um caminho para um único par origem-destino não fique sobrecarregado.
Use 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
Use 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 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
Vamos começar quebrando o mecanismo interno por trás do balanceamento de carga do Cisco Express Forwarding.
Cada sessão (consulte a tabela acima) é atribuída a um caminho ativo.
A atribuição sessão para caminho é feita com uma função hash que pega os endereços IP de origem e destino e, em versões recentes do Cisco IOS, uma ID de hash exclusiva que torna aleatória a atribuição no caminho de ponta a ponta.
Os caminhos ativos são atribuídos internamente a vários de 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 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 transporta o mesmo número de sessões.
Vamos ver um exemplo desses internos do Cisco Express Forwarding.
Use 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
Use o comando show ip cef {prefix} internal para exibir a atribuição de caminho para bucket.
RouterB#show ip cef 192.168.20.0 internal 192.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) !--- The load distribution line summarizes how each path is !--- assigned to the 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 uniformemente 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 dois e três caminhos ativos.
Balde/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 uniformemente aos hash buckets de 1 a 15.
RouterB#show ip cef 192.168.20.0 interface 192.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) !--- The active paths are assigned to hash buckets in a !--- round-robin pattern. 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 !--- Hash bucket 16 has been removed.
Observação: embora selecionem um único caminho para um destino, os mecanismos de switching rápido e Cisco Express Forwarding por destino diferem na maneira como selecionam esse caminho. O Cisco Express Forwarding considera os endereços IP origem e destino, enquanto a switching rápida considera apenas o endereço IP destino.
Siga as etapas a seguir para verificar o balanceamento de carga do Cisco Express Forwarding em seu roteador.
Confirme se o Cisco Express Forwarding está habilitado globalmente no roteador.
S3-4K-2#show ip cef %CEF not running Prefix Next Hop Interface !--- This output shows Cisco Express Forwarding is not enabled. !--- Use ip cef command in global configuration to enable it.
Confirme se a comutação por pacote ou por destino está habilitada nas interfaces de saída específicas. 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 Per packet loadbalancing is disabled 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 IP CEF switching enabled !--- Cisco Express Forwarding is enabled on the 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
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
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
Nota: 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 igual.
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
Confirme se o mecanismo de balanceamento de carga esperado do Cisco Express Forwarding está configurado em todas as interfaces de saída.
RouterB#show ip cef 192.168.20.0 192.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]
Habilite a contabilização de hash bucket para coletar estatísticas para entender melhor os padrões do Cisco Express Forwarding em sua rede. Por exemplo, você pode querer coletar informações como o número de pacotes e bytes comutados para um destino ou o número de pacotes comutados por 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 (Pacote).
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 fluidos através da Serial 2. Se você usar ping para gerar tráfego, certifique-se de que os pacotes ping transitem pelo roteador comutado 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 torna-se mais eficiente à medida que o número de pares origem-destino aumenta.
Enquanto manda tráfego para o prefixo, capture várias saídas do comando de interface de exibição. Analise os valores "txload" e "rxload". (Algumas interfaces exibem um único valor de "carga", que considera transmissão e recepção). Embora o balanceamento de carga por pacote forneça uma distribuição uniforme no número de pacotes, os enlaces paralelos podem exibir uma taxa levemente 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
Com o balanceamento de carga por destino do Cisco Express Forwarding, você pode determinar para qual caminho uma sessão é atribuída com o seguinte comando. Adicione a palavra-chave internal para exibir qual hash bucket é usado.
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
Se a saída parecer irregular, considere o seguinte:
O número de pares únicos de endereços de origem e de destino ou sessões que atravessam os 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 de carga por destino depende da distribuição estatística do tráfego e torna-se mais eficiente à medida que o número de pares origem-destino aumenta.
Quando uma alteração na tabela de roteamento ajusta o número de caminhos ativos para um destino, o Cisco Express Forwarding atualiza as estruturas de balanceamento de carga vistas na saída do comando interno show ip cef {prefix}. Em seguida, o Cisco Express Forwarding combina os pacotes recém-chegados a uma adjacência e a um bucket de hash 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.
Suponha que um prefixo de destino possa ser alcançado por dois caminhos. O caminho 1 está inativo e o caminho 2 está ativo e transportando todo o tráfego.
Quando o caminho 1 estiver novamente disponível, ele solicitará os processos de reconvergência de rotetamento IP.
O Cisco Express Forwarding agora equilibra a carga em ambos os caminhos e não preserva os fluxos existentes no caminho 2. Isso deixaria o caminho 1 sem uso. 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 bucket de mistura ele selecione.
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 Carregar informações de compartilhamento devido à 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 Load sharing information due for deletion
As alterações implementadas através do bug da Cisco ID CSCdm87127 minimizam a perda de pacotes durante uma alteração no número de caminhos ativos para a rota padrão 0.0.0.0. Especificamente, o Cisco Express Forwarding aloca uma entrada FIB com espaço para o número máximo possível de caminhos ativos para essa rota.
O balanceamento de carga do Cisco Express Forwarding não é igual nos quatro caminhos. Para obter mais detalhes, consulte CSCdm87756 (apenas clientes registrados) .
Em versões do Cisco IOS anteriores à 12.0(16)S, a inserção do comando show ip cef exatas-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 é recursivo e o roteador está compartilhando a carga para o próximo salto. Para obter mais detalhes, consulte CSCdt80914 (somente clientes cadastrados), o que resolve esse problema.
Na plataforma 6500 Series, o balanceamento de carga CEF por pacote não é suportado. Isso se deve à limitação de hardware e só é possível ter balanceamento de carga por destino atualmente. Portanto, a única opção é usar o Distributed Multilink Point-to-Point Protocol (dMLPPP) ou o compartilhamento de carga de fluxo da Camada 4.
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 os 2600, 3600 e 7200 Series. 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 de compartilhamento de carga por pacote do Cisco IOS Cisco Express Forwarding IP, ip cef accounting per-prefix e ip cef accounting non-recursive no MSFC2 aplicam-se somente ao tráfego que é comutado pelo Cisco Express Forwarding no software no MSFC2. Os comandos não afetam o tráfego comutado por camada 3 de hardware no PFC2 ou em módulos de switching equipados com DFC. Consulte Configurando o IP Unicast Layer 3 Switching no Supervisor Engine 2 para obter mais informações.
Observação: um roteador Cisco 7300 com uma placa de processador NSE-100 não suporta balanceamento de carga CEF por pacote no PXF. O PXF suporta apenas o balanceamento de carga por destino. No entanto, parece que eles têm suporte porque os comandos de configuração estavam disponíveis na CLI do roteador. Isso é corrigido e registrado na ID de bug da Cisco CSCdx63389.
Na série 12000, o balanceamento de carga por pacote está disponível em todos os mecanismos de encaminhamento da camada 3, exceto os mecanismos 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 ingresso que utilizam tabelas do Cisco Express Forwarding baseadas em hardware.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
10-Aug-2005 |
Versão inicial |