パブリック VLAN 上で特定のパケットがドロップされるのはなぜですか?
仮想プライベートクラウド クラシック・インフラストラクチャー
プライベート・ソース・アドレスを持つパブリック VLAN 上で IBM Cloud Kubernetes Service ワーカーが特定の無効なパケットまたは Ingress パケットをドロップしていることが分かります。 例えば、クラスター用にアプリケーション・ロード・バランサー (ALB) を作成したが、それに接続できないとします。 Unable to connect to <ALB> のようなメッセージを受け取ります。
特定のカスタム・ネットワーク構成では、例えば、プライベート・ソース IP アドレスからのパブリック IKS LoadBalancer への ingress トラフィックを許可するように VPN を構成すると、カスタム・トラフィックがドロップして使用できなくなることがあります。 このアクションは、Kubernetes ワーカー・ノードのマングル iptable に設定されている分散型サービス妨害 (DDOS) ルールによって引き起こされます。
マングル 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 を作成します。