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

1 Antwort
0

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

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

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

profile picture
EXPERTE
beantwortet vor einem Jahr

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen