Press "Enter" to skip to content

MultiLayer Switching ou Switch de Camada 3 – Como funciona?

0

Como funciona, principais funcionalidades e comandos utilizados em switch Cisco de camada 3 ou Multilayer switch.

Os switches Catalyst das series 3750, 4500, 6500, etc. possuem a capacidade de trabalhar a nível 2 e ademais rotear tráfego (camada 3), essa função é conhecida como switch multicamada  ou switch de camada 3 (MLS – Multilayer Switching).

SWITCH – ROTEAMENTO DE VLANS

 Basicamente uma VLAN é um domínio de difusão tipicamente utilizado para separar dispositivos geralmente na camada de acesso.

Para o envio e recepção de pacotes entre VLANs é possível utilizar qualquer desses mecanismos:

  • Um roteador com conexão física para cada uma das VLANs.
  • Um roteador com conexões lógicas para cada uma das VLANs
  • Um switch multicamada (switch de camada 3).

Os switches multicamada podem realizar comutação de camada 2 com interfaces de camada 2 e roteamento entre VLANs com interfaces de camada 3.

Essas interfaces de camada 3 poderiam ser portas do switch ou interfaces SVI (Switch Virtual Interface), que por uma interface de camada 3 virtual associada a uma VLAN.

A seguinte figura mostra como podemos utilizar os diferentes tipos de interfaces:

SWITCH – CONFIGURAÇÃO DE ROTEAMENTO

Para poder rotear tráfego entre VLANs é necessário o serviço de um dispositivo capaz de realizar roteamento de camada 3 através de um protocolo de roteamento ou rotas estáticas.

Devido a que os switches multicamada contam com diferentes tipos de interfaces é necessário especificar de que maneira será utilizada cada interface do switch. Dependendo do modelo das portas serão por padrão de camada 2 (Cisco series 2950, 3560, 4500) ou de camada 3 (Cisco series 6500).

Uma porta pode ser de camada 2 ou camada 3 dependendo da configuração do comando switchport. Para ver em que camada está configurada a porta, podemos utilizar o seguinte comando:

Switch# show interface type mod/num switchport

Se a saída do comando mostra switchport como enable ou habilitado então a porta será de camada 2, se mostra como disable ou desabilitado será de camada 3:

Switch# sh interfaces GigabitEthernet1/0/1  switchport
Name: Gi1/0/1
Switchport: Enabled

Para configurar uma porta para que opere na camada 2 utilizamos o seguinte comando:

Switch(config-if)# switchport

Para configurar uma porta para que trabalhe na camada 3 podemos utilizar o comando:

Switch(config-if)# no switchport
Switch(config-if)# ip address ip-address mask

 O ultimo comando serve para atribuir um endereço IP na porta, já que foi convertida para camada 3.

SWITCH – CONFIGURAÇÃO DE INTERFACE ROTEADA (SVI)

 É possível atribuir um endereço IP a uma interface virtual SVI (Switch Virtual Interface) que identifica uma VLAN em particular, que é de grande utilidade quando existe tráfego de entrada e saída dessa VLAN.

Criar uma VLAN não significa criar uma SVI, as VLANs e as SVIs são definidas e criadas separadamente.

Para configurar uma interface SVI utilizamos os comandos:

Switch(config-if)# interface vlan vlan-id
Switch(config-if)# ip address ip-address mask

 Para que a interface SVI funcione corretamente devemos criar previamente a VLAN e essa deve estar habilitada e associada em alguma porta de camada 2. A interface SVI não deve estar em estado shutdown.

 A seguinte sintaxe mostra a configuração de uma interface SVI:

Switch(config)# vlan 20
Switch(config-vlan)# name Guia_CCNP
Switch(config-vlan)# exit
Switch(config)# Interface Giga2/20
Switch(config-if)# switchport access vlan 20
Switch(config)# interface vlan 20
Switch(config-if)# Description Guia CCNP
Switch(config-if)# ip address 192.168.100.1 255.255.255.0
Switch(config-if)# no shut

 SWITCH – CEF

Os switches Catalyst podem utilizar diferentes métodos de envio de tráfego, CEF (Cisco Express Forwarding) é o mais utilizado na atualidade.

O switch multicamada começou como uma técnica combinada entre a processadora de roteamento RP (Routing Processor) e o mecanismo de switching SE (Switching Engenie).

O funcionamento desse mecanismo consiste em que o primeiro pacote seja processado pela RP e os seguintes pela SE. Esse processo é conhecido como NetFlow ou Route Cache Switching.

Route Cache Switching deu passo ao importante mecanismo mais eficiente baseado na busca dinâmica de informação das tabelas, chamado CEF. Cisco Express Forwarding é uma avançada tecnologia de camada 3 para comutação de pacotes IP. Esta funcionalidade aperfeiçoa o desempenho e gera uma maior escalabilidade em redes grandes e que requerem dinamismo, como redes com muitos aplicativos WEB com muitas sessões.

As seguintes plataformas permitem implementar CEF em hardware e dependendo do tipo de IOS terão habilitado por padrão essa função: 2950; 3550; 3560; 3750; 4500 com supervisor III, IV ou V; 6500 com supervisor 2/MSFC2 ou Supervisor 720/MSFC3 integrada.

CEF espera que a tabela de roteamento de camada 3 esteja construída para então gerar de maneira dinâmica a tabela de envio de pacotes ou tabela CEF, que permitirá comutar esses pacotes rapidamente.

Dependendo da plataforma, CEF normalmente está configurado por padrão.

Para desabilitá-lo é possível utilizando o comando no ip route-cache cef ou no ip cef.  Para habilitá-lo novamente bastará com o comando ip cef.

SWITCH – TABELA FIB

Na tabela de roteamento consta toda a informação de camada 3 ordenada com as entradas mais específicas em primeiro lugar.

A FIB (Forwarding Information Base) é a tabela utilizada pela CEF, é construída dinamicamente a partir da tabela de roteamento. Quando a tabela de roteamento é modificada, a FIB é atualizada automaticamente. Essa tabela também tem entradas ordenadas pelo o critério das mais específicas e conta ademais com a informação de próximo salto.

Podemos ver a FIB associada com uma interface VLAN utilizando o seguinte comando:

Switch# show ip cef [type mod/num | vlan vlan-id] [detail]

A seguinte sintaxe mostra um exemplo das entradas FIB:

Switch# show ip cef

10.18.21.0/32        receive              Vlan8

10.18.21.1/32        receive              Vlan8

10.18.21.4/32        attached             Vlan8

10.18.21.5/32        attached             Vlan8

Podemos especificar um prefixo e mascara de sub-rede para ver as entradas FIB com o seguinte comando.

Switch# sh ip cef 10.16.21.0 255.0.0.0 longer-prefixes

Prefix               Next Hop             Interface

10.21.0.0/16         attached             Vlan1

10.159.146.0/23      10.159.91.10         Vlan8

10.159.159.16/28     10.159.159.1         Vlan16

Com o parâmetro detail obtemos informações mais detalhada:

Switch# show ip cef 10.159.159.16 255.255.255.240 detail
10.159.159.16/28, epoch 3
recursive via 10.159.159.1
attached to Vlan16

O contador epoch indica o numero de vezes que toda a tabela CEF foi eliminada e regenerada. Também detalha que para chegar na sub-rede 10.159.159.15/28 existe 1 possível salto.

Switch# show ip cef epoch
VRF: Default
Database epoch:        3 (617 entries at this epoch)

Uma vez que a tabela CEF está construída os pacotes são comutados mediante o SE, que é muito mais eficiente e rápido que uma busca na tabela de roteamento mediante RP.

Em algumas situações esse processo pode não funcionar devidamente, algumas das possíveis caudas de que um pacote não possa ser enviado mediante FIB podem ser:

  • Não pode localizar a entrada na FIB
  • A FIB está cheia.
  • O TTL do pacote IP esgotou.
  • A MTU está excedida, então o pacote deve ser fragmentado.
  • Um ICMP redirect está envolvido.
  • O tipo de encapsulação não é suportado.
  • Os pacotes são tunelados, requerendo compressão e criptografia.
  • Uma ACL com a opção log configurada foi ativada.

CEF ademais de poder utilizar em uma simples plataforma de hardware como é o caso, por exemplo, em switches 3560, também pode utilizar de maneira distribuída quando permitido pelo hardware, isso é conhecido como distributed CEF ou dCEF.

DCEF permite que, por exemplo, os módulos do 6500 possam guardar instancias independentes do CEF liberando assim as placas supervisoras dessa carga.

CEF

DCEF

 

SWITCH – TABELA DE ADJACÊNCIAS

 Um roteador guarda uma tabela que contém informação de camada 3 com prefixos e próximos saltos, em uma tabela ATP que contém as associações entre a camada 2 e o correspondente endereço de camada 2, essas tabelas são guardadas de forma independente.

FIB guarda o próximo salto para cada entrada e ademais o endereço de camada 2 associado com a porta de enlace. Essa parte da FIB é conhecida como a tabela de adjacência.  Para mostrar essa tabela utilizamos o seguinte comando:

Switch# show adjacency [type mod/num | vlan vlan-id] [summary | detail]

Com o parâmetro summary podemos conhecer o numero total de adjacências através de uma interface ou SVI:

switch#show adjacency summary

Adjacency table has 575 adjacencies:

each adjacency consumes 396 bytes (56 bytes platform extension)

575 complete adjacencies

0 incomplete adjacencies

575 adjacencies of linktype IP

575 complete adjacencies of linktype IP

0 incomplete adjacencies of linktype IP

0 adjacencies with fixups of linktype IP

539 adjacencies with IP redirect of linktype IP

0 adjacencies post encap punt capable of linktype IP

Com o parâmetro detail obtemos a informação detalhada sobre as adjacências:

Switch# show adjacency vlan 8 detail
Protocol Interface          Address
IP       Vlan8              10.159.91.5(8)
2 packets, 192 bytes
epoch 0
sourced in sev-epoch 0
Encap length 14
001819BDAC82A418757451440800
L2 destination address byte offset 0
L2 destination address byte length 6
Link-type after encap: ip
ARP
IP       Vlan8              10.159.91.10(12)
25 packets, 2750 bytes
epoch 0
sourced in sev-epoch 0
Encap length 14
001570888A92A418757451440800
L2 destination address byte offset 0
L2 destination address byte length 6
Link-type after encap: ip

Podemos ver o endereço IP e o MAC do host diretamente conectado. O MAC corresponde aos primeiros 6 octetos do código em hexadecimal, o resto está formado pelo MAC da interface de camada 3 e pelo valor EtherType que para IP é 0x0800.

A tabela de adjacências se constrói a partir da tabela ARP, como mostra o exemplo anterior, utilizando o temporizador age. Em caso de não conhecer uma entrada ARP, a entrada na FIB aparecerá como CEF glean. Isso significa que o CEF não pode enviar pacotes devido a que desconhece o endereço de camada 2, nesse caso será necessário que o motor de camada 3 gere um ARP request para obter um ARP reply com essa informação.

A seguinte sintaxe mostra um exemplo do estado glean:

Switch# sh ip cef adjacency glean
Prefix               Next Hop             Interface
10.18.21.0/24        attached             Vlan8
10.159.255.144/32    attached             Vlan1

Switch# #sh ip arp 10.159.255.144

PIRsw34353#sh ip cef 10.159.255.144 255.255.255.255 detail
10.159.255.144/32, epoch 2, flags attached, connected
O packets, 0 bytes
Via vlan 1, 0 dependencies
Valid glean adjacency

 

Os pacotes recebidos durante o tempo em que a entrada da FIB está em estado glean esperando pela resolução do ARP são descartados para evitar que as filas encham e que o motor de camada 3 seja sobrecarregado enviando petições ARP duplicadas. Isso é conhecido como thottling.

Em caso de não receber um ARP reply em 2 segundos, o thottling é liberado e é enviado outro ARP request.

Quando o ARP reply é recebido o thottling é liberado e a entrada FIB é completada de maneira que os pacotes possam ser enviados usando hardware.

A tabela de adjacências pode conter as seguintes entradas:

  • Null Adjacency: Usado para comutar pacotes destinados à interface null. Essa interface absorve o tráfego destinado para ela sem realmente rotear, simplesmente eliminando-o.
  • Drop Adjacency: Usado para comutar pacotes que não podem ser enviados devido a uma falha na encapsulação, a um endereço que não pode ser resolvido, um protocolo não suportado, falta de rota, falta de adjacência ou erro de checksum. O seguinte comando mostra a informação contida:
Switch# sh ip cef switching statistics
Reason                              Drop       Punt  Punt2Host
RP LES No route                     14          0          5
RP LES No adjacency                 222537      0    5623258
RP LES Incomplete adjacency         151         0         14
RP LES TTL expired                  0           0      19066
RP LES Total                        222702      0    5642343
All Total                           222702      0    5642343

 

  • Discard Adjacency: Utilizado quando os pacotes são descartados devido a uma ACL ou outro tipo de política.
  • Punt Adjacency: Utilizado quando os pacotes devem ser enviados ao motor de camada 3 (RP) para um processamento mais intensivo, as razões aparecem nos contadores do comando:

 

Switch# show cef not-cef-switched
IPv4 CEF Packets passed on to next switching layer
Slot  No_adj No_encap Unsupp Redire Recei Options  Access  Frag
RP    0     0         358169   0   872793  0        0        0

 

SWITCH – MODIFICANDO O PACOTE

Antes que um pacote seja enviado utilizando o CEF o cabeçalho do pacote deve ser modificado reescrevendo certos parâmetros. A seguinte lista mostra as alterações efetuadas nos pacotes enviados através do CEF.

  • Endereço de destino de camada 2 substitui-se pelo MAC do seguinte salto.
  • Endereço de origem de camada 2 substitui-se pelo MAC da interface de camada 3 de saída do switch.
  • O TTL do IP é diminuído em uma unidade.
  • O checksum do IP é recalculado.
  • O checksum de camada 2 é recalculado.

Essas tarefas são levadas a cabo também em um roteador tradicional, mas um switch multicamada conta com hardware especifico para reescrever o pacote, fazendo com que o rendimento e velocidade sejam maiores.

É recomendável manter a CEF ativa sempre quando possível.

SWITCH – VERIFICAÇÕES MULTICAMADA

Para verificar a configuração de camada 2 de uma porta utilizamos o seguinte comando:

Switch# sh interfaces GigabitEthernet2/0/48 switchport
Name: Gi2/0/48
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: On
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk Native VLAN tagging: enabled
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL

A saída mostra a VLAN de acesso ou o modo trunk utilizado e a VLAN nativa. Os modos administrativos mostram que maneira foi configurada a porta, e os modos operacionais mostram o estado ativo da porta.

Podemos utilizar o mesmo comando para verificar a configuração de uma porta de camada 3, nesse caso a saída indica que a camada 2 está desabilitado:

Switch# sh interfaces GigabitEthernet2/0/49 switchport
Name: Gi2/0/49
Switchport: Disabled

O mesmo comando sem o parâmetro switchport pode servir para ver o estado físico da interface. Para ver um resumo de todas as interfaces utilizamos o comando show interface status.

switch# sh interfaces status
Port    Name        Status     Vlan Duplex Speed Type
Gi1/0/1 Description connected  8    full   1000 10/100/1000BaseTX
Gi1/0/2 Description notconnect 1    auto   auto 10/100/1000BaseTX
Gi1/0/3 Description notconnect 1    auto   auto 10/100/1000BaseTX
Gi1/0/4 Description notconnect 1    auto   auto 10/100/1000BaseTX
...

Para verificar a configuração de uma interface SVI utilizamos o comando show interface vlan.

Para ver as VLANs configuradas em um switch utilizamos o comando show vlan:

Switch#sh vlan
VLAN Name    Status    Ports
---- -------------------------------- --------- ----------------
1    Default active    Gi1/0/2, Gi1/0/3, Gi1/0/4, Gi1/0/5, Gi1/0/6
7            active    Gi2/0/20
8            active    Gi1/0/7, Gi1/0/9, Gi1/0/10, Gi1/0/12

 

Para mostrar a informação IP detalhada de uma interface do switch utilizamos o comando show ip interface:

Switch#sh ip int Vlan3
Vlan3 is up, line protocol is up
Internet address is 10.252.21.2/28
Broadcast address is 255.255.255.255
Address determined by non-volatile memory
MTU is 1500 bytes
Helper address is not set
Directed broadcast forwarding is disabled
Outgoing access list is DENY_TRAFEGO
Inbound  access list is not set
Proxy ARP is enabled
Local Proxy ARP is disabled
Security level is default
Split horizon is enabled
ICMP redirects are always sent
ICMP unreachables are always sent
ICMP mask replies are never sent
IP fast switching is enabled
IP CEF switching is enabled
IP CEF switching turbo vector
IP multicast fast switching is disabled
IP multicast distributed fast switching is disabled
IP route-cache flags are Fast, CEF
Roteador Discovery is disabled
IP output packet accounting is disabled
IP access violation accounting is disabled
TCP/IP header compression is disabled
RTP/IP header compression is disabled
Probe proxy name replies are disabled
Policy routing is disabled
....

 

O comando show ip interface brief mostra um resumo de todas as interfaces:

Switch#sh ip int brie
Interface              IP-Address      OK? Method Status  Protocol
Vlan1                  10.21.1.1       YES NVRAM  up      up
Vlan3                  10.252.21.2     YES NVRAM  up      up
Vlan8                  10.18.21.1      YES NVRAM  up      up
GigabitEthernet1/0/1   unassigned      YES unset  up      up
GigabitEthernet1/0/5   unassigned      YES unset  down  down
GigabitEthernet1/0/6   unassigned      YES unset  up      up

CEF depende de que a informação de roteamento seja correta e que esteja armazenada no mecanismo de hardware de envio de camada 3. Esta informação está contida na FIB e se mantém dinamicamente. Para ver a FIB utilizamos o comando show ip cef.

 

Switch# show ip cef
Prefix               Next Hop             Interface
0.0.0.0/0            10.252.21.1          Vlan3
0.0.0.0/32           receive
10.16.21.0/24        10.159.191.1         Vlan17
10.18.21.0/24        attached             Vlan8
10.18.21.0/32        receive              Vlan8
10.18.21.1/32        receive              Vlan8

 

Para verificar a FIB relativa a uma interface utilizamos o comando:

Switch# sh ip cef Vlan8 detail
IPv4 CEF is enabled for distributed and running
VRF Default:
446 prefixes (446/0 fwd/non-fwd)
Default network 0.0.0.0/0
Table id 0
Database epoch:        2 (446 entries at this epoch)
10.18.21.0/24, epoch 2, flags attached, connected, cover dependents, need deagg
Covered dependent prefixes: 35
need deagg: 3
notify cover updated: 32
attached to Vlan8

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: