基本概念
Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;
处理流程
Acess端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)
Acess端口发报文:将报文的VLAN信息剥离,直接发送出去
trunk端口收报文: 收到一个报文,判断是否有VLAN信息,如果没有则打上端口的PVID,并进行交换转发;如果有判断该trunk端口是否允许该 VLAN的数据进入:如果允许则报文携带原有VLAN标记进行转发,否则丢弃该报文。
trunk端口发报文: 比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,否则报文将携带原有的VLAN标记进行转发。
总结
1、Access 端口可接受并转发的数据来源:
1)来自PC的无VLAN信息数据包;
2)从一个Access口入打上VLAN标记在交换机内转交给相同VLAN的access口去掉标记的无VLAN信息数据包;
3)Access 端口发送出去的数据包无VLAN信息,可被PC接受或Access口接受。
示例:
上图中,pc1不能ping通pc2,因为同一交换机内从pc1进入交换机A的access口的数据包被打上了VLAN10的标记,而和pc2相连的access的是VLAN20,从上面总结的2)条不满足,无法ping通。同理,pc1和pc3也不能ping通。
上图中,pc2和pc3能互ping通。因为数据包从pc2进入交换机A的access口时,被打上了VLAN20的标记;交换机A与B想连的access口是VLAN20,所以数据包可以从该口发出。发出的时候去掉了VLAN20的标记,到B时,由于没有标记,可以被B的左边的access口接收并打上VLAN10的标记。由于B的右边的access口也属于VLAN10,所以数据包可以从该口出(出的时候去除掉VLAN10的标记,并到达pc3)
2、Trunk 端口可接受并转发的数据来源:双绞线相连的一对Trunk口或同一交换机上的两个Trunk口可以将数据包(有或无VLAN信息)原封不动的从一端传到另一端。
1)上图中pc1和pc3可以相通,因为数据包从pc1进入A的access口是打上了VLAN10的标记,A的右边trunk口可以接受数据包,并转发到B的trunk口(无论vid是否等于pvid)。而B的acces属于VLAN10所以pc3能收到数据包。
2)同理,pc2和pc6相通