Vlan技术(Virtual Local Area Network)
1.Vlan作用
- 隔离广播域:防止网络中的广播包过多,导致网络拥塞,同时也是为了提高网络带宽的利用率。
- 实现故障隔离:减小网络故障带来的影响,缩小范围后也方便故障的定位和排除。
- 增强安全性:不同Vlan间的数据通信只能通过三层设备进行,在三层设备上采取安全措施可以防止病毒在局域网内大范围扩散。
2.Vlan的划分方式
可以基于交换机端口的(最常用),基于协议的,基于IP地址的,基于MAC地址的。
3.802.1q帧结构
4.交换机端口分类
- Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口。
- Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口。
- Hybrid(华为)类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
- Hybrid端口和Trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时
:Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。
- 端口的缺省VLAN的概念:Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;
Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1。 - 当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口(如果设置了端口的缺省VLAN ID)。当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。
注:对于华为交换机缺省VLAN被称为“Pvid Vlan”,对于思科交换机缺省VLAN被称为“Native Vlan”交换机。 - 交换机接口出入数据处理过程如下:
---Acess端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)
---Acess端口发报文(从交换机内部往外发送):
将报文的VLAN信息剥离,直接发送出去
(所以,Access端口可以实现同一交换机上相同VLAN下的主机通信;也可以实现交换机级连时的缺省VLAN1报文交换,但不能实现VLAN透传。)
---trunk端口收报文:
收到一个报文,判断是否有VLAN信息:如果有,判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃;如果没有VLAN信息则打上端口的PVID,并进行交换转发。
---trunk端口发报文:
比较将要发送报文的VLAN信息和端口的PVID,如果不相等则直接发送。如果两者相等则剥离VLAN信息,再发送。
(所以,将交换机级连口统统设置为Trunk并允许所有VLAN通过后,VLAN2-VLAN4000直接透传,而VLAN1则因为和Trunk缺省PVID相同,需要通过剥离VLAN信息又添加VLAN信息实现了透传。而如果更改Trunk的缺省PVID,则可以实现某一交换机下的VLAN-X和另一交换机下的VLAN-Y通信。)
---hybrid端口收报文:
收到一个报文,判断是否有VLAN信息:如果有,则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃(此时端口上的untag配置是不用考虑的,untag配置只对发送报文时起作用);
如果没有则打上端口的PVID,并进行交换转发。
---hybrid端口发报文:
一)、判断该VLAN在本端口的属性(show interface 即可看到该端口对哪些VLAN是untag,哪些VLAN是tag)
二)、如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送。
(所以,Hybrid实现了不同VLAN下的主机的通信。)
5.VLAN的简单配置
1.创建vlan
- Switch(config)#vlan vlan-id //创建vlan
- Switch(config-vlan)#name vlan-name //(可选)命名vlan
2.将交换机端口加入到vlan中
- Switch(config)#interface interface //进入端口配置模式
- Switch(config-if)#switchport mode access //将端口模式设置为接入端口
- Switch(config-if)#switchport access vlan vlan-id //将端口添加到特定vlan中
3.多个端口添加到同一vlan中(可选)
- Switch(config)#interface range interface-range //进入需要添加vlan的一组端口中
- Switch(config-range-if)#switchport mode access //将端口模式设置为接入端口
- Switch(config-range-if)#switchport access vlan-id //将一组端口划分到指定vlan中
4.配置Trunk端口及Native VLAN(交换机与交换机之间的接口)
- Swtich(config)#interface interface //进入需要配置的端口
- Switch(config-if)#switchport mode trunk //将端口的模式配置为trunk
- Switch(config-fi)#switchport trunk native vlan vlan-id //配置Trunk的Native VLAN(Trunk两端端口的Native VLAN必须一致)
5.配置VLAN许可列表
- Swtich(config)#interface interface //进入需要配置的端口
- Switch(config-if)#switchport mode trunk //将端口的模式配置为trunk
- Switch(config-if)#switchport trunk allowed vlan { all | [add | remove | except] } vlan-list //定义Trunk 的VLAN列表
6.VLAN间实现通信
1.SVI技术(Switch Virtual Interfaces)
实现方法:在三层交换机上为各VLAN创建虚拟VLAN接口(SVI),并为SVI接口配置IP地址,作为各主机的网关地址。
- Switch(config)#ip routing //开启路由功能(默认)
- Switch(config)#vlan vlan-id //创建vlan
- Switch(config)#interface vlan vlan-id //进入vlan的SVI接口配置模式 注:创建SVI接口后,系统会自动为SVI接口分配一个MAC地址用于接收数据帧。
- Switch(config-if)#ip address ip-address mask //给SVI接口配置IP地址(网关地址)
2.单臂路由技术
实现方法:在路由器上为每一个VLAN创建一个子接口,并给子接口配置IP地址,作为各VLAN的网关。同时还需要在各子接口上封装802.1q协议,以便识别相应的VLAN。
该技术的缺点:需为每一个vlan创建一个子接口,限制了VLAN网络的灵活部署;当创建多个vlan后,vlan间流量都需要通过这个端口转发,容易在物理接口上形成网络瓶颈。
- Switch(config-if)#switchport mode trunk //与路由器连接的交换机端口模式配置为Trunk,以便可以收发多个VLAN中的数据帧
- Router(config)#interface interface.sub-port //创建以太网子接口
- Router(config-subif)#encapasulation dot1q vlan-id //为子接口封装802.1q协议,并指定接口所属的vlan(先封装再填地址)
- Router(config-subif)#ip address ip-address mask-address //为子接口配置IP地址
- Router(config-subif)#no shutdown //启用子接口
7.PVLAN(Priviate VLAN)
- 特点:突破VLAN个数的限制(最大个数只有4094个),节约IP地址(每个VLAN都需要一个子网地址),隔离相同VLAN中网络设备之间的流量。
1.PVLAN的组成:
- 主VLAN(Primary VLAN):PVLAN的高级VLAN,每个PVLAN中只有一个主VLAN;作用:把流量从混杂端口传送到隔离、团体和同一个VLAN内部的其它主要混杂端口。
- 辅助VLAN(Secondary VLAN):PVLAN的子VLAN,所有辅助VLAN都需要映射的主VLAN上,每台接入设备都连接到辅助VLAN;作用:实现二层网络的隔离。
辅助VLAN包含两种VLAN类型:
- 隔离VLAN(Isolated VLAN):同一隔离VLAN中的端口相互不能进行二层通信,一个PVLAN中只有一个隔离VLAN。若要与其它端口通信,则必须穿越混杂端口。
- 团体VLAN(Community VLAN):同一团体VLAN中的端口可以进行二层通信,但不能与其他团体VLAN中的端口进行二层通信,一个PVLAN中可以有多个团体VLAN。若要与其它端口通信,则必须穿越混杂端口。
2.PVLAN的2种端口类型:
- 混杂端口(Promiscuous Port):隶属于“Primary VLAN”,一个混杂端口可以与所有接口通信,包括PVLAN内的隔离和团体端口;混杂端口的功能是在团体和隔离的VLAN端口之间传递流量。通常是连接三层设备或服务器的端口。
- 主机端口(Host Port):隶属于“Secondary VLAN”,由于“Secondary VLAN”具有两种属性,那么主机端口依“Secondary VLAN”属性的不同也有两种分类:
主机端口包含的两种分类:
- 隔离端口(Isolated Port):它与PVLAN内的所有其它端口相分离,除混杂端口外;来源于隔离端口的流量仅仅传送给混杂端口。
- 团体端口(Community Port):一个团体VLAN中的团体端口之间可以相互通信,并且团体端口可以与混杂端口通信。
3.PVLAN的配置:
1.配置主VLAN和辅助VLAN
- Switch(config)#vlan id //进入VLAN配置模式
- Switch(config-vlan)#private-vlan {community | isolated | primary} //配置私有VLAN类型 注意:已经配置了的VLAN不能再配置为私有VLAN,且VLAN 1不能配置为私有VLAN。
2.关联辅助VLAN到主VLAN
- Switch(config)#vlan p_vid //进入主VLAN的配置模式
- Switch(config-vlan)#private-vlan association [add | remove] svlist //关联辅助VLAN到主VLAN
3.将辅助VLAN映射到主VLAN的三层接口
- Switch(config)#interface vlan p_vid //进入主VLAN的VLAN接口模式
- Switch(config-if)#private-vlan mapping [add | remove] svlist //映射辅助VLAN到主VLAN的三层接口
- Switch(config-if)#ip address ip-address mask //为主VLAN配置SVI,以便PVLAN中的流量可以进行三层交换
4.配置主机端口
- Switch(config)#interface port-type port //进入主机端口
- Switch(config-if)#switchport mode private-vlan host //配置端口为主机端口
- Switch(config-if)#switchport private-vlan host-association p_vid s_vid //关联主机端口到PVLAN
5.配置混杂端口
- Switch(config)#interface port-type port //进入主机端口
- Switch(config-if)#switchport mode private-vlan promiscuous //配置端口为主机端口
- Switch(config-if)#switchport private-vlan mapping p_vid [add | remove] svlist //配置混杂端口所在的主VLAN以及关联的辅助VLAN