IP SLA

目次

IP SLAの基本

IP SLA(Service Level Agreement)は、Cisco IOSに標準で備わっている監視機能で、ネットワークの性能を実際に測定する仕組みです。ルータが自ら測定用パケットを生成して送信し、応答を解析することで、遅延、ジッタ(揺らぎ)、パケットロスといった重要な情報を取得できます。PINGが単純に往復時間を測るのに対し、IP SLAはVoIPやアプリケーション通信に近い形で実際の品質を計測できる点が特徴です。

例えば、音声通話に例えると、相手の声が遅れて聞こえたり、途切れたりすることがあります。これはネットワーク遅延やジッタの影響であり、IP SLAを利用することでこうした品質低下の原因を可視化できます。

IP SLAのアーキテクチャ

IP SLAを実行して測定パケットを送信する機器を「IP SLA Sender」と呼びます。受信側となる機器は「Receiver」となり、測定内容によって要件が異なります。たとえば、ICMPエコー(PING相当)を使う場合は通常のネットワーク機器やサーバでもReceiverになれます。しかし、UDPジッタのように一方向の測定が必要な場合は、測定結果をSenderへ返す必要があるため、Receiverには「ip sla responder」機能を持つCisco IOS機器が必須です。

1つのCiscoルータがSenderとResponderの両方を担うことも可能で、拠点間の測定では多用されます。特にVoIPアプリケーションの品質測定にはResponderの設定が欠かせません。

IP SLAは動作フェーズが2段階に分かれています。最初の「コントロールフェーズ」でSenderとResponder間の通信が確立され、その後「プロービングフェーズ」で実際に測定パケットが送受信されます。この流れを理解しておくと、トラブルシューティングのときに役立ちます。

IP SLAとSNMPトラップ

IP SLAの測定結果はSNMPと連携させることができます。例えば「遅延が一定値を超えたらSNMPトラップを発生させる」といったしきい値の設定が可能です。コマンドで snmp-server enable traps rtr を有効化すると、RTT遅延やジッタ、MOS値などがしきい値を超えた場合に通知を送ることができます。これにより、監視サーバと連携した自動アラートの仕組みが作れます。

試験対策としては「IP SLAとSNMPを連携できる」という知識を押さえておきましょう。

MOS値について

音声品質を測る指標として「MOS(Mean Opinion Score)」があります。これは本来、人が音声を聞いて1~5段階で評価する方法ですが、Cisco IOSはudp-jitter測定の結果から独自にMOS値を計算して表示します。

MOS値はおおまかに以下のように解釈されます。

MOS値音声品質コーデックとの関係
5非常に良い
4良いG.711では4.1以上が望ましい
3普通G.729では3.92以上が望ましい
2悪い
1非常に悪い

MOSは絶対値ではなく、環境ごとに基準を持つことが重要です。つまり「社内のVoIP通話はMOSが4.0を下回ったら品質低下とみなす」といった基準を運用側が決める必要があります。

IP SLAで利用できるプロトコル

IP SLAは単なるPINGの拡張にとどまらず、多様なプロトコルを使った測定が可能です。例えばVoIP用のUDPジッタ測定では、実際の音声コーデック(G.711やG.729)をエミュレートして品質を評価できます。一方で、アプリケーション性能測定ではHTTPやFTPリクエストを送信し、応答時間を直接測定できます。

代表的な測定内容は以下のとおりです。

  • UDPジッタ:片方向遅延、ジッタ、パケットロスを測定。VoIPバックボーンで使用。
  • TCP Connect:サーバへの接続時間を測定。アプリ応答速度の評価に有効。
  • DNS / DHCP / FTP / HTTP:各サービスの応答時間を測定。サーバ性能監視に利用。
  • ICMPエコー / パスエコー / パスジッタ:ネットワーク全体の遅延や経路品質を把握。

こうした多様な測定により、IP SLAはネットワークとアプリケーションの両面で性能を監視できる強力なツールとなっています。

IP SLAを実行するルータの役割

IP SLAはアクティブモニタリングを行う機能なので、測定パケットを実際に生成・送出する「Sender」の負荷は決して軽くありません。特にVoIP品質を測るUDPジッタやMOSの算出などでは多くのパケットを処理するため、運用環境によってはユーザトラフィックを処理しているルータに余計な負担を与えてしまいます。

そのため、十分な予算がある場合には「測定専用のルータ」を用意し、これをIP SLA Senderとして利用するのが推奨されます。このような役割のルータは「シャドウルータ」と呼ばれます。一方、障害検知やフェイルオーバー制御に利用されるObject Tracking機能と組み合わせる場合は、実際にWANを接続している本番ルータをSenderとするのが一般的です。

IP SLAの設定例:UDPジッタ測定

IP SLAを使ったVoIP品質監視の典型的な例がUDPジッタ測定です。以下はその設定例です。

Cisco(config)# ip sla 1
Cisco(config-ip-sla)# udp-jitter 172.16.0.1 16384 codec g711ulaw
Cisco(config-ip-sla-jitter)# tos 160
Cisco(config)# ip sla schedule 1 life forever start-time now

この例では、宛先IPを 172.16.0.1、宛先ポートを 16384、コーデックを G.711u-law と指定しています。これにより、VoIP通話に近い形式のパケットを自動生成して送出します。さらにToS値を160と指定しており、これはDSCP値40(IP Precedence 5)に対応します。音声パケットはQoSで優先されることが多いため、ToSを明示することで実際の通話品質に近い測定が可能になります。

コーデックごとの生成パケット

UDPジッタ測定では、コーデックに応じて送出するパケットサイズや本数が変わります。代表的なコーデックの例は以下の通りです。

コーデックcodec-intervalcodec-numpacketsPayloadサイズ
G.711a-law20ms1000パケット172バイト(160+12)
G.711u-law20ms1000パケット172バイト(160+12)
G.729a20ms1000パケット32バイト(20+12)

ここで「+12」はRTPヘッダにあたります。これにより、実際の音声通話で発生するデータフローに近い状況をシミュレートできます。

ToS値の対応表

IP SLAで設定するToS値は、IP Precedence値やDSCP値に対応しています。代表的な変換は以下の通りです。

IP SLA ToS値 (10進)IP PrecedenceDSCP値
224756
192648
160540
128432
96324
64216
3218
000

試験対策:「ToS 160 → DSCP 40」という変換を問われる可能性があるので注意しておきましょう。

SNMPトラップとの連携例

IP SLAの測定結果をSNMPトラップとして通知する設定も可能です。以下はMOS値がしきい値を下回ったときにトラップを送信する例です。

Cisco(config)# snmp-server host 172.1.1.10 public
Cisco(config)# snmp-server enable traps rtr
Cisco(config)# ip sla reaction-configuration 1 react mos threshold-value 500 300 threshold-type immediate action-type trapOnly

ここではMOS値が3.00(コマンド上では300)を下回ると、即時にトラップが送信されます。MOSは1〜500で指定し、MOS=5が500に相当します。これにより、音声品質が低下した瞬間に監視サーバへ通知できます。

Responder側の設定

UDPジッタ測定のように、受信側から測定結果を返す必要がある場合は、Responderの設定が必須です。設定は非常にシンプルで、次の1行を入力すれば有効になります。

Cisco(config)# ip sla responder

Responderを有効にしたCisco IOS機器は、Senderから送られる測定用パケットに応答して結果を返します。これにより一方向遅延やMOS値の算出が可能となります。

測定結果の確認

実際の測定状況や統計値は、次のコマンドで確認します。

Router# show ip sla statistics

ここで遅延、ジッタ、パケットロス、MOS値などが表示され、VoIP品質を数値的に把握できます。ネットワークの健全性を定量的に評価する上で必ず活用するコマンドです。

◆まとめスライド

目次