前言

如果一个办公网络中电脑非常多,经常出现网络冲突怎么办?如何彻底的解决这样的问题呢?有没有好的办法?

正文

企业网通用的网络类型为以太网,是一种基于CSMA/CD(Carrier Sense Multiple Access/Collision Detection)的共享通讯介质的数据网络通讯技术。当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至造成网络不可用等问题。通过交换机实现LAN互连虽然可以解决冲突严重的问题,但仍然不能隔离广播报文和提升网络质量。

在这种情况下出现了VLAN技术,这种技术可以把一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,这样,广播报文就被限制在一个VLAN内。

上图是一个典型的VLAN应用组网图。两台设备Router1和Router2放置在不同的地点,比如写字楼的不同楼层。每台设备分别连接两台计算机,它们分别属于两个不同的VLAN,比如不同的企业客户。

使用VLAN能给用户带来以下受益:

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

VLAN原理描述

01 VLAN标签

要使设备能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段。IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag),用以标识VLAN信息。

在一个VLAN交换网络中,以太网帧主要有以下两种形式:

  • 有标记帧(Tagged帧):加入了4字节VLAN标签的帧。
  • 无标记帧(Untagged帧):原始的、未加入4字节VLAN标签的帧。

常用设备中:

  • 用户主机、服务器、Hub只能收发Untagged帧。
  • 交换机、路由器和AC既能收发Tagged帧,也能收发Untagged帧。
  • 语音终端、AP等设备可以同时收发一个Tagged帧和一个Untagged帧。
  • 为了提高处理效率,设备内部处理的数据帧一律都是Tagged帧。

02 链路类型和接口类型

设备内部处理的数据帧一律都带有VLAN标签,而现网中的设备有些只会收发Untagged帧,要与这些设备交互,就需要接口能够识别Untagged帧并在收发时给帧添加、剥除VLAN标签。同时,现网中属于同一个VLAN的用户可能会被连接在不同的设备上,且跨越设备的VLAN可能不止一个,如果需要用户间的互通,就需要设备间的接口能够同时识别和发送多个VLAN的数据帧。

为了适应不同的连接和组网,设备定义了Access接口、Trunk接口和Hybrid接口3种接口类型,以及接入链路(Access Link)和干道链路(Trunk Link)两种链路类型,如图所示。

链路类型根据链路中需要承载的VLAN数目的不同,以太网链路分为:

  • 接入链路接入链路只可以承载1个VLAN的数据帧,用于连接设备和用户终端(如用户主机、服务器等)。通常情况下,用户终端并不需要知道自己属于哪个VLAN,也不能识别带有Tag的帧,所以在接入链路上传输的帧都是Untagged帧。
  • 干道链路干道链路可以承载多个不同VLAN的数据帧,用于设备间互连。为了保证其它网络设备能够正确识别数据帧中的VLAN信息,在干道链路上传输的数据帧必须都打上Tag。

接口类型根据接口连接对象以及对收发数据帧处理的不同,以太网接口分为:

  • Access接口Access接口一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,或者不需要区分不同VLAN成员时使用。它只能收发Untagged帧,且只能为Untagged帧添加唯一VLAN的Tag。
  • Trunk接口Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端。它可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。

VLAN应用场景

01 通过划分VLAN实现用户二层隔离

如图所示,某商务楼内有多家公司,为了降低成本,多家公司共用网络资源,各公司分别连接到设备Router2的不同接口,并通过统一的出口访问Internet。

为了保证各公司业务的独立和安全,可将每个公司所连接的接口划分到不同的VLAN,实现公司间业务数据的完全隔离。可以认为每个公司拥有独立的“虚拟路由器”,每个VLAN就是一个“虚拟工作组”。

02 通过VLANIF实现VLAN间三层互访

根据属于不同VLAN的用户互通时需要跨越的三层设备数,通过VLANIF实现VLAN间三层互访主要有两种场景:同设备三层互访和跨设备三层互访。

A、同设备三层互访

如图所示,某小型公司的部门1和部门2分别通过二层交换机接入到一台路由器,所属VLAN分别为VLAN2和VLAN3,部门1和部门2的用户互通时,需要经过一台路由器。

可在Switch_1和Switch_2上划分VLAN并将VLAN透传到Router上,然后在Router上为每个VLAN配置一个VLANIF接口,实现VLAN2和VLAN3间的路由。

B、跨设备三层互访

如图所示,某大中型公司的部门1和部门2之间跨越两台或多台路由器,所属VLAN分别为VLAN2和VLAN3,部门1和部门2的用户互通时,需要经过两台或多台路由器。

可在Switch上划分VLAN并将VLAN透传到Router_1和Router_2;在Router_1和Router_2上为每个用户VLAN配置一个VLANIF接口,并为互联VLAN配置VLANIF接口;在其他三层设备上为互联VLAN配置VLANIF接口。除此以外,还需要在Router_1和上Router_2之间配置静态路由或运行动态路由协议(跨两台以上设备时,建议运行动态路由协议)。

VLAN配置举例

01 配置划分VLAN示例

A、组网需求

如图所示,某企业的设备连接有很多用户,且相同业务用户通过不同的设备接入企业网络。

为了通信的安全性,同时为了避免广播风暴,企业希望业务相同用户之间可以互相访问,业务不同用户不能直接访问。

可以在设备上配置基于接口划分VLAN,把业务相同的用户连接的接口划分到同一VLAN。这样属于不同VLAN的用户不能直接进行二层通信,同一VLAN内的用户可以直接互相通信。

B、配置思路

采用如下的思路配置VLAN:

  • 创建VLAN并将连接用户的接口加入VLAN,实现不同业务用户之间的二层流量隔离。
  • 配置RouterA和RouterB之间的链路类型及通过的VLAN,实现相同业务用户通过RouterA和RouterB通信。

3、操作步骤

  • 在RouterA创建VLAN2和VLAN3,并将连接用户的接口分别加入VLAN。RouterB的配置与RouterA类似,不再赘述。

system-view[Huawei] sysname RouterA[RouterA] vlan batch 2 3[RouterA] interface ethernet 2/0/1[RouterA-Ethernet2/0/1] port link-type access[RouterA-Ethernet2/0/1] port default vlan 2[RouterA-Ethernet2/0/1] quit[RouterA] interface ethernet 2/0/2[RouterA-Ethernet2/0/2] port link-type access[RouterA-Ethernet2/0/2] port default vlan 3[RouterA-Ethernet2/0/2] quit

  • 配置RouterA上与RouterB连接的接口类型及通过的VLAN。RouterB的配置与RouterA类似,不再赘述。

[RouterA] interface ethernet 2/0/3[RouterA-Ethernet2/0/3] port link-type trunk[RouterA-Ethernet2/0/3] port trunk allow-pass vlan 2 3

  • 验证配置结果

# 将User1和User2配置在一个网段,比如192.168.100.0/24;将User3和User4配置在一个网段,比如192.168.200.0/24。

# User1和User2能够互相Ping通,但是均不能Ping通User3和User4。User3和User4能够互相Ping通,但是均不能Ping通User1和User2。

02 配置通过同设备VLAN间通信示例

1、组网需求

企业的不同用户拥有相同的业务,且位于不同的网段。现在相同业务的用户所属的VLAN不相同,需要实现不同VLAN中的用户相互通信。

如图所示,User1和User2中拥有相同的业务,但是属于不同的VLAN且位于不同的网段。现需要实现User1和User2互通。

2、配置思路

采用如下的思路配置VLAN间通过VLANIF接口通信:

  • 创建VLAN,确定用户所属的VLAN。
  • 配置接口加入VLAN,允许用户所属的VLAN通过当前接口。
  • 创建VLANIF接口并配置IP地址,实现三层互通。

3、操作步骤

  • 配置Router

# 创建VLAN

system-view[Huawei] sysname Router[Router] vlan batch 10 20

# 配置接口加入VLAN

[Router] interface ethernet 2/0/0[Router-Ethernet2/0/0] port link-type access[Router-Ethernet2/0/0] port default vlan 10[Router-Ethernet2/0/0] quit[Router] interface ethernet 2/0/1[Router-Ethernet2/0/1] port link-type access[Router-Ethernet2/0/1] port default vlan 20[Router-Ethernet2/0/1] quit

# 配置VLANIF接口的IP地址

[Router] interface vlanif 10[Router-Vlanif10] ip address 10.10.10.2 24[Router-Vlanif10] quit[Router] interface vlanif 20[Router-Vlanif20] ip address 10.10.20.2 24[Router-Vlanif20] quit

  • 验证配置结果

# 在VLAN10中的User1主机上配置IP地址为10.10.10.3/24,缺省网关为VLANIF10接口的IP地址10.10.10.2/24。

# 在VLAN20中的User2主机上配置IP地址为10.10.20.3/24,缺省网关为VLANIF20接口的IP地址10.10.20.2/24。

# 配置完成后,VLAN10内的User1与VLAN20内的User2能够相互访问。