为何在公用 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 以除去导致该问题的规则。