拒绝来自Google Cloud中允许的IP/标签的连接,防火墙是允许的,端口是UP和服务



我正面临着从不同的VPC连接到一组Google Cloud机器的问题。连接是通过nat box/public IP地址从源(说Project A)到目的地(说Project B)。在另一个项目(比如C)中有另一组实例。有一个通用的防火墙规则(Target Tag)允许从两个项目的公共IP地址进行连接。来自Project C的连接正在工作,但是来自Project A的连接不是。我看到A项目和B项目之间在其他端口和实例集上还有其他成功的通信。此外,端口和服务已启动并运行(我们能够在项目C的机器上获得响应)。我尝试从源和目标捕获tcpdump。我没有看到任何数据包在目的地和源只有SYN数据包。

00:33:27.484091 IP projb-instance-01.c.project-B-123.internal.59300 > 4.3.2.1.bc.googleusercontent.com.http: Flags [S], seq 2180601143, win 28400, options [mss 1420,sackOK,TS val 2746803643 ecr 0,nop,wscale 7], length 0
[user@projb-instance-01 ~]$ telnet destination-ip.domain.com 8080
Trying 1.2.3.4...
telnet: connect to address 1.2.3.4: Connection refused

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
01:22:00.499643 IP projC-instance-01.c.project-c.internal.42259 > 4.3.2.1.bc.googleusercontent.com.tproxy: Flags [S], seq 1844998068, win 28400, options [mss 1420,sackOK,TS val 4099848389 ecr 0,nop,wscale 7], length 0
01:22:00.501860 IP 4.3.2.1.bc.googleusercontent.com.tproxy > projC-instance-01.c.project-c.internal.42259: Flags [S.], seq 2589898876, ack 1844998069, win 28160, options [mss 1420,sackOK,TS val 28180717 ecr 4099848389,nop,wscale 7], length 0
01:22:00.501904 IP projC-instance-01.c.project-c.internal.42259 > 4.3.2.1.bc.googleusercontent.com.tproxy: Flags [.], ack 1, win 222, options [nop,nop,TS val 4099848391 ecr 28180717], length 0
01:22:04.889432 IP projC-instance-01.c.project-c.internal.42259 > 4.3.2.1.bc.googleusercontent.com.tproxy: Flags [P.], seq 1:6, ack 1, win 222, options [nop,nop,TS val 4099852779 ecr 28180717], length 5
01:22:04.890293 IP 4.3.2.1.bc.googleusercontent.com.tproxy > projC-instance-01.c.project-c.internal.42259: Flags [.], ack 6, win 220, options [nop,nop,TS val 28185106 ecr 4099852779], length 0
01:22:04.890390 IP 4.3.2.1.bc.googleusercontent.com.tproxy > projC-instance-01.c.project-c.internal.42259: Flags [F.], seq 1, ack 6, win 220, options [nop,nop,TS val 28185107 ecr 4099852779], length 0

调试步骤:

  1. Project B
  2. 中验证端口正在监听0而不是localhost上的一个主机上的服务。
tcp6       0      0 :::8080                 :::*                    LISTEN      2578/airflow-backend
  1. 端口和服务可从不同项目的主机访问telnet and curl from a host in project C
  2. 通过不同的主机和端口从项目A连接到项目B正在工作

请告诉我还有什么方法可以找出连接被拒绝的原因。

提前感谢。

您考虑过使用共享VPC吗?由于您尝试跨多个项目连接vm,因此这种方法应该是最安全且配置和维护最简单的。

我们发现在nat盒的iptables中有一个数据包被过滤的问题,我们删除了它,它工作了

相关内容

  • 没有找到相关文章

最新更新