7.企业网络架构
企业网路架构

企业需要具备一个完整的网络解决方案,才能支撑各种各样的业务运转。随着业务不断发展,对企业对网络的各种需求也在不断增加。例如:用户密度可能在短时间内快速增加,用户需要移动办公,此外企业还需要有效地管理网络中不同的业务流量。
本例中描述的是一个企业网络解决方案,此方案将网络在逻辑上分为不同的区域:接入、汇聚、核心区域,数据中心区域,DMZ区域,企业边缘,网络管理区域等。
此网络使用了一个三层的网络架构,包括核心层,汇聚层,接入层。将网络分为三层架构有诸多优点:
- 每一层都有各自独立而特定的功能;
- 使用模块化的设计,便于定位错误,简化网络拓展和维护;
- 可以隔离一个区域的拓扑变化,避免影响其他区域。
此解决方案能够支持各种应用对网络的需求,包括高密度的用户接入,移动办公,VoIP,视频会议和视频监控的使用等,满足了客户对于可扩展性,可靠性,安全性,可管理性的需求。
拓展企业网络

企业网络通过与电信服务供应商的网络建立连接,来支撑移动办公和分支机构网络的互联。移动办公的用户只要能够接入网络,就可以在任何时间、任何地点访问到企业内部网络。
提升企业网络性能

提升企业网络运作效率,需要优化网络设计。在网络中使用冗余架构,可以尽可能地保证无论任何设备或链路发生故 障,用户业务都不会被影响。双节点冗余设计作为企业网络设计的一部分,增强了网络可靠性。但冗余不能过度使用,因为太多的冗余节点难以维护,并且增加了整体开销。
保障企业网络安全

网络安全在企业网络中变得日益重要。TCP/IP协议簇在建立之初并没有考虑到安全问题,因此,企业网络亟需能够应对内外两种安全威胁的解决方案,用来对抗IP网络中日益增长的安全威胁。华为网络安全解决方案覆盖了终端安全管理,业务安全控制,网络攻击防护三大方面。
管理企业网络

华为开发的eSight网管系统实现了企业资源、服务和用户的统一管理,并且允许它们进行智能互动。此外,eSight还能够管理来自其它厂商的设备,比如华三、思科和中兴的网络设备以及IBM、惠普和Sun Microsystems的IT设备。
下一代企业网络

随着行业的不断发展,出现了新一代企业解决方案,即云解决方案。云解决方案为业务运行所需的基础设施、平台及软件提供了云服务,以此来满足每个客户的需求。企业需要建设云解决方案所需的数据中心和基础设施,需要使用虚拟化和存储等技术,推动企业把云解决方案运用到所有业务中,从而满足客户持续增长的业务需求。
链路聚合
链路聚合的应用场景

在企业网络中,所有设备的流量在转发到其他网络前都会汇聚到核心层,再由核心区设备转发到其他网络,或者转发到外网。因此,在核心层设备负责数据的高速交换时,容易发生拥塞。在核心层部署链路聚合,可以提升整个网络的数据吞吐量,解决拥塞问题。本示例中,两台核心交换机SWA和SWB之间通过两条成员链路互相连接,通过部署链路聚合,可以确保SWA和SWB之间的链路不会产生拥塞。
链路聚合

链路聚合是把两台设备之间的多条物理链路聚合在一起,当做一条逻辑链路来使用。这两台设备可以是一对路由器,一对交换机,或者是一台路由器和一台交换机。一条聚合链路可以包含多条成员链路。
链路聚合能够提高链路带宽。理论上,通过聚合几条链路,一个聚合口的带宽可以扩展为所有成员口带宽的总和,这样就有效地增加了逻辑链路的带宽。
链路聚合为网络提供了高可靠性。配置了链路聚合之后,如果一个成员接口发生故障,该成员口的物理链路会把流量切换到另一条成员链路上。
链路聚合还可以在一个聚合口上实现负载均衡,一个聚合口可以把流量分散到多个不同的成员口上,通过成员链路把流量发送到同一个目的地,将网络产生拥塞的可能性降到最低。
链路聚合模式

链路聚合包含两种模式:手动负载均衡模式和静态 LACP(Link Aggregation Control Protocol)模式。
- 手工负载分担模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参不。该模式下所有活动链路都参不数据的转发,平均分担流量,因此称为负载分担模式。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。当需要在两个直连设备间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工负载分担模式
- 在静态LACP模式中,链路两端的设备相互发送LACP报文,协商聚合参数。协商完成后,两台设备确定活动接口和非活动接口。在静态LACP模式中,需要手动创建一个Eth-Trunk口,并添加成员口。LACP协商选不活动接口和非活动接口。静态LACP模式也叫M:N模式。M代表活动成员链路,用于在负载均衡模式中转发数据。N代表非活动链路,用于冗余备份。如果一条活动链路发生故障,该链路传输的数据被切换到一条优先级最高的备份链路上,这条备份链路转变为活动状态。
两种链路聚合模式的主要区别是:
- 在静态LACP模式中,一些链路充当备份链路。
- 在手动负载均衡模式中,所有的成员口都处于转发状态。
数据流控制

在一个聚合口中,聚合链路两端的物理口(即成员口)的所有参数必须一致,包括物理口的数量,传输速率,双工模式和流量控制模式。成员口可以是二层接口或三层接口。
数据流在聚合链路上传输,数据顺序必须保持不变。一个数据流可以看做是一组MAC地址和IP地址相同的帧。例如,两台设备间的SSH或SFTP连接可以看做一个数据流。如果未配置链路聚合,只是用一条物理链路来传输数据,那么一个数据流中的帧总是能按正确的顺序到达目的地。 配置了链路聚合后,多条物理链路被绑定成一条聚合链路,一个数据流中的帧通过不同的物理链路传输。如果第一个帧通过一条物理链路传输,第二个帧通过另外一条物理链路传输,这样一来同一数据流的 第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。
为了避免这种情况的发生,Eth-Trunk采用逐流负载分担的机制,这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担,即逐流的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。负载分担的类型主要包括以下几种,用户可以根据具体应用选择不同的负载分担类型。
- 根据报文的源MAC地址进行负载分担;
- 根据报文的目的MAC地址进行负载分担;
- 根据报文的源IP地址进行负载分担;
- 根据报文的目的IP地址进行负载分担;
- 根据报文的源MAC地址和目的MAC地址进行负载分担;
- 根据报文的源IP地址和目的IP地址进行负载分担;
- 根据报文的VLAN、源物理端口等对L2、IPv4、IPv6和MPLS报文进行增强型负载分担。
二层链路聚合配置

interface Eth-Trunk 1
interface GigabitTethernet 0/0/1
eth-trunk 1
interface GigabitEthernet 0/0/2
eth-trunk 1
本例中,通过执行interface Eth-trunk 命令配置链路聚合。
这条命令创建了一个Eth-Trunk口,并且进入该Eth-Trunk口视图。trunkid用来唯一标识一个Eth-Trunk口,该参数的取值可以是0到63之间的任 何一个整数。如果指定的Eth-Trunk口已经存在,执行interface ethtrunk命令会直接进入该Eth-Trunk口视图。 配置Eth-Trunk口和成员口,需要注意以下规则:
- 只能删除不包含任何成员口的Eth-Trunk口。
- 把接口加入Eth-Trunk口时,二层Eth-Trunk口的成员口必须是二层接口,三层Eth-Trunk口的成员口必须是三层接口。
- 一个Eth-Trunk口最多可以加入8个成员口。
- 加入Eth-Trunk口的接口必须是hybrid接口(默认的接口类型)。
- 一个Eth-Trunk口不能充当其他Eth-Trunk口的成员口。
- 一个以太接口只能加入一个Eth-Trunk口。如果把一个以太接口加入另一个Eth-Trunk口,必须先把该以太接口从当前所属的Eth-Trunk口中删除。
- 一个Eth-Trunk口的成员口类型必须相同。例如,一个快速以太口(FE口)和一个千兆以太口(GE口)不能加入同一个Eth-Trunk。
- 位于不同接口板(LPU)上的以太口可以加入同一个Eth-Trunk口。如果一个对端接口直接和本端Eth-Trunk口的一个成员口相连,该对端接口也必须加入一个Eth-Trunk口。否则两端无法通信。
- 如果成员口的速率不同,速率较低的接口可能会拥塞,报文可能会被丢弃。
- 接口加入Eth-Trunk口后,Eth-Trunk口学习MAC地址,成员口不再学习。
查看链路聚合信息

display interface eth-trunk 1
执行display interface eth-trunk 命令,可以确认两台设备间是否已经成功实现链路聚合。也可以使用这条命令收集流量统计数据,定位接口故障。
如果Eth-Trunk口处于UP状态,表明接口正常运行。
- 如果接口处于Down状态,表明所有成员口物理层发生故障。
- 如果管理员手动关闭端口,接口处于Administratively DOWN状态。
- 可以通过接口状态的改变发现接口故障,所有接口正常情况下都应处于Up状态。
三层链路聚合配置

interface eth-trunk 1
undo portswitch
ip address 100.1.1.1 24
quit
eth-trunk 1
quit
interface GigabitEthernet0/0/2
eth-trunk 1
quit
如果要在路由器上配置三层链路聚合,需要首先创建Eth-Trunk接口,然后在Eth-Trunk逻辑口上执行undo portswitch命令,把聚合链路从二层转为三层链路。执行undo portswitch命令后,可以为Eth-Trunk逻辑口分配一个IP地址。
查看链路聚合信息

执行display interface eth-trunk 命令,可以确认两台设备间是否已经成功实现链路聚合。和查看二层链路聚合操作一样。
VLAN原理和配置
VLAN技术

VLAN技术可以将一个物理局域网在逻辑上划分成多个广播域,也就是多个VLAN。VLAN技术部署在数据链路层,用于隔离二层流量。同一个VLAN内的主机共享同一个广播域,它们之间可以直接进行二层通信。而VLAN间的主机属于不同的广播域,不能直接实现二层互通。这样,广播报文就被限制在各个相应的VLAN内,同时也提高了网络安全性。
本例中,原本属于同一广播域的主机被划分到了两个VLAN中,即,VLAN1和VLAN2。VLAN内部的主机可以直接在二层互相通信,VLAN1和VLAN2之间的主机无法直接实现二层通信。
VLAN帧格式

VLAN标签长4个字节,直接添加在以太网帧头中,IEEE802.1Q文档对VLAN标签作出了说明。
- TPID:Tag Protocol Identifier,2字节,固定取值,0x8100,是IEEE定义的新类型,表明这是一个携带802.1Q标签的帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
- TCI:Tag Control Information,2字节。帧的控制信息,详细说明如下:
- Priority:3比特,表示帧的优先级,取值范围为0~7,值越大优先级越高。当交换机阻塞时,优先发送优先级高的数据帧。
- CFI:Canonical Format Indicator,1比特。CFI表示MAC地址是否是经典格式。CFI为0说明是经典格式,CFI为1表示为非经典格式。用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。
- VLAN Identifier:VLAN ID,12比特,在X7系列交换机中,可配置的VLAN ID取值范围为0~4095,但是0和4095在协议中规定为保留的VLAN ID,不能给用户使用。
- 在现有的交换网络环境中,以太网的帧有两种格式:
- 没有加上VLAN标记的标准以太网帧(untagged frame);
- 有VLAN标记的以太网帧(tagged frame)。
链路类型

VLAN链路分为两种类型:Access链路和Trunk链路。
- 接入链路(Access Link):连接用户主机和交换机的链路称为接入链路。如本例所示,图中主机和交换机之间的链路都是接入链路。
- 干道链路(Trunk Link):连接交换机和交换机的链路称为干道链路。如本例所示,图中交换机之间的链路都是干道链路。干道链路上通过的帧一般为带Tag的VLAN帧。
PVID

PVID即Port VLAN ID,代表端口的缺省VLAN。
交换机从对端设备收到的帧有可能是Untagged的数据帧,但所有以太网帧在交换机中都是以Tagged的形式来被处理和转发的,因此交换机必须给端口收到的Untagged数据帧添加上Tag。
为了实现此目的,必须为交换机配置端口的缺省VLAN。当该端口收到Untagged数据帧时,交换机将给它加上该缺省VLAN的VLAN Tag。
端口类型-Access

Access端口是交换机上用来连接用户主机的端口,它只能连接接入链路,并且只能允许唯一的VLAN ID通过本端口。
Access端口收发数据帧的规则如下:
- 如果该端口收到对端设备发送的帧是untagged(不带VLAN标签),交换机将强制加上该端口的PVID。
- 如果该端口收到对端设备发送的帧是tagged(带VLAN标签),交换机会检查该标签内的VLAN ID。当VLAN ID与该端口的PVID相同时,接收该报文。
- 当VLAN ID与该端口的PVID不同时,丢弃该报文。
- Access端口发送数据帧时,总是先剥离帧的Tag,然后再发送。
- Access端口发往对端设备的以太网帧永远是不带标签的帧。
在本示例中,交换机的G0/0/1,G0/0/2,G0/0/3端口分别连接三台主机,都配置为Access端口。主机A把数据帧(未加标签)发送到交换机的G0/0/1端口,再由交换机发往其他目的地。收到数据帧之后,交换机根据端口的PVID给数据帧打上VLAN标签10,然后决定从G0/0/3端口转发数据帧。G0/0/3端口的PVID也是10,不VLAN标签中的VLAN ID相同,交换机移除标签,把数据帧发送到主机C。连接主机B的端口的PVID是2,不VLAN10不属于同一个VLAN,因此此端口不会接收到VLAN10的数据帧。
端口类型-Trunk

Trunk端口是交换机上用来和其他交换机连接的端口,它只能连接干道链路。Trunk端口允许多个VLAN的帧(带Tag标记)通过。
Trunk端口收发数据帧的规则如下:
- 当接收到对端设备发送的不带Tag的数据帧时,会添加该端口的PVID,如果PVID在允许通过的VLAN ID列表中,则接收该报文,否则丢弃该报文。当接收到对端设备发送的带Tag的数据帧时,检查VLAN ID是否在允许通过的VLAN ID列表中。如果VLAN ID在接口允许通过的VLAN ID列表中,则接收该报文。否则丢弃该报文。
- 端口发送数据帧时,当VLAN ID与端口的PVID相同,且是该端口允许通过的VLAN ID时,去掉Tag,发送该报文。当VLAN ID与端口的PVID不同,且是该端口允许通过的VLAN ID时,保持原有Tag,发送该报文。
端口类型-Hybrid

Access端口发往其他设备的报文,都是Untagged数据帧,而Trunk端口仅在一种特定情况下才能发出untagged数据帧,其它情况发出的都是Tagged数据帧。
Hybrid端口是交换机上既可以连接用户主机,又可以连接其他交换机的端口。Hybrid端口既可以连接接入链路又可以连接干道链路。Hybrid端口允许多个VLAN的帧通过,并可以在出端口方向将某些VLAN帧的Tag剥掉。华为设备默认的端口类型是Hybrid。
在本示例中,要求主机A和主机B都能访问服务器,但是它们之间不能互相访问。此时交换机连接主机和服务器的端口,以及交换机互连的端口都配置为Hybrid类型。交换机连接主机A的端口的PVID是2,连接主机B的端口的PVID是3,连接服务器的端口的PVID是100。
Hybrid端口收发数据帧的规则如下:
- 当接收到对端设备发送的不带Tag的数据帧时,会添加该端口的PVID,如果PVID在允许通过的VLAN ID列表中,则接收该报文,否则丢弃该报文。当接收到对端设备发送的带Tag的数据帧时,检查VLAN ID是否在允许通过的VLAN ID列表中。如果VLAN ID在接口允许通过的VLAN ID列表中,则接收该报文,否则丢弃该报文。
- Hybrid端口发送数据帧时,将检查该接口是否允许该VLAN数据帧通过。如果允许通过,则可以通过命令配置发送时是否携带Tag。
port hybrid tagged vlan vlan-id
port hybrid untagged vlan vlan-id
- 配置port hybrid tagged vlan vlan-id命令后,接口发送该vlan-id的数据帧时,不剥离帧中的VLAN Tag,直接发送。该命令一般配置在连接交换机的端口上。
- 配置port hybrid untagged vlan vlan-id命令后,接口在发送vlan-id的数据帧时,会将帧中的VLAN Tag剥离掉再发送出去。该命令一般配置在连接主机的端口上。
本例介绍了主机A和主机B发送数据给服务器的情况。在SWA和SWB互连的端口上配置了port hybrid tagged vlan 2 3 100命令后,SWA和SWB之间的链路上传输的都是带Tag标签的数据帧。在SWB连接服务器的端口上配置了port hybrid untagged vlan 2 3,主机A和主机B发送的数据会被剥离VLAN标签后转发到服务器。
VLAN划分方法

VLAN的划分包括如下5种方法:
- 基于端口划分:根据交换机的端口编号来划分VLAN。通过为交换机的每个端口配置不同的PVID,来将不同端口划分到VLAN中。
- 基于MAC地址划分:根据主机网卡的MAC地址划分VLAN。此划分方法需要网络管理员提前配置网络中的主机MAC地址和VLAN ID的映射关系。如果交换机收到不带标签的数据帧,会查找之前配置的MAC地址和VLAN映射表,根据数据帧中携带的MAC地址来添加相应的VLAN标签。在使用此方法配置VLAN时,即使主机移动位置也不需要重新配置VLAN。
- 基于IP子网划分:交换机在收到不带标签的数据帧时,根据报文携带的IP地址给数据帧添加VLAN标签。
- 基于协议划分:根据数据帧的协议类型(或协议族类型)、封装格式来分配VLAN ID。网络管理员需要首先配置协议类型和VLAN ID之间的映射关系。
- 基于策略划分:使用几个条件的组合来分配VLAN标签。这些条件包括IP子网、端口和IP地址等。只有当所有条件都匹配时,交换机才为数据帧添加VLAN标签。另外,针对每一条策略都是需要手工配置的。
VLAN配置

vlan 10
quit
vlan batch 2 to 4
在交换机上划分VLAN时,需要首先创建VLAN。在交换机上执行vlan命令,创建VLAN。
vlan id:创建了VLAN id,并进入了VLAN id视图。VLAN ID的取值范围是1到4094。
vlan batch { vlan id1 [ to vlan-id2 ] }:创建多个连续的VLAN。也可以执行 vlan batch { vlan-id1 vlan-id2 }命令,创建多个不连续的VLAN,VLAN号之间需要有空格。
配置验证

display vlan
display vlan [ vlan-id [ verbose ] ]
display vlan vlan-id statistics
display vlan summary
- display vlan:验证配置结果。如果不指定任何参数,则该命令将显示所有VLAN的简要信息。
- display vlan [ vlan-id [ verbose ] ]:查看指定VLAN的详细信息,包括VLAN ID、类型、描述、VLAN的状态、VLAN中的端口、以及VLAN中端口的模式等。
- display vlan vlan-id statistics:查看指定VLAN中的流量统计信息。
- display vlan summary:查看系统中所有VLAN的汇总信息。
配置Access端口

prot link-type access
配置端口类型的命令是port link-type ,type可以配置为Access,Trunk或Hybrid。
需要注意的是,如果查看端口配置时没有发现端口类型信息,说明端口使用了默认的hybrid端口链路类型。当修改端口类 型时,必须先恢复端口的默认VLAN配置,使端口属于缺省的VLAN 1。