详细讲解第三层交换技术(2)
3Com公司的快速IP属于端系统驱动流交换技术,其工作原理基于NHRP标准(草案)。源端主机发送一个快速IP连接请求,该请求就像数据报文一样被路由穿过网络,如果目的端主机也运行快速IP,则它发送一个包含其MAC地址的NHRP应答报文给源端主机,如果源端主机和目的端主机存在二层交换通路,当NHRP应答报文到达源端主机时将在经过的交换机中建立目的端主机MAC地址和端口的映射表,随后源端主机可根据目的端主机MAC地址直接通过交换机二层通路交换数据报文,不再经过路由器;如果两端主机之间没有交换路径而无NHRP应答返回,则报文如前进行路由。
快速IP软件主要运行在源、目的端主机的网络接口卡(NIC)的驱动程序之上。它与主机的IP协议栈和NIC驱动程序接口,以协调NHRP交换。总之,快速IP试图改善在交换网络上完成路由的转发性能,但它没有潜在的灵活性,也不能通过报文过滤提供任何安全保障,而且需要在参与快速IP交换的主机上安装NHRP协议软件。实际上增加了设备的维护工作量。
多种流交换技术最初是在路由选择比较慢和代价比较大的前提下开发的。报文到报文交换产品已经证明了情况不再如此。与报文到报文交换产品相比,流交换方法显得更复杂和难以理解。在动态网络环境下,成功地标识、建立、管理和撤消大量的流需要哪些措施,仍然是一个有待研究的问题。目前应用在局域网互联的第三层交换设备多是基于报文到报文交换技术。流交换更可能在广域网中找到其位置。
3 对第三层交换机“路由一次,处处交换”或“基于目的MAC地址的第二层交换”这一观点提出质疑
当前,很多文章对三层交换机的工作原理进行过介绍,在交换机对三层报文转发机制上基本趋向一致观点,那就是“路由一次,处处交换”或“基于目的MAC地址的第二层交换”。现摘录这些文?斜冉嫌写硇缘脑娜缦拢?br />
“第三层交换的原理是,假设两个使用IP的主机A、B通过第三层交换机进行通信。发送站点A在开始发送时,把自己的IP地址与B站的IP地址比较,判断B站是否与自己在同一子网内。若目的站B与发送站A在同一子网内,则进行二层的转发。若两个站点不在同一子网内,如发送站A要与目的站B通信,发送站A要向“缺省网关”发出ARP请求(地址解析)封包,而“缺省网关”的IP地址其实是三层交换机的三层交换模块。当发送站A对“缺省网关”的IP地址广播出一个ARP请求时,如果三层交换模块在以前的通信过程中已经知道B站的MAC地址,则向发送站A回复B的MAC地址。否则三层交换模块根据路由信息向B站广播一个ARP请求,B站得到此ARP请求后向三层交换模块回复其MAC地址,三层交换模块保存此地址并回复给发送站A,同时将B站的MAC地址发送到二层交换引擎的MAC地址表中。从这以后,A向B发送的数据包便全部交给二层交换处理,信息得以高速交换。由于仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此第三层交换机的速度很快,接近第二层交换机的速度,同时比相同路由器的价格低很多”。
分析上面这段文章,笔者认为这种观点违背了主机与缺省网关通信的基本原理。文章提到“当发送站A对“缺省网关”的IP地址广播出一个ARP请求时,如果三层交换模块在以前的通信过程中已经知道B站的MAC地址,则向发送站A回复B的MAC地址。否则三层交换模块根据路由信息向B站广播一个ARP请求”。实际上,A站向三层交换模块发送网关IP地址的ARP请求时,ARP请求报文并不包含B站IP地址,三层交换模块只会把自己IP地址对应的MAC地址回复给A站,根本不会向发送站A回复B的MAC地址。这是错误之一。
退一步说,即便三层交换模块回复B站的MAC地址,由于B站和A站不在同一子网,A站也不会把B站的目的MAC地址封装在A站要发送的以太网帧中。这是错误之二。
再者,三层交换模块接收A站发送到B站的以太网帧,三层交换模块从以太网帧的IP包中提取B站的IP地址,通过查找路由表,寻找到B站的下一跳,若B站与第三层交换机某一接口在同一网段,第三层交换机向B站IP地址广播ARP请求,从B站的ARP应答中可得知B站的MAC地址;若B站与三层交换机某一接口不在同一网段,中间相隔了好几跳,三层交换模块只会向下一跳IP地址广播ARP请求,下一跳ARP应答的应是下一跳IP地址的MAC地址,三层交换模块无从得知B站的MAC地址。这是错误之三。
要达到“路由一次,处处交换”或“基于目的MAC地址的第二层交换”的目的,必须改变现存主机与缺省网关的通信机制或第三层交换机的路由规则,换句话说,以一种新的主机与缺省网关的通信机制替代现有的通信机制。就像前面描述的3Com公司的快速IP技术一样。实际网络中主机和第三层交换机都工作得很好,无需主机做任何改变,也无需改变原有的网络设施。在第三层交换机替代传统路由器的场合,子网间的流量转发性能却得到了空前的提高。这并不是改变了交换机对三层报文转发机制的结果,即“路由一次,处处交换”或“基于目的MAC地址的第二层交换”的结果,而是第三层交换机基于硬件快速转发三层报文的结果。
|