一、VLAN产生的背景
虚拟局域网(VLAN),是英文Virtual Local Area Network的缩写,随着网络规模不断扩大,网络中的广播报文也随之增加,结果就是使交换机的负担不停的加重,并且一些终端设备也会收到不希望收到的报文。
VLAN技术的产生为网络增加了必要的转发控制手段,使网络中的站点不拘泥于所处的物理位置,而可以根据需要灵活地加入不同的逻辑子网。
二、 VLAN的技术原理
技术原理引用自:「攻城狮9527」的原创文章,原文链接:https://blog.csdn.net/z429831417/article/details/50498072
以太网交换机中是根据目的MAC地址来查MAC地址表进行数据帧的转发,MAC地址表中包含了MAC地址与端口的一个对应的关系,当交换机收到一个数据帧的时候,交换机会查看该数据帧中的目的MAC地址,如果是一个单播帧,交换机会查表从对应的端口转发出去,如果是广播地址,那么交换机会从除开收到该广播帧的以外的所有端口发送出去;但是在VLAN 技术中,交换机在数据帧中加上一个标签,然后交换机在查表的过程之外还要检查端口上的标签是否匹配,交换机只会在属于这个标签的端口上进行转发,如果不是就不进行转发操作。
上图就是一个带IEEE802.1Q标记的以太网帧格式,我们现在重点来看中间的tag字段,tag字段总共占四个字节,其中TPID(标签协议标识)和TCI(标签控制信息)各占两个字节;TPID是什么?TPID是IEEE定义的新的类型,标识这是一个封装了802.1Q标签的帧,其中就包含了一个固定的值0x8100。后面的TCI又包含了三个字段。分别是priority(优先级)、CFI、VLAN ID;priority占3位,指定帧的优先级,一共有8种优先级,从0-7;CFI占1为,当这个值为0时说明这是一个规范格式,为1时是非规范格式,它在令牌环网、FDDI网络中来指示封装帧中所带的地址的比特次序;VLAN ID字段占12位,指明该数据帧所在的vlan编号,VLAN的编号共4096个,但是0和4096保留,所以可用的也就4094个,其中的vlan 1是交换机的默认vlan。
三、VLAN标签应用规则
3.1VLAN转发流程
1.收到对端设备以太网帧;
2.判断是否为Tagged,如果是使用自身的VLAN ID,如果否添加PVID;
3.交换机是否创建了该VLAN,如果是判断目标端口是否允许该vlan转发,允许则转发,如果为否则丢弃该报文;入托交换机没有创建该vlan,则直接丢弃。
3.2 Access接口VLAN属性
交换机先创建vlan 10,并设置G0/0/1口为Access
现在查看G0/0/1口属性:
当接收到的报文不带标签时:接收该报文并为该报文添加缺省vlan 10 的标签。 当接收到的报文带标签时,当VLAN ID与缺省VLAN ID相同时接收该报文,当VLAN ID与缺省VLAN ID不同时丢弃该报文。当接口需要对外发送数据时由于VLAN ID就是缺省VLAN ID,不用设置,去掉标签后发送。
3.3 Trunk接口VLAN属性
设置G0/0/2口为Trunk
现在查看G0/0/2口属性:
Trunk端口在接收数据时:当VLAN ID与缺省VLAN ID相同时接收该报文,当VLAN ID与缺省VLAN ID不同时,但VLAN ID是该端口允许通过的VLAN ID时接收该报文。当VLAN ID与缺省VLAN ID不同时,且VLAN ID是该端口不允许通过的VLAN ID时丢弃该报文。
Trunk端口在发送数据时:当VLAN ID与缺省VLAN ID相同时去掉标签,发送该报文。 当VLAN ID与缺省VLAN ID不同时保持原有标签,发送该报文。
3.4 Hybrid端口VLAN属性
设置G0/0/3口为Hybrid(交换机启动默认的端口模式)
现在查看G0/0/3口属性:
Hybrid端口在就收数据时,当VLAN ID与缺省VLAN ID相同或在tagged 、untagged列表中允许该报文通过,否则丢弃。
Hybrid端口在发送数据时,当VLAN ID与缺省VLAN ID或在untagged列表中剥离标签,并发送该报文,当VLAN ID与缺省VLAN ID不同但在tagged列表中保留标签,并发送该报文,
四、 VLAN实现方法
4.1 基于端口划分VLAN
这种划分方式是最常用,这种划分方式优点在于定义VLAN成员时非常简单,只需要简单将端口指定即可。但是如果VLAN用户离开原来的端口时,则必须重新指定用户新的接入端口。
实验拓扑:
LSW1:
<Huawei>sys
[Huawei]vlan batch 10 20
[Huawei]interface GigabitEthernet 0/0/3
[Huawei-GigabitEthernet0/0/3]port link-type trunk
[Huawei-GigabitEthernet0/0/3]port trunk allow-pass vlan 10 20
[Huawei-GigabitEthernet0/0/3]quit
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type access
[Huawei-GigabitEthernet0/0/1]port default vlan 10
[Huawei-GigabitEthernet0/0/1]quit
[Huawei]interface GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type access
[Huawei-GigabitEthernet0/0/2]port default vlan 20
[Huawei-GigabitEthernet0/0/2]quit
LSW2配置同理。
实验结果:
PC1 ping PC3 ,在LSW1的G0/0/3口抓包,结果如下:
PC2 ping PC4 ,在LSW1的G0/0/3口抓包,结果如下:
4.2 基于MAC地址划分VLAN
这种划分方式是基于用户的MAC地址的,每个MAC地址属于一个指定的VLAN,交换机跟踪MAC的地址。这种方式的VLAN允许网络用户从一个物理位置移动到另一个物理位置时,自动保留其所属VLAN的成员身份。
实验拓扑:
LSW1:
<Huawei>undo terminal monitor # 关闭将调试信息输出到终端
<Huawei>system-view
[Huawei]vlan batch 10 20
[Huawei]interface GigabitEthernet 0/0/3
[Huawei-GigabitEthernet0/0/3]port hybrid tagged vlan 10 20
[Huawei-GigabitEthernet0/0/3]quit
[Huawei]port-group group-member GigabitEthernet 0/0/1 GigabitEthernet 0/0/2
[Huawei-port-group]port hybrid untagged vlan all
[Huawei-port-group]quit
[Huawei]vlan 10
[Huawei-vlan10]mac-vlan mac-address 5489-98f1-4d75
[Huawei-vlan10]quit
[Huawei]vlan 20
[Huawei-vlan20]mac-vlan mac-address 5489-9881-24a3
[Huawei-vlan20]quit
LSW2配置同理。
实验结果:
PC1 ping PC3 ,在LSW1的G0/0/3口抓包,结果如下:
PC2 ping PC4 ,在LSW1的G0/0/3口抓包,结果如下:
4.3 基于网络层协议划分VLAN
VLAN按网络层协议来划分,可分为IP,IPX,DECnet,AppleTalk,Banyan等VLAN网络。这种方法的优点是用户的物理位置改变了,不需要重新配置所属的VLAN,而且可以根据协议类型来划分VLAN,这对网络管理者来说很重要。另外,这种方法不需要附加的桢标签来识别VLAN,这样可以减少网络的通信量。
实验拓扑:
LSW1:
<Huawei>system-view
[Huawei]vlan batch 10 20
[Huawei]vlan 10
[vlan-vlan10]protocol-vlan ipv4
[Huawei-vlan]quit
[Huawei]vlan 20
[Huawei-vlan20]protocol-vlan ipv6
[Huawei-vlan20]quit
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port hybrid untagged vlan all
[Huawei-GigabitEthernet0/0/1]protocol-vlan vlan 10 0 priority 0 #GE0/0/1与VLAN10关联,优先级是0
[Huawei-GigabitEthernet0/0/1]quit
[Huawei]interface GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/2]port hybrid untagged vlan all
[Huawei-GigabitEthernet0/0/2] protocol-vlan vlan 20 0 priority 0
[Huawei-GigabitEthernet0/0/2]quit
[Huawei]interface GigabitEthernet 0/0/3
[Huawei-GigabitEthernet0/0/3]port hybrid tagged vlan all
LSW2配置同理。
实验结果:
PC1 ping PC3 ,在LSW1的G0/0/3口抓包,结果如下:
PC2 ping PC4 ,在LSW1的G0/0/3口抓包,结果如下:
4.4 基于IP组播划分VLAN
IP组实际上是一种VLAN的定义,即认为一个IP组播就是一个VLAN.这种方法有很强的灵活性,容易通过路由扩展。但不是合于局域网,主要是效率不高,而且配置复杂。
实验拓扑:
LSW1:
<Huawei> system-view
[Huawei]vlan batch 10 20 30
[Huawei]vlan 10
[Huawei-vlan10]ip-subnet-vlan 1 ip 192.168.1.1 24 priority 2 # VLAN10与IP地址192.168.1.1/24关联,优先级为2。
[Huawei-vlan10]quit
[Huawei]vlan 20
[Huawei-vlan20]ip-subnet-vlan 1 ip 192.168.2.1 24 priority 3
[Huawei-vlan20]quit
[Huawei]vlan 30
[Huawei-vlan30]ip-subnet-vlan 1 ip 192.168.3.1 24 priority 4
[Huawei-vlan30]quit
[Huawei]interface GigabitEthernet 0/0/4
[Huawei-GigabitEthernet0/0/4]port hybrid tagged vlan all
[Huawei-GigabitEthernet0/0/4]quit
[Huawei]port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/3
[Huawei-port-group]port hybrid untagged vlan all
[Huawei-port-group]ip-subnet-vlan enable
[Huawei-port-group]quit
LSW2配置同理。
实验结果:
PC1 ping PC2,在LSW1的G0/0/4口抓包,结果如下:
PC3 ping PC4,在LSW1的G0/0/4口抓包,结果如下:
PC5 ping PC6,在LSW1的G0/0/4口抓包,结果如下:
4.5 基于策略划分VLAN
基于策略的VLAN的划分是一种比较有效而直接的方式,主要取决于在VLAN的划分中所采用的策略。这里的策略主要包括“基于MAC地址+IP地址”组合和“基于MAC地址+IP地址+端口”组合策略两种。
实验拓扑:
LSW1:
<Huawei>system-view
[Huawei]vlan batch 10 20
[Huawei]port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/2
[Huawei-port-group]port hybrid untagged vlan all
[Huawei-port-group]quit
[Huawei]interface GigabitEthernet 0/0/3
[Huawei-GigabitEthernet0/0/3]port hybrid tagged vlan all
[Huawei-GigabitEthernet0/0/3]quit
[Huawei]vlan 10
[Huawei-vlan10]policy-vlan mac-address 5489-983c-3454 ip 192.168.1.1 interface GigabitEthernet 0/0/1
[Huawei-vlan10]quit
[Huawei]vlan 20
[Huawei-vlan20]policy-vlan mac-address 5489-9803-0b4a ip 192.168.1.3 interface GigabitEthernet 0/0/2
[Huawei-vlan20]quit
LSW2配置同理。
实验结果:
PC1 ping PC3,在LSW1的G0/0/3口抓包,结果如下:
PC2 ping PC4,在LSW1的G0/0/3口抓包,结果如下:
4.6 基于用户定义划分VLAN
基于用户定义、非用户授权来划分VLAN,是指为了适应特别的VLAN网络,根据具体的网络用户的特别要求来定义和设计VLAN,而且可以让非VLAN群体用户访问VLAN,但是需要提供用户密码,在得到VLAN管理的认证后才可以加入一个VLAN。
暂无实验⊙﹏⊙b汗!
五、VLAN路由
VLAN的出现成功隔离了二层广播域,也就严格地隔离了各个VLAN之间的任何流量,分属于不同VLAN的用户不能互相通信。
5.1 “多臂路由”
这种方式的优点是管理简单,缺点是网络扩展难度大。每增加一个新的VLAN,都需要消耗路由器的端口和交换机上的访问链接,而且还需要重新布设一条网线。而路由器,通常不会带有太多LAN接口的。
实验拓扑:
AR1:
<Huawei>system-view
[Huawei]interface Ethernet4/0/0
[Huawei-Ethernet4/0/0]ip address 192.168.0.1
[Huawei]interface Ethernet4/0/1
[Huawei-Ethernet4/0/1]ip address 192.168.1.1
LSW1:
<Huawei>system-view
[Huawei]vlan batch 10 20
[Huawei]port-group group-member Ethernet 0/0/2 to Ethernet 0/0/3
[Huawei-port-group]port link-type access
[Huawei-port-group]port default vlan 10
[Huawei-port-group]quit
[Huawei]port-group group-member Ethernet 0/0/1 Ethernet 0/0/4
[Huawei-port-group]port link-type access
[Huawei-Ethernet0/0/4]port default vlan 20
[Huawei-port-group]quit
实验结果:
PC1可以ping到PC2:
5.2单臂路由
这种方式的优点是路由器与交换机之间的链路只需要一根,节约路由器的网口但缺点也很明显配置复杂,当路由器与交换机连接的物理接口出现问题,会到导致整个VLAN间通信失败。
实验拓扑:
AR1:
<Huawei>system-view
[Huawei]interface GigabitEthernet 0/0/0.10
[Huawei-GigabitEthernet0/0/0.10]dot1q termination vid 10
[Huawei-GigabitEthernet0/0/0.10]ip address 192.168.0.1 24
[Huawei-GigabitEthernet0/0/0.10]arp broadcast enable
[Huawei-GigabitEthernet0/0/0.10]quit
[Huawei]interface GigabitEthernet 0/0/0.20
[Huawei-GigabitEthernet0/0/0.20]dot1q termination vid 20
[Huawei-GigabitEthernet0/0/0.20]ip address 192.168.1.1 24
[Huawei-GigabitEthernet0/0/0.20]arp broadcast enable
[Huawei-GigabitEthernet0/0/0.20]quit
LSW1:
<Huawei>system-view
[Huawei]vlan batch 10 20
[Huawei]interface Ethernet0/0/1
[Huawei-Ethernet0/0/1]port link-type access
[Huawei-Ethernet0/0/1]port default vlan 10
[Huawei-Ethernet0/0/1]quit
[Huawei]interface Ethernet0/0/2
[Huawei-Ethernet0/0/2]port link-type access
[Huawei-Ethernet0/0/2]port default vlan 10
[Huawei-Ethernet0/0/2]quit
[Huawei-Ethernet0/0/3]port link-type trunk
[Huawei-Ethernet0/0/3]port trunk allow-pass vlan 10 20
[Huawei-Ethernet0/0/3]quit
5.3三层交换机
实验拓扑:
LSW1:
<Huawei>system-view
[Huawei]vlan batch 10 20
[Huawei]interface Vlanif 10
[Huawei-Vlanif10]ip address 192.168.1.1 255.255.255.0
[Huawei-Vlanif10]quit
[Huawei]interface Vlanif 20
[Huawei-Vlanif20]ip address 192.168.2.254 255.255.255.0
[Huawei-Vlanif20]quit
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type access
[Huawei-GigabitEthernet0/0/1]port default vlan 10
[Huawei-GigabitEthernet0/0/1]quit
[Huawei]interface GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type access
[Huawei-GigabitEthernet0/0/2]port default vlan 10
[Huawei-GigabitEthernet0/0/2]quit
[Huawei]interface GigabitEthernet 0/0/3
[Huawei-GigabitEthernet0/0/3]port link-type trunk
[Huawei-GigabitEthernet0/0/3]port trunk allow-pass vlan 10 20
[Huawei-GigabitEthernet0/0/3]quit
LSW2:
<Huawei>system-view
[Huawei]vlan batch 10 20
[Huawei]interface Vlanif 10
[Huawei-Vlanif10]ip address 192.168.1.254 255.255.255.0
[Huawei-Vlanif10]quit
[Huawei]interface Vlanif 20
[Huawei-Vlanif20]ip address 192.168.2.1 255.255.255.0
[Huawei-Vlanif20]quit
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type access
[Huawei-GigabitEthernet0/0/1]port default vlan 10
[Huawei-GigabitEthernet0/0/1]quit
[Huawei]interface GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type access
[Huawei-GigabitEthernet0/0/2]port default vlan 10
[Huawei-GigabitEthernet0/0/2]quit
[Huawei]interface GigabitEthernet 0/0/3
[Huawei-GigabitEthernet0/0/3]port link-type trunk
[Huawei-GigabitEthernet0/0/3]port trunk allow-pass vlan 10 20
[Huawei-GigabitEthernet0/0/3]quit