BGP の高度なルーティング

この付録では、SonicWALL における BGP (Border Gateway プロトコル) の実装の概要と、BGP の動作、およびネットワークに合わせて BGP を設定する方法を説明します。

この付録は以下のセクションで構成されます。

BGP の概要

注意

BGP の設定

BGP 設定の確認

IPv6 BGP

BGP の用語

BGP の概要

以下のセクションで、BGP の概要を説明します。

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

SonicOS の拡張ライセンス

NSA 3600

SonicOS の拡張ライセンス 01-SSC-7091

NSA 4600

なし (BGP のライセンスは含まれています)

NSA 5600

なし (BGP のライセンスは含まれています)

NSA 6600

なし (BGP のライセンスは含まれています)

SM 9200

なし (BGP のライセンスは含まれています)

SM 9400

なし (BGP のライセンスは含まれています)

SM 9600

なし (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 は、非常に柔軟で複雑なルーティング プロトコルです。そのため、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 の有力候補ではありませんが、BGP を使用すると ISP にネットワークを通知できます。シングルホーム ネットワークは RIR からパブリック AS を取得できません。

シングルプロバイダ/マルチホーム - 一般的に、RFC2270 の提案に従って、単一のプライベート AS (64512 ~ 65535) を使用して BGP のメリットを得つつ、パブリック ASN を維持するのに使用されます。

マルチプロバイダ/マルチホーム - 冗長性が高く、一般的には各 ISP に対して専用ルータを使用します。パブリック ASN が必要です。大量のメモリ フットプリントを使用します。

• ルートの要約によってルーティングがスケーラブルになります。

BGP の動作

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 の有限状態機械

BGP を定義した RFC 1771 には、以下の状態機械に関する BGP の動作が記述されています。図の下の表に、さまざまな状態に関する追加情報を示します。

図 81:1 BGP の有限状態機械

Appendix_B_BGP00272.jpg

 

状態

説明

Idle

新しい BGP セッション確立後、または既存セッションのリセット後、Start イベントを待機中。エラーが発生した場合は、Idle 状態に戻ります。Start イベント後、BGP は初期化を行い、接続リトライ タイマーをリセットし、TCP 転送接続を開始し、接続をリッスンします。

接続

TCP 層が使用可能になると、OpenSent に遷移し、OPEN を送信します。TCP 層が存在しない場合は、Active に遷移します。接続リトライ タイマーが期限切れになった場合は、Connect のままで、タイマーをリセットし、転送接続を開始します。それ以外の場合は、Idle に戻ります。

Active

ピアとの TCP 接続の確立を試みます。成功した場合は、OpenSent に遷移し、OPEN を送信します。接続リトライが期限切れになった場合は、タイマーを再起動し、Connect に戻ります。また、別のピアによって接続をアクティブにリッスンします。その他のイベントが発生した場合は、Idle に戻ります。

Coonect から Active へのフラッピングは、TCP の再送やピアの到達不可能性など TCP 転送の問題があることを示します。

OpenSent

ピアからの OPEN メッセージを待機中。受信時に検証を行います。検証が失敗した場合は、NOTIFICATION を送信し、Idle に戻ります。成功した場合は、KEEPALIVE を送信し、キープアライブ タイマーをリセットします。保留時間をネゴシエートします。小さい値の方が採用されます。ゼロの場合は、保留タイマーとキープアライブ タイマーは再起動されません。

OpenConfirm

KEEPALIVE または NOTIFICATION を待機します。KEEPALIVE を受信した場合は、Established に遷移します。UPDATE または KEEPALIVE を受信した場合は、保留タイマーを再起動します (ネゴシエートされた保留時間がゼロの場合を除く)。NOTIFICATION を受信した場合は、Idle に遷移します。

定期的な KEEPALIVE メッセージが送信されます。TCP 層が遮断された場合は、Idle に遷移します。エラーが発生した場合は、エラー コードを含む NOTIFICATION を送信し、Idle に遷移します。

Established

セッションが使用可能になり、交換がピアで更新されます。NOTIFICATION を受信した場合は、Idle に遷移します。更新にエラーがないかチェックします。エラーがあった場合は、NOTIFICATION を送信し、Idle に遷移します。保留時間が期限切れになった場合は、TCP を切断します。

BGP メッセージ

BGP 通信には、以下の種類のメッセージが含まれます。

• Open – TCP セッション確立後、BGP ピア間の最初のメッセージ。ASN、保留時間、およびマルチプロダクト拡張やルートリフレッシュ機能など、ピアリング セッションの確立に必要な情報が含まれます。

• Update – このメッセージには、ルートの告知または取り消しなどのパス情報が含まれます。

• Keepalive – TCP 層を使用可能な状態に保ち続け、生存性を通知するための定期的メッセージ。

• Notification – BGP セッションを終了させるための要求。致命的ではない通知には、エラー コード "cease" が含まれます。サブコードで、さらに詳細な情報を提供します。

サブコード

説明

1 – 到達したプレフィックスの最大数

設定されている "近隣の最大プレフィックス" 値を超えました

2 – 管理上のシャットダウン

セッションが管理上シャットダウンされました

3 – ピア未設定

ピアの設定が削除されました

4 – 管理上のリセット

セッションが管理上リセットされました

5 – 接続拒否

BGP セッションの拒否 (一時的な場合もあります)

6 – その他の設定変更

何らかの理由でセッションが管理上リセットされました

• ルートリフレッシュ – ピアに対するルート再送の要求。

BGP 属性

BGP の UPDATE メッセージには、以下の属性を含めることができます。

コード

1

ORIGIN

2

AS_PATH

3

NEXT_HOP

4

MULTI_EXIT_DISC

5

LOCAL_PREF

6

ATOMIC_AGGREGATE

7

AGGREGATOR

8

COMMUNITY

9

ORIGINATOR_ID

10

CLUSTER_LIST

11

DPA

12

ADVERTISER (履歴)

13

RCID_PATH / CLUSTER_ID (履歴)

14

MP_REACH_NLRI

15

MP_UNREACH_NLRI

16

EXTENDED COMMUNITIES

17

AS4_PATH

18

AS4_AGGREGATOR

19

SAFI 固有属性 (SSA) (廃止)

20

コネクタ属性 (廃止)

21

AS_PATHLIMIT (廃止)

22

PMSI_TUNNEL

23

トンネル カプセル化属性

24

トラフィック エンジニアリング

25

IPv6 アドレス固有の拡張コミュニティ

26

AIGP (一時的 - 2011 年 2 月 23 日に失効)

27 ~ 254

未定義

255

開発用に確保

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 の設定

以下のセクションでは、BGP の高度なルーティングを SonicOS 用に設定する方法について説明します。

BGP の IPSec 設定

BGP の基本設定

BGP パス選択プロセス

AS_PATH プリペンド

Multiple Exit Discriminator (MED)

BGP コミュニティ

同期と自動要約

偶発的なトランジット AS の防止

負荷共有のためのマルチホーム BGP の使用

BGP の IPSec 設定

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 ポリシー」ウィンドウが表示されます。

BGP_IPsec_general.jpg

 

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 に関する章を参照してください。

BGP の基本設定

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 パス選択プロセス

以下の属性を使用して、BGP パス選択プロセスを設定できます。

項目

説明

重み

近隣から取得したルートの中で、最も高い重みが設定されているものが優先されます。ローカル ルータにのみ関係します。

ローカル プリファレンス

管理上、ある近隣から取得したルートが優先されます。AS 全体で共有されます。

ネットワーク または 統合 パス

network コマンドおよび aggregate-address コマンドからローカルに開始されたパスが優先されます。

AS_PATH

AS_PATH が最も短いパスが優先されます。

起点

(UPDATE メッセージで通知される) 起点タイプが最も低いパスが優先されます。IGP < EGP < 不完全の順になります。

Multi Exit Discriminator (MED)

起点 AS へのパスについて、パスのプリファレンス情報を近隣に提供します。

最新性

最近受信したパスが優先されます。

ルータ ID

最も低いルータ ID を持つルータからのパスが優先されます。

重み

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 間のルートにどのように影響を与えるかを説明するトポロジの例を示しています。

図 81:2 BGP のローカル プリファレンス トポロジ

Appendix_B_BGP00273.jpg

 

SNWL1 および SNWL2 に以下の BGP 設定が入力されています。SNWL2 のローカル プリファレンスの方が高いので、SNWL2 が AS 12345 (SonicWALL AS) によって外部 AS に通知される優先ルートになります。

SNWL1 の設定

SNWL2 の設定

x0 = 12.34.5.228

x1 = 172.16.228.45

------------------

router bgp 12345

neighbor 172.16.228.228 remote-as 7675

neighbor 12.34.5.237 remote-as 12345

bgp default local-preference 150

x0 = 12.34.5.237

x1 = 10.1.1.2

------------------

router bgp 12345

neighbor 10.1.1.1 remote-as 8888

neighbor 12.34.5.228 remote-as 12345

bgp default local-preference 200

ルート マップで使用されるローカル プリファレンス

ルート マップはアクセス制御リストに似ています。ルート マップは、装置によるルートの処理方法を決定する一連の許可文や拒否文で構成されます。ルート マップは、送信トラフィックではなく受信トラフィックに適用されます。次の図は、ローカル プリファレンスの設定にルート マップを使用するトポロジの例を示しています。

図 81:3 ルート マップを使用した BGP ローカル プリファレンス トポロジ

Appendix_B_BGP00274.jpg

 

SNWL1 および SNWL2 に以下の BGP 設定が入力されています。

SNWL1 の設定

SNWL2 の設定

x1 = 172.16.228.45

 

 

------------------

router bgp 12345

neighbor 172.16.228.228 remote-as 7675

neighbor 12.34.5.237 remote-as 12345

bgp default local-preference 150

x0 = 12.34.5.237

x1 = 10.1.1.2

x4 = 10.4.4.1

------------------

router bgp 12345

neighbor 10.1.1.1 remote-as 9999

neighbor 10.1.1.1 route-map rmap1 in

neighbor 12.34.5.237 remote-as 12345

....

ip as-path access-list 100 permit ^8888$

...

route-map rmap1 permit 10

match as-path 100

set local-preference 200

 

route-map rmap1 permit 20

set local-preference 150

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_PATH プリペンドは、パス更新の先頭に AS 番号を追加する方法です。これによって、このルートのパスが長くなるため、優先度が低くなります。

AS_PATH プリペンドは、送信パスにも受信パスにも適用できます。近隣によって無効にされる場合、AS_PATH プリペンドが適用されないことがあります。

送信パスの設定

受信パスの設定

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 long out

!

route-map long permit 10

set as-path prepend 12345 12345

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 prepend in

!

route-map prepend permit 10

set as-path prepend 12345 12345

 

この設定によって、近隣 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 コミュニティ

コミュニティは、いくつかの共通プロパティを共有し、通過 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 へのトラフィックを許可する) にすることも、非トランジット ピア (すべてのトラフィックをその AS 上で開始または終了する必要がある) にすることもできます。トランジット ピアのルーティング テーブルは、大幅に大きくなります。一般的には、SonicWALL セキュリティ装置をトランジット ピアとして設定する必要はありません。

図 81:4 トランジット ピアと非トランジット ピア

Appendix_B_BGP00275.jpg

 

間違って 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

負荷共有のためのマルチホーム BGP の使用

次のトポロジは、SonicWALL セキュリティ装置がマルチホーム BGP ネットワークを使用して 2 つの ISP 間で負荷を共有する例を示しています。

図 81:5

Appendix_B_BGP00276.jpg

負荷共有トポロジ用のマルチホーム 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 設定の確認

以下のセクションでは、BGP 設定の確認方法について説明します。

BGP ルートの表示

BGP ログ採取の設定

BGP ルートの表示

次の図は、SonicWALL セキュリティ装置で BGP が 2 つの異なる AS 上の 2 つのルータに接続するように設定されている、基本的な BGP トポロジを示したものです。

図 81:6 BGP トポロジ

Appendix_B_BGP00277.jpg

 

このネットワークの FIB 内のルートは、SonicOS GUI でも、CLI を使用することによっても表示できます。

GUI での FIB ルートの表示

BGP 設定の要約は、「ネットワーク > ルーティング」ページの上部にある「ルーティング モード」プルダウン メニューの横の「BGP 状況」ボタンを選択することによって、SonicOS GUI で表示できます。「BGP 状況」ウィンドウには、show ip bgp summary コマンドと show ip bgp neighbor コマンドの出力が表示されます。

FIB 内の BGP ルートも、SonicOS GUI で「ネットワーク > ルーティング」ページの「ルーティング ポリシー」テーブルに表示されます。

CLI での FIB ルートの表示

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

CLI での RIB ルートの表示

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 へのパスです。

BGP ログ採取の設定

SonicWALL BGP は、BGP トラフィックに関連するログ イベントを表示するための包括的なデバッグ コマンドを提供しています。BGP ログ採取は、CLI で以下のキーワードを付けて debug bgp コマンドを使用することで設定できます。

BGP デバッグ キーワード

説明

all

すべての BGP デバッグを有効にします。

dampening

BGP ダンプニングのデバッグを有効にします。

events

BGP イベントのデバッグを有効にします。

filters

BGP フィルタのデバッグを有効にします。

fsm

BGP 状態遷移 (FSM) のデバッグを有効にします。

keepalives

BGP キープアライブのデバッグを有効にします。

nht

NHT メッセージのデバッグを有効にします。

nsm

NSM メッセージのデバッグを有効にします。

updates

受信/送信 BGP 更新のデバッグを有効にします。

BGP デバッグを無効にするには、コマンドの前に "no" と入力します。例えば、イベントのデバッグを無効にするには、no debug events コマンドを入力します。

SonicOS GUI の「ログ > 表示」ページには、BGP ログ メッセージも表示できます。BGP メッセージは、ログ メッセージの「高度なルーティング」種別の一部として表示されます。

上のメッセージは、更新の受信元であるルータが装置に直接接続されていなかったため、送信 RIB に対する更新が拒否されたことを示しています。

直接接続されていない BGP ピアを許可するには、neighbor コマンドで ebgp-multihop キーワードを使用します。以下に例を示します。

neighbor 10.50.165.228 ebgp-multihop

IPv6 BGP

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 です。

ebgp_ibgp_AS_diagram.jpg

 

上の図のように複数の 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 アドレス ファミリーのいずれかで送信するように設定できます。

AS6501_AS6502.jpg

 

 

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 からのアドレスを照合することができ、アドレスの禁止または許可に使用できます。

rta_rtr_rtc_diagram.png

 

 

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

Network

Next Hop

Metric

LocPrf

Weight

Path

*> 2002::/64

::ffff:a00:101

0

0

100

i

*> 2003::/64

::ffff:a00:101

0

0

100

i

*> 2004::/64

::ffff:a00:101

0

0

100

i

*> 5000::/64

::ffff:a00:101

0

0

100

400i

*> 6666::6/128

::ffff:a00:101

0

0

100

400

*> 7777::7/128

::ffff:a00:101

0

0

100

400

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

Network

Next Hop

Metric

LocPrf

Weight

Path

*> 5000::/64

::ffff:a00:101

0

0

100

400i

*> 6666::6/128

::ffff:a00:101

0

0

100

400i

*> 7777::7/128

::ffff:a00:101

0

0

100

400i

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 ルータで使用中のルーティング プロトコルを示しています。

bgp_route_selection.png

 

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 に通知します。

bgp_sync.png

 

補足 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 つ以上のルート リフレクタ クライアントが存在するかぎりルート リフレクタです。

bgp_route_reflector.png

 

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 コマンドで変更できます。

IPv6_BGP_local_preference.jpg

 

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_peer_groups.jpg

 

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 として見えます。

ipv6_bgp_confederation.png

 

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 コマンドを入力すると該当するデバッグ スイッチがオープンします。

BGP の用語

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 が所有する実行時データベースで、収集されたすべてのルート情報の保存に使用され、ルーティング プロトコルによって使用されます。