网络的搭建离不开网络设备,物理连接,以及设备之间的多种协议。其中在实现网络互通时,最常见的网络设备是路由器和交换机。
如今在各种级别的网络随处可见各种低、中、高端的路由器、交换机,种类繁多,这些不同种类的设备内部是如何工作、处理数据报文的呢?
本章节将会以路由器、交换机为例学习网络设备的工作机制、报文转发流程。
1.网络设备硬件模块简介
为方便理解网络设备内部的各个功能模块,以S12700E-8为例讲解典型网络设备的构架:
主控板(MPU,Main Processing Unit):提供了整个系统的控制平面和管理平面。
控制平面完成系统的协议处理、业务处理、路由运算、转发控制、业务调度、流量统计、系统安全等功能。
管理平面完成系统的运行状态监控、环境监控、日志和告警信息处理、系统加载、系统升级等功能。
交换网板(SFU,Switch Fabric Unit):交换网板提供整个系统的数据平面。接口板、主控板之间通过交换网板完成通信。
接口板(LPU,Line Processing Unit):线路处理单元是物理设备上用于提供数据转发功能的模块,提供不同速率的光口、电口。
电源模块
正面图(上)
背面图(上)
风扇模块
不同于框式设备,盒式设备的各个业务模块并不是独立的硬件模块,而是集成在一个框内。
通过上面的介绍,我们应该能够对网络设备的硬件模块有个大致的了解了。那么各个硬件模块之间又是怎么处理数据 ,完成数据的转发的呢 ?
上图呢给大家展示了各硬件模块之间的逻辑连接图 。
框式设备各个模块分为不同的单板,单板之间通过框式设备内部的连接进行通信。
盒式设备内部集成了这些模块,各个模块之间同样也是通过内部连接进行通信。
接口板和接口板之间通过交换网板连接了起来,接口板之间的通信统一经由交换网板进行转发。
看完相应的逻辑结构图后 我们接着来看网络设备对数据报文的处理流程 在次之前我们还得区分什么是报文转发的上行和下行。
此处完全可以依据报文的转发放学来判断 对于一个设备来说 接收到的数据为上行方向 转发出去的数据为下行方向。中间以交换网板为界。(如下图所示)
当能够区分出报文转发的上行和下行后,我们在来看网络设备对数据报文的处理 ,此处我们得分为两个部分来看 。
1.对业务报文的处理
当从上行接口板接收到一个业务报文后,设备需要依据转发表项(IP路由表、MAC地址表等)确定报文的出接口(对于框式设备需要确定下行接口板)。报文到达交换网板时已经明确了出接口、下行接口板,因此表项查询需要在上行接口板的处理过程中完成。
此处需要注意:如果为高端设备(主控板和接口板上都存在cpu时,那么在查询相应转发表项时就不需要上送主控板查询了,直接在接口板查询就可以了。因为主控板在生成相应表项后就会下发至接口板cpu。)接口板执行转发的部件为包转发引擎PFE(Packet Forwarding Engine),通常为NP或者ASIC芯片,报文直接由接口板独立完成转发,无需主控板参与。
高端框式设备把转发层面和控制层面分配在不同的组件,控制层面组件(主控板)负责运行转发相关协议、维护转发表项,转发平面组件(接口板)依据控制层面下发的转发信息能够独立完成转发工作,互不影响,控制层面组件高负载时并不会影响转发平面的正常工作,这种工作机制被称为转控分离。
2.对协议报文的处理
设备收到的协议报文,如路由协议:OSPF、IS-IS、BGP报文,ARP报文,STP报文,对设备的ICMP请求报文等,需要交由设备的控制平面处理,即上送主控板由主控板的CPU进行处理。
主控板CPU收到协议报文之后进行相应的处理之后如果需要回应报文,则主控板会构造协议报文进行回应,如收到发往自身的ARP Request、ICMP Echo Request报文,主控板处理之后构造ARP Reply、ICMP Echo Reply进行回应。
主控板CPU处理能力有限,如果过多的协议报文上送主控板CPU处理,会造成其繁忙,无法及时对协议报文进行响应,为此设备默认限制了各种类型的协议报文上送主控板CPU的速率。
主控板CPU收到协议报文之后进行相应的处理之后如果需要回应报文,则主控板会构造协议报文进行回应,如收到发往自身的ARP Request、ICMP Echo Request报文,主控板处理之后构造ARP Reply、ICMP Echo Reply进行回应。
主控板CPU处理能力有限,如果过多的协议报文上送主控板CPU处理,会造成其繁忙,无法及时对协议报文进行响应,为此设备默认限制了各种类型的协议报文上送主控板CPU的速率。