CML で WAN Emulator を使い、品質が悪い回線を再現する
※ 後で思い出したのですが、VIRL にも遅延 / ジッタ / ロスの再現機能はありました。
「品質の悪い WAN 回線でネットワークがどのように動作するか?」を確認したい場合、WAN エミュレータを使います。 (VIRL にはありませんでしたが) CML では WAN Emulator が追加されたので、特別な用意や追加の設定無く、すぐに WAN エミュレータ機能を使い始めることが出来ます。 今回は CML に追加された WAN Emulator の簡単な使い方をメモしておきます。
検証環境のトポロジー¶
WAN Emulator は CML のデフォルトで存在します。
今回は以下のようなトポロジーを作ります。 インターネット (品質の悪い回線) 部分に WAN Emulator を使います。
CML 上に作った実際のトポロジーは以下です。 WAN Emulator は透過的に (レイヤー 2 的に) 動作しますでの、2 台の IOSv の間に WAN Emulator を挟み込むだけです。 WAN Emulator はインターフェイスがふたつしか無いので、3 つ以上のインターフェイスに接続することは出来ない 点に注意します。
IOSv の設定¶
IOSv は以下のように設定しました。
R1¶
1 2 3 4 5 6 |
|
R2¶
1 2 3 4 5 6 |
|
WAN Emulator の初期状態¶
WAN Emulator へコンソール接続すると以下のような画面が表示され、設定を確認したり変更することが出来ます。 ENTER
を押してしまったのか、コンソール接続するといきなり Profile Selection
になってしまったので今回は Cancel
をクリックして Main Menu
へ戻ります…
WAN Emulator の設定は Port Settings
から行います。
初期値は以下になっていました。
項目 | 値 |
---|---|
Latency (ms) | 100 |
Jitter (ms) | 0 |
Loss (%) | 0.0 |
Bandwidth (kbit) | 512 |
この設定のまま、R1 → R2 へ Ping してみると以下のようになりました。 WAN Emulator での制御は双方向に対して行われます。 R1 → R2 へ Ping した場合は「R1 → R2 への Request」と「R2 → R1 への Reply」の両方へ遅延 (初期値は 100msec) が挿入されている為、結果として約 200msec の遅延という結果になっています。
1 2 3 4 5 6 |
|
遅延設定を変更してみる¶
遅延 (Latency) を 30msec へ変更してみます。 設定変更は数値を変更して Apply Settings
するだけで、一瞬で終わります。
Ping 結果は以下の通りです。 前述の通り、WAN Emulator の制御は双方向トラフィックに行われる為、30msec x 2 (往復分) で約 60msec の遅延を再現することが出来ています。
1 2 3 4 5 6 |
|
ロスを設定する¶
ロス (Loss) を設定してみます。 具体的には以下のように「遅延は 50msec、ロスは 50.0% の確率」で設定しました。
Ping 結果は以下の通りです。 遅延は「片方向あたり 50msec」挿入しているので、往復では約 100msec の遅延を挿入出来ています。 ロスは「片方向で 50.0%」挿入しているので、「行きで 50.0%」「更に帰りで 50.0%」のロスが発生し、結果として想定通り、約 25% 程度のロスが発生しています。
1 2 3 4 5 6 |
|
ジッタを設定する¶
ジッタ (Jitter) を設定してみます。 具体的には以下のように「ジッタは 100msec」で設定しました。
Ping 結果は以下の通りです。 片方向で 100msec のジッタを挿入しているので 0 ~ 200msec 程度のジッタが発生していることが分かります。
1 2 3 4 5 6 |
|
遅延とジッタの違い¶
CML に限った話では無く、ネットワーク全般的な用語ですが、遅延とジッタの違いをまとめておきます。
- 遅延は「平均的に遅くなっている状態」を意味します
- ジッタは「早くなったり、遅くなったりする状態」を意味します。 この状態を「揺らぎ」「揺らいでいる」と呼ぶこともあります
遅延とジッタで Ping の実行結果例を比較すると分かりやすいかも知れません。 遅延では最小値と最大値の幅があまり無く、平均的に遅くなっていることが分かります。 ジッタは最小値と最大値の幅が大きく、結果にむらがある (揺らいでいる) ことが分かります。
項目 | 最小値 | 平均値 | 最大値 |
---|---|---|---|
遅延 | 62 | 65 | 68 |
ジッタ | 4/52/174 |
何もしない (遅延/ジッタ/ロスを挿入しない)¶
遅延やジッタ、ロスを挿入せず、「品質の良い回線」を再現すべく、これらの設定値をゼロにしてみました。 Bandwidth だけは初期値の 512kbps ですが、ここでは帯域幅を消費し尽くすようなテストは行わない為、このままで進めます。
Ping 結果は以下の通りです。 遅延やジッタ、ロスも無く、良好な応答が得られています。
1 2 3 4 5 6 |
|
事前定義されているプロファイルを利用する¶
WAN Emulator には事前に 10 種類のプロファイルが用意されており、プロファイル毎に遅延 / ロス / 帯域幅が決まっています。 Main Menu
→ Select Profile
と辿ることでプロファイルの選択画面へ遷移出来ます。
見切れていますが、10 番目のプロファイルは OFF
というもので、遅延などの制御を一切行わなくなります (品質の良い回線を再現したい場合に使います。
画面の下部にはカーソルをあわせているプロファイルの設定値が「遅延」「ロス」「帯域幅」の順序で表示されます。 例えば WIFI (good)
というプロファイルにカーソルをあわせると「遅延は 40msec、ロスは 0.2%、帯域幅は 30000kbit」ということが分かります。
試しに WIFI (good)
を選択した後で Port Settings
を確認すると、プロファイル画面に表示されていた通りの設定値になっていることが分かります。
プロファイルを利用する際の注意点¶
プロファイルを利用する際は以下の点に注意する必要があります。
プロファイルを追加 / 変更 / 削除することは出来ない¶
以下を実行することは出来ません。 但し、プロファイルの追加や修正については「自分で Port Settins
から設定を行う」ことで十分カバー出来ますので全く問題になりません。 むしろ、私に限ってはプロファイルはあまり利用せず、毎回、Port Settings
から自分で値を設定しています。
- プロファイルを新たに追加する
- 登録済みプロファイルの設定内容を変更する
- 登録済みプロファイルを削除する
プロファイルではジッタを挿入出来ない¶
WAN Emulator 自体には「ジッタを挿入する」機能がありますが、プロファイルには「ジッタの挿入も定義されたもの」がありません。 従って、ジッタを挿入したい場合は Port Settings
から手動で挿入したいジッタの値を入力する必要があります。