
在现网设备上调NAT大部分人第一反应是“这不就是个地址转换嘛配几条命令的事”。可真等你碰上双出口选路、内网访问自己的公网IP不通、会话表被占满这种问题就知道NAT这东西远没有想象中那么简单。这篇我把自己做网络项目这么多年碰到的NAT相关场景完整梳理一遍从静态、动态到NAT Server、NAPT、Easy-ip再到地址映射表的排障思路全部用华为设备的落地配置和实测经验来讲希望能给正在学网络或者正在被NAT坑的同行一些参考。1. NAT到底在干什么地址转换背后的需求逻辑1.1 为什么需要NAT公网地址从来都不够用NAT全称Network Address Translation网络地址转换。很多人把NAT理解成一种“安全技术”或者“攻击防护手段”这个说法其实不准确。NAT诞生的核心原因是IPv4公网地址不够用属于很实际的资源问题。全球IPv4地址总数约43亿个但联网设备早就远超这个数字。对于企业、学校、运营商来说不可能给每一台终端都分配一个合法公网IP。于是NAT的思路就是内网用私有地址段比如华为设备默认的192.168.1.0/24出口设备通常是一台路由器或者防火墙在数据包经过的时候把内网私有地址替换成公网地址让数据包能在公网上正常路由。响应数据回来的时候设备再根据映射关系把目标地址改回内网地址。有人可能会问既然IPv6地址海量为什么还要讲NAT因为现网存量设备大多还是跑IPv4短期内NAT不会被消灭。即便过渡到IPv6NAT-PT这类技术也仍然存在只是形态不同。所以理解NAT原理对任何搞网络的人来说都是基本功。1.2 NAT的核心工作方式地址替换与映射记录NAT设备本质上维护着一张“地址映射表”表里记录内网地址、端口和公网地址、端口之间的对应关系。数据包出去时查一次这张表把源地址换成公网地址响应包回来时再查一次把目的地址换回内网地址。这张表就是后面要重点讲的NAT地址映射表。华为设备上查看这张表的命令是display nat session能看到完整的五元组信息。NAT的工作模式可以按照“转换方式”和“是否复用端口”两个维度来划分理解这两个维度非常关键按转换方式分一对一转换、多对多转换、多对一转换。按端口是否转换分不转换端口仅IP映射和转换端口IP端口同时映射。静态NAT、动态NAT、NAT Server、NAPT、Easy-ip本质上就是这两个维度组合出来的具体应用形态。后面的章节一个一个拆开讲你会发现其实都是围绕这张地址映射表做文章。2. 静态NAT一对一映射简单但有条件2.1 静态NAT适用场景什么业务适合做一对一NAT静态NAT是内网地址与公网地址之间固定的、一对一的映射关系。配置完之后内网地址和外网地址的对应关系永远不会变。什么场景适合最常见的就是内网服务器需要对外提供业务比如网站、邮件服务器、ERP对外接口需要公网用户随时能够访问。静态NAT的好处是映射关系固定方便做安全策略、流量审计和追踪。还有合规性要求比较高的金融、政企客户外联业务通常要求一对一的公网地址映射方便留痕和追溯。但是静态NAT也有一个很大的短板占地址。内网有多少台设备要做一对一映射就要消耗多少个公网IP。如果公司只有一条公网线路、几个公网地址那静态NAT只适合给少量核心服务器用不能拿来做全网终端的上网方案。很多刚开始做项目的朋友容易犯这个错误给全网终端也配静态NAT结果公网地址池根本不够分短期内能通过一阵子就各种丢包、断连。2.2 华为设备静态NAT配置实例华为路由器以AR系列为例配置静态NAT通常是在接口视图下做NAT映射绑定或者在系统视图下定义静态映射再绑定到接口。常见配置如下interface GigabitEthernet0/0/0 ip address 202.100.1.1 255.255.255.0 // 内网服务器192.168.1.10 映射到公网地址202.100.1.10 nat static global 202.100.1.10 inside 192.168.1.10如果有多个服务器要映射就重复配置几条nat static命令。配置完成后在系统视图下执行display nat static可以查看当前所有的静态映射条目nat static global 202.100.1.10 inside 192.168.1.10 nat static global 202.100.1.11 inside 192.168.1.11 nat static global 202.100.1.12 inside 192.168.1.12这里有个细节公网地址和接口地址要避免冲突。如果公网地址池包含接口自身的地址通常需要排除掉防止NAT后源地址变成接口地址导致路由环路。华为设备在地址池中默认不会自动排除接口地址配置时要注意。2.3 静态NAT配置中容易踩的坑静态NAT配置简单但有一个坑特别常见如果内网服务器本身也作为网关或者和其他网段有互访需求只做静态NAT而不考虑路由回程会导致能出去却回不来。举个例子内网服务器192.168.1.10映射到202.100.1.10这个服务器的网关指向路由器。如果路由器上没写回来找202.100.1.10的流量要转到内网服务器的路由公网访问就会超时。这个问题的排查思路是先在路由器上看display nat static确认映射条目不丢再从公网侧ping映射后的公网地址看通不通。如果不通重点检查有无ACL拦截、路由是否指向正确以及服务器本机的防火墙是否放行对应端口。静态NAT本身不会自动做端口放行华为AR上还需要检查接口是否配置了安全策略或ACL。3. 动态NAT与地址池设计Pool用得好才是真功夫3.1 动态NAT的核心思路地址池按需分配动态NAT是把一批公网地址放在一个“地址池”Address Pool里当内网设备有访问外网需求的时候路由器从地址池中动态分配一个公网地址给它使用。使用完毕一段时间后根据会话老化时间地址被回收可以分配给其他设备继续使用。这种方式的地址利用效率比静态NAT高但也有个明显的局限如果地址池的公网地址数量小于内网并发设备数那么同时需要上网的内网设备如果超过了公网池数量后面的设备就无法正常上网。这就是为什么动态NAT一般只适合公网地址还比较充裕的场景而真正的大规模终端上网需要用后面讲的NAPT或者Easy-ip。3.2 地址池规划计算方法并发不是在线数很多人在规划动态NAT地址池大小时拿“公司有多少台PC”来算这个思路是错的。地址池真正要满足的是“峰值并发连接数”而不是“在线设备数”。内网可能挂了200台设备但大部分时间只有100台在同时访问外网那地址池按100个左右估算就差不多了。更准确一点可以用以下方法估算看出口设备的会话表峰值数量除以每台设备平均产生的并发会话数这个数值可以抓包统计经验值大约在10-50之间得到并发设备数。再留20%到30%的余量作为突发缓冲。比如出口会话峰值是5000条平均每台设备产生25条会话那么并发设备大约200台地址池设置150到160个公网地址可以满足常规需求。3.3 华为设备动态NAT配置步骤动态NAT的配置分两步第一步定义公网地址池。nat address-group 1 202.100.1.20 202.100.1.50这个命令定义了一个从202.100.1.20到202.100.1.50的地址池共31个公网地址。第二步在接口上调用并且使用ACL匹配需要进行NAT的内网网段。acl number 2001 rule 5 permit source 192.168.1.0 0.0.0.255 interface GigabitEthernet0/0/0 nat outbound 2001 address-group 1nat outbound 2001 address-group 1的含义是匹配ACL 2001的报文即内网192.168.1.0/24网段出去的流量使用地址池1中的地址进行动态NAT。这里有个概念容易和Easy-ip混淆动态NAT在做地址转换时只转换源IP地址不转换端口。多个内网设备如果被分配了不同的公网地址没有冲突但是如果同一个公网地址被动态分配给不同内网设备出现了同时使用相同源端口的情况转换就会失败。因此动态NAT在并发大时会有端口资源限制问题大家务必记住这个局限。3.4 动态NAT配置后访问外网时断时续动态NAT最典型的故障就是“时断时续”。有个案例我记得很清楚客户出口带宽不小配置了动态NAT之后网页打开很慢视频经常卡住有时完全打不开过一会儿又好了。排查下来发现地址池只配置了10个公网地址但是内网有300台终端同时在用10个地址根本不够分。新会话抢不到公网地址直接被丢弃表现就是“时好时坏”。这个故障有两种解决思路一是增加地址池里的公网地址数量二是把动态NAT改成以端口复用的方式NAPT或者Easy-ip。如果公网地址数量本身不够最根本的办法还是上端口复用。由于公网IP资源非常紧张现网中纯粹使用动态NAT做全网接入的场景已经很少大家了解原理即可别真的拿它扛大流量。4. NAT Server端口映射才是服务器对外服务的主力4.1 NAT Server和静态NAT的区别NAT Server也叫端口映射是把公网IP的特定端口映射到内网服务器的特定端口。比如把公网地址202.100.1.10的TCP 80端口映射到内网192.168.1.10的80端口外网用户访问202.100.1.10:80时路由器会把流量转发给192.168.1.10:80。它和静态NAT的不同点在于静态NAT是IP层的一对一映射所有端口都映射过去NAT Server往往只开放指定端口其他端口不映射。从安全角度看NAT Server暴露的攻击面更小因为你只对公网开放了必要的服务端口其余端口在外网是不可达的。从配置角度看静态NAT很占公网地址NAT Server可以用同一个公网IP的不同端口映射到多个内网服务器更节约地址。4.2 华为设备NAT Server配置实例还是以AR路由器为例在出接口上配置interface GigabitEthernet0/0/0 // 将公网202.100.1.1的80端口映射到内网192.168.1.10的80端口 nat server protocol tcp global 202.100.1.1 80 inside 192.168.1.10 80 // 将公网202.100.1.1的3389端口映射到内网192.168.1.11的3389端口 nat server protocol tcp global 202.100.1.1 3389 inside 192.168.1.11 3389如果需要将公网地址的某个端口映射到内网服务器的不同端口也可以写成nat server protocol tcp global 202.100.1.1 8080 inside 192.168.1.10 80这样外网用户访问202.100.1.1的8080端口路由器会把请求转发给内网192.168.1.10的80端口。常见于前端一个公网端口对应后端不同服务的场景。配置完成后用display nat server查看映射情况。如果映射条目状态正常但外网仍然无法访问这时候可以去路由器上检查安全策略。华为AR系列如果没有配置防火墙包过滤一般是默认放行的但如果你的设备启用了安全域就需要在安全策略里放行从Untrust外网到DMZ服务器区域的对应服务流量。4.3 外网访问不了映射的服务怎么办NAT Server配置后外网访问不上我碰到过的问题按出现频率排序大概是这几类第一是运营商封禁了常用端口。国内很多宽带线路会封禁80、443等WEB端口尤其是家宽专线里非常常见。如果映射的是这类端口外网访问不了但换一个非常大范围的端口比如8080、9443又正常了那大概率是被运营商策略拦了这时候要联系运营商确认放行或更换映射端口。第二是安全策略或防火墙拦截。防火墙不仅要放行从外网进来的流量还要保证回程流量能够正确走到内网服务器。有些防火墙默认策略是“拒绝所有”需要显式放行对应服务端口和目的地址的安全策略。第三是NAT Server和出方向NAT冲突。如果同一台内网服务器既要主动访问外网又要被动被外网访问可能会出现NAT Server映射的目标地址和出方向NAT转换后的源地址不在同一个公网地址上的情况导致某些环境访问异常。这时候推荐用NAT Server和出方向NAT的方式分开规划并且尽量保证NAT映射的公网IP和出接口地址属于同一路由域。5. NAPT和Easy-ip端口复用才是上网主力方案5.1 NAPT的网络地址端口转换原理NAPT全称是Network Address Port Translation网络地址端口转换。它和动态NAT最大的区别在于NAPT在做IP地址转换的同时也会对源端口进行转换。多台内网设备被映射到同一个公网IP但通过不同的源端口来区分彼此的连接。还是用例子说明内网192.168.1.10和192.168.1.11同时访问外网某台服务器。路由器看到这两台设备的源端口都是1025如果只转换IP不转换端口公网IP地址相同时就会冲突。NAPT则会把第一台设备转换为202.100.1.1:1025第二台设备转换为202.100.1.1:2048两者源端口不同回程数据包到达路由器后路由器就可以通过目的端口区分该转发给192.168.1.10还是192.168.1.11。这个“IP端口”的组合大大提高了公网地址的复用率。一个公网IP理论上最多可以提供约6万个端口实际由于保留端口和系统开销会少于这个数足以覆盖一个中等规模办公环境的日常上网需求。这也是为什么家用路由器、企业出口设备都是用NAPT或者它的变种来做上网接入。5.2 Easy-ip最简单的NAPT实现Easy-ip是NAPT的一种特殊实现方式它的特点是不需要额外定义公网地址池直接借用出接口的IP地址作为转换后的源地址。华为设备上配置命令非常简洁acl number 2001 rule 5 permit source 192.168.1.0 0.0.0.255 interface GigabitEthernet0/0/0 nat outbound 2001注意这里nat outbound 2001后面没有跟address-group参数设备默认使用接口IP作为NAT转换后的源地址。这个命令下发后内网192.168.1.0/24网段的流量出去时源IP会被转换成GigabitEthernet0/0/0的接口地址假设为202.100.1.1同时源端口随机分配一个可用端口。Easy-ip的优点显而易见配置简单、不需要占用额外的公网地址、非常适合只有一个公网IP的小型分支、门店等场景。缺点也很明显所有流量都使用接口IP一旦接口IP发生变化比如DHCP重新拨号获取了新的地址已经建立的会话会全部中断。这在PPPoE拨号上网的场景下影响尤其明显重新拨号后所有连接需要重建。5.3 Easy-ip与NAPT的选择标准两者本质上都是端口复用区别主要在于是否显式使用地址池。如果你的运营商只分配了一个公网IP比如最常见的PPPoE拨号上网那直接用Easy-ip最合适。如果公司购买了一段公网地址比如8个、16个想充分发挥地址资源效率那建议使用NAPT配合地址池配置方式是在出接口上使用nat address-group 1 202.100.1.2 202.100.1.9 acl number 2001 rule 5 permit source 192.168.1.0 0.0.0.255 interface GigabitEthernet0/0/0 nat outbound 2001 address-group 1这个配置的效果是内网流量使用地址池中的地址作为转换源地址同时允许不同会话复用一个IP的不同端口。这样即使单个IP的端口资源耗尽流量也会均匀分散到多个公网IP上提升整体转换能力。选择的时候还要注意一个问题如果运营商给的是“多个地址但接口IP是其中一个”那地址池中务必不要包含接口本身的IP否则转换后的源地址可能和接口地址冲突导致路由环路。这个我在现网中踩过坑后面会详细说。5.4 Easy-ip配置后的常见坑Easy-ip虽然配置简单但一旦出问题排查起来往往需要点经验。最典型的是配置了Easy-ip之后内网可以ping通外网IP但DNS解析不了网页打不开。这个问题的原因通常是出接口的DNS配置不对或者内网设备的DNS服务器不可达。Easy-ip只负责地址转换不负责DNS转发。实操中建议在路由器上设置dns resolve以及对应的DNS服务器地址同时内网终端配置一个可达的DNS比如运营商提供的DNS或公共DNS。如果内网终端配置的是路由器本身作为DNS那路由器需要开启DNS代理功能否则终端就解析不了域名。还有一个坑是如果配置了Easy-ip但内网同时存在多个网段而ACL只放行了一个网段另一个网段会直接无法访问外网。很多人把ACL写成rule 5 permit source 192.168.1.0 0.0.0.255忘了加其他网段导致其它VLAN的流量出不去。这种情况下加一条permit规则或者改成rule 5 permit匹配所有就能解决。当然如果你对安全有要求最好还是按网段逐条写清楚。6. NAT地址映射表会话建立、查看与超时调优6.1 地址映射表的结构与核心字段NAT地址映射表是所有NAT工作机制的核心载体。每一次地址转换都会在设备上创建一条会话记录用于后续数据包的正确转发。我们经常在问题排查中查看地址映射表所以要读懂这张表里每个字段的含义。华为设备上用display nat session查看会话信息输出示例类似NAT Session Table Information: Protocol : TCP(6) SourceAddress : 192.168.1.100 SourcePort : 1025 DestinationAddress: 203.0.113.10 DestinationPort : 443 TranslatedSourceAddress: 202.100.1.1 TranslatedSourcePort : 2048 TranslatedDestinationAddress: 203.0.113.10 TranslatedDestinationPort : 443这张表要关注的关键字段是源地址和源端口内网真实地址和端口、目的地址和目的端口外网服务器地址和端口、转换后的源地址和源端口公网地址和复用端口。回程数据包到达路由器时路由器查找目的IP和目的端口反查这张表如果匹配就转给对应的内网设备如果不匹配就丢弃。这里要特别强调一点NAT会话表不仅记录TCP和UDP还可能记录ICMP。不过ping这种流量在没有端口概念的情况下是靠ICMP报文里的Identifier字段来做区分的华为设备会在NAT会话里把它当作“端口”来标记。如果你用display nat session查不到ping的会话记录不要慌这是正常现象实际ping通了说明NAT转换没有问题。6.2 会话超时时间配置不合理真会掉线NAT会话表不会永久保留一条会话记录而是有一个老化时间。TCP、UDP、ICMP的老化时间是不同的。华为设备默认老化时间通常为TCP 3600秒UDP 120秒ICMP 60秒。这些参数可以根据实际业务调整。问题来了如果UDP会话老化时间设置得太短比如默认120秒会导致语音、视频类实时业务频繁中断。因为这类业务倾向于长时间保持一个UDP会话并且空闲时间可能超过120秒一旦会话被老化后续数据包到达时路由器找不到对应会话就会丢弃业务就断了一会儿。等到下一个报文再次触发新的NAT转换业务又会恢复表现就是“每隔几分钟卡一下”。解决办法是在系统视图下调大对应的NAT老化时间nat session tcp timeout 3600 nat session udp timeout 600 nat session icmp timeout 30UDP的老化时间建议根据实际业务类型调整。如果是VOIP、视频会议600秒是一个常见选择如果是DNS查询类默认120秒就够。调过大会导致NAT表项堆积占用设备内存调过小又会导致业务中断需要在两者之间找平衡。6.3 NAT地址映射表爆满导致无法上网当内网并发会话数超过设备NAT会话表容量上限时新的连接无法建立表现就是“新网页打不开但已经打开的在短时间内还能用”。这个故障在高并发场景比如办公终端多、P2P下载多、局域网蠕虫病毒下很常见。排查方法在设备上执行display nat session statistics查看会话总数和会话规格。如果发现会话数接近设备规格上限需要找出是哪个IP或者哪个服务的会话数异常增多。可以通过以下命令按源地址统计display nat session all | include 192.168.1.100如果发现某个IP的会话数异常高多半是该终端中了蠕虫病毒或者有P2P软件在后台疯狂建立连接。这时候可以把该终端的网线、WiFi断开或者通过ACL限制它访问外网的速率和连接数避免影响全网。还有一个容易被忽略的点NAT会话表是有“半开连接”概念的。如果内网发起大量连接后服务器不响应会导致NAT表里堆满半开连接最终占满会话表。这种情况下需要靠设备自身的半开连接保护机制来限制华为设备可以配置防攻击策略或者会话限制来缓解。这块属于进阶内容普通项目不用深究但要知道有这回事。7. 常见问题排查与避坑实录7.1 NAT回流内网无法通过公网地址访问自己的服务器内网访问自己的公网IP不生效这是网上问得最多的问题之一。比如内网用户输入www.company.comDNS解析结果是公网IP 202.100.1.10数据包发出后到达路由器路由器发现目的地址是公网IP按理说应该转给内部的NAT Server对应的192.168.1.10但很多设备默认不会把这个流量“绕回”内网导致访问失败。这个问题的本质是数据包没有经历NAT回流处理。华为设备上解决这个问题通常有两个办法第一个办法配置NAT Server时在接口下添加nat server的同时开启NAT的“内部回流”或“出口NAT回程”功能。华为AR系列通常是配置nat hairpin或者nat server mode具体命令因版本而异。以较新的版本为例在接口下开启nat hairpin enable可以允许内网用户通过公网IP访问内网服务器。第二个办法在设备上添加一条目的地址指向内网服务器转换地址的策略路由或静态路由。但这个方法不推荐配置复杂且容易产生路由黑洞。实际项目里如果是防火墙如华为USG系列一般直接在安全策略里放行“本地域到服务器区域”的流量然后启用NAT的回流功能就能解决问题。注意在配置NAT回流时一定要确认安全策略是否同时放行了从内网用户到公网IP对应服务器的流量。很多设备开了回流功能仍然访问不了就是因为在安全策略上拦住了。7.2 双出口NAT的选路问题双出口一条电信、一条联通或移动在分支和总部网络中很常见。这时候NAT配置的坑就来了两条出口线路内网流量怎么分配NAT转换后的源地址用哪个很多同事一开始习惯把两条线路都配上NAT outbound结果发现内网访问某些网站时通时不通。原因是流量从线路A出去但响应报文从线路B回来设备的NAT会话表只记录了一个方向回程如果走了另一个出口就会查不到会话数据被丢弃。解决办法是要么做完整的策略路由让同一内网IP的流量固定从某个出口出去要么做目的地址分流比如电信网段走电信出口其他网段走联通出口。华为设备上通常使用策略路由配合NAT实例来做policy-based-route rule 5 permit source 192.168.1.0 0.0.0.255 apply output-interface GigabitEthernet0/0/0然后在GigabitEthernet0/0/0上配置对应的NAT outbound。关键是在分流时不要让同一个会话的两个方向走不同的链路否则NAT会话表必然对不上。另一种做法是在两条出口上都启用NAT但是用NAT实例NAT instance来区分每个接口绑定独立的NAT实例和独立的地址映射表这样即使流量从不同出口出去各自的会话表也是独立的互不干扰。但这个方案对设备性能和配置复杂度要求更高中小型项目不太推荐。7.3 NAT环路风险地址池包含接口IP的隐患前面提过一次这里值得单独展开。NAT环路是指在NAT转换过程中转换后的源地址或目的地址再次进入NAT流程导致数据包在内网和公网之间来回跳转最终无法正确到达目标。最常见的产生原因之一就是地址池中包含了接口本身的IP地址。举个例子出接口是GigabitEthernet0/0/0IP为202.100.1.1地址池配置为202.100.1.1 202.100.1.10其中包含了接口自身IP。内网设备192.168.1.100访问外网时路由器把它转换成为了202.100.1.1接口IP自身这时数据包的源地址变成了路由器自己的接口地址并且源端口也变了。某些情况下这个报文可能会再次被NAT逻辑处理也就是所谓的环路。解决方式很简单配置地址池时把接口地址排除掉或者使用nat address-group配置时设置no-pat或者使用更精确的地址范围。华为设备上还可以用exclude-ip参数排除特定地址nat address-group 1 202.100.1.2 202.100.1.10如果运营商给你的地址段里确实包含了接口IP那就从地址池里去掉它只把剩余的地址放进池里。这个问题排查起来比较隐蔽因为流量看起来是通的但会变得非常慢而且不稳定。如果遇到NAT后速度异常、连接时好时坏排查时一定不要漏掉这个点。7.4 NAT排查速查表为了方便现场排障我把日常遇到NAT相关故障时常用的排查思路整理成一张速查表可以保存下来作为参考。现象可能原因排查与解决思路内网无法访问外网ACL未匹配内网网段、出口链路故障、NAT会话表满display acl all检查ACL配置display ip interface brief检查接口状态display nat session statistics检查会话上限外网无法访问内部服务器NAT Server配置错误、端口被封、安全策略拦截display nat server确认映射外网测试端口检查安全域策略和运营商端口封禁内网访问自己公网IP不通缺少NAT回流功能启用nat hairpin或在防火墙上放行本地到服务器区域流量会话表被占满P2P下载、病毒、半开连接过多找出异常IP限制连接数调整老化时间双出口时通时不通回程走了不同出口会话表对不上做策略路由固定选路或使用多NAT实例隔离会话表NAT转换后速度极慢地址池包含接口IP、路由环路检查地址池范围排除接口IP7.5 一个实战经验用NAT地址映射表解决视频卡顿问题最后分享一个我印象很深的实际案例。一个客户反馈办公室视频会议经常卡顿声音断断续续偶尔直接断开重连。远程看设备配置NAT采用的是Easy-ip单条千兆专线内网终端200多台从配置上看似乎没啥问题。我到现场后先查看NAT会话统计发现UDP的会话老化时间很短只有默认的120秒。视频会议软件虽然一直在发包但空闲时可能超过120秒没有UDP流量导致会话被老化掉。正常的处理流程是我把接口上的UDP NAT老化时间调成600秒同时查看display nat session发现视频会议服务器的会话表项确实在没有流量时被删除过这印证了判断。调整老化时间后视频会议恢复了稳定客户也很满意。这个案例说明很多时候NAT问题不是配置错了而是参数没有针对实际业务调优。在做网络规划时一定不要只关心“配了什么”更要关心“这个配置在这种业务场景下是否合理”。NAT会话表是需要维护的表项超时时间必须和业务心跳频率对得上否则再好的链路也会频繁断线。我做网络项目到现在最深刻的体会是NAT的配置命令本身不难难的是理解各种NAT变体适用的场景以及能在故障发生时通过地址映射表快速定位问题。记住静态NAT用来做固定映射、动态NAT用来做临时批量映射、NAT Server用来做端口映射、NAPT和Easy-ip用来做上网主力再结合地址映射表和相关统计命令绝大多数NAT场景的故障都逃不出你的手掌心。希望这篇文章能让你少走一些弯路如果你手头有NAT相关的疑难杂症也欢迎随时交流。