完成,对与交换机而言是二层数据流,A和C之间的通信需要跨越VLAN,是三层的数据流。
上面提到的是宏观的方法,具体到微观的角度,一个报文从端口进入后,Swtich设备是怎么来区分二层包文,还是三层报文的呢?
从A到B的报文由于在同一个VLAN内部, 报文的目的MAC 地址将是主机B 的MAC 地址,而从A 到C 的报文,要跨越VLAN,报文的目的MAC 地址是设备虚接口VLAN1 上的MAC 地址。
因此交换机区分二三层报文的标准就是看报文的目的MAC地址是否等于交换机虚接口上的MAC地址。
以华为S3526交换机为例,三层交换机整个处理流程中分成了三个大的部分:
1)平台软件协议栈部分
这部分中关键功能有:运行路由协议,维护路由信息表;
IP协议栈功能,在整个系统的处理流程中,这部分担负着重要的功能,当硬件不能完成报文转发的时候,这部分可以代替硬件来完成报文的三层转发。另外对交换机进行telnet,ping,ftp,snmp 的数据流都是在这部分来处理。
举例:
showiproute:
RoutingTables:
Destination/MaskProtoPreMetric Nexthop Interface
0.0.0.0/0Static600 10.110.255.9 VLAN-Interface2
10.110.48.0/21Direct00 10.110.48.1 VLAN-Interface1
10.110.48.1/32Direct00 127.0.0.1 InLoopBack0
10.110.255.8/30Direct00 10.110.255.10 VLAN-Interface2
10.110.255.10/32Direct00 127.0.0.1 InLoopBack0
127.0.0.0/8Direct00 127.0.0.1 InLoopBack0
127.0.0.1/32Direct00 127.0.0.1 InLoopBack0
华为认证技术文章
7
维护ARP表
showarp:
IpAddressMac_AddressVLANID Port Name Type
10.110.255.900e0.fc00.55182GigabitEthernet2/1 Dynamic
10.110.51.750010.b555.f0391Ethernet0/9 Dynamic
10.110.54.300800.20aa.f41d1Ethernet0/10 Dynamic
10.110.51.1370010.a4aa.fce61Ethernet0/12 Dynamic
10.110.50.900010.b555.e04f1Ethernet0/8 Dynamic
2)硬件处理流程
主要的表项是:二层MAC地址表,和三层的ipfdb表,这两个表中用于保存转发信息,在转发信息比较全的情况下,报文的转发和处理全部由硬件来完成处理,不需要软件的干预。 这两个表的功能是独立的,没有相互的关系,因为一个报文只要一进入交换机,硬件就会区分出这个包是二层还是三层。非此即彼。