为何在公用 VLAN 上删除某些包?
虚拟私有云 传统基础设施
您发现 IBM Cloud Kubernetes Service 工作人员在使用具有私有源地址的公共 VLAN 时丢弃了某些无效数据包或入口数据包。 例如,为集群创建应用程序负载均衡器 (ALB),但无法连接到该集群。 您接收到类似于 Unable to connect to <ALB> 的消息。
对于某些自定义网络配置,例如,如果你配置 VPN 以允许来自私有源 IP 地址的入口流量进入公共 IKS LoadBalancer,那么你可能会发现你的自定义流量会下降,并且不再可用。 该操作是由 Kubernetes 工作节点 mangle iptable 中设置的分布式拒绝服务 (DDOS) 规则引起的。
Mangle iptable 包含以下规则。
2488 214K DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID /* DDOS: Blocks RST flood and TCP XMAS Flood (w and w/o data) */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x00 /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x03/0x03 /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x06 /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x05/0x05 /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x11/0x01 /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x30/0x20 /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x11/0x01 /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x18/0x08 /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x3F /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x00 /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x29 /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x2B /* DDOS: Invalid packets */
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x37 /* DDOS: Invalid packets */
0 0 DROP all -- eth1 * 224.0.0.0/3 0.0.0.0/0 /* DDOS: Drop private source IPs */
21803 1744K DROP all -- eth1 * 169.254.0.0/16 0.0.0.0/0 /* DDOS: Drop private source IPs */
0 0 DROP all -- eth1 * 172.16.0.0/12 0.0.0.0/0 /* DDOS: Drop private source IPs */
0 0 DROP all -- eth1 * 192.0.2.0/24 0.0.0.0/0 /* DDOS: Drop private source IPs */
0 0 DROP all -- eth1 * 0.0.0.0/8 0.0.0.0/0 /* DDOS: Drop private source IPs */
0 0 DROP all -- eth1 * 240.0.0.0/5 0.0.0.0/0 /* DDOS: Drop private source IPs */
0 0 DROP all -- eth1 * 10.0.0.0/8 0.0.0.0/0 /* DDOS: Drop private source IPs */
0 0 DROP all -- eth1 * 192.168.0.0/16 0.0.0.0/0 /* DDOS: Drop private source IPs */
0 0 ACCEPT all -- vethlocal * 127.0.0.0/8 0.0.0.0/0 /* DDOS: Accept local LB traffic */
0 0 DROP all -- !lo * 127.0.0.0/8 0.0.0.0/0 /* DDOS: Drop private source IPs */
要解决此问题,请 创建专用负载均衡器 以允许此流量具有专用源 IP 地址。 如果这无法解决该问题,或者由于某种原因,您无法创建专用负载均衡器,那么请创建一个 daemonset 以除去导致该问题的规则。