access trunk hybrid三种端口及untag tag的终极解释
一个pc设备接入交换机,在没有配置PC网卡的网关时,只配置IP地址和掩码的条件下,PC发送出去的广播学习相同子网的物理mac报文取决与交换机如何给数据包打tagged;
端口上untag(剥离)操作只在发送报文时进行剥离vid工作,tag(打标)操作只在接收时都会进行打标工作;
对不同类型的端口的收发情况进行,统计分析如下
Acess端口收报文:
收到一个报文,判断是否有VLAN信息:如果端口没有PVID (port vlan id)就进行交换转发;如果数据包携带有vlan id(vid)信息则交换机的access口默认接收后不转发,直接丢弃!!
(一个接口虽然无条件接收别人发过来数据,但是接口有权利决定不转发数据包做作为垃圾处理丢弃!)
Acess端口发报文:
将报文的不同vid(vlan id)信息剥离后,发送出去,这时发出去的数据包都是没有vlan的id信息的
假设同一台交换划分多个不同vlan段,主机学习物理mac地址广播包是无法跨越
vlan,只能学到相同vlan内的物理地址。同一vlan内且子网相同的主机间通信无需网关直接用物理mac通信,所以一般一个vlan就是一个子网,所以一般不同vlan内主机通信需要网关转发处理。
Trunk不同于access,trunk发送数据很多都不剥离数据包vid信息,除非数据包的vid等于端口自带pvid时才会剥离数据包的vid信息;
trunk端口收报文:
由于trunk是用于级连交换机,比如当A交换机trunk与B交换机trunk互连,并且在数据包传出trunk口不进行剥离tag工作,才会有A交换机vlan2跟B交换机的vlan2互通组成一个大的vlan2环境。不同access口只要数据包传出都要剥离vid信息,因为access是用来连接pc类设备的,不能识别tag,access把转发所有数据包都剥离vid后发给pc类设备。
trunk收到一个报文,判断是否有vid信息:如果有,接着判断该trunk端口是否允许该 VLAN的数据进入:允许则转发,否则丢弃;如果没有VLAN信息则打上端口的PVID,
因为只有在数据包拥有vid数据后,交换机才好对那些广播学习相同子网的物理mac报文在正确vlan段内广播,所以需要打tag并进行交换转发。
trunk端口发报文:
比较将要发送报文的VLAN信息和端口的PVID,如果不相等则直接发送。如果两者相等则剥离VLAN信息,再发送。
不用于access口:access口处理发出去的数据包是所有数据包都要去除vid信息,这样那些pc类的接收设备才能识别数据包。
Hybrid跟trunk不同,hybrid可以跟access互连链路(建议互连链路的端口类型要保持一致,trunk-trun,hybrid-hybrid),因为hybri可以手动设置多个untagged(剥离)vlan id,而trunk口只能剥离一个(vid等于trunk的pvid时),能够剥离多个vland id使得hybrid更为灵活区别trunk,且使得hybrid可以连接access(trunk不
能连接access)
hybrid端口收报文:
收到一个报文,判断是否有VLAN信息:如果有,接着判断该hybrid端口是否允许该VLAN的数据进入:允许则转发,否则丢弃;如果没有VLAN信息则打上端口的PVID,因为只有在数据包拥有vid数据后,交换机才好对那些广播学习相同子网的物理mac报文洪泛到正确vlan段内,所以需要打tag并进行交换转发。
hybrid端口发报文:
1、判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag,哪些VLAN是tag)
2、如果是untag则剥离VLAN信息后再发送,如果是tag则直接发送,那些使用hybrid端口传输允许tag的vlanid相当于把hybrid端口理解成是包含多条vlanid的access通道的汇聚口,所以Hybrid可与其他交换机的access口连接。
注意:允许通过hybrid端口vlan是由untag+tag的总和决定,允许通过hybrid口vlan只能这样设置,不像trunk口可使用命令:all vlan;