レイヤー3VPN用のGREトンネル
レイヤー 3 VPN の GRE トンネルの設定
Junos OS では、レイヤー 3 VPN の PE ルーターと CE ルーター間に GRE(Generic Routing Encapsulation)トンネルを設定できます。GRE トンネルには、1 つ以上のホップを含めることができます。PE ルーターからローカル CE ルーター( 図 1 を参照)またはリモート CE ルーター( 図 2 を参照)へのトンネルを設定できます。
トンネルインターフェイスの設定方法について詳しくは、 ルーティングデバイス用 Junos OS サービスインターフェイスライブラリをご覧ください。
GREトンネルを手動で設定することも、Junos OSがGREトンネルを動的にインスタンス化するように設定することもできます。
次のセクションでは、GRE トンネルを手動および動的に設定する方法について説明します。
PEルーターとCEルーター間のGREトンネルの手動設定
次のセクションで説明するように、PE ルーターとレイヤー 3 VPN のローカル CE ルーターまたはリモート CE ルーター間の GRE トンネルを手動で設定できます。
PE ルーターでの GRE トンネル インターフェイスの設定
PEルーター上の論理インターフェイスとしてGREトンネルを設定します。GREトンネルインターフェイスを設定するには、 unit ステートメントを含めます。
unit logical-unit-number {
tunnel {
source source-address;
destination destination-address;
routing-instance {
destination routing-instance-name;
}
}
family inet {
address address;
}
}
以下の階層レベルでこのステートメントを使用することができます。
[edit interfaces interface-name][edit logical-systems logical-system-name interfaces interface-name]
GREトンネルインターフェイス設定の一部として、以下のステートメントを含める必要があります。
source source-address—GRE トンネルの送信元または送信元(通常は PE ルーター)を指定します。destination destination-address—GRE トンネルの宛先またはエンドポイントを指定します。宛先は、プロバイダールーター、ローカルCEルーター、またはリモートCEルーターです。
デフォルトでは、トンネルの宛先アドレスは、デフォルトのインターネット ルーティングテーブルである inet.0 にあると見なされます。トンネル宛先アドレスがinet.0にない場合、 routing-instance ステートメントを設定して、トンネル宛先アドレスを検索するルーティングテーブルを指定する必要があります。これは、トンネルカプセル化インターフェイスもルーティング インスタンスで設定されている場合に当てはまります。
destinationrouting-instance-name—PE ルーターで GRE トンネル インターフェイスを設定するときに、ルーティング インスタンスの名前を指定します。
GREトンネルインターフェイスの設定を完了するには、適切なルーティング インスタンスの下にGREインターフェイスの interface ステートメントを含めます。
interface interface-name;
以下の階層レベルでこのステートメントを使用することができます。
[edit routing-instances routing-instance-name][edit logical-systems logical-system-name routing-instances routing-instance-name]
CEルータでのGREトンネル インターフェイスの設定
ローカルまたはリモートの CE ルータを、GRE トンネルのエンドポイントとして機能するように設定できます。
CEルーターでGREトンネルインターフェイスを設定するには、 unit ステートメントを含めます。
unit logical-unit-number {
tunnel {
source address;
destination address;
}
family inet {
address address;
}
}
以下の階層レベルでこのステートメントを使用することができます。
[edit interfaces interface-name][edit logical-systems logical-system-name interfaces interface-name]
GRE トンネルの動的設定
ルータがBGPネクストホップアドレスへのVPNルートを受信したが、MPLSパスが利用できない場合、GREトンネルを動的に生成して、BGPネットワーク上でVPNトラフィックを伝送することができます。GRE トンネルが生成され、そのルーティング情報が inet.3 ルーティングテーブルにコピーされます。IPv4 ルートは、ダイナミック GRE トンネルでサポートされている唯一のルート タイプです。また、ルーティング プラットフォームにはトンネルPICが必要です。
リモート CE ルータに動的 GRE トンネルを設定する場合は、トンネル インターフェイス上で OSPF を設定しないでください。これにより、ルーティングループが作成され、ルーターがGREトンネルを強制的に停止します。ルータは GRE トンネルの再確立を試みますが、OSPF がトンネル インターフェイスでアクティブになり、トンネル エンドポイントへのルートを検出すると、再度強制的に停止します。これは、リモート CE ルータへのスタティック GRE トンネルを設定する場合は問題になりません。
GRE トンネルを動的に生成するには、 dynamic-tunnels ステートメントを含めます。
dynamic-tunnels tunnel-name { destination-networks prefix; source-address address; }
以下の階層レベルでこのステートメントを使用することができます。
-
[edit routing-options] -
[edit routing-instances routing-instance-name routing-options] -
[edit logical-systems logical-system-name routing-options] -
[edit logical-systems logical-system-name routing-instances routing-instance-name routing-options ]
destination-networks ステートメントを含めて、宛先ネットワークの IPv4 プレフィックス範囲(10/8 や 11.1/16 など)を指定します。指定された IPv4 プレフィックス範囲内のトンネルのみを開始できます。
destination-networks prefix;
以下の階層レベルでこのステートメントを使用することができます。
-
[edit routing-options] -
[edit routing-instances routing-instance-name routing-options] -
[edit logical-systems logical-system-name routing-options] -
[edit logical-systems logical-system-name routing-instances routing-instance-name routing-options ]
source-address ステートメントを含めて、GRE トンネルの送信元アドレスを指定します。送信元アドレスは、ローカルトンネルエンドポイントの送信元として使用されるアドレスを指定します。これは、ルーター上の任意のローカルアドレス(通常はルーターIDまたはループバックアドレス)です。
source-address address;
以下の階層レベルでこのステートメントを使用することができます。
-
[edit routing-options] -
[edit routing-instances routing-instance-name routing-options] -
[edit logical-systems logical-system-name routing-options] -
[edit logical-systems logical-system-name routing-instances routing-instance-name routing-options ]
参照
PE ルーター間の GRE トンネル インターフェイスの設定
この例では、VPN 接続を提供するために、PE ルーター間に GRE(Generic Routing Encapsulation)トンネル インターフェイスを設定する方法を示します。この設定を使用して、非 MPLS コア ネットワーク全体で VPN トラフィックをトンネリングできます。この例で使用したネットワーク トポロジを 図 3 に示します。この図に示されている P ルータは MPLS を実行していません。
で接続された PE ルーター A および D
設定情報については、次のセクションを参照してください。
- ルーターAでのルーティングインスタンスの設定
- ルーター D でのルーティング インスタンスの設定
- ルーター A での MPLS、BGP、および OSPF の設定
- ルーター D での MPLS、BGP、および OSPF の設定
- ルーター A のトンネル インターフェイスの設定
- ルーター D のトンネル インターフェイスの設定
- ルーター A でのルーティング オプションの設定
- ルーター D でのルーティング オプションの設定
- ルーター A の設定サマリー
- ルーター D の設定の概要
ルーターAでのルーティングインスタンスの設定
ルーター A でルーティング インスタンスを設定します。
[edit routing-instances]
gre-config {
instance-type vrf;
interface fe-1/0/0.0;
route-distinguisher 10.255.14.176:69;
vrf-import import-config;
vrf-export export-config;
protocols {
ospf {
export import-config;
area 0.0.0.0 {
interface all;
}
}
}
}
ルーター D でのルーティング インスタンスの設定
ルーター D でルーティング インスタンスを設定します。
[edit routing-instances]
gre-config {
instance-type vrf;
interface fe-1/0/1.0;
route-distinguisher 10.255.14.178:69;
vrf-import import-config;
vrf-export export-config;
protocols {
ospf {
export import-config;
area 0.0.0.0 {
interface all;
}
}
}
}
ルーター A での MPLS、BGP、および OSPF の設定
この例では P ルーターに MPLS を設定する必要はありませんが、PE ルーターでは PE ルーターと CE ルーター間のインターフェイス、および PE ルーター(ルーター A とルーター D)を結ぶ GRE インターフェイス(gr-1/1/0.0)では必要です。ルーター A で MPLS、BGP、および OSPF を設定します。
[edit protocols]
mpls {
interface all;
}
bgp {
group pe-to-pe {
type internal;
neighbor 10.255.14.178 {
family inet-vpn {
unicast;
}
}
}
}
ospf {
area 0.0.0.0 {
interface all;
interface gr-1/1/0.0 {
disable;
}
}
}
ルーター D での MPLS、BGP、および OSPF の設定
この例では P ルーターに MPLS を設定する必要はありませんが、PE ルーターでは PE ルーターと CE ルーター間のインターフェイス、および PE ルーター(ルーター D、ルーター A)を結ぶ GRE インターフェイス(gr-1/1/0.0)では必要です。ルーター D で MPLS、BGP、および OSPF を設定します。
[edit protocols]
mpls {
interface all;
}
bgp {
group pe-to-pe {
type internal;
neighbor 10.255.14.176 {
family inet-vpn {
unicast;
}
}
}
}
ospf {
traffic-engineering;
area 0.0.0.0 {
interface all;
interface fxp0.0 {
disable;
}
interface gr-1/1/0.0 {
disable;
}
}
}
ルーター A のトンネル インターフェイスの設定
ルーター A のトンネル インターフェイスを設定します(トンネルは番号なし)。
[edit interfaces interface-name]
unit 0 {
tunnel {
source 10.255.14.176;
destination 10.255.14.178;
}
family inet;
family mpls;
}
ルーター D のトンネル インターフェイスの設定
ルーター D のトンネル インターフェイスを設定します(トンネルは番号なし)。
[edit interfaces interface-name]
unit 0 {
tunnel {
source 10.255.14.178;
destination 10.255.14.176;
}
family inet;
family mpls;
}
ルーター A でのルーティング オプションの設定
ルーター A のルーティング オプション設定の一環として、inet.3 ルーティングテーブルで VPN ルート解決を有効にするように ルーティングテーブル グループを設定する必要があります。
ルーター A でルーティング オプションを設定します。
[edit routing-options]
interface-routes {
rib-group inet if-rib;
}
rib inet.3 {
static {
route 10.255.14.178/32 next-hop gr-1/1/0.0;
}
}
rib-groups {
if-rib {
import-rib [ inet.0 inet.3 ];
}
}
ルーター D でのルーティング オプションの設定
ルーター D のルーティング オプション設定の一環として、inet.3 ルーティングテーブルで VPN ルート解決を有効にするようにルーティングテーブル グループを設定する必要があります。
ルーター D でルーティング オプションを設定します。
[edit routing-options]
interface-routes {
rib-group inet if-rib;
}
rib inet.3 {
static {
route 10.255.14.176/32 next-hop gr-1/1/0.0;
}
}
rib-groups {
if-rib {
import-rib [ inet.0 inet.3 ];
}
}
ルーター A の設定サマリー
ルーティングインスタンスを設定する
gre-config {
instance-type vrf;
interface fe-1/0/0.0;
route-distinguisher 10.255.14.176:69;
vrf-import import-config;
vrf-export export-config;
protocols {
ospf {
export import-config;
area 0.0.0.0 {
interface all;
}
}
}
}
MPLS の設定
mpls {
interface all;
}
BGP の設定
bgp {
traceoptions {
file bgp.trace world-readable;
flag update detail;
}
group pe-to-pe {
type internal;
neighbor 10.255.14.178 {
family inet-vpn {
unicast;
}
}
}
}
OSPF の設定
ospf {
area 0.0.0.0 {
interface all;
interface gr-1/1/0.0 {
disable;
}
}
}
トンネル インターフェイスの設定
interface-name {
unit 0 {
tunnel {
source 10.255.14.176;
destination 10.255.14.178;
}
family inet;
family mpls;
}
}
ルーティングオプションの設定
interface-routes {
rib-group inet if-rib;
}
rib inet.3 {
static {
route 10.255.14.178/32 next-hop gr-1/1/0.0;
}
}
rib-groups {
if-rib {
import-rib [ inet.0 inet.3 ];
}
}
ルーター D の設定の概要
ルーティングインスタンスを設定する
gre-config {
instance-type vrf;
interface fe-1/0/1.0;
route-distinguisher 10.255.14.178:69;
vrf-import import-config;
vrf-export export-config;
protocols {
ospf {
export import-config;
area 0.0.0.0 {
interface all;
}
}
}
}
MPLS の設定
mpls {
interface all;
}
BGP の設定
bgp {
group pe-to-pe {
type internal;
neighbor 10.255.14.176 {
family inet-vpn {
unicast;
}
}
}
}
OSPF の設定
ospf {
traffic-engineering;
area 0.0.0.0 {
interface all;
interface fxp0.0 {
disable;
}
interface gr-1/1/0.0 {
disable;
}
}
}
トンネル インターフェイスの設定
interface-name {
unit 0 {
tunnel {
source 10.255.14.178;
destination 10.255.14.176;
}
family inet;
family mpls;
}
}
ルーティング オプションを設定する
interface-routes {
rib-group inet if-rib;
}
rib inet.3 {
static {
route 10.255.14.176/32 next-hop gr-1/1/0.0;
}
}
rib-groups {
if-rib {
import-rib [ inet.0 inet.3 ];
}
}
PE ルーターと CE ルーター間の GRE トンネル インターフェイスの設定
この例では、PE ルーターと CE ルーターの間に GRE トンネル インターフェイスを設定する方法を示します。この設定を使用して、非 MPLS コア ネットワーク全体で VPN トラフィックをトンネリングできます。この例で使用したネットワーク トポロジを 図 4 に示します。
この例では、次のセクションで説明する手順を実行します。
カプセル化インターフェイスを使用しないルーティング インスタンスの設定
ルーティング インスタンスは、カプセル化インターフェイスの有無にかかわらず設定できます。次のセクションでは、それなしでルーティング インスタンスを構成する方法について説明します。
ルーターPE1でのルーティングインスタンスの設定
ルーターPE1でルーティング インスタンスを設定します。
[edit routing-instances]
vpna {
instance-type vrf;
interface gr-1/2/0.0;
route-distinguisher 10.255.14.174:1;
vrf-import vpna-import;
vrf-export vpna-export;
protocols {
bgp {
group vpna {
type external;
peer-as 100;
as-override;
neighbor 10.49.2.1;
}
}
}
}
ルーターPE1のGREトンネル インターフェイスの設定
ルーターPE1でGREトンネルインターフェイスを設定します。
[edit interfaces gr-1/2/0]
unit 0 {
tunnel {
source 192.168.197.249;
destination 192.168.197.250;
}
family inet {
address 10.49.2.2/30;
}
}
この例では、インターフェイス t3-0/1/3 がGREトンネルのカプセル化インターフェイスとして機能します。
MPLSプロトコルファミリーが有効になっているインターフェイスで clear-dont-fragment-bit ステートメントを設定する場合、MTU値を指定する必要があります。この MTU 値は、サポートされる最大値である 9192 を超えてはなりません。
例えば:
user@host# show interfaces gr-1/2/0
unit 0 {
clear-dont-fragment-bit;
family inet {
mtu 9100;
address 10.10.1.1/32;
}
family mpls {
mtu 9100;
}
}
ルーターPE1でのカプセル化インターフェイスの設定
ルーターPE1でカプセル化インターフェイスを設定します。
[edit interfaces t3-0/1/3]
unit 0 {
family inet {
address 192.168.197.249/30;
}
}
カプセル化インターフェイスでルーティングインスタンスを設定する
トンネル カプセル化インターフェイス( t3-0/1/3)も ルーティング インスタンスで設定されている場合は、インターフェイス定義でそのルーティング インスタンスの名前を指定する必要があります。システムは、このルーティング インスタンスを使用して、トンネルの宛先アドレスを検索します。
カプセル化インターフェイスでルーティング インスタンスを設定するには、次のセクションの手順を実行します。
ルーターPE1でのルーティングインスタンスの設定
ルーティング インスタンス下でトンネルカプセル化インターフェイスを設定する場合、ルーターPE1でルーティング インスタンスを設定します。
[edit routing-instances]
vpna {
instance-type vrf;
interface gr-1/2/0.0;
interface t3-0/1/3.0;
route-distinguisher 10.255.14.174:1;
vrf-import vpna-import;
vrf-export vpna-export;
protocols {
bgp {
group vpna {
type external;
peer-as 100;
as-override;
neighbor 10.49.2.1;
}
}
}
}
ルーターPE1のGREトンネル インターフェイスの設定
ルーターPE1でGREトンネルインターフェイスを設定します。
[edit interfaces gr-1/2/0]
unit 0 {
tunnel {
source 192.168.197.249;
destination 192.168.197.250;
routing-instance {
destination vpna;
}
}
family inet {
address 10.49.2.2/30;
}
}
MPLSプロトコルファミリーが有効になっているインターフェイスで clear-dont-fragment-bit ステートメントを設定する場合、MTU値を指定する必要があります。この MTU 値は、サポートされる最大値である 9192 を超えてはなりません。
例えば:
user@host# show interfaces gr-1/2/0
unit 0 {
clear-dont-fragment-bit;
family inet {
mtu 9100;
address 10.10.1.1/32;
}
family mpls {
mtu 9100;
}
}
MPLSプロトコルファミリーが有効になっているインターフェイスで clear-dont-fragment-bit ステートメントを設定する場合、MTU値を指定する必要があります。この MTU 値は、サポートされる最大値である 9192 を超えてはなりません。
例えば:
user@host# show interfaces gr-1/2/0
unit 0 {
clear-dont-fragment-bit;
family inet {
mtu 9100;
address 10.10.1.1/32;
}
family mpls {
mtu 9100;
}
}
ルーターPE1でのカプセル化インターフェイスの設定
ルーターPE1でカプセル化インターフェイスを設定します。
[edit interfaces t3-0/1/3]
unit 0 {
family inet {
address 192.168.197.249/30;
}
}
ルーターCE1でのGREトンネル インターフェイスの設定
ルーターCE1でGREトンネルインターフェイスを設定します。
[edit interfaces gr-1/2/0]
unit 0 {
tunnel {
source 192.168.197.250;
destination 192.168.197.249;
}
family inet {
address 10.49.2.1/30;
}
}