Super VLAN技术原理和配置
Super VLAN产生的背景:
在大型局域网组网中,常采用接入层和核心层二层结构的组网方式,所有的网关都设在核心层设备上。由于每个VLAN都需要一个接口实现路由互通,这样问题就来了,如果因为特殊的需要,网络中划分了成百上千个VLAN,此时核心层设备就会出现VLAN接口数量不足的情况。那么,如果拥有一种技术,可以对VLAN进行聚合,就可以大幅度缩减实际需要的VLAN接口数量,交换机支持VLAN接口少的问题就可以得到解决。为了解决上面的问题,Super VLAN技术出现了。
super VLAN技术引入Super VLAN和Sub VLAN两个概念
这里有需要注意的地方,Super VLAN和通常意义上的VLAN不同,它不包含任何物理接口(通常意义上的VLAN必须依赖于自身物理接口的UP),可以把它看作一个逻辑的三层概念。可以把它看作是若干Sub VLAN的集合,为Sub VLAN提供三层转发。它依赖于所包含的Sub VLAN中存在UP状态的物理接口。
Sub VLAN只能包含物理接口,不能建立三层VLAN接口。它与外部的三层通信靠Super VLAN的接口来实现。
这样做既减少了一部分子网号、子网默认网关地址和子网定向广播地址的消耗,又可以使不同广播域使用同一子网网段地址,消除了子网差异,增加了编址灵活性,减少了限制地址浪费,使用代理ARP可以实现Sub VLAN间的三层互访,从而在实现普通VLAN功能的同时,达到了节省交换机VLAN 接口的目的。
如图1所示,交换机创建了Sub VLAN2和Sub VLAN3,二者属于不同的广播域,所以Super VLAN技术很好的隔离了它们,但这些Sub VLAN没有自己的VLAN接口,Super VLAN10则属于另一个独立的广播域,它与Sub VLAN2 和Sub VLAN3之间建立了映射关系,它不存在物理接口,只拥有一个VLAN 接口,用该接口为所有映射的Sub VLAN 提供三层通信服务。
图1
PCA的IP为10.1.1.2/24,PCB的IP为10.1.1.3/24,可以发现它们的IP地址在同一个网段,可是它们属于不同的广播域,它们之间是互相隔离的,Super VLAN10的接口IP为10.1.1.1/24,位PCA和PCB共同提供了网关服务。
关于代理ARP
什么是代理ARP?
如果ARP请求是从一个网络的主机发往同一个网段却不在同一物理网络上的另一个主机,那么连接它们的具有代理ARP功能的设备就可以回答该请求,这个过程就被称为代理ARP(Proxy ARP)。
代理ARP分为普通代理ARP和本地代理ARP两种:
普通代理ARP:想要互通的主机分别连接到设备的不同三层接口上,且这些主机不在同一个广播域。
图2
图2为普通代理ARP的工作原理:
HostA要与HostC通信,由于目的IP与本机的IP地址在同一个网段,HostA直接发送ARP请求,解析HostC的MAC地址。运行了代理ARP的交换机接收到ARP请求后,代理HostA在1.1.2.0网段发出ARP请求,解析HostC的MAC地址。
交换机收到ARP响应后,也向HostA发送ARP响应,但通告的MAC地址是其连接到1.1.1.0网段的VLAN1接口的MAC地址000F-E202-2222。所以在HostA的ARP表中,会形成IP地址1.1.2.3与MAC地址000F-E202-2222的映射项。即HostA会将所有要发送给HostC的数据包发送到交换机上,然后交换机再转发给HsotC。
本地代理ARP:想要互通的主机连接到设备的同一个三层接口上,且这些主机不在同一个广播域。
图3
图3为本地代理ARP的工作原理:
这是Super VLAN的典型应用,HostA和HostB分别属于Sub VLAN2和Sub VLAN3,HostA的IP为1.1.1.1/24,HostB的IP为1.1.1.2/24,虽然HostA和HostB的IP在同一个网段,但它们分别属于不同的广播域。通过SWA的Super VLAN10的三层接口上开启本地代理ARP功能,可以实现HostA和HostB的三层互通。
Sub VLAN的通信
图4
如图4所示,PCA需要发送报文给PCB,PCA发现目的IP地址和自己是同一网段,所以发送ARP请求,而PCB在VLAN3的广播域内,并不能收到这个ARP请求。因此PCA不能及时收到PCB的ARP应答,但是Super VLAN10可以收到这个ARP广播。又因为Super VLAN10开启了本地代理ARP,所以当PCA发出ARP请求时,网关开始在路由表里查找,发现下一跳为直连路由接口,则在Sub VLAN3内发送新的ARP请求PCB的MAC地址;得到PCB的回应后,Super VLAN10就把自己接口的MAC地址当做PCB的MAC地址在Sub VLAN2内给予PCA响应。之后,PCA发送普通IP报文给PCB时,通过Supr VLAN接口进行正常的三层报文转发。
图5
所以在开启了Super VALN的交换机上,Trunk链路将自动禁止Super VLAN的VLAN流量通过。
图5中,PCA属于SWB的VLAN2,PCC属于SWA的VLAN2,PCA访问PCC时,从SWB的E1/0/1进入的数据帧会被打上VLAN2的标签,在SWB中这个标签不会改变,SWB把数据帧从Trunk口E1/0/24转发出去,依然是VLAN2的数据帧。对于SWA而言,SWB上有效的VLAN只有VLAN2和VLAN3,从PCC返回的到SWB的数据帧可以在VLAN2中转发 。
图6
图6所示,为Sub VLAN与外部的三层通信,PCA发送IP报文到PCC,PCA检查发现PCC与自己属于不同的IP网段,所以将报文发送给自己的网关Super VLAN10。因此PCA检查自己的网关IP地址和MAC地址信息,发现只有IP没有MAC地址信息,于是发送ARP请求报文,请求网关的MAC地址。请求报文在Sub VLAN2内发送并被SWB接收,SWB没有对应的VLAN2接口,但它发现Sub VLAN2被映射到了Super VLAN10,Super VLAN10提供三层服务,所以交换机给予ARP响应,并在Sub VLAN2内发送。
至此,PCA成功学习到了网关的MAC地址,接下来,PCA发送目的MAC为Super VLAN 10、目的IP为30.1.1.2的报文。Sub VLAN2接收到报文后,检测到目的MAC,知道应该进行三层转发,就去查找路由表,发现下一跳地址为20.1.1.2,出接口为VLAN 20,于是把报文送给SWA,SWA根据正常的转发流程把报文发送给PCC。
PCC返回给PCA的报文到达SWB时,正常IP转发检查发现出接口为Super VLAN10的三层接口,但在Super VLAN10内没有包含任何物理接口,开启了Super VLAN的交换机注意到,如果存在Super VLAN,那么需要从Super VLAN转发出去的报文都应该寻找其对应的Sub VLAN,并在Sub VLAN 内按照ARP和MAC表项进行匹配。所以最终将报文发给PCA,完成双向通信。
Super VLAN配置
图7 Super VLAN配置
图8 主机PCA配置
图9 主机PCB配置
SWA配置:
[SWA]vlan 2
[SWA-vlan2]port GigabitEthernet 1/0/1
[SWA]vlan 3.
[SWA-vlan3]port GigabitEthernet 1/0/2
[SWA-vlan3]quit
[SWA]vlan 10
[SWA-vlan10]supervlan
[SWA-vlan10]subvlan 2 3
[SWA-vlan10]quit
[SWA]interface vlan 10
[SWA-Vlan-interface10]ip address 10.1.1.1 24
[SWA-Vlan-interface10]local-proxy-arp enable
[SWA-Vlan-interface10]quit
[SWA]vlan 20
[SWA-vlan20]port GigabitEthernet 1/0/3
[SWA-vlan20]quit
[SWA]interface vlan 20
[SWA-Vlan-interface20]ip address 20.1.1.1 24
[SWA-Vlan-interface20]quit
SWB配置:
[SWB]vlan 20
[SWB-vlan20]port GigabitEthernet 1/0/3
[SWB-vlan20]quit
[SWB]int vlan 20
[SWB-Vlan-interface20]ip address 20.1.1.2 24
[SWB-Vlan-interface20]quit
[SWB]ip route-static 0.0.0.0 0 20.1.1.1
配置完成后,在SWA上用命令查看Super VLAN 和Sub VLAN之间的映射关系:
<SWA>display supervlan
Super VLAN ID: 10
Sub-VLAN ID: 2-3
VLAN ID: 10
VLAN type: Static
It is a super VLAN.
Route interface: Configured
IPv4 address: 10.1.1.1
IPv4 subnet mask: 255.255.255.0
Description: VLAN 0010
Name: VLAN 0010
Tagged ports: None
Untagged ports: None
VLAN ID: 2
VLAN type: Static
It is a sub-VLAN.
Route interface: Configured
IPv4 address: 10.1.1.1
IPv4 subnet mask: 255.255.255.0
Description: VLAN 0002
Name: VLAN 0002
Tagged ports: None
Untagged ports:
GigabitEthernet1/0/1
VLAN ID: 3
VLAN type: Static
It is a sub-VLAN.
Route interface: Configured
IPv4 address: 10.1.1.1
IPv4 subnet mask: 255.255.255.0
Description: VLAN 0003
Name: VLAN 0003
Tagged ports: None
Untagged ports:
GigabitEthernet1/0/2