付録 B:BGP の高度なルーティング

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

この章は以下のセクションで構成されています。

BGP の概要

注意

BGP の設定

BGP 設定の確認

BGP の用語

BGP の概要

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

BGP とは

背景情報

自律システム

BGP トポロジの種類

BGP を使用する理由

BGP の動作

BGP とは

BGP は、明確に定義され、個別に管理されるネットワーク ドメインである自律システム (AS) 間でルーティング情報を伝達するために使用される、大規模ルーティング プロトコルです。BGP のサポートにより、ネットワークの AS のエッジにある従来の BGP ルータの代わりに Dell SonicWALL セキュリティ装置を配置できます。現在の Dell SonicWALL の BGP 実装は、ネットワークが 1 つの ISP をインターネット プロバイダとして利用し、そのプロバイダに対して単一の接続を持つ「シングルプロバイダ/シングルホーム」環境に最も適しています。Dell SonicWALL BGP は、ネットワークが単一の ISP を利用しながらもそのプロバイダに対して少数のルートを別々に持つ「シングルプロバイダ/マルチホーム」環境もサポートできます。BGP は、SonicOS GUI の「ネットワーク > ルーティング」ページで有効にしてから、SonicOS のコマンド ライン インターフェース (CLI) を通じて完全に設定します。

背景情報

ルーティング プロトコルは、単にネットワーク上を伝送されるパケットではなく、個々のルータおよびルータ グループがネットワーク トポロジを検出し、まとめ、伝達するすべてのメカニズムで構成されます。ルーティング プロトコルは、指定されたとおりにそのプロトコルに従う各構成要素に応じて、異なる分散アルゴリズムを使用します。また、あるネットワーク ドメイン内のルートが、ネットワーク ノード間のリンクの状況の変化に合わせて動的に変化する場合に、最も役立ちます。

通常、ルーティング プロトコルは次の 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 のエッジに配置したいと考える顧客もいます。これらのテクノロジーをサポートするために、BGP が追加されました。

Note SonicOS では、BGP をサポートしているプラットフォームで BGP4+、すなわち BGP4 の IPv6 サポート (RFC 2545) に対応しています。

自律システム

各自律システムには、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_AS_path-next_hop.jpg

 

BGP の有限状態機械

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

Figure 98:29 BGP の有限状態機械

Appendix_B_BGP00324.jpg

 

状態

説明

Idle

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

Connect

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

Active

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

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

OpenSent

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

OpenConfirm

KEEPALIVE または NOTIFICATION を待機します。KEEPALIVE を受信した場合は、Established に遷移します。UPDATE または KEEPALIVE を受信した場合は、保留タイマーを再起動します (ネゴシエートされた保留時間がゼロの場合を除く)。NOTIFICA­TION を受信した場合は、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 を設定する前に、トンネル経由での接続を確認します。

以下の手順は、Dell SonicWALL とリモート BGP ピア間の IPSec 設定の例です。Dell SonicWALL は X0 ネットワークの 192.168.168.75/24 に設定され、リモート ピアは X0 ネットワークの 192.168.168.35/24 に設定されています。

1. 「VPN > 設定」ページに移動して、「VPN ポリシー」セクションの下で「追加」ボタンを選択します。「VPN ポリシー」ウィンドウが表示されます。

BGP_IPsec_general.jpg

 

2. 「ポリシー種別」プルダウン メニューで、「サイト間」が選択されていることを確認します。

Note 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」フィールドに、Dell SonicWALL の IP アドレス (この例では 192.168.168.75) を入力します。

9. 「ピア IKE ID」フィールドで、リモート ピアの IP アドレス (192.168.168.35) を入力します。

10. 「ネットワーク」タブを選択します。

BGP_IPsec_network.jpg

 

11. ローカル ネットワークの場合、「ローカル ネットワークをリストより選択」プルダウン メニューから「X0 IP」を選択します。

12. リモート ネットワークの場合、「対象先ネットワークをリストより選択」プルダウン メニューからリモート ピアの IP アドレス (この例では 192.168.168.35) を選択します。リモート IP アドレスがリストにない場合は、「アドレス オブジェクトの作成」を選択して、その IP アドレスのアドレス オブジェクトを作成します。

13. 「プロポーザル」タブを選択します。既定の IPSec プロポーザルを使用することも、それをカスタマイズすることもできます。

14. 「詳細」タブを選択します。

15. 「キープ アライブを有効にする」チェックボックスをオンにします。

16. 「OK」を選択します。

これで、VPN ポリシーが Dell SonicWALL 装置で設定されました。今度は、リモート ピアに対して対応する IPSec 設定を行います。IPSec 設定が完了したら、「VPN > 設定」ページに戻り、VPN ポリシーの「有効」チェックボックスをオンにして、IPSec トンネルを開始します。

Dell SonicWALL の ping 診断を使用して BGP ピアの IP アドレスに ping を行い、Wireshark を使用して要求と応答が ESP パケットにカプセル化されていることを確認します。

Note この例の設定では、ルーティングされたトラフィックは BGP 用の IPSec トンネルを通りません。ルーティングされたトラフィックは、平文で送受信されます。ルーティングされたすべてのネットワーク トラフィックではなく BGP を保護することが目的なので、ほとんどの場合、これが望ましい動作です。

IPSec の設定の詳細については、『SonicOS 管理者ガイド』の VPN に関する章を参照してください。

BGP の基本設定

Dell SonicWALL セキュリティ装置に BGP を設定するには、以下の作業を実行します。

1. SonicOS GUI で、「ネットワーク > ルーティング」ページに移動します。

2. 「ルーティング モード」プルダウン メニューで、「高度なルーティング」を選択します。

3. 「BGP」プルダウン メニューで、「有効 (CLI での設定)」を選択します。

Note BGP には SonicOS の拡張ライセンスが必要です。ライセンスの管理については、「システム > ライセンス」ページを参照してください。

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

Figure 98:30 BGP のローカル プリファレンス トポロジ

Appendix_B_BGP00325.jpg

 

SNWL1 および SNWL2 に以下の BGP 設定が入力されています。SNWL2 のローカル プリファレンスの方が高いので、SNWL2 が AS 12345 (Dell 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

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

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

Figure 98:31 ルート マップを使用した BGP ローカル プリファレンス トポロジ

Appendix_B_BGP00326.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 上で開始または終了する必要がある) にすることもできます。トランジット ピアのルーティング テーブルは、大幅に大きくなります。一般的には、Dell SonicWALL セキュリティ装置をトランジット ピアとして設定する必要はありません。

Figure 98:32 トランジット ピアと非トランジット ピア

Appendix_B_BGP00327.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 の使用

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

Figure 98:33

Appendix_B_BGP00328.jpg

負荷共有トポロジ用のマルチホーム BGP

Dell 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 ルートの表示

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

Figure 98:34 BGP トポロジ

Appendix_B_BGP00329.jpg

 

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

GUI での FIB ルートの表示

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

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

BGP_FIB_in_GUI.jpg

 

 

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

Note 最後のルートは AS7675 から取得された AS9999 へのパスです。

BGP ログ採取の設定

Dell 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 メッセージは、ログ メッセージの「高度なルーティング」種別の一部として表示されます。

BGP_log_view.jpg

 

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

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

neighbor 10.50.165.228 ebgp-multihop

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