该实验来自某站UP主：暴风网络-155和150 相关配置文件 若以下没有该设备文件即表示未作任何配置。 其中涉及MAC地址部分均采用模拟器提供的MAC（如绑定AP），需要自行更改！ Server、Clinet以及STA根据相关需求配置。 企业区域 AR1： # sysname R1 header shell information "SUCESS : There will be a price for your actions!" header login information "WARNING : Please proceed with caution!" # snmp-agent local-engineid 800007DB03000000000000 snmp-agent sys-info version v3 snmp-agent group v3 USER_GROUP privacy snmp-agent target-host trap-hostname NMS address 10.1.20.10 udp-port 162 trap-p aramsname R1 snmp-agent usm-user v3 USER USER_GROUP authentication-mode md5 4DE14BB77015FFE8 95A65FDE05B8F6E9 privacy-mode des56 4DE14BB77015FFE895A65FDE05B8F6E9 snmp-agent trap enable feature-name IFNET trap-name linkDown snmp-agent trap enable feature-name IFNET trap-name linkUp snmp-agent # acl number 2000 rule 5 permit source 10.1.10.0 0.0.0.255 # acl number 3000 rule 5 deny icmp icmp-type echo rule 10 deny udp destination-port gt 33433 # aaa authentication-scheme default authorization-scheme default accounting-scheme default domain default domain default_admin local-user user password cipher %$%$mq2aEX3+x"S0Nl,/<SeK]@gr%$%$ local-user user privilege level 15 local-user user service-type ssh local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$ local-user admin service-type http # nat address-group 1 155.1.12.11 155.1.12.20 # interface Eth-Trunk1 undo portswitch ip address 10.1.17.1 255.255.255.0 ospf enable 1 area 0.0.0.0 mode lacp-static # interface GigabitEthernet0/0/0 ip address 155.1.12.1 255.255.255.0 traffic-filter inbound acl 3000 nat server protocol tcp global 155.1.12.10 10080 inside 10.1.20.10 www nat outbound 2000 address-group 1 # interface GigabitEthernet0/0/1 eth-trunk 1 # interface GigabitEthernet0/0/2 eth-trunk 1 # ospf 1 default-route-advertise area 0.0.0.0 # stelnet server enable # ip route-static 0.0.0.0 0.0.0.0 155.1.12.2 # user-interface con 0 authentication-mode password user-interface vty 0 4 acl 2000 inbound authentication-mode aaa idle-timeout 15 0 protocol inbound ssh user-interface vty 16 20 # return LSW1： # sysname S1 # vlan batch 10 17 20 254 # stp mode stp stp instance 0 priority 8192 stp pathcost-standard dot1d-1998 # dhcp enable # aaa authentication-scheme default authorization-scheme default accounting-scheme default domain default domain default_admin local-user admin password simple admin local-user admin service-type http # interface Vlanif10 ip address 10.1.10.7 255.255.255.0 dhcp select interface dhcp server dns-list 155.1.2.10 # interface Vlanif17 ip address 10.1.17.7 255.255.255.0 # interface Vlanif20 ip address 10.1.20.7 255.255.255.0 # interface Vlanif254 ip address 10.1.254.7 255.255.255.0 dhcp select interface dhcp server static-bind ip-address 10.1.254.1 mac-address 00e0-fce6-3090 # interface Eth-Trunk1 port link-type access port default vlan 17 mode lacp-static # interface GigabitEthernet0/0/1 eth-trunk 1 # interface GigabitEthernet0/0/2 eth-trunk 1 # interface GigabitEthernet0/0/10 port link-type trunk undo port trunk allow-pass vlan 1 port trunk allow-pass vlan 10 254 # interface GigabitEthernet0/0/23 port link-type trunk port trunk allow-pass vlan 2 to 4094 # interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 2 to 4094 # ospf 1 area 0.0.0.0 network 10.1.17.0 0.0.0.255 network 10.1.10.0 0.0.0.255 network 10.1.20.0 0.0.0.255 # ssh client first-time enable # return LSW2： # sysname S2 # vlan batch 10 20 254 # stp mode stp stp instance 0 priority 16384 stp pathcost-standard dot1d-1998 # rsa peer-public-key 10.1.17.1 public-key-code begin 308188 028180 EBAF3256 AA5B7305 C7B193DB B0BC1B3B C04ABD1B D565E757 250BACA6 A7009AC1 56227B78 8AA12C72 E1F07ADA 497D536B 23A7DFBE 671FBA0E 933F5B70 C2D654F9 C4ABD0F5 EE45BC01 DDF0484D D452E74A DF163662 505B0CDD B5370763 C43663B0 B53D85EC 4615968A F70E7FDB 9E22ACB5 21172B96 012D98CC 18F6A60D 463D5D41 0203 010001 public-key-code end peer-public-key end # aaa authentication-scheme default authorization-scheme default accounting-scheme default domain default domain default_admin local-user admin password simple admin local-user admin service-type http # interface Vlanif10 ip address 10.1.10.8 255.255.255.0 # interface GigabitEthernet0/0/1 port link-type access port default vlan 254 # interface GigabitEthernet0/0/21 port link-type trunk port trunk allow-pass vlan 2 to 4094 # interface GigabitEthernet0/0/22 port link-type trunk port trunk allow-pass vlan 2 to 4094 # interface GigabitEthernet0/0/23 port link-type trunk port trunk allow-pass vlan 2 to 4094 # ip route-static 0.0.0.0 0.0.0.0 10.1.10.7 # ssh client first-time enable ssh client 10.1.17.1 assign rsa-key 10.1.17.1 # return LSW3： # sysname S3 # vlan batch 10 20 254 # stp mode stp stp pathcost-standard dot1d-1998 # aaa authentication-scheme default authorization-scheme default accounting-scheme default domain default domain default_admin local-user admin password simple admin local-user admin service-type http # interface GigabitEthernet0/0/10 port link-type access port default vlan 20 # interface GigabitEthernet0/0/21 port link-type trunk port trunk allow-pass vlan 2 to 4094 # interface GigabitEthernet0/0/22 port link-type trunk port trunk allow-pass vlan 2 to 4094 # interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 2 to 4094 # return AC1： # sysname AC1 # vlan batch 10 254 # interface Vlanif254 ip address 10.1.254.10 255.255.255.0 # interface GigabitEthernet0/0/1 port link-type trunk undo port trunk allow-pass vlan 1 port trunk allow-pass vlan 10 254 # interface GigabitEthernet0/0/22 undo negotiation auto duplex half # interface GigabitEthernet0/0/23 undo negotiation auto duplex half # interface GigabitEthernet0/0/24 undo negotiation auto duplex half # capwap source interface vlanif254 # wlan traffic-profile name default security-profile name default security-profile name SEC_PRO security wpa2 psk pass-phrase %^%#~:#$%:tA=<:.>t>2MsC,r){U)yfi/3)BX)7E!FD(%^%# aes security-profile name default-wds security-profile name default-mesh ssid-profile name default ssid-profile name SSID_PRO ssid HUAWEI vap-profile name default vap-profile name VAP_PRO forward-mode tunnel service-vlan vlan-id 10 ssid-profile SSID_PRO security-profile SEC_PRO wds-profile name default mesh-handover-profile name default mesh-profile name default regulatory-domain-profile name default air-scan-profile name default rrm-profile name default radio-2g-profile name default radio-5g-profile name default wids-spoof-profile name default wids-profile name default wireless-access-specification ap-system-profile name default port-link-profile name default wired-port-profile name default serial-profile name preset-enjoyor-toeap ap-group name default ap-id 1 type-id 45 ap-mac 00e0-fce6-3090 ap-sn 210235448310A2691B79 ap-name AREA_1 radio 0 vap-profile VAP_PRO wlan 1 radio 1 vap-profile VAP_PRO wlan 1 provision-ap # return 互联网区域 LSW4： # sysname S4 # vlan batch 2 to 4 # interface GigabitEthernet0/0/2 port hybrid pvid vlan 2 port hybrid untagged vlan 2 to 3 # interface GigabitEthernet0/0/3 port hybrid pvid vlan 3 port hybrid untagged vlan 2 to 4 # interface GigabitEthernet0/0/4 port hybrid pvid vlan 4 port hybrid untagged vlan 3 to 4 # return AR2： # sysname R2 # interface Serial1/0/0 link-protocol ppp ppp pap local-user USER password simple HUAWEI ip address 155.1.24.2 255.255.255.0 # interface GigabitEthernet0/0/0 ip address 155.1.12.2 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 155.1.0.2 255.255.255.0 ospf dr-priority 0 # interface GigabitEthernet0/0/2 ip address 155.1.2.2 255.255.255.0 # interface LoopBack0 ip address 150.1.2.2 255.255.255.255 # ospf 1 silent-interface GigabitEthernet0/0/2 silent-interface GigabitEthernet0/0/0 area 0.0.0.0 network 150.1.0.0 0.0.255.255 network 155.1.0.0 0.0.255.255 # arp static 155.1.0.4 00e0-fc4b-0626 # return AR3： # sysname R3 # interface GigabitEthernet0/0/1 ip address 155.1.0.3 255.255.255.0 # # interface LoopBack0 ip address 150.1.3.3 255.255.255.255 # ospf 1 area 0.0.0.0 network 150.1.0.0 0.0.255.255 network 155.1.0.0 0.0.255.255 # return AR4： # sysname R4 # interface Serial1/0/0 link-protocol ppp ppp authentication-mode pap ip address 155.1.24.4 255.255.255.0 # interface Virtual-Template1 ppp authentication-mode chap remote address 155.1.45.5 ip address unnumbered interface GigabitEthernet0/0/0 # interface GigabitEthernet0/0/0 pppoe-server bind Virtual-Template 1 ip address 155.1.45.4 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 155.1.0.4 255.255.255.0 ospf dr-priority 0 # interface LoopBack0 ip address 150.1.4.4 255.255.255.255 # ospf 1 silent-interface GigabitEthernet0/0/0 area 0.0.0.0 network 150.1.0.0 0.0.255.255 network 155.1.0.0 0.0.255.255 # arp static 155.1.0.2 00e0-fc4b-0626 # return 远程用户 AR5： # sysname R5 # acl number 2000 rule 5 permit source 10.1.5.0 0.0.0.255 # interface Dialer1 link-protocol ppp ppp ipcp default-route ppp chap user USER ppp chap password simple HUAWEI mtu 1492 ip address ppp-negotiate dialer user TEST dialer bundle 1 nat outbound 2000 # interface GigabitEthernet0/0/0 pppoe-client dial-bundle-number 1 # interface GigabitEthernet0/0/1 ip address 10.1.5.5 255.255.255.0 # return 相关链接 学习链接 下载链接（回复可见） 此处内容已隐藏，回复后(需要填写邮箱)可见
访问控制列表ACL（Access Control List）是由一条或多条规则组成的集合。所谓规则，是指描述报文匹配条件的判断语句，这些条件可以是报文的源地址、目的地址、端口号等。 ACL本质上是一种报文过滤器，规则是过滤器的滤芯。设备基于这些规则进行报文匹配，可以过滤出特定的报文，并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。 ACL 基本原理 此处均转自华为官网中AR系列配置指南——ACL 配置，点击此处查看完整内容。 ACL 的组成 ACL由一系列规则组成，通过将报文与ACL规则进行匹配，设备可以过滤出特定的报文。ACL的结构组成，如下图所示： ACL编号：使用数字或者名称来标识ACL 使用数字标识ACL：不同的类型的ACL使用不同的数字进行标识。 使用名称标识ACL：可以使用字符来标识ACL，就像用域名代替IP地址一样，更加方便记忆。 规则：即描述匹配条件的判断语句 规则编号：用于标识ACL规则，所有规则均按照规则编号从小到大进行排序 动作：包括permit/deny两种动作，表示设备对所匹配的数据包接受或者丢弃。 匹配项：ACL定义了极其丰富的匹配项。包括生效时间段、IP协议（ICMP、TCP、UDP等）、源/目的地址以及相应的端口号（21、23、80等）。 ACL 分类 基于ACL规则定义方式的划分如下。 随着ACL技术的发展，其种类越来越丰富，根据其不同的规则和使用场景，常用的可分为以下几类： 基本ACL 高级ACL 二层ACL 用户ACL ACL 匹配机制 配置示例 该示例中只涉及高级ACL。点击了解更多相关配置命令及配置举例，这里不一一赘述。 如下图，该网络可以正常互相通信，PC和Client可达任意网段。图中橙色部分是我们要去实现的功能，提前完成的配置如下： PC1和Client1各属VLAN10和VLAN20下。 借助AR1实现单臂路由，使PC1和Client1互相访问。 蓝色框区域采用OSPF，同属区域area0。 检查相关配置 (1) PC1 访问各网段设备 (2) Client1 访问 PC1 配置相应的 ACL 规则 为ACL设置相关规则的时候，需要了解流量数据的出口和入口，若我们假设配置的单臂路由那一块为我们的内部网络，那么访问外网时R2的g0/0/0就相当流量的入接口（inbound），其余两个接口就是出接口（outbound）。为了方便实验，我们将在 R2 的 g0/0/0 接口下进行ACL配置。 查看要求我们知道此时需要匹配两条规则且基本ACL是无法满足第二条规则，于是我们采用高级ACL，值得注意的是一个接口下只能运行一个ACL列表，不能同时运行多个。所以我们将这两条匹配规则写在一个ACL列表下。 <R2>system view [R2]acl 3999 [R2-acl-adv-3999]rule deny 1 source 192.168.2.100 0 destination 192.168.4.100 0 [R2-acl-adv-3999]rule deny ip source 192.168.1.100 0 destination any [R2-acl-adv-3999]int g0/0/0 [R2-GigabitEthernet0/0/0]traffic-filter inbound acl 3999 查看当前接口下的配置，我们刚刚写的ACL已经在当前接口下生效。 随便查看下我们写的ACL列表，确认无误。 配置验证 1. PC1 无法进行跨网段访问，只可访问Client1 当前可直接去ping线路上的R2的g0/0/0，只要它不通即可。 为验证ACL是否匹配，还额外ping了R1的g0/0/0，当然也可以通过display acl all 查看当前ACL命中次数。 2. Client1 无法访问 server ICMP服务，但可以访问其它服务 使用ping可以向网络主机发送 ICMP 回显请求。它用来检查网络是否通畅或者网络连接速度快慢，从而判断网络是否正常。 这里很明显可以看到我们设置ACL已经匹配规则，无法ping通该地址。当然也可以选择别的地址进行“ping测试”，这里就不再进行演示… 现在我们再去访问该地址上的服务。首先服务器上启动某个服务（我选择的是HTTP服务，文件根目录随便选），随后请求该服务，看到弹出的界面——访问成功！ 配置文件 SW1： # sysname SW1 # vlan batch 10 20 # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 2 to 4094 # interface GigabitEthernet0/0/2 port link-type access port default vlan 10 # interface GigabitEthernet0/0/3 port link-type access port default vlan 20 # R1 # sysname R1 # interface GigabitEthernet0/0/0 ip address 12.1.1.1 255.255.255.0 # interface GigabitEthernet0/0/1 # interface GigabitEthernet0/0/1.1 dot1q termination vid 10 ip address 192.168.1.1 255.255.255.0 arp broadcast enable # interface GigabitEthernet0/0/1.2 dot1q termination vid 20 ip address 192.168.2.1 255.255.255.0 arp broadcast enable # ospf 100 router-id 1.1.1.1 area 0.0.0.0 network 12.1.1.0 0.0.0.255 network 192.168.1.0 0.0.0.255 network 192.168.2.0 0.0.0.255 # R2： # sysname R2 # acl number 3999 rule 5 deny icmp source 192.168.2.100 0 destination 192.168.4.100 0 rule 10 deny ip source 192.168.1.100 0 # interface GigabitEthernet0/0/0 ip address 12.1.1.2 255.255.255.0 traffic-filter inbound acl 3999 # interface GigabitEthernet0/0/1 ip address 23.1.1.2 255.255.255.0 # interface GigabitEthernet0/0/2 ip address 24.1.1.2 255.255.255.0 # ospf 100 router-id 2.2.2.2 area 0.0.0.0 network 12.1.1.0 0.0.0.255 network 23.1.1.0 0.0.0.255 network 24.1.1.0 0.0.0.255 # R3： # sysname R3 # interface GigabitEthernet0/0/0 ip address 23.1.1.3 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 192.168.3.1 255.255.255.0 # ospf 100 router-id 3.3.3.3 area 0.0.0.0 network 23.1.1.0 0.0.0.255 network 192.168.3.0 0.0.0.255 # R4： # sysname R4 # interface GigabitEthernet0/0/0 ip address 24.1.1.4 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 192.168.4.1 255.255.255.0 # ospf 100 router-id 4.4.4.4 area 0.0.0.0 network 24.1.1.0 0.0.0.255 network 192.168.4.0 0.0.0.255 # 参考文献 华为官网：园区交换机（AR系列路由器 > 配置指南 - 安全 > ACL配置） IP知识百科：ACL
以太网链路聚合Eth-Trunk简称链路聚合，它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路，从而实现增加链路带宽的目的。同时，这些捆绑在一起的链路通过相互间的动态备份，可以有效地提高链路的可靠性。 随着网络规模不断扩大，用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中，常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽，但这种方案需要付出高额的费用，而且不够灵活。 采用链路聚合技术可以在不进行硬件升级的条件下，通过将多个物理接口捆绑为一个逻辑接口，达到增加链路带宽的目的。在实现增大带宽目的的同时，链路聚合采用备份链路的机制，可以有效的提高设备之间链路的可靠性。 链路聚合技术主要有以下优势： 增加带宽：链路聚合接口的最大带宽可以达到各成员接口带宽之和。 提高可靠性：当某条活动链路出现故障时，流量可以切换到其他可用的成员链路上，从而提高链路聚合接口的可靠性。 负载分担：在一个链路聚合组内，可以实现在各成员活动链路上的负载分担。 应用简单：Eth-trunk的作用域仅在相邻设备之间，和整个网络结构无关，应用更简单。 链路聚合模式比较 Eth-trunk的模式分为手工模式和LACP模式，具体请参见官方手册中手工模式和LACP模式链路聚合。 简单概括： 手工负载分担模式下所有活动接口都参与数据的转发，分担负载流量 LACP模式支持链路备份 需要注意的是Eth-Trunk链路两端相连的物理接口的数量、速率、双工方式、流控方式必须一致。 应用示例 不建议链路聚合时，两端设备不一致，且下面示例中不涉及LACP模式。 链路聚合（交换机直连）配置 SW1和SW2之间希望能够提供较大的链路带宽来互相通信。同时也希望能够提供一定的冗余度，保证数据传输和链路的可靠性。 配置思路 采用如下的思路配置负载分担链路聚合： 创建Eth-Trunk接口并加入成员接口，实现增加链路带宽 配置负载分担方式，实现流量在Eth-Trunk各成员接口间的负载分担，增加可靠性。 操作步骤 以下均以SW1为例，SW2配置与之类似，不再赘述。 (1) 在SW1和SW2上创建Eth-Trunk接口并加入成员接口 华为交换机默认为手工配置模式（mode manual load-balance）。 <Huawei>system-view [Huawei]sysname SW1 [SW1]interface Eth-Trunk 1 [SW1-Eth-Trunk1]trunkport GigabitEthernet 0/0/1 to 0/0/2 [SW1-Eth-Trunk1]quit 此时检查当前 Eth-Trunk 1 的配置： [SW1]display eth-trunk 1 也可以查看详细参数： [SW1]display interface Eth-Trunk 1 如果使用 display interface Eth-Trunk 1 可以查看当前带宽（BW）。这里以display eth-trunk 1为例，可以看到当前状态已经开启且现在链路聚合中有 2 个接口，成员接口的状态都为“Up”。 (2) 配置Eth-Trunk1的负载分担方式。 方式有好几种，具体参考官方文档如何配置链路聚合的负载分担。 以下是基于源MAC地址和目的MAC地址的负载分担方式。 [SW1]interface Eth-Trunk 1 [SW1-Eth-Trunk1]load-balance src-dst-mac [SW1-Eth-Trunk1]quit 三层链路聚合配置 R1和R2之间创建Eth-Trunk接口，将两个三层接口捆绑到该接口下，可以增加带宽和提高可靠性。 配置思路 采用如下的思路配置链路聚合： 创建三层Eth-Trunk接口并配置IP地址。 把三层接口加入Eth-Trunk接口。 操作步骤 以下均以R1为例，R2配置与之类似，不再赘述。 (1) 配置R1：创建三层Eth-Trunk接口，并配置IP地址。 我们进入Eth-Trunk接口后首先就要undo portswitch将以太网接口从二层模式切换到三层模式，设备的以太网接口默认工作在二层。 <Huawei>system-view [Huawei]sysname R1 [R1]interface Eth-Trunk 1 [R1-Eth-Trunk1]undo portswitch [R1-Eth-Trunk1]ip address 1.1.1.1 24 [R1-Eth-Trunk1]quit 此时检查当前接口地址的配置，发现Eth-Trunk接口及地址配置完成，但是物理和协议状态全为“down”（不具备转发能力）。 [R1]display ip interface brief 结果如下图： (2) 将三层接口加入到Eth-Trunk 1中 现在我们再将两个三层接口加入到Eth-Trunk 1中： [R1]int GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]eth-trunk 1 [R1-GigabitEthernet0/0/0]int GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1]eth-trunk 1 [R1-GigabitEthernet0/0/1]quit 再次查看接口地址配置，对比上一张图明显看到刚刚双“down”状态变成双“up”，并且原有的g0/0/0和g0/0/1接口都已消失，此时则可证明设备将这两个物理接口变成了一个逻辑接口，不再进行正常的流量转发。 示例验证 配置完成后，我们该检查当前的路由表，以R2为例： [R12]dis ip routing-table 此时出现一条直连网段且出接口便是Eth-Trunk1接口，也可执行display interface eth-trunk命令，可以看到接口状态为“UP”。 最后再来测试以下是否能ping通。 参考文献 华为官网：园区交换机（S系列交换机 > 配置指南 - 以太网交换 > 以太网链路聚合配置） 华为官网：园区交换机（AR系列路由器 > 配置指南 - 以太网交换 > 配置三层链路聚合示例） IP知识百科：Eth-trunk
VLAN（Virtual Local Area Network）即虚拟局域网，是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。每个VLAN是一个广播域，VLAN内的主机间通信就和在一个LAN内一样，而VLAN间则不能直接互通，这样，广播报文就被限制在一个VLAN内。 如图1所示，两台交换机放置在不同的地点，比如写字楼的不同楼层，每台交换机分别连接两台属于不同企业用户的计算机，此时就可以将两台计算机划分到不同的VLAN，实现对不同企业用户的隔离。 图1：VLAN示意图 VLAN Tag 和 VLAN ID 要使交换机能够分辨不同VLAN的报文，如图2所示，需要在报文中添加标识VLAN信息的字段。IEEE 802.1Q协议规定，在以太网数据帧中加入4个字节的VLAN标签（又称VLAN Tag，简称Tag），用以标识VLAN信息。 图2：VLAN数据帧格式 IEEE 802.1Q封装的VLAN数据帧格式 数据帧中的VID字段标识了该数据帧所属的VLAN，数据帧只能在其所属VLAN内进行传输。VID字段代表VLAN ID，VLAN ID取值范围是0～4095。由于0和4095为协议保留取值，所以VLAN ID的有效取值范围是1～4094。 交换机内部处理的数据帧都带有VLAN标签。而交换机连接的部分设备（如用户主机、服务器）只会收发不带VLAN tag的传统以太网数据帧。因此，要与这些设备交互，就需要交换机的接口能够识别传统以太网数据帧，并在收发时给帧添加、剥除VLAN标签。添加什么VLAN标签，由接口上的缺省VLAN（Port Default VLAN ID，PVID）决定。 VLAN的接口类型 这里不涉及QinQ（Dot1q-tunnel接口）。 Access接口：一般用于和不能识别Tag的用户终端（如用户主机、服务器等）相连，或者不需要区分不同VLAN成员时使用。Access接口大部分情况只能收发Untagged帧，且只能为Untagged帧添加唯一的VLAN Tag。 Trunk接口：一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端。它可以允许多个VLAN的帧带Tag通过，但只允许一个VLAN的帧从该类接口上发出时不带Tag（即剥除Tag）。 Hybrid接口：既可以用于连接不能识别Tag的用户终端（如用户主机、服务器等）和网络设备（如Hub、傻瓜交换机），也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP。它可以允许多个VLAN的帧带Tag通过，且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag（即不剥除Tag）、某些VLAN的帧不带Tag（即剥除Tag）。 VLAN的划分方法有多种，根据不同的场景，可以采用基于接口、MAC地址、子网、网络层协议、匹配策略方式来划分VLAN。 VLAN的使用场景 VLAN的常见使用场景包括：VLAN间用户的二层隔离，VLAN间用户的三层互访。具体可参考华为官网文档中心的园区交换机配置指南中以太网交换的VLAN引用场景。 VLAN 示例 下列实验中，命令已简写且PC相关地址默认已提前配置完成，详细示例点击这里。 练习 1：同一台交换机上相同VLAN间通信 我们填好PC地址后，可以直接启动设备然后使用PC1来直接ping通PC2。 现在将连接PC1和PC3的接口划分到VLAN 10，把连接PC2的接口划分到VLAN 20，使PC1和PC2、PC2和PC3不能直接进行通信，PC1和PC3可以直接互相通信。 <Huawei>sy [Huawei]sy SW1 [SW1]vlan ba 10 20 [SW1]int g0/0/1 [SW1-GigabitEthernet0/0/1]p l a [SW1-GigabitEthernet0/0/1]p d v 10 [SW1-GigabitEthernet0/0/1]int g0/0/2 [SW1-GigabitEthernet0/0/2]p l a [SW1-GigabitEthernet0/0/2]p d v 20 [SW1-GigabitEthernet0/0/2]int g0/0/3 [SW1-GigabitEthernet0/0/3]p l a [SW1-GigabitEthernet0/0/3]p d v 10 验证配置结果： 练习 2：不同台交换机上相同VLAN间通信 要求：PC4和PC6在VLAN 10 下相互通信，PC5和PC7在VLAN 20 下相互通信。 需要将交换机之间通过Trunk链路类型连接，交换机和用户终端之间通过Access链路类型连接，并加入对应VLAN。 <Huawei>sy [Huawei]sy SW1 [SW1]vlan ba 10 20 [SW1]int g0/0/1 [SW1-GigabitEthernet0/0/1]p l a [SW1-GigabitEthernet0/0/1]p d v 10 [SW1-GigabitEthernet0/0/1]int g0/0/2 [SW1-GigabitEthernet0/0/2]p l a [SW1-GigabitEthernet0/0/2]p d v 20 [SW1-GigabitEthernet0/0/2]int g0/0/3 [SW1-GigabitEthernet0/0/3]p l t [SW1-GigabitEthernet0/0/3]p t a v 10 20 [SW1-GigabitEthernet0/0/3]q 查看所有端口的vlan信息 [SW]display port vlan 另一台交换机的配置与该交换机类似，不再赘述。随后便可验证配置结果： 练习 3：不同交换机上不同VLAN间通信 要求：VLAN 10、20可以和VLAN 100通信，VLAN 10 和 VLAN 20 不能通信。 这里我们采用华为特殊的二层接口模式hybrid（默认），针对不同vlan间通信。 SW1： <Huawei>sy [Huawei]sy SW1 [SW1]vlan ba 10 20 100 [SW1]int g0/0/1 [SW1-GigabitEthernet0/0/1]p h p v 10 [SW1-GigabitEthernet0/0/1]p h u v 10 100 [SW1-GigabitEthernet0/0/1]int g0/0/2 [SW1-GigabitEthernet0/0/2]p h p v 20 [SW1-GigabitEthernet0/0/2]p h u v 20 100 [SW1-GigabitEthernet0/0/2]int g0/0/3 [SW1-GigabitEthernet0/0/3]p h t v 10 20 100 SW2配置文件: # sysname SW2 # vlan batch 10 20 100 # interface GigabitEthernet0/0/1 port hybrid pvid vlan 100 port hybrid untagged vlan 10 20 100 # interface GigabitEthernet0/0/2 port hybrid tagged vlan 10 20 100 # 这里以VLAN10下验证配置结果： 练习 4：单臂路由 需要注意在路由子接口上开启子接口的ARP广播功能。 PC11归属于VLAN 10，PC12归属于VLAN 20；路由器AR1创建两个终结子接口G0/0/0.1-2分别对应VLAN 10/20。 SW： <Huawei>sy [Huawei]sy SW1 [SW1]vlan ba 10 20 [SW1]int g0/0/1 [SW1-GigabitEthernet0/0/1]p l a [SW1-GigabitEthernet0/0/1]p d v 10 [SW1-GigabitEthernet0/0/1]int g0/0/2 [SW1-GigabitEthernet0/0/2]p l a [SW1-GigabitEthernet0/0/2]p d v 20 [SW1-GigabitEthernet0/0/2]int g0/0/3 [SW1-GigabitEthernet0/0/3]p l t [SW1-GigabitEthernet0/0/3]p t a v R1： <Huawei>sy [Huawei]sy R1 [R1]int g0/0/0.1 [R1-GigabitEthernet0/0/0.1]dot1q termination vid 10 [R1-GigabitEthernet0/0/0.1]ip add 192.168.10.1 24 [R1-GigabitEthernet0/0/0.1]arp broadcast enable [R1-GigabitEthernet0/0/0.1]int g0/0/0.2 [R1-GigabitEthernet0/0/0.2]dot1q termination vid 20 [R1-GigabitEthernet0/0/0.2]ip add 192.168.20.1 24 [R1-GigabitEthernet0/0/0.2]arp broadcast enable 检查R1端口信息，可以看到我们配置的两个子接口： 验证配置结果： 练习 5：使用VLANIF实现不同VLAN间的互通 VLANIF接口是一种三层的逻辑接口，能实现不同VLAN间，不同网段的用户进行三层互通。 每个VLAN对应一个VLANIF接口，在为VLANIF接口配置IP地址后，该接口即可作为本VLAN内用户的缺省网关，对需要跨网段的报文进行基于IP地址的三层转发。 <Huawei>sy [Huawei]sy SW [SW]vlan ba 10 20 [SW]int g0/0/1 [SW-GigabitEthernet0/0/1]p l a [SW-GigabitEthernet0/0/1]p d v 10 [SW-GigabitEthernet0/0/1]int g0/0/2 [SW-GigabitEthernet0/0/2]p l a [SW-GigabitEthernet0/0/2]p d v 20 [SW-GigabitEthernet0/0/2]int v 10 [SW-Vlanif10]ip add 192.168.10.1 24 [SW-Vlanif10]int v 20 [SW-Vlanif20]ip add 192.168.20.1 24 以上配置完成后，查看当前配置的VLANIF接口信息（也可查看路由表）： 此时便可验证配置结果： 参考文献 NetEngine AR 产品文档：VLAN配置 IP知识百科：VLAN 华为官网：园区交换机（S2720, S5700, S6700 V200R019C10 配置指南 - 以太网交换）
开放式最短路径优先 OSPF（Open Shortest Path First）是 IETF 组织开发的一个基于链路状态的内部网关协议（Interior Gateway Protocol）。 在OSPF出现前，网络上广泛使用 RIP（Routing Information Protocol）作为内部网关协议。由于 RIP 是基于距离矢量算法的路由协议，存在着收敛慢、路由环路、可扩展性差等问题，所以逐渐被 OSPF 取代。OSPF 作为基于链路状态的协议，能够解决RIP所面临的诸多问题。此外，OSPF 还有以下优点： OSPF 采用组播形式收发报文，这样可以减少对其它不运行OSPF路由器的影响。 OSPF 支持无类型域间选路（CIDR）。 OSPF 支持对等价路由进行负载分担。 OSPF 支持报文加密。 由于 OSPF 具有以上优势，使得 OSPF 作为优秀的内部网关协议被快速接收并广泛使用。 OSPF 基本原理 OSPF 协议路由的计算过程可简单描述如下： (1) 建立邻接关系，过程如下： 1. 本端设备通过接口向外发送Hello报文与对端设备建立邻居关系。 2. 两端设备进行主/从关系协商和DD报文交换。 3. 两端设备通过更新LSA完成链路数据库LSDB的同步。 此时，邻接关系建立成功。 (2) 路由计算 OSPF 采用 SPF（Shortest Path First）算法计算路由，可以达到路由快速收敛的目的。 命令功能 ospf 命令用来创建并运行OSPF进程。 undo ospf 命令用来关闭OSPF进程。 缺省情况下，系统不运行OSPF协议，即不运行OSPF进程。 命令格式 ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] undo ospf process-id [ flush-waiting-timer time ] 参数说明 使用指南 使用场景 创建OSPF进程是配置与OSPF协议有关参数的首要步骤。 OSPF支持多进程，在同一台设备上可以运行多个不同的OSPF进程，它们之间互不影响，彼此独立。不同OSPF进程之间的路由交互相当于不同路由协议之间的路由交互。 设备的ID可以手工配置，如果没有通过命令指定ID号，系统会从当前接口的IP地址中自动选取一个作为设备的ID号。其选择顺序是：Loopback口的IP地址从大到小排序，然后非Loopback接口IP地址从大到小排序，按照排序后的ID选择第二大的ip作为ID。当设备出现router id冲突时，会将该IP从以上排序中剔除。以下3种情况会进行Router ID的重新选取： 通过本命令重新配置OSPF的Router ID，然后重启OSPF进程 重新配置系统的Router ID，并且重新启动OSPF进程 原来被选举为系统的Router ID的IP地址被删除并且重新启动OSPF进程 配置影响 使用undo ospf命令关闭OSPF进程后，接收端会一直保留这个OSPF进程早先产生的已无效的LSA，占用了系统内存，只有这些LSA超时（即LSA中的age字段达到3600秒）才会被删除。使用undo ospf process-id flush-waiting-timer time命令关闭OSPF进程后，设备会在设定的时间内再次产生自己的LSA，并将其age字段置为3600。其他设备收到age字段为3600的LSA后，会立刻删除保留在本机的此条LSA。若本机没有在设定的时间发送完所有的LSA，则其他设备仍会继续保留着一部分已无效的LSA。 当LSA头部中LS字段（老化时间）达到3600秒时，这条LSA会被删除。 注意事项 设备的一个接口只能属于某一个OSPF进程。如果指定了VPN实例，那么OSPF进程属于此实例，否则属于全局实例。进程实例不可更改，只能在第一次使能该进程时指定。 每个OSPF进程的Router ID要保证全网唯一，否则会导致邻居不能正常建立、路由信息不正确的问题。建议在OSPF设备上单独为每个OSPF进程配置全网唯一的Router ID。 使用实例 <Huawei> system-view [Huawei] ospf 100 router-id 1.1.1.1 简单示例 如下图所示，所有的路由器都运行OSPF，其中粉色区域都在同一网段（可观察期间主从关系的现象），蓝色区域不在同一网段。要求 AR1 能够 ping 通 7.7.7.7，且 4.4.4.4 访问 7.7.7.7 时，去走 AR6，回走 AR5。 配置思路 配置各路由器的接口IP。 使各路由器上运行OSPF（都在area0区域）。 按照要求方便实验，配置AR4和AR7上的环回地址。 在AR4和AR7上分别宣告两个环回口地址。 在AR5和AR6上设置相对应接口的开销值。 操作步骤 (1) 配置各路由器接口的IP地址 这里以AR1举例，其余路由器命令一致，只需进入相应接口修改IP地址即可。 <Huawei> system-view [Huawei] sysname R1 [R1] interface gigabitethernet 0/0/0 [R1-GigabitEthernet0/0/0] ip address 192.168.1.1 255.255.255.0 [R1-GigabitEthernet0/0/0] quit 检查各路由器接口地址是否配置成功： [R1]display ip interface brief 结果如下图： (2) 配置各路由器OSPF基本功能 以AR1举例，其余路由器命令一致。可由路由器ID进行RID命名（可默认），如AR1对应RID为1.1.1.1，然后根据当前路由器所处网段来宣告不同网段。 [R1]ospf 100 router id 1.1.1.1 [R1-ospf-100]area 0 [R1-ospf-100-area-0.0.0.0]network 192.168.1.0 0.0.0.255 (3) 配置AR4和AR7上的环回地址(LoopBack) 两台配置命令一样，修改IP即可。（这里以 AR4 为例，命令已简写） <R4>sy Enter system view, return user view with Ctrl+Z. [R4]int lo 0 [R4]ip add 4.4.4.4 [R4-LoopBack0]q [R4]dis ip int br .... (4) 宣告环回地址 两台配置命令一样，修改IP即可。 [R4-ospf-100-area-0.0.0.0]network 4.4.4.4 0.0.0.0 检查当前宣告的直连网络： [R4-ospf-100-area-0.0.0.0]display this (5) 配置OSPF的接口开销值 这里以 AR5 为例修改，AR6也是相同的命令。 首先我们检查当前AR4的路由表： 很清楚的看到当前到达7.7.7.7有两条路径，为满足需求在优先级一致的情况下，依据路由加表原则我们修改AR5下的g0/0/1接口的开销即可，这里我们修改为 2。 <R5>system-view [R5]interface gigabitethernet 0/0/1 [R5]ospf cost 2 修改完成后再查看当前AR4的路由表：对比上一次的路由表可以发现当前路由已经只有一条。 示例验证 (1) AR1来 ping 通 7.7.7.7 由AR1的路由表可以看到是有到达7.7.7.7的路由的，并且下一跳是192.168.1.4，此时确定结果无误。 (2) 4.4.4.4 访问 7.7.7.7 时，去走 AR6，回走 AR5。 这里我们需要使用的tracert命令跟踪。 1.在AR4上以4.4.4.4为源地址去向7.7.7.7，可以看到选择的是下面的路由。 2.在AR7上以7.7.7.7为源地址去向4.4.4.4，可以看到选择的是上面的路由。 相关配置 AR1： # interface GigabitEthernet0/0/0 ip address 192.168.1.1 255.255.255.0 # ospf 100 router-id 1.1.1.1 area 0.0.0.0 network 192.168.1.0 0.0.0.255 # AR2： # interface GigabitEthernet0/0/0 ip address 192.168.1.2 255.255.255.0 # ospf 100 router-id 2.2.2.2 area 0.0.0.0 network 192.168.1.0 0.0.0.255 # AR3： # interface GigabitEthernet0/0/0 ip address 192.168.1.3 255.255.255.0 # ospf 100 router-id 3.3.3.3 area 0.0.0.0 network 192.168.1.0 0.0.0.255 # AR4： # interface GigabitEthernet0/0/0 ip address 192.168.1.4 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 45.1.1.4 255.255.255.0 # interface GigabitEthernet0/0/2 ip address 46.1.1.4 255.255.255.0 # interface LoopBack0 ip address 4.4.4.4 255.255.255.255 # ospf 100 router-id 4.4.4.4 area 0.0.0.0 network 4.4.4.4 0.0.0.0 network 45.1.1.0 0.0.0.255 network 46.1.1.0 0.0.0.255 network 192.168.1.0 0.0.0.255 # AR5： # interface GigabitEthernet0/0/0 ip address 45.1.1.5 255.255.255.0 ospf cost 1 # interface GigabitEthernet0/0/1 ip address 57.1.1.5 255.255.255.0 ospf cost 2 # ospf 100 router-id 5.5.5.5 area 0.0.0.0 network 45.1.1.0 0.0.0.255 network 57.1.1.0 0.0.0.255 # AR6： # interface GigabitEthernet0/0/0 ip address 67.1.1.6 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 46.1.1.6 255.255.255.0 ospf cost 2 # ospf 100 router-id 6.6.6.6 area 0.0.0.0 network 46.1.1.0 0.0.0.255 network 67.1.1.0 0.0.0.255 # AR7： # interface GigabitEthernet0/0/0 ip address 57.1.1.7 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 67.1.1.7 255.255.255.0 # interface LoopBack0 ip address 7.7.7.7 255.255.255.255 # ospf 100 router-id 7.7.7.7 area 0.0.0.0 network 7.7.7.7 0.0.0.0 network 57.1.1.0 0.0.0.255 network 67.1.1.0 0.0.0.255 # 参考文献 华为AR系列命令参考：OSPF配置命令 IP知识百科：OSPF 调整OSPF的选路（NetEngine AR路由器）
OSPF 是一种基于链路状态的路由协议（LS）（根据链路状态做参考），它从设计上就保证了无路由环路。OSPF 支持区域的划分，区域内部的路由器使用 SPF 最短路径算法保证了区域内部的无环路。OSPF 还利用区域间的连接规则保证了区域之间无路由环路。 OSPF 支持触发更新，能够快速检测并通告自治系统内的拓扑变化。 OSPF 可以解决网络扩容带来的问题。当网络上路由器越来越多，路由信息流量急剧增长的时候，OSPF 可以将每个自治系统划分为多个区域，并限制每个区域的范围。OSPF 这种分区域的特点，使得 OSPF 特别适用于大中型网络。OSPF 可以提供认证功能。OSPF 路由器之间的报文可以配置成必须经过认证才能进行交换。 OSPF 协议路由的计算过程可简单描述如下： (1) 建立邻接关系，过程如下： 本端设备通过接口向外发送 Hello 报文与对端设备建立邻居关系。 两端设备进行主/从关系协商和 DD 报文交换。 两端设备通过更新 LSA 完成链路数据库 LSDB 的同步。 此时，邻接关系建立成功。 (2) 路由计算 OSPF 采用 SPF（Shortest Path First）算法计算路由，可以达到路由快速收敛的目的。 建立邻接关系 在上述邻居状态机的变化中，有两处决定是否建立邻接关系： 当与邻居的双向通讯初次建立时。 当网段中的 DR 和 BDR 发生变化时。 OSPF 在不同网络类型中，OSPF 邻接关系建立的过程不同，分为广播网络，NBMA 网络，点到点/点到多点网络。 在广播网络中建立 OSPF 邻接关系 广播链路邻接关系建立过程如图1所示，在广播网络中，DR、BDR 和网段内的每一台路由器都形成邻接关系，但 DR other 之间只形成邻居关系。 图1：在广播网络中建立 OSPF 邻接关系 如图1所示，在广播网络中建立OSPF邻接关系的过程如下： (1) 建立邻居关系 RouterA 的一个连接到广播类型网络的接口上激活了 OSPF 协议，并发送了一个 Hello 报文（使用组播地址 224.0.0.5）。此时，RouterA 认为自己是 DR 路由器（DR=1.1.1.1），但不确定邻居是哪台路由器（Neighbors Seen=0）。 RouterB 收到 RouterA 发送的 Hello 报文后，发送一个 Hello 报文回应给 RouterA，并且在报文中的 Neighbors Seen 字段中填入 RouterA 的 Router ID（Neighbors Seen=1.1.1.1），表示已收到 RouterA 的 Hello 报文，并且宣告 DR 路由器是 RouterB（DR=2.2.2.2），然后 RouterB 的邻居状态机置为 Init。 RouterA 收到 RouterB 回应的 Hello 报文后，将邻居状态机置为 2-way 状态，下一步双方开始发送各自的链路状态数据库。 @font-face { font-family: 'iconfont'; /* Project id 4126433 */ src: url('https://at.alicdn.com/t/c/font_4126433_zdrdm4lzl3q.woff2?t=1690171880267') format('woff2'), url('https://at.alicdn.com/t/c/font_4126433_zdrdm4lzl3q.woff?t=1690171880267') format('woff'), url('https://at.alicdn.com/t/c/font_4126433_zdrdm4lzl3q.ttf?t=1690171880267') format('truetype'); } .iconfont{ font-family:"iconfont" !important; font-size:25px;font-style:normal; -webkit-font-smoothing: antialiased; -webkit-text-stroke-width: 0.2px; -moz-osx-font-smoothing: grayscale; }  说明 在广播网络中，两个接口状态是 DR Other 的路由器之间将停留在此步骤。 (2) 主/从关系协商、DD 报文交换 RouterA首先发送一个 DD 报文，宣称自己是 Master（MS=1），并规定序列号 Seq=X。I=1 表示这是第一个 DD 报文，报文中并不包含 LSA 的摘要，只是为了协商主从关系。M=1 说明这不是最后一个报文。为了提高发送的效率，RouterA 和RouterB 首先了解对端数据库中哪些 LSA 是需要更新的，如果某一条 LSA 在 LSDB 中已经存在，就不再需要请求更新了。为了达到这个目的，RouterA 和 RouterB 先发送 DD 报文，DD 报文中包含了对 LSDB 中 LSA 的摘要描述（每一条摘要可以唯一标识一条 LSA）。为了保证在传输的过程中报文传输的可靠性，在 DD 报文的发送过程中需要确定双方的主从关系，作为 Master 的一方定义一个序列号 Seq，每发送一个新的 DD 报文将 Seq 加一，作为 Slave 的一方，每次发送 DD 报文时使用接收到的上一个 Master 的 DD 报文中的 Seq。 RouterB 在收到 RouterA 的 DD 报文后，将 RouterA 的邻居状态机改为 Exstart，并且回应了一个 DD 报文（该报文中同样不包含 LSA 的摘要信息）。由于 RouterB 的 Router ID 较大，所以在报文中 RouterB 认为自己是 Master，并且重新规定了序列号 Seq=Y。 RouterA 收到报文后，同意了 RouterB 为 Master，并将 RouterB 的邻居状态机改为 Exchange。RouterA 使用 RouterB 的序列号 Seq=Y 来发送新的 DD 报文，该报文开始正式地传送 LSA 的摘要。在报文中 RouterA 将 MS=0，说明自己是 Slave。 RouterB 收到报文后，将 RouterA 的邻居状态机改为 Exchange，并发送新的 DD 报文来描述自己的 LSA 摘要，此时 RouterB 将报文的序列号改为 Seq=Y+1。 上述过程持续进行，RouterA 通过重复 RouterB 的序列号来确认已收到 RouterB 的报文。RouterB 通过将序列号 Seq 加 1 来确认已收到 RouterA 的报文。当 RouterB 发送最后一个 DD 报文时，在报文中写上 M=0。 (3) LSDB 同步（LSA 请求、LSA 传输、LSA 应答） RouterA 收到最后一个 DD 报文后，发现 RouterB 的数据库中有许多 LSA 是自己没有的，将邻居状态机改为 Loading 状态。此时 RouterB 也收到了 RouterA 的最后一个 DD 报文，但 RouterA 的 LSA，RouterB 都已经有了，不需要再请求，所以直接将 RouterA 的邻居状态机改为 Full 状态。 RouterA 发送 LSR 报文向 RouterB 请求更新 LSA。RouterB 用 LSU 报文来回应 RouterA 的请求。RouterA 收到后，发送 LSAck 报文确认。 上述过程持续到 RouterA 中的 LSA 与 RouterB 的 LSA 完全同步为止，此时 RouterA 将 RouterB 的邻居状态机改为 Full 状态。当路由器交换完 DD 报文并更新所有的 LSA 后，此时邻接关系建立完成。 在 NBMA 网络中建立 OSPF 邻接关系 NBMA 网络和广播网络的邻接关系建立过程只在交换 DD 报文前不一致，如图2中的蓝色标记。在 NBMA 网络中，所有路由器只与 DR 和 BDR 之间形成邻接关系。 图2：在 NBMA 网络中建立 OSPF 邻接关系 如图2所示，在NBMA网络中建立OSPF邻接关系的过程如下： (1) 建立邻居关系 RouterB 向 RouterA 的一个状态为 Down 的接口发送 Hello 报文后，RouterB 的邻居状态机置为 Attempt。此时，RouterB 认为自己是 DR 路由器（DR=2.2.2.2），但不确定邻居是哪台路由器（Neighbors Seen=0）。 RouterA 收到 Hello 报文后将邻居状态机置为 Init，然后再回复一个Hello 报文。此时，RouterA 同意 RouterB 是 DR 路由器（DR=2.2.2.2），并且在 Neighbors Seen 字段中填入邻居路由器的 Router ID（Neighbors Seen=2.2.2.2）。  说明 在 NBMA 网络中，两个接口状态是 DR Other 的路由器之间将停留在此步骤。 (2) 主/从关系协商、DD 报文交换过程同广播网络的邻接关系建立过程。 (3) LSDB 同步（LSA 请求、LSA 传输、LSA 应答）过程同广播网络的邻接关系建立过程。 在点到点/点到多点网络中建立 OSPF 邻接关系 在点到点/点到多点网络中，邻接关系的建立过程和广播网络一样，唯一不同的是不需要选举 DR 和 BDR，DD 报文是单播发送的。 路由计算 OSPF 采用 SPF（Shortest Path First）算法计算路由，可以达到路由快速收敛的目的。 OSPF 协议使用链路状态通告 LSA 描述网络拓扑，即有向图。Router LSA 描述路由器之间的链接和链路的属性。路由器将 LSDB 转换成一张带权的有向图，这张图便是对整个网络拓扑结构的真实反映。各个路由器得到的有向图是完全相同的。如图3所示。 图3：由 LSDB 生成带权有向图 每台路由器根据有向图，使用 SPF 算法计算出一棵以自己为根的最短路径树，这棵树给出了到自治系统中各节点的路由。如图4所示。 图4：最小生成树 当 OSPF 的链路状态数据库 LSDB 发生改变时，需要重新计算最短路径，如果每次改变都立即计算最短路径，将占用大量资源，并会影响路由器的效率，通过调节 SPF 的计算间隔时间，可以抑制由于网络频繁变化带来的占用过多资源。缺省情况下，SPF 时间间隔为 5 秒钟。 具体的计算过程如下： 1.计算区域内路由 Router LSA 和 Network LSA 可以精确的描述出整个区域内部的网络拓扑，根据 SPF 算法，可以计算出到各个路由器的最短路径。根据 Router LSA 描述的与路由器的网段情况，得到了到达各个网段的具体路径。  说明 在计算过程中，如果有多条等价路由，SPF 算法会将所有等价路径都保留在 LSDB 中。 2.计算区域外路由 从一个区域内部看，相邻区域的路由对应的网段好像是直接连接在 ABR 上，而到 ABR 的最短路径已经在上一过程中计算完毕，所以直接检查 Network Summary LSA，就可以很容易得到这些网段的最短路径。另外，ASBR 也可以看成是连接在 ABR 上，所以 ASBR 的最短路径也可以在这个阶段计算出来。  说明 如果进行 SPF 计算的路由器是 ABR，那么只需要检查骨干区域的 Network Summary LSA。 3.计算自治系统外路由 由于自治系统外部的路由可以看成是直接连接在 ASBR 上，而到 ASBR 的最短路径在上一过程中已经计算完毕，所以逐条检查 AS External LSA 就可以得到到达各个外部网络的最短路径。 本文转自华为官网中NetEngine AR 产品文档中OSPF原理描述（NetEngine AR路由器）
静态路由是一种需要管理员手工配置的特殊路由，使数据包按照预定的路径传送到指定的目的网络。当不能通过动态路由协议学到某些目标网络的路由时，配置静态路由就会显得十分重要。当然，在不同网络环境中它有不同的目的： 当网络结构比较简单时，只需配置静态路由就可以使网络正常工作。 在复杂网络环境中，配置静态路由可以改进网络的性能，并可为重要的应用保证带宽。 静态路由可在VPN实例中使用，主要用于VPN路由的管理。 静态路由比动态路由使用更少的带宽，并且不占用CPU资源来计算和分析路由更新。但是当网络发生故障或者拓扑发生变化后，静态路由不会自动更新，必须手动重新配置。静态路由有5个主要的参数：目的地址和掩码、出接口和下一跳、优先级。 静态路由优先级 静态路由如果不配置优先级，默认优先级为 60。对于不同的静态路由，可以为它们配置不同的优先级，优先级数字越小优先级越高。配置到达相同目的地的多条静态路由，如果指定相同优先级，则可实现负载分担；如果指定不同优先级，则可实现路由备份。 命令功能 ip route-static：命令用来配置单播静态路由。 undo ip route-static：命令用来删除配置的单播静态路由。 缺省情况下，系统没有配置任何单播静态路由。 示例 格式：目的IP 掩码或掩码长度 下一跳地址（不建议使用出接口） <Huawei> system-view [Huawei] ip route-static 202.3.7.23 24 111.222.121.212 应用场景 当网络结构比较简单时，只需配置静态路由就可以使网络正常工作。当路由器不能使用动态路由协议或者不能建立到达目的网络的路由时，也可以使用静态路由。静态路由只有获取了正确的下一跳才能指导转发，如果获取不到，静态路由无效。 简单示例 不同网段的路由器相连，不配置动态路由协议，使 PC4 可达 LT 和 YD。若假设 LT 和 YD 都可达某个网站（112.3.31.147），要求 LT 为首选，YD 为备选。 配置思路 配置各路由器接口的 IP 地址，实现直连路由。 各台路由器上配置 IP 静态路由及缺省路由，实现不配置动态路由协议，使 PC4 可达 LT 和 YD。 为方便实验，LT 和 YD 设置 LoopBack 地址为 112.3.31.147/24 。 在 GW 上设置通往 YD 的默认路由优先级为 62，使 LT 作为主路径。 示例图（各接口 IP 以提前配置完成）如下： (1) 配置LT和YD的静态路由 LT： [LT]ip route-static 192.168.1.0 255.255.255.0 56.1.1.6 YD： [YD]ip route-static 192.168.1.0 255.255.255.0 67.1.1.6 (2) 配置路由器的环回地址（LoopBack） LT 和 YD 配置命令一样（这里以 LT 为例，命令已简写） <LT>sy Enter system view, return user view with Ctrl+Z. [LT]int lo 0 [LT-LoopBack0]ip add 112.3.31.147 24 [LT-LoopBack0]q [LT]dis ip int br .... Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 56.1.1.5/25 up up GigabitEthernet0/0/1 unassigned down down GigabitEthernet0/0/2 unassigned down down LoopBack0 112.3.31.147/24 up up(s) NULL0 unassigned up up(s) (3) 配置 GW 的两条（主、备）默认路由并设置优先级 [GW]ip route-static 0.0.0.0 0 56.1.1.5 [GW]ip route-static 0.0.0.0 0 67.1.1.5 preference 62 示例验证 在 GW 上使用 tracert 跟踪 可以很清楚的发现路由现在优先选择 56.1.1.5 这条路径。我们继续在 GW 上查看目前的路由表，看到优先级为默认的 60，可以更加确定目前的路由选择的是主路径。 在 LT 上关闭 g0/0/0 接口 为使结果更加明显，我们直接在 PC4 上进行实验： PC>ping 112.3.31.147 -t 接着我们进入 LT 的 g0/0/0 关闭此接口： [LT]int g0/0/0 [LT-GigabitEthernet0/0/0]shutdown 通过反馈的日志，此时端口已经被关闭，然后我们回到刚刚 ping 的界面。 可以观察到数据包发送请求超时一段时间后，又重新发送。我们继续查看目前GW的路由表： 优先级已经变成了我们刚刚设置的 62，走的是 67.1.1.5 这条线路。对比第一次的路由表可以发现当前路由表已完成线路的切换选择了备用线路。 相关配置 LT： # interface GigabitEthernet0/0/0 ip address 56.1.1.5 255.255.255.128 # interface LoopBack0 ip address 112.3.31.147 255.255.255.0 # ip route-static 192.168.1.0 255.255.255.0 56.1.1.6 # YD： # interface GigabitEthernet0/0/0 ip address 67.1.1.5 255.255.255.0 # interface LoopBack0 ip address 112.3.31.147 255.255.255.0 # ip route-static 192.168.1.0 255.255.255.0 67.1.1.6 # GW: # interface GigabitEthernet0/0/0 ip address 56.1.1.6 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 67.1.1.6 255.255.255.0 # interface GigabitEthernet0/0/2 ip address 192.168.1.1 255.255.255.0 # ip route-static 0.0.0.0 0.0.0.0 56.1.1.5 ip route-static 0.0.0.0 0.0.0.0 67.1.1.5 preference 62 # 参考文献 华为AR系列命令参考：静态路由配置命令
使用 Telnet 方式，网络管理员可以简单方便的去远程管理设备。配置通过 Telnet 登录设备前，需要确保终端设备和设备之间路由可达。 命令功能 telnet 命令用来从当前设备使用Telnet协议登录到其它设备。 命令格式 基于IPv4通过Telnet协议登录到其它设备。 telnet [vpn-instance vpn-instance-name] [-a source-ip-address] host-ip [port-number] 基于IPv6通过Telnet协议登录到其它设备。 telnet ipv6 [-a source-ip-address] [vpn6-instance vpn6-instance-name] host-ipv6 [-oi interface-type interface-number] [port-number] 参数说明 使用指南 应用场景 如果网络中有一台或多台设备需要配置和管理，用户无需为每一台设备连接用户终端进行本地维护。如果已知待登录设备的IP地址，用户可以通过本命令从用户终端登录需要管理的设备，对设备进行远程配置。用户可以通过此方式在一台用户终端上维护网络中的多台设备，极大地方便了用户的操作。 在连接的过程中，可以使用“Ctrl_]”停止本端设备与远端设备的连接。 注意事项 使用telnet命令连接Telnet服务器之前，Telnet客户端和Telnet服务器之间需要在网络层互通，且Telnet服务器端的Telnet服务必须使能。 Telnet缺少安全的认证方式，而且传输过程采用TCP进行明文传输，存在安全隐患。对于安全性较高的网络，建议采用STelnet方式。 使用实例 与远端设备建立 Telnet 连接。<Huawei> telnet 192.168.1.13 使用IPv6地址与远端设备建立Telnet连接。<Huawei> telnet ipv6 ff00:2023::721 简单示例 路由器本身是三层设备，可在路由器接口上直接配置IP地址，保证同一网段即可。采用密码方式认证并启用telnet登录。 配置思路： 保证同一网段下且远程目标IP为192.168.1.1，掩码为24位 为目标路由器AR1配置密码认证（密码设为 Huawei123，连接方式为 telnet） 在AR2上操作，使用自带的 telnet 命令连接目标路由器 AR1 如下为示例图（接口IP已提前配置完成）： (1) 开启AR1上的远程管理功能 [R1]user-interface vty 0 4 [R1-ui-vty0-4]authentication-mode password Please configure the login password (maximum length 16):Huawei123 [R1-ui-vty0-4]user privilege level 3 注意： vty：Virtual Teletype Terminal，虚拟终端链路。 0 4：0是初始值， 4是结束值。表示可同时打开5个会话。 user privilege level：数字约高，级别越高，所能操作的命令也越多。 用户等级 命令等级 名称 0 0 访问级 1 0 and 1 监控级 2 0,1 and 2 配置级 3~15 0,1,2 and 3 管理级 默认为0级，管理级为3级，至于4~15是我们想让登录用户不能使用原来等级为3的命令而设置的。 (2) 在AR2上通过telnet远程登录修改AR1设备名 AR2： AR1： 回到AR1中可发现，原本R1已被改为R1-tel。 问题解决 未配置命令等级，导致远程登录后无法进行相关相应操作。 [R1]user-interface vty 0 4 [R1-ui-vty0-4]authentication-mode password Please configure the login password (maximum length 16):Huawei123 在AR1中输入上述命令后就直接在AR2中开始进行远程登录，然后无法进入系统视图，甚至连tab补全都无法实现。 回到AR1上发现未设置等级权限，导致默认命令等级为0（访问级） 于是修改命令等级为 3，再通过AR2远程登录便可实现相关操作。 相关配置 AR1： # interface GigabitEthernet0/0/0 ip address 192.168.1.1 255.255.255.0 # user-interface con 0 authentication-mode password user-interface vty 0 4 authentication-mode password user privilege level 3 set authentication password cipher %$%$b1X8@)F3x8d2~A&;UQRE,3%0g/tc2<yAmP'lmLO* d@ZB3%3,%$%$ user-interface vty 16 20 # AR2: # interface GigabitEthernet0/0/0 ip address 192.168.1.2 255.255.255.0 # 参考文献 配置通过Telnet登录设备 华为AR系列命令参考：配置用户登录命令
生成树技术背景 以太网交换网络上为了进行链路备份，通常会使用冗余链路，但是使用冗余链路会在交换网络上形成环路，并导致广播风暴以及 MAC 地址表不稳定等故障现象，从而导致用户通信质量较差，甚至通信中断。生成树协议（STP）运行以太网交换机上，为解决网络中的环路问题再网络上修剪出一颗无环的树，并在主链路出现故障后自动启用备份链路，使网络工作正常。最新的 STP 标准由 1998 年发布的 IEEE802.1D 标准文档定义。 简单来说有以下几点： 交换机单链路上行，存在单点故障，线路和设备都不具备冗余性。 任何一条链路或者设备故障，网络将面临断网。 二层环路 冗余拓扑能够解决单点故障问题。但是冗余拓扑带来了二层环路问题。实际网络环境中，经常产生二层环路从而引发网络故障。 如果为了保证网络运行的稳定性，在以太网交换网络上使用冗余链路进行了链路备份，如下图： 在使用了冗余链路后，出现了二成交换网络的环路，引发了广播风暴、MAC 地址表不稳定等问题。 1. 广播风暴 网络中若存在二层环路，一旦出现广播数据帧，这些数据帧将被交换机不断泛洪，造成广播风暴。 广播风暴对网络危害非常大，将严重消耗设备CPU资源及网络带宽，需要格外注意。 广播风暴现象：网络慢、所有指示灯高速闪烁、CPU使用率高、CLI卡顿。 2. MAC 地址表不稳定 PC 发送数据帧给 Server SW3没有目的MAC表项，于是将数据帧进行泛洪 SW1 和 SW2 都收到这个帧并学习源 MAC，同时将数据帧进一步泛洪 SW3 将从 GE0/0/1 和 GE0/0/2 都收到这个帧并学习源 MAC，更新 MAC 地址表 STP 基本概念 STP 主要用于在存在环路结构的二层网络中构建一个无环的树形的二层拓扑，协议由 IEEE802.1D 定义。 采用生成树（Spanning-tree）技术，能够在网络中存在二层环路时，通过逻辑阻塞（Block）特定端口，从而打破环路，并且在网络出现拓扑变更时及时收敛，保障网络冗余性。 防止环路 保证网络冗余性 基本术语 1. 网桥 ID（Bridge ID） 桥 ID 一共 8 个字节，由 2 个字节优先级和 6 个字节的 MAC 地址构成。 桥优先级默认为 32768，可以手工修改。 MAC 地址为交换机背板 MAC。 2. 根桥（Root Bridge） 根桥是桥 ID 最小的交换机，可以认为是树形二层拓扑的根。对于 STP 来说，网络中所有的交换机选举出一个根交换机，然后其他交换机角色和端口角色的选举，都会参考根桥的判断来进行选择。除了根桥外，网络中其余所有的交换机都称为非根交换机（Nonroot Bridge）。 3. 端口开销（Port Cost） 端口开销表示数据从该端口发送时的开销值，也即出端口的开销。STP 认为从一个端口接收数据是没有开销的。交换机的每个端口都有一个端口开销值。端口的开销和端口的带宽有关，带宽越高，开销越小。华为平台中，百兆端口的开销值为 200。 4. 路径开销（Path Cost） 路径的开销，即为该路径经过的所有端口的开销总和。 路径开销是一个端口量，是 STP/RSTP 协议用于选择链路的参考值 端口路径开销的默认值及取值范围由选定的路径开销算法决定，路径开销与端口带宽成反比。 华为设备路径开销标准有：802.1d-1998、802.1t 及私有的 legacy，默认为 802.1t 标准。 5. 根端口（Root Port） 根端口是指从一个非根交换机到根交换机总开销最小的路径所经过的本地端口。这个最小的总开销值也称为交换机的根路径开销（Root Path Cost）。 6. 端口 ID（Port Identifier） 端口 ID 是用于区分描述交换机上不同端口的，PID 只在某些情况下对选择指定端口有作用。它的定义方法有很多种。 常见的两种定义： 高 4 位是端口优先，低 12 位是端口号 高 8 位是端口编号，端口优先级默认取值为 128 7. 指定端口（Designated Port） STP 为每个网段选出一个指定端口，指定端口为每个网段转发发往根交换机方向的数据，并且转发由根交换机方向发往该网段的数据。 8. 预备端口（Alternate Potr） 既不是根端口也不是指定端口的交换机称为预备端口。预备端口不转发数据，处于阻塞状态。但被阻塞的端口仍会监听 STP 帧，以便链路出现故障后快速恢复被阻塞端口，将流量引导到保护路径上。 9. 网桥协议数据单元（BPDU） 在 STP 计算中，交换机之间需要交换信息，并利用这些信息进行 STP 的根交换机、根端口等选举。承载 STP 信息交换的报文被称为网桥协议数据单元（Bridge Protocol Data Unit，BPDU）报文。 STP 选举操作 1. 根桥选举 确定一个根桥(Root Bridge)，选优先级和 MAC 地址最小的网桥。 2. 根端口选举 确定其他网桥的根端口(Root Port)，非根桥的端口到根桥最近的端口。 3. 指定端口选举 每个段选择一个指定端口(Designated Port)，先选指定桥，指定桥上为指定端口。 4. 阻塞预备端口 选出非指定端口(NonDesignated Port)。 生成树的端口状态 STP 通过根端口、指定端口、预备端口的选举，构建了无环的树形拓扑结构，各端口的状态描述总结如下： 端口角色 描述 Root Port 根端口：所在交换机上离根交换机最近的端口，处于转发状态 Designated Port 指定端口：转发所连接的网段发往根交换机方向的数据和从交换机方向发往所连接的网段的数据 Alternate Port 预备端口：不向所连接网段转发任何数据 五种端口状态 STP 端口状态迁移图 端口初始化或者使能，进入阻塞状态 端口被选为根端口或者指定端口，进入监听状态 端口的临时状态停留时间到，进入下一状态 （学习状态或者转发状态)端口被选为根端口或指定端口 端口不再是根端口、指定端口或者指定状态，进入阻塞状态 端口被禁用或者链路失效 BDPU 报文的两种类型 STP 生成树的计算，根端口、指定端口的选举，都是借助于 BPDU 报文来进行信息的传递和交换的。在向整网泛洪 STP 拓扑信息的过程中，会涉及两种 BPDU ：配置 BPDU 和 TCN BPDU。 BPDU 报文采用 IEEE 802.3 的封装格式，以多播的方式发送，多播地址为 01-80-c2-00-00-00。默认每 2s 发送一个 BPDU 报文。 配置BPDU 包含了桥 ID，路径开销，端口 ID 等参数。 TCN BPDU 下游交换机感知到拓扑发生变化时向上游交换机发送拓扑变化通知。用以快速刷新 MAC 地址表。 BPDU 参数含义 几种生成树协议 生成树协议：802.1d STP （慢，拓扑收敛需要30-50s） 快速生成树协议：802.1w RSTP （快，6s内完成收敛） 多生成树协议：802.1s MSTP （实现多个 VLAN 负载均衡） 参考文献 STP基本概念 华为网络篇 BPDU报文格式