UDP客户端通过AWS NAT网关无法从UDP服务器接收响应。

0

【以下的问题经过翻译处理】 我有一个COAP客户端,它向AWS NLB发送请求,然后通过IP类型的目标组将请求转发到COAP服务器。服务器通过NAT网关将响应发送回客户端,但客户端没有接收响应。

  • 从日志中确认COAP服务器正在接收请求,并将响应发送回正确的IP地址和端口号。我还验证了NAT网关的配置是否正确,以及它是否将响应转发回客户端。
  • 我检查了NLB、UDP服务器和NAT网关的安全组设置,它们都似乎是正确的。我也检查了网络ACL设置,并确保它们不会阻止任何流量。
  • 我检查了COAP客户端,在我的笔记本电脑上托管服务器时,它可以接收响应。
  • 我需要使用NAT网关,因为我必须从服务器向互联网发出一些请求。

详细信息:

假设IP地址为:

  Coap客户端:
    公共的:123.123.123.123

  NLB:
    私人的:1.1.1.1

  运行服务器的ec2实例:
    私人的:2.2.2.2

  Nat网关:
    私人的:3.3.3.3


发送健康请求时COAP服务器中的日志:

CoapAssistanceResource - health request,exchange.getSourceAddress()是:/123.123.123.123
CoapAssistanceResource - health request,exchange.getSourceSocketAddress()是:/123.123.123.123:40945
CoapAssistanceResource - health request,exchange.getSourcePort()是:40945
CoapAssistanceResource - health request,exchange.getRequestCode()是:GET
CoapAssistanceResource - health request,response is: 2.03


Vpc流日志如下:

| ${dstaddr} | ${dstport} | ${srcaddr

profile picture
专家
已提问 5 个月前39 查看次数
1 回答
0

【以下的回答经过翻译处理】 我的猜测是,在NLB和客户端之间存在一些防火墙(或其他网络安全或NAT过程),它拒绝了发送给客户端的入站数据包(这是来自服务器的回复数据包)。由于该回复数据包来自与NLB不同的IP地址(它来自NAT网关地址),所以客户端很可能不会允许它。这只是猜测。您可以启用VPC Flow日志并查看数据包是否从服务器传输到NAT网关,然后传输到Internet网关来确认这一点。

不过,我不确定为什么您要直接将回复数据包从服务器发送到客户端。为什么不通过NLB回复呢?如果您正在使用实例目标组,则会自动发生这种情况。由于您正在使用IP目标组,因此应将数据包发送回NLB IP地址,然后它将将其发送回客户端。

无论如何配置NLB,服务器仍可以使用NAT网关访问Internet上的其他资源。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则

相关内容