VLAN聚合简介:
VLAN聚合(VLAN Aggregation,也称Super VLAN)指在一个物理网络内,用多个VLAN(称为Sub-VLAN)隔离广播域,并将这些Sub-VLAN聚合成一个逻辑的VLAN(称为Super-VLAN),这些Sub-VLAN使用同一个IP子网和缺省网关。
通过引入Super-VLAN和Sub-VLAN的概念,使每个Sub-VLAN对应一个广播域,并让多个Sub-VLAN和一个Super-VLAN关联,只给Super-VLAN分配一个IP子网,所有Sub-VLAN都使用Super-VLAN的IP子网和缺省网关进行三层通信。
这样,多个Sub-VLAN共享一个网关地址,节约了子网号、子网定向广播地址、子网缺省网关地址,且各Sub-VLAN间的界线也不再是从前的子网界线了,它们可以根据各自主机的需求数目在Super-VLAN对应子网内灵活的划分地址范围,从而即保证了各个Sub-VLAN作为一个独立广播域实现广播隔离,又节省了IP地址资源,提高了编址的灵活性。
原理描述:
VLAN聚合通过定义Super-VLAN和Sub-VLAN,使Sub-VLAN只包含物理接口,负责保留各自独立的广播域;Super-VLAN不包含物理接口,只用来建立三层VLANIF接口。然后再通过建立Super-VLAN和Sub-VLAN间的映射关系,把三层VLANIF接口和物理接口两部分有机的结合起来,实现所有Sub-VLAN共用一个网关与外部网络通信,并用ARP Proxy实现Sub-VLAN间的三层通信,从而在实现普通VLAN的隔离广播域的同时,达到节省IP地址的目的。
- Sub-VLAN:只包含物理接口,不能建立三层VLANIF接口,用于隔离广播域。每个Sub-VLAN内的主机与外部的三层通信是靠Super-VLAN的三层VLANIF接口来实现的。
- Super-VLAN:只建立三层VLANIF接口,不包含物理接口,与子网网关对应。与普通VLAN不同的是,它的VLANIF接口的Up不依赖于自身物理接口的Up,而是只要它所含Sub-VLAN中存在Up的物理接口就Up。
一个Super-VLAN可以包含一个或多个Sub-VLAN。Sub-VLAN不再占用一个独立的子网网段。在同一个Super-VLAN中,无论主机属于哪一个Sub-VLAN,它的IP地址都在Super-VLAN对应的子网网段内。
这样,Sub-VLAN间共用同一个网关,既减少了一部分子网号、子网缺省网关地址和子网定向广播地址的消耗,又实现了不同广播域使用同一子网网段地址的目的,消除了子网差异,增加了编址的灵活性,减少了闲置地址浪费。
Sub-VLAN之间的通信:
VLAN聚合在实现不同VLAN共用同一子网网段地址的同时,也给Sub-VLAN间的三层转发带来了问题。普通VLAN中,不同VLAN内的主机可以通过各自不同的网关进行三层互通。但是Super-VLAN中,所有Sub-VLAN内的主机使用的是同一个网段的地址,共用同一个网关地址,主机只会做二层转发,而不会送网关进行三层转发。即实际上,不同Sub-VLAN的主机在二层是相互隔离的,这就造成了Sub-VLAN间无法通信的问题。
解决这一问题的方法就是使用Proxy ARP。
示列:
如下图所示,假设Sub-VLAN2内的主机Host_1与Sub-VLAN3内的主机Host_2要通信,在Super-VLAN10的VLANIF接口上启用Proxy
ARP。
Host_1与Host_2的通信过程如下(假设Host_1的ARP表中无Host_2的对应表项):
- Host_1将Host_2的IP地址(10.1.1.12)和自己所在网段10.1.1.0/24进行比较,发现Host_2和自己在同一个子网,但是Host_1的ARP表中无Host_2的对应表项。
- Host_1发送ARP广播报文,请求Host_2的MAC地址,目的IP为10.1.1.12。
- 网关Router收到Host_1的ARP请求,由于网关上使能Sub-VLAN间的Proxy ARP,开始使用报文中的目的IP地址在路由表中查找,发现匹配了一条路由,下一跳为直连网段(VLANIF10的10.1.1.0/24),VLANIF10对应Super-VLAN10,则向Super-VLAN10的所有Sub-VLAN接口发送一个ARP广播,请求Host_2的MAC地址。
- Host_2收到网关发送的ARP广播后,对此请求进行ARP应答。
- 网关收到Host_2的应答后,就把自己的MAC地址回应给Host_1。
- Host_1之后要发给Host_2的报文都先发送给网关,由网关做三层转发。
Host_2发送报文给Host_1的过程和上述的Host_1发送报文给Host_2的过程类似,不再赘述。
Sub_VLAN与其他网络的三层通信:
以所示组网为例,介绍Sub-VLAN内主机与其他网络内的主机间通信过程。
如下图,用户主机与服务器处于不同的网段中,Router_1上配置了Sub-VLAN2、Sub-VLAN3、Super-VLAN4和VLAN10,Router_2上配置了VLAN10和VLAN20。
假设Sub-VLAN2下的主机Host_1想访问与Router_2相连的Server,报文转发流程如下(假设Router_1上已配置了去往10.1.2.0/24网段的路由,Router_2上已配置了去往10.1.1.0/24网段的路由,但两设备没有任何三层转发表项):
- Host_1将Server的IP地址(10.1.2.2)和自己所在网段10.1.1.0/24进行比较,发现和自己不在同一个子网,发送ARP请求给自己的网关,请求网关的MAC地址,目的MAC为全F,目的IP为10.1.1.1。
- Router_1收到该请求报文后,查找Sub-VLAN和Super-VLAN的对应关系,知道应该回应Super-VLAN4对应的VLANIF4的MAC地址,并知道从Sub-VLAN2的接口回应给Host_1。
- Host_1学习到网关的MAC地址后,开始发送目的MAC为Super-VLAN4对应的VLANIF4的MAC地址、目的IP为10.1.2.2的报文。
- Router_1收到该报文后,根据Sub-VLAN和Super-VLAN的对应关系以及目的MAC判断进行三层转发,查三层转发表项没有找到匹配项,上送CPU查找路由表,得到下一跳地址为10.1.10.2,出接口为VLANIF10,并通过ARP表项和MAC表项确定出接口,把报文发送给Router_2。
- Router_2根据正常的三层转发流程把报文发送给Server。
Server收到Host_1的报文后给Host_1回应,回应报文的目的IP为10.1.1.2,目的MAC为Router_2上VLANIF20接口的MAC地址,回应报文的转发流程如下:
- Server给Host_1的回应报文按照正常的三层转发流程到达Router_1。到达Router_1时,报文的目的MAC地址为Router_1上VLANIF10接口的MAC地址。
- Router_1收到该报文后根据目的MAC地址判断进行三层转发,查三层转发表项没有找到匹配项,上送CPU,CPU查路由表,发现目的IP为10.1.1.2对应的出接口为VLANIF4,查找Sub-VLAN和Super-VLAN的对应关系,并通过ARP表项和MAC表项,知道报文应该从Sub-VLAN2的接口发送给Host_1。
- 回应报文到达Host_1。
Sub-VLAN与其他设备的二层通信:
如下图所示组网为例,介绍Sub-VLAN内主机与其他设备的二层通信情况。Router_1上配置了Sub-VLAN2、Sub-VLAN3和Super-VLAN4,_Router_1的_IF_1和IF_2配置为Access接口,IF_3接口配置为Trunk接口,并允许VLAN2和VLAN3通过;Router_2连接Router_1的接口配置为Trunk接口,并允许VLAN2和VLAN3通过。
从Host_1进入Router_1的报文会被打上VLAN2的Tag。在Router_1中这个Tag不会因为VLAN2是VLAN4的Sub-VLAN而变为VLAN4的Tag。该报文从Router_1的Trunk接口IF_3出去时,依然是携带VLAN2的Tag。
也就是说,Router_1本身不会发出VLAN4的报文。就算其他设备有VLAN4的报文发送到该设备上,这些报文也会因为Router_1上没有VLAN4对应的物理接口而被丢弃。因为Router_1的IF_3接口上根本就不允许Super-VLAN4通过。对于其他设备而言,有效的VLAN只有Sub-VLAN2和Sub-VLAN3,所有的报文都是在这些VLAN中交互的。
这样,Router_1上虽然配置了VLAN聚合,但与其他设备的二层通信,不会涉及到Super-VLAN,与正常的二层通信流程一样。
配置Super-VALN:
配置注意事项:
- VLAN1不能配置为Super-VLAN。
- 配置某VLAN为Super-VLAN后,该VLAN类型改变为super,不允许任何物理接口加入该VLAN。
- 流策略只有在Super-vlan的所有Sub-vlan下配置才能生效,在Super-vlan下配置不生效。
- 配置某个VLAN为子接口的终结VLAN后,该VLAN不能再配置为Super-VLAN或Sub-VLAN。
- Super-VLAN对应的VLANIF接口配置IP地址后Proxy ARP才能生效。
配置聚合VLAN:
拓扑:
PC1,2 属于VLAN10 ,PC3,4属于VLAN20,通过聚合VLAN100,实现共用网关IP地址,开启VLAN间ARP代理,实现VLAN间通信。
配置参数:
1 | [SW]dis current-configuration |
参考资料:华为HedEx文档