Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Conventions

Informações de Apoio

O que é 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

Verificação do balanceamento de carga do Cisco Express Forwarding

Carregue o compartilhamento após uma alteração de link

Informações sobre compartilhamento de carga devem ser excluídas

Problemas conhecidos

Suporte de hardware para balanceamento de carga do Cisco Express Forwarding

Informações Relacionadas

Discussões relacionadas da comunidade de suporte da Cisco

Introduction

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.

Prerequisites

Requirements

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.

Componentes Utilizados

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.

Conventions

Para obter mais informações sobre convenções de documento, consulte as Convenções de dicas técnicas Cisco.

Informações de Apoio

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 que é 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 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?

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 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.

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 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

Mecanismos internos de balanceamento de carga do Cisco Express Forwarding

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.

1. 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

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.

Verificação do balanceamento de carga do Cisco Express Forwarding

Siga as etapas a seguir 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

!--- This output shows Cisco Express Forwarding is not enabled. !--- Use ip cef command in global configuration to enable it.

2. 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

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

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.

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 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]

7. 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.

8. 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

9. 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

10. 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.

Carregue o compartilhamento após uma alteração de link

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.

1. 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.

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

3. 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.

Informações sobre compartilhamento de carga devem ser excluídas

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.

Problemas conhecidos

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.

Suporte de hardware para balanceamento de carga do 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 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.

Informações Relacionadas

- Cisco Express Forwarding

- Balanceamento de carga com o Cisco Express Forwarding

- Suporte a roteamento IP

- Suporte Técnico e Documentação - Cisco Systems