概要
マーキングの定義
マーキングは航空券のファースト、ビジネス、エコノミーといった「サービス クラス」の定義と概念上は似ています。この値は、得られるサービスのレベル(品質)を反映します。同様に、パケットの値をマークして、ネットワークを通過するそのパケットのサービス クラス(以降、サービスクラスと呼びます)を示します。マークされた値を確認し、ネットワーク要素により、パケットの処理方法を指定することができます。
ビジネスクラスの乗客はその指定を得るために、さまざまな手段を使用したかもしれません。余分に料金を支払ったり、マイルを使用したり、または、幸運なことに他の座席が満席であったために通常の料金で予約できた可能性があります。どこかで誰かが特定のサービスクラスの利用資格を決定する複雑な分類タスクを実行し、その後でファーストクラス、ビジネスクラス、またはエコノミークラスの指定のみをチケットにマークしています。フライトアテンダントは、利用資格がどのように決定されたかについては関心がありません。チケットにマークされたクラスを見て、そのレベルのサービスを提供するだけです。
これがネットワーキングの世界で行われます。あるデバイスがフロー内のデータで複雑な分類を実行し、適切なサービスクラスを決定します。他のネットワーク要素は、受信するパケット内にマークされた値を「信頼」して、その指定に適したサービスを提供します。
QoS パケット処理というコンテキストでは、分類の後およびキューイングの前にマーキングが実行され、入力または出力に適用できます。
通常は、信頼境界を ネットワークのエッジで作成した後に、エッジ デバイスのパケットを分類してマークします。その後で、ネットワーク全体にわたってマークしたそのフィールドをホップ単位の処理についての分類と決定に使用することができます。
(注) |
信頼境界を使用すると、パケットがネットワークに着信したときにそれらすべてのパケットにネットワーク制御のマーキングを適用し、適用しなかったデフォルト以外のマーキングを削除したり、変更したりすることができます。 |
たとえば、VoIP デバイスが接続されているルータ ポートをシステムが認識していることを想像してください。音声パケットの DiffServ コード ポイント(DSCP)値を(ネットワークのエッジで)EF とマークし、ネットワークを通じて DSCP ベースの分類を使用して、低遅延処理を保証するパケットを決定します。
パケットをマーキングする理由
パケットをマーキングする理由は次のとおりです。
-
ネットワークを通過する際にパケットをどのように処理するかを指定する。
-
複雑な分類を一度実行する。サービス クラスをマーキングすることによって、よりシンプルで、CPU への負荷が低い分類をネットワーク内の他の場所で使用できます。
-
フローの可視性がさらに高いネットワークのポイントで分類を実行します。たとえば、データが暗号化されている場合は、そのフロー内で伝送されるアプリケーションを決定するなどの複雑な分類は実行できません。代わりに、暗号化前に分類して、パス上のネットワーク要素に表示される非暗号化ヘッダーの値をマークすることができます。
パケットは異なる自律エンティティ(2 つの企業オフィス間のサービス プロバイダー ネットワークなど)が管理するネットワークを通過するため、それらのネットワーク上ではサービスレベルの指定に対するマーキングが整合しない場合は再度マーキングを行う必要があります。
パケットは異なるネットワーキング テクノロジーを通過するため、サービスクラスを示すために使用可能なフィールドが異なる場合があります。たとえば、IP パケットの DSCP フィールドでサービス クラスの指定を伝送していても、このパケットがマルチプロトコル ラベル スイッチング(MPLS)ネットワークを通過する場合は、ネットワーク要素がサービスクラスの判断に使用できるのは MPLS EXP フィールドのみの場合があります。ネットワークのその部分では、MPLS EXP ビットの適切なマーキングを判断する必要があります。
ネットワーク オペレータとして、ユーザから特定のレートでデータを受け取るように契約している場合があります。そのレートを超えたパケットをドロップするのではなく、低いサービスクラスとしてマークできます。
マーキング パケットに対するアプローチ
パケットのマーキングには、set コマンドおよびポリサー マーキング アクションの 2 つの主要なアプローチがあります。
(注) |
ここでは、「ポリシング」アクションについて簡単に説明します。 |
set コマンド
ルータ上でのマーキング パケットに対する最もシンプルなアプローチは、 set コマンドをポリシーマップ 定義に使用することです。(ポリシーマップで、定義した各クラスのトラフィックに対して QoS アクションを指定します)。
すべての RTP ポートを 1 つのトラフィック クラスに分類し、各パケットに AF41 とマークするように決定できます。ポリシーマップは、次のようになります。
policy-map mark-rtp
class rtp-traffic
set dscp af41
ポリサー マーキング アクション
ポリサーを使用して、トラフィック クラス内の定義したレートを超えるパケットをドロップすることができます。または、そのレートを超えるパケットをマークし、そのレート未満のパケットでなく、それらのパケットが異なるホップ単位の処理を受けられるようにすることができます。
たとえば、AF41 とマークされたビデオ トラフィックがルータに着信したとします。最大 2 Mbps までのユーザ トラフィックは 最上位の相対的優先転送動作と見なし、2 Mbps を超えるトラフィックを AF42 に降格することができます(契約外、不適合と見なす)。
ポリシーマップは次のように表示されます。
class-map video-traffic
match dscp af41
!
policy-map enforce-contract
class video-traffic
police cir 2m conform-action transmit exceed-action set-dscp-transmit AF42
マーキング アクションの範囲
分類と同様に、マーキングはデータ パケット内のすべてのフィールドにはアクセスできません。たとえば、IP パケットがマルチプロトコル ラベル スイッチング(MPLS)でカプセル化されている場合は、IP ヘッダー内の DSCP をマークできません。MPLS から最初にカプセル化を解除する必要があります。ただし、MPLS EXP ビットはマークできます。
(注) |
マーキングに使用できるのは、レイヤ 2 のヘッダーと外部レイヤ 3 のヘッダーのみです。 |
複数の set ステートメント
複数のマーキング ルールを 1 つのクラス(またはポリサー アクション)内に設定できます。これにより、同じパケット内のレイヤ 2 とレイヤ 3 の両方のフィールドをマークすることができます。または、複数のトラフィック タイプが同じクラス内に存在する場合は、各タイプにマーキング値を定義します。
たとえば、イーサネット サブインターフェイスに適用された次の出力ポリシーがあるとします。
policy-map mark-rtp
class rtp-traffic
set cos 4
set mpls exp topmost 4
set dscp af41
MPLS パケットがこのサブインターフェイス経由で転送されると、レイヤ 2 の COS フィールドと MPLS ヘッダー内の EXP ビットがマークされます。IP データグラムがそのパケットにカプセル化されていた場合、その DSCP 値は変更されずにそのまま残ります。ただし、IP パケットがサブインターフェイス経由で転送された場合は、そのレイヤ 2 の COS 値とレイヤ 3 の DSCP 値がマークされます。
コマンドの詳細については、set cos、set mpls experimental topmost、およびset dscp コマンドのページを参照してください。
内部指定子のマーキング
シスコ ルータでは、2 つの内部値(qos-group と discard-class)をマークできます。これらの値はルータ内をパケットとともに移動しますが、パケットのコンテンツは変更しません。
通常、入力ポリシー内のこれらの指定子をマークし、それらを使用して、出力ポリシーのトラフィック クラスや WRED ドロップ プロファイルを分類します。たとえば、ユーザの IP アドレスに基づいて出力を分類したくても、暗号化が設定されているために出力インターフェイスでユーザの IP アドレスがわからない場合があります。それらのトラフィックを(暗号化前に)入力で分類して、適切な qos-group 値を設定することができます。これで、qos-group に基づいて出力で分類できるようになり、それに応じたアクションを選択できるようになりました。
入力マーキング アクションと出力マーキング アクション
特定のマーキング値は、入力ポリシーのみか、または出力ポリシーのみに関連しています。たとえば、入力ポリシーで ATM CLP ビットまたはフレーム リレー DE ビットをマークしても パケットのカプセル化解除時に破棄されるため、無意味です。同様に、出力ポリシーで qos-group または discard-class をマーキングしても、これらはパケットを変更せずにそのままにされ、次のホップへの転送時にパケットをエンキューした時点で廃棄されるため、効果がありません。
インポジション マーキング
特殊な状況下では、パケットにまだ追加されていないヘッダー フィールドをマークすることができます(シスコでは、この動作をインポジション マーキングと呼びます)。
最も一般的なインポジション マーキングの例は set mpls experimental imposition コマンドの適用です。 これは、IP データグラムを含み、マルチプロトコル ラベル スイッチング(MPLS)ヘッダーがないパケットが到着する入力インターフェイスで使用できます。ルータが MPLS ヘッダーを使用してデータグラムをカプセル化する場合、このコマンドによって指定されたとおりに、EXP ビットがマークされます。
set dscp tunnel コマンドと set precedence tunnel コマンド(IPv4 の場合のみ)の適用は、もう 1 つのインポジション マーキングの例です。出力ポリシーをトンネル インターフェイスに適用した場合、そのポリシーが実行されるときにはトンネル ヘッダーは存在しません。つまり、どのようなマーキングでも元の(最終的には内側の)IP ヘッダーに適用されます。どちらのコマンドを使用しても、トンネル(外側の)IP ヘッダーにはマークし、元のヘッダーは変更せずにそのまま残すことができます。
次の表に、これらのコマンドをサポートしているトンネルのタイプとさまざまなカプセル化を示します。
名前 |
外部ヘッダー(カプセル化) |
内部ヘッダー(ペイロード) |
注 |
GRE (4 over 4) | IPv4/GRE | IPv4 | サポートあり |
GRE (6 over 4) | IPv4/GRE | IPv6 | カプセル化はサポート対象外 |
GREv6 (4 over 6) | IPv6/GRE | IPv4 | カプセル化はサポート対象外 |
GREv6 (6 over 6) | IPv6/GRE | IPv6 | カプセル化はサポート対象外 |
IP-IP | IPv4 | IPv4 | サポートあり |
IPv6-IP | IPv4 | IPv6 | サポートあり |
IPv6 (4 over 6) | IPv6 | IPv4 | カプセル化はサポート対象外 |
IPv6 (6 over 6) | IPv6 | IPv6 | サポート対象外 |
PSEC (4 over 4) | IPv4/IPSEC | IPv4 | サポート対象外 |
PSEC (6 over 4) | IPv4/IPSEC | IPv6 | サポート対象外 |
IPSECv6 (4 over 6) | IPv6/IPSEC | IPv4 | カプセル化はサポート対象外 |
IPSECv6 (6 over 6) | IPv6/IPSEC | IPv6 | サポート対象外 |
mVPN(マルチキャスト VPN) | IPv4/GRE | IPv4 | サポートあり |
DMVPN(ダイナミック マルチポイント VPN) | サポートあり | ||
mGRE(マルチポイント GRE) | サポートあり | ||
MPLSoGREv4 | IPv4/GRE | MPLS | サポート対象外 |
MPLSoGREv6 | IPv6/GRE | MPLS | サポート対象外 |
L2TP | IPv4/L2TP | PPPoX | サポート対象外 |
新しいヘッダー(encapsulated)を追加すると、内部ヘッダー内の QoS マーキングが外部ヘッダーにコピーされます。たとえば、IP データグラムは MPLS ヘッダーでカプセル化される場合、デフォルトでは、新たにインポーズされたヘッダー内の MPLS EXP ビットに IP プレシデンス ビットがIP ヘッダーからコピーされます。
ヘッダー ディスポジションに関しては、通常、外部のマーキングを内部ヘッダーにはコピーしません。たとえば、外部および内部の IP ヘッダーに異なる DSCP 値を持つパケットを GRE トンネルのエンドポイントで受信しているとします。外部ヘッダーを削除した場合は内部ヘッダーに DSCP 値をコピーしません。
インポジション マーキングの設定例については、例 4:トンネル インポジション マーキングの設定と例 5:トンネル インポジション マーキングを使用した SP ネットワークに対する再マーキングを参照してください。
コマンドの詳細については、set mpls experimental imposition、set dscp tunnel、およびset precedence tunnelを参照してください。