二三层转发流程中的重要微码表
二层转发
首先报文从PC机发出时查找本机ARP表(arp -a),若存在相应的表项,就直接发出,报文下一跳MAC地址为目的MAC地址,IP地址为目的IP地址。若不存在相应表项则发出ARP请求报文,走ARP请求流程。等报文来到交换设备S,S首先查找自己的PCT表,比较报文的目的MAC地址和自己的MAC地址是否相同,若相同则为三层转发,二层转发则不相同。下面查找S设备的VLAN表(disp efu l3vlan)通过报文帧中所带的vlan id检查此报文做了哪些配置,不同配置要走不同的流程。此外我们还可以得到mid表项。然后通过vlan id查找单播MAC表(disp mac dy slotnum)从相应的出接口发出报文,在下行学习源MAC表项,最后到达目的地。如果这里查找单播MAC表失败的话,就根据刚才的mid值在上行查找mid_up_tbl,看哪些单板上有这个vlan,在每个含有此vlan的单板都复制一份广播报文,在下行查找mid down表得知在单板上此vlan包含哪些端口,最后就复制报文在这些端口进行广播。目的PC收到此报文后进行回应。S收到回应报文在下行学习该MAC地址。
PC S S S S
ARP--------->CT--------->VLAN--------->MAC---------->Mid_Up--------
S
-->Mid_Down
pct表
[121-diag]
PCT:
00 E0 FC 0F AB 57 EB 07 ***这就是设备的mac地址。报文中的mac地址与之。
00 00 6E 10 00 40 00 00 ***比较判断二三层转发
Detail:
MAC address: 00.E0.FC.0F.AB.57.
arp is enabled
ip multicast is enabled
broadcast is enabled
mpls multicast is disabled
ip is enabled
mpls unicast is disabled
clns is enabled
support_8021p is disabled
reserved ipmc is disabled
qinq enable is disabled
qinq internet access enable is disabled
Port is not isolated
vswtich is disabled
vswtich is inclusive
l2 bridge is enabled
port aggregation is disabled
STP Op is disabled
Blocking is disabled
Listening is disabled
Learning is disabled
Forwarding is enabled
Ingress filtering Op is enabled
Admit all frames is enabled
default priority is 0
default vlanid is 110
l4_skip is disabled
ba_flag is disabled
sa lookup is disabled
eth port type is ethernet_l2
ingress_context(hex) is 000
ac field is absent
physical port is ethernet
entry address is 0000
complete unit generate label is disabled
hard classifier is disabled
start pos of QW 0
prefetched QWs is 4
reserved ip mc address 00-15: [0x0]-[0x0]-[0x0]-[0x555555]
reserved ip mc address 16-31: [0x5502823c]-[0x90000000]-[0x0]-[0x0]
Done.
[121-diag]
mac表
[121]display mac-address dy 3
MAC Address VLAN ID Port/Lsp Type
----------------------------------------------------------------
0005-5d0a-1b2d 110 gigabitethernet3/0/0 dynamic
00e0-fc11-2233 110 gigabitethernet3/0/0 dynamic
mid up表
[121-diag]disp efu mid_up_tbl 3 110
Start query mid_up_tbl of board 03...
Slot member of mid 110 = [3]
三层转发
首先PC机根据目的IP地址先查找自己的路由表(route print),查对应下一跳的IP地址,在根据此IP 地址查找ARP表对应下一跳的MAC地址(若查不到则发ARP请求,走ARP流程)。报文到达接入设备后,设备还是查找PCT表,判断二三层转发。然后查找FIB表,得到下一跳IP地址和目标板号和端口号(tb & tp),没有匹配的表项就丢弃报文。这里如果只能找到网段路由,则发fib_miss到主控板CP,CP走ARP流程进行学习。若存在主机表项,则从相应端口出。
4. 查Qos规则命中计数
[121-diag]efu qos hit-count eacl e111
Query EACL hit count from NPS:
e111 r192: GigabitEthernet3/0/0 VLAN 65535 //不同的规则命中计数
The number of EACL hits: 3427293
e111 r193: GigabitEthernet3/0/0 VLAN 65535
The number of EACL hits: 8443947
e111 r111: GigabitEthernet3/0/0 VLAN 65535
The number of EACL hits: 121987474
e111 r110: GigabitEthernet3/0/0 VLAN 65535
The number of EACL hits: 1121935812
5. 查7号表
[121-diag]disp table 3 7 //7号表也是路由表和fib表性质差不多,只是它包含了一些特殊信息。比如板号,端口号等等。