MPLSおよびIPv4パケットヘッダーの書き換え
書き換えルールは、MPLS および IPv4 パケット ヘッダーに同時に適用できます。これにより、LSP イングレスで MPLS、EXP、および IP precedence ビットを初期化できます。トラフィックがVPNか非VPNかに応じて、異なる書き換えルールを設定できます。
Junos OS Evolvedを実行しているデバイスは、VPNと非VPNトラフィックで異なる書き換えルールをサポートしていません。
デフォルトの MPLS EXP 書き換えルールを表 1 に示します。
転送クラス |
損失の優先度 |
MPLS EXP 書き換え値 |
---|---|---|
|
|
000 |
|
|
001 |
|
|
010 |
|
|
011 |
|
|
100 |
|
|
101 |
|
|
110 |
|
|
111 |
デフォルトでは、IP precedence 書き換えルールは、type-of-service(ToS)バイトの最初の 3 ビットを変更し、最後の 3 ビットは変更しません。このデフォルトの動作は、プロバイダエッジ(PE)ルーター上のIPv4ペイロードを持つMPLSパケットに対して設定する書き換えルールのみに適用されます。トランジット ルーター(P)では、外部 MPLS ヘッダーに EXP ビットを設定しながら、内部 IPv4 ヘッダーとペイロードを変更することはありません。
デフォルトの MPLS EXP 書き換えテーブルを上書きし、MPLS と IPv4 パケット ヘッダーを同時に書き換えるには、[edit class-of-service interfaces interface-name unit logical-unit-number rewrite-rules exp rewrite-rule-name]
階層レベルで protocol
ステートメントを含めます。
[edit class-of-service interfaces interface-name unit logical-unit-number rewrite-rules exp rewrite-rule-name] protocol protocol-types;
protocol
ステートメントは、指定された書き換えルールが適用される MPLS パケットとパケット ヘッダーのタイプを定義します。MPLSパケットは、標準のMPLSパケットまたはIPv4ペイロードを持つMPLSパケットです。以下のオプションを使用して、MPLS パケットのタイプを指定します。
-
mpls-any
—書き換えルールを MPLS パケットに適用し、CoS 値を MPLS ヘッダーに書き込みます。 -
mpls-inet-both
—プロバイダー エッジ(PE)ルーター上の VPN パケットの MPLS および IPv4 ヘッダーに CoS 値を適用します。コア ルーターでは、このオプションは MPLS ヘッダーのみを書き換え、内部 IPv4 ペイロードの CoS ビットは書き換えません。 -
mpls-inet-both-non-vpn
—IPv4 ペイロードを持つ非 VPN MPLS パケットに書き換えルールを適用します。プロバイダエッジ(PE)ルーター上の非VPNパケットのMPLSおよびIPv4ヘッダーにCoS値を適用します。コア ルーターでは、このオプションは MPLS ヘッダーのみを書き換え、内部 IPv4 ペイロードの CoS ビットは書き換えません。
Junos OS Evolvedでは、 mpls-any
オプションのみがサポートされています。Junos OS Evolvedを実行しているデバイスは、VPNと非VPNトラフィックで異なる書き換えルールをサポートしていません。
MXシリーズ ルーターでは、独立した DSCP または IPv4 優先順位書き換えルールと EXP 書き換えルールを同じコア インターフェイスにアタッチすることで、DSCP と EXP の書き換えを同時に実行できます。そのため、MPLS コアのイングレス PE(プロバイダ エッジ)ルータがパケットを受信するときに、両方のコード ポイント(DSCP と EXP)を書き換えることができます。
書き換えルール マッピングでデフォルトを上書きする代わりに、 デフォルトの書き換えルールの適用で説明されているように、デフォルトのパケット ヘッダー書き換えマッピングを設定します。
デフォルトでは、IP precedence 書き換えルールは ToS バイトの最初の 3 ビットを変更し、最後の 3 ビットは変更しません。このデフォルトの動作は設定できません。デフォルトの動作は、[edit class-of-service rewrite-rules]
階層レベルでinet-precedence
ステートメントを含めることで設定したルールに適用されます。デフォルトの動作は、IPv4ペイロードを持つMPLSパケットに設定する書き換えルールにも適用されます。これらのタイプの書き換えルールを設定するには、[edit class-of-service interfaces interface-name unit logical-unit-number rewrite-rules exp rewrite-rule-name protocol]
階層レベルで mpls-inet-both
または mpls-inet-both-non-vpn
オプションを含めます。
例:MPLS および IPv4 パケット ヘッダーの書き換え
書き換えテーブルを構成し、さまざまな方法で適用して、次の結果を達成します。
-
インターフェイス
et-3/1/0
では、ペイロードのプロトコルに応じて、3つのEXP書き換えテーブルがパケットに適用されます。-
インターフェイス
et-3/1/0
の LSP に入る IPv4 パケット(VPN)は、書き換えテーブルexp-inet-table
の値で初期化されます。このルータがプロバイダエッジルーターとしてのみ動作する場合、IP precedence および MPLS EXP ビット フィールドに同一の 3 ビット値が書き込まれます。トランジット ルーターの場合、3 ビット値は MPLS EXP ビットにのみ書き込まれます。 -
インターフェイス
et-3/1/0
の LSP に入る IPv4 パケット(非 VPN)は、書き換えテーブルrule-non-vpn
の値で初期化されます。このルータがプロバイダエッジルーターとしてのみ動作する場合、IP precedence および MPLS EXP ビット フィールドに同一の 3 ビット値が書き込まれます。トランジット ルーターの場合、3 ビット値は MPLS EXP ビットにのみ書き込まれます。 -
インターフェイス
et-3/1/0
の LSP に入る非 IPv4 パケットは、書き換えテーブルrule1
の値で初期化され、MPLS EXP ヘッダー フィールドにのみ書き込まれます。ステートメントexp rule1
は、exp rule1 protocol mpls
と同じ結果になります。
-
-
インターフェイス
et-3/1/0
では、非LSP層を介して送信されるIPv4パケットは、IP優先度書き換えテーブルrule2
の値で初期化されます。 -
インターフェイス
et-3/1/1
では、LSPに入るIPv4パケットは、EXP書き換えテーブルexp-inet-table
の値で初期化されます。このルータがプロバイダエッジルーターとしてのみ動作する場合、IP precedence および MPLS EXP ビット フィールドに同一の 3 ビット値が書き込まれます。トランジット ルーターの場合、3 ビット値は MPLS EXP ビットにのみ書き込まれます。 -
インターフェイス
et-3/1/1
では、IPv4 レイヤー 3 タイプ以外の MPLS パケットもテーブルexp-inet-table
の値で初期化されます。IPv4ペイロードを持つVPN MPLSパケットの場合、CoS値はMPLSおよびIPv4ヘッダーに書き込まれます。IPv4ペイロードのないVPN MPLSパケットの場合、CoS値はMPLSヘッダーにのみ書き込まれます。IPv4ヘッダーは、ルーターがプロバイダエッジルーターとして機能する場合にのみ書き換えられることに注意してください。[edit class-of-service] rewrite-rules { exp exp-inet-table { forwarding-class best-effort { loss-priority low code-point 000; loss-priority high code-point 001; } forwarding-class assured-forwarding { loss-priority low code-point 010; loss-priority high code-point 011; } forwarding-class expedited-forwarding { loss-priority low code-point 111; loss-priority high code-point 110; } forwarding-class network-control { loss-priority low code-point 100; loss-priority high code-point 101; } } exp rule1 { ... } inet-precedence rule2 { ... } } exp rule_non_vpn { ... } interfaces { et-3/1/0 { unit 0 { rewrite-rules { exp rule1; inet-precedence rule2; exp exp-inet-table protocol mpls-inet-both; # For all VPN traffic. exp rule_non_vpn protocol mpls-inet-both-non-vpn; # For all non-VPN # traffic. } } } et-3/1/1 { unit 0 { rewrite-rules { exp exp-inet-table protocol [mpls mpls-inet-both]; } } } }
例:DSCP と EXP の同時書き換え
DSCP と EXP の同時書き換えルールを次のように設定します。
-
CoS を設定します。
[edit] user@host# edit class-of-service
-
インターフェイスでEXP書き換えルールを設定します。
[edit class-of-service] user@host# set interfaces ge-2/0/3 unit 0 rewrite-rule exp rule1
-
インターフェイスでIPv4書き換えルールを設定します。
[edit class-of-service] user@host# set interfaces ge-2/0/3 unit 0 rewrite-rule inet-precedence rule2
-
インターフェイスに IPv4 書き換えルールを設定し、MPLS トンネルに入るパケットに適用します。
[edit class-of-service] user@host# set interfaces ge-2/0/3 unit 0 rewrite-rule inet-precedence rule3 protocol mpls
-
show interfaces
コマンドを使用して、設定を確認します。[edit class-of-service] user@host# show interfaces ge-2/0/3 unit 0 rewrite-rules { exp rule1; inet-precedence rule2; inet-precedence rule3 protocol mpls; }
上記の例では、 rule2
と rule3
の 2 種類の IPv4 優先書き換えルールがあります。 rule2
は IPv4 から IPv4 へのトラフィックに影響し、 rule3
は IPv4 から MPLS トラフィックに影響します。