super_vlan
Super VLAN产生的背景
就经典的酒店例子来说,若是将101房和102房的网络划分在同一个vlan下面,那么101房出现了一个懂得某些安全技术的大佬,就会使得102房的隐私得到严重的隐患
所以这时我们就需要将二层给隔离开,但又要去保证101房和102房之间的基本通信,所以我们就需要使得101房和102房之间二层隔离,而三层互通
方法1:将101房划分一个vlan并分配一个IP地址段,在102房划分另一个vlan并分配另一个IP地址段,这样也能使得两房之间的网络互通,但是一旦酒店规模增大,vlan的id还好说,但就会显得非常地浪费IP地址
方法2:为了解决方法1中浪费IP地址的问题,我们可以使用super vlan技术来解决,如给101房在物理层面上分配一个sub vlan 10,给102房在物理层面上分配一个sub vlan 20 ,而对于sub vlan 10/20,逻辑层面上,它们都属于super vlan 2。即可达到这些sub vlan都属于同一个子网和网关,而又二层隔离,节约IP地址段的目的
super vlan概述
通过上面对super vlan的基本应用介绍,我们大致了解了super vlan和sub vlan的用途是怎么样的,但还是对super vlan怎么建,用什么建等理论问题有所欠缺
super vlan:用于创建SVI接口,但不包含物理接口
sub vlan:只包含物理接口,没有SVI接口
只是将sub vlan创建出来是没有办法让sub vlan之间的主机通信的,要想是sub vlan之间通信,则需要通过super vlan上开启ARP代理
相同sub vlan的通信
相同sub vlan通信的时候,由于PC3发出的ARP报文中携带vlan 10 的标签,这个vlan 10的标签被交换机看到之后,会将ARP报文泛洪到所有被绑定为vlan 10的端口
当PC4收到ARP报文后,会进行一个应答包的发送,以同样的方式发送给PC3
不同sub vlan的通信
这里super vlan已经开启了ARP代理功能,而在整个转发的过程中,PC是并没有跨二层的概念的,虽然说两者通信的方式都是通过交换机SW1的MAC地址,但是对于PC3和PC4而言,它们两个一直是在一个广播域内的
为什么要开启ARP代理
对于PC而言,根本没有VLAN的概念,PC3和PC4会认为自己和对方都处在同一个广播域,所以当发生PC3访问PC4的时候,PC3会直接发ARP包给SW,让SW去给PC4
但在没有开启ARP代理之前,SW去不会去给ARP包给PC4的,因为只是PC上没有VLAN的概念,一旦到了交换机上,就有VLAN的概念,交换机发现没有和PC3处于同一个VLAN物理接口,就不会在进行ARP包的转发
开启ARP代理之后,super vlan就会向所有的sub vlan发送ARP包,即一个为广播形式的ARP包,但前提是super vlan需要到达目的网段,才能进行数据的发送
交换机发送完广播形式的ARP包后,就可以寻找到PC4,PC4收到这个ARP包后,将会发送一个应答包
交换机收到应答之后,在交换机SW上会产生一个MAC地址汇总表,存储了所有PC的MAC地址的汇总表,如果下次有访问的请求,就可以直接根据该表进行转发
随后由交换机在发送PC3自己的MAC地址,而PC3和PC4学到的MAC地址实际上都是交换机的,只不过在PC的眼中没有VLAN的概念
所以PC3和PC4都会认为这是对方的MAC地址,再次由PC3访问PC4的情况,就会将数据交给交换机SW,由交换机SW来根据MAC地址表处理后面的转发
sub vlan与其它普通vlan的二层通信
由于super vlan是不存在任何的成员接口的,即super vlan没有任何的物理接口,所以但SW1给SW2发送报文的时候,是不包含任何super vlan的信息的
换一句话说,对于除了sub vlan 来说,将没有任何人知道super vlan的任何信息
所以当数据sub vlan 10要去访问SW2下的vlan10时,由于SW2不知道super vlan 的存在,就只会将sub vlan 10看作普通的vlan 10
从而,我们得出结论,sub vlan 与普通vlan的通信方式与普通vlan 和普通vlan 的通信方式是一致的
sub vlan与其它的三层网络通信
刚刚已经说过了,除了sub vlan,在整个网络体系中,就没有其它人知道super vlan这个概念了
所以若是sub vlan与其它的三层网络进行通信,也是走普通的IP网络转发
super vlan的配置
既然是高级的vlan,那么基础也是从vlan开始,所以第一步,我们要做的应该是创建vlan
SW(config)#vlan range 10,20,30,2
告诉vlan2,它是super vlan,并关联它的sub vlan为10,20,30
SW(config)#vlan 2
SW(config-vlan)#SW(config)#vlan 2
SW(config-vlan)#subvlan 10,20,30
创建SVI接口,这一步也是为sub vlan们配置网关
SW(config)#int vlan 2
SW(config-if-VLAN 2)#ip add 192.168.1.2 24
给sub vlan定义地址范围,这一步是可选的,当存在DHCP服务器的时候,这一步就是非必要的
重点:因为如果dhcp分配的给vlan 10中其中一台主机的地址为192.168.1.120,而我们却定义vlan 10 的地址段为192.168.1.10~192.168.1.40
这样会造成DHCP分配地址成功,但是该主机不能与外界通信的后果
SW(config)#vlan 10
SW(config-vlan)#subvlan-address-range 192.168.1.10 192.168.1.50
SW(config-vlan)#ex
SW(config)#vlan 20
SW(config-vlan)#subvlan-address-range 192.168.1.60 192.168.1.100
SW(config-vlan)#ex
SW(config)#vlan 30
SW(config-vlan)#subvlan-address-range 192.168.1.110 192.168.1.160
SW(config-vlan)#ex
将vlan划入到对应的接口
SW(config)#int g0/0
SW(config-if-GigabitEthernet 0/0)#switchport mode access
SW(config-if-GigabitEthernet 0/0)#switchport access vlan 10
SW(config-if-GigabitEthernet 0/0)#int g0/1
SW(config-if-GigabitEthernet 0/1)#switchport mode access
SW(config-if-GigabitEthernet 0/1)#switchport access vlan 20
SW(config-if-GigabitEthernet 0/1)#int g0/2
SW(config-if-GigabitEthernet 0/2)#switchport mode access
SW(config-if-GigabitEthernet 0/2)#switchport access vlan 30
SW(config-if-GigabitEthernet 0/2)#ex
super vlan 的限制
super vlan虽然解决了IP地址浪费的问题,但是还是存在着不少的缺陷的
1、super vlan往下后,没有成员接口,只有sub vlan,换句话说super vlan不属于任何一个物理接口,只有sub vlan才有物理接口,如果super vlan绑定到接口下,将会出现如下的报错
2、super vlan不能作为其它super vlan的sub vlan,即在super vlan中是没有层级概念的
3、vlan1不能属于super vlan,因为在默认情况下,每个物理接口下都打上了vlan 1的标签,又因为super vlan不可能被绑定到物理接口下,所以vlan 1就更不可能成为super vlan了
4、在sub vlan上不能配置IP地址,sub vlan 没有路由口,即无SVI接口
5、一个sub vlan只能属于一个super vlan,我们可以将super vlan看作sub vlan下联成员的网关,而一个设备不能存在两个网关,自然不能存在属于两个super vlan
6、sub vlan的删除不能直接使用no vlan命令来删除,需要先将sub vlan转换成普通的vlan才能正常地删除
7、基于super vlan所在设备的接口ACL和QOS,对于sub vlan来说是无效的
super vlan实验
目的1:PC3和PC4都为一个sub vlan,PC5为另一个sub vlan,PC6不为sub vlan,但是处于vlan 10下
基础IP配置
PC3上,192.168.1.30
VPCS> ip 192.168.1.30 255.255.255.0 192.168.1.2
PC4上,192.168.1.40
VPCS> ip 192.168.1.40 255.255.255.0 192.168.1.2
PC5上,192.168.1.50
VPCS> ip 192.168.1.50 255.255.255.0 192.168.1.2
PC6上,192.168.1.60
VPCS> ip 192.168.1.60 255.255.255.0 192.168.1.2
配置SW1和SW2上的接口类型为trunk,并且允许所有vlan通过
SW1上
SW1(config)#int g0/3
SW1(config-if-GigabitEthernet 0/3)#switchport mode trunk
SW1(config-if-GigabitEthernet 0/3)#switchport trunk allowed vlan all
SW2上
SW2(config)#int g0/1
SW2(config-if-GigabitEthernet 0/1)#switchport mode trunk
SW2(config-if-GigabitEthernet 0/1)#switchport trunk allowed vlan all
配置super vlan
在SW1上创建所需要的vlan
SW1(config)#vlan range 10,20,2
SW1(config-vlan-range)#ex
在SW1上配置super vlan,并划分sub vlan
SW1(config)#vlan 2
SW1(config-vlan)#supervlan
SW1(config-vlan)#subvlan 10,20
SW1(config-vlan)#ex
为sub vlan划分物理接口
SW1(config)#int g0/0
SW1(config-if-GigabitEthernet 0/0)#switchport mode access
SW1(config-if-GigabitEthernet 0/0)#switchport access vlan 10
SW1(config-if-GigabitEthernet 0/0)#int g0/1
SW1(config-if-GigabitEthernet 0/1)#switchport mode access
SW1(config-if-GigabitEthernet 0/1)#switchport access vlan 10
SW1(config-if-GigabitEthernet 0/1)#int g0/2
SW1(config-if-GigabitEthernet 0/2)#switchport mode access
SW1(config-if-GigabitEthernet 0/2)#switchport access vlan 20
SW1(config-if-GigabitEthernet 0/2)#ex
在我们没有配置SVI,即没有开启ARP代理之前,由于PC3和PC4都是处于sub vlan10,所以PC3与PC4是互通的,而PC5却是处于sub vlan 20下,所以此时PC3/PC4去pingPC5是ping不通的
现在在SW1上将SVI配上,会默认自动开启ARP代理,此时PC3/PC4应该是能ping通PC5的
SW1(config)#int vlan 2
SW1(config-if-VLAN 2)#ip add 192.168.1.2 24
SW1(config-if-VLAN 2)#ex
PC3ping通PC5图片
此时若是手动将ARP代理给关掉,则会返回刚刚PC3/PC4去pingPC5是ping不通的现象
SW1(config)#vlan 2
SW1(config-vlan)#no proxy-arp
PC3再次ping不通PC5图片,如果出现ping的现象,那说明刚刚SW1发个PC3的MAC地址缓存还存在
目标2:验证sub vlan 10与普通vlan 10之间的通信是三层还是二层
现在我们已经将ARP代理手动关闭了,如果由处于sub vlan 10的PC3去ping处于普通vlan 10 的PC6能ping通的话,那么就说明sub vlan 10与普通vlan 10之间的通信走的是二层,因为开启ARP代理才能代表走三层
在SW2上创建vlan 10并为vlan 10划分物理接口
SW2(config)#vlan 10
SW2(config-vlan)#ex
sub vlan 10的PC3去ping处于普通vlan 10 的PC6能ping通图片如下,说明sub vlan 10与普通vlan 10之间的通信是走三层的