简介:《华为路由器交换机VLAN配置实例.pdf》是一份面向网络初学者和华为设备运维人员的配置案例文档。内容以4台PC、华为R2621路由器与S3026e交换机组成的小型网络为环境,完整演示了VLAN从规划到落地的过程:包括PC的IP与网关地址分配、交换机上创建VLAN2和VLAN3并划分端口、路由器接口地址设置、防火墙默认策略,以及通过ACL规则控制不同VLAN间互访。文中给出了逐条命令和简要注释,读者可按步骤实操验证,并能理解虚拟局域网与物理网段之间的路由与安全控制原理。资源为单个PDF文件,大小仅141KB,体积小巧、便于下载和随时查阅。目前已有1568人学习下载,适合华为认证备考者、网络专业学生以及刚接触VLAN配置的工程师参考学习。
1. 华为路由器交换机VLAN配置实例:四台PC、两个VLAN、一台路由器如何打通
一份PDF,四台PC,两台VLAN,一只R2621路由器,再加一台S3026e交换机——这个华为VLAN配置实例解决的是很多人第一次做VLAN实验时绕不过去的坎:VLAN能隔离广播域,但隔离完就不通了,为什么?因为跨VLAN通信必须有路由,而文档给的关键答案是:把两个VLAN的网关分别放在路由器Ethernet0和Ethernet1上,再用防火墙策略和ACL决定谁能访问谁。适合刚上手华为设备的人、准备相关认证的人、以及想在eNSP里把VLAN间通信实验做扎实的人。别被“实例”两个字骗了,把这份配置弄懂,等于同时搞通了接口IP、VLAN划分、ACL和默认拒绝四种基础操作。
2. 拓扑与IP规划:4台PC、2个网关背后的选型逻辑
2.1 PC的IP与网关对应关系
先看这张网络中最容易被忽略、其实最容易出错的部分:IP规划。四台PC的地址都在192.168.1.0/24网段,掩码统一是255.255.255.0,但网关被拆成了两个:PC1和PC2的网关是192.168.1.5,PC3和PC4的网关是192.168.1.6。
| 设备 | IP地址 | 子网掩码 | 网关 | 所属VLAN | 对应路由器接口 |
|---|---|---|---|---|---|
| PC1 | 192.168.1.1 | 255.255.255.0 | 192.168.1.5 | VLAN2 | Ethernet0 |
| PC2 | 192.168.1.2 | 255.255.255.0 | 192.168.1.5 | VLAN2 | Ethernet0 |
| PC3 | 192.168.1.3 | 255.255.255.0 | 192.168.1.6 | VLAN3 | Ethernet1 |
| PC4 | 192.168.1.4 | 255.255.255.0 | 192.168.1.6 | VLAN3 | Ethernet1 |
这里有两个关键点。第一个:PC1和PC3虽然IP同在一个C段,但PC1去ping PC3时,会发现目标和自己“同网段”,于是直接发ARP请求,而交换机的端口已经被划分到不同VLAN里,二层广播被隔离,ARP根本到不了PC3。这就是VLAN实验里最常见的“同网段也ping不通”现象,不是配置错了,而是VLAN设计本来就是这个意图。第二个:网关地址决定了流量往哪走。PC1要把数据发到VLAN3里的PC3,只能把报文交给默认网关192.168.1.5,也就是路由器的Ethernet0口,由路由器来路由到192.168.1.6所对应的Ethernet1口。
所以在动手配置交换机之前,先把这张表写清楚,后面每配一条命令都能对得上。我一般会建议把PC的IP、VLAN ID、路由器接口做成一张对应表贴在旁边,配置的时候不容易乱。很多人在eNSP里复现这个场景时翻车,翻车原因不是命令敲错,而是PC的网关填反了。
2.2 为什么用两个路由器接口而不是子接口
这份文档里路由器用的是两个物理接口,每个接口承担一个VLAN的网关。这是最直观的做法,也是理解成本最低的做法:Ethernet0管VLAN2,Ethernet1管VLAN3,互不干扰,配置和排错都非常直白。PC1的网关填Ethernet0的地址,PC3的网关填Ethernet1的地址,逻辑上完全对应。
另一种常见方案是单臂路由:路由器只用一个物理接口,通过trunk接到交换机,再在路由器上划分子接口,每个子接口对应一个VLAN并封装802.1Q tag。单臂路由的好处是省接口、省链路,一台只有两个以太网口的路由器也能管十几个VLAN;代价是理解门槛高,需要同时理解VLAN tag、trunk链路和子接口封装,而且所有跨VLAN流量都挤在一根物理链路上,带宽压力大。
文档选双物理接口方案,不是因为单臂路由不好,而是因为这个实验的核心是讲清楚“VLAN间通信需要路由”这件事。用两个物理接口,你可以直接看到每个VLAN的网关落在哪个接口上,不需要在脑子里把封装和tag绕一圈。对于刚接触跨VLAN通信的人来说,这是最短路径。
2.3 这套方案的适用边界
华为R2621是早期AR系列的前身,典型的企业分支路由器,两个以太网口加若干串口,定位就是小规模组网和拨号接入。S3026e是二层交换机,支持VLAN划分但不支持VLANIF三层接口,所以必须外接路由器才能实现VLAN间通信。
这套方案适合两类场景:一是学习实验,在eNSP或真机上把VLAN、网关、ACL三者关系打通;二是极小的分支网络,比如一个门店两个部门,用一台路由器和一台二层交换机解决问题。但它的扩展性边界很明显:每加一个VLAN就要多占一个路由器接口,接口一旦耗尽就得换三层交换机或者改单臂路由。所以在现网规划里,如果VLAN数量超过三四个,我一般会直接考虑三层交换机,用VLANIF接口做网关,后面第6章会说具体做法。
3. 交换机侧配置:VLAN划分与端口成员操作
3.1 进入系统视图并创建VLAN
交换机侧的动作其实只有三步:创建VLAN、把端口放进VLAN、确认端口成员关系。S3026e作为二层交换机,不需要配置IP地址,也不需要配路由,它在这里的角色就是一个VLAN隔离设备,把4台PC分成两个二层广播域。
<Quidway>sys // 进入系统视图,等价于 system-view [Quidway]vlan 2 // 创建VLAN2,若已存在则直接进入VLAN视图 [Quidway-vlan2]port e0/1 to e0/8 // 把ethernet0/1到ethernet0/8共8个端口加入VLAN2 [Quidway-vlan2]quit // 退回系统视图 [Quidway]vlan 3 // 创建VLAN3 [Quidway-vlan3]port e0/9 to e0/16 // 把ethernet0/9到ethernet0/16共8个端口加入VLAN3 [Quidway-vlan3]quit先解释“sys”这条命令。在华为VRP系统中,登录后默认处于用户视图,提示符是尖括号 ,这个视图下只能看不能改。输入sys或system-view后进入系统视图,提示符变成方括号[Quidway],这时才能创建VLAN、配置端口。很多初学者拿着文档敲命令,卡在第一步就是因为没进系统视图,敲vlan 2报错“Unrecognized command”。
然后看vlan 2和port这两条命令的组合逻辑。vlan 2创建并进入VLAN视图,接着port e0/1 to e0/8是批量添加端口,“to”关键字支持连续端口范围,比一条条敲port e0/1、port e0/2高效得多。需要注意端口命名在VRP里有缩写形式,e0/1等价于ethernet0/1,文档里用的是交换机上的物理端口编号。
最后quit退回系统视图,再创建VLAN3。这个习惯很重要:在VLAN视图下直接敲vlan 3,VRP并不总是接受,稳妥做法是先quit再创建下一个VLAN。早期VRP版本在VLAN视图下切换到另一个VLAN视图,命令解释逻辑会让新手绕晕。
3.2 验证VLAN划分结果
配置完成后一定要验证。VRP里最常用的两条查询命令是display vlan和display current-configuration。
[Quidway]display vlan // 查看所有VLAN及其端口成员,重点确认VLAN2里是e0/1到e0/8,VLAN3里是e0/9到e0/16 [Quidway]display current-configuration // 查看当前生效的全部配置,包括VLAN、端口、系统参数display vlan会直接列出VLAN ID、状态和成员端口,一眼能看出端口有没有放错VLAN。display current-configuration则会显示完整的运行配置,不只是VLAN相关的内容。我习惯先display vlan确认VLAN成员,再display current-configuration确认没有多余的残留配置。
这一步花不了两分钟,但能省掉后面排错的大量时间。端口放错VLAN是这种实验里最隐蔽的问题之一,因为设备大概率能正常启动,ping不通时才有人意识到是交换机端口归属错了。
提示:改完配置后别忘了保存。华为设备配置保存在内存里,不执行save命令的话,重启后所有配置都会丢失。保存命令是save,系统会询问是否确认,默认回车即可。
3.3 默认VLAN1与access端口的理解
这里有一个隐藏前提:S3026e上所有端口默认都属于VLAN1,并且VLAN1不能删除。换句话说,你在VLAN2里添加e0/1到e0/8,本质上是把这8个端口从VLAN1挪到了VLAN2,端口和VLAN的从属关系是一对一的,这就是access端口的行为特征。
Access端口只允许属于一个VLAN,从该端口进入的报文不打VLAN tag,出方向也不带tag。本实验中4台PC全部接在access端口上,所以PC侧不需要做任何VLAN配置,插上就能用,这也是为什么文档里只配置交换机而没有要求PC装任何802.1Q驱动。对于二层交换机上的普通PC接入场景,access端口就是标准答案;trunk端口是给交换机之间或交换机到路由器子接口这种需要承载多个VLAN的链路用的,本实验没有trunk需求。
还要理解一个细节:VLAN2和VLAN3分别占用了8个端口,但实际只有4台PC在用,其余端口处于空闲状态。这样配置的好处是后续加PC不需要再改端口成员,直接插到对应VLAN的空闲端口上就能接入。如果只分配4个端口,后续加设备就要重新改配置,反而麻烦。
4. 路由器侧配置:接口IP、防火墙默认拒绝与ACL规则
4.1 配置接口IP作为VLAN网关
交换机划分好VLAN之后,VLAN2和VLAN3之间还是不通的,因为二层隔离已经生效。现在轮到路由器出场:给Ethernet0配上192.168.1.5,给Ethernet1配上192.168.1.6,这两个地址就是前面IP规划表里的网关。
[Router]interface ethernet0 [Router-Ethernet0]ip address 192.168.1.5 255.255.255.0 // 指定Ethernet0接口的IP地址,同时作为VLAN2的网关 [Router-Ethernet0]quit [Router]interface ethernet1 [Router-Ethernet1]ip address 192.168.1.6 255.255.255.0 // 指定Ethernet1接口的IP地址,同时作为VLAN3的网关 [Router-Ethernet1]quitinterface ethernet0进入接口视图,提示符变成[Router-Ethernet0],这里配置的ip address命令带了完整的子网掩码255.255.255.0。这个掩码必须和PC的掩码一致,否则PC计算目标地址是否在本地网段时会出错,直接把报文丢弃或错误地发往其他网关。
为什么要给每个VLAN配一个独立网关?因为VLAN间通信的本质是:PC1发现目标PC3和自己是同网段,尝试二层通信失败后,会检查网关是否存在。如果两台PC的网关都是同一个IP,那它们会走同一个路由器接口,这个接口只能属于一个VLAN,另一个VLAN的PC拿这个地址当网关,二层根本到达不了。所以每个VLAN必须有自己对应的网关接口,这是VLAN间路由的基本要求。
4.2 开启防火墙功能并设置默认拒绝
路由器接口IP配好后,理论上一台路由器就能完成VLAN间路由,但这份文档加入了访问控制:先开启防火墙功能,然后把默认策略设为deny。
[Router]firewall enable // 开启防火墙功能,相当于一个全局总开关 [Router]firewall default deny // 设置默认报文过滤策略为拒绝,未匹配到permit规则的流量全部丢弃firewall enable是华为路由器上防火墙功能的全局开关,开启后所有进出路由器的报文都会经过策略匹配。firewall default deny则是把默认动作从permit改成deny,这句是整套配置里最容易引起连锁反应的一条。
默认deny意味着什么?意味着只要没有显式放行的流量,一律丢弃。这个策略和ACL配合使用的思路是“白名单”模型:先关上门,再逐条开窗。在现网里这样设计很常见,但实验环境里很多人刚配完default deny就去ping,发现所有PC都ping不通,包括ping自己的网关,然后开始怀疑设备坏了。其实原因很简单,你还没有配任何放行规则,或者管理面的流量也被默认策略挡了,这个问题我会在第5章详细展开。
4.3 配置ACL规则控制特定主机互访
防火墙默认拒绝的下一步,就是配置ACL规则来放行需要互通的流量。文档里的需求是:允许192.168.1.1访问192.168.1.3,也就是PC1可以访问PC3,其他主机默认不通。
[Router]acl 101 // 创建基本访问控制列表101,编号101表示高级ACL,可匹配源地址、目的地址、协议等 [Router-acl-101]rule permit ip source 192.168.1.1 0.0.0.0 destination 192.168.1.3 0.0.0.0 // 允许源IP为192.168.1.1的主机访问目的IP为192.168.1.3的主机 [Router-acl-101]quit注意这里通配符的写法。华为ACL中source和destination后面跟的是通配符(反掩码),不是子网掩码。0.0.0.0表示精确匹配单个主机地址,所以rule permit ip source 192.168.1.1 0.0.0.0表示只匹配源IP是192.168.1.1的报文;如果写成255.255.255.0,含义就完全不同了,它表示匹配192.168.1.0这个网段,会把192.168.1.1到192.168.1.254全放进来,这就背离了“只允许PC1访问PC3”的意图。这个坑很多人都会踩,后面避坑章节再细说。
ACL创建完成后,还需要在接口上应用才能生效,这个动作是把ACL和防火墙策略绑定在一起。
4.4 在接口上应用ACL策略
ACL本身只是一组规则,不绑定到接口上它就是一个躺在配置里的空壳。文档里把101规则同时应用到了Ethernet0和Ethernet1两个接口上,这么做的原因和防火墙默认deny的机制有关。
[Router]interface ethernet0 [Router-Ethernet0]firewarden policy apply 101 // 在Ethernet0上应用ACL 101规则,简写为fire pa 101 [Router-Ethernet0]quit [Router]interface ethernet1 [Router-Ethernet1]firewarden policy apply 101 // 在Ethernet1上应用ACL 101规则 [Router-Ethernet1]quit这里简短说明一下命令的两种写法。文档原文是fire pa 101,即firewarden policy apply 101的缩写。完整命令在VRP老版本中可用,输入时设备支持Tab补全,所以实际敲起来差别不大,但看别人配置时要能认出两种写法是同一个东西。
为什么要两个接口都应用?ACL匹配是按“接口+方向”来生效的。报文从PC1出发,进入Ethernet0时经过一次检查,从Ethernet1出去时如果Ethernet1上没有应用策略,那么Ethernet1侧只受默认deny控制。为了让规则完整覆盖“进和出”,文档选择在两个接口上同时应用。还有一种更常用的做法是在各接口分别应用侧重本方向的策略,比如Ethernet0只控制来自192.168.1.1的流量,Ethernet1只控制发往192.168.1.3的流量,但那样配置会更分散,排错也更费事。文档这种双接口同策略的方式虽然规则单一,但至少不会出现“进得去出不来”的漏洞。
还有一个方向性问题值得说透。这条ACL是permit 192.168.1.1到192.168.1.3,但它是单向的。PC1能主动访问PC3,PC3反过来主动访问PC1却会被拒绝,因为源是192.168.1.3的报文不匹配任何permit规则。在真机实验中很多人会发现“PC3 ping PC1不通”,以为配置错了,其实ACL设计就是这样。如果需要双向互通,就要再补一条反向的permit规则,这就是ACL的白名单特性。
5. 排错与避坑:反掩码、默认deny、配置保存一个都不能少
5.1 PC1 ping不通PC3,ACL规则看着没问题
现象:按文档配置完,PC1去ping PC3,超时,但PC1能ping通自己的网关192.168.1.5。
原因:ACL规则里的通配符写错了。写成source 192.168.1.1 255.255.255.0,在华为VRP里它表示匹配192.168.1.0到192.168.1.255整个网段,而不是单台主机。但问题往往更隐蔽:有些版本里这种写法会导致规则匹配行为和你预期完全不一致,甚至出现“规则存在但不生效”的假象。
解决:把通配符改成0.0.0.0,精确匹配单台主机。进到ACL视图里用undo rule删除错误规则后重新添加。我一般会建议先用display acl 101查看现有规则,确认规则内容和顺序,再决定是修改还是重写。ACL规则是按顺序匹配的,一旦前面有条permit ip any any,后面所有规则都白写,这个顺序问题也要一起检查。
5.2 开启firewall default deny后整个网络都不通了
现象:在路由器上敲完firewall default deny,再去ping任何一台PC、任何网关,全部不通。
原因:默认deny是一个全局策略,不只是限制跨VLAN的访问,它把所有未经permit规则放行的流量全部拒绝,包括从PC到网关的流量、路由器的管理流量,甚至某些情况下直连网段之间的报文也会被拦。很多人配置防火墙策略时只想着“放行A到B”,忘了自己ping网关的这个动作也需要被允许。
解决:在配置default deny之前,先想清楚管理面和转发面需要哪些放行规则。最稳妥的恢复方法是先取消default deny,在接口上用undo firewarden policy apply去掉ACL绑定,确认网络恢复后,再一步步加回规则。记住一个原则:default deny是最后一步,不是第一步。配置顺序应该是先把permit规则写好,再用接口应用策略,最后才开启default deny,这样即使有遗漏,影响范围也更容易定位。
5.3 配置重启后全部丢失,回到出厂状态
现象:实验做完,第二天开机发现VLAN划分和ACL全没了,交换机跟新出厂一样。
原因:华为设备配置保存在内存中,display current-configuration看到的是当前运行配置,但设备断电后内存清空。没有执行save命令的话,所有配置只活在“当下”。
解决:在系统视图下执行save,系统会询问是否保存配置,回车确认即可。保存后可以执行display saved-configuration查看已保存的配置,和当前运行配置对比,确认两边一致。我自己的习惯是每完成一个功能模块就保存一次,比如VLAN划分完保存一次,ACL配完再保存一次,避免多个模块一起改完,最后忘了保存某个关键配置。这不算洁癖,是真机调试时的基本素质。
5.4 从交换机侧管理路由器时被默认策略拦截
现象:交换机配好了管理IP,想通过telnet或SSH连到路由器上进行维护,结果连接超时,路由器本身却工作正常。
原因:默认deny策略把管理平面的访问也挡掉了。很多人的注意力全在业务流量上,忘了设备管理也是一种流量,而且管理流量经过的是路由器的控制平面,同样要过防火墙策略。
解决:要么在ACL里放行管理网段到路由器接口的访问,要么在配置default deny之前先把管理通道打通。在实际项目中,管理面的ACL应该单独规划,比如只允许192.168.1.0/24这个网段访问路由器的telnet/SSH端口,其他网段一律拒绝。这样既保证了安全性,又避免了管理断连的尴尬。
5.5 配置文件里的密码是明文,存在泄密风险
现象:执行display current-configuration时,看到telnet密码、enable密码直接以明文形式展示。
原因:这台设备的密码存储方式用了明文或可逆的低强度加密。华为设备里配置密码时有simple和cipher两种关键字,文档里没有提及这点,但实际配置中很多人图省事直接用了simple,导致密码裸奔在配置文件里。
解决:配置密码时使用cipher关键字,设备会以密文形式保存。同时注意,早期的type7密文在部分实现中是可逆的,安全等级不够,不能当作唯一防线。更稳妥的做法是结合登录源ACL限制管理地址范围,再把配置文件备份放到安全的位置。这里想强调一个观念:密码加密和ACL是两件事,加密解决的是配置文件泄露后的口令保护问题,ACL解决的是谁能访问设备的问题,两个都该做。
6. 验证与进阶:从ping通到策略命中,再到三层交换机做网关
6.1 用最少的命令验证整套配置
配置完成后不要急着收工,先做一轮验证。验证顺序有讲究:先验证网络连通性,再验证策略行为,最后确认配置已保存。
# 在PC1上测试到网关的连通性 ping 192.168.1.5 # 在PC1上测试到PC3的连通性 ping 192.168.1.3 # 在路由器上查看ACL规则 [Router]display acl 101 # 在路由器上查看当前生效配置 [Router]display current-configurationPC1能ping通192.168.1.5,说明VLAN2内的二层链路没有问题;能ping通192.168.1.3,说明路由器完成了VLAN2到VLAN3的路由,并且ACL放行了这条路径。然后在PC3上反向ping PC1,正常情况下应该不通,这反而验证了ACL的单向控制生效。
如果想进一步确认ACL是否命中了报文,可以使用display acl 101查看匹配计数器的变化。先记录当前计数,再在PC1上发起一次ping,重新查看计数是否增加。如果计数在涨,说明报文确实经过了ACL匹配;如果计数不变但网络通,那就要怀疑流量走了其他路径。这个“看计数器”的习惯,比反复ping来ping去有效得多。
6.2 进阶:把网关从路由器搬到三层交换机上
这份文档里的S3026e是二层交换机,必须外接路由器做网关,但在现网中更常见的是三层交换机直接做网关。华为三层交换机上的实现方式是通过VLANIF接口:
[Switch]interface vlanif 2 [Switch-Vlanif2]ip address 192.168.1.5 255.255.255.0 [Switch-Vlanif2]quit [Switch]interface vlanif 3 [Switch-Vlanif3]ip address 192.168.1.6 255.255.255.0 [Switch-Vlanif3]quitVLANIF接口的IP就是对应VLAN的网关,交换机内部直接完成VLAN间的路由转发,不需要外部路由器。这样做的好处是网关和VLAN划分在同一台设备上,配置逻辑更集中,而且转发性能远高于通过外部路由器绕一圈;代价是需要在三层交换机上启用VLAN间路由功能,并且ACL的应用位置从路由器接口变成了VLANIF接口或VLAN内部。
学习了这份文档再去理解VLANIF方案会顺畅很多,因为底层逻辑完全一样:VLAN负责隔离,网关负责汇聚,ACL负责控制。区别只是“做路由的设备”从独立路由器变成了交换机内部的虚拟接口。这种边界认知是很值钱的,你知道什么条件下该选哪种方案,而不是拿到设备就盲目敲命令。
从那以后,我每次配完ACL都会强制走一遍三件事:display acl看规则和顺序、ping测试确认预期行为、save保存当前配置。尤其是涉及firewall default deny这类全局开关时,一定会先把管理放行规则写好,再动全局策略,这个顺序从来没敢跳过。希望帮到你。
本文还有配套的精品资源,点击获取