作为一名在ICT行业摸爬滚打多年的网络工程师,我深知华为网络设备在企业级网络中的重要性。从早期的Quidway系列到现在的CloudEngine交换机,华为设备凭借其稳定性和性价比,已经成为国内企业网络建设的首选品牌。这份指南将分享我在实际项目中积累的配置模板和排障方法论,特别适合刚接触华为设备的网工同行参考。
不同于官方文档的理论说明,这里都是经过实战验证的"生存指南"。比如在配置ACL时,官方手册可能不会告诉你华为设备的策略规则存在隐式的deny any,这个细节就曾让我在项目现场排查了整整两小时。本指南会重点呈现这类"血泪经验",帮助大家少走弯路。
首次接触华为设备时,建议先完成以下基础配置(以S5700系列交换机为例):
bash复制<HUAWEI> system-view
[HUAWEI] sysname SW1 # 修改设备名称
[SW1] interface vlanif 1
[SW1-Vlanif1] ip address 192.168.1.1 24 # 管理IP配置
[SW1-Vlanif1] quit
[SW1] user-interface vty 0 4
[SW1-ui-vty0-4] authentication-mode aaa # 启用AAA认证
[SW1-ui-vty0-4] protocol inbound ssh # 强制SSH登录
[SW1-ui-vty0-4] quit
[SW1] aaa
[SW1-aaa] local-user admin password cipher Huawei@123 # 创建本地用户
[SW1-aaa] local-user admin service-type ssh
[SW1-aaa] local-user admin privilege level 15
[SW1-aaa] quit
关键提示:华为设备默认密码策略要求包含大小写字母、数字和特殊字符,且长度不少于8位。如果密码过于简单,系统会拒绝执行。
建议在设备上预先部署这些诊断工具:
bash复制[SW1] info-center enable # 开启信息中心
[SW1] info-center loghost 192.168.1.100 # 配置日志服务器
[SW1] ntp-service unicast-server 120.25.115.20 # 配置NTP时间同步
[SW1] cpu-usage threshold 80 # 设置CPU告警阈值
[SW1] memory-usage threshold 80 # 设置内存告警阈值
华为设备的VLAN配置有其独特之处,特别是在Hybrid端口模式下:
bash复制[SW1] vlan batch 10 20 30 # 批量创建VLAN
[SW1] interface gigabitethernet 0/0/1
[SW1-GigabitEthernet0/0/1] port link-type hybrid # 设置为混合端口
[SW1-GigabitEthernet0/0/1] port hybrid pvid vlan 10 # 设置默认VLAN
[SW1-GigabitEthernet0/0/1] port hybrid untagged vlan 10 # 允许不带标签通过
[SW1-GigabitEthernet0/0/1] port hybrid tagged vlan 20 30 # 允许带标签通过
常见问题排查:
display port vlan检查配置mac-limit maximum 50调整reset counters interface清除统计信息后重新测试华为OSPF配置与思科有显著差异,重点注意这些参数:
bash复制[SW1] ospf 1 router-id 1.1.1.1
[SW1-ospf-1] area 0
[SW1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[SW1-ospf-1] bandwidth-reference 1000 # 调整参考带宽(单位Mbps)
[SW1-ospf-1] timer spf 5 10 # 设置SPF计算间隔
[SW1-ospf-1] default cost 10 # 设置默认开销值
优化建议:
display ospf peer查看邻居状态opaque-capability enable支持TE扩展华为ACL的执行顺序与思科相反(从上到下匹配):
bash复制[SW1] acl number 3000 # 创建高级ACL
[SW1-acl-adv-3000] rule 5 permit ip source 192.168.1.100 0 destination 10.1.1.0 0.0.0.255
[SW1-acl-adv-3000] rule 10 deny ip source any destination any
[SW1-acl-adv-3000] quit
[SW1] traffic classifier test operator or # 创建流分类
[SW1-classifier-test] if-match acl 3000
[SW1-classifier-test] quit
[SW1] traffic behavior test # 创建流行为
[SW1-behavior-test] permit
[SW1-behavior-test] quit
[SW1] traffic policy test # 创建流策略
[SW1-trafficpolicy-test] classifier test behavior test
[SW1-trafficpolicy-test] quit
[SW1] interface gigabitethernet 0/0/24
[SW1-GigabitEthernet0/0/24] traffic-policy test inbound # 应用策略
重要经验:华为ACL默认隐藏了deny any规则,如果没显式配置permit规则会导致所有流量被丢弃,这是与思科最大的区别之一。
华为设备SSH服务需要特别加固:
bash复制[SW1] stelnet server enable # 启用STelnet
[SW1] ssh user admin authentication-type password # 设置认证方式
[SW1] ssh user admin service-type stelnet
[SW1] rsa local-key-pair create # 生成RSA密钥
[SW1] ssh server cipher aes256_ctr # 强制AES加密
[SW1] ssh server hmac sha2-256 # 设置HMAC算法
[SW1] ssh server key-exchange dh_group14_sha1 # 密钥交换算法
[SW1] ssh server timeout 60 # 超时设置
[SW1] ssh server authentication-retries 3 # 认证重试次数
按照OSI模型逐层排查:
物理层:
display interface brief 查看端口状态display transceiver verbose 检查光模块信息display elabel查看电子标签数据链路层:
display mac-address 查看MAC表display lldp neighbor brief 查看邻居信息display stp brief 检查生成树状态网络层:
display ip routing-table 查看路由表display arp all 检查ARP表ping -a source-ip dest-ip 指定源IP测试华为设备日志关键字段说明:
code复制%%01IFNET/4/LINK_UPDOWN(l)[42]:Line protocol on the interface GigabitEthernet0/0/1 has changed to down.
常用日志过滤命令:
bash复制<SW1> terminal monitor # 开启实时监控
<SW1> terminal logging # 开启日志显示
<SW1> display logbuffer level 4 # 显示4级及以上日志
<SW1> display trapbuffer # 显示陷阱缓冲区
现象:BGP邻居频繁up/down
排查步骤:
display bgp peer查看状态变化时间display interface检查物理端口display cpu-usage检查CPU负载display bgp peer verbose查看具体错误最终发现是MTU不匹配导致:
bash复制[SW1] interface gigabitethernet 0/0/1
[SW1-GigabitEthernet0/0/1] mtu 9216 # 调整MTU值
现象:同设备不同VLAN无法互通
排查步骤:
display vlan确认VLAN存在display ip interface brief检查VLANIF状态display current-configuration interface查看端口配置display arp检查ARP学习解决方案:
bash复制[SW1] interface vlanif 10
[SW1-Vlanif10] arp-proxy enable # 启用ARP代理
华为设备配置存档建议流程:
bash复制<SW1> save SW1_config.cfg # 保存当前配置
<SW1> ftp 192.168.1.100 # 连接到FTP服务器
ftp> put SW1_config.cfg # 上传配置文件
ftp> bye
<SW1> reset saved-configuration # 清除启动配置(谨慎使用)
<SW1> reboot # 重启设备
安全升级流程示例:
bash复制<SW1> dir # 查看存储空间
<SW1> delete flash:/old_system.cc # 删除旧系统文件
<SW1> copy ftp://admin:password@192.168.1.100/new_system.cc flash:/
<SW1> startup system-software new_system.cc # 设置下次启动文件
<SW1> reboot # 重启生效
升级后验证:
bash复制<SW1> display version # 查看版本信息
<SW1> display device # 检查硬件状态
华为链路聚合的独特算法:
bash复制[SW1] interface eth-trunk 1
[SW1-Eth-Trunk1] mode lacp-static # LACP模式
[SW1-Eth-Trunk1] load-balance dst-ip # 基于目的IP哈希
[SW1-Eth-Trunk1] trunkport gigabitethernet 0/0/1 to 0/0/4 # 添加成员端口
支持多种哈希模式:
华为专有的链路冗余协议:
bash复制[SW1] smart-link group 1
[SW1-smlk-group1] protected-vlan reference-instance 0
[SW1-smlk-group1] port gigabitethernet 0/0/1 master
[SW1-smlk-group1] port gigabitethernet 0/0/2 slave
[SW1-smlk-group1] flush enable control-vlan 4094 # 启用刷新报文
监控命令:
bash复制display smart-link group 1
display smart-link status
通过NETCONF管理华为设备:
python复制from ncclient import manager
def huawei_netconf(host, user, password):
with manager.connect(
host=host,
port=830,
username=user,
password=password,
hostkey_verify=False,
device_params={'name':'huawei'},
timeout=30
) as m:
# 获取接口配置
filter = '''
<filter>
<ifm xmlns="http://www.huawei.com/netconf/vrp/huawei-ifm">
<interfaces>
<interface>
<ifName>GigabitEthernet0/0/1</ifName>
</interface>
</interfaces>
</ifm>
</filter>
'''
reply = m.get_config(source='running', filter=filter)
print(reply)
使用Expect脚本自动备份配置:
bash复制#!/usr/bin/expect
set timeout 20
set host [lindex $argv 0]
set user [lindex $argv 1]
set pass [lindex $argv 2]
spawn ssh $user@$host
expect "*password*" {send "$pass\r"}
expect "*>" {send "save backup.cfg\r"}
expect "*>" {send "ftp 192.168.1.100\r"}
expect "*Name*" {send "ftpuser\r"}
expect "*Password*" {send "ftppass\r"}
expect "*ftp*" {send "put backup.cfg\r"}
expect "*ftp*" {send "bye\r"}
expect "*>" {send "quit\r"}
华为特有的流量采样功能:
bash复制[SW1] traffic sampler test mode fixed-packets 100 # 每100个包采样1个
[SW1] traffic classifier test operator or
[SW1-classifier-test] if-match any
[SW1-classifier-test] quit
[SW1] traffic behavior test
[SW1-behavior-test] sampler test
[SW1-behavior-test] quit
[SW1] traffic policy test
[SW1-trafficpolicy-test] classifier test behavior test
[SW1-trafficpolicy-test] quit
[SW1] interface gigabitethernet 0/0/1
[SW1-GigabitEthernet0/0/1] traffic-policy test inbound
查看采样结果:
bash复制display traffic policy statistics interface gigabitethernet 0/0/1 inbound
调整队列缓冲区防止丢包:
bash复制[SW1] interface gigabitethernet 0/0/1
[SW1-GigabitEthernet0/0/1] qos queue 0 buffer-size 50 # 设置队列0缓冲区为50%
[SW1-GigabitEthernet0/0/1] qos queue 1 buffer-size 30
[SW1-GigabitEthernet0/0/1] qos queue 2 buffer-size 10
[SW1-GigabitEthernet0/0/1] qos queue 3 buffer-size 10
查看队列状态:
bash复制display qos queue statistics interface gigabitethernet 0/0/1