资讯动态

NAT与ACL如何协同?从数据包旅程到模拟器配置实战

发布时间:2026/10/25 4:37:08 来源:尧图企业网站定制
软考网络工程师的备考群里每隔几天就会出现同一个问题“NAT和ACL到底怎么学配置老是不通怎么办”我一般就回一句别把这两个东西分开背把它们放在同一个数据包的旅程里想。NAT负责把内网地址换成公网地址ACL负责决定这个包有没有资格被换。这篇是第六章备考系列的第四篇前面几篇已经把IP规划、路由基础和交换基础拆完了这一篇专门把NAT和ACL这对“铁搭档”讲透内容包括考点分布、NAT分类与计算套路、通配符掩码避坑以及一个可以照着做的模拟器实验。适合正在备考、容易在这块丢分的人也适合刚接触网络设备、想搞明白“为什么我配完还是不通”的初学者。无论你用的是哪个版本的软考教程第六章里出口网络这部分基本都绕不开这两个考点。1. NAT和ACL为什么总是成对出现在软考第六章1.1 这两块内容的真实考查权重备考过软考网络工程师的人应该都有体会基础科目里知识点非常分散但凡是涉及到“配置类”内容的题目NAT和ACL的出现频率相当高。尤其是应用技术科目的大题给你一个园区拓扑要求补写访问控制策略和地址转换命令这几乎成了固定剧本。我见过不少备考的人第一阶段都卡在同一个地方ACL单独看懂了NAT单独看懂了但题目把两者放一起就不知道先想哪个、后想哪个。这个现象不是偶然。在真实网络里ACL和NAT本来就在同一台出口设备上串联工作。考题把两者放在一起本质上考的是你对“数据包从内网到外网到底经历了什么”的整体理解而不是单纯背命令。所以备考时如果只是孤立地记规则做题就会觉得题目“变活了”但自己还在用死记硬背的方式应对。1.2 数据包的“放行”与“变身”我习惯用一个类比来解释这对组合内网主机要访问外网出门前先过一个门禁ACL门禁检查源地址有没有资格出去然后进入一间更衣室NAT把内网的私服换成公网制服这才走出大门。反向流量回来时更衣室负责把公网制服换回私服数据包才能回到原来的内网主机。一句话ACL决定“能不能放行”NAT决定“出去时以什么身份出现”。这两个任务经常落在同一台出口路由器上所以配置上也常常前后脚出现。软考爱考这对组合是因为它能一次性考察你对处理顺序、源目地址变化、规则匹配方向的理解这些恰恰是初学者最容易搞混的点。你要是能把这个“门禁加更衣室”的流程在脑子里走一遍很多题不用逐条背规则也能推出来。1.3 为什么说它是“必拿分”章节对比第六章里的路由协议内容OSPF、BGP需要记住大量报文类型和状态机而NAT和ACL的计算逻辑非常直白要么算端口复用比例要么看一条规则匹不匹配。不涉及复杂算法不依赖海量参数记忆题型又高度统一。对一个备考周期有限的考生来说把这块吃透性价比很高。当然必拿分不等于容易拿分。丢分的人往往不是不会配置而是细节判断错误——ACL应用方向填反、忘掉隐式拒绝、分不清静态NAT和NAPT的区别。这些坑后面我会逐一说清楚。先给一个整体的思路遇到NAT和ACL结合的题永远先问自己“这个包现在在哪下一步要干什么”再去看配置对不对八九不离十。2. NAT的四种形态与考场计算题的固定套路2.1 四种NAT方式背后的使用场景先看一张表把软考范围内最常见的几种NAT方式放在一起对比后面所有计算题都基于这张表判断方向。类型映射逻辑典型场景软考常见考法静态NAT一个私有IP固定对应一个公网IP对外提供服务的服务器判断映射关系、计算需要几个公网地址动态NAT私有IP从公网地址池临时借用地址内网用户访问外网地址池大小与并发用户数的关系NAPT/PAT多个私有IP共用一个公网IP用端口区分会话办公网共享出口端口复用比、最多支持多少并发主机NAT Server/端口映射公网IP特定端口映射到内网服务器外部访问内部服务器给出配置判断内外地址与端口静态NAT最好理解绑定的关系长期不变适合服务器这种需要被稳定访问的节点。动态NAT则是“有人出门才分配临时公网地址”用完即收回但因为每个并发会话都要占一个公网地址所以地址池必须大于等于同时上网的用户数现实中很少这么奢侈。真正被日常使用的是NAPT也就是端口复用一个公网地址可以撑起整个办公室的对外访问。2.2 端口复用比例怎么算软考对NAPT的计算题逻辑其实非常简单一个公网IP可用的端口数约65535个去掉一部分保留端口通常按六万多来估算。每次会话占用一个源端口因此理论上一个公网IP大约能同时支持六万多个并发会话。这就是NAPT能“一个地址养活一整个内网”的根本原因。实际题目很少直接考六万这种理论值而是给一个简化的平均指标。比如某公司有500台主机采用NAPT出口每台主机平均建立10条外网连接问至少需要几个公网地址。此时总并发连接数是5000条按单地址支持约65000条算一个公网地址就绰绰有余。但如果题目明确说“公网地址必须能覆盖全部主机的同时在线”不允许出现连接等待那就要反过来按同时在线主机数去匹配地址池容量这时可能就需要多个地址。做题时先圈出关键词出现“端口复用”“NAPT”“PAT”的都是按端口数算出现“地址池”又没有提到端口复用多半是动态NAT题此时公网地址个数不能少于同时在线主机数。这个判断直接决定你用哪个公式比后面算数本身重要得多。另外别忘了NAT会话不是永久的报文交互停止后表项会在老化时间后消失这正是一切动态类和端口复用类NAT能够反复使用地址的基础。2.3 一个典型推理过程我拿一道常见题型演示思路。题目暗示公司内网有200台电脑出口路由器只有2个公网地址要求全体员工都能上网。问如果采用动态NAT能实现吗如果采用NAPT呢动态NAT下同时上网人数一旦超过2后面的人只能排队等前面的会话回收地址200台电脑显然不现实。而NAPT下2个公网地址可以提供理论约十三万个并发连接200台电脑哪怕每台开几十个连接也远用不完所以答案就出来了。考场里不少人会纠结“NAPT用2个公网地址源端口会不会冲突”其实不必——NAPT工作时公网地址加端口组合共同标识一个会话多个公网地址之间自动分散负载互不影响。这类题还有一个更容易错的变体给你一台服务器要求外部用户通过公网地址的特定端口访问它问该配哪种NAT。记住只要涉及“外部主动访问内部”静态映射或NAT Server就是正解普通的出口上网需求才去考虑动态NAT和NAPT。想清楚这一点选择题基本不会错。3. ACL通配符掩码最不起眼但最容易翻车的地方3.1 通配符掩码的写法与标准、扩展ACL的差异ACL配置里最让新手头疼的是通配符掩码wildcard mask。很多人一上来就记反子网掩码255.255.255.0能匹配整个24位网段对应的通配符是多少0.0.0.255。换算规则一句话通配符等于255.255.255.255减去子网掩码。其中0表示这一位必须精确匹配1表示这一位随意。子网掩码反算通配符能匹配的范围255.255.255.00.0.0.255某个C段地址全部255.255.255.1280.0.0.127某网段的前半段或后半段255.255.255.2400.0.0.15某段内连续16个地址255.255.248.00.0.7.255包含多个C段的聚合范围这里有个容易误解的细节通配符掩码并不要求像子网掩码那样必须是连续的1或0它表示的是“哪些位需要检查”而不是“哪些位是网络位”。另外软考还会区分标准ACL和扩展ACL标准ACL只认源地址扩展ACL可以匹配源地址、目的地址、协议和端口。题目里如果要求限制某个服务器的特定端口只能被某些网段访问那必须用扩展ACL。判断标准就一句话规则里有没有出现“目的”和“端口”这两个概念。3.2 一个烧脑但软考偶尔会问的例子我举一个有意思的练习要求只允许192.168.1.0/24网段里IP最后一位为偶数的主机ACL怎么写先想清楚“最后一位为偶数”意味着IP地址最低的二进制位必须是0所以ACL要精确检查这一位。于是前三位精确匹配最后一个字节只检查最低位其他七位任意通配符就写成0.0.0.254匹配的源地址写192.168.1.0。这个例子一出来很多人就明白为什么不能光靠“子网掩码取反”了。255.255.255.254取反得到0.0.0.1那是匹配最后一位任意而不是偶数。遇到这类题别急着套公式先问自己到底要精确匹配哪些位把这个问题想清楚了通配符就不会写错。3.3 规则顺序与隐式拒绝ACL的匹配原则是“从上到下命中即止”。配置里如果第一条写了permit后面的deny再多也不会被检查到反过来如果第一条deny了某个网段后续再怎么permit那个网段也已经出局了。软考常把这点变成判断或配置补全题很多人想当然地以为ACL会综合所有规则然后统一给结论事实不是这样它就是一条一条往下走。另一个高频考点是隐式拒绝。华为设备上ACL规则列表末尾默认有一条看不见的deny any。这意味着如果你只放行了一个网段其他所有流量默认被拒绝。很多实验现象“莫名不通”追根究底都是因为这条默认规则。所以做题和配置时要么在规则末尾显式补一条permit any要么认真想清楚不补的后果。我见过有人调试一下午ACL最后发现问题就是“少了一条放行”。4. 在模拟器里把NAT和ACL串起来一个能复现的实验4.1 实验拓扑与需求理论说那么多不动手永远缺一块。我建议用eNSP这类网络模拟器搭一个最小拓扑出口路由器R1下接一台二层交换机交换机上划分三个VLAN——VLAN 10市场部、VLAN 20研发部、VLAN 30服务器区。三个VLAN的网关统一放在R1的子接口上R1公网接口接运营商侧路由器公网地址段用文档保留网段203.0.113.0/30。IP规划如下PC1市场部192.168.10.10/24网关192.168.10.1PC2研发部192.168.20.10/24网关192.168.20.1Server1服务器区192.168.30.10/24网关192.168.30.1R1公网接口203.0.113.1/30运营商侧接口203.0.113.2/30需求有三条市场部PC可以访问外网也可以访问内部服务器研发部PC只能访问内部服务器禁止访问外网外网不能主动发起访问到内网内网访问外网时通过NAPT共用R1公网接口的203.0.113.1。这个需求在企业网里非常典型把ACL和NAT全用上了。4.2 配置要点与完整思路先配VLAN和子接口让三个网段能互访。这一步看着基础但我见过不少人配来配去发现直连不通最后查出来是子接口没做VLAN封装。VLAN间能通信之后再开始碰ACL和NAT。核心配置分成三段。第一段是子接口把三个VLAN都汇聚到R1上。interface GigabitEthernet0/0/1.10 dot1q termination vid 10 ip address 192.168.10.1 255.255.255.0 arp broadcast enable # interface GigabitEthernet0/0/1.20 dot1q termination vid 20 ip address 192.168.20.1 255.255.255.0 arp broadcast enable # interface GigabitEthernet0/0/1.30 dot1q termination vid 30 ip address 192.168.30.1 255.255.255.0 arp broadcast enable第二段是ACL。研发部不能出外网所以规则顺序是先拒绝192.168.20.0/24再放行其他。顺序不能颠倒否则研发部的流量会被后面的permit先匹配deny就不再生效。acl number 2000 rule 5 deny source 192.168.20.0 0.0.0.255 rule 10 permit第三段是NAT。只有市场部需要出外网所以单独用另一个ACL圈定NAT转换范围再在公网接口上同时调用ACL和NAT规则。acl number 2001 rule 5 permit source 192.168.10.0 0.0.0.255 interface GigabitEthernet0/0/0 ip address 203.0.113.1 255.255.255.252 nat outbound 2001 traffic-filter outbound acl 2000这里的nat outbound 2001表示匹配ACL 2001的流量在发出接口时使用接口自身地址203.0.113.1做地址转换等价于NAPT。traffic-filter outbound acl 2000则是把ACL 2000应用在公网接口的出方向让研发部的流量在出门前被拦下。完成之后用验证命令确认display acl 2000看规则命中计数display nat session table看是否有对外的转换会话。配置完成后从两台PC分别验证市场部PC能ping通203.0.113.2研发部PC ping不通两台PC都能访问服务器192.168.30.10。三条业务需求就全部满足了。4.3 实际踩坑先怀疑NAT结果问题在路由做这个实验时最容易碰到的现象是市场部PC ping外网不通但内网之间一切正常。我一开始也习惯性地去查NAT配置、查ACL翻来覆去没找到问题最后发现是PC的网关地址写错了——PC指向了192.168.10.254而真正在子接口上的是192.168.10.1。数据包根本没有送到路由器的门禁处更谈不上地址转换。所以我现在排查这类问题有个固定习惯从下往上查PC先ping网关确认二层和三层链路通不通在R1上ping运营商侧接口确认公网链路通不通执行display nat session table看有没有转换记录执行display ip routing-table确认路由表有没有问题。按照这个顺序十分钟内能找到绝大多数问题。最误导人的恰恰是“NAT转换记录为0”的时候很多人直接怀疑NAT配置实际上这是正常现象——流量都没到设备转换表当然为空。先确认流量到达了哪个环节再决定往哪个方向查比直接翻配置高效得多。另一个坑与接口ACL和NAT的执行顺序有关。不同厂商甚至同一厂商不同系列设备上出方向ACL检查的时机会影响它看到的是转换前还是转换后的源地址。曾有人在eNSP里把ACL放在公网接口的入方向发现效果和预期不一致。软考一般不会考到这么细但实验里多留意这个因素印象会深很多。5. 考场答题顺序与几个值得记住的小技巧5.1 三句话记住NAT分类考试前如果脑子一片空白就用这三句静态NAT是一对一固定占位动态NAT是临时借用公网地址NAPT是大家共享一个公网地址靠端口区分。三句话能帮你判断绝大多数选择题题目出现“服务器固定映射”就选静态出现“地址池”就选动态出现“多台主机共用一个地址”“端口”就选NAPT。5.2 考场上的ACL判断顺序考到ACL时先看三件事规则顺序看第一条匹配结果是permit还是denyACL应用在哪个接口的哪个方向。三件事里任何一件看漏答案大概率出错。方向判断有个偷懒技巧凡是要限制“从某个接口进来的源”找入方向凡是要限制“从这个接口发出去的流量”找出方向。多做几道题之后你会发现这类题实际上是在考“你会不会读拓扑和需求”而不是“会不会背命令”。5.3 真实工程与考试的差异提醒最后说一点过来人才会懂的事软考对NAT和ACL的考察偏原理和基础配置但真实网络里ACL常与策略路由联动NAT也有双向转换、端口映射、负载均衡等花样。备考时不用急着充这些高级特性先把这里的原理和计算吃透考完再慢慢补。否则很容易陷入“知识点学了很多但做题不对”的尴尬。我自己备考那会儿最大的感受是不要孤立地背NAT或ACL的细节而是把它们放到一个完整的数据包旅程里去理解。一旦你脑子里有了“门禁、更衣室、出门、回来换衣服”的完整过程第六章这部分的题目难度会直线下降。希望这篇能把这两个考点一次性讲透找个晚上在模拟器里照着搭一遍你会比单纯刷题收获大得多。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑