GP_Advanced_Routing
この付録では、SonicWALL における BGP (Border Gateway プロトコル) の実装の概要と、BGP の動作、およびネットワークに合わせて BGP を設定する方法を説明します。
この付録は以下のセクションで構成されます。
• BGP の概要
• 注意
• BGP の設定
• IPv6 BGP
• BGP の用語
以下のセクションで、BGP の概要を説明します。
• BGP とは
• 背景情報
• 自律システム
• BGP の動作
BGP は、明確に定義され、個別に管理されるネットワーク ドメインである自律システム (AS) 間でルーティング情報を伝達するために使用される、大規模ルーティング プロトコルです。BGP サポートは、SonicWALL セキュリティ装置がネットワークの AS の端点にある従来の BGP ルータの代わりをすることを考慮しています。現在の SonicWALL の BGP 実装は、ネットワークが 1 つの ISP をインターネット プロバイダとして利用し、そのプロバイダに対して単一の接続を持つ "シングルプロバイダ/シングルホーム" 環境に最も適しています。SonicWALL BGP はまた、ネットワークが 1 つの ISP を使っているが、そのプロバイダへの少数の異なるルートがある "シングルプロバイダ/マルチホーム" 環境のサポートも可能です。BGP は、SonicOS GUI の「ネットワーク > ルーティング」ページで有効にしてから、SonicOS のコマンド ライン インターフェース (CLI) を通じて完全に設定します。
以下の表に BGP ライセンス要件を示します。
|
補足 NSA 2600 および NSA 3600 では、BGP をサポートするには SonicOS の拡張ライセンスを購入する必要があります。ライセンスは www.mysonicwall.com で購入できます。
ルーティング プロトコルは、単にネットワーク上を伝送されるパケットではなく、個々のルータおよびルータ グループがネットワーク トポロジを検出し、まとめ、伝達するすべてのメカニズムで構成されます。ルーティング プロトコルは、指定されたとおりにそのプロトコルに従う各構成要素に応じて、異なる分散アルゴリズムを使用します。また、あるネットワーク ドメイン内のルートが、ネットワーク ノード間のリンクの状況の変化に合わせて動的に変化する場合に、最も役立ちます。
通常、ルーティング プロトコルは次の 2 つのデータベースとやりとりを行います。
• Rouiting Information Base (RIB) - ルーティング プロトコル自体が必要とするすべてのルート情報を保存するために使用されます。
• Forward Information Base (FIB) - 実際のパケット転送に使用されます。
RIB から選択される最適ルートを使用して、FIB が設定されます。各ルーティング プロトコルがルーティングの更新を受信すると、あるいは機器の接続が変更されると、RIB と FIB の両方が動的に変化します。
ルーティング プロトコルには次の 2 つの基本クラスがあります。
• 内部ゲートウェイ プロトコル (IGP) - 内部ゲートウェイ プロトコル は、1 つの AS の内部に存在するネットワーク内でルートを伝達するためのものです。IGP には 2 つの世代があります。第 1 世代は、距離ベクトル プロトコルで構成されています。第 2 世代は、リンク状態プロトコルで構成されています。距離ベクトル プロトコルは比較的単純ですが、多数のルータにスケーリングすると問題が発生します。リンク状態プロトコルはより複雑ですが、スケーリング機能に優れています。既存の距離ベクトル プロトコルは、内部ゲートウェイ ルーティング プロトコル (IGRP)、拡張内部ゲートウェイ ルーティング プロトコル (EIGRP)、ルーティング情報プロトコル (RIP)、および RIP の拡張バージョンである RIPv2 です。IGRP と EIGRP は、Cisco の独自仕様プロトコルです。現在使用されているリンク状態プロトコルは、オープン ショーテスト パス ファースト (OSPF) と、あまり使われていない中間システム間連携 (IS-IS) プロトコルです。
SonicOS は、ルーティングの最も一般的な内部ゲートウェイ プロトコルである OSPFv2 と RIPv1/v2 プロトコルの 2 つをサポートして、顧客が Dell SonicWALL 製品を IGP ネットワークで利用できるようにすると共に、従来のルータを別個に導入する追加コストを不要にしています。
• 外部ゲートウェイ プロトコル (EGP) - 標準のユビキタスな外部ゲートウェイ プロトコルは、BGP (正確には BGP4) です。BGP は、自律システム (AS) と呼ばれる明確に定義されたネットワーク ドメイン間でルーティング情報とポリシーを伝達する、大規模ルーティング プロトコルです。自律システムは、他の自律システムから独立して、個別に管理されるネットワーク ドメインです。BGP は、自律システム間でのルートおよびルート ポリシーの変換に使用されます。一般的に、ISP は BGP を利用して、顧客や他の ISP とのルートおよびルート ポリシーを変換します。
各自律システムには、16 ビットの番号が割り当てられています。IP アドレスと同様に、AS 番号はパブリックまたはプライベートです。パブリック AS 番号は限定的なリソースで、要素の数に基づいて配布されます。通常、大規模ネットワークを 2 つ以上の ISP にマルチホーム化している ISP 顧客はパブリック AS を持ちますが、より小規模な顧客は、ISP プロバイダが管理するプライベート AS を与えられます。
Dell SonicWALL 製品がエンタープライズレベルの要件をサポートするようになったのに伴い、Dell SonicWALL 製品を従来の BGP ルータの代わりに AS のエッジに配置したいと考える顧客もいます。
各自律システムには、16 ビットの番号が割り当てられています。IP アドレスと同様に、AS 番号はパブリックまたはプライベートです。パブリック AS 番号は限定的なリソースで、要素の数に基づいて配布されます。通常、大規模ネットワークを 2 つ以上の ISP にマルチホーム化している ISP 顧客はパブリック AS を持ちますが、より小規模な顧客は、ISP プロバイダが管理するプライベート AS を与えられます。
BGP は、非常に柔軟で複雑なルーティング プロトコルです。そのため、BGP ルータは、インターネット コア ルータ、中間 ISP ルータ、ISP 顧客構内設備 (CPE)、または小規模プライベート BGP ネットワーク内のルータなど、さまざまなトポロジ設定に配置できます。さまざまなトポロジに必要な BGP ルートの数は、コア ルータの 300,000 以上から、単一 ISP を使用し、AS 外部のすべての宛先に既定のルーティングを利用する ISP 顧客の 0 まで大きく異なります。一般に、ISP 顧客は、ISP から受信するルートの数にかかわらず、エッジ ルータ (CPE) から ISP に対して BGP を実行する必要があります。これによって、ISP 顧客は外部にどのネットワークを通知するかを制御できます。顧客が自身で所有していないネットワークまたはネットワーク統合を通知し、インターネット トラフィックがそのネットワークにブラックホールのように吸い込まれるという恐れは常にあります。実際には、ISP プロバイダは顧客からの不正な通知を注意深くフィルタリングしているので (BGP の強みの 1 つです)、このようなことはほとんど起こりません。
BGP ネットワークには、3 つの基本区分があります。
• シングルプロバイダ/シングルホーム - ネットワークは単一の ISP (シングルプロバイダ) から単一のルート (シングルホーム) を受信します。ISP 顧客が ISP から受信するルートの数は、AS の性質によって異なります。インターネット プロバイダとして ISP を 1 つだけ使用し、そのプロバイダに対して単一の接続を持つ (シングルプロバイダ/シングルホーム) ISP 顧客は、ルートを受信する必要がありません。AS 外部宛てのすべてのトラフィックは、ISP に送信されます。このような顧客は、内部ネットワークの一部またはすべてを引き続き ISP に通知できます。
• シングルプロバイダ/マルチホーム - ネットワークは単一の ISP (シングルプロバイダ) から複数のルート (マルチホーム) を受信します。単一の ISP を利用しているが、その ISP に対して複数の接続を持つ ISP 顧客は、各 ISP ゲートウェイで既定のルート (0.0.0.0/0) のみを受信できます。1 つの ISP 接続がダウンした場合、接続されている CPE ルータから内部ルータに送信された通知済みの既定のルートが取り消され、インターネット トラフィックは ISP への接続を持つ CPE ルータに流れるようになります。顧客への特定の接続がダウンした場合、顧客の内部ネットワークも各 CPE ルータ ゲートウェイで ISP に通知され、ISP は代替パスを使用できるようになります。
• マルチプロバイダ/マルチホーム - 複数の ISP を使用する (マルチプロバイダ/マルチホーム) ISP 顧客には、ISP ごとに 1 つ以上の個別のゲートウェイ ルータがあります。この場合、顧客の AS はパブリック AS でなければなりません。また、トランジット AS あるいは非トランジット AS のどちらでも構いません。トランジット AS は、別の ISP から到達可能なネットワークを宛先とするトラフィックを、ある ISP から受信し、転送します (トラフィックの宛先は顧客の AS 内ではありません)。非トランジット AS は、その AS を宛先とするトラフィックのみを受信します。その他のトラフィックはすべて破棄されます。一般に、トランジット AS 内の BGP ルータは、各 ISP から完全 BGP ルート テーブルの大部分 (多くの場合はすべて) を受信します。
• インターネット上の大規模ネットワーク以外でも、BGP はマルチホーム、負荷分散、および冗長性の標準です。
– シングルプロバイダ/シングルホーム - 一般的には BGP の有力候補ではありませんが、BGP を使用すると ISP にネットワークを通知できます。シングルホーム ネットワークは RIR からパブリック AS を取得できません。
– シングルプロバイダ/マルチホーム - 一般的に、RFC2270 の提案に従って、単一のプライベート AS (64512 ~ 65535) を使用して BGP のメリットを得つつ、パブリック ASN を維持するのに使用されます。
– マルチプロバイダ/マルチホーム - 冗長性が高く、一般的には各 ISP に対して専用ルータを使用します。パブリック ASN が必要です。大量のメモリ フットプリントを使用します。
• ルートの要約によってルーティングがスケーラブルになります。
BGP は、TCP ポート 179 を通信に使用します。BGP は、宛先に対するエンドツーエンドのパス記述を含む、パスベクトル プロトコルと見なされます。BGP 近隣は、内部 (iBGP) または外部 (eBGP) のどちらかにすることができます。
• iBGP – 近隣者は同一 AS 内に存在します。
• eBGP – 近隣者は別の AS 内に存在します。
パスは、さまざまなパス属性でタグ付けされた UPDATE メッセージで通知されます。AS_PATH と NEXT_HOP は、BGP UPDATE メッセージでルートのパスを記述する、最も重要な 2 つの属性です。
• AS_PATH:ルートの送信元と送信先の AS を示します。以下の例では、AS_PATH は AS 7675 から AS 12345 宛てです。内部 BGP の場合、AS_PATH は送信元と送信先の両方に同一 AS を指定します。
• NEXT_HOP:パスが到達する次のルータの IP アドレスを示します。AS 境界を越えて通知されるパスは、境界ルータの NEXT_HOP アドレスを継承します。BGP は、内部ルーティング プロトコルを使用して NEXT_HOP アドレスに到達します。
BGP を定義した RFC 1771 には、以下の状態機械に関する BGP の動作が記述されています。図の下の表に、さまざまな状態に関する追加情報を示します。
図 81:1 BGP の有限状態機械
|
BGP 通信には、以下の種類のメッセージが含まれます。
• Open – TCP セッション確立後、BGP ピア間の最初のメッセージ。ASN、保留時間、およびマルチプロダクト拡張やルートリフレッシュ機能など、ピアリング セッションの確立に必要な情報が含まれます。
• Update – このメッセージには、ルートの告知または取り消しなどのパス情報が含まれます。
• Keepalive – TCP 層を使用可能な状態に保ち続け、生存性を通知するための定期的メッセージ。
• Notification – BGP セッションを終了させるための要求。致命的ではない通知には、エラー コード "cease" が含まれます。サブコードで、さらに詳細な情報を提供します。
|
• ルートリフレッシュ – ピアに対するルート再送の要求。
BGP の UPDATE メッセージには、以下の属性を含めることができます。
|
BGP 属性の詳細については、次のリンクを参照してください:
http://www.iana.org/assignments/bgp-parameters/bgp-parameters.xml
• スケール - 現在、SonicOS では 512 ~ 2,048 のポリシーベース ルート (PBR) をサポートしています。これは、ルーティング テーブル全体に対して、あるいはルーティング テーブルの一部に対しても、十分ではありません。RIB に存在するルートの数は、(FIB である) PBR にインストールされている数より多い場合があります。複数の競合するルートをルーティング プロトコルから受信している場合は、このような状況が発生します。特定のネットワーク宛先への競合するルートが RIB に含まれているケースごとに、それらのルートから 1 つだけ選択して、FIB にインストールしてください。
現在、Dell SonicWALL の実装は、シングルプロバイダ/シングルホームの顧客に最も適しています。シングルプロバイダ/マルチホーム インストールは、既定のルートを ISP から受信している場合や、極めて少数の ISP 固有のルートを顧客が受信する場合にも適しています。後者の場合には、内部ルータが、ISP のネットワーク ドメイン内ではあるが AS の外部にある宛先への最適パスを選択できます (これは部分ルートと呼ばれます)。
• 負荷分散 - 現在、SonicOS または Zebos でマルチパス (「最大パス」機能) はサポートされていません。したがって、ネットワークを分割しなければ負荷分散を行えません。
• ループバック - 現在、ループバック インターフェースはサポートされていません。
• NAT - BGP はルーティング用です。NAT とはうまく共存できません。
• VPN 更新 - VPN 経由での BGP 更新は、現在機能していません。
• 非対称パス - 現在、ステートフル ファイアウォールは非対称パスを処理しません (特に複数のファイアウォールを越える場合)。
以下のセクションでは、BGP の高度なルーティングを SonicOS 用に設定する方法について説明します。
• Multiple Exit Discriminator (MED)
• 同期と自動要約
BGP は、パケットを平文で送信します。したがって、Dell SonicWALL では、セキュリティを強化するために、BGP セッションに使用する IPSec トンネルを設定することを推奨しています。IPSec トンネルと BGP の設定は、互いに独立しています。IPSec トンネルは、SonicOS GUI の VPN 設定セクションで完全に設定できます。一方、BGP は、「ネットワーク > ルーティング」ページで有効にしてから、SonicOS のコマンドライン インターフェースで設定します。IPSec 経由での BGP を設定する場合は、まず IPSec トンネルを設定し、BGP を設定する前に、トンネル経由での接続を確認します。
以下の手順は、SonicWALL とリモート BGP ピア間の IPSec 設定の例です。SonicWALL は X0 ネットワークの 192.168.168.75/24 に設定され、リモート ピアは X0 ネットワークの 192.168.168.35/24 に設定されています。
1. 「VPN > 設定」ページに移動して、「VPN ポリシー」セクションの下で「追加」ボタンを選択します。「VPN ポリシー」ウィンドウが表示されます。
2. 「ポリシー種別」プルダウン メニューで、「サイト間」が選択されていることを確認します。
補足 IPSec 経由の BGP には、サイト間 VPN トンネルを使用する必要があります。トンネル インターフェースは BGP に対して機能しません。
3. 使用する「認証方式」を選択します。この例では、「IKE (事前共有鍵を使用)」を使用します。
4. VPN ポリシーの「名前」を入力します。
5. 「プライマリ IPSec ゲートウェイ名またはアドレス」フィールドで、リモート ピアの IP アドレスを入力します (この例では 192.168.168.35)。
6. 「セカンダリ IPSec ゲートウェイ名またはアドレス」フィールドで、0.0.0.0 と入力します。
7. 「共有鍵」を入力し、確認します。
8. 「ローカル IKE ID」フィールドで、SonicWALL の IP アドレス (この例では 192.168.168.75) を入力します。
9. 「ピア IKE ID」フィールドで、リモート ピアの IP アドレス (192.168.168.35) を入力します。
10. 「ネットワーク」タブを選択します。
ローカル ネットワークに対して、「ローカル ネットワークをリストより選択」プルダウン メニューから「X0 IP」を選択します。
12. リモート ネットワークに対して、「対象先ネットワークをリストより選択」プルダウン メニューからリモート ピアの IP アドレス (この例では 192.168.168.35) を選択します。リモート IP アドレスがリストにない場合は、「アドレス オブジェクトの作成」を選択して、その IP アドレスのアドレス オブジェクトを作成します。
13. 「プロポーザル」タブを選択します。既定の IPSec プロポーザルを使用することも、それをカスタマイズすることもできます。
14. 「詳細」タブを選択します。
15. 「キープ アライブを有効にする」チェックボックスをオンにします。
16. 「OK」を選択します。
これで、ファイアウォールに対して VPN ポリシーが設定されました。今度は、リモート ピアに対して対応する IPSec 設定を行います。IPSec 設定が完了したら、「VPN > 設定」ページに戻り、VPN ポリシーの「有効」チェックボックスをオンにして、IPSec トンネルを開始します。
SonicWALL の ping 診断を使用して BGP ピアの IP アドレスに ping を行い、Wireshark を使用して要求と応答が ESP パケットにカプセル化されていることを確認します。
補足 この例の設定では、ルーティングされたトラフィックは BGP 用の IPSec トンネルを通りません。ルーティングされたトラフィックは、平文で送受信されます。ルーティングされたすべてのネットワーク トラフィックではなく BGP を保護することが目的なので、ほとんどの場合、これが望ましい動作です。
IPSec の設定の詳細については、『SonicOS 管理者ガイド』の VPN に関する章を参照してください。
SonicWALL セキュリティ装置上で BGP を設定するには、以下の手順に従います。
1. SonicOS GUI で、「ネットワーク > ルーティング」ページに移動します。
2. 「ルーティング モード」プルダウン メニューで、「高度なルーティング」を選択します。
3. 「BGP」プルダウン メニューで、「有効 (CLI での設定)」を選択します。
GUI から BGP が有効になった後、SonicOS のコマンドライン インターフェース (CLI) を使用して、BGP 設定の仕様が実行されます。SonicOS CLI への接続方法の詳細については、次のリンクの『SonicOS コマンドライン インターフェース ガイド』を参照してください:
http://www.sonicwall.com/us/support/230_3623.html
4. コンソール インターフェースから SonicOS CLI にログインします。
5. configure コマンドを入力して、設定モードに入ります。
6. route ars-bgp コマンドを入力して、BGP CLI に入ります。次のプロンプトが表示されます。
ZebOS version 7.7.0 IPIRouter 7/2009
ARS BGP>
7. これで、BGP の非設定モードに入りました。非設定コマンドの一覧が表示されます。
8. show running-config と入力して、現在の BGP 動作設定を確認します。
9. BGP 設定モードに入るには、configure terminal コマンドを入力します。設定コマンドの一覧が表示されます。
10. 設定が完了したら、write file コマンドを入力します。装置が高可用性ペアまたはクラスタの一部である場合は、設定の変更が他の装置に自動的に伝達されます。
以下の属性を使用して、BGP パス選択プロセスを設定できます。
|
weight コマンドは、アドレスファミリごとに 1 つの重み値を、近隣から取得したすべてのルートに割り当てます。複数のピアから同じプレフィックスが取得された場合は、最も高い重みを持つルートが優先されます。重みはローカル ルータにのみ関係します。
set weight コマンドで割り当てられる重みは、このコマンドで割り当てられる重みより優先されます。
ピアグループに対して重みを設定すると、そのピアグループのすべてのメンバーが同じ重みを持ちます。weight コマンドを使用して、特定のピアグループ メンバーに異なる重みを割り当てることもできます。
以下に重み設定の例を示します。
router bgp 12345
neighbor 12.34.5.237 remote-as 12345
neighbor 12.34.5.237 weight 60
router bgp 12345
neighbor group1 peer-group
neighbor 12.34.5.237 peer-group group1
neighbor 67.78.9.237 peer-group group1
neighbor group1 weight 60
ローカル プリファレンス属性は、装置のルーティング テーブルにある各外部ルートの優先度を示すのに使用されます。ローカル プリファレンス属性は、同一 AS 内の機器に送信されるすべての UPDATE メッセージに含まれます。ローカル プリファレンスは、外部 AS には伝達されません。次の図は、ローカル プリファレンスが近隣 AS 間のルートにどのように影響を与えるかを説明するトポロジの例を示しています。
SNWL1 および SNWL2 に以下の BGP 設定が入力されています。SNWL2 のローカル プリファレンスの方が高いので、SNWL2 が AS 12345 (SonicWALL AS) によって外部 AS に通知される優先ルートになります。
|
ルート マップはアクセス制御リストに似ています。ルート マップは、装置によるルートの処理方法を決定する一連の許可文や拒否文で構成されます。ルート マップは、送信トラフィックではなく受信トラフィックに適用されます。次の図は、ローカル プリファレンスの設定にルート マップを使用するトポロジの例を示しています。
図 81:3 ルート マップを使用した BGP ローカル プリファレンス トポロジ
SNWL1 および SNWL2 に以下の BGP 設定が入力されています。
|
SNWL2 (rmap1) に設定されているルート マップは、近隣 10.1.1.1 からの受信ルートに適用するように設定されています。次の 2 つの許可条件があります。
• route-map rmap1 permit 10:この許可条件は、AS 8888 からのトラフィックを許可し、AS 8888 からのルートをローカル プリファレンス 200 に設定するように構成されているアクセス リスト 100 に一致します。
• route-map rmap1 permit 10:この許可条件は、アクセス リスト 100 に一致しないその他すべてのトラフィック (すなわち 8888 以外の AS から受信するトラフィック) をローカル プリファレンス 150 に設定します。
AS_PATH プリペンドは、パス更新の先頭に AS 番号を追加する方法です。これによって、このルートのパスが長くなるため、優先度が低くなります。
AS_PATH プリペンドは、送信パスにも受信パスにも適用できます。近隣によって無効にされる場合、AS_PATH プリペンドが適用されないことがあります。
|
この設定によって、近隣 10.50.165.233 に AS_PATH プリペンド 12345 12345 でルートがインストールされます。これは、show ip bgp コマンドを入力すると表示されます。
ARS BGP>show ip bgp
BGP table version is 98, local router ID is 10.50.165.228
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ?- incomplete
Network Next Hop Metric LocPrf Weight Path
*> 12.34.5.0/24 10.50.165.233 0 0 12345 12345 12345 i
*> 7.6.7.0/24 0.0.0.0 100 32768 i
Total number of prefixes 2
Multiple Exit Discriminator (MED)
set metric コマンドをルート マップで使用して、パスの優先度を高くしたり、低くしたりできます。
router bgp 7675
network 7.6.7.0/24
neighbor 10.50.165.233 remote-as 12345
neighbor 10.50.165.233 route-map highmetric out
!
route-map highmetric permit 10
set metric 300
Multi Exit Discriminator (MED) は、パスの優先度に影響を与えることができるオプションの属性です。この属性は非通過です。つまり、単一の装置に設定されるもので、UPDATE メッセージで近隣に通知されません。このセクションでは、bgp always-compare-med コマンドと bgp deterministic-med コマンドの使用について検討します。
bgp always-compare-med コマンド
bgp always-compare-med コマンドを使用すると、パス選択のために、異なる AS からのパスの MED 値を比較することができます。より低い MED を持つパスが優先されます。
例として、BGP テーブルに以下のルートがあり、always-compare-med コマンドが有効であると考えてみましょう。
Route1: as-path 7675, med 300
Route2: as-path 200, med 200
Route3: as-path 7675, med 250
Route2 の MED が最も低いので、選択されるパスになります。
always-compare-med コマンドが無効の場合、Route1 と Route2 の AS パスは異なるので、比較の際に MED は考慮されません。Route1 と Route3 についてのみ MED が比較されます。
bgp deterministic-med コマンド
選択されるルートは、bgp deterministic-med コマンドにも影響を受けます。このコマンドは、同一自律システム内の異なるピアによって通知されるルートから選択する際に、MED を比較します。
bgp deterministic-med コマンドが有効の場合、同一 AS からのルートはまとめてグループ化され、各グループの最適ルートが比較されます。BGP テーブルが以下の場合、
Route1: as-path 200, med 300, internal
Route2: as-path 400, med 200, internal
Route3: as-path 400, med 250, external
BGP には Route1 のグループと、Route2 と Route3 からなる第 2 のグループ (同一 AS) があります。
各部グループの最適ルートが比較されます。Route1 は AS 200 からの唯一のルートなので、そのグループの最適ルートになります。
Route1 は、グループ AS 400 の最適ルート (MED が最も低い) である Route2 と比較されます。
2 つのルートは同一 AS からのものではないので、比較において MED は考慮されません。外部 BGP ルートは内部 BGP ルートより優先されるため、Route3 が最適ルートになります。
コミュニティは、いくつかの共通プロパティを共有し、通過 BGP コミュニティ属性を使用して設定できる、プレフィックスのグループです。1 つのプレフィックスは、複数のコミュニティ属性を持つことができます。ルータは、1 つ、一部、またはすべての属性に従って動作することができます。BGP コミュニティは、一種のタグ付けと考えることができます。以下に BGP コミュニティの設定例を示します。
router bgp 12345
bgp router-id 10.50.165.233
network 12.34.5.0/24
network 23.45.6.0/24
neighbor 10.50.165.228 remote-as 7675
neighbor 10.50.165.228 send-community
neighbor 10.50.165.228 route-map comm out
!
access-list 105 permit 12.34.5.0/24
access-list 110 permit 23.45.6.0/24
!
route-map comm permit 10
match ip address 105
set community 7675:300
!
route-map comm permit 20
match ip address 110
set community 7675:500
!
router bgp 7675
bgp router-id 10.50.165.228
network 7.6.7.0/24
neighbor 10.50.165.233 remote-as 12345
neighbor 10.50.165.233 route-map shape in
!
ip community-list 1 permit 7675:300
ip community-list 2 permit 7675:500
!
route-map shape permit 10
match community 1
set local preference 120
route-map shape permit 20
match community 2
set local preference 130
同期設定により、iBGP 近接から取得したルートをルータが通知するかどうかを、IGP 内にこれらのルートが存在するかどうかに基づいて制御します。同期を有効にすると、BGP は OSPF または RIP (外部ゲートウェイ プロトコルである BGP とは逆に内部ゲートウェイ プロトコル) を通じて到達可能なルートのみを通知します。同期は、BGP ルート通知に関する問題の原因として一般的です。
自動要約設定により、ルートをクラスフルに通知するかどうかを制御します。自動要約も、BGP 設定に関する問題の原因として一般的です。
既定では、自動要約と同期は Zebos で無効になっています。
既に説明したとおり、AS ピアは、トランジット ピア (外部 AS から別の外部 AS へのトラフィックを許可する) にすることも、非トランジット ピア (すべてのトラフィックをその AS 上で開始または終了する必要がある) にすることもできます。トランジット ピアのルーティング テーブルは、大幅に大きくなります。一般的には、SonicWALL セキュリティ装置をトランジット ピアとして設定する必要はありません。
図 81:4 トランジット ピアと非トランジット ピア
間違って Dell SonicWALL をトランジット ピアにすることのないよう、以下のように受信フィルタと送信フィルタを設定する必要があります。
送信フィルタ
ローカル AS から開始されるルートのみ送信を許可する:
ip as-path access-list 1 permit ^$
router bgp 12345
bgp router-id 10.50.165.233
network 12.34.5.0/24
neighbor 10.50.165.228 remote-as 7675
neighbor 10.50.165.228 filter-list 1 out
neighbor 172.1.1.2 remote-as 9999
neighbor 10.50.165.228 filter list 1 out
所有するプレフィックスのみ送信を許可する:
ip prefix-list myPrefixes seq 5 permit 12.34.5.0/24
ip prefix-list myPrefixes seq 10 permit 23.45.6.0/24
router bgp 12345
bgp router-id 10.50.165.233
network 12.34.5.0/24
network 23.45.6.0/24
neighbor 10.50.165.228 remote-as 7675
neighbor 172.1.1.2 remote-as 9999
neighbor 10.50.165.228 prefix-list myPrefixes out
neighbor 172.1.1.2 prefix-list myPrefixes out
受信フィルタ
所有している、およびプライベート受信プレフィックスをすべて破棄する:
ip prefix-list unwantedPrefixes seq 5 deny 12.34.5.0/24 le 32
ip prefix-list unwantedPrefixes seq 10 deny 23.45.6.0/24 le 32
ip prefix-list unwantedPrefixes seq 20 deny 10.0.0.0/8 le 32
ip prefix-list unwantedPrefixes seq 21 deny 172.16.0.0/12 le 32
ip prefix-list unwantedPrefixes seq 22 deny 192.168.0.0/16 le 32
ip prefix-list unwantedPrefixes seq 30 permit 0.0.0.0/0 le 32
router bgp 12345
bgp router-id 10.50.165.233
network 12.34.5.0/24
network 23.45.6.0/24
neighbor 10.50.165.228 remote-as 7675
neighbor 172.1.1.2 remote-as 9999
neighbor 10.50.165.228 prefix-list unwantedPrefixes in
neighbor 172.1.1.2 prefix-list unwantedPrefixes in
次のトポロジは、SonicWALL セキュリティ装置がマルチホーム BGP ネットワークを使用して 2 つの ISP 間で負荷を共有する例を示しています。
図 81:5
負荷共有トポロジ用のマルチホーム BGP
SonicWALL セキュリティ装置は次のように設定されています。
router bgp 12345
bgp router-id 10.50.165.233
network 12.34.5.0/24
neighbor 10.50.165.228 remote-as 7675
neighbor 10.50.165.228 route-map ISP1 out
neighbor 172.1.1.2 remote-as 9999
neighbor 10.50.165.228 route-map ISP2 out
!
route-map ISP1 permit 10
match ip address 1
set weight 100
route-map ISP1 permit 20
match ip address 2
route-map ISP2 permit 10
match ip address 1
route-map ISP2 permit 20
match ip address 2
set weight 100
access-list 1 permit 12.34.5.0/25
access-list 2 deny 12.34.5.0/25
access-list 2 permit any
以下のセクションでは、BGP 設定の確認方法について説明します。
次の図は、SonicWALL セキュリティ装置で BGP が 2 つの異なる AS 上の 2 つのルータに接続するように設定されている、基本的な BGP トポロジを示したものです。
このネットワークの FIB 内のルートは、SonicOS GUI でも、CLI を使用することによっても表示できます。
BGP 設定の要約は、「ネットワーク > ルーティング」ページの上部にある「ルーティング モード」プルダウン メニューの横の「BGP 状況」ボタンを選択することによって、SonicOS GUI で表示できます。「BGP 状況」ウィンドウには、show ip bgp summary コマンドと show ip bgp neighbor コマンドの出力が表示されます。
FIB 内の BGP ルートも、SonicOS GUI で「ネットワーク > ルーティング」ページの「ルーティング ポリシー」テーブルに表示されます。
FIB ルートを CLI で表示するには、以下のコマンドを実行します。
SonicWALL> configure
(config[SonicWALL])> route ars-nsm
ZebOS version 7.7.0 IPIRouter 7/2009
ARS NSM>show ip route
Codes:K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default
B 7.6.7.0/24 [20/0] via 10.50.165.228, X1, 05:08:31
B 199.199.0/16 [20/0] via 10.50.165.237, X1, 05:08:31
C 10.50.165.192/26 is directly connected, X1
C 127.0.0.0/8 is directly connected, lo0
C 12.34.5.0/24 is directly connected, X0
RIB ルートを CLI で表示するには、show ip bgp コマンドを入力します。
ARS BGP>show ip bgp
BGP table version is 98, local router ID is 10.50.165.233
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ?- incomplete
Network Next Hop Metric LocPrf Weight Path
*> 7.6.7.0/24 10.50.165.228 0 0 7675 i
*> 12.34.5.0/24 0.0.0.0 100 32768 i
*> 199.199.0.0/16 10.50.165.228 0 0 7675 9999 i
Total number of prefixes 3
補足 最後のルートは AS7675 から取得された AS9999 へのパスです。
SonicWALL BGP は、BGP トラフィックに関連するログ イベントを表示するための包括的なデバッグ コマンドを提供しています。BGP ログ採取は、CLI で以下のキーワードを付けて debug bgp コマンドを使用することで設定できます。
|
BGP デバッグを無効にするには、コマンドの前に "no" と入力します。例えば、イベントのデバッグを無効にするには、no debug events コマンドを入力します。
SonicOS GUI の「ログ > 表示」ページには、BGP ログ メッセージも表示できます。BGP メッセージは、ログ メッセージの「高度なルーティング」種別の一部として表示されます。
上のメッセージは、更新の受信元であるルータが装置に直接接続されていなかったため、送信 RIB に対する更新が拒否されたことを示しています。
直接接続されていない BGP ピアを許可するには、neighbor コマンドで ebgp-multihop キーワードを使用します。以下に例を示します。
neighbor 10.50.165.228 ebgp-multihop
IPv6 Border Gateway protocol (BGP) は、自律システム (AS) 間で IPv6 のルーティング情報をやり取りするプロトコルです。IPv6 BGP をサポートする Dell SonicWALL セキュリティ装置は、ネットワークの AS のエッジにある従来の BGP ルータの代わりに配置できます。
BGP は、SonicOS GUI の「ネットワーク > ルーティング」ページで有効にします。その後、SonicOS のコマンド ライン インターフェース (CLI) で設定する必要があります。
SonicOS 6.2 には以下の制限が適用されます。
• IPv6 BGP は、NSA プラットフォームのみでサポートされます。
• IPv6 BGP は、IPv6 の機能と ZebOS (Zebra OS) に依存します。
• MPLS/VPN は IPv6 BGP ではサポートされません。
複数の自律システムの設定
1 つの自律システム (AS) に複数の BGP ルータがある場合、その AS は他の AS にトランジット サービスを提供できます。異なる AS に属するルータ間で BGP が動作する場合、BGP は外部 BGP (eBGP) を使用します。同じ AS に属するルータ間で BGP が動作する場合、BGP は内部 BGP (iBGP) を使用します。
以下の図では、AS 200 は AS 100 と AS 300 のトランジット AS です。
上の図のように複数の AS を設定するには、ルータ RTA、RTB、RTC を次のように設定します。
RTA 上で以下を実行
router bgp 100
neighbor 129.213.1.1 remote−as 200
address-family ipv6
redistribute connected
neighbor 129.213.1.1 activate
RTB 上で以下を実行
router bgp 200
neighbor 129.213.1.2 remote−as 100
neighbor 175.220.1.2 remote−as 200
address-family ipv6
redistribute connected
neighbor 129.213.1.2 activate
neighbor 175.220.1.2 activate
RTC 上で以下を実行
router bgp 200
neighbor 175.220.212.1 remote−as 200
address-family ipv6
neighbor 175.220.212.1 activate
neighbor 175.220.212.1 activate
IPv6 での BGP の基本設定
IPv6 の BGP ピアルータは、IPv4 と IPv6 のルート情報のいずれかを IPv6 アドレス ファミリーと IPv4 アドレス ファミリーのいずれかで送信するように設定できます。
IPv6 での BGP の基本設定を行うには、ルータ R1 と R2 を次のように設定します。
R1 上で以下を実行
router bgp 6501
bgp router−id 1.1.1.1
neighbor 2011:11:11:11::2 remote−as 6502
address−family ipv6
neighbor 2011:11:11:11::2 activate
exit−address−family
R2 上で以下を実行
router bgp 6502
bgp router−id 2.2.2.2
neighbor 2011:11:11:11::1 remote−as 6501
address−family ipv6
network 1010::1/128
network 2020::1/128
neighbor 2011:11:11:11::1 activate
EBGP マルチホップの設定
EBGP マルチホップを使用すると、直接接続されていない 2 つの外部ピア間の近隣接続を確立できます。マルチホップが利用できるのは eBGP のみで、iBGP では利用できません。ファイアウォールが直接接続されていない外部ピアを持つ場合、ebgp−multihop コマンドを使用して近隣接続を確立できます。
EBGP マルチホップを設定するには、ルータ R1 と R2 を次のように設定します。
R1 上で以下を実行
router bgp 6501
bgp router−id 1.1.1.1
neighbor 2011:11:11:11::2 remote−as 6502
neighbor 2011:11:11:11::2 ebgp−multihop
address−family ipv6
neighbor 2011:11:11:11::2 activate
exit−address−family
R2 上で以下を実行
router bgp 6502
bgp router−id 2.2.2.2
neighbor 2011:11:11:11::1 remote−as 6501
neighbor 2011:11:11:11::1 ebgp−multihop
address−family ipv6
network 1010::1/128
network 2020::1/128
neighbor 2011:11:11:11::1 activate
IPv6 BGP 送信ルート フィルタリングの設定
IPv6 BGP 送信ルート フィルタリング (ORF) を使用すると、不要なルーティング更新情報を送信元でフィルタ オフすることにより、ピア·ルータ間で送信される BGP 更新の数を最小限にできます。
IPv6 BGP 送信ルート フィルタリングを設定するには、ルータ R1 と R2 を次のように設定します。
R1 上で以下を実行
router bgp 6501
bgp router−id 1.1.1.1
neighbor 2011:11:11:11::2 remote−as 6502
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::2 activate
neighbor 2011:11:11:11::2 prefix-list pref1 in
neighbor 2011:11:11:11::2 prefix-list pref2 out
exit−address−family
ipv6 prefix-list pref1 seq 10 deny 1010::1/128
ipv6 prefix-list pref1 seq 20 permit any
ipv6 prefix-list pref2 seq 10 deny 1111::1/128
ipv6 prefix-list pref2 seq 20 permit any
R2 上で以下を実行
router bgp 6502
bgp router−id 2.2.2.2
neighbor 2011:11:11:11::1 remote−as 6501
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::1 activate
R1 と R2 のルートを確認するには、show bgp ipv6 unicast コマンドを使用します。
R1 のルートには、IPv6 アドレス 1010::1/128 が表示されるはずです。
R2 のルートには、IPv6 アドレス 1111::1/128 が表示されるはずです。
R1 上で以下を実行
R1> show bgp ipv6 unicast
R2 上で以下を実行
R2> show bgp ipv6 unicast
IPv6 BGP 配布リストの設定
IPv6 BGP 配布リストを使用すると、不要なルーティング更新情報を送信元でフィルタ オフすることにより、ピア·ルータ間で送信される BGP 更新の数を最小限にできます。
IPv6 BGP 配布リストを設定するには、ルータ R1 と R2 を次のように設定します。
R1 上で以下を実行
router bgp 6501
bgp router−id 1.1.1.1
neighbor 2011:11:11:11::2 remote−as 6502
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::2 activate
neighbor 2011:11:11:11::2 distribute-list acl1 in
neighbor 2011:11:11:11::2 distribute-list acl2 out
exit−address−family
ipv6 access-list acl1 deny 1010::1/128
ipv6 access-list acl1 permit any
ipv6 access-list acl2 deny 1111::1/128
ipv6 access-list acl2 permit any
R2 上で以下を実行
router bgp 6502
bgp router−id 2.2.2.2
neighbor 2011:11:11:11::1 remote−as 6501
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::1 activate
R1 と R2 のルートを確認するには、show bgp ipv6 unicast コマンドを使用します。
R1 のルートには、IPv6 アドレス 1010::1/128 が表示されるはずです。
R2 のルートには、IPv6 アドレス 1111::1/128 が表示されるはずです。
R1 上で以下を実行
R1> show bgp ipv6 unicast
R2 上で以下を実行
R2> show bgp ipv6 unicast
IPv6 BGP ルートマップ
IPv6 BGP ルートマップを使用すると、不要なルーティング更新情報を送信元でフィルタ オフすることにより、ピア·ルータ間で送信される BGP 更新の数を最小限にできます。
IPv6 BGP ルートマップを設定するには、ルータ R1 と R2 を次のように設定します。
R1 上で以下を実行
router bgp 6501
bgp router−id 1.1.1.1
neighbor 2011:11:11:11::2 remote−as 6502
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::2 activate
neighbor 2011:11:11:11::2 route-map map1 in
neighbor 2011:11:11:11::2 route-map map2 out
exit−address−family
ipv6 access-list acl1 deny 1010::1/128
ipv6 access-list acl1 permit any
ipv6 access-list acl2 deny 1111::1/128
ipv6 access-list acl2 permit any
!
route-map map1 permit 1 match ipv6 address acl1
!
route-map map2 permit 1 match ipv6 address acl2
!
R2 上で以下を実行
router bgp 6502
bgp router−id 2.2.2.2
neighbor 2011:11:11:11::1 remote−as 6501
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::1 activate
R1 と R2 のルートを確認するには、show bgp ipv6 unicast コマンドを使用します。
R1 上で以下を実行
R1> show bgp ipv6 unicast
R1 のルートには、IPv6 アドレス 1010::1/128 が表示されるはずです。
R2 上で以下を実行
R2> show bgp ipv6 unicast
R2 のルートには、IPv6 アドレス 1111::1/128 が表示されるはずです。
AS 正規表現の設定
正規表現を設定すると、AS からのアドレスを照合することができ、アドレスの禁止または許可に使用できます。
RTB は以下のルートを通知します。
• 2004::/64
• 2003::/64
• 2002::/64
RTC は以下のルートを通知します。
• 5000::/64
• 6666::6/128
• 7777::7/128
ルータ RTA のルートを確認するには、show bgp ipv6 unicast コマンドを使用します。
RTA 上で以下を実行
RTA> show bgp ipv6 unicast
BGP table version is 4, local router ID is 10.0.1.2
Status codes: s suppressed, d damped, h history, * valid, > best,
i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ?- incomplete
|
RTA で AS 正規表現を設定し、AS100 が発信元のルートをすべて禁止するには、以下の手順を実行します。
router bgp 200
neighbor 10.0.1.1 remote-as 100
neighbor 10.0.1.1 update-source X2
neighbor 2004::1 remote-as 100
neighbor 2004::1 update-source X2
!
address-family ipv6
neighbor 10.0.1.1 activate
neighbor 10.0.1.1 filter-list 1 in
neighbor 2004::1 activate
exit-address-family
ip as-path access-list 1 deny ^100$
ip as-path access-list 1 permit .*
ルータ RTA のルートを確認するには、show bgp ipv6 unicast コマンドを使用します。
RTA 上で以下を実行
RTA> show bgp ipv6 unicast
BGP table version is 4, local router ID is 10.0.1.2
Status codes: s suppressed, d damped, h history, * valid, > best,
i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ?- incomplete
|
Total number of prefixes 3
AS100 から学習したすべてのルートを禁止するように AS パスを変更するには、以下の手順を実行します。
RTA 上で以下を実行
router bgp 200
neighbor 10.0.1.1 remote-as 100
neighbor 10.0.1.1 update-source X2
neighbor 2004::1 remote-as 100
neighbor 2004::1 update-source X2
!
address-family ipv6
neighbor 10.0.1.1 activate
neighbor 10.0.1.1 filter-list 1 in
neighbor 2004::1 activate
exit-address-family
ip as-path access-list 1 deny _100_
ip as-path access-list 1 permit .*
ルータ RTA のルートを確認するには、show bgp ipv6 unicast コマンドを使用します。
RTA 上で以下を実行
RTA> show bgp ipv6 unicast
EBGP のルート選択
ルートは、そのルート上で動作するルーティング プロトコルの管理距離に基づいて選択されます。管理距離が小さいルーティング プロトコルは、管理距離が大きいルーティング プロトコルよりも優先されます。EBGP の管理距離は 20 です。OSPF の管理距離は 110 です。
次の図は、3 つの AS と、BGP ルータで使用中のルーティング プロトコルを示しています。
AS300 の RTC ルータは、AS100 と AS200 の両方にルート 1000::/64 を通知します。
RTC (AS300) から RTA (AS100) へのルートでは OSPF が実行されています。
RTC (AS300) から RTB (AS200) へのルートでは eBGP が実行されています。
RTA (AS100) から RTB (AS200) へのルートでは eBGP が実行されています。
RTA (AS100) は、ルート 1000::/64 に関する更新を OSPF と eBGP の両方から受信します。eBGP の管理距離は OSPF の管理距離よりも小さいため、eBGP から学習したルートが選択され、RTA のルーティング テーブルに追加されます。
RTA 上で以下を実行
router bgp 100
neighbor 3001::1 remote-as 200
!
address-family ipv6
distance bgp 150 150 150
neighbor 3001::1 activate
exit-address-family
RTB 上で以下を実行
router bgp 200
bgp log-neighbor-changes
neighbor 1001::1 remote-as 300
neighbor 2003::1 remote-as 100
address-family ipv6
network 6666::6/128
neighbor 1001::1 activate
neighbor 2003::1 activate
exit-address-family
RTC 上で以下を実行
router bgp 300
neighbor 3002::1 remote-as 200
!
address-family ipv6 network 1000::/64
neighbor 3002::1 activate
exit-address-family
ルータ RTA のルートを確認するには、show ipv6 route コマンドを使用します。
RTA> show ipv6 route
IPv6 Routing Table
Codes:K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP
Timers:Uptime
B 1000::/64 [20/0] via fe80::204:27ff:fe0c:b006, X1, 00:01:07
C 2003::/64 via ::, X1, 00:30:50
B 6666::6/128 [20/0] via fe80::204:27ff:fe0c:b006, X1, 00:01:07
C fe80::/64 via ::, X1, 00:30:53
RTC は RTA と直接接続しているため、実際には BGP から学習したルートよりも OSPF のルートのほうが好ましいルートです。RTA と RTC の間のルートが選択されてルーティング テーブルに追加されるようにするには、distance コマンドを使用して、BGP ルートの既定の管理距離が OSPF ルートよりも大きくなるようにします。以下に例を示します。
distance bgp 150 150 150
backdoor neighbor コマンドを使用して BGP ルートを優先ルートに設定することもできます。以下に例を示します。
RTA 上で以下を実行
router bgp 100
neighbor 3001::1 remote-as 200
!
address-family ipv6
network 1000::/64
backdoor neighbor 3001::1 activate
exit-address-family
ルータ RTA のルートを確認するには、show ipv6 route コマンドを使用します。
RTA> show ipv6 route
IPv6 Routing Table
Codes:K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP
Timers:Uptime
O 1000::/64 [110/2] via fe80::217:c5ff:feb4:57f2, X4, 00:30:53
C 2003::/64 via ::, X1, 0:31:18
B 6666::6/128 [20/0] via fe80::204:27ff:fe0c:b006, X1, 0:00:03
C fe80::/64 via ::, X1, 0:31:21
IPv6 BGP の同期
IPv6 BGP の同期は、すべての利用可能なルートおよびネットワークの IPv6 アドレスを使用してすべての BGP ルータを最新に保つ機能です。
BGP 同期では、ある AS (AS100) が別の AS (AS300) からのトラフィックを 3 番目の AS (AS400) に渡す場合、BGP は AS100 のすべてのルータが IGP からルートを学習するまでそのルートを通知しません。この例では、IGP は iBGP になります。iBGP が AS100 内のすべてのルータにそのルートを伝播するまで、AS100 は待つ必要があります。その後、eBGP は外部 AS にルートを通知します。
この例では、RTB が iBGP でアドレス 6666::6/128 を学習した後、RTB がそのアドレスを RTD に通知します。
補足 6666::6/128 への静的ルートを RTB に追加し、他のルータが 6666::6/128 に到達できることを確認することで、IGP が既にルート情報を伝播したと RTB に思い込ませることができます。
この例では、RTC (AS2) がアドレス 6666::6/128 を RTA (AS100) に通知します。AS100 内では RTA と RTB が iBGP を実行しているので、RTB はアドレス 6666::6/128 を学習し、ネクスト ホップ 5.5.5.5 (RTC) 経由でこのアドレスに到達できます。ネクスト ホップは iBGP で送信されます。ただし、ネクスト ホップ (RTC) に到達するには、RTB は RTE 経由でトラフィックを送信する必要がありますが、RTE は IP アドレス 6666::6/128 を知りません。
RTB が 6666::6/128 を RTD (AS400) に通知すると、RTD から 6666::6/128 に向かうトラフィックは AS100 の RTB と RTE を通過する必要があります。ところが、RTE はまだ 6666::6/128 を学習していないので、RTE ですべてのパケットが破棄されます。
AS100 の RTB で BGP の同期を設定するには、以下の手順を実行します。
RTB 上で以下を実行
router bgp 100
neighbor 10.103.10.129 remote-as 100
neighbor 3001::1 remote-as 100
neighbor 3001::1 update-source X4
neighbor 5000::1 remote-as 400
neighbor 5000::1 update-source X2
!
address-family ipv6
synchronization
neighbor 10.103.10.129 activate
neighbor 3001::1 activate
neighbor 5000::1 activate
exit-address-family
1 つの AS から中継する AS を通じて別の AS にトラフィックを送信することがない場合は、同期を無効にできます。中継 AS 内のすべてのルータが BGP を実行する場合は同期を無効にすることもできます。同期を無効にすると、IGP で送信するルートが減少し、BGP の収束が速くなります。
AS100 の RTB で BGP の同期を無効するには、以下の手順を実行します。
RTB 上で以下を実行
router bgp 100
neighbor 10.103.10.129 remote-as 100
neighbor 3001::1 remote-as 100
neighbor 3001::1 update-source X4
neighbor 5000::1 remote-as 400
neighbor 5000::1 update-source X2
!
address-family ipv6
neighbor 10.103.10.129 activate
neighbor 3001::1 activate
neighbor 5000::1 activate
exit-address-family
BGP ルート リフレクション
既定では、AS 内のすべての iBGP ルータはフルメッシュ 構成にする必要があります。つまり、各ルータを他のすべてのルータのピアに設定しなければなりません。
ルート リフレクションを使用すると、iBGP ルータをすべてフル メッシュにする必要はなくなります。ルート リフレクションによって、各 iBGP ルータが AS 内の他のすべてのルータとやり取りする必要性が解消します。1 台の iBGP ルータをルート リフレクタとして指定すると、そのルータは iBGP で学習したルートを複数の iBGP クライアントに送信できます。
ルータをルート リフレクタとして設定すると、そのルータは他の iBGP ルータが iBGP で得られたルートを取得できる単一のポイントとして機能します。ルート リフレクタは、AS 内の他のすべてのルータにとって、ピアではなくサーバとして機能します。他のすべての iBGP ルータは、ルート リフレクタ クライアントになります。ルータは、1 つ以上のルート リフレクタ クライアントが存在するかぎりルート リフレクタです。
AS 内でルート リフレクションを設定するには、以下の手順を実行します。
RouterA 上で以下を実行
interface Serial0/0
ipv6 address 2011:12:12:12::1/64
ipv6 address 10:12:12:12::1/0
interface Serial0/1
ipv6 address 2011:13:13:13::1/64
ipv6 address 10:12:12:12::1/0
router bgp 100
bgp router−id 1.1.1.1
no bgp default ipv4−unicast
bgp log−neighbor−changes
neighbor 2011:22:22:22::22 remote−as 100
neighbor 2011:22:22:22::22 update−source Loopback0
neighbor 2011:33:33:33::33 remote−as 100
neighbor 2011:33:33:33::33 update−source Loopback0
!
address−family ipv6
neighbor 2011:22:22:22::22 activate
neighbor 2011:22:22:22::22 route−reflector−client
neighbor 2011:33:33:33::33 activate
neighbor 2011:33:33:33::33 route−reflector−client
exit−address−family
!
ipv6 router ospf 10
router−id 1.1.1.1
RRClient1 (ルート リフレクタ クライアント 1) 上で以下を実行
interface Loopback0
ipv6 address 2011:22:22:22::22/128
ipv6 address 10:12:12:12::1/0
!
interface Loopback10
ipv6 address 1010:10:10:10::10/128
interface Serial0/0
ipv6 address 2011:12:12:12::2/64
ipv6 address 10:12:12:12::1/0
!
router bgp 100
bgp router−id 2.2.2.2
bgp log−neighbor−changes
neighbor 2011:11:11:11::11 remote−as 100
neighbor 2011:11:11:11::11 update−source Loopback0
!
address−family ipv6
neighbor 2011:11:11:11::11 activate
network 1010:10:10:10::10/128
exit−address−family
!
ipv6 router ospf 10
router−id 2.2.2.2
RRClient2 (ルート リフレクタ クライアント 2) 上で以下を実行
interface Loopback0
ipv6 address 2011:33:33:33::33/128
ipv6 address 10:12:12:12::1/0
!
interface Loopback20
ipv6 address 2020:20:20:20::20/128
!
interface Serial0/0
no ip address
ipv6 address 2011:13:13:13::2/64
ipv6 address 10:12:12:12::1/0
!
router bgp 100
bgp router−id 3.3.3.3
bgp log−neighbor−changes
neighbor 2011:11:11:11::11 remote−as 100
neighbor 2011:11:11:11::11 update−source Loopback0
!
address−family ipv6
neighbor 2011:11:11:11::11 activate
network 2020:20:20:20::20/128
exit−address−family
!
ipv6 router ospf 10
router−id 3.3.3.3
log−adjacency−changes
ルートを確認するには、show bgp ipv6 unicast コマンドを使用します。
RRClient1 上で以下を実行
RRClient1> show bgp ipv6 unicast
ルート 2020:20:20:20::20/128 が表示されます。
RRClient2 上で以下を実行
RRClient2> show bgp ipv6 unicast
ルート 1010:10:10:10::10/128 が表示されます。
IPv6 BGP ローカル プリファレンス
ローカル プリファレンスは、特定のネットワークへの任意のルートを AS からそのネットワークへの優先的な出口ルートとして指定する機能です。ローカル プリファレンスが最大のルートが優先ルートになります。ローカル プリファレンスの既定値は 100 ですが、この値は set local-preference コマンドで変更できます。
AS 内で優先ルートのローカル プリファレンスを設定するには、以下の手順を実行します。
R1 上で以下を実行
interface Loopback0
ipv6 address 1111:111:111:A::/64 eui−64
ipv6 address 10:12:12:12::1/0
interface FastEthernet0/0
ipv6 address AB01:CD1:123:A::/64 eui−64
ipv6 address 10:12:12:12::1/0
!
interface Serial0/0
ipv6 address AB01:CD1:123:C::/64 eui−64
!
interface FastEthernet0/1
ipv6 address AB01:CD1:123:B::/64 eui−64
ipv6 address 10:12:12:12::1/0
!
ipv6 router ospf 10 router−id 1.1.1.1 log−adjacency−changes
redistribute connected route−map CONNECTED
!
route−map CONNECTED permit 10
match interface Serial0/0
!
router bgp 123
bgp router−id 1.1.1.1
neighbor 2222:222:222:A:C602:3FF:FEF0:0 remote−as 123
neighbor 2222:222:222:A:C602:3FF:FEF0:0 update−source Loopback0
neighbor 3333:333:333:A:C603:3FF:FEF0:0 remote−as 123
neighbor 3333:333:333:A:C603:3FF:FEF0:0 update−source Loopback0
neighbor AB01:CD1:123:C:C604:16FF:FE98:0 remote−as 101
neighbor AB01:CD1:123:C:C604:16FF:FE98:0 ebgp−multihop 5
!
address−family ipv6
neighbor 2222:222:222:A:C602:3FF:FEF0:0 activate
neighbor 2222:222:222:A:C602:3FF:FEF0:0 next−hop−self
neighbor 3333:333:333:A:C603:3FF:FEF0:0 activate
neighbor 3333:333:333:A:C603:3FF:FEF0:0 next−hop−self
neighbor AB01:CD1:123:C:C604:16FF:FE98:0 activate exit−address−family
R2 上で以下を実行
interface Loopback0
ipv6 address 2222:222:222:A::/64 eui−64
ipv6 address 10:12:12:12::1/0
!
interface FastEthernet0/0
ipv6 address AB01:CD1:123:A::/64 eui−64
ipv6 address 10:12:12:12::1/0
!
interface FastEthernet0/1
ipv6 address AB01:CD1:123:D::/64 eui−64
ipv6 address 10:12:12:12::1/0
!
ipv6 router ospf 10 router−id 2.2.2.2 log−adjacency−changes
!
router bgp 123
bgp router−id 2.2.2.2
neighbor 1111:111:111:A:C601:3FF:FEF0:0 remote−as 123
neighbor 1111:111:111:A:C601:3FF:FEF0:0 update−source Loopback0
neighbor 3333:333:333:A:C603:3FF:FEF0:0 remote−as 123
neighbor 3333:333:333:A:C603:3FF:FEF0:0 update−source Loopback0
address−family ipv6
neighbor 1111:111:111:A:C601:3FF:FEF0:0 activate
neighbor 3333:333:333:A:C603:3FF:FEF0:0 activate
exit−address−family
R3 上で以下を実行
interface Loopback0
ipv6 address 3333:333:333:A::/64 eui−64
ipv6 address 10:12:12:12::1/0
!
interface FastEthernet0/0
ipv6 address AB01:CD1:123:B::/64 eui−64
ipv6 address 10:12:12:12::1/0
!
interface Serial0/0
ipv6 address AB01:CD1:123:E::/64 eui−64
!
interface FastEthernet0/1
ipv6 address AB01:CD1:123:D::/64 eui−64
ipv6 address 10:12:12:12::1/0
!
ipv6 router ospf 10
router−id 3.3.3.3
redistribute connected route−map CONNECTED
!
router bgp 123
no synchronization
bgp router−id 3.3.3.3
neighbor 1111:111:111:A:C601:3FF:FEF0:0 remote−as 123
neighbor 1111:111:111:A:C601:3FF:FEF0:0 update−source Loopback0
neighbor 2222:222:222:A:C602:3FF:FEF0:0 remote−as 123
neighbor 2222:222:222:A:C602:3FF:FEF0:0 update−source Loopback0
neighbor AB01:CD1:123:E:C605:16FF:FE98:0 remote−as 202
neighbor AB01:CD1:123:E:C605:16FF:FE98:0 ebgp−multihop 5
!
address−family ipv6
neighbor 1111:111:111:A:C601:3FF:FEF0:0 activate
neighbor 1111:111:111:A:C601:3FF:FEF0:0 next−hop−self
neighbor 1111:111:111:A:C601:3FF:FEF0:0 route−map LOCAL_PREF out
neighbor 2222:222:222:A:C602:3FF:FEF0:0 activate
neighbor 2222:222:222:A:C602:3FF:FEF0:0 next−hop−self
neighbor 2222:222:222:A:C602:3FF:FEF0:0 route−map LOCAL_PREF out
neighbor AB01:CD1:123:E:C605:16FF:FE98:0 activate
exit−address−family
!
ipv6 prefix−list 10 seq 5 permit BC01:BC1:10:A::/64
!
route−map LOCAL_PREF permit 10
match ipv6 address prefix−list 10
set local−preference 500
!
route−map LOCAL_PREF permit 20
!
route−map CONNECTED permit 10
match interface Serial0/0
R4 上で以下を実行
interface Serial0/0
ipv6 address AB01:CD1:123:C::/64 eui−64
!
interface Loopback10
ipv6 address BC01:BC1:10:A::/64 eui−64
!
interface Loopback11
ipv6 address BC02:BC1:11:A::/64 eui−64
!
interface Loopback12
ipv6 address BC03:BC1:12:A::/64 eui−64
router bgp 101
bgp router−id 4.4.4.4
neighbor AB01:CD1:123:C:C601:3FF:FEF0:0 remote−as 123
!
address−family ipv6
neighbor AB01:CD1:123:C:C601:3FF:FEF0:0 activate
network BC01:BC1:10:A::/64 network BC02:BC1:11:A::/64
network BC03:BC1:12:A::/64 exit−address−family
R5 上で以下を実行
interface Serial0/0
ipv6 address AB01:CD1:123:E::/64 eui−64
clock rate 2000000
!
interface Loopback10
ipv6 address BC01:BC1:10:A::/64 eui−64
!
interface Loopback11
ipv6 address BC02:BC1:11:A::/64 eui−64
!
interface Loopback12
ipv6 address BC03:BC1:12:A::/64 eui−64
!
router bgp 202
bgp router−id 5.5.5.5
neighbor AB01:CD1:123:E:C603:3FF:FEF0:0 remote−as 123
neighbor AB01:CD1:123:E:C603:3FF:FEF0:0 ebgp−multihop 5
!
address−family ipv6
neighbor AB01:CD1:123:E:C603:3FF:FEF0:0 activate
network BC01:BC1:10:A::/64
network BC02:BC1:11:A::/64
network BC03:BC1:12:A::/64
exit−address−family
ルートを確認するには、show bgp ipv6 unicast コマンドを使用します。
R2 上で以下を実行
R2> show bgp ipv6 unicast
ローカル プリファレンスを設定する前は、R2 は学習したすべての IPv6 アドレスのネクスト ホップとして R1 を持っていました。R3 でローカル プリファレンスを 500 に設定した後は、R2 はプリフィックス BC01:BC1:10:A::/64 に対して異なる優先出口ルートを持つようになります。R2 は、これでローカル プリファレンスとして指定された R3 の出口パスを通ってプリフィックス BC01:BC1:10:A::/64 に到達できるようになりました。
BGP ピア グループの更新ポリシー
BGP ピア グループとは、同じ更新ポリシーを共有する BGP 近隣のグループを指します。通常、更新ポリシーは、ルート マップ、配布リスト、およびフィルタ リストで設定します。
ピア グループを定義してグループに近隣を追加すると、そのピア グループに割り当てた更新ポリシーはグループ内のすべての近隣に適用されます。それぞれの近隣にポリシーを定義する必要がなくなります。
ピア グループのメンバーは、そのピア グループの設定をすべて継承します。更新ポリシーをオーバーライドするように特定のメンバーを設定することは可能ですが、受信トラフィックに設定されたポリシーに限られます。グループ ポリシーが送信トラフィックに適用される場合は、ポリシーをオーバーライドするようにメンバーを設定することはできません。
IPv6 BGP ピア グループとその更新ポリシーを設定するには、次の手順を実行します。
R3 上で以下を実行
router bgp 123
no synchronization
bgp router−id 3.3.3.3
neighbor interalmap peer-group
neighbor interalmap remote-as 123
neighbor 1111:111:111:A:C601:3FF:FEF0:0 peer-group interalmap
neighbor 2222:222:222:A:C602:3FF:FEF0:0 peer-group interalmap
neighbor AB01:CD1:123:E:C605:16FF:FE98:0 remote−as 202
neighbor AB01:CD1:123:E:C605:16FF:FE98:0 ebgp−multihop 5
!
address−family ipv6
neighbor interalmap activate
neighbor interalmap route-map 1 out
neighbor 1111:111:111:A:C601:3FF:FEF0:0 peer-group interalmap
neighbor 2222:222:222:A:C602:3FF:FEF0:0 peer-group interalmap
exit−address−family
!
ipv6 prefix−list 10 seq 5 permit BC01:BC1:10:A::/64
!
route-map 1 permit 10
match ipv6 address prefix-list 1 set tag 333
set metric 273
set local-preference 312
正しいローカル プリファレンス ルートが設定されたことを確認するには、show bgp ipv6 unicast コマンドを使用します。
R3 上で以下を実行
R3> show bgp ipv6 unicast
IPv6 アドレス BC01:BC1:10:A::/64 が AS100 から R1 と R2 に送信されたこと、およびメトリックとローカル プリファレンスが対応するルート マップ設定に設定されたことを確認します。
BGP 連合
AS を複数の AS に分割し、これらの AS を単一の連合に割り当てることができます。BGP 連合を実装すると、AS の iBGP メッシュ サイズが小さくなると共に、連合は引き続き単一の AS として外部のピアに通知できます。
連合内のそれぞれの AS はフル メッシュの iBGP を実行すると同時に、連合内の他の AS との間で eBGP 接続を実行します。連合内の eBGP ピア同士は、iBGP を使用しているかのようにルーティング情報を交換します。このとき、連合はネクスト ホップ、メトリック、ローカル プリファレンスなどの情報を維持します。連合は、外部からは単一の AS として見えます。
BGP 連合を設定するには、次の手順を実行します。
R1 上で以下を実行
router bgp 2000
bgp log-neighbor-changes
bgp confederation identifier 200
bgp confederation peers 1000
neighbor 2003::1 remote-as 1000
!
address-family ipv4
neighbor 2003::1 activate
exit-address-family
!
address-family ipv6
network 3002::/64
network 4000::/64
neighbor 2003::1 activate
exit-address-family
R2 上で以下を実行
router bgp 1000
bgp confederation identifier 200
neighbor 10.0.1.1 remote-as 1000
!
address-family ipv6
neighbor 10.0.1.1 activate
exit-address-family
R3 上で以下を実行
router bgp 1000
bgp confederation identifier 200
bgp confederation peers 2000
neighbor 10.0.1.2 remote-as 1000
neighbor 3001::1 remote-as 2000
neighbor 5000::1 remote-as 100
neighbor 5000::1 update-source X2
!
address-family ipv6
neighbor 10.0.1.2 activate
neighbor 3001::1 activate
neighbor 5000::1 activate
exit-address-family
R5 上で以下を実行
router bgp 100
bgp router-id 5.5.5.5
bgp log-neighbor-changes
neighbor 2002::1 remote-as 200
!
address-family ipv6
network 6666::6/128
network 7777::7/128
neighbor 2002::1 activate
exit-address-family
R5 が通知した以下のルートをR1、R2、R3 が学習できることを確認します。
6666::6/128 および 7777::7/128
R2 と R1 が直接接続されていないにもかかわらず、R2 が R1 から以下のルートを学習できることを確認します。
3002::/64 および 4000::/64
補足 IPv6 BGP 設定データおよび IPv6 BGP ルートは 「Terminate and Stay Resident」(TSR) ファイルにダンプされます。
補足 IPv6 BGP では ZebOS のデバッグ インターフェースを使用します。すべてのデバッグ スイッチの既定の設定はクローズです。CLI のコンソールで debug コマンドを入力すると該当するデバッグ スイッチがオープンします。
ARD – 自律ルーティング ドメイン – 共通の管理ルーティング ポリシーを持つネットワーク/ルータの集まり。
AS - 自律システム – 識別番号が割り当てられ、一般的には境界ルータで BGP4 を実行している ARD。
BGP4: - Border Gateway Protocol 4:最も一般的な EGP。
CIDR – Classless Inter-Domain Routing。ルート統合を通じて効率的なルート通知を可能にします。
CPE – 顧客構内設備 - 顧客のネットワークのエッジにあり、ISP とのやりとりに使用される機器。
EGP - 外部ゲートウェイ プロトコル – 自律システム間でのルーティング情報の伝達に使用される任意のプロトコル (実際には BGP4)。
完全ルート - グローバル BGP ルート テーブル全体。
FIB - Forwarding Information Base – SonicWAL の既存のルート テーブルで、パケットの転送時に送信インターフェースとネクスト ホップを探すために使用されます。
Looking Glass* - Looking Glass (LG) サーバは、LG サーバを実行している組織のルータに関する読み取り専用ビューです。一般的に、公的にアクセス可能な Looking Glass サーバは、ISP または NOC によって実行されます。
マルチホーム - 1 つ以上の ISP に対して複数の接続を持つ ISP 顧客。
マルチプロバイダ - 複数の ISP を利用してインターネットに接続する ISP 顧客。
NSM - ネットワーク サービス モジュール - FIB および RIB へのインターフェースを一元管理する ZebOS のコンポーネント。個々のルーティング プロトコル デーモンは、すべての RIB 更新について NSM とやりとりを行います。NSM は、RIB からの最適ルート情報でのみ FIB を更新します。
部分ルート - 完全 BGP ルート テーブルの一部で、通常は ISP のドメインの一部である宛先に固有です。
RIB - Route Information Base - NSM が所有する実行時データベースで、収集されたすべてのルート情報の保存に使用され、ルーティング プロトコルによって使用されます。