ネットワークパケット損失は、一般的なネットワーク障害です。ネットワークの輻輳、ハードウェアの障害、リンクの干渉、その他の状況がネットワークパケット損失を引き起こす可能性があります。このドリルシナリオでは、ネットワークパケット損失が発生した場合のシステムアラートと回復を確認します。
制限事項
このドリルシナリオでは、tc トラフィックコントロール(TC)ユーティリティとその依存カーネルネットワークエミュレータ(NetEm)コンポーネントが必要です。
システムに
tcユーティリティがない場合は、sudo yum install -y iproute-tcまたはsudo apt-get install -y iproute2コマンドを実行してインストールするか、ACS-ECS-NetDelayプラグインを実行するときに関連パラメーターを指定して自動的にインストールします。CentOS など、システムカーネルに NetEm コンポーネントがない場合は、
sudo yum install kernel-modules-extraコマンドを実行してコンポーネントパッケージをインストールし、システムを再起動します。警告kernel-modules-extraパッケージをインストールするとカーネルバージョンが変更されることに注意してください。慎重に行ってください。他のオペレーティングシステムを実行している Elastic Compute Service (ECS) インスタンスを使用してドリルを実行することをお勧めします。
実装
このソリューションでは、クラウドアシスタントプラグイン ACS-ECS-NetLoss を使用します。これは、tc ユーティリティと netem コンポーネントを使用してネットワークインターフェースカードに特定のルールを追加し、Linux カーネルの TC を実装します。このプラグインは、すべての IP アドレスをグローバルに制限することも、単一の IP アドレスをターゲットにすることもできます。クラウドアシスタントネットワークセグメント 100.100.0.0/16 は影響を受けません。
ユーザーガイド
前提条件
クラウドアシスタントクライアント が、ドリルを実行する ECS インスタンスにインストールされています。
ECS インスタンスで [クラウドアシスタント] のステータスが [正常] です。詳細については、「クラウドアシスタントのステータスを表示し、異常を処理する」をご参照ください。
障害の挿入
sudo 権限を持つユーザーとして ECS インスタンスにログオンします。
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
クラウドアシスタントプラグイン
ACS-ECS-NetLossを実行します。sudo acs-plugin-manager --exec --plugin ACS-ECS-NetLoss --params inject,dev=eth0,[rate=paramA],[target-ip=paramB],[replace=paramC],[duration=paramD],[install-tc=paramF][]内のパラメーターは、オプションの障害挿入パラメーターです。次のパラメーターの説明を参照してください。dev(必須): 障害を挿入するネットワークインターフェースカード(例: eth0)。
ifconfigを使用して、現在のシステムのネットワークインターフェースカードを表示できます。rate(オプション): パケット損失率。デフォルトは 10 (%) です。
target-ip(オプション): 影響を受けることが予想されるターゲット IP アドレス。デフォルトは空で、すべて IP アドレスにパケット損失ルールが追加されることを示します。ターゲット IP アドレスが指定されている場合は、その IP アドレスのみが影響を受けます。
replace(オプション): ネットワークインターフェースカードに既に TC ルールが設定されている場合、競合が発生するため挿入は失敗します。既存のルールを上書きする場合は、この値を true に設定します。
duration(オプション): 秒単位の期間。デフォルトは 300 です。
install-tc(オプション): システムに
tcユーティリティがない場合は、このパラメーターをtrueに設定して自動インストールできます。デフォルトはfalseです。次のコマンド出力は、クラウドアシスタントプラグイン
ACS-ECS-NetLossが正常に実行されたことを示しています。
障害の挿入が成功したかどうかを確認します。
ターゲットネットワークに ping を実行して、ネットワークパケット損失の状況を確認します。下の図に示すように、ネットワークパケット損失が発生しており、平均パケット損失は約 44 % です。

障害の回復
方法 1: タイムアウト後に自動回復を待ちます。
方法 2: 次の障害回復コマンドを実行します。
sudo acs-plugin-manager --exec --plugin ACS-ECS-NetLoss --params recover