Junos OS ルーティング テーブルの設定
Junos OS ルーティング テーブルの理解
Junos OSは、複数のルーティングテーブルを自動的に作成し、維持します。各ルーティング テーブルは、特定の目的で使用されます。これらの自動的に作成されたルーティングテーブルに加えて、独自のルーティングテーブルを作成することもできます。
各ルーティング テーブルは、転送テーブルの一部を設定します。したがって、転送テーブルはルーティングテーブルに基づいてパーティション分割されます。これにより、各ルーティング テーブルに対して特定の転送動作が可能になります。例えば、VPN の場合、各 VPN ベースのルーティング テーブルには、転送テーブル内の独自の VPN 固有のパーティションがあります。
ルーティング ソフトウェアは、ユニキャスト ルートとマルチキャスト ルートを異なるルーティング テーブルで維持するのが一般的です。また、ルーティング情報の伝送を管理するために別個のルーティング テーブルを作成するようなポリシー上の考慮事項がある場合もあります。
ルーティングテーブルの作成はオプションです。何も作成しない場合、Junos OSは以下のようなデフォルトのルーティングテーブルを使用します。
inet.0:IPv4(IP バージョン 4)ユニキャスト ルート用。このテーブルには、インターフェイスのローカルルートとダイレクトルート、スタティックルート、動的に学習されたルートが格納されます。
inet.1:IPv4 マルチキャスト転送キャッシュ用。このテーブルには、ジョイン状態情報の結果として動的に作成される IPv4 (S,G) グループ エントリが格納されます。
inet.2 - マルチプロトコル BGP(MBGP)が有効な場合の、後続のアドレス ファミリー インジケーター(SAFI) 2 ルート。このテーブルには、マルチキャストのリバースパスフォワーディング(RPF)ルックアップに使用されるユニキャストルートが格納されます。このテーブルのルートは、特定のRPFテーブルを必要とするディスタンスベクトルマルチキャストルーティングプロトコル(DVMRP)で使用できます。対照的に、プロトコル独立マルチキャスト(PIM)は、inet.0テーブルに対してRPFチェックを実行できるため、このテーブルは必要ありません。ルーティング情報ベース(RIB)グループを使用してinet.0からinet.2にルートをインポートするか、マルチキャストルーティングプロトコルからinet.2にルートを直接インストールすることができます。
inet.3—IPv4 MPLS用このテーブルには、MPLS ラベルスイッチパス(LSP)のエグレス アドレス、LSP 名、発信インターフェイス名が格納されます。このルーティングテーブルは、ローカルデバイスがLSPへのイングレスノードである場合にのみ使用されます。
inet6.0 - IP バージョン 6(IPv6)ユニキャスト ルート用。このテーブルには、インターフェイスのローカルルートとダイレクトルート、スタティックルート、動的に学習されたルートが格納されます。
inet6.1:IPv6 マルチキャスト転送キャッシュ用。このテーブルには、結合状態情報の結果として動的に作成される IPv6 (S,G) グループ エントリが格納されます。
instance-name.inet.0—ルーティング インスタンスを設定すると、Junos OS はデフォルトのユニキャスト ルーティング テーブル instance-name.inet.0 を作成します。
instance-name.inet.2—VRF タイプのルーティング インスタンスで ルーティング インスタンス instance-name プロトコル BGP ファミリー inet マルチキャスト を設定すると、Junos OS は instance-name.inet.2 テーブルを作成します。
.inet.2 テーブルを作成する別の方法は、 instance-name ステートメントを使用すること
rib-group
です。「例:あるルーティングテーブルから別のルーティングテーブルに特定のルートをエクスポートする」を参照してください。メモ:inet-vpn マルチキャスト ルートを bgp.l3vpn.2 テーブルから .inet.2 テーブルにインポートしても、instance-name.inet.2 テーブルinstance-nameは作成されません。インポート操作は、instance-name.inet.2 テーブルが既に存在する場合にのみ機能します。
instance-name.inetflow.0—フロー ルートを設定すると、Junos OS によってフロー ルーティング テーブル instance-name.inetflow.0 が作成されます。
bgp.l2vpn.0—BGP から学習したレイヤー 2 VPN ルート用。このテーブルには、他のPE(プロバイダ エッジ)ルーターから学習したルートが格納されます。レイヤー2ルーティング情報は、ターゲットコミュニティに基づいてレイヤー2 VPNルーティングおよび転送インスタンス(VRF)にコピーされます。
bgp.l3vpn.0—BGP から学習したレイヤー 3 VPN ルート用。このテーブルには、他のPEルーターから学習したルートが格納されます。一致するルート テーブルがある場合、このテーブルのルートはレイヤー 3 VRF にコピーされます。
l2circuit.0
- LDP から学習した l2 回線ルートの場合。このテーブルのルートは、l2circuit シグナリング メッセージの送受信に使用されます。mpls.0—MPLS ラベル スイッチング動作用。このテーブルは、ローカル デバイスがトランジット ルーターの場合に使用されます。
iso.0—IS-IS ルート向け。IS-IS を使用して IP ルーティングをサポートしている場合、このテーブルにはローカル デバイスのネットワーク エンティティ タイトル(NET)のみが含まれます。
juniper_private—Junos OSがルーティングエンジンとPICハードウェア間で内部的に通信すること。
Junos OS のルーティング テーブル機能
Junos OSは、ルーティング情報用に2つのデータベースを維持しています。
ルーティングテーブル—すべてのルーティングプロトコルが学習したすべてのルーティング情報が含まれます。(一部のベンダーは、この種のテーブルをルーティング情報ベース [RIB] と呼んでいます)。
転送テーブル - パケットの転送に実際に使用されるルートが含まれます。(一部のベンダーは、この種のテーブルを転送情報ベース [FIB] と呼んでいます)。
デフォルトでは、Junos OS は 3 つのルーティング テーブルを維持します。1 つは IPv4(IP version 4)ユニキャスト ルート用、もう 1 つはマルチキャスト ルート用、もう 3 つは MPLS 用です。追加のルーティングテーブルを設定できます。
Junos OSは、IPv4とIPバージョン 6(IPv6)ルート用に別々のルーティングテーブルを維持します。
Junos OSは、ルーティングテーブルから転送テーブルにすべてのアクティブなルートをインストールします。アクティブルートは、パケットを宛先に転送するために使用されるルートです。Junosオペレーティングシステムカーネルは、転送テーブルのマスターコピーを保持します。パケット転送テーブルを、パケット転送を担当するコンポーネントであるパケット転送エンジンにコピーします。
通常、Junos ルーティング プロトコル プロセスは、優先度の最も低いルートを選択してアクティブなルートを決定します。Junos OS は、代替設定とタイブレイカー設定をサポートしており、BGP や MPLS を含む一部のルーティング プロトコルは、これらの追加設定を使用します。
Martian アドレスと静的ルート、集約ルート、生成ルートを Junos ルーティング テーブルに追加し、表 1 に示すプロパティを 1 つ以上使用してルートを設定できます。
説明 |
静的 |
集計 |
生成 |
---|---|---|---|
宛先アドレス |
X |
X |
X |
宛先への既定のルート |
X |
X |
X |
宛先へのネクストホップのIPアドレスまたはインターフェイス |
X |
– |
– |
ネクストホップとしてのラベルスイッチパス(LSP) |
X |
– |
– |
パケットをドロップし、この宛先への拒否ルートをインストールし、インターネット制御メッセージ プロトコル(ICMP)到達不能メッセージを送信します。 |
X |
X |
X |
パケットをドロップし、この宛先への拒否ルートをインストールするが、ICMP 到達不能メッセージは送信しない |
X |
X |
X |
ローカルルーターがパケットを受信するようにします。 |
X |
– |
– |
メトリック値をルートに関連付ける |
X |
X |
X |
ルートの種類 |
X |
X |
X |
プリファレンス値 |
X |
X |
X |
追加のプリファレンス値 |
X |
X |
X |
独立優先(修飾ネクストホップ ステートメント) |
X |
– |
– |
ルートに関連付けるBGPコミュニティ情報 |
X |
X |
X |
ルートに関連付ける自律システム(AS)パス情報 |
X |
X |
X |
ルートに関連付けるOSPFタグ文字列 |
X |
X |
X |
アクティブなスタティックルートを転送テーブルにインストールしないでください |
X |
– |
– |
転送テーブルにルートをインストールする |
X |
– |
– |
転送テーブルにスタティック ルートを永続的に保持する |
X |
– |
– |
寄与する AS パスからの最長の共通先頭シーケンスのみを含めます |
– |
X |
– |
特定のルートのすべてのAS番号を含める |
– |
X |
– |
ルーティングおよび転送テーブルに非アクティブなルートを保持する |
X |
X |
X |
ルーティングおよび転送テーブルから非アクティブなルートを削除する |
X |
X |
X |
ルートに関連付けるアクティブ・ポリシー |
– |
X |
X |
ルートが再アドバタイズメントの対象ではないことを指定します |
X |
– |
– |
直接接続されたネクストホップではないプレフィックスへのルートを指定する |
X |
– |
– |
PTXルーターでのインターフェイスルートのデフォルトルーティングテーブルグループの理解
PTXシリーズ・パケット・トランスポート・ルーターでは、デフォルトのインターフェイス-ルート・ルーティング・テーブル・グループが他のJunos OSルーティング・デバイスと異なります。
PTXシリーズ・ルーターは、通常インテリア・ゲートウェイ・プロトコル(IGP)ルートを使用してIP転送を行うMPLSトランジット・プラットフォームとなります。インターフェイスルートは、直接接続されたローカルルートです。
PTX シリーズルーターは、間接的なネクストホップ解決を強制するという点で、他の Junos OS ルーティングデバイスとは異なります。PTX シリーズルーターでは、連鎖された複合ネクストホップを作成するために、間接ネクストホップを解決する必要があります。これにより、ネクストホップ タイプが使用できない場合にルートが非表示になることがあります。
ルートが非表示になるのを防ぐために、PTXシリーズプラットフォームは、inet.0のルートをinet.2とinet.3に、inet6.0のルートをinet6.2とinet6.3に自動的にコピーします。
PTXシリーズルーターのデフォルトのインターフェイスルーティングテーブル設定は次のとおりです。
user@host# show routing-options | display inheritance defaults ## ## 'interface-routes' was inherited from group 'junos-defaults' ## interface-routes { ## ## 'rib-group' was inherited from group 'junos-defaults' ## rib-group { ## ## 'junos-ifrg-inet0-to-inet2-and-inet3' was inherited from group 'junos-defaults' ## inet junos-ifrg-inet0-to-inet2-and-inet3; ## ## 'junos-ifrg-inet60-to-inet62-and-inet63' was inherited from group 'junos-defaults' ## inet6 junos-ifrg-inet60-to-inet62-and-inet63; } } rib-groups { ## ## 'junos-ifrg-inet0-to-inet2-and-inet3' was inherited from group 'junos-defaults' ## junos-ifrg-inet0-to-inet2-and-inet3 { ## ## 'inet.0' was inherited from group 'junos-defaults' ## 'inet.2' was inherited from group 'junos-defaults' ## 'inet.3' was inherited from group 'junos-defaults' ## import-rib [ inet.0 inet.2 inet.3 ]; } ## ## 'junos-ifrg-inet60-to-inet62-and-inet63' was inherited from group 'junos-defaults' ## junos-ifrg-inet60-to-inet62-and-inet63 { ## ## 'inet6.0' was inherited from group 'junos-defaults' ## 'inet6.2' was inherited from group 'junos-defaults' ## 'inet6.3' was inherited from group 'junos-defaults' ## import-rib [ inet6.0 inet6.2 inet6.3 ]; } }
関連項目
例: ルーティングテーブルの作成
この例では、カスタム ルーティング テーブルを作成する方法を示します。
要件
この例では、デバイスの初期化以上の特別な設定は必要ありません。
概要
ルーティングテーブルの作成はオプションです。ルーティング情報の伝送を管理するために別個のルーティング テーブルを作成しなければならないようなポリシー上の考慮事項がある場合があります。この機能はめったに使用されませんが、ここでは完全を期すために示します。
ルーティング テーブルを作成しない場合、Junos OS はデフォルトのルーティング テーブルを使用します。
スタティックルート、アグリゲートルート、生成ルート、またはMartianルートをデフォルトのIPv4ユニキャストルーティングテーブル(inet.0)にのみ追加したい場合、デフォルトでは ルーティングテーブルを作成する必要はありません。これらのルートを追加するには、 静的、 集約、 生成、および martians
の各ステートメントを含めます。
ルーティング テーブルを明示的に作成するには、 ステートメントと、 ステートメントの下に子ステートメントを含め rib
ます rib
。
ルーティング テーブル名である には、routing-table-nameプロトコル ファミリーが含まれ、その後にピリオドと数字がオプションで続きます。プロトコルファミリーは、IPv4 ファミリーの場合は inet、IPv6 ファミリーの場合は inet6、または国際標準化機構 (ISO) プロトコルファミリーの場合は iso にすることができます。番号はルーティング インスタンスを表します。最初のインスタンスは 0 です 。
この例では、inet.14と呼ばれるカスタムIPv4ルーティングテーブルを設定する方法を示します。この例では、単一のスタティック ルートをルーティング テーブルに読み込む方法も示しています。
EXシリーズスイッチでは、動的に学習されたルートのみをルーティングテーブルグループ間でインポートできます。
構成
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 階層レベルのCLI [edit]
にコマンドをコピーして貼り付けます。
set routing-options rib inet.14 static route 10.2.0.0/16 discard
手順
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLI のナビゲーションについては、『Junos OS CLIユーザーガイド』の「 コンフィギュレーション・モードで CLI エディタを使用する」を参照してください。
ルーティングテーブルを作成するには:
ルーティングテーブルを設定します。
[edit routing-options] user@host# set rib inet.14 static route 10.2.0.0/16 discard
デバイスの設定が完了したら、設定をコミットします。
[edit] user@host# commit
結果
コマンドを発行 show routing-options
して、構成を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@host# show routing-options rib inet.14 { static { route 10.2.0.0/16 discard; } }
検証
設定が正常に機能していることを確認します。
ルーティングテーブルのチェック
目的
静的ルートがカスタム ルーティング テーブルに表示されていることを確認します。
アクション
user@host> show route table inet.14 inet.14: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) Restart Complete + = Active Route, - = Last Active, * = Both 10.2.0.0/16 *[Static/5] 00:00:09 Discard
意味
静的ルートは、カスタムルーティングテーブルにあります。
例:あるルーティング テーブルから別のルーティング テーブルへの特定のルートのエクスポート
この例では、あるルーティングテーブルから、同じルーティングインスタンス内の別のルーティングテーブルに特定のルートを複製する方法を示しています。
要件
この例を設定する前に、デバイス初期化以外の特別な設定を行う必要はありません。
概要
この例では、 ステートメントと rib-group
ステートメントを使用してauto-export
、あるルーティングテーブルから別のルーティングテーブルに特定のルートをエクスポートするという目的を達成します。
次の点を考慮してください。
ルーティングインスタンスで 自動エクスポート が設定されている場合、 vrf-import ポリシーと vrf-export ポリシーが調べられます。 自動エクスポート 機能は、ポリシー内のルートターゲットとコミュニティ情報に基づいて、ローカルルーティングインスタンスinet.0テーブル間でルートリークを実行します。
.inet.0 以外のinstanceテーブルにルートをインポートする必要がある場合は、この
rib-group
ステートメントを使用できます。自動エクスポートで RIB グループを使用するには、ルーティング インスタンスで明示的な vrf-import および vrf-export ポリシーを指定する必要があります。vrf-import ポリシーと vrf-export ポリシーを拡張して、RIB グループの必要に応じてルートをフィルタリングするための追加条件を含めることができます。
この例では、アクセス内部ルートがvpna.inet.0ルーティングテーブルに追加されます。アクセス内部ルートは、vpna.inet.2ルーティングテーブルにも複製されます。
構成
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 階層レベルのCLI [edit]
にコマンドをコピーして貼り付けます。
set interfaces fe-1/3/1 vlan-tagging set interfaces fe-1/3/1 unit 0 vlan-id 512 set interfaces fe-1/3/1 unit 0 family inet address 10.168.100.3/24 set interfaces lo0 unit 0 family inet address 192.168.3.3/32 set routing-options rib-groups rib-group-vpna-access-internal import-rib vpna.inet.2 set routing-options autonomous-system 63000 set policy-options policy-statement vpna-export term a from protocol bgp set policy-options policy-statement vpna-export term a then community add vpna-comm set policy-options policy-statement vpna-export term a then accept set policy-options policy-statement vpna-export term b from protocol access-internal set policy-options policy-statement vpna-export term b then accept set policy-options policy-statement vpna-export term c then reject set policy-options policy-statement vpna-import term a from protocol bgp set policy-options policy-statement vpna-import term a from community vpna-comm set policy-options policy-statement vpna-import term a then accept set policy-options policy-statement vpna-import term b from instance vpna set policy-options policy-statement vpna-import term b from protocol access-internal set policy-options policy-statement vpna-import term b then accept set policy-options policy-statement vpna-import term c then reject set policy-options community vpna-comm members target:63000:100 set routing-instances vpna instance-type vrf set routing-instances vpna interface fe-1/3/1.1 set routing-instances vpna route-distinguisher 100:1 set routing-instances vpna vrf-import vpna-import set routing-instances vpna vrf-export vpna-export set routing-instances vpna routing-options auto-export family inet unicast rib-group rib-group-vpna-access-internal set routing-instances vpna protocols bgp group bgp-vpna type external set routing-instances vpna protocols bgp group bgp-vpna family inet multicast set routing-instances vpna protocols bgp group bgp-vpna peer-as 100 set routing-instances vpna protocols bgp group bgp-vpna neighbor 10.0.0.10
ルーティング テーブル間の特定のルート エクスポートの設定
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の説明については、 Junos OS CLIユーザーガイドの 設定モードでCLIエディターを使用するを参照してください。
デバイスを設定するには:
インターフェイスを設定します。
[edit interfaces fe-1/3/1] user@host# set vlan-tagging user@host# set unit 0 vlan-id 512 user@host# set unit 0 family inet address 10.168.100.3/24 [edit interfaces lo0 unit 0] user@host# set family inet address 192.168.3.3/32
-
vpna.inet.0 へのインポートおよび vpna.inet.0 からのエクスポートの特定のルートを指定するルーティング ポリシーを構成します。
[edit policy-options policy-statement vpna-export] user@host# set term a from protocol bgp user@host# set term a then community add vpna-comm user@host# set term a then accept user@host# set term b from protocol access-internal user@host# set term b then accept user@host# set term c then reject [edit policy-options policy-statement vpna-import] user@host# set term a from protocol bgp user@host# set term a from community vpna-comm user@host# set term a then accept user@host# set term b from instance vpna user@host# set term b from protocol access-internal user@host# set term b then accept user@host# set term c then reject [edit policy-options] user@host# set community vpna-comm members target:63000:100
-
ルーティングインスタンスを設定します。
[edit routing-instances vpna] user@host# set instance-type vrf user@host# set interface fe-1/3/1.1 user@host# set route-distinguisher 100:1 user@host# set vrf-import vpna-import user@host# set vrf-export vpna-export
vrf-import および ステートメントは、vpna-import および
vrf-export
vpna-export ルーティング ポリシーを適用するために使用されます。 RIB グループを設定し、 vpna.inet.2 ルーティング テーブルにルートをインポートします。
[edit routing-options] user@host# set rib-groups rib-group-vpna-access-internal import-rib vpna.inet.2
auto-export
ステートメントを設定して、あるルーティングテーブルから別のルーティングテーブルにルートをエクスポートできるようにします。[edit routing-options] user@host# set auto-export family inet unicast rib-group rib-group-vpna-access-internal
BGP を設定します。
[edit routing-instances vpna protocols bgp group bgp-vpna] user@host# set type external user@host# set family inet multicast user@host# set peer-as 100 user@host# set neighbor 100.0.0.10
自律システム(AS)番号を設定します。
[edit routing-options] user@host# set autonomous-system 63000
結果
設定モードから、 、 、 show policy-options
show routing-options
、および show routing-instances
のコマンドを入力してshow interfaces
設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@host# show interfaces fe-1/3/1 { vlan-tagging; unit 0 { vlan-id 512; family inet { address 10.168.100.3/24; } } } lo0 { unit 0 { family inet { address 192.168.3.3/32; } } }
user@host# show policy-options policy-statement vpna-export { term a { from { protocol bgp; } then { community add vpna-comm; accept; } } term b { from protocol access-internal; then accept; } term c { then reject; } } policy-statement vpna-import { term a { from { protocol bgp; community vpna-comm; } then accept; } term b { from { instance vpna; protocol access-internal; } then accept; } term c { then reject; } } community vpna-comm members target:63000:100;
user@host# show routing-options rib-groups { rib-group-vpna-access-internal { import-rib vpna.inet.2; } } autonomous-system 63000;
user@host# show routing-instances vpna { instance-type vrf; interface fe-1/3/1.1; route-distinguisher 100:1; vrf-import vpna-import; vrf-export vpna-export; routing-options { auto-export { family inet { unicast { rib-group rib-group-vpna-access-internal; } } } } protocols { bgp { group bgp-vpna { type external; family inet { multicast; } peer-as 100; neighbor 100.0.0.10; } } } }
デバイスの設定が完了したら、設定モードから コミット を入力します。
検証
および show route table vpna.inet.2
コマンドを実行してshow table route vpna.inet.0
、設定が正しく機能していることを確認します。