NMAP 显示 GCP 中所有过滤的端口 Kubernetes/Docker

NMAP shows all filtered ports in GCP with Kubernetes/Docker

我有一个工具可以使用 nmap 到 运行 主机上的基本端口扫描来检查打开的端口。它安装在 docker 容器和我的本地机器上,运行完美(显示预期端口已打开等)。

当我将此容器部署到 Google 云中的 Kubernetes 集群并触发扫描时,我注意到端口始终显示为已过滤。

我知道显示为已过滤的所有 1,000 个端口通常意味着某处有防火墙规则导致数据包丢失,但我不知道它在哪里。

我们的基础设施设置是:

这是我尝试过的方法(没用):

我能做些什么来帮助进一步调试这个问题或找出可能应用防火墙规则的地方吗?

感谢您的帮助。

以下是我最终解决这个问题的方法:

我在 Pod 上使用了 traffic.sidecar.istio.io/includeOutboundIPRanges 注释。我将其设置为服务网格的 CIDR。

这样做使得任何从那个 pod 我的网格中的东西的请求都是通过 Envoy 发送的。 Envoy 忽略了其他所有内容(允许 nmap 请求正确扫描而不是被过滤)。

考虑到 Istio 中似乎有多少自定义可用,可能还有许多其他方法可以使它工作,但这满足了我的要求。