华为路由器交换机VLAN配置实例:从VLAN划分到ACL排错

📅 发布时间:2026/10/5 7:13:56
华为路由器交换机VLAN配置实例:从VLAN划分到ACL排错
简介面向网络工程师与华为设备初学者的VLAN配置实战资料用一个由4台PC、华为R2621路由器及S3026e交换机组网的小型案例演示VLAN划分、路由器网关设置、防火墙策略与ACL访问控制的具体命令。资源共1个PDF文件压缩包约141KB内容以完整配置命令、IP规划表及排错要点为主适合对照实验环境逐步练习。文档包含交换机VLAN划分、路由器Ethernet接口IP绑定、firewall默认deny策略及ACL规则启用等关键环节并配有登录验证后的拓扑说明可直接用于教学或自学。已有1568人学习下载是快速掌握华为设备VLAN与访问控制配置的实用参考。1. 《华为路由器交换机VLAN配置实例》这份资料我拆完的第一反应是原来教科书上的VLAN可以讲得这么小它用一台R2621路由器、一台S3026e交换机和4台PC搭出一个典型的小型接入网络交换机把端口分成VLAN2、VLAN3路由器两个以太网口分别承担两个VLAN的网关再用ACL 101和firewall默认拒绝策略做访问控制。对刚接触华为VRP命令、想在一台模拟器上把VLAN划分、VLAN间通信、ACL过滤一次打通又没有现成拓扑可抄的人来说这份配置单可以直接照着敲。下面我按拓扑、交换机、路由器、排错的顺序把它拆开最后补上enSP复现和验证手法。我不打算逐行念命令重点放在「为什么要这么配」和「哪些地方照抄会翻车」上。2. 拓扑与IP规划为什么4台PC要分成两个网关2.1 先画拓扑和地址表网关落在路由器两个物理口上把PDF里的信息还原成一张表设备接入交换机端口IP地址掩码网关PC1S3026e e0/1VLAN2192.168.1.1255.255.255.0192.168.1.5PC2S3026e e0/2VLAN2192.168.1.2255.255.255.0192.168.1.5PC3S3026e e0/9VLAN3192.168.1.3255.255.255.0192.168.1.6PC4S3026e e0/10VLAN3192.168.1.4255.255.255.0192.168.1.6R2621 E0上联口划入VLAN2192.168.1.5255.255.255.0无R2621 E1上联口划入VLAN3192.168.1.6255.255.255.0无这里有一个PDF里没有明说、但落地时必须补上的细节路由器E0、E1分别接交换机的哪个口。常见做法是E0接VLAN2端口范围内的一个口比如e0/8E1接VLAN3范围内的一个口比如e0/16并且这两个上联口在交换机上要划进对应的VLAN——否则路由器接口虽然配了IP交换机的口还留在默认VLAN1里等于物理上没连进VLAN2和VLAN3。这个点后面排错章节会再展开。地址规划上有个容易被忽略的原则PC的网关必须和PC在同一网段。PC1、PC2的网段是192.168.1.0/24网关是.5也就是路由器E0口的IPPC3、PC4的网段同样是192.168.1.0/24网关是.6对应E1口。四台PC在同一个IP网段却分属两个VLAN跨VLAN通信实际上就是跨网段通信必须经过路由器转发。这也解释了为什么两个网关地址必须落在不同接口上而不是都写成同一个。2.2 为什么用两个物理口而不是trunk单臂路由VLAN隔离二层广播域之后不同VLAN之间默认互不相通想互通必须有个三层设备做路由。这个三层角色可以交给三层交换机也可以交给路由器。本拓扑用的是后者而且是最朴素的「多臂路由」一个VLAN对应路由器的一个物理接口路由器直接用物理接口IP做该VLAN的网关。这种做法的优点是排错直观E0通不通、E1通不通都是独立状态接口down了对应VLAN就断不用去猜子接口封装缺点是VLAN一多接口就不够用。另一种更常见的方案是trunk单臂路由路由器用一个物理口划多个子接口交换机侧配trunk比如port trunk allow-pass vlan 2 3子接口上再配VLAN封装。本PDF选的设备正好R2621只有两个以太网口两个VLAN各占一个口把「网关在路由器上、VLAN间靠路由」这件事讲得比单臂路由更直白适合先学会走再学跑。等以后换成三层交换机比如S5700VLAN间通信就变成在交换机上配VLANIF原理同属「三层终结VLAN」命令思路可以平移。2.3 网关、VLAN和ACL三者是串起来看的网关、VLAN、ACL不是三个独立配置而是同一条数据路径上的三段。PC发出的包先通过二层到达交换机交换机根据端口VLAN决定它在哪个广播域如果要出VLAN就交给网关也就是路由器转发路由器转发之前包过滤规则ACL 101先决定这个包放不放行。所以判断「为什么PC1访问PC3不通」时要按段排查PC1到网关的二层链路是否正常、交换机的VLAN划分是否正确、路由器接口是否up且IP正确、ACL是否放行、回程流量是否也被放行。很多人只盯着ACL规则看结果问题出在交换机上联口没划VLAN或者路由器接口shutdown——这两处恰恰是PDF里没直接写、实机却最容易翻车的地方。还要理解一个边界PC1和PC2同属VLAN2它们互访只走交换机二层转发根本不会经过路由器所以ACL管不到这段流量。想限制同一VLAN内部的两台PC互访得靠交换机端口隔离而不是路由器ACL。这个边界搞不清排查时容易误判方向。另外老设备R2621的以太网口默认是shutdown状态配完IP后要记得undo shutdownenSP里的AR系列默认up敲不敲无所谓真机上漏掉这一下VLAN就彻底断网。3. 交换机侧配置把88个端口分进VLAN2和VLAN33.1 进入系统视图和vlan enable老设备上的前置动作交换机开机后默认停在用户视图提示符是尖括号Quidway。这个视图只能看不能改先敲sys切到系统视图提示符变成方括号[Quidway]。随后要做的第一件事是确认VLAN功能已经打开——S3026e这批老设备上有个vlan enable开关不开的话后面建VLAN的命令虽然能敲进去但不生效Quidwaysys [Quidway]vlan enablesys是system-view的简写华为老命令行支持tab补全记不住全称就输前缀加tab。vlan enable严格讲只在早期VRP上有新设备比如S5700默认就开着敲了反而报错。我的习惯是拿到任何一台不熟悉的设备先敲dis version看版本和型号型号不同命令集不同这比硬记命令更稳妥。实际输入时PDF里那种vlan2、porte0/1toe0/8的写法是抄录时省了空格命令行里最好按「命令参数空格」的规范格式敲可读性和排错体验都好很多。3.2 创建VLAN并划分端口port e0/1 to e0/8的完整语义下面这段就是把8个端口划进VLAN2、再把另外8个划进VLAN3[Quidway]vlan 2 [Quidway-vlan2]port e0/1 to e0/8 [Quidway-vlan2]quit [Quidway]vlan 3 [Quidway-vlan3]port e0/9 to e0/16 [Quidway-vlan3]quit逐条说下vlan 2是创建VLAN2并进入VLAN视图[Quidway-vlan2]port e0/1 to e0/8把e0/1到e0/8这8个连续端口加入当前VLANquit退回系统视图。VLAN3同理。默认情况下交换机的所有端口都属于VLAN1所以不需要额外「把端口从VLAN1挪走」只要把指定端口划进VLAN2或VLAN3它们就自动不属于VLAN1的业务范围了。这里参数的注意点是to两侧端口必须在同一块接口板卡上且编号连续如果跨板卡要分多次port命令添加。还有一个PDF里没写、但真机上必须做的操作把接路由器的上联口也划进对应VLAN。假设E0接的是e0/8E1接的是e0/16那在VLAN2视图里要把e0/8加进来在VLAN3视图里要把e0/16加进来。做法很简单重复上面port命令把对应端口追加进去即可。这个操作不做路由器虽然物理连着交换机VLAN2的PC却找不到网关。注意本拓扑是二层交换机接终端端口默认access模式不需要配trunk。只有跨交换机传递VLAN时才需要trunk。入门者常见的翻车是上来把端口改成trunk又没配allow-pass vlan结果终端拿不到正确的VLAN。3.3 用dis vlan all和dis cu确认配置没写错配置完成后先别急着配路由器回头验证一下交换机[Quidway]dis vlan all [Quidway]dis cudis vlan all列出所有VLAN及其端口成员输出里VLAN2下面能看到e0/1到e0/8VLAN3下面能看到e0/9到e0/16上联口如果加进去了也会显示在对应VLAN下面。dis cu是display current-configuration的简写显示当前生效的完整配置可以用来确认vlan enable、vlan2、vlan3这些命令都在。这两个命令的区别值得说清楚dis vlan all看的是VLAN视角直观dis cu看的是配置视角完整。排错时先dis vlan all快速确认端口归属再dis cu确认没有多余或漏掉的配置。另外dis cu看到的是「当前生效配置」不是「开机加载配置」。如果改完没执行save就断电重启后全部回到出厂状态。我见过不少人在模拟器里保存是自动的就以为真机也自动保存结果真机上电后配置全丢急得满头汗。老设备上save命令会交互式询问是否写入输入y确认即可具体路径默认即可不需要手动指定文件名。4. 路由器侧配置接口IP、firewall默认拒绝与ACL 1014.1 两个接口的IP和接口状态网关先立起来路由器的任务是当网关。以太网口ethernet0配192.168.1.5做VLAN2的网关ethernet1配192.168.1.6做VLAN3的网关[Router]interface ethernet0 [Router-Ethernet0]ip address 192.168.1.5 255.255.255.0 [Router-Ethernet0]undo shutdown [Router-Ethernet0]quit [Router]interface ethernet1 [Router-Ethernet1]ip address 192.168.1.6 255.255.255.0 [Router-Ethernet1]undo shutdown [Router-Ethernet1]quitinterface ethernet0进入以太网口视图ip address后面跟IP和掩码注意这里用的是255.255.255.0这种正常掩码不是ACL里的反掩码undo shutdown是打开接口。老设备接口默认shutdown这条不加接口状态会一直是down后面ACL配得再漂亮也白搭。enSP里的AR系列接口默认up可以省掉但养成敲一下的习惯没坏处。到这里PC1、PC2的网关.5、PC3、PC4的网关.6都立起来了同一VLAN内的PC互访已经能通跨VLAN访问还不行——三层路由存在但包过滤还没放行。4.2 打开防火墙并把默认策略设为deny先断后通在接口IP就位之后开始做访问控制。这一段的思路是「默认全拒只放行明确允许的流量」[Router]fire enable [Router]fire default denyfire enable是开启防火墙包过滤功能完整写法是firewall enablePDF里简写了不开启的话ACL挂到接口上不生效fire default deny把未匹配规则的流量默认设为拒绝。先断后通的思路比默认放行安全代价是后续要记得显式放行该放的流量。这个顺序很关键一般先在console口保持可达把放行规则和接口应用都做完了再考虑default deny避免配一半把自己锁在外面。这里特别提醒一点fire default deny影响的是路由器转发平面的包过滤不拦console本地登录但会拦telnet、SNMP这些管理流量。生产环境里如果远程管理最好在ACL里先放行管理网段访问设备本身的流量否则ACL一应用管理会话可能直接掐断。我在真机上踩过这个坑当时远程配置到一半断连只能让机房同事帮忙重启救回来的场景还历历在目。4.3 ACL 101规则的匹配语义和接口应用方向原文档给了ACL 101和一条permit规则但这条规则是全文最容易抄错的地方[Router]acl 101 [Router-acl-101]rule permit ip source 192.168.1.1 0.0.0.255 destination 192.168.1.3 0.0.0.255 [Router-acl-101]quit [Router-Ethernet0]firewall packet-filter 101 inbound [Router-Ethernet0]quit [Router-Ethernet1]firewall packet-filter 101 inbound [Router-Ethernet1]quit先看编号ACL 101属于扩展ACL在华为老设备上扩展ACL编号范围是100-199所以规则里能写源IP、目的IP、协议类型如果是基本ACL只能限制源地址。rule permit ip表示放行IP协议source后面第一个参数是源地址第二个参数是通配掩码wildcard不是子网掩码。写0.0.0.255的含义是忽略最后8位即匹配192.168.1.0/24整个网段destination同理匹配192.168.1.0/24。这样规则的真正语义是「允许192.168.1.0/24网段访问192.168.1.0/24网段」比PDF字面看上去的「192.168.1.1访问192.168.1.3」宽得多。原PDF里写的是source 192.168.1.1 255.255.255.0这个写法在VRP里是个大坑。255.255.255.0作为wildcard时表示前24位不检查只在最后8位里匹配“等于1”的地址匹配范围完全错乱。我在实机上见过有人原样抄进去结果规则放行的对象和预期差了十万八千里查问题时怎么都想不通。凡是ACL规则里源或目的后面的第二个IP地址一律按「1表示不关心」来理解要匹配192.168.1.0/24就写0.0.0.255要匹配单个主机就写host 192.168.1.1或0.0.0.0。提示ACL规则里第二个IP字段是wildcard1表示忽略该位0表示必须匹配。保守做法是每次写完都用dis acl 101回读一遍规则内容确认匹配范围和预期一致。接口应用这行完整命令是firewall packet-filter 101PDF里简写成fire pa 101。方向我写成inbound即只对进入接口的流量做过滤。两个接口都应用是文档原意但要注意方向不同效果完全不同E0上的inbound拦的是PC1、PC2方向进来的包E1上的inbound拦的是PC3、PC4方向进来的包。如果只在E0做inboundPC3访问PC1的流量在E1进来时反而没人拦。方向写清楚ACL的行为才能预测。4.4 无状态包过滤下的放行逻辑单向规则配完会通吗按PDF只给一条permit配出来的实际效果和很多人预期的不一样。PC1 ping PC3时请求包从PC1进入交换机再到达路由器E0口匹配E0的inbound规则被放行路由器转发给E1但PC3的回包从E1进来时源地址是192.168.1.3目的地址是192.168.1.1和规则的「源192.168.1.0/24、目的192.168.1.0/24」在方向上不匹配于是被E1的inbound规则拒绝丢包。换PC3主动访问PC1也一样请求从E1进来直接不匹配被默认deny。也就是说老华为这种包过滤是无状态的不维护连接状态回程流量必须显式放行。想实现PC1访问PC3的双向通信至少还要加一条反向规则[Router-acl-101]rule permit ip source 192.168.1.3 0.0.0.255 destination 192.168.1.1 0.0.0.255如果业务是一方主动建连、另一方只回包把反向那条写成permit ip any any也行但网络工程里这么写太宽。实际操作我会按最小权限原则把回程规则也精确到网段或主机。这个「双向规则」的概念是这份PDF没写但落地时一定会遇到的关键点。加上这条后PC1到PC3的ping才能通PC2、PC4因为不在规则范围内依然被默认deny挡住这才符合「允许192.168.1.1访问192.168.1.3」的预期。5. 华为VLANACL排查记录五个必踩的坑与处理顺序排错时我一般按数据路径走先二层、再三层、最后看过滤规则。下面这五条是按翻车频率排的每一条都是实打实见过的问题。5.1 现象一PC配完VLAN后连自己网关都ping不通现象端口划分、路由器接口IP都按PDF配好了PC1 ping 192.168.1.5超时dis vlan all里能看到VLAN2端口但就是不通。原因路由器E0连接的交换机端口还在默认VLAN1里。PC1在VLAN2广播域到不了那个留在VLAN1的上联口网关的包根本送不到路由器。解决把路由器E0接的那个口划进VLAN2。比如E0接的是e0/8就进vlan 2视图执行port e0/8E1接e0/16就划进VLAN3。做完dis vlan all确认上联口出现在对应VLAN里再去ping网关。排查顺序上这一步应该排在查ACL之前因为二层不通时三层过滤根本没机会生效。5.2 现象二ACL里把掩码当wildcard敲规则匹配范围完全乱掉现象从PDF里把rule permit ip source 192.168.1.1 255.255.255.0原样敲进路由器dis acl 101时规则能显示但放行效果时有时无或者把不该放行的地址也放过去了。原因ACL规则里第二个IP字段是通配掩码1表示忽略该位0表示必须匹配。255.255.255.0表示前24位全部忽略只检查最后8位匹配的是「最后一字节等于1的任意地址」和「192.168.1.0/24」完全是两码事。解决把掩码改成0.0.0.255。要匹配192.168.1.0/24网段就写source 192.168.1.1 0.0.0.255要匹配单个主机就写source 192.168.1.1 0.0.0.0。配完用dis acl 101核对规则显示确认匹配的是预期的地址段。这个坑最容易出现在照抄文档的时候我自己也犯过一次后来只要碰ACL就先默念一遍wildcard规则。5.3 现象三fire default deny一敲管理地址立刻失联现象在路由器上敲完fire enable和fire default deny正准备继续配ACL放行规则远程的telnet会话直接断掉或者管理网段的PC从此ping不通设备地址。原因默认拒绝覆盖所有流量包括管理地址的telnet、SSH、ICMP。规则还没配完deny已经全局生效管理流量被拦在门外。解决先把管理放行规则写进ACL再应用接口。常见做法是在ACL里加一条rule permit tcp source 管理网段 0.0.0.255 destination 设备地址 0.0.0.0 destination-port eq telnet再额外放行ICMP确保控制通道不受default deny影响。万一已经把default deny敲下去又失联了只能通过console口恢复进去后先临时把default deny改回permit把规则理顺再改回来。这个坑实机操作时很多人踩过越急越容易乱。5.4 现象四规则只配单向PC3的回复被E1接口拦掉现象按PDF原样配完单条permitPC1 ping PC3不通但PC1访问同VLAN的PC2正常。看dis acl统计E0上规则有命中E1上也有deny丢弃。原因无状态包过滤不管连接方向回程流量单独过一遍入接口过滤。PC3的回复源地址是.3、目的地址是.1在E1的inbound方向匹配不上「源.0/24、目的.0/24」这条规则于是被默认deny丢弃。解决在ACL里补反向放行规则把目的和源反过来例如rule permit ip source 192.168.1.3 0.0.0.255 destination 192.168.1.1 0.0.0.255。如果业务是多台PC之间都有互通需求就把规则写成网段对网段的双向放行并注意规则顺序和匹配深度。华为新版本ACL按深度优先匹配配置顺序退居其次老版本按配置顺序匹配规则多了要小心顺序带来的差异。5.5 现象五save没敲重启后配置全没了现象交换机、路由器配置都验证通过断电重启后dis cu一片空白VLAN和ACL全部消失。原因dis cu显示的是当前运行配置华为设备默认不会自动保存重启后加载的是启动配置。改完不save所有功夫都白费。解决配置稳定后执行save提示确认时按y保存后可以用dis startup确认启动配置文件存在。我的习惯是每次修改完成、验证通过、准备下电之前都强制save一遍宁多勿少。模拟器和真机的差别就在这enSP里有些版本会自动保存让你形成错觉真机上没有这个待遇。6. 把这套配置搬到enSP验证三步复现与三条收尾习惯这套命令完全可以搬到enSP里复现只是设备型号要换。S3026e、R2621这两个老型号在enSP里没有用S5700交换机和AR2220路由器代替即可从华为enSP官网上下的版本就自带这些设备。设备名和接口写法会变交换机端口从e0/1变成GigabitEthernet0/0/1VLAN创建从vlan 2变成vlan batch 2 3路由器接口从ethernet0变成GigabitEthernet0/0/0。ACL部分enSP的AR系列接口下可以用traffic-filter 101 inbound部分版本也保留firewall packet-filter写法确认时以设备dis version的实际能力为准。复现分三步走第一步在S5700上创建VLAN2、VLAN3并把端口划进去注意把接路由器的两个上联口分别划进对应VLAN第二步在AR2220上配接口IP、ACL双向规则方向统一用inbound第三步从PC1 ping PC3通了之后再去dis acl 101看命中计数确认统计和实验结果对得上。建议准备一张验证命令表验证点命令VLAN及端口归属dis vlan all接口IP与状态dis ip interface briefACL规则内容dis acl 101包过滤匹配计数dis acl 101命中计数当前生效配置dis cu如果测试时ping不通优先看接口状态是不是up再看规则命中计数在哪一侧为0。命中在哪一侧、被deny在哪一侧基本就能把问题定位到具体接口。经验层面有三条习惯值得沉淀下来一是做完任何改动先dis cu再save最后主动重启验证启动配置正确二是ACL方向必须写到inbound或outbound不写方向靠默认行为早晚翻车三是从旧设备备份配置文件里读到type 7这类可逆加密的密码时别当摆设生产环境尽量换用更安全的加密方式存密码别让配置备份本身成为全网的弱点。命令能复现只是第一步把安全习惯带到每一次交付里才是这份配置单真正值回票价的地方。从那以后我每做完一套VLAN加ACL的实验都会强制走一遍验证清单ping网关、跨VLAN ping、dis acl看命中、save、重启验证。这套顺序帮我挡掉了无数次「配置都对但就是不通」的尴尬希望帮到你。本文还有配套的精品资源点击获取