VLAN;好处;配置;Trunk;Access;配置实例;三层交换机

VLAN基础

虚拟局域网VLAN Virtual Local Area Network

将局域网内的设备逻辑地而不是物理地划分成一个个网段,从而实现虚拟工作组的技术。
利用VLAN技术,可以将由交换机连接成的物理网络划分成多个逻辑子网。也就是说,一个虚拟局域网中的站点所发送的广播数据包将仅转发至属于同一VLAN的站点。
构成虚拟局域网的站点不拘泥于所处的物理位置,它们既可以挂接在同一个交换机中,也可以挂接在不同的交换机中。

好处

(1)限制广播域:广播域被限制在一个VLAN内,减小了广播域,节省了带宽,提高了网络处理能力。
(2)增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信。
(3)提高了网络的健壮性:故障被限制在一个VLAN内,本VLAN内的故障不会影响其他VLAN的正常工作。
(4)灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。

VLAN标签

 VLAN数据帧比传统以太网数据帧多了4个字节的VLAN标签(VLAN tag),用以标识VLAN信息
 交换机利用VLAN标签中的VID来识别数据帧所属的VLAN,广播帧只在同一VLAN内转发,这就将广播域限制在一个VLAN内。

 交换机内部处理的数据帧一律都带有VLAN标签,而现网中交换机连接的设备有些只会收发Untagged帧,要与这些设备交互,就需要接口能够识别Untagged帧并在收发时给帧添加、剥除VLAN标签。

交换机接口

华为定义了4种接口的链路类型:Access、Trunk、Hybrid和QinQ

Access接口

 只属于一个VLAN,缺省VLAN(PVID)就是它允许通过的VLAN一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,交换机内部只处理Tagged帧,所以Access接口需要给收到的数据帧添加VLAN Tag

Trunk接口

Trunk类型的端口同样也只属于某一个VLAN,但是可以接收和发送来自多个VLAN的报文,一般用于连接交换机、路由器之间的端口。

Trunk的主要功能是仅通过一条链路就可以连接多个VLAN。Trunk也称为链路中继。

虚拟局域网 VLAN_ip地址

缺省VLAN

缺省VLAN又称PVID(Port Default VLAN ID)
  当接口接收数据帧时,如果接口收到一个Untagged帧,交换机会根据PVID给此数据帧添加等于PVID的Tag,然后再交给交换机内部处理;如果接口收到一个Tagged帧,交换机则不会再给该帧添加接口上PVID对应的Tag。
  当接口发送数据帧时,如果发现此数据帧的Tag的VID值与PVID相同,则交换机会将Tag去掉,然后再从此接口发送出去。

虚拟局域网 VLAN_mac地址_02
虚拟局域网 VLAN_mac地址_03

配置

VLAN配置包括:

  • 创建/删除VLAN
  • 给VLAN指定端口
    虚拟局域网 VLAN_3c_04

Port-based VLAN

Port-based VLAN提供了用户分组(user-group)的功能。一个端口可以属于多个user-group。不属于同一个user-group的端口不能相互通信(普通的VLAN不属于同一个VLAN的端口不能相互通信)。
默认属于user—group 1组,并且如果端口只属于user-group 1组则不能删除

一个端口可以有多个VID,但只能有一个PVID

虚拟局域网 VLAN_mac地址_05
[Quidway]interface GigabitEthernet0/1
[Quidway-GigabitEthernet0/1]port link-type trunk

[Quidway] interface GigabitEthernet0/1
[Quidway-GigabitEthernet0/1] port access vlan 3

[Quidway] interface GigabitEthernet0/1
[Quidway-GigabitEthernet0/1] port trunk pvid vlan 100

本端Trunk端口的缺省VLAN ID和相连的对端交换机的Trunk端口的缺省VLAN ID必须一致,否则报文将不能正确传输。
虚拟局域网 VLAN_ip地址_06

三层交换机

问题引入

传统的二层交换网络,整个网络就是一个广播域,如果目的地址不在交换机的MAC地址表中,交换机要通过广播询问整个网络,这样流量过大,降低效率。
本地子网广播255.255.255.255,不能跨越路由器
特定子网广播192.168.1.255/24 特定子网就是182.168.1.0 可以跨越路由器传送,但一般情况下不允许

VLAN隔离二层广播域

虚拟局域网 VLAN_ip地址_07

不同VLAN之间的流量不能直接跨越VLAN的边界,需要通过路由将报文从一个VLAN转发到另一个VLAN

虚拟局域网 VLAN_局域网技术_08

如果非本地通信,不知道发送给谁,就发送给默认网关(默认网关也是一个IP地址,这里是路由器接口1的IP地址1.1.1.0/24,默认网关也可以理解为一个路由),主机在ARP缓存(Address Resolution Protocol根据IP地址获取物理地址)中查找默认网关的MAC地址,如果没有就发出ARP请求。接着路由器根据自己维护的路由表将报文进行转发。

每一条VLAN要占用交换机的一个接口和路由器的一个接口,但路由器没那么多接口,需要采用VLAN trunking技术,使用子接口将一个物理接口虚拟出多个逻辑接口,使多个VLAN共享同一条物理连接到路由。

虚拟局域网 VLAN_数据帧_09

三层交换技术

但路由器的转发是通过软件计算实现的,这样做的话软件负载过大,性能差。因此产生了三层交换机,解决了局域网网段划分后,子网必须依赖路由器才能进行管理的局面。

三层交换技术就是将路由技术和交换技术合二为一的技术。三层交换机中包括二层交换引擎和三层路由引擎,它也有路由接口(不可见的逻辑接口)

工作流程

举例:主机A与主机B基于三层交换机S进行通信,A已知B的IP地址,但不知道其MAC地址。

(1)A与B在同一子网内
  A把自己的IP地址与B的IP地址进行比较,如果属于同一子网,则发送ARP请求查询B的MAC地址。A将该MAC地址放入ARP缓存表并用MAC地址封装包之后转发出去,然后S根据MAC地址决定从哪个端口发送

(2)A与B不在同一子网内
  A对缺省网关的IP地址广播ARP请求,S回复相应路由接口的MAC地址给A(这个路由接口就是A的缺省网关)。如果S不知道B的MAC地址,那么S就要根据输入帧的IP地址在路由表里查相应的信息,然后向B所在的网段广播ARP请求,获得B的MAC地址。
  确立主机A与B的MAC地址及转发端口的对应关系之后,以后的A到B的数据,就直接交由二层交换模块完成。这就通常所说的一次路由多次交换。

更多细节请参考博客

配置实例

交换机VLAN配置

虚拟局域网 VLAN_数据帧_10
<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] vlan batch 10 20    //vlan batch { vlan-id1 [ to vlan-id2 ] }批量创建vlan
[Switch] interface gigabitethernet 0/0/1
[Switch-GigabitEthernet0/0/1] port link-type access
[Switch-GigabitEthernet0/0/1] port default vlan 10
[Switch-GigabitEthernet0/0/1] quit
[Switch] interface gigabitethernet 0/0/2
[Switch-GigabitEthernet0/0/2] port link-type access
[Switch-GigabitEthernet0/0/2] port default vlan 20
[Switch-GigabitEthernet0/0/2] quit
[Switch] interface gigabitethernet 0/0/3
[Switch-GigabitEthernet0/0/3] port link-type access
[Switch-GigabitEthernet0/0/3] port default vlan 10
[Switch-GigabitEthernet0/0/3] quit
[Switch] interface gigabitethernet 0/0/4
[Switch-GigabitEthernet0/0/4] port link-type hybrid
[Switch-GigabitEthernet0/0/4] port hybrid tagged vlan 10 20

三层交换机VLAN配置

虚拟局域网 VLAN_3c_11

配置Switch

[Huawei] vlan batch 10 20
[Huawei] interface ethernet 0/0/1
[Huawei-Ethernet0/0/1] port link-type trunk
[Huawei-Ethernet0/0/1] port trunk allow-pass vlan 10 20
[Huawei-Ethernet0/0/1] quit

# 配置VLANIF接口的IP地址
[Huawei] interface vlanif 10
[Huawei-Vlanif10] ip address 10.10.10.1 24
[Huawei-Vlanif10] quit
[Huawei] interface vlanif 20
[Huawei-Vlanif20] ip address 20.20.20.1 24
[Huawei-Vlanif20] quit

配置SwitchA

[Huawei] vlan batch 10 20
[Huawei] interface ethernet 0/0/1
[Huawei-Ethernet0/0/1] port link-type trunk
[Huawei-Ethernet0/0/1] port trunk allow-pass vlan 10 20
[Huawei-Ethernet0/0/1] quit

[Huawei] interface ethernet 0/0/2
[Huawei-Ethernet0/0/2] port link-type access
[Huawei-Ethernet0/0/2] port default vlan 10
[Huawei-Ethernet0/0/2] quit

[Huawei] interface ethernet 0/0/3
[Huawei-Ethernet0/0/3] port link-type access
[Huawei-Ethernet0/0/3] port default vlan 20
[Huawei-Ethernet0/0/3] quit

VLAN间通过子接口通信

配置dot1q终结以太网子接口可使不同VLAN间的设备通信。在三层以太网接口上创建以太网子接口,通过子接口部署终结子接口功能将VLAN报文中的Tag剥掉,从而实现VLAN间互通。

# 进入系统视图
system-view
# 进入子接口视图
interface {ethernet | gigabitethernet} interface-number.subinterface-number
# 指定控制VLAN和终结子接口的对应关系
control-vid vid dot1q-termination
# 配置子接口对一层Tag报文的终结功能
dot1q termination vid vid
# 是能子接口的ARP广播功能
arp broadcast enable
虚拟局域网 VLAN_局域网技术_12虚拟局域网 VLAN_数据帧_13

配置Router上连接SwitchA的接口

[Router] interface etherent 1/0/0.1
[Router-Ethernet1/0/0.1] control-vid 100 dot1q-termination
[Router-Ethernet1/0/0.1] dot1q termination vid 10
[Router-Ethernet1/0/0.1] arp broadcast enable
[Router-Ethernet1/0/0.1] ip address 10.10.10.1 24
[Router-Ethernet1/0/0.1] quit

配置Router上连接SwitchB的接口

[Router] interface etherent 1/0/1.1
[Router-Ethernet1/0/1.1] control-vid 200 dot1q-termination
[Router-Ethernet1/0/1.1] dot1q termination vid 20
[Router-Ethernet1/0/1.1] arp broadcast enable
[Router-Ethernet1/0/1.1] ip address 20.20.20.1 24
[Router-Ethernet1/0/1.1] quit
虚拟局域网 VLAN_局域网技术_14虚拟局域网 VLAN_局域网技术_15
<H3C> system-view
[H3C] interface ethernet 0/0.1
[H3C-Ethernet0/0.1] ip address 1.0.0.1 255.0.0.0
[H3C-Ethernet0/0.1] vlan-type dot1q vid 10
[H3C-Ethernet0/0.1] interface ethernet 0/0.2
[H3C-Ethernet0/0.2] ip address 2.0.0.1 255.0.0.0
[H3C-Ethernet0/0.2] vlan-type dot1q vid 20
[H3C-Ethernet0/0.2] interface ethernet 0/1.1
[H3C-Ethernet0/1.1] ip address 3.0.0.1 255.0.0.0
[H3C-Ethernet0/1.1] vlan-type dot1q vid 10
[H3C-Ethernet0/1.1] interface ethernet 0/1.2
[H3C-Ethernet0/1.2] ip address 4.0.0.1 255.0.0.0
[H3C-Ethernet0/1.2] vlan-type dot1q vid 20
[H3C-Ethernet0/1.2] quit