本博文将围绕一个综合的网络拓扑图,把华为路由器、交换机的一些基本配置写下来。并且解释链路聚合的相关概念。
博文大纲:
- (一)华为网络设备的链路聚合的相关概念总揽。
1、链路聚合是什么?
2、成员接口有什么限制?
3、链路聚合的工作模式有哪些?
4、活动接口与非活动接口的概念。
5、主动端与被动端的概念。
6、负载均衡模式有哪几种?- (二)华为网络设备配置命令。
- (三)总结
- 1、链路聚合是什么?
- 2、成员接口有什么限制?
- 3、链路聚合的工作模式有哪些?
- 4、活动接口与非活动接口的概念。
- 5、主动端与被动端的概念。
- 6、负载均衡模式有哪几种?
链路聚合(link aggregation)是将多个物理接口当做一个逻辑接口,以增加带宽和提供线路冗余。链路聚合的带宽理论上相当于所包含的物理接口带宽总和,非常适用于企业核心网络中,同时参与捆绑的某个成员接口或链路损坏,不影响聚合链路的正常工作,提供了冗余性。华为设备支持的链路聚合协议是LACP(link aggregation control protocol)。在华为设备中,由多个物理接口捆绑成逻辑接口,该接口被称为Eth-Trunk接口。
将成员接口加入Eth-Trunk时,需要注意以下问题:
- 每个Eth-Trunk接口下最多可以包含8个成员接口;
- 成员接口不能单独配置任何功能和静态MAC地址;
- 成员接口加入Eth-Trunk时,必须为默认的hybrid类型接口(该类型是华为设备默认的接口类型);
- Eth-Trunk接口不能嵌套,即成员接口不能是Eth-Trunk;
- 一个以太网接口只能加入一个Eth-Trunk接口,如果需要加入其它Eth-Trunk接口,必须先退出原来的Eth-Trunk接口;
- 一个Eth-Trunk接口中的成员接口必须是同一类型,即FE口和GE口不能加入同一个Eth-Trunk接口。
- 可以将不同接口板上的以太网接口加入同一个Eth-Trunk。
- 如果本地设备使用了Eth-Trunk,与成员接口直连的对端接口也必须捆绑为Eth-Trunk接口,这样两端才能正常通信。
- 当成员接口的速率不一致时,实际使用中速率小的接口可能会出现拥塞,导致丢包。
- 当成员接口加入Eth-Trunk后,学习MAC地址时是按照Eth-Trunk来学习的,而不是按照成员接口来学习的。
华为网络设备支持的链路聚合模式有手工负载分担模式和静态LACP模式:
- 手工负载分担模式:该模式中没有LACP协议报文的参与,所有的配置均由手工完成,如加入多个成员接口。该模式下所有接口均处于转发状态,实现链路的负载分担。它支持的负载分担方式宝库目的MAC、源MAC、源MAC异或目的MAC、源IP、目的IP、源IP异或目的IP。手工负载模式通常应用于对端设备不支持LSCP协议的情况下。
- 静态LACP模式:该模式是线路两端利用LACP协议进行协商,从而确定活动接口和非活动接口的链路聚合方式,在该模式下,创建Eth-Trunk、加入Eth-Trunk成员接口需要手工完成,而确定活动接口和非活动接口由LACP协议进行协商。静态LACP模式也称为M : N模式。这种方式可以实现链路负载分担和冗余备份的双重功能。在链路聚合组中M条链路处于活动状态,转发数据并负载分担,而另外N条链路 处于非活动状态,不转发数据,当M条链路中有链路出现故障时,系统会自动从N条备份链路中选择优先级最高的接替故障链路,并开始转发数据。
静态LACP模式与手工负载分担模式的主要区别为静态LACP模式可以有备份链路,而手工负载分担模式中所有成员接口均处于转发状态,分担负载流量,除非线路故障。
处于活动状态并负责转发数据的接口称为活动接口。相反,处于非活动状态并禁止转发数据的接口被称为非活动接口。活动接口和非活动接口一般不需要人为干预,在静态LACP模式中可以配置活动接口数量的上限以及下限。
根据配置的工作模式不同,角色分工如下:
- 手工负载分担模式:正常情况下,所有接口都属于活动接口,除非这些接口出现链路故障。
- 静态LACP模式:M条链路对应的接口为活动接口并负责转发数据,N条链路对应的接口为非活动接口并负责冗余备份。
在静态LACP模式下,聚合组两端的设备中,需要选择一端为主动端,而另一端为被动端。通常情况下,LACP优先级较高的一端为主动端,LACP优先级较低的一端为被动端。如果优先级一样,那么通常选择MAC地址小的一段为主动端。(优先级的数值越小,优先级越高)。
区分主动端与被动端的目的是保证两端设备最终确认的活动接口一致,否则两端都按照本端各自的接口优先级来选择活动接口,最终两端所确定的活动接口很有可能不一致,聚合链路也就无法建立。如下所示:
SwitchA选择上面的两个接口为活动接口,而SwitchB选择下面的两个接口为活动接口,因为SwitchA的优先级比较高,所以最终的活动接口两端都以SwitchA为准,因此应首先确定主动端,被动端按照主动端侧的接口优先级来选择活动接口。
链路聚合的主要作用是提高带宽以及增加冗余,而普遍的做法就是在多条物理链路上实行负载分担。
常用的负载分担模式包括:
- dst-ip(目的IP地址)模式:从目的IP地址、出端口的TCP/UDP端口号中分别选择指定位的3bit数值进行异或运算,根据运算结果选择Eth-Trunk表中对应的出接口。
- dst-mac(目的MAC地址)模式:从目的MAC地址、VLAN ID、以太网类型及入端口信息中分别指定位的3bit数值进行异或运算,根据运算结果选择Eth-Trunk表中对应的出接口。
- src-ip(源IP地址)模式:从源IP地址、入端口的TCP/UDP端口号中分别指定位的3bit数值进行异或运算,根据运算结果选择Eth-Trunk表中对应的出接口。
- src-mac(源MAC地址)模式:从源MAC地址、VLAN ID、以太网类型及入端口信息中分别指定位的3bit数值进行异或运算,根据运算结果选择Eth-Trunk表中对应的出接口。
- src-dst-ip(源IP地址与目的IP地址的异或)模式:对目的IP地址、源IP地址两种负载分担模式的运算结果进行异或运算,根据运算结果选择Eth-Trunk表中对应的出接口。
- src-dst-mac(源MAC地址与目的MAC地址的异或)模式:对目的MAC地址、源MAC地址、VLAN ID、以太网类型及入端口信息中分别选择指定位的3bit数值进行异或运算,根据运算结果选择Eth-Trunk表中对应的出接口。
这里从一个大型的网络拓扑图的配置说起,将华为网络设备的基础配置命令写下来,可以下载我提供的拓扑图(提取码:ay6t ),该拓扑图不以实用性为目的,而是以涉及更多的配置命令及技术为目的。网络拓扑图如下:
该拓扑图涉及的命令如下:
- 链路聚合
- vlan划分
- 单臂路由及三层交换
- OSPF及RIP的动态路由配置
- 路由重分发
- PAT及静态NAT的配置
- 基本ACL及高级ACL配置
网络拓扑分析:
1)OSPF和RIP部分:
R2为公司的网关路由器,R1模拟公网路由器,所以不可配置去往公司内部的路由。公司内网使用了两种动态路由协议,RIP和OSPF,R2的GE0/0/0、GE0/0/1两个接口和SW1、SW2使用了OSPF动态路由,属于area0。R2的GE0/0/2以及R3和R4 都是用了动态路由协议RIP。所以需要在R2路由器上进行路由重分发。从而使不同的路由协议相互学习。R2作为网关路由器,需要有一条默认路由指向公网,并且需要将这条默认路由重分发到OSPF及RIP协议里。
2)链路聚合:
SW1和SW2使用链路聚合将两条物理链路聚合成一条逻辑链路,用于实现负载分担和备份。设置SW1为LACP主动端,逻辑链路基于MAC方式进行负载分担。
3)NAT及ACL:
模拟内网中192.168.10.0/24和192.168.11.0/24这两个网段不可以连接公网,所以需要设置ACL。Windows server 2016搭建一个web服务器,使用静态NAT发布到公网,使win 7 客户端可以访问到web服务器。
4)公司内部所有的网段都是192.168.X.0/24的网段。
网络拓扑比较大,我们分为多个部分来配置。
第一部分首先从R2路由器的GE0/0/0和GE0/0/1开始往下配置,依次配置路由器接口IP地址、OSPF、三层交换机的接口、vlan、链路聚的配置、二层交换机的接口配置以及划分vlan,最终测试最下面的PC是否可以ping通路由器的GE0/0/0接口(需要在配置完OSPF后才可ping通)。
un ter mo
sys
[R2]ip route-static 0.0.0.0 0.0.0.0 200.0.0.2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.7.2 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 192.168.8.2 24
[R2-GigabitEthernet0/0/1]ospf 10
[R2-ospf-10]area 0
[R2-ospf-10-area-0.0.0.0]net 192.168.7.0 0.0.0.255
[R2-ospf-10-area-0.0.0.0]net 192.168.8.0 0.0.0.255
[R2-ospf-10-area-0.0.0.0]quit
[R2-ospf-10]default-route-advertise
un ter mo
sys
[SW1]vlan ba 2 to 8
[SW1]in vlan 7
[SW1-Vlanif7]ip add 192.168.7.1 24
[SW1-Vlanif7]in vlan 2
[SW1-Vlanif2]ip add 192.168.2.254 24
[SW1-Vlanif2]in vlan 3
[SW1-Vlanif3]ip add 192.168.3.254 24
[SW1-Vlanif3]in vlan 4
[SW1-Vlanif4]ip add 192.168.4.254 24
[SW1-Vlanif4]in g0/0/1
[SW1-GigabitEthernet0/0/1]port link-type access
[SW1-GigabitEthernet0/0/1]port default vlan 7
[SW1-GigabitEthernet0/0/1]lacp pri 1000
[SW1]int Eth-Trunk 12
[SW1-Eth-Trunk12]mode lacp-static
[SW1-Eth-Trunk12]load-balance dst-mac
[SW1-Eth-Trunk12]trunkport g0/0/23
[SW1-Eth-Trunk12]trunkport g0/0/24
[SW1-Eth-Trunk12]port link-type trunk
[SW1-Eth-Trunk12]port trunk allow-pass vlan all
[SW1-Eth-Trunk12]in g0/0/2
[SW1-GigabitEthernet0/0/2]port link-type trunk
[SW1-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[SW1-GigabitEthernet0/0/2]in g0/0/3
[SW1-GigabitEthernet0/0/3]port link-type trunk
[SW1-GigabitEthernet0/0/3]port trunk allow-pass vlan all
[SW1]ospf 10
[SW1-ospf-10]area 0
[SW1-ospf-10-area-0.0.0.0]net 192.168.2.0 0.0.0.255
[SW1-ospf-10-area-0.0.0.0]net 192.168.3.0 0.0.0.255
[SW1-ospf-10-area-0.0.0.0]net 192.168.4.0 0.0.0.255
[SW1-ospf-10-area-0.0.0.0]net 192.168.7.0 0.0.0.255
un ter mo
sys
[SW2]vlan ba 2 to 8
[SW2]in vlan 8
[SW2-Vlanif8]ip add 192.168.8.1 24
[SW2-Vlanif8]in vlan 6
[SW2-Vlanif6]ip add 192.168.6.254 24
[SW2-Vlanif6]in vlan 5
[SW2-Vlanif5]ip add 192.168.5.254 24
[SW2-Vlanif5]in g0/0/1
[SW2-GigabitEthernet0/0/1]port link-type access
[SW2-GigabitEthernet0/0/1]port default vlan 8
[SW2]int Eth-Trunk 12
[SW2-Eth-Trunk12]mode lacp-static
[SW2-Eth-Trunk12]trunkport g0/0/23
[SW2-Eth-Trunk12]trunkport g0/0/24
[SW2-Eth-Trunk12]port link-type trunk
[SW2-Eth-Trunk12]port trunk allow-pass vlan all
[SW2-Eth-Trunk12]in g0/0/2
[SW2-GigabitEthernet0/0/2]port link-type trunk
[SW2-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[SW2-GigabitEthernet0/0/2]in g0/0/3
[SW2-GigabitEthernet0/0/3]port link-type trunk
[SW2-GigabitEthernet0/0/3]port trunk allow-pass vlan all
[SW2]ospf 10
[SW2-ospf-10]area 0
[SW2-ospf-10-area-0.0.0.0]net 192.168.8.0 0.0.0.255
[SW2-ospf-10-area-0.0.0.0]net 192.168.5.0 0.0.0.255
[SW2-ospf-10-area-0.0.0.0]net 192.168.6.0 0.0.0.255
SW4>undo ter mo
sys
[SW4]vlan ba 2 to 8
[SW4]in g0/0/1
[SW4-GigabitEthernet0/0/1]port link-type trunk
[SW4-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW4-GigabitEthernet0/0/1]in g0/0/3
[SW4-GigabitEthernet0/0/3]port link-type access
[SW4-GigabitEthernet0/0/3]port default vlan 2
[SW4-GigabitEthernet0/0/3]in g0/0/2
[SW4-GigabitEthernet0/0/2]port link-type access
[SW4-GigabitEthernet0/0/2]port default vlan 3
undo ter mo
sys
[SW5]vlan 4
[SW5-vlan4]quit
[SW5]in g0/0/1
[SW5-GigabitEthernet0/0/1]port link-type trunk
[SW5-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW5-GigabitEthernet0/0/1]in g0/0/2
[SW5-GigabitEthernet0/0/2]port link-type access
[SW5-GigabitEthernet0/0/2]port default vlan 4
由于SW6、SW7和SW5的配置相比起来没有太大的差别,都是改一下接口类型,创建相应的vlan,将接口添加到vlan中,trunk接口允许所有vlan的信息通过,所以,SW6和SW7就不写注释了,相应的注释可以参考SW5的配置。
undo ter mo
sys
[SW6]vlan 5
[SW6-vlan5]in g0/0/1
[SW6-GigabitEthernet0/0/1]port link-type trunk
[SW6-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW6-GigabitEthernet0/0/1]in g0/0/2
[SW6-GigabitEthernet0/0/2]port link-type access
[SW6-GigabitEthernet0/0/2]port default vlan 5
un ter mo
sys
[SW7]vlan 6
[SW7-vlan6]in g0/0/1
[SW7-GigabitEthernet0/0/1]port link-type trunk
[SW7-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW7-GigabitEthernet0/0/1]in g0/0/2
[SW7-GigabitEthernet0/0/2]port link-type access
[SW7-GigabitEthernet0/0/2]port default vlan 6
经过以上配置,下面的网络部分已经通了,可以自行使用PC进行ping测试。
第二部分开始配置R2路由器的GE0/0/2接口到R4路由器及下面的交换机,首先配置R2路由器的GE0/0/2接口IP并配置RIP,进行OSPF和RIP的路由重分发,配置R3的接口IP及RIP路由,最后配置R4的接口IP、单臂路由及RIP路由。
[R2]in g0/0/2
[R2-GigabitEthernet0/0/2]ip add 192.168.12.1 24
[R2-GigabitEthernet0/0/2]rip
[R2-rip-1]ver 2
[R2-rip-1]undo summary
[R2-rip-1]net 192.168.12.0
[R2-rip-1]import-route ospf 10
[R2-rip-1]default-route originate
[R2-rip-1]ospf 10
[R2-ospf-10]import-route rip 1
undo ter mo
sys
[R3]in g0/0/0
[R3i-GigabitEthernet0/0/0]ip add 192.168.12.2 24
[R3-GigabitEthernet0/0/0]in g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.13.1 24
[R3-GigabitEthernet0/0/1]rip
[R3-rip-1]ver 2
[R3-rip-1]un sum
[R3-rip-1]net 192.168.12.0
[R3i-rip-1]net 192.168.13.0
un ter mo
sys
[R4]in g0/0/1
[R4-GigabitEthernet0/0/1]ip add 192.168.13.2 24
[R4-GigabitEthernet0/0/1]in g0/0/0.10
[R4-GigabitEthernet0/0/0.10]ip add 192.168.10.1 24
[R4-GigabitEthernet0/0/0.10]dot ter vid 10
[R4-GigabitEthernet0/0/0.10]arp bro ena
[R4-GigabitEthernet0/0/0.10]in g0/0/0.11
[R4-GigabitEthernet0/0/0.11]ip add 192.168.11.1 24
[R4-GigabitEthernet0/0/0.11]dot1q ter vid 11
[R4-GigabitEthernet0/0/0.11]arp broadcast enable
[R4]rip
[R4-rip-1]ver 2
[R4-rip-1]un sum
[R4-rip-1]net 192.168.13.0
[R4-rip-1]net 192.168.10.0
[R4-rip-1]net 192.168.11.0
un ter mo
sys
[SW3]vlan ba 10 to 11
[SW3]in g0/0/1
[SW3-GigabitEthernet0/0/1]port link-type trunk
[SW3-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 to 11
[SW3-GigabitEthernet0/0/1]in g0/0/2
[SW3-GigabitEthernet0/0/2]port link-type access
[SW3-GigabitEthernet0/0/2]port default vlan 10
[SW3-GigabitEthernet0/0/2]in g0/0/3
[SW3-GigabitEthernet0/0/3]port link-type access
[SW3-GigabitEthernet0/0/3]port default vlan 11
经过上面的配置,下面这些网络就全部搞定了,可以自行使用PC机进行ping测试。
现在就需要配置Internet部分了,从R2路由器的GE3/0/0接口开始配置,首先配置该接口的IP地址,然后在配置Internet路由器R1的相应接口IP地址,注意,Internet路由器R1不可配置路由表,但依然要求所有内网可以ping通win 7客户端,因为在实际中,公司内部的私网地址不可能在公网上进行路由,公网上的路由器也不可能配置路由表直接指向公司内部,这就需要用到了NAT。为了引出ACL的配置方法,就指定PC5和PC6不可以和公网进行通信,剩下的都可以。
[R2]in g3/0/0
[R2-GigabitEthernet3/0/0]ip add 200.0.0.1 24
[R2-GigabitEthernet3/0/0]quit
[R2]nat address-group 1 200.0.0.100 200.0.0.100
[R2]acl 2000
[R2-acl-basic-2000]rule 0 per source any
[R2-acl-basic-2000]quit
[R2]acl 3000
[R2-acl-adv-3000]rule deny ip source 192.168.10.0 0.0.1.255 destination 200.0.0.0 0.0.0.255
[R2-acl-adv-3000]rule deny ip source 192.168.10.0 0.0.1.254 destination 201.0.0.0 0.0.0.255
[R2-acl-adv-3000]quit
[R2]in g3/0/0
[R2-GigabitEthernet3/0/0]nat outbound 2000 address-group 1
[R2-GigabitEthernet3/0/0]nat server global 200.0.0.200 inside 192.168.2.10
[R2-GigabitEthernet3/0/0]quit
[R2]in g0/0/2
[R2-GigabitEthernet0/0/2]traffic-filter inbound acl 3000
sys
[R1]in g0/0/0
[R1-GigabitEthernet0/0/0]ip add 200.0.0.2 24
[R1-GigabitEthernet0/0/0]in g0/0/1
[R1-GigabitEthernet0/0/1]ip add 201.0.0.1 24
现在所有配置均以完成,自行配置win7和win server 2016进行测试吧,注意,win7和内网进行ping测试或访问Windows server 2016的服务时,需要ping内网映射出来的地址和服务器映射出的公网地址,而不是内网服务器的真实地址。原本打算将ACL的配置写的更详细些,但是这篇博文已经写了五个多小时了,实在没耐心了。
[R2]display current-configuration
[R2]display ip routing-table
[SW1]display vlan
[SW1]display ip interface brief
[SW1]display current-configuration interface vlan 2
[R2]display nat session all
[R2]display ospf peer brief
[R2]display acl all
[SW1]display eth-trunk 12
该网络拓扑图需知道以下几个知识点:
- 即使某些交换机上并没有相应vlan的客户端,但依然要创建相应vlan,如上面拓扑图中的SW1和SW2,因为当交换机收到来自某vlan的数据包时,如果他没有该vlan,那么将丢弃该数据包,但是如果中间经过了路由器,那就不一样了。
- 华为的trunk通道默认不允许除vlan 1以外的所有vlan通信,而Cisco设备的trunk默认允许所有vlan通信,所以在配置华为设备时,在配置完基本的trunk配置后,一定要加上允许相关vlan通过trunk的命令。
- 在配置链路聚合时,LACP的优先级值越小,优先级越高,默认情况下,系统LACP优先级为32768。在两端设备中选择LACP优先级较小的一端作为主动端,如果系统LACP优先级相同,则选择MAC地址较小的一端作为主动端。
- 在配置OSPF是,如果想要指定router-id,可以在进入进程模式时追加router-id,如将R2的router-id设置为1.1.1.1 :“[R2]ospf 10 router-id 1.1.1.1”。
- 华为三层交换机的二层接口没有直接提升为三层接口的命令,如Cisco中的“no switchport”,所以在和路由器直连时,只能配置vlan虚接口,然后将物理接口添加到vlan中。
- 在华为中,只能以标准的方式宣告RIP网络,如网段进行子网划分后为“10.10.5.0/24”,在宣告网段时,也只能宣告为“10.0.0.0”,但是需要注意,如果网络中有经过子网划分的网络,那么一定要使用RIP的版本2(默认为1),并且关闭自动汇总。
- 华为的NAT转换直接配置在外部接口模式下,需要转换的内部流量需要通过ACL来定义,而转换后的内部全局地址通过配置NAT组来实现。
- 华为的ACL与Cisco基本相似,华为的ACL分为基本和高级两种,类似于Cisco的标准和扩展。其中基本的编号为2000~2999,高级的编号为3000~3999,rule命令字后面可以加编号,也可以省略,默认每个rule之间相隔5个数,因为ACL的规则是匹配即停,所以这样使为了方便以后更改rule时,可以插入到某个rule之前。