Flapping Detect
Banned Clients機能に基づき、EMQXは頻繁にログインするクライアントを自動的にバンして、他のクライアントに影響を与える可能性のあるサーバーリソースの消費を防止します。これらのクライアントは一定期間バンされます。
ただし、自動バンはクライアントIDによってのみクライアントをバンし、ユーザー名やIPアドレスではバンしないことに注意してください。悪意のあるクライアントは、試行ごとにクライアントIDを変更することで攻撃を続ける可能性があります。
この機能はデフォルトで無効になっており、EMQXダッシュボードまたは設定ファイルから有効化できます。
ダッシュボードでFlapping Detectを有効化する
- ダッシュボードにアクセスし、左側のナビゲーションメニューから アクセス制御 -> Flapping Detect をクリックして、Flapping Detect ページに入ります。
- トグルスイッチをクリックしてフラッピング検出機能を有効にします。
- 検出時間ウィンドウ: システムがクライアントのフラッピング動作を監視する期間を指定できます。デフォルト値は
1分です。 - 最大切断回数: 検出時間ウィンドウ内でMQTTクライアントが許容される最大切断回数を指定できます。フラッピング動作を示すクライアントを特定し対応するための正確な基準を設定可能です。デフォルト値は
15です。 - バン期間: クライアントをバンする期間を指定できます。デフォルト値は
5分です。
- 検出時間ウィンドウ: システムがクライアントのフラッピング動作を監視する期間を指定できます。デフォルト値は
- 変更を保存 をクリックして設定を完了します。

設定ファイルでFlapping Detectを有効化する方法
以下の設定を追加することで、フラッピング検出機能を有効にすることも可能です。
bash
flapping_detect {
enable = true
## 検出時間ウィンドウ内でMQTTクライアントが許容される最大切断回数
max_count = 15
## システムがクライアントのフラッピング動作を監視する期間
window_time = 1m
## クライアントIDをバンする期間
ban_time = 5m
}これらの設定はゾーンごとに個別に指定することもできます。