我正在尝试为 kubernetes 设置网络策略,我可以找到更多常见问题这里。
就这个特定问题而言,这是我在 nginx 日志中得到的行:
10.244.0.0 - - [18/Mar/2020:19:47:16 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.69.1-DEV" "192.168.80.88"
注意$remote_addr
nginx 看到的是10.244.0.0
。但这不是一个真实的 IP 地址!
我读这个问题而且看起来,有时这样的地址可能是有效的,但这不是标准的。
就这个问题而言,管理的 CNI 插件10.244.0.0/16
是印花布。
如果我尝试将NetworkPolicy 对象 10.244.0.0/32
,上述请求不再通过,这再次向我证实这不是真正的 IP。但如果我将它们列入白名单,10.244.0.0/16
它们就不会有问题。
是什么让 nginx 认为请求来自这个 xy0.0 地址?我该如何模拟它,比如使用 curl?
答案1
10.244.0.0 是一个完全有效的 IP 地址 - 在任何前缀为 10.240.0.0/13 或更短的子网中,或在 10.244.0.0/31 点对点子网中。