前两期小编介绍了VLAN的基础知识以及如何划分VLAN,之后不断有读者询问: VLAN划分后,同一VLAN用户可以二层互通,不同VLAN用户则二层隔离,可有些场合不同VLAN用户又想互通,肿么办呢?
请大家先回忆一下:VLAN是广播域,而广播域之间来往的数据包一般由路由器中继的。因此,VLAN间的通信通常要用到路由功能,这被称作“VLAN间路由”。VLAN间路由,可以使用普通的路由器,也可以使用三层交换机。有了这个初步认识,接下来小编就开始介绍使用三层交换机进行VLAN间通信的主要场景和技术。
VLAN间通信场景一:不同VLAN不同网段用户间的通信,用户通过三层交换机互联
使用技术:VLANIF
基本原理:前面提到,要实现VLAN间互通,就要建立VLAN间路由,此场景用户直连在三层交换机上,只需直连路由即可。而VLANIF接口是一个三层的逻辑接口,在其上配置IP地址为用户的网关地址后,它就在三层交换机上生成直连路由,同时,可作为用户的网关。这样,发往各VLAN网段的报文,就可在路由表中分别找到其出接口---VLANIF接口,从而实现三层转发。
江湖小贴士:VLANIF只生成直连路由,只能使得相邻设备互通。现网中用户间可能会跨多台三层交换机(如三层网络),此时,除配置VLANIF外,还要借助静态路由或路由协议才能实现互通。
VLAN间通信场景二:不同VLAN不同网段用户间的通信,用户通过二层交换机互联,仅通过一台三层交换机实现VLAN间通信
使用技术:子接口(又称单臂路由)
基本原理:跟VLANIF一样,子接口也是三层逻辑接口。在子接口上配置IP地址为用户的网关地址后,在三层交换机上同样形成直连路由,VLAN内的用户同样将网关指向对应的子接口(如图中VLAN2内用户的网关为Port1.1,VLAN3内用户的网关为Port2.1),进而实现三层通信。
江湖小贴士:通过子接口实现三层互通,虽然可减少物理接口占有量,不过由于发送的流量会争用物理主接口的带宽,网络繁忙时,会导致通信瓶颈哟。
VLAN间通信场景三:不同VLAN相同网段用户间的通信
使用技术:Super VLAN(又称VLAN聚合)
如下图所示,因IP地址有限,不同VLAN用户共用一网段,但又需要互通以及访问外网。
基本原理:通过定义Super-VLAN和Sub-VLAN, Super-VLAN只用来建立三层VLANIF接口,与网关对应,不包含物理接口;Sub-VLAN只包含物理接口,不建立三层VLANIF接口,用来隔离广播域,一个Super-VLAN可以包含一个或多个Sub-VLAN。
我们可以这样看,每一个普通VLAN都有一个三层逻辑接口和若干物理接口。而Super VLAN把这两部分剥离开来:Sub-VLAN只映射物理接口,负责保留各自独立的广播域;而Super-VLAN负责实现所有Sub-VLAN共享同一个三层接口的需求,使不同Sub-VLAN内的主机可以共用同一个网关;然后再通过建立Super-VLAN和Sub-VLAN间的映射关系,把三层逻辑接口和物理接口这两部分有机的结合起来,从而在实现普通VLAN功能的同时,达到节省IP地址的目的。
江湖小贴士:Sub-VLAN内主机与外网间的通信,跟使用VLANIF通信原理类似,只不过多了一步查找Sub-VLAN与Super-VLAN的映射关系;但Sub-VLAN间的通信,需要借助Proxy-ARP才能实现,这是为什么呢?这是因为Sub-VLAN内的主机同属一个网关,彼此通信时只会做二层转发,而不会通过网关进行三层转发,但不同Sub-VLAN的主机在二层是相互隔离的,这就造成了Sub-VLAN间无法通信,需要借助Proxy-ARP才能实现。
上述组网中,VLAN间用户均是通过三层交换机实现三层互通,三层互通需要查找路由表,转发效率较低。而二层转发效率高,那VLAN间能否实现二层互通呢?
答案是可以的哦,那就是通过VLAN Switch或VLAN Mapping实现。
VLAN间通信场景四:不同VLAN用户跨一台或多台交换机互联
使用技术:VLAN Switch
基本原理: 预先在各交换节点(如图中的Switch)上建立一条静态转发路径(即VLAN Switch表,指定VLAN转换关系和出接口)。这样,Switch根据VLAN Switch表将Port2上收到报文中的VLAN2转换为VLAN3,并从Port3发出;将Port3上收到报文的VLAN3将转换为VLAN2,并从Port2发出,从而实现VLAN2和VLAN3间的二层互通。
江湖小贴士:VLAN Switch转发查的是VLAN Switch表,而不是MAC表,这就使得VLAN Switch转发效率较高。但VLAN Switch是否就因此而可大量应用呢?否,因为VLAN Switch需要在途经的每个交换节点都要为每个VLAN用户配置静态转发路径,这就限制了其使用范围,当有大量VLAN用户接入,或用户跨运营商网络时就不再适用。
VLAN间通信场景五:不同VLAN用户跨运营商网络互联
使用技术:VLAN Mapping
基本原理:预先在需要VLAN转换的两端设备(如图中SwitchA和SwitchB)配置VLAN映射关系,但不需像VLAN Switch那样指定出接口。配置后,SwitchA接收到VLAN10~50报文后,根据VLAN映射表将报文中的VLAN转换为VLAN100,根据MAC表查到VLAN100对应出接口Port2,VLAN100报文穿越运营商网络到达SwitchB的Port2接口时,找到其出接口Port1,在从出接口发出前,将VLAN100转换为VLAN60~90,进而可通过分支2的接入交换机二层转发到目的主机。因为只需在VLAN转换的两端设备配置,运营商网络无需改变其配置,大大简化了配置。
江湖小贴士:VLAN Mapping虽然大大简化配置,但VLAN Mapping需要通过查MAC表转发,转发效率上较VLAN Switch低些,并且易引入广播风暴以及收到MAC攻击。
接下来就跟大家讲解如何配置,由于篇幅限制,小编仅选一种常用的技术—VLANIF来讲解。
配置案例一:如下图所示,PC1和PC2分属研发部和质量部,两部门通过一台三层交换机互联,两部门有业务往来,需要二层隔离,三层通信。
配置思路
此场景配置简单,只需将连接PC的接口加入VLAN,然后创建VLANIF,并配置IP地址为对应用户的网关即可。
操作步骤
l Switch上的配置如下:
#
sysname Switch#vlan batch 10 20#interface Vlanif10ip address 10.1.1.1 255.255.255.0 //此IP地址为PC1对应网关地址#interface Vlanif20ip address 10.1.2.1 255.255.255.0 //此IP地址为PC2对应网关地址#interface GigabitEthernet0/0/1 //将PC1划分到VLAN10中port link-type accessport default vlan 10#interface GigabitEthernet0/0/2 //将PC2划分到VLAN20中port link-type accessport default vlan 20
配置完成后,我们使用命令display ip routing-table查看设备上的路由:
可以看到,路由表中有了到达VLAN10、VLAN20网段的直连路由。下面我们就验证一下,PC1、PC2是否可以互相Ping通。
在验证之前,先设置PC1的IP地址为10.1.1.2 ,网关为10.1.1.1/24;设置PC2的IP地址为10.1.2.2 ,网关为10.1.2.1/24,然后互Ping,结果如下:
可以看到,互Ping成功,表明配置成功。
典型案例二:如下图所示,为安全及便于管理,企业为服务器专门划分VLAN,用户属于VLAN10,服务器属于VLAN20,用户与服务器间跨接入、汇聚和核心交换机,其中,接入是二层交换机,汇聚、核心是三层交换机。由于业务需要,用户与服务器间需要互通。
配置思路:
此场景用户与服务器间跨越多台二层、三层交换机,可以配置VLANIF,将汇聚交换机AGG作为用户PC的网关,核心交换机作为服务器Server的网关。但VLANIF只生成直连路由,只能使得相邻设备互通,要使User与服务器互通,还需要配置从AGG到VLAN20网段以及从CORE到VLAN10网段的路由,可以使用静态路由,也可以使用动态路由,本示例采用静态路由。
操作步骤
1. 配置ACC、AGG、CORE的各接口,并将接口加入VLAN,使VLAN10的用户报文透传到AGG,VLAN20的Server报文透传到CORE
l ACC1的配置如下:
#sysname ACC1#vlan batch 10#interface GigabitEthernet0/0/1 //将User划分到VLAN10中port link-type accessport default vlan 10#interface GigabitEthernet0/0/2 //透传VLAN10到AGGport link-type trunkport trunk allow-pass vlan 10ACC2与此类似,只不过接口加入、透传的VLAN是VLAN20。
l AGG的配置如下:
#sysname AGG#vlan batch 10 30#interface GigabitEthernet0/0/1 //透传VLAN10,以转发User报文port link-type trunkport trunk allow-pass vlan 10#interface GigabitEthernet0/0/2 //透传互联VLAN30,以转发互联报文port link-type trunkport trunk allow-pass vlan 30l CORE的配置如下:
#sysname CORE#vlan batch 20 30#interface GigabitEthernet0/0/1 //透传VLAN20,以转发Server报文port link-type trunkport trunk allow-pass vlan 20#interface GigabitEthernet0/0/2 //透传VLAN30,以转发互联报文port link-type trunkport trunk allow-pass vlan 30
2. 在AGG上配置VLANIF10和IP地址,作为用户的网关;在CORE上配置VLANIF20,作为Server的网关,同时配置互联VLANIF30,使AGG与CORE互通
l AGG的配置如下:#interface Vlanif10ip address 10.1.1.1 255.255.255.0 //此IP地址为User对应网关地址#interface Vlanif30ip address 10.10.30.1 255.255.255.0 //互联IP地址,不能与User、Server的IP网段冲突l CORE的配置如下:#interface Vlanif20ip address 192.168.1.1 255.255.255.0 //此IP地址为Server对应网关地址#interface Vlanif30ip address 10.10.30.2 255.255.255.0 //互联IP地址,不能与User、Server的IP网段冲突
配置至此,我们验证一下User是否能Ping通Server:
可以看到,User此时Ping不通Server,这是因为AGG上没有到达Server网段192.168.1.0/24的路由:
3. 在AGG、CORE上配置静态路由
l AGG的配置如下:#
ip route-static 192.168.1.0 255.255.255.0 10.10.30.2
l CORE的配置如下:#
ip route-static 10.1.1.0 255.255.255.0 10.10.30.1
江湖小贴士:对于VLANIF、Eth-Trunk这样的逻辑接口,静态路由必须采用下一跳,而不能是出接口,因为这些逻辑接口会有多个成员口,会出现多个下一跳,无法唯一确定下一跳。
配置完成后,我们再来用User Ping Server,结果如下:
可以看到,User可以Ping通Server,配置成功。
本期的VLAN通信,小编就介绍到这里。诸位如要了解其他VLAN间通信的配置方法,请点击配置指南-以太网交换获取。