华为三层以太网交换机基本原理及转发流程( 三 )


从A 到B 的报文由于在同一个VLAN 内部,报文的目的MAC 地址将是主机B 的MAC 地址,而从A 到C 的报文,要跨越VLAN,报文的目的MAC 地址是设备虚接口VLAN1 上的MAC 地址 。
因此交换机区分二三层报文的标准就是看报文的目的MAC地址是否等于交换机虚接口上的MAC 地址 。
以华为S3526 交换机为例,三层交换机整个处理流程中分成了三个大的部分:
1)平台软件协议栈部分
这部分中要害功能有:运行路由协议,维护路由信息表;
IP 协议栈功能,在整个系统的处理流程中,这部分担负着重要的功能,当硬件不能完成报文转发的时候,这部分可以代替硬件来完成报文的三层转发 。另外对交换机进行telnet, ping, FTP,snmp 的数据流都是在这部分来处理 。
举例:
show ip route:
Routing Tables:
Destination/Mask Proto Pre Metric Nexthop Interface
0.0.0.0/0 Static 60 0 10.110.255.9 VLAN-Interface2
10.110.48.0/21 Direct 0 0 10.110.48.1 VLAN-Interface1
10.110.48.1/32 Direct 0 0 127.0.0.1 InLoopBack0
10.110.255.8/30 Direct 0 0 10.110.255.10 VLAN-Interface2
10.110.255.10/32 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
华为认证技术文章
7
维护ARP 表
show arp:
IpAddress Mac_Address VLAN ID Port Name Type
10.110.255.9 00e0.fc00.5518 2 GigabitEthernet2/1 Dynamic
10.110.51.75 0010.b555.f039 1 Ethernet0/9 Dynamic
10.110.54.30 0800.20aa.f41d 1 Ethernet0/10 Dynamic
10.110.51.137 0010.a4aa.fce6 1 Ethernet0/12 Dynamic
10.110.50.90 0010.b555.e04f 1 Ethernet0/8 Dynamic
2)硬件处理流程
主要的表项是:二层MAC 地址表,和三层的ip fdb 表,这两个表中用于保存转发信息,在转发信息比较全的情况下,报文的转发和处理全部由硬件来完成处理,不需要软件的干预 。这两个表的功能是独立的,没有相互的关系,因为一个报文只要一进入交换机,硬件就会区分出这个包是二层还是三层 。非此即彼 。
例如:show mac all:
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
0000.21cf.73f4 1 Learned Ethernet0/19 266
0002.557c.5a79 1 Learned Ethernet0/12 225
0004.7673.0b38 1 Learned Ethernet0/9 262
0005.5d04.9648 1 Learned Ethernet0/16 232
0005.5df5.9f64 1 Learned Ethernet0/16 300
MAC 地址表是精确匹配的IVL 方式,其中要害的参数是:Vlan ID, Port
index 。
例如:show ipfdb all:
0: System 1: Learned 2: UsrCfg Age 3: UsrCfg noAge Other: Error
Ip Address RtIf Vtag VTValid Port Mac Status
10.11.83.77 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 1
10.11.198.28 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 1
10.63.32.2 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 1
10.72.255.100 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2
华为认证技术文章
8
10.75.35.103 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2
10.75.35.106 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2
路由接口索引(RtIf):该索引用来确定该转发表项位于哪个路由接口下面,对3526 产品来讲,支持的路由接口数目是32;
Vlan tag: 该值用来表明所处的VLAN,该VLAN 和路由接口是对应的;
Vlan tag 有效位(VTValid):用来标识转发出去的报文中是否需要插入
Vlan tag 标记 。
端口索引(Port):用来说明该转发表项的出端口;
下一跳MAC:三层设备每完成一跳的转发,会重新封装报文中的MAC头,硬件ASIC 芯片一般依据这个域里面的数值来封装报文头 。
两个重要的概念:
解析,未解析,每次收到报文,ASIC 都会从其中提取出源和目的地址在MAC Table 或者 IP Fdb Table 中进行查找,假如地址在转发表中可以找到,则认为该地址是解析的,假如找不到,则认为该地址是未解析的 。根据这个地址是源,还是目的,还可以有源解析,目的未解析等等的组合 。对于二层未解析,硬件本身可以将该报文在VLAN 内广播,但是对于三层报文地址的未解析报文硬件本身则不对该报文进行任何的处理,而产生CPU 中断,靠软件来处理 。

推荐阅读