Junos OS ルーティング テーブルの設定
Junos OSルーティングテーブルについて
Junos OSは、複数のルーティングテーブルを自動的に作成し、維持します。各ルーティングテーブルは、特定の目的で使用されます。これらの自動的に作成されたルーティングテーブルに加えて、独自のルーティングテーブルを作成することができます。
各ルーティングテーブルは、転送テーブルの一部にデータを入力します。したがって、転送テーブルはルーティングテーブルに基づいてパーティション化されます。これにより、各ルーティングテーブルに対して特定の転送動作が可能になります。例えば、VPNの場合、各VPNベースのルーティングテーブルには、転送テーブル内に独自のVPN固有のパーティションがあります。
ルーティングソフトウェアでは、ユニキャストルートとマルチキャストルートを異なるルーティングテーブルで維持するのが一般的です。また、ポリシー上の考慮事項により、ルーティング情報の伝搬を管理するために別のルーティング テーブルを作成する必要がある場合もあります。
ルーティングテーブルの作成はオプションです。何も作成しない場合、Junos OSは以下のデフォルトのルーティングテーブルを使用します。
inet.0—IPバージョン4(IPv4)ユニキャストルートの場合。このテーブルには、インターフェイスのローカルルートとダイレクトルート、スタティックルート、動的に学習されたルートが格納されます。
inet.1—IPv4 マルチキャスト転送キャッシュ用。このテーブルには、ジョイン ステート情報の結果として動的に作成される IPv4(S,G)グループ エントリーが格納されます。
inet.2—マルチプロトコルBGP(MBGP)が有効になっている場合の後続のアドレスファミリーインジケーター(SAFI)2ルート。このテーブルには、マルチキャストのリバースパスフォワーディング(RPF)ルックアップに使用されるユニキャストルートが格納されます。このテーブルのルートは、特定の RPF テーブルを必要とする Distance Vector Multicast Routing Protocol(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)グループ エントリーが格納されます。
-
inet6.2—inet6.2テーブルは、特にPTXルーター上で、インターフェイスルートのデフォルトルーティングルーティングテーブルグループの一部として、他のIPv6ルーティングテーブルと組み合わせて使用されることがよくあります。
-
inet6.3—inet6.3 テーブルは、ラベル付き IPv6 ルートの保存に使用されます。
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 テーブルを作成します。
instance-name.inet.2 テーブルを作成する別の方法は、
rib-group
ステートメントを使用することです。例:あるルーティングテーブルから別のルーティングテーブルへの特定のルートのエクスポートを参照してください。手記:bgp.l3vpn.2テーブルからinstance-name.inet.2テーブルにinet-vpnマルチキャストルートをインポートしても、instance-name.inet.2テーブルは作成されません。インポート操作は、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 から学習した l2circuit ルートの場合。このテーブルのルートは、L2回線シグナリングメッセージの送受信に使用されます。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 つは IP バージョン 4(IPv4)ユニキャスト ルート用、2 つ目はマルチキャスト ルート用、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 |
独立優先(qualified-next-hopステートメント ) |
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 はデフォルトのルーティング テーブルを使用します。
スタティックルート、アグリゲートルート、生成ルート、または火星ルートのみをデフォルトのIPv4ユニキャストルーティングテーブル(inet.0)に追加したい場合、これらのルートはデフォルトで inet.0に追加されるため、ルーティングテーブルを作成する必要はありません。これらのルートは、 static、 aggregate、 generate、 martians
ステートメントを含めることで追加できます。
ルーティングテーブルを明示的に作成するには、rib
ステートメントの下に rib
ステートメントと子ステートメントを含めます。
ルーティングテーブル名の routing-table-nameには、プロトコルファミリーが含まれ、オプションでピリオドと数字が続きます。プロトコルファミリーは、IPv4 ファミリーの場合は inet、IPv6ファミリーの場合は inet6 、国際標準化機構(ISO)プロトコルファミリーの場合は iso です。数字はルーティング インスタンスを表します。最初のインスタンスは 0 です。
この例では、inet.14 というカスタム IPv4 ルーティングテーブルを設定する方法を示します。この例では、ルーティングテーブルに単一の静的ルートを入力する方法も示しています。
EXシリーズスイッチでは、動的に学習されたルートのみ、あるルーティングテーブルグループから別のグループにインポートできます。
構成
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 [edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
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
意味
静的ルートは、カスタムルーティングテーブルにあります。
例:あるルーティングテーブルから別のルーティングテーブルへの特定のルートのエクスポート
この例では、同じルーティング インスタンス内で、あるルーティングテーブルから別のルーティングテーブルに特定のルートを複製する方法を示しています。
必要条件
この例を設定する前に、デバイス初期化以外の特別な設定を行う必要はありません。
概要
この例では、 auto-export
ステートメントと rib-group
ステートメントを使用して、あるルーティングテーブルから別のに特定のルートをエクスポートするという目的を達成します。
次の点を考慮してください。
ルーティング インスタンスで 自動エクスポート が設定されている場合、 vrf-import ポリシーと vrf-export ポリシーが調べられます。ポリシー内のルートターゲットとコミュニティ情報に基づいて、 自動エクスポート 機能はローカルルーティング インスタンスinet.0テーブル間でルートリークを実行します。
instance.inet.0以外のテーブルにルートをインポートする必要がある場合は、
rib-group
ステートメントを使用することができます。自動エクスポートで RIB グループを使用するには、ルーティング インスタンスで vrf-import ポリシーと vrf-export ポリシーを明示的に指定する必要があります。vrf-import および vrf-export ポリシーを拡張して、RIB グループで必要に応じてルートをフィルタリングするための条件を追加できます。
この例では、アクセス内部ルートが vpna.inet.0 ルーティングテーブルに追加されます。また、アクセス内部ルートは vpna.inet.2 ルーティングテーブルに複製されます。
構成
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 [edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
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 および
vrf-export
ステートメントは、vpna-import および 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 interfaces
、 show policy-options
、 show routing-options
、 show routing-instances
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
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 table route vpna.inet.0
コマンドと show route table vpna.inet.2
コマンドを実行して、設定が正しく機能していることを確認します。