Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

プレフィックスリストを自動的に更新する方法

 

本書では、プレフィックスリストを使用してきました。接頭辞リストには、ルーティングポリシーで使用できる1つ以上の接頭辞が含まれています。ネットワークを構築する際には、通常、手動で更新されたプレフィックスリストを使用します。実際には、頻繁に変更されることは’ありません。中継プロバイダからのすべてを受け入れることができます。そのため、多くのピアや顧客が存在しない場合は、プレフィックスリストを変更するだけではありません。私’たちは私たちのようになりました。

しかし、ネットワークと顧客ベースの成長に伴い、手動でプレフィックスリストを更新することは不可能です。この付録では、Junos OS の NETCONF 機能をいくつかの Python スクリプトとともに使用して、プレフィックスリストの変更を自動的にアップロードする方法について説明します。

この付録は、ネットワーク’の管理システムへの切り取りと貼り付けを可能にする既製のスクリプトを提供できないため、本書の残りの内容とは多少違いがあります。その方法をご紹介し、お客様のソフトウェア開発チームに連絡して、新しいセキュアルーティングテーブルについて熱心して、ネットワーク上でプレフィックスリストの自動変更を実装するよう要請してください。

基本的な手順は3つあります。

  1. お客様の顧客に対して、お客様に対して顧客に対して発表される設定 (または数値) が含まれていることを確認します。

  2. IRR から、そのセットのプレフィックスリストを取得します。

  3. プレフィックスリストをルーターにアップロードします。

このような作業’を定期的に行うと (たとえば、1日に2回)、接頭辞リストを変更したい顧客について心配する必要はありません。自分のプレフィックスリスト’の変更を求めるチケットを作成する必要はありません。つまり、このよう’なチケットをもはや処理する必要がないということです。

顧客データベース

お客様のデータベースには、顧客ごとに少なくとも2つのフィールドを含める必要があります。

  • AS 番号は、ルーターにアップロードされる際のプレフィックスリストの名前に使用されます。

  • セットとして機能します。

顧客は、IRR に設定されているものを作成します。お客様をネットワークに接続する際には、顧客が設定されているかどうかを確認します。このファイルには、自社のネットワークに使用されている AS 番号 (独自のプレフィックスをアナウンスするもの) だけでなく、顧客の as 番号や as セットを含める必要があります。この“ツリー”をたどることで、 bgpq3このツールでは、顧客が発表するすべての接頭番号を折りたたむ単一のプレフィックスリストを1つ作成します。

プレフィックスリストを取得します。Bgpq3 を使用

セットとしてプレフィックスリストに変換するツールは bgpq3。公式の bgpq3 web サイトは、お客様が読んで学習し、投稿するために招待しているhttps://github.com/snar/bgpq3にあります。Bgpq3 をコンピューターにインストールした後、それを使用して、次のようなプレフィックスリストを作成できます。

IPv6 の場合:

使っ bgpq3、ディレクトリに .txt ファイルを作成します。 prefix-list.d/の各セットに対して、自動更新を行います。.Txt ファイルには、ルーターにプッシュするプレフィックスリストの名前を指定します。また、コンテンツは1行にプレフィックスを付ける必要があります。この作業を定期的に実行するスクリプトを作成することは、読者にとっての課題として残されています。

ルーターにアップロード

Junos OS では、外部情報を設定データベースにアップロードする方法を複数サポートしています。これは付録であるため、包括的ではありません。現場でテストされた組み込みの構成を提供していません。ここでは例のみを示しています。この例では、Junos OS 用の NETCONF インターフェイスを使用して情報をアップロードしています。この例では、Python 3 言語を使用し、ジュニパーネットワークスによって作成および管理される Junos の Pの z + ライブラリを具体的に示しています。また、Pごみ箱は、必要に応じて Python 2.7 とともに使用することもできます。

Note

1 日分の「Day z」ガイドをご覧ください。https://www.juniper.net/us/en/training/jnbooks/day-one/automation-series/junos-pyez-cookbook/.

この例では、架空の Juniper デバイスを構成ターゲットとして使用しています。ただし、この例は、同じ方法でプレフィックスリストを使用する Junos OS デバイスのいずれかで動作する必要があります。この要件は、テキストファイルの内容に基づいて、プレフィックスリストに存在する IP プレフィックスのリストを更新することを目的としています。これを実現するスクリプトは、リモートホストから実行されます。

要件

Junos OS デバイス用:

リモートサーバーの場合:

  • Python 3.5 がインストールされている

  • (また、Python 2 を使用して、以下のコードで構文を調整することもあります)

  • Junos Pごみ箱がインストールされていること (を参照してください)。https://github.com/Juniper/py-junos-eznc): たとえば、次のようになります。

  • #pip install junos-eznc

サンプルコード

以下の Python 3 コードは、* .txt ファイルを指定したディレクトリで検索しています。 prefix-list.dスクリプト自体の親ディレクトリ内これらの各ファイルは、更新されるプレフィックスリストを表し、プレフィックスリストが含まれている必要があるのは、各行に1つずつ接頭辞を含める必要があります。空行と hash (#) 記号で始まる行は無視されます。ファイルの名前 (拡張子サフィックスを除く) は、プレフィックスリストの名前として使用されます。

設定に合わせて、スクリプトの最上位にある設定変数 HOST、USER、PASS を更新します。詳細については、スクリプト内のコメントを参照してください。

このコードは、自社のネットワーク管理システムへのカットアンドペーストではないと考えられますが、完全にプレフィックスリストを変更できるようになります。

次のステップ: 同じメカニズムを使用してピアをフィルタリングする

開発者は、独創的なソフトウェアを作成し、ネットワークエンジニアはこちらを使用して独自のものになります。

前述の作業に基づくと、顧客を絞り込むためのプレフィックスリストを作成するだけでなく、同じメカニズムを使用してピアをフィルタリングすることもできます。ネットワーク管理システム‘で擬似’顧客を作成し、ピアがアナウンスする必要があるセットを書き留め、その後で、 prefix-listそのピアの BGP ポリシーに含まれています。

このようにすることで、顧客と同僚の両方が、発表が許可されている接頭番号について、確実にセキュリティを確保することができます。

その他のリソース

セキュリティ強化されたルーティングテーブルを作成した後、次のステップは、より安全で安定したインターネットを使用して責任を持っているお客様やパートナーを対象としています。

これを表現する1つの方法は、MANRS (相互に合意したルーティングセキュリティに関する基準) に参加することです。MANRS は、インターネット協会によってサポートされているグローバルなイニシアチブであり、最も一般的なルーティングの脅威を軽減するために欠かせない修正を提供します。詳細については、以下の web サイトをご覧ください。https://www.manrs.org/.

お客様が有効な情報をお知らせするようにするために、お知らせ、IRR 登録、または RPKI ROAs を修正することが必要な場合があります。参加するネットワークが増えるにつれて、インターネットのセキュリティが強化されます。

Juniper’のテクニカルライブラリには、次のような優れた資料が用意されています。

また、NLnet Labs によってまとめられたよくある質問は、RPKI 特有の問題において非常に便利です。https://nlnetlabs.nl/projects/rpki/faq/.

まとめ

このガイドに記載されている情報を参考にして、セキュアなルーティングテーブルのためのメソッドの設計と実装を始めることを望んでいます。また、より安定した信頼性の高いネットワークを構築しています。

非常に多くの場合、本書の作成者は、その部分が、セキュリティの強化されたルーティングテーブルを取得するために実行されるすべての作業によって、間もなく古くなってしまいます。本書の一部が古くなった場合、目標を達成したことになります。

ルーティングセキュリティの実装にはかなりの時間がかかることに気付いているかもしれません。しかし、そのために必要なツールやスクリプトは、必要に応じて簡単に作成–できます。そのためには、Github などのソースを使用して、必要な時間を短縮することをお手伝いします。すべてが同じ目標を持っていることを思い出してください。そのため、これらのツールを改善する方法について、お客様がお手伝いできるかどうかをご確認ください。

ルーティングのセキュリティをさらに開発する方法について、アイデア、提案、または備考がある場合は、著者 (dayone@juniper.net) に自由に連絡してください。1つのフォースを参加させてお互いを支援することで、インターネットをすべてを安全な場所にすることができるようになりました。