Contents

Introduction

Topologia

Determine o mecanismo de encaminhamento de entrada

Configurar o disparador

Iniciar a captura

Interpretar os resultados

Verificação adicional

Introduction

Este documento descreve as etapas usadas para executar um ELAM em um módulo F2 do Cisco Nexus 7000 (N7K), explica as saídas mais relevantes e descreve como interpretar os resultados.

Tip: Consulte o documento ELAM Overview para obter uma visão geral sobre ELAM.

Topologia

Neste exemplo, um host na VLAN 10 (10.1.1.101 com endereço MAC 0050.56a1.1a01), a porta Eth6/4 envia uma solicitação do Internet Control Message Protocol (ICMP) a um host que também está na VLAN 10 (10.1.1.10 2 com endereço MAC 0050.56a1.1aef), porta Eth6/3. ELAM é usado para capturar esse único quadro de 10.1.1.101 a 10.1.1.102. É importante lembrar que o ELAM permite capturar apenas um único quadro.

Para executar um ELAM no N7K, você deve primeiro se conectar ao módulo apropriado (isso requer o privilégio de administrador de rede):

N7K# attach module 6

Attaching to module 6 ...

To exit type 'exit', to abort type '$.'

module-6#

Determine o mecanismo de encaminhamento de entrada

Espera-se que o tráfego ingresse no switch na porta Eth6/4. Ao verificar os módulos no sistema, você verá que o Módulo 6 é um módulo F2. É importante lembrar que o N7K é totalmente distribuído e que os módulos, não o supervisor, tomam as decisões de encaminhamento para o tráfego de dataplane.

N7K# show module 6

Mod  Ports  Module-Type                 Model              Status

---  -----  --------------------------- ------------------ -------

6    48     1/10 Gbps Ethernet Module   N7K-F248XP-25E     ok

Para os módulos F2, execute o ELAM no FE (L2) com Clipper de nome de código interno. Observe que o L2 FE Data Bus (DBUS) contém as informações originais do cabeçalho antes das pesquisas de L2 e Camada 3 (L3), e o RBUS (Result Bus) contém os resultados após as pesquisas de L3 e L2.

O N7K F2 tem 12 FEs por módulo, portanto você deve determinar o Clipper ASIC usado para o FE na porta Eth6/4. Insira este comando para verificar:

module-6# show hardware internal dev-port-map

--------------------------------------------------------------

CARD_TYPE:         48 port 10G

>Front Panel ports:48

--------------------------------------------------------------

Device name             Dev role              Abbr num_inst:

--------------------------------------------------------------

> Clipper FWD            DEV_LAYER_2_LOOKUP     L2LKP  12

+-----------------------------------------------------------------------+

+----------------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++------------+

+-----------------------------------------------------------------------+

FP port |  PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF

...

3       0       0       0       0       0       0

4       0       0       0       0       0       0

Na saída, você pode ver que a porta Eth6/4 está na instância do Clipper (L2LKP)0.

module-6# elam asic clipper instance 0

module-6(clipper-elam)# layer2

module-6(clipper-l2-elam)#

Configurar o disparador

O Clipper ASIC suporta acionadores ELAM para vários tipos de quadros. O gatilho ELAM deve ser alinhado com o tipo de quadro. Se o quadro for um quadro IPv4, o disparador também deve ser IPv4. Um quadro IPv4 não é capturado com um outro acionador. A mesma lógica se aplica ao IPv6.

O Clipper ASIC suporta estes tipos de quadro:

module-6(clipper-l2-elam)# trigger dbus ?

arp    ARP Frame Format

fc     Fc hdr Frame Format

ipv4   IPV4 Frame Format

ipv6   IPV6 Frame Format

other  L2 hdr Frame Format

pup    PUP Frame Format

rarp   Rarp hdr Frame Format

valid  On valid packet

Com o Nexus Operating Systems (NX-OS), você pode usar o caractere de ponto de interrogação para separar o disparador ELAM. Há várias opções disponíveis para ELAM no módulo F2:

module-6(clipper-l2-elam)# trigger dbus ipv4 ingress if ?

<CR>

destination-ipv4-address         destination ipv4 address

destination-mac-address          Inner destination mac address

source-index                     Source index

source-ipv4-address              source ipv4 address

source-mac-address               Inner source mac address

vlan                             Vlan

etc?

Para este exemplo, o quadro é capturado com base nos endereços IPv4 origem e destino, portanto, somente esses valores são especificados.

O cliente exige que os disparadores sejam definidos para o DBUS e o RBUS. Isso difere dos módulos M-Series, pois não há requisito para especificar uma instância de Buffer de Pacotes (PB). Isso simplifica o disparo RBUS.

Aqui está o gatilho do DBUS:

module-6(clipper-l2-elam)# trigger dbus ipv4 ingress if source-ipv4-address

10.1.1.101 destination-ipv4-address 10.1.1.102

Aqui está o gatilho do RBUS:

module-6(clipper-l2-elam)# trigger rbus ingress if trig

Iniciar a captura

Agora que o FE de entrada está selecionado e você configurou o acionador, você pode iniciar a captura:

module-6(clipper-l2-elam)# start

Para verificar o status do ELAM, insira o comando status:

module-6(clipper-l2-elam)# status

ELAM instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if

source-ipv4-address 10.1.1.101 destination-ipv4-address 10.1.1.102

L2 DBUS Armed

ELAM instance 0: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS Armed

Quando o quadro que corresponde ao disparador é recebido pelo FE, o status do ELAM é mostrado como Disparado:

module-6(clipper-l2-elam)# status

ELAM instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if

source-ipv4-address 10.1.1.101 destination-ipv4-address 10.1.1.102

L2 DBUS Triggered

ELAM instance 0: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS Triggered

Interpretar os resultados

Para exibir os resultados do ELAM, insira os comandos show dbus e show rbus. Aqui está o trecho dos dados ELAM mais relevantes para este exemplo (alguns resultados são omitidos):

module-6(clipper-l2-elam)# show dbus

--------------------------------------------------------------------

L2 DBUS CONTENT - IPV4 PACKET

--------------------------------------------------------------------

...

vlan                : 0xa             destination-index   : 0x0

source-index        : 0x3             bundle-port         : 0x0

sequence-number     : 0x3f            vl                  : 0x0

...

source-ipv4-address: 10.1.1.101

destination-ipv4-address: 10.1.1.102

destination-mac-address: 0050.56a1.1aef

source-mac-address: 0050.56a1.1a01

module-6(clipper-l2-elam)#  show rbus

--------------------------------------------------------------------

L2 RBUS INGRESS CONTENT

--------------------------------------------------------------------

l2-rbus-trigger     : 0x1             sequence-number     : 0x3f

di-ltl-index        : 0x2             l3-multicast-di     : 0x0

source-index        : 0x3             vlan-id             : 0xa

Com os dados DBUS, você pode verificar se o quadro é recebido na VLAN 10 (vlan: 0xa) com um endereço MAC origem de 0050.56a1.1a01 e um endereço MAC destino de 0050.56a1.1aef. Você também pode ver que esse é um quadro IPv4 originado de 10.1.1.101 e destinado a 10.1.1.102.

Tip: Há vários outros campos úteis que não estão incluídos nessa saída, como o valor de Tipo de Serviço (TOS), flags IP, comprimento de IP e comprimento de quadro L2.

Para verificar em que porta o quadro é recebido, insira o comando SRC_INDEX (a LTL (Local Target Logic) de origem). Insira este comando para mapear um LTL para uma porta ou grupo de portas para o N7K:

N7K# show system internal pixm info ltl 0x3

Type            LTL

---------------------------------

PHY_PORT       Eth6/4

A saída mostra que um índice de origem de 0x3 mapeia para a porta Eth6/4. Isso confirma que o quadro é recebido na porta Eth6/4.

Com os dados RBUS, você pode verificar se o quadro está comutado na VLAN 10 (vlan-id: 0xa). Além disso, você pode confirmar a porta de saída do diltl-index (LTL de destino):

N7K# show system internal pixm info ltl 0x2

Type            LTL

---------------------------------

PHY_PORT       Eth6/3

A saída mostra que um diltl-index de 0x2 mapeia para a porta Eth6/3. Isso confirma que o quadro é comutado da porta Eth6/3.

Verificação adicional

Para verificar como o switch aloca o pool LTL, insira o comando show system internal pixm info ltl-region. A saída desse comando é útil para entender a finalidade de um LTL se ele não for combinado a uma porta física. Um bom exemplo disso é um LTL Drop:

N7K# show system internal pixm info ltl 0x11a0

0x11a0 is not configured

N7K# show system internal pixm info ltl-region

LTL POOL TYPE                          SIZE        RANGE

=====================================================================

DCE/FC Pool                            1024       0x0000 to 0x03ff

SUP Inband LTL                           32       0x0400 to 0x041f

MD Flood LTL                              1       0x0420

Central R/W                               1       0x0421

UCAST Pool                             1536       0x0422 to 0x0a21

PC Pool                                1720       0x0a22 to 0x10d9

LC CPU Pool                              32       0x1152 to 0x1171

EARL Pool                                72       0x10da to 0x1121

SPAN Pool                                48       0x1122 to 0x1151

UCAST VDC Use Pool                       16       0x1172 to 0x1181

UCAST Generic Pool                       30       0x1182 to 0x119f

LISP Pool                                 4       0x1198 to 0x119b

Invalid SI                                1       0x119c to 0x119c

ESPAN SI                                  1       0x119d to 0x119d

Recirc SI                                 1       0x119e to 0x119e

Drop DI                                   2       0x119f to 0x11a0

UCAST (L3_SVI_SI) Region                 31       0x11a1 to 0x11bf

UCAST (Fex/GPC/SVI-ES)       3648       0x11c0 to 0x1fff

UCAST Reserved for Future Use Region   2048       0x2000 to 0x27ff

======================> UCAST MCAST BOUNDARY <======================

VDC OMF Pool                             32       0x2800 to 0x281f