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

2
ポリシー種別」ドロップダウン メニューで、「サイト間」が選択されていることを確認します。
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
ネットワーク」タブを選択します。

11
ローカル ネットワークに対して、「ローカル ネットワークをリストより選択」ドロップダウン メニューから「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 の基本設定

SonicWALL セキュリティ装置上で BGP を設定するには、以下の手順に従います。
1
SonicOS GUI で、「ネットワーク > ルーティング」ページに移動します。
2
ルーティング モード」ドロップダウン メニューで、「高度なルーティング」を選択します。
3
BGP」ドロップダウン メニューで、「有効 (CLI での設定)」を選択します。

4
5
configure コマンドを入力して、設定モードに入ります。
6
route ars-bgp コマンドを入力して、BGP CLI に入ります。次のプロンプトが表示されます。

ZebOS version 7.7.0 IPIRouter 7/2009

ARS BGP>

7
8
show running-config と入力して、現在の BGP 動作設定を確認します。
9
BGP 設定モードに入るには、configure terminal コマンドを入力します。設定コマンドの一覧が表示されます。
10
設定が完了したら、write file コマンドを入力します。装置が高可用性ペアまたはクラスタの一部である場合は、設定の変更が他の装置に自動的に伝達されます。

BGP パス選択プロセス

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

 

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

図 71. BGP のローカル プリファレンス トポロジ

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

 

表 176. SNWL1 および SNWL2 の設定

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

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

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

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

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

 

表 177. SNWL1 および SNWL2 の設定

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 プリペンドが適用されないことがあります。

 

表 178. 送信パスと受信パスの設定

送信パスの設定

受信パスの設定

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 セキュリティ装置をトランジット ピアとして設定する必要はありません。

図 73. トランジット ピアと非トランジット ピア

間違って 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 間で負荷を共有する例を示しています。

図 74. 負荷共有トポロジ用のマルチホーム 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