常见问题
本文总结使用过程中的常见问题,帮助定位、排查并解决相关问题。
使用与配置
实例配置
为什么某些可用区无法购买NAT网关?
由于资源建设原因,NAT网关在某些可用区尚未部署。可以调用ListEnhanhcedNatGatewayAvailableZones查询支持创建NAT网关的可用区。
虽然某些可用区无法创建,但可以在任意已部署NAT网关的可用区创建NAT网关,从而为整个VPC内任意可用区的实例或资源提供公网访问服务。
NAT网关实例是否支持切换所属交换机和私网IP地址?
不支持。如需变更部署的交换机,只能创建新的NAT网关并修改路由条目。
NAT网关是否支持处理分片数据包?
支持处理TCP、UDP以及ICMP分片数据包。
SNAT 配置
当多条SNAT条目的源网段重叠时,如何匹配SNAT条目的优先级?
系统会根据最长掩码匹配规则确定优先为哪一条SNAT条目提供互联网代理服务。
ECS粒度的SNAT条目:源网段的子网掩码为
/32
,长度最长,优先级最高,优先匹配。其他粒度的SNAT条目:根据源网段的子网掩码长度进行匹配,长度越长,优先级越高,越先匹配。
NAT网关的SNAT连接空闲超时时间是多少?
TCP协议:900秒。
UDP协议:60秒。
ECS实例可以通过公网NAT实例中的SNAT访问同一个NAT实例上的DNAT服务吗?
NAT网关切换至NAT模式后,当公网NAT网关实例上同时创建了SNAT和DNAT,该公网NAT网关实例支持通过SNAT能力去访问同公网NAT网关实例内的DNAT服务。
如何确认NAT网关是否为NAT模式?
调用DescribeNatGateways查询
EipBindMode
字段返回NAT
,则为NAT模式。如何切换至NAT模式?
调用ModifyNatGatewayAttribute
EipBindMode
字段传入NAT
。
DNAT 配置
如果ECS实例绑定了EIP,是否支持为该ECS实例创建DNAT条目?
支持,但是外部用户无法通过此条目访问该ECS实例。如需通过DNAT条目访问该ECS实例,需要先解绑ECS实例的EIP。
EIP 配置
创建NAT条目时,为什么在公网IP地址列表中找不到已创建的EIP?
创建的EIP和NAT网关不在同一地域。请选择与NAT网关同一地域下的EIP,或在NAT网关地域重新创建EIP。
NAT网关可以将一个EIP或NAT IP同时用于DNAT和SNAT条目吗?
可以。但是当DNAT条目粒度为任意端口时,该EIP或NAT IP将无法再用于创建其他DNAT或SNAT条目。
公网NAT网关绑定EIP的两种模式有什么区别?
通过控制台创建的公网NAT网关默认为NAT模式,多EIP网卡可见模式仅可通过调用CreateNatGateway并指定EipBindMode
创建。
如需结合 IPv4 网关使用,必须使用NAT模式。
如需更高的EIP管理灵活性,可以选择多EIP网卡可见模式。
绑定模式 | NAT模式 | 多EIP网卡可见模式 |
切换绑定模式 | 不支持切换至多EIP网卡可见模式。 |
说明
|
在扩充公网NAT网关的EIP时,是否会消耗NAT网关所在交换机内的可用IP地址 |
|
|
是否支持IPv4网关 | 支持开启。 | 不支持开启。 |
ECS实例是否可以通过公网NAT实例中的SNAT访问同一NAT实例上的DNAT服务 | 可以访问。 | 无法访问。 |
创建方式 |
| 调用CreateNatGateway指定 |
网络连通性排查
无法通过SNAT访问公网
检查指向NAT的默认路由配置:
在公网 NAT 网关实例详情页查看指向NAT的专有网络路由信息,确认是否有指向该公网NAT网关的路由条目。如缺失,需在相关路由表配置目标网段为
0.0.0.0/0
的路由指向该公网NAT网关。验证SNAT规则配置:
在公网 NAT 网关实例详情页的SNAT管理页签,确认SNAT条目的状态为可用。
确认访问公网的源地址在源网段内。
排查非NAT问题:
跨境访问:访问线路不稳定。
域名访问:检查域名备案解析是否正常。
访问控制:检查访问对端是否配置了访问控制策略或将实例绑定的EIP加入了白名单。
检查是否配置IPv4网关:与 IPv4 网关结合使用时,确保NAT网关为NAT模式,并正确配置路由。
新建ECS无法通过SNAT访问公网
当VPC内新建交换机的ECS实例无法通过SNAT访问公网,而其他交换机下的ECS实例可以正常访问时:
确认 SNAT 条目中是否包含新建的交换机的网段:
NAT 网关不会为新建的交换机配置SNAT条目,需在实例详情页的SNAT管理页签检查已有SNAT条目的源网段是否包含新建交换机的网段。如果未包含,需手动配置SNAT条目。
如果新建交换机绑定了自定义路由表,确认是否配置目标网段为
0.0.0.0/0
,下一跳为NAT网关的路由条目,可手动添加对应的路由条目。
多个NAT网关共存时某个ECS无法访问公网
该 VPC 仅使用系统路由表,且只有一条目标网段为0.0.0.0/0
的路由条目指向其中一个NAT网关,当该NAT网关的SNAT条目的源网段不包含某交换机的网段时,该交换机下的ECS实例无法访问公网。
如果无需使用多个NAT网关,建议删除无需使用的NAT网关,并为保留的NAT网关增加SNAT条目,覆盖交换机的网段。
如果需要使用多个NAT网关,可参考同VPC内多公网NAT网关部署方案配置。
使用SNAT访问FTP服务端访问失败
可能原因如下:
FTP模式为主动模式:配置SNAT条目的NAT网关仅支持主动出向访问,FTP主动模式下数据连接的建立将因SNAT无法支持主动入向而导致失败。需使用FTP被动模式连接FTP服务器。
SNAT条目选择了多个EIP:FTP控制连接和数据连接在SNAT后可能使用了不同的EIP,导致FTP无法正常交互。需开启SNAT规则的EIP亲和性能力,确保来自同一客户端的连接始终使用相同的EIP。也可以为FTP客户端设置独立的SNAT规则,并绑定单一EIP。
配置DNAT条目后无法被公网访问
检查指向NAT的默认路由配置:
DNAT条目中配置的实例被访问后回复响应报文时,也需要有去往NAT网关的路由。需确认使用的系统路由表或自定义路由表中是否配置目标网段为
0.0.0.0/0
的路由指向该NAT网关,可手动添加对应的路由条目。验证DNAT规则配置:
在公网 NAT 网关实例详情页的DNAT管理页签,确认DNAT条目的状态为可用。
确认DNAT规则配置的端口、协议、目标地址等参数正确。
检查安全组、防火墙配置和服务端口开启状态:
在同VPC内的其他ECS实例执行
telnet <ECS实例私网IP地址> <私网端口>
命令,确认DNAT条目中配置的ECS实例的私网端口是否可被访问。如果回显
unable connect to remote host: Connection timed out
,则私网端口不可被私网访问,则也不可被公网访问。如果回显
Connected to <ECS实例私网IP地址>
,则私网端口可被访问。
私网端口可被访问时,需确认ECS实例的安全组规则是否允许公网访问对应端口,以及防火墙是否开放对应端口。
排查域名解析问题:如果通过域名访问不通,但通过EIP可以直接访问,检查域名解析设置和备案状态。
检查是否配置IPv4网关:与 IPv4 网关结合使用时,确保NAT网关为NAT模式,并正确配置路由。
验证网卡一致性:当ECS有多个网卡时,需检查数据的入网卡和出网卡是否一致,可参考统一公网出口IP进行配置。
与 IPv4 网关结合使用
IPv4网关与NAT网关的区别
IPv4网关和公网NAT网关功能并无交叉。参考公网访问,详细了解相关网络组件之间的关系。
网络组件 | IPv4网关 | 公网NAT网关 |
功能定位 | VPC边界上的公网IPv4流量控制组件 | VPC内部的网络地址转换设备 |
使用场景 | 集中控制公网访问流量 | 统一公网流量出口 |
是否提供公网访问能力 | 不提供,仅控制公网流量 | 通过绑定EIP提供公网访问能力 (公网访问能力是由EIP提供的,NAT网关本身不提供公网访问能力) |
创建 IPv4 网关后,交换机可区分为:
公有交换机:绑定的路由表中存在目标网段为
0.0.0.0/0
,下一跳为IPv4网关的路由,其中的资源绑定公网IP即可访问公网。私有交换机:绑定的路由表中不存在指向IPv4网关的路由,其中的资源绑定公网IP后无法直接访问公网。
结合公网NAT网关使用时,需要将公网NAT网关部署在公有交换机,部署在私有交换机的ECS实例配置路由指向公网NAT网关,将访问公网的流量路由至公网NAT网关,再使用公网NAT网关绑定的公网IP访问公网。需注意:
确保公网NAT网关的
EipBindMode
为NAT
模式,兼容IPv4网关。控制台创建的公网NAT网关默认为
NAT
模式,调用CreateNatGateway创建时,EipBindMode
需传入NAT
。创建完成后,可以调用ModifyNatGatewayAttribute调整EipBindMode
。如果已创建
EipBindMode
为MULTI_BINDED
模式的公网NAT网关,由于不兼容IPv4网关,将无法创建IPv4网关。如果已创建IPv4网关,调用CreateNatGateway创建
EipBindMode
为MULTI_BINDED
模式的公网NAT网关,将无法绑定EIP。
为避免激活IPv4网关后私有交换机中的资源无法访问公网,确保在激活IPv4网关前完成路由配置。
切换公网NAT网关为NAT模式的影响
切换后,公网 NAT 网关可以和 IPv4 网关结合使用。当实例同时创建SNAT和DNAT时,支持通过SNAT能力去访问同公网NAT网关实例内的DNAT服务。
计费影响:切换过程免费,不会产生额外费用。
业务影响:切换过程中网络连接会出现秒级闪断,闪断次数与绑定的EIP数量有关。
配置影响:
不改变公网出口IP地址和原有的配置。
绑定一个EIP将占用NAT网关所在交换机的一个私网IP,需确保NAT网关所在交换机的私网IP充足。
切换后不支持关闭兼容IPv4网关模式。
性能与监控
客户端访问公网服务时连接超时、下载速度慢
流量数据监控
查看NAT网关绑定的弹性公网IP监控,检查是否存在超带宽限制丢包。如有,建议升级EIP的带宽。
ECS实例较多不便排查ECS实例的异常流量情况时,使用NAT网关流量监控来排查异常流量来源。
Linux内核优化
问题原因:如果存在多台Linux操作系统的ECS实例通过NAT网关并发访问Linux操作系统服务端,由于Linux操作系统内核实现的原因,可能存在TCP连接请求被Linux操作系统内核丢弃而导致连接超时或失败的情况。具体原因,可参考Linux内核协议栈丢弃SYN报文的主要场景剖析。
问题解决:建议关闭服务端
Linux net.ipv4.tcp_tw_recycle
选项,或关闭客户端Linux net.ipv4.tcp_timestamps
选项。
NAT网关端口分配失败丢失数的含义
含义:通过NAT网关访问目的地址时,由于并发连接数过高,导致分配的TCP或UDP端口失败,从而造成连接被丢弃的数量。
问题原因:单个EIP或NAT IP可提供SNAT分配的端口数量有限。当访问同一个目的地址的会话数量过多而配置的SNAT规则使用的EIP或NAT IP数量过少时,会造成端口分配失败。
问题解决:当端口分配失败丢失数持续增长时,增加SNAT规则中配置的EIP或NAT IP数量。
计费与配额
公网NAT网关实例计费类型转换
当前支持的计费类型:仅支持后付费按使用量计费。
已停止新购的计费类型:预付费包年包月计费、后付费按固定规格计费。
存量实例转换:
存量的后付费按固定规格和存量包年包月的NAT网关实例,可以转换为后付费按使用量计费。
按固定规格计费转换为按使用量付费不支持回退,请谨慎操作。
NAT 网关的费用突然增加
NAT 网关为按量付费产品,费用增加通常意味着通过 NAT 网关处理的流量增多。可通过以下方式排查:
NAT 网关资源包退订
NAT网关资源包支持五天未使用退订和非全额退订,具体请参见退订规则说明。
删除NAT网关后依旧出账
删除NAT网关实例后依旧收到账单,是由计费系统的延迟出账机制导致。收到的账单是针对实例删除前所产生的资源使用费用,可以在账单详情中查看具体的消费时间段,以确认费用的归属周期。
每个账号可创建的NAT网关数量
不针对阿里云账号限制创建NAT网关的数量。