一、Super VLAN 的产生背景
Isolate-user-vlan成功地解决了降低VLAN数量的问题,同时在一定程度上也实现了三层网关的共享。但它也存在MAC地址复制而消耗MAC地址表项的问题,并且该技术本身属于一个二层VLAN技术。
在一般的三层交换机中,通常是采用一个VLAN对应一个三层接口的方式来实现广播域之间的互通,这在某些情况下导致了对IP地址的较大浪费。
也就是一个VLAN对应的三层VLAN接口的IP地址按照子网掩码来划分
如上图显示,VLAN 21 预计未来要有10个主机,故给其分配一个掩码长28的子网---1.1.1.0/28。其中网络地址、网关地址、广播地址都不能作为主机地址,剩下的地址可被主机使用的共有13个。这样,尽管VLAN 21 只需要10个地址就可以满足需求了,但是按照子网划分却要分给它13个地址。
同理,VLAN 22 和 VLAN 23,这三个VLAN总共需要10+5+1=16个地址,按照普通VLAN的编址方式,即时最优化的方案也需要占用28个自hi,地址浪费了将近一半。
而且,如果 VLAN 21 后来并没有增长到10台主机,而只增长到了3台主机,本来本来分一个掩码长29的子网就够用了,但之前却分了一个子网掩码长28的子网给它,多出来的地址都因不能再被其他VLAN使用而被浪费掉了。
同时,这种划分也给后续的网络升级带来了很大不便。假设 VLAN 23 所在的客户一段时候后需要增加2台主机,又不愿意改变已分配的IP地址。在1.1.1.24后面的地址已经分配给其他人的情况下,那没有办法,只能额外再给他分配一个29位掩码的子网和一个新的VLAN给他。这样VLAN23的客户只有3台主机,却被迫分配了两个子网,不在同一个VLAN,造成管理上的极大不便。
由此我们可以看出,被诸如子网号、子网定向广播地址、子网缺省网关地址消耗掉的IP地址数量是相当可观。同时,这种地址分配的固有约束也严重降低了编址的灵活性,使许多闲置地址被浪费。
为了解决这一问题,Super VLAN 应运而生。
二、Super VLAN 基本介绍
Super VLAN 技术中引入了Super VLAN 和 Sub VLAN 这两个概念
Super VLAN 和通常意义上的VLAN不同,它只建立三层接口,而不包含物理端口。因此,可以把它看作一个逻辑的三层概念——若干 Sub VLAN 的集合,并为Sub VLAN 提供三层转发。与一般没有物理端口的VLAN不同,它的接口的UP状态不依赖于其自身物理端口的UP,而是依赖它所包含的 Sub VLAN 中存在UP状态的物理端口。
Sub VLAN则只包含物理端口,但是不能建立三层VLAN接口。它与外部的三层交换是靠Super VLAN 的接口来实现的。
我们可以这样看:每一个普通VLAN都有一个三层逻辑接口和若干物理端口。而 Super VLAN 把这两部分剥离开来:sub-VLAN 只映射若干物理端口,负责保留各自独立的广播域; 而用一个 super-VLAN 来实现所有 sub-VLAN 共享同一个三层接口的需求,使不同 sub-VLAN 内的主机可以共用同一个 super-VLAN 的网关,在 super-VLAN 对应的子网里分配地址;然后再通过建立 super-VLAN 和 sub-VLAN 间的映射关系,把三层逻辑接口和物理端口这两部分有机的结合起来,并用 ARP Proxy 来实现 sub-VLAN 间的三层互访,从而在实现普通 VLAN 的功能的同时,达到节省 IP 地址的目的。
三、Super VLAN 的实现
仍以前面的例子进行说明。用户需求不变。仍旧是VLAN 21预计有10个主机,VLAN 22预计有5个,VLAN 23 预计1个。按照Super VLAN 的实现方式,令 VLAN 2 为Super VLAN ,分配子网1.1.1.0/24,子网缺省网关地址1.1.1.1,子网定向广播地址1.1.1.255,则,Sub-VLAN—— VLAN 21、VLAN 22、VLAN 23 的地址划分如下图所示
我们可以看到,VLAN 21、VLAN 22、VLAN 23共用同一个子网号 1.1.1.0 、子网缺省网关地址 1.1.1.1 和子网定向广播地址 1.1.1.255 。这样,普通VLAN实现方式中用到的网络地址、网关地址、广播地址就都可以用来作为主机IP地址使用了。
Super VLAN的实现中,各 Sub VLAN 间的界线也不再是从前的子网界线了,它们可以根据其各自的主机需求数目在 Super VLAN 对应子网内灵活的划分地址范围。
这样,3个VLAN一共需要16个地址,实际上在这个子网里就刚好分配了16个地址给它们。这16个主机地址加上子网号、子网缺省网关、子网定向广播地址,一共用去了19个IP地址,网段内仍剩余237的地址可以被任意 Sub-VLAN 内的主机使用。
四、Super VLAN的通信
Super VLAN 在实现不同 VLAN 间共用同一子网网段地址的同时,也给 Sub-VLAN 间的三层转发带来了问题。原本在三层交换机上,VLAN 间是可以通过走各自不同的上行网关进行三层转发的,但是 Super VLAN 内的主机使用的是用一个网段的地址,共用同一个上行网关,即时是属于不同的 Sub VLAN 的主机,由于其地址同属一个子网,设备会认为它们是二层互通的,会做二层转发,而不会送网关进行三层转发。而实际上 Sub VLAN 间在二层是相互隔离的,这就造成了 Sub-VLAN 间无法通信的局面。
解决之道就是,用 ARP Proxy 来实现 Sub VLAN 间的互通。
五、代理ARP