集中式NAT用户访问外网常见故障处理
简介
本文针对在集中式组网中进行NAT转换时常见的故障,说明故障处理流程和详细的故障处理步骤。
前提条件
本文适适用于V800R010C00及以后版本的NE40E/ME60系列产品。
了解集中式NAT
根据部署方式的不同,NAT业务可以分为集中式NAT和分布式NAT。
- 集中式NAT:NAT集中式部署模式是一种早期的NAT部署模式,是指由一个独立的设备专门承担NAT功能,该设备旁挂CR或BRAS设备上。图1-1 集中式NAT部署组网
- 分布式NAT:分布式NAT是指将具有NAT能力的业务板直接插在其他设备(譬如BRAS)上实现NAT转换。图1-2 分布式NAT部署组网
集中式NAT的基本流程
NAT转换的基本流程根据业务流量的方向分为NAT转换和NAT反向转换。
- NAT转换(私网发往公网的流量):
- 设备接收报文后,首先判断是否需要做NAT处理。通过引流策略绑定的ACL规则筛选需要做NAT处理的用户报文。若用户报文命中该ACL,则会被引流至NAT业务板进行处理。若用户报文未命中该ACL,则按照普通报文转发流程处理。
- 报文被引导至对应NAT实例下绑定的业务板上做NAT转换。报文首包到达业务板后,从NAT实例绑定的地址池和端口范围中选择IP地址和端口号替换用户报文中已有的源IP地址和端口号,并建立会话表,然后与后续报文一样,匹配会话表,做NAT转换。
- 转换后,用户报文将按照正常转发流程发往下一跳设备。
- NAT反向转换(公网发往私网的流量):
- 设备接收报文后,首先需要判断是否需要做NAT反向转换。通过引流的方式筛选需要做NAT反向转换的用户报文。若用户报文中目的地址命中FIB表中的NAT地址池路由,则需要做NAT反向转换。若用户报文中目的地址命中的是其他类型路由,则按照普通报文转发流程处理。
- 将需要做NAT反向转换的报文引流至NAT业务板。NAT业务板依据NAT映射关系表项对用户报文做反向转换,用户报文中的目的IP和端口号被替换成私网IP及对应端口号。
- NAT反向转换后,用户报文将按照正常转发流程发往下一跳节点。
集中式NAT的基本配置
以NAT出接口引流策略为例,配置文件如下:
license
active nat session-table size 6 slot 1 card 0
#
service-location 1
location slot 1 card 0
#
service-instance-group group1
service-location 1
#
nat instance nat1 id 1
service-instance-group group1
nat address-group address-group1 group-id 1 11.1.1.1 11.1.1.5
nat outbound 3001 address-group address-group1
#
acl number 3001
rule 1 permit ip source 192.168.10.0 0.0.0.255
#
interface GigabitEthernet 2/0/1
undo shutdown
ip address 1.2.3.4 255.255.255.0
nat bind acl 3001 instance nat1
#
处理常见故障的诊断流程
- 故障常见原因
- NAT业务板资源未分配成功。
- NAT配置信息错误,导致会话建立失败。
- NAT网关因无路由而到外网主机不可达。
- ACL配置错误。
- 内网主机到NAT网关不可达。
- ALG未使能。
- 故障处理步骤
- 查看是否给业务板分配资源。
- 执行命令display nat session-table size查看当前各个业务板分配的会话表资源。例如:
<HUAWEI> display nat session-table size
---------------------------------------------------------------------------
TotalSize :48 M
UsedSize :4 M
FreeSize :44 M
SlotID CpuID CurSessTblSize CfgSessTblSize ValidFlag
1 0(engine) 2 M 2 M Valid
2 1(engine) 2 M 2 M Valid
---------------------------------------------------------------------------
表1-1 display nat session-table size命令输出信息描述项目
描述
TotalSize
会话表资源总数。
UsedSize
已使用的会话表资源数。
FreeSize
未使用的会话表资源数。
SlotID
业务板槽位号。
CurSessTblSize
当前会话表资源数。
CfgSessTblSize
配置的会话表资源数。
ValidFlag
会话表资源的标志位:
- Valid:表示会话表资源可用。
- Invalid:表示会话表资源不可用。
- 如果单板没有分配资源或者使能特性功能,则需要重新配置。配置具体请参考《HUAWEI NetEngine40E 路由器 配置指南-NAT与IPv6过渡技术》分册的配置NAT会话表和带宽资源章节。
- 执行命令display nat session-table size查看当前各个业务板分配的会话表资源。例如:
- 检查NAT业务是否有正确的会话信息或用户信息。
- 执行命令display nat session table检查NAT业务是否建立了正确的会话信息。例如:
<HUAWEI> display nat session table slot 1 engine 0
This operation will take a few minutes. Press 'Ctrl+C' to break ...
Slot: 1 Engine: 0
Current total sessions: 1.
udp: 192.168.3.198:1234[1.1.1.2:2234]--> 11.11.11.11:1024
- 如果检查会话信息中协议、地址和端口的信息不正确,请继续检查NAT业务配置,如果NAT业务的配置有误,请重新配置。NAT业务的配置具体请参考《HUAWEI NetEngine40E 路由器 配置指南-NAT与IPv6过渡技术》分册的NAT基本配置章节。
- 如果检查会话信息中协议、地址和端口的信息正确,请执行步骤3。
- 执行命令display nat user-information查看NAT业务的上线用户信息。
- 如果检查用户信息中地址、端口和会话限制信息不正确,请继续检查NAT业务配置,如果NAT业务的配置有误,请重新配置。NAT业务的配置具体请参考《HUAWEI NetEngine40E 路由器 配置指南-NAT与IPv6过渡技术》分册的NAT基本配置章节。
- 如果检查用户信息中地址、端口和会话限制信息正确,请执行步骤3。
- 执行命令display nat session table检查NAT业务是否建立了正确的会话信息。例如:
- 检查NAT设备到外网目的主机的可达性。
执行命令ping确认NAT设备和外网目的主机是否可达。
- 如果ping不通外网目的主机,执行命令display ip routing-table查看当前的路由表信息,检查NAT设备上是否配置了到达外网的正确路由。如果路由配置不正确,请根据以下情况选择重新配置路由:
- 如果内网用户需要访问的外网地址和NAT设备的外网接口不在一个网段,且NAT设备上没有相应的路由,需要在该网关上配置静态路由,使内网的报文经过NAT后,可以通过正确的接口转发出去。
- 如果内网用户需要访问的外网地址和NAT设备的外网接口在同一个网段,无需配置静态路由。
- 如果NAT设备可以ping通外网目的主机,请执行步骤4。
- 如果ping不通外网目的主机,执行命令display ip routing-table查看当前的路由表信息,检查NAT设备上是否配置了到达外网的正确路由。如果路由配置不正确,请根据以下情况选择重新配置路由:
- 检查内网主机的路由配置。
执行命令display ip routing-table检查内网主机上是否配置了正确的路由,使得发向外网的报文可以发送到NAT设备。
- 如果内网主机的路由配置不正确,请重新配置路由。
- 如果内网主机的路由配置正确,请执行步骤5。
- 请收集如下信息,并联系技术支持工程师。
- 上述步骤的执行结果。
- 设备的配置文件、日志信息、告警信息。
- 查看是否给业务板分配资源。
NAT转换后访问外网丢包的故障处理
故障描述
NE40E设备上有大量NAT用户流量转发有丢包现象,少量NAT用户流量转发正常。比如到外网的 dns 请求报文,在nat 转换前可以获取5个报文,在 nat 转换后只能获取到一个。
主要配置
license
active nat session-table size 6 slot 1 engine 0
active nat bandwidth-enhance slot 1 engine 0
#
service-location 1
location slot 1 engine 0
#
service-instance-group 1
service-location 1
#
nat instance nat1 id 1
service-instance-group 1
nat address-group 1 group-id 1.1.1.1 1.1.1.15
nat outbound any address-group 1
nat session-limit total 65535
nat reverse-session-limit total 4096
nat alg all
nat filter mode full-cone
#
- 故障复现过程中查看NAT用户信息,发现当前UDP会话数已经达到UDP会话限制上线。
<HUAWEI> display nat user-information cpe ipv4 192.168.1.2
This operation will take a few minutes. Press 'Ctrl+C' to break ...
Slot: 1 Engine: 0
Total number: 0.
---------------------------------------------------------------------------
CPE IP : 192.168.1.2
VPN Instance : -
Public IP : 1.1.1.1
NoPAT Public IP : -
Start Port : 1024
Port Range : 0
Extend Port Alloc Times : 0
Extend Port Alloc Number : 0
First/Second/Third Extend Port Start : 0/0/0
Total/TCP/UDP/ICMP Session Limit : 65535/10240/10240/512
Total/TCP/UDP/ICMP Session Current : 10240/0/10240/0
Total/TCP/UDP/ICMP Port Limit : 0/0/0/0
Total/TCP/UDP/ICMP Port Current : 10240/0/10240/0
Nat ALG Enable : ALL
---------------------------------------------------------------------------
- 查看nat丢包存在Limit on user-based UDP sessions的丢包,说明UDP会话数达到上限。
<HUAWEI> display nat statistics discard slot 1 engine 0
This operation will take a few minutes. Press 'Ctrl+C' to break ...
Slot: 1 Engine: 0
---------------------------------------------------------------------------
Bufferring a fragment timed out :1
The session cannot be found :96333
Traffic limit when a packet is sent from data plan to management plane :1
The session failed to be created: :140895
The packet failed to be sent to the VRP :1
IPV4 Buffering a fragment failed :38
The policy for the NAT conversion cannot found :55
Limit on user-based UDP sessions :110209
---------------------------------------------------------------------------
- 在NAT实例下放开UDP会话上限后,上述问题解决。
nat instance nat1 id 1
service-instance-group 1
nat address-group 1 group-id 1.1.1.1 1.1.1.15
nat outbound any address-group 1
nat session-limit udp 65535
nat session-limit total 65535
nat reverse-session-limit total 4096
nat alg all
nat filter mode full-cone
#
故障总结
配置中放开了session total的限制,但是没有放开udp的限制,访问的链接全是udp的session,数量超过了默认的10240。
NAT转换后无法访问网页的故障处理
故障描述
某局NE40E设备,配置一块NAT板作为用户接入互联网使用。现由于业务发展,需要增加用户地址池中的IP地址。改造前,每个用户地址池都包含一个32位掩码的IP地址,不同的用户内部地址网段分别对应设备上不同的地址池,用户可以正常上网。进行改造时,首先将原来的用户地址池删除,然后新建一个用户地址池,加入一个27位掩码的网段,新建的用户地址池中包括了改造前的用户地址。更改配置完成后测试用户网段正常上网,nat session数和接口流量与更改配置前持平。过了一段时间后,个别用户反映不能上网,更改为其他IP地址后才能正常上网。查看设备上无告警信息。
- 用户配置调整之前可以正常上网,首先可以排除设备硬件故障。
- 将不能上网的用户地址更改为其他地址可以上网,可以说明NAT业务配置正常。
- 怀疑用户IP地址有冲突,将用户计算机网卡禁用启用和重启计算机后都未提示IP地址有冲突,排除用户端IP地址问题。
- 在NE40E上执行命令display nat session table查看nat session表项,发现故障用户session会话数很少,状态多为同步状态,并且session表项都对应着地址池中固定的几个地址。
- 检查发现这几个固定IP地址都是改造前地址池中的地址,执行命令display ip routing-table在路由表中查看这几个地址的32位掩码静态路由,下一跳都指向Null 0。删除这些黑洞路由后,用户上网恢复正常。
- 在改造前,设备上配置了一条目的网段为地址池中地址,下一跳为Null 0的黑洞路由,地址池中地址段与黑洞路由完全匹配。改造后,新建地址池的地址段包括了改造前地址池的地址段,改造前的32位掩码的黑洞路由优先匹配,造成了公网发往私网的流量中,匹配上这些黑洞路由的报文不能进行NAT反向转换,用户不能上网;删除这些黑洞路由后,公网发往私网的流量的NAT反向转换恢复正常。
- 设备上冗余无效的配置可能会造成故障,要及时删除。
- 数据配置需严格按照开局指导书来进行。
相关信息
如果您需要了解NAT业务的更多信息及配置方法,可参考产品文档《NE40E V800R011C00SPC200 产品文档 01》。