IP : Cisco Express Forwarding (CEF)

Como escolher o melhor caminho de switching pelo roteador para a sua rede

19 Setembro 2015 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback


Índice


Introdução

Há uma pletora de trajetos de switching disponíveis aos vários roteadores Cisco e Cisco IOS� libera-se. Qual é o melhor para a sua rede e como eles funcionam? Esta documentação é uma tentativa de explicar cada um dos seguintes caminhos de switching, para seja possível decidir sobre qual deles melhor se adapta à sua rede.

Primeiramente, examine o processo de encaminhamento próprio. Há três etapas a enviar um pacote através de um roteador:

  1. Determine se o destino do pacote é alcançável.

  2. Determine o salto seguinte para o destino, e a relação através de que esse salto seguinte é alcançável.

  3. Reescreva o cabeçalho de MAC no pacote para que ele alcance o salto seguinte.

Cada uma dessas etapas é crítica para que o pacote alcance seu destino.

Nota: Durante todo este documento, o caminho de IP Switching é usado como um exemplo; praticamente todas as informações fornecidas aqui são aplicáveis aos caminhos de switching equivalentes para outros protocolos, se houver.

Switching de processo

A comutação do processo é o mais baixo denominador comum nos trajetos de switching; está disponível em cada versão de IOS, em cada plataforma, e para cada tipo de tráfego que está sendo comutado. A comutação do processo é definida por dois conceitos essenciais:

  • A decisão e as informações de encaminhamento utilizadas para regravar o cabeçalho MAC no pacote são tiradas do cache da tabela de roteamento (da Base de Informações de Roteamento, ou RIB) e do Protocolo de Resolução de Endereços (ARP) ou de alguma outra tabela que contenha as informações de cabeçalho MAC mapeadas para o endereço IP de cada host que esteja diretamente conectado ao roteador.

  • O pacote é comutado por um processo normal que é executado dentro dos IO. Ou seja a decisão de encaminhamento é feita por um processo programado com o agendador de IOS e o corredor como um par a outros processos no roteador, tal como protocolos de roteamento. Os processos que são executado normalmente no roteador não são interrompidos para processar o interruptor um pacote.

A figura abaixo ilustra o caminho de switching do processo.

http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20a.gif

Examine este diagrama com mais detalhes:

  1. O processador da interface primeiro detecta que há um pacote na mídia da rede e o transfere à memória de entrada/saída no roteador.

  2. O processador de interface gera uma interrupção da recepção. Durante esta interrupção, o processador central determina que tipo de pacote este é (supõe que é um pacote IP), e copia-o na memória de processador caso necessário (esta decisão é dependente da plataforma). Finalmente, o processador coloca o pacote na fila de entrada dos processos apropriados e a interrupção é liberada.

  3. Na próxima vez em que o agendador for executado, ele perceberá o pacote na fila de entrada de ip_input e agendará a execução deste processo.

  4. Quando o ip_input é executado, consulta o RIB para determinar o salto seguinte e a interface de saída, a seguir consulta o cache ARP para determinar o endereço de camada física correto para este salto seguinte.

  5. Em seguida, ip_input regrava o cabeçalho de MAC do pacote e coloca esse pacote na fila de saída da interface de saída correta.

  6. O pacote é copiado da fila de saída da interface externa ao transmitir fila da interface externa; qualquer qualidade de serviço de saída ocorre entre essas duas filas.

  7. O processador de interface de emissor detecta o pacote em sua fila de transmissão e o transfere para a mídia da rede.

Quase todas as características que efetuam o packet switching, tal como o Network Address Translation (NAT) e o roteamento de política, fazem seu princípio no caminho de switching do processo. Uma vez que foram provados, e aperfeiçoados, estas características puderam, ou não puderam, para aparecer no interromper switching de contexto.

Interromper a switching de contexto

O interromper switching de contexto é o segundo dos métodos de switching preliminares usados por roteadores Cisco. As diferenças principal entre o interromper switching de contexto e a comutação do processo são:

  • O processo que é executado atualmente no processador é interrompido para comutar o pacote. Os pacotes são por encomenda comutado, um pouco do que comutados somente quando o processo do ip_input pode ser programado.

  • O processador usa algum formulário do cache de rota para encontrar toda a informação necessária comutar o pacote.

Esta figura ilustra o interromper switching de contexto:

http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20b.gif

Examine este diagrama com mais detalhes:

  1. O processador da interface primeiro detecta que há um pacote na mídia da rede e o transfere à memória de entrada/saída no roteador.

  2. O processador de interface gera uma interrupção da recepção. Durante esta interrupção, o processador central determina que tipo de pacote este é (supõe que é um pacote IP), e começa então a comutar o pacote.

  3. O processador procura o cache de rota para determinar se o destino do pacote é alcançável, o que a interface de saída deve ser, o que o salto seguinte para este destino é, e finalmente, que cabeçalho de MAC o pacote se tenha que com sucesso alcançar o salto seguinte. O processador usa esta informação para reescrever o cabeçalho de MAC do pacote.

  4. O pacote é copiado agora transmitir ou a fila de saída da interface externa (segundo vários fatores). A interrupção da recepção retorna agora, e o processo que estava sendo executado no processador antes que a interrupção ocorreu continuou a ser executado.

  5. O processador de interface de emissor detecta o pacote em sua fila de transmissão e o transfere para a mídia da rede.

A primeira pergunta que vem se ocupar após ter lido esta descrição é “o que está no esconderijo?” Há três respostas possíveis, segundo o tipo de interromper switching de contexto:

Switching rápida

O interruptor rápido armazena a informação de encaminhamento e a série de reescrita de cabeçalho de MAC usando uma árvore binária para a pesquisa rápida e a referência. Esta figura ilustra uma árvore binária:

20c.gif

No interruptor rápido, a informação de alcançabilidade é indicada pela existência de um nó na árvore binária para o destino do pacote. O cabeçalho de MAC e a interface externa para cada destino são armazenados como parte da informação do nó dentro da árvore. A árvore binária pode realmente ter 32 níveis (a árvore acima é abreviada extremamente com a finalidade da ilustração).

A fim procurar uma árvore binária, você parte simplesmente da esquerda (com o dígito mais significativo) no número que (do binário) você está procurando, e ramificar certo ou à esquerda na árvore baseada nesse número. Por exemplo, se você está procurando o relativo à informação ao número 4 nesta árvore, você começaria pelo direito de ramificação, porque o primeiro dígito binário é 1. Você seguiria a árvore para baixo, comparando o próximo dígito no número (binário), até chegar ao final.

Características do interruptor rápido

O interruptor rápido tem diversas características que são um resultado da estrutura de árvore binária e o armazenamento da informação reescrita de cabeçalho de MAC como parte dos nós de árvore.

  • Porque não há nenhuma correlação entre a tabela de roteamento e os índices do cache rápido (reescrita de cabeçalho de MAC, por exemplo), construir entradas de cache envolve todo o processamento que deve ser feito no caminho de switching do processo. Consequentemente, as entradas rápidas de cache são construídas porque os pacotes são processo comutado.

  • Porque não há nenhuma correlação entre os cabeçalhos de MAC (usados para reescritas) no cache ARP e na estrutura do cache rápido, quando a tabela ARP muda, alguma parcela do cache rápido deve ser invalidada (e recreado com da comutação do processo dos pacotes).

  • O cache rápido só pode criar entradas em uma profundidade (um comprimento de prefixo) para qualquer destino específico na tabela de roteamento.

  • Não há nenhuma maneira de apontar de uma entrada a outra dentro do cache rápido (o cabeçalho de MAC e a informação de interface externa são esperados estar dentro do nó), assim que todas as recursões do roteamento devem ser resolved quando uma entrada rápida de cache for construída. Ou seja as rotas recursiva não podem ser resolved dentro do cache rápido próprio.

Envelhecimento de Entradas de Switching Rápida

A fim manter as entradas rápidas do interruptor de perder sua sincronização com a tabela de roteamento e o cache ARP, e manter entradas não utilizadas no cache rápido da memória impropriamente de consumo no roteador, as 1/20th do cache rápido são invalidadas, aleatoriamente, cada minuto. Se a memória do Roteadores deixa cair abaixo de uma filigrana muito baixa, a 1/5th das entradas rápidas de cache está invalidada cada minuto.

Comprimento de prefixo de switching rápida

Para qual comprimento de prefixo a switching rápida cria entradas se apenas pode criar para um comprimento de prefixo em cada destino? Dentro dos termos do interruptor rápido, um destino é um destino alcançável único dentro da tabela de roteamento, ou uma rede principal. As regras para decidir a que comprimento de prefixo para construir uma entrada de cache dada esteja:

  • Se estiver criando uma entrada de política de ocupado, sempre armazene em cache em /32.

  • Ao criar uma entrada com base em multiprotocolo no circuito virtual do ATM (MPOA VC), faça sempre o armazenamento em cache para /32.

  • Se a rede não estiver dividida em sub-redes (sendo, portanto, uma entrada de rede principal):

    • Se é conectado diretamente, o uso /32;

    • Caso contrário, use a máscara de rede principal.

  • Se for uma supernet, use a máscara de supernet.

  • Se a rede for colocada em sub-rede:

    • Se conectado diretamente, uso /32;

    • Se há múltiplos caminhos para essa sub-rede, utilize /32;

    • Em todos os outros casos, use o comprimento de prefixo mais longo nessa rede principal.

Compartilhamento de carga

O interruptor rápido é inteiramente destino baseado; o compartilhamento de carga ocorre em uma base do destino per. Se há caminhos de custo igual múltiplos para uma rede de destino particular, o cache rápido tem uma entrada para cada host alcançável dentro dessa rede, mas todos traficam destinado a um host particular seguem um link.

Switching ideal

O switching ótima armazena a informação de encaminhamento e a informação reescrita de cabeçalho de MAC em uma árvore multivias de maneira 256 (árvore de via 256). Usar uma mtree reduz o número de etapas que devem ser tomadas ao olhar acima um prefixo, como ilustrado na figura seguinte.

20d.gif

Cada octeto é usado para determinar qual dos ramos 256 a tomar a cada nível da árvore, que significa há, no máximo, 4 consultas envolvidas em encontrar todo o destino. Para uns comprimentos de prefixo mais curtos, somente as consultas do one-three podem ser exigidas. A informação de interface de saída e de reescrita de cabeçalho Mac é armazenada como parte do nó de árvore, assim que a invalidação de cache e o envelhecimento ainda ocorrem como no interruptor rápido.

A switching ideal também determina o comprimento do prefixo para cada entrada cache do mesmo modo que a switching rápida.

Cisco Express Forwarding

O Cisco Express Forwarding, igualmente usa uma estrutura de dados da maneira 256 para armazenar a transmissão e a informação reescrita de cabeçalho de MAC, mas não usa uma árvore. O Cisco Express Forwarding usa um trie, que signifique que a informação real que está sendo procurada por não está na estrutura de dados; em lugar de, os dados são armazenados em uma estrutura de dados separada, e o trie aponta-lhe simplesmente. Ou seja um pouco do que armazenando a interface externa e a reescrita de cabeçalho de MAC dentro da árvore própria, o Cisco Express Forwarding armazena esta informação em uma estrutura de dados separada chamada a tabela de adjacência.

http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20e.gif

Esta separação das informações de acessibilidade (na tabela de Cisco Express Forwarding) e informações de encaminhamento (na tabela de adjacência) fornece diversos benefícios:

  • A tabela de adjacência pode ser construída separadamente da tabela do Cisco Express Forwarding, permitindo que ambos construam sem processo que comuta todos os pacotes.

  • A reescrita de cabeçalho de MAC usada para enviar um pacote não é armazenada nas entradas de cache, muda assim em uma série de reescrita de cabeçalho de MAC não exige a invalidação das entradas de cache.

  • Você pode apontar diretamente à informação de encaminhamento, um pouco do que ao salto seguinte recursed, a fim resolver rotas recursiva.

Essencialmente, todo o envelhecimento de cache é eliminado, e o esconderijo PRE-é construído com base na informação contida na tabela de roteamento e no cache ARP. Não há nenhuma necessidade de processar o interruptor nenhum pacote para construir uma entrada de cache.

Outras entradas na tabela Adjacência

A tabela de adjacência pode conter entradas diferentes das séries de reescrita de cabeçalho de MAC e da informação de interface externa. Alguns dos vários tipos de entradas que podem ser colocadas na tabela de adjacência incluem:

  • esconderijo — Uma série de reescrita de cabeçalho de MAC e uma interface externa usadas para alcançar um host ou um roteador adjacente particular.

  • receba — Os pacotes destinados a este endereço IP de Um ou Mais Servidores Cisco ICM NT devem ser recebidos pelo roteador. Isto inclui os endereços de broadcast e os endereços configurados no roteador próprio.

  • gota — Os pacotes destinados a este endereço IP de Um ou Mais Servidores Cisco ICM NT devem ser deixados cair. Isto podia ser usado para o tráfego negado por uma lista de acessos, ou distribuído a uma interface nula.

  • pontapé — O Cisco Express Forwarding não pode comutar este pacote; transmita-o ao próximo método de switching mais conveniente (em geral, switching rápida) para processamento.

  • recolha — O salto seguinte é anexado diretamente, mas não há nenhuma série de reescrita de cabeçalho de MAC atualmente disponível.

Adjacências glean

Uma entrada da adjacência glean indica que um salto seguinte particular deve diretamente ser conectado, mas não há nenhuma informação reescrita de cabeçalho de MAC disponível. Como estes obtêm construídos e usados? Um roteador executando o Cisco Express Forwarding e conectado a uma rede de transmissão, como mostrado na figura a seguir, cria algumas entradas da tabela de adjacência por padrão.

http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20f.gif

As quatro entradas de tabela de contiguidade construídas à revelia são:

10.1.1.0/24, version 17, attached, connected
0 packets, 0 bytes
  via Ethernet2/0, 0 dependencies
    valid glean adjacency
10.1.1.0/32, version 4, receive
10.1.1.1/32, version 3, receive
10.1.1.255/32, version 5, receive

Observe que existem quatro entradas: três recebem, e se recolhe. Cada um recebe a entrada representa um endereço de broadcast ou um endereço configurado no roteador, quando a entrada recolher representar o restante do espaço de endereços na rede anexa. Se um pacote é recebido para o host 10.1.1.50, o roteador tenta comutá-lo, e encontra-o resolvido a esta adjacência glean. O Cisco Express Forwarding sinaliza então que uma entrada de cache ARP está precisada para 10.1.1.50, o processo ARP envia um pacote ARP, e a entrada de tabela de contiguidade apropriada é construída da informação nova do cache ARP. Depois que esta etapa está completa, a tabela de adjacência tem uma entrada para 10.1.1.50.

10.1.1.0/24, version 17, attached, connected
0 packets, 0 bytes
  via Ethernet2/0, 0 dependencies
    valid glean adjacency
10.1.1.0/32, version 4, receive
10.1.1.1/32, version 3, receive
10.1.1.50/32, version 12, cached adjacency 208.0.3.2
0 packets, 0 bytes
  via 208.0.3.2, Ethernet2/0, 1 dependency
    next hop 208.0.3.2, Ethernet2/0
    valid cached adjacency
10.1.1.255/32, version 5, receive

O próximo pacote que o roteador recebe destinado a 10.1.1.50 é comutado por meio desta nova adjacência.

Compartilhamento de carga

O Cisco Express Forwarding igualmente aproveita-se da separação entre a tabela do Cisco Express Forwarding e a tabela de adjacência para fornecer um formulário melhor do compartilhamento de carga do que todo o outro modo do interromper switching de contexto. Uma tabela de compartilhamento de carga é introduzida entre a tabela do Cisco Express Forwarding e a tabela de adjacência, como ilustrado nesta figura:

20g.gif

A tabela do Cisco Express Forwarding aponta a esta tabela de compartilhamento de carga, que contém ponteiros às várias entradas de tabela de contiguidade para caminhos paralelos disponíveis. Os endereços de rementente e destinatário são passados através de um algoritmo de hash para determinar que entrada de tabela de compartilhamento de carga a se usar para cada pacote. Pela partilha de carga de pacote pode ser configurado, neste caso cada pacote usa uma entrada de tabela de compartilhamento de carga diferente.

Cada tabela de compartilhamento de carga tem 16 entradas entre que os trajetos disponíveis são divididos com base no contador da porção de tráfego na tabela de roteamento. Se os contadores da porção de tráfego na tabela de roteamento são todos os 1 (como no caso dos caminhos de custo igual múltiplos), cada salto seguinte possível recebe um número igual de ponteiros da tabela de compartilhamento de carga. Se o número de caminhos disponíveis não é uniformemente divisível em 16 (desde que há 16 entradas de tabela de compartilhamento de carga), alguns trajetos terão mais entradas do que outro.

Começando no Cisco IOS Software Release 12.0, o número de entradas na tabela de compartilhamento de carga é reduzido para fazer determinado cada trajeto tem um número proporcional de entradas de tabela de compartilhamento de carga. Por exemplo, se há três caminhos de custo igual na tabela de roteamento, simplesmente 15 entradas de tabela de compartilhamento de carga estão usadas.

Qual é o melhor caminho de switching?

Sempre que possível, você quer seu Roteadores comutar no contexto da interrupção porque é pelo menos uma ordem uma magnitude de mais rápido do que o interruptor do nível de processo. O Cisco Express Forwarding Switching é definidamente mais rápido e melhor do que todo o outro modo de switching. Nós recomendamo-lo Cisco Express Forwarding do uso se o protocolo e os IO que você está executando o apoia. Isto é particularmente verdadeiro se você tem um número de enlaces paralelos através de que o tráfego deve ser carga compartilhada. Alcance a página do Cisco Feature Navigator (clientes registrados somente) para determinar que IO você precisa para o apoio CEF.

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