分布式组网中BRAS叠加NAT用户访问外网常见故障处理
简介
本文介绍了分布式组网中BRAS叠加NAT业务的部署场景下,当用户无法上线及访问外网时的故障排除方法。
前提条件
本文适适用于V800R010C00及以后版本的NE40E/ME60系列产品。
了解分布式NAT
根据部署方式的不同,NAT业务可以分为集中式NAT和分布式NAT。
- 分布式NAT:分布式NAT是指将具有NAT能力的业务板直接插在其他设备(譬如BRAS)上实现NAT转换。图1-1 分布式NAT部署组网
- 集中式NAT:NAT集中式部署模式是一种早期的NAT部署模式,是指由一个独立的设备专门承担NAT功能,该设备旁挂CR或BRAS上。图1-2 集中式NAT部署组网
- 集中式NAT:NAT集中式部署模式是一种早期的NAT部署模式,是指由一个独立的设备专门承担NAT功能,该设备旁挂CR或BRAS上。
分布式NAT的基本流程
NAT转换的基本流程根据业务流量的方向分为NAT转换和NAT反向转换。
- NAT转换(私网发往公网的流量):
- 设备接收报文后,首先判断是否需要做NAT处理。通过引流策略绑定的UCL(用户ACL,编号范围为6000~9999)规则筛选需要做NAT处理的用户报文。若用户报文命中该UCL,则会被引流至NAT业务板进行处理。若用户报文未命中该UCL,则按照普通报文转发流程处理。
- 报文被引导至对应NAT实例下绑定的业务板上做NAT转换。报文首包到达业务板后,从NAT实例绑定的地址池和端口范围中选择IP地址和端口号替换用户报文中已有的源IP地址和端口号,并建立会话表,然后与后续报文一样,匹配会话表,做NAT转换。
- 转换后,用户报文将按照正常转发流程发往下一跳设备。
- NAT反向转换(公网发往私网的流量):
- 设备接收报文后,首先需要判断是否需要做NAT反向转换。通过引流的方式筛选需要做NAT反向转换的用户报文。若用户报文中目的地址命中FIB表中的NAT地址池路由,则需要做NAT反向转换。若用户报文中目的地址命中的是其他类型路由,则按照普通报文转发流程处理。
- 将需要做NAT反向转换的报文引流至NAT业务板。NAT业务板依据NAT映射关系表项对用户报文做反向转换,用户报文中的目的IP和端口号被替换成私网IP及对应端口号。
- NAT反向转换后,用户报文将按照正常转发流程发往下一跳节点。
分布式NAT的配置文件
配置设备的BRAS业务功能,使用户能够上线,配置步骤详见《HUAWEI NetEngine40E 路由器 配置指南-用户接入》。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 group1 group-id 1 11.1.1.1 11.1.1.5
nat outbound 3001 address-group address-group1
#
user-group group1
#
acl number 3001
rule 10 permit ip source 10.110.10.0 0.0.0.255
#
acl number 6001
rule 1 permit ip source user-group group1
#
traffic classifier c1
if-match acl 6001
#
traffic behavior b1
nat bind instance nat1
#
traffic policy p1
classifier c1 behavior b1
#
traffic-policy p1 inbound
#
domain isp1
user-group group1 bind nat instance nat1
#
ip route-static 11.11.11.0 24 null 0
#
ospf 1
import-route static
#
return
处理常见故障的诊断流程
分布式NAT用户上线失败
使用display aaa online-fail-record命令行查看用户上线失败原因并分析失败原因(见表1)。
<HUAWEI> display aaa online-fail-record
--------------------------------------------------------------------------------
User name : user1@dm1
Domain name : dm1
User MAC : XXXX-XXXX-XXXX
User access type : PPPoE
User interface : GigabitEthernet1/1/5
User access PeVlan/CeVlan : -/-
User IP address : 10.1.1.1
User ID : 1
User authen state : Authened
User acct state : AcctIdle
User author state : AuthorIdle
User login time : 2018-11-10 12:54:45
Online fail reason : Add nat user data fail(Search Public Addr Fail)
--------------------------------------------------------------------------------
失败原因 |
解释与建议 |
---|---|
Add nat user data fail(Input Error) |
添加NAT用户失败(输入错误)。
|
Add nat user data fail(Create User Fail) |
添加NAT用户失败(创建用户失败)。 检查License下的会话表资源配置。 |
Add nat user data fail(Port PreAlloc Fail) |
添加NAT用户失败(端口预分配失败)。 检查地址池和端口资源配置。 |
Add nat user data fail(Syn User To Spu Fail) |
添加NAT用户失败(同步用户失败)。 |
Add nat user data fail(Search Public Addr Fail) |
添加NAT用户数据失败(匹配公网地址失败)。 检查地址池配置。 |
Add nat user data fail(add slave user fail) |
添加NAT用户失败(CGN备板/备框上线失败)。 检查备板/备框硬件、资源及配置。 |
Add nat user data fail(public resource conflict) |
添加NAT用户失败(公网资源冲突)。 |
Add nat user data fail(slave VPN mismatch) |
添加NAT用户失败(CGN备板/背框VPN不匹配)。 检查备板/备框的VPN配置。 |
Add nat user data fail(IP Access User Limit) |
添加NAT用户失败(用户接入限制)。 检查设备上允许的用户接入数配置。 |
分布式NAT用户上线成功但无法访问外网
- 故障常见原因
- 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-2 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业务割接后,部分用户无法上线。
- 执行命令display aaa online-fail-record查看用户上线失败原因为:
Online fail reason : Add CGN user data fail(Port PreAlloc Fail)
查找表1-1可以得出用户上线失败原因为端口预分配失败。
- 查看用户公网地址和端口配置。
nat instance cpe1 id 1
port-range 4096
nat address-group group1 group-id 0
section 0 1.1.136.0 mask 24
nat outbound 3001 address-group group1
#
配置端口段为4096,每个公网地址有16(65536/4096)个端口段。公网地址配置为256个,所以允许获得端口段的最大用户数为4096(256*16)个。
- 查看ACL配置。发现允许接入的用户数远远大于4096个。
acl number 3001
rule 5 permit source 10.1.0.0 0.0.7.255
rule 10 permit source 10.1.8.0 0.0.7.255
rule 15 permit source 10.1.16.0 0.0.7.255
#
- 根据以上配置分析出该故障的可能原因为私网用户数量太多,而公网地址少,导致部分用户无法获取到端口资源而无法上线。合理规划公私网比例,增加NAT实例下公网地址数量,或者减少端口块大小,可以解决上述故障。
故障总结
公私网的比例超规格,导致用户分不到端口资源上线失败。
配置NAT业务后部分用户无法上线的故障处理
故障描述
NE40E设备上配置NAT业务后,部分用户无法上线。
- 执行命令display aaa online-fail-record查看用户上线失败原因为:
Online fail reason : Add CGN user data fail(Search Public Addr Fail)
查找表1-1可以得出用户上线失败原因为获取公网地址失败。
- 查看用户公网地址和端口配置。
nat instance cpe1 id 1
port-range 4096
nat address-group group1 group-id 0
section 0 1.1.1.0 mask 24
nat outbound 3001 address-group group1
#
配置端口段为4096,每个公网地址有16(65536/4096)个端口段。公网地址配置为256个,所以允许获得端口段的最大用户数为4096(256*16)个。
- 查看ACL配置。允许接入的私网用户数小于4096个。公私网的比例没有超规格。
acl number 3001
rule 1 permit source 10.1.1.0 0.255.255.255
#
- 无法获取公网地址的私网用户地址为10.1.1.1,查看到ACL3001中并不包含此私网地址,因此可以确认故障原因是由于ACL中未配置10.1.1.1地址网段,导致该网段用户在CGN单板上无法分配到公网地址。
故障总结
过滤规则ACL配置私网网段遗漏,导致在上线过程中在NAT业务板上查找不到对应的公网地址而上线失败。
相关信息
如果您需要了解NAT业务的更多信息及配置方法,可参考产品文档《NE40E V800R011C00SPC200 产品文档 01》。