交换机报文处理方式

来源:互联网 发布:知乎可以离线阅读吗 编辑:程序博客网 时间:2024/06/05 22:33

预备知识:

以太网报文格式

ethnetII报文格式 如下:

6bytes6bytes2bytes46~1500bytes4bytesDest MACSrc MACtypedataCRC

802.3报文格式如下

6bytes6bytes2bytes46~1500bytes4bytesDest MACSrc MAClengthdataCRC

带vlan tag的报文格式(802.1q)

801.Q(vlan)6bytes6bytes2bytes4bytes46~1500bytes4bytes Dest MACSrc MAC0x8100vlan tagdataCRCvlan tag3bit1bit12bit2bytes   PRICFITAG(vlan id)Eth-type  

基本报文转发:

交换机处理以太网报文,基本模式是基于源MAC地址的学习和目的MAC地址的转发,交换机根据内部的MAC表处理收到的报文,MAC表记录的是MAC地址和端口的对应关系,如交换机某个端口收到报文会将报文的源MAC和端口号对应关系记录下来(填充MAC表的一项-- 源MAC学习),并查MAC表中报文目的MAC对应的port号,如果查到将报文交换到该port发出,如果没有报文目的MAC对应的表项,则将报文发到接收端口除外的所有端口上。如下表是一个交换机的MAC表,MACA/B/C/D是与交换机4个端口相连PC的网卡MAC地址。

MAC表

MAC addrportMACA1MACB2MACC3MACD4

VALN报文转发

有的交换机支持处理带VLAN标签的以太网报文(报文格式见802.1q报文格式),此时交换机端口可以配置为access,trunk或者hybrid属性,不同的端口类型对报文的处理方式不一致.

access端口:

接收处理:报文无VLAN则加端口PVID(port based vlan ID)进入交换机处理,报文有VLAN则丢弃;

发送处理:去掉VLAN标签发送

trunk端口:

接收处理:判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃

发送处理:比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送

hybrid端口:

接收处理:判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃(此时端口上的untag配置是不用考虑的,untag配置只对发送报文时起作用)

发送处理:判断该VLAN在本端口的属性,如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送


Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。


















原创粉丝点击