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 descreve as etapas usadas para executarm um ELAM (Embedded Logic An)alyzer Module) em uma série de módulos Cisco Nexus 9000 CloudScale ASIC, abrange 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.
O procedimento abordado neste documento é aplicável somente ao seguinte hardware:
N9K-C93180YC-EX | N9K-C92304QC |
N9K-X9736C-EX | N9K-C92300YC |
N9K-C93108TC-EX | N9K-X9788TC-FX |
N9K-X9732C-EX | N9K-X97284YC-FX |
N9K-X97160YC-EX | N9K-C93180YC-FX |
N9K-C93180LC-EX | N9K-C93108TC-FX |
N9K-C92160YC-X | N9K-C9348GC-FXP |
N9K-C9272Q | N9K-X9732C-FX |
N9K-C9236C | N9K-C933C-FX2 |
N9K-C93240YC-FX2 |
N9K-C93300YC-FX2 |
N9K-C9364C | N9K-C933C |
|
N9K-C92160YC-X-2# show hardware internal tah interface e1/49 IfIndex: 436232192 DstIndex: 5952 IfType: 26 Asic: 0 <<<<<<<<< Asic: 0 AsicPort: 56 SrcId: 48 <<<<<<<< Slice: 1 <<<<<<<<< PortOnSlice: 24
Caution: O ELAM deve ser usado somente em uma janela de terminal, pois você mantém o conteúdo global para cada fatia, lu-a2d, etc.
Por exemplo, um canal de porta (PO) pode ter dois links, Eth 1/53, que corresponde à fatia 0 e Eth 1/54, que corresponde à fatia 1. Configurar o ELAM em duas janelas de terminal separadas por vez para as diferentes fatias não ajudará, uma vez que a última fatia (por exemplo, fatia 1) substituirá a primeira (fatia 0), terminando obtendo o mesmo resultado em ambas as janelas de terminal.
Você pode verificar essas informações duas vezes por meio de:
N9K-C92160YC-X-2# show system internal ethpm info interface e1/49 | i i src IF_STATIC_INFO: port_name=Ethernet1/49,if_index:0x1a006000,ltl=5952,slot=0, nxos_port=192,dmod=1,dpid=56, unit=0,queue=65535,xbar_unitbmp=0x0,ns_pid=255,slice_num=1,port_on_slice=24,src_id=48
N9K-C92160YC-X-2# attach mod 1
module-1# debug platform internal tah elam asic 0
Note: Há muitas opções que você pode especificar aqui, dependendo do pacote/fluxo que está sendo capturado
module-1(TAH-elam)# trigger init asic 0 slice 1 lu-a2d 1 in-select 6 out-select 0 use-src-id 48
Tip:
aviso: Não use 0 após lu-a2d, pois isso pode travar o switch - consulte CSCvd64106 para obter mais detalhes
Neste exemplo, nosso IP de origem é 192.0.2.2 e o IP de destino é 192.0.2.1 como visto abaixo:
module-1(TAH-elam-insel6)# reset
module-1(TAH-elam-insel6)# set outer ipv4 dst_ip 192.0.2.1 src_ip 192.0.2.2
Note: Certifique-se de "reiniciar", pois o comando "definir" prevalecerá em todos os ELAMs e poderá fazer com que ele não dispare nem gire em campos inesperados.
module-1(TAH-elam-insel6)# start GBL_C++: [MSG] tahusd_elam_wrapper_init:36:asic type 5 inst 0 slice 1 a_to_d 1 insel 6 outsel 0 GBL_C++: [MSG] Inside tahusd_elam_wrapper_init GBL_C++: [MSG] tahusd_elam_wrapper_enable:7e:asic type 5 inst 0 slice 1 a_to_d 1 GBL_C++: [MSG] - writing data=0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FD901C4E2A0000000000000000000002000000000000000000000000000000000000000000000000000000030001 GBL_C++: [MSG] - writing mask=0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FFFFFFFFFFFE00000000000000000000038000000000000000000000000000000000000000000000000000001FF001
Nota: Começando com o NX-OS 7.0(3)I5(2) e posterior, há uma breve versão do relatório ELAM como visto abaixo. Se você estiver executando antes de 7.0(3)I5(2); continue com "Visualizando resultados do ELAM...". seção.
module-1(TAH-elam-insel6)# report SUGARBOWL ELAM REPORT SUMMARY slot - 1, asic - 1, slice - 1 ============================ Incoming Interface: Eth1/49 Src Idx : 0xd, Src BD : 10 Outgoing Interface Info: dmod 1, dpid 14 Dst Idx : 0x602, Dst BD : 10 Packet Type: IPv4 Dst MAC address: CC:46:D6:6E:28:DB Src MAC address: 00:FE:C8:0E:27:15 .1q Tag0 VLAN: 10, cos = 0x0 Dst IPv4 address: 192.0.2.1 Src IPv4 address: 192.0.2.2 Ver = 4, DSCP = 0, Don't Fragment = 0 Proto = 1, TTL = 64, More Fragments = 0 Hdr len = 20, Pkt len = 84, Checksum = 0x667f L4 Protocol : 1 ICMP type : 0 ICMP code : 0 Drop Info: ---------- LUA: LUB: LUC: LUD: Final Drops:
NOTAS:
1. Quando se trata de confirmar se o pacote está realmente sendo descartado, o campo "Descartes finais" é o ÚNICO a ser considerado. Em outras palavras, embora você possa ver exceções em outros campos, como LUA/B/C/D, isso não significa necessariamente que o pacote está sendo descartado. Revise essa saída cuidadosamente (discuta com o TAC conforme necessário).
2. O tráfego direcionado para a CPU terá o sinalizador sup_hit definido (detalhe do relatório) | grep sup_hit).
O "System Routing Mode: template-vxlan-scale" não se aplica ao Cisco NX-OS versão 7.0(3)I5(2) e posterior.
Ao usar o VXLAN BGP EVPN em combinação com o Cisco NX-OS versão 7.0(3)I4(x) ou o NX-OS versão 7.0(3)I5(1), o "Modo de roteamento do sistema: template-vxlan-scale" é necessário nas seguintes plataformas de hardware:
Switches Cisco Nexus 9300-EX
Switches Cisco Nexus 9500 com placas de linha X9700-EX
A alteração do "System Routing Mode" (Modo de roteamento do sistema) requer um recarregamento do switch.
Exemplo de tráfego que está passando por CPU punt:
module-1(TAH-elam-insel6)# report SUGARBOWL ELAM REPORT SUMMARY ============================= Incoming Interface: Eth1/3 Src Idx : 0x9, Src BD : 23 Outgoing Interface Info: dmod 1, dpid 72 Dst Idx : 0x601, Dst BD : 802 Packet Type: IPv4 Dst MAC address: B0:8B:CF:A3:D0:4B Src MAC address: 00:10:DB:FF:10:00 .1q Tag0 VLAN: 23, cos = 0x0 Dst IPv4 address: 192.0.2.1 Src IPv4 address: 192.0.2.2 Ver = 4, DSCP = 2, Don't Fragment = 1 Proto = 6, TTL = 49, More Fragments = 0 Hdr len = 20, Pkt len = 60, Checksum = 0x63c3 L4 Protocol : 6 TCP Dst Port : 80 TCP Src Port : 46340 Sup hit: 1, Sup Idx : 2720 <<---- CPU punt, use below CLI to resolve the meaning of Sup Idx Drop Info: ---------- LUA: LUB: LUC: LUD: Final Drops: # show system internal access-list sup-redirect-stats all | grep 2720 2720 copp-system-p-acl-http 63
+ Isso tem um cabeçalho dot1q?
module-1(TAH-elam-insel6)# report | grep pr_lu_vec_l2v.qtag0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_vld: 0x1 << dot1q yes? 0x1 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_cos: 0x0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_de: 0x0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_vlan: 0xA << VL 10
+ Verificar VLAN:
module-1(TAH-elam-insel6)# report | grep -1 fpx_lookup_vec.lkup.macsakey.key.fid GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.vld: 0x1 GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.fid_type: 0x0 GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.fid_vld: 0x0 GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.fid: 0xA << dec 0xa = VL 10 GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715
+ Verifique o SRC MAC (você também pode ver isso na etapa anterior):
module-1(TAH-elam-insel6)# report | grep -i fpx_lookup_vec.lkup.macsakey.key.mac GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715 << 00fe.c80e.2715 GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715 GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715 GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715 GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715
+ Este é um novo aprendizado?
module-1(TAH-elam-insel6)# report | grep -1 fpx_lookup_vec.sa_notify_info GBL_C++: [MSG] fpx_lookup_vec.lkup.ptvec.misc1.tcp_flags: 0x0 GBL_C++: [MSG] fpx_lookup_vec.sa_notify_info: 0x5200000C060 GBL_C++: [MSG] fpx_lookup_vec.sa_notify_info.enable: 0x0 << This will be set to 0x1 for learning to happen GBL_C++: [MSG] fpx_lookup_vec.sa_notify_info.conv_learn_only: 0x0
+ Verifique o IP SRC e DST:
module-1(TAH-elam-insel6)# report | grep vec_l3v.ip.*a GBL_C++: [MSG] pr_lu_vec_l3v.ip.da: 0x00000000000000000c0000201 << DST IP: 192.0.2.1 GBL_C++: [MSG] pr_lu_vec_l3v.ip.sa: 0x00000000000000000c0000202 << SRC IP: 192.0.2.2
+ Verifique seu SRC_ID de entrada:
module-1(TAH-elam-insel6)# report | egrep SRC GBL_C++: [MSG] SRCID: 0x30
module-1(TAH-elam-insel6)# report | grep vec.ihdr.ieth.hdr.src_idx
GBL_C++: [MSG] lurw_vec.ihdr.ieth.hdr.src_idx: 0xA9 << sh hardware internal tah int e1/49 | i i niv_idx
+ Se o ELAM não disparar, ele terá a seguinte aparência:
module-1(TAH-elam-insel6)# report GBL_C++: [MSG] tahusd_elam_wrapper_report:27d:asic type 5 inst 0 slice 1 a_to_d 1 insel 6 outsel 0 GBL_C++: [MSG] Inside tahusd_elam_wrapper_dav_report GBL_C++: [MSG] ELAM not yet triggered <<<<<<
Como os pacotes VXLAN seriam encapsulados, o ELAM precisa ser disparado no cabeçalho INNER ao contrário do cabeçalho OUTER - Veja o exemplo abaixo para um quadro ARP:
module-1# debug platform internal tah elam asic 0 module-1(TAH-elam)# trigger init asic 0 slice 1 in-select 7 out-select 0 use-src-id 48 module-1(TAH-elam-insel7)# reset module-1(TAH-elam-insel7)# set inner arp source-ip-addr 192.0.2.2 target-ip-addr 192.0.2.1 module-1(TAH-elam-insel7)# start module-1(TAH-elam-insel7)# report
Após o NX-OS 7.0(3)I7(2), o ELAM pode agora ser disparado globalmente sem especificar o ASIC ou o número da fatia para facilitar - Veja o exemplo abaixo:
Nexus-9K# debug platform internal tah elam Nexus-9K(TAH-elam)# trigger init
Nexus-9K(TAH-elam-insel6)# reset
Nexus-9K(TAH-elam-insel6)# set outer ipv4 dst_ip 192.0.2.1 src_ip 192.0.2.2
Nexus-9K(TAH-elam-insel6)# start
Nexus-9K(TAH-elam-insel6)# report
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
23-Oct-2018 |
Versão inicial |