PVlan端口类型

如图,port1、port2和port3三者之间互相隔离,不允许通信,只能与port6通信;port4和port5间可以通信,也可以与port6通信。所有端口只需分配共享一个IP地址。

PVlan的应用对于保证接入网络的数据通信安全性非常有效。所有用户都接入PVlan,每个用户一个Vlan,用户间二层互相隔离。用户只需与自己的默认网关连接,一个PVlan不需要多个Vlan和IP子网就可提供具备二层数据通信安全性的连接。PVlan功能可保证同一个Vlan中的各个端口相互之间不能通信,但可穿过Trunk端口。这样即使同一Vlan中的用户,相互之间也不会受到广播的影响。

对于上层交换机来说,可认为下层交换机中只有几个主Vlan,而不必关心主Vlan 中的端口实际所属的Vlan,从而简化配置并节省Vlan 资源。一个主Vlan中包含的所有Private Vlan处于同一个子网中,可节省子网数目和IP 地址资源。

PVlan通常用于企业内部网,用来阻断连接到某些接口或接口组的网络设备间的相互通信,但却允许与默认网关进行通信。尽管各设备处于不同的PVlan中,但可使用相同的IP子网。

* SuperVlan

不同Vlan间通信需要通过三层路由进行转发,而每个子网(Vlan)都需要设置一个路由地址。每分配一个子网,就有三个IP地址(子网的网络号、广播地址和默认网关)被占用。同时,这种地址分配的固有约束也严重降低编址的灵活性,使许多闲置地址被浪费。为提高IP地址的利用率,Super VLAN超网应运而生。

SuperVlan(又称VLAN Aggregation,即Vlan聚合)把多个子Vlan(SubVlan)聚合成一个SuperVlan,这些SubVlan共同使用一个IP子网和默认网关。通过VLAN聚合可使所有在同一子网上的终端用户通过统一的路由(同一子网网段地址)而使用不同的广播域。

利用SuperVlan技术,只需为SuperVlan分配一个子网地址,并为每个用户或子网建立一个SubVlan。所有SubVlan可灵活分配SuperVlan子网中的IP地址,使用SuperVlan的默认网关。每个SubVlan都是一个独立的广播域,保证不同用户之间的隔离;SubVlan间通信需要通过SuperVlan进行路由。由于各个SubVlan不需要真正的子网网段,可有效提高IP利用率。这样的子网可分配足够小且扩展方便,无需重新定义子网大小。

SuperVlan内的主机使用同一个网段的地址,共用同一个上行网关。即使是属于不同SubVlan的主机,由于其地址同属一个子网,设备会认为它们是二层互通的,会做二层转发,而不会送网关进行三层转发。而实际上SubVlan间在二层互相隔离,因此需要采用ARP代理(Proxy)来实现SubVlan间的互通。Subvlan之间以及和外部通信通过ARP代理,所有Subvlan内主机发送的ARP请求都由SuperVlan的MAC地址作为ARP应答。

注意,SuperVlan并不包含物理端口,可将其视作逻辑的三层概念——若干SubVlan的集合。对交换芯片来说SuperVlan是透明的,仍按芯片中的Vlan进行转发。在基于端口的Vlan中,二层通信时,无论收发都不会有针对SuperVlan的报文。即进入SubVlan设备的数据帧会附加该SubVlan的标签,从Trunk端口发出时也不会改为SuperVlan的标签。

* ARP Proxy原理

一个物理网络子网(Subnet)中的源主机向另一个物理网络子网中的目的主机发送ARP request请求,和源主机直连的网关用自己接口的MAC地址代替目的主机回复ARP reply应答,该过程称为ARP代理。

ARP代理的基本过程如下:

源主机向另一物理网络的子网中的目的主机发ARP请求;

与源主机网络相连的网关已使能ARP代理功能,若存在到达目的主机的正常路由,则代替目的主机应答自己接口的MAC地址;

源主机向目的主机发送的IP报文都发给路由器;

路由器对报文做正常的IP路由转发;

发往目的主机的IP报文通过网络,最终到达目的主机。

*  SubVlan间的三层互通

例】SuperVlan 2包含SubVlan 21和SubVlan 22,分析PC1与PC2的互通过程(假设PC1的ARP表中无PC2对应表项)。IP地址和MAC地址如下图所示。

用ARP代理实现不同SubVlan间的三层互通

PC1要发送报文给PC2,则将PC2的IP地址(1.1.1.3)与自己所在网段1.1.1.0 /24进行比较。由于SubVlan 21和SubVlan 22同属一个SuperVlan所在子网,于是发广播ARP请求PC2的MAC地址;而PC2并不在SubVlan 21的广播域内,无法接收到该ARP请求。当PC1在二层发出的ARP请求在其广播域内没有回应时,交换机网关运行ARP代理,查找路由表并发现下一跳为直连路由接口(SubVlan 22),则在该接口发送一个ARP请求PC2的MAC地址;得到PC2回应后,就把网关自己的MAC地址GwMac当作PC2的MAC地址(实际是Mac2 )回给PC1 (不同设备实现略有不同)。之后,主机PC1要发给PC2的报文都发给交换机,由三层交换机做正常的三层转发。

PC2回送给PC1的报文转发过程和上述的PC1到PC2的报文流程类似。

* SuperVlan与外部的三层通信

例】交换机1上配置SuperVlan 2、SubVlan 21和22,并有一个正常的Vlan 10。交换机2上配置两个正常的Vlan 10和20。假设SuperVlan 2下SubVlan 21中的PC1想访问交换机2下连的PC3,分析其上下行报文的转发流程。

Super VLAN与外部的三层通信图例

* 报文上行流程

PC1 (1.1.1.2/24)要访问PC3(1.1.3.2/24),因为IP地址不在一个网段,故PC1发送ARP请求给自己的网关,请求网关的MAC地址。SubVlan21收到ARP报文后,将其上送CPU。CPU查找SubVlan和SuperVlan的对应关系,知道应回应SuperVlan2的MAC地址(不同设备实现可能略有不同),且知道回应报文应从SubVlan21发送给PC1。

PC1学到网关MAC地址后,开始发送目的MAC为SuperVlan2、目的IP为1.1.3.2的报文。SubVlan21收到报文后,检测目的MAC后得知应进行三层转发,于是查找转发路由表,发现下一跳地址为1.1.2.2,出接口为Vlan10,并通过ARP表项和MAC表项确定出端口,把报文发送给交换机2,交换机2根据正常的转发流程把报文发送给PC3。

* 报文下行流程

PC3回应的报文,在交换机2上按正常的转发流程到达交换机1,此时交换机1查找转发路由表表项,发现目的地址为PC1(1.1.1.2),对应的出接口为SuperVlan2。但SuperVlan2未包含任何端口,那么如何确定报文的出端口呢?

仔细查看可发现,尽管转发路由表中1.1.1.2/24网段的出接口为SuperVlan2,但在ARP表中IP地址1.1.1.2对应的出接口却为SubVlan 21。而芯片真正用来构建转发表时所用的出接口应是ARP表中对应的SubVlan接口,通过在SubVlan下查找目的MAC地址即可找到正确的出端口。于是,PC3的回应报文就可正常到达PC1。

注意,若位于一个SuperVlan内的计算机运行基于广播或组播的高层应用,则这些应用被限制在SubVlan内。因此,应仔细分析高层应用,在没有基于组播或广播的应用时才可使用SuperVlan。


相关内容