关注「开源Linux」,选择“设为星标”
回复「学习」,有我为您特别筛选的学习资料~
文章来源:朱仕耿个人博客
一位同事问了个关于二层和三层端口的概念及区分,以及关于VLANIF、PVID的问题。感觉不少人有类似的困惑。简单聊了几句,把一些交流的内容贴一下,供参考。
二层接口,可以简单理解为只具备二层交换能力的接口,例如二层交换机的物理接口,或者三层交换机的物理接口(一般而言,这些接口缺省时为二层模式,某些款型具备切换为三层模式的能力)。
二层接口不能直接配置IP地址,并且不直接终结广播帧。二层接口收到广播帧后,会将其从同属一个广播域(VLAN)的所有其他接口泛洪出去。
三层接口维护IP地址与MAC地址。
三层接口终结广播帧,三层接口在收到广播帧后,不会进行泛洪处理。
二层接口在收到单播帧后,会在MAC表中查询该数据帧的目的MAC地址,然后依据表项指引进行转发,如果没有任何表项匹配,则进行泛洪。三层接口在收到单播帧后,首先判断其目的MAC地址是否为本地MAC地址,如果是,则将数据帧解封装,并解析出报文目的IP地址,然后进行路由查询及转发。因此二层接口与三层接口在数据处理行为上也存在明显差异。
二层接口有几种类型(这里说的是以太网二层接口):access、trunk、hybrid。三层接口则没有上述类型。
三层接口有物理形态的,也有逻辑形态的,典型的物理接口如路由器的三层物理端口;逻辑接口如VLANIF,以及以太网子接口,例如GE0/0/1.1。等等。VLANIF与其关联的VLAN的VLAN-ID对应(例如VLANIF10对应VLAN10,VLANIF10作为一个三层逻辑接口,可以与同属于VLAN10的设备直接进行二层通信),而以太网子接口,通常也会绑定相应的VLAN-ID,从而与相应的VLAN对接。这两种典型的三层接口均可以直接配置IP地址。
在以太网二层交换网络里,VLAN是一个非常基础的东西。每个VLAN都是一个逻辑的广播域,每个VLAN都使用对应的ID进行标识,这是VLAN-ID。
接口缺省VLAN标识,即PVID(Port Default VLAN ID),指的是二层接口上的缺省VLAN-ID(每个二层接口上有且只有一个VLAN-ID作为PVID),也就是说,PVID必定是某一个具体VLAN的VLAN-ID。PVID的作用是,当这个接口收到了流量,并且该流量不携带任何802.1Q Tag(VLAN-ID信息),该接口便认为这些流量属于PVID对应的VLAN。当然,PVID还会影响接口发送数据帧,这里不再赘述。缺省情况下,所有接口的PVID均为VLAN1。
对于Access接口,缺省VLAN就是它允许通过的VLAN,修改接口允许通过的VLAN即可更改接口的缺省VLAN。
对于Trunk接口和Hybrid接口,一个接口可以允许多个VLAN通过,但是只能有一个缺省VLAN,修改接口允许通过的VLAN不会更改接口的缺省VLAN,即变更接口的缺省VLAN(PVID)需要使用特定的命令。
三层接口未必一定对应VLAN-ID,例如路由器的三层物理接口,就不维护关于VLAN-ID的相关信息,当然,该接口也无法识别携带VLAN-ID的数据帧,除非你基于这个物理接口创建了逻辑子接口,并通过该子接口与相应的VLAN对接。
在三层交换机上,每个VLAN都有对应的VLANIF,VLANIF指的是VLAN对应的逻辑三层接口,这个三层接口在VLAN被创建后可以直接赋予IP地址,具备路由转发能力。一个VLAN对应一个VLANIF,VLAN与VLANIF的标识相同。
关注「开源Linux」加星标,提升IT技能