交换机,是一种常用的网络设备,是组网必不可少的设备之一。
上个世纪九十年代,局域网交换设备出现。随后,交换设备开始普及。中国技术界在引入交换设备的时候,并没有按照交换机原来的英文单词“Switch”直译为开关,而是译作“交换”,这个“交换”专指电信技术的信号交换,通俗易懂。
52口交换机(48网口,4光口)
交换机,可以理解为是一种交换集线器,是一种基于MAC地址识别,能完成封装转发数据包的网络设备。
目前我们常见的交换机,组成和原理上基本一致。
组合交换机
交换机拥有一条高带宽的背板总线,所有的端口都挂接在背板总线,再通过交换机内部的交换矩阵,完成信号交换。
当交换机接入网络,完成加电后,交换机内部的控制电路会收到通过端口传来的数据帧,学习到MAC地址,并将其存放在内部地址表中,并确定目的MAC地址的网卡挂接在哪个端口上,在数据帧的始发者和目标接收者之间建立临时的交换路径,数据帧便可直接由源地址到达目的地址。
若是交换机找不到目的MAC或是目的MAC不存在,交换机会广播到所有的端口,在接收端口回应后,交换机学习到新的MAC地址,并添加到内部地址表中。
堆叠型交换机
因此,交换机首要的功能便是“学习”,交换机要了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起来存放在交换机缓存的MAC地址表。
其次,交换机要完成信号交换,本身还要具备转发、过滤的功能,当数据帧的目的地址在MAC地址表中有映射时,会被转发到连接目的节点的端口;若数据帧是广播帧或是组播帧,则会被转发至所有端口。
交换机还有着消除回路的功能,当交换机包括一个冗余回路时,以太网交换机通过生成树协议避免回路的产生,同时允许存在后备路径。
生成树协议(Spanning Tree Protocol,STP),是一种工作在OSI七层模型中的第二层数据链路层的协议。
STP协议,通过协商阻断一些交换机端口,以确保网络中所有目的地之间只有一条逻辑路径,构建一颗没有环路的转发树。当一个端口阻止流量进入或离开时,该端口便视为处于阻塞状态,但是STP协议用来防止环路的网桥协议数据单元(BPDU)帧仍可通行。
在多台交换机组成的网络中,STP协议工作,首先要进行根网桥的选举。交换机之间,依据网桥优先级(bridge priority)和MAC地址(交换机的MAC地址)组合生成的桥ID(Bridge ID,BID),选举桥ID最小的交换机为网络中的根桥(bridge root)。
桥ID(BID)
根桥选举完成后,其余的交换机就成了非根桥。非根桥交换机要选举出到根桥的根路径,STP协议通过计算每个端口到根桥的路径代价Cost值,最低Cost值的就是根路径,与之对应的端口就是根端口。
对于根桥交换机,它的所有端口都是指定端口(designated port,DP),会转发数据。而对于非根桥交换机,确定根端口以后,还必须将剩余端口配置为指定端口或非指定端口(non-designated port,non-DP),完成逻辑无环生成树。交换网络中的每个网段都只能有一个指定端口。
STP协议的各类端口
在根路径确认以后,非根桥交换机的指定端口状态为forwarding(转发),可以进行数据转发,非指定端口状态为blocking(阻塞),作为备份路径。
一般来说,我们所说的交换机都默认是用于局域网交换的二层交换机。二层交换机的“二层”是指OSI七层模型中的第二层数据链路层,这类交换机是基于MAC地址工作。
还有三层交换机,“三层”是指OSI七层模型中的第三层网络层(IP层),基于IP地址和协议进行交换,同时也包含二层交换机的功能。
四层交换机,“四层”是指OSI七层模型中的第四层传输层,在二、三层的基础上,包含四层交换功能,根据数据帧的协议端口信息进行目标端口的确认。
七层交换机,“七层”是指OSI七层模型中的第七层应用层,因此这一类交换机也叫作应用型交换机,一般只有在大型的互联网数据中心才能见到。这一类交换机,数据包的转发不仅仅依据MAC地址(二层交换)或是源/目标IP地址(第三层路由)以及依据TCP/UDP端口(第四层地址),还包括了数据内容,更加智能化。