UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Cisco - Cisco BGP設定 グローバルAS




2011年の震災以降、BCPというキーワードをよく耳にするようになりました。大きな組織(会社や大学)であれば組織は一つとしても拠点が複数に別れて、ある拠点が壊滅しても別の拠点からインターネットに接続することができるようにしてほしい、という依頼をよく受けるようになりました。


BCP実現のために導入する接続プロトコルがBGP(Border Gateway Protocol)です。

一昔前ではBGPを導入する組織といえばそのほとんどがISPのみでしたがここ最近ではBCPを意識して大学などでも導入するところが増えてきているようです。


BGPで接続するにはAS(Autonomous System)が必要で、プライベートASとグローバルASの2種類あります。グローバルAS取得にあたってはどの組織でも気軽に取得できるものではありません。取得するには前提条件がありそれらを満たしている必要があります。その条件とは

1) ルーティングポリシーが、他のいかなる自律ネットワークとは独立し、固有のものである。
2) BGPを利用して他の複数の自律ネットワークとルーティング情報の交換を行っている。
3) 上記の条件 1) 2) を、3ヶ月以内に満たす予定がある 
(JPNIC HPより)

である必要があります。グローバルAS取得にはコストもかかり、2社以上のISPと契約をし接続に関する打ち合わせを行わないといけませんのでそれなりに労力のかかる作業になってきます。以下ではグローバルASによるBGP接続を前提に具体的な設定等を御紹介できればと思います。



上記の構成図を元に実際の設定を紹介できればと思います。上図の細かな補足です。

・拠点Aと拠点Bの2拠点存在しており物理的に離れた位置に存在している。
・BGPを喋るルータはRouterAとRouterBの2台で上 位ISPからはDefaultRoute(0.0.0.0/0)のみ受け取る
・上図に示しているIPは全てプライベートIPだが、実際には全てグローバルIPが想定される
・AS番号は本来数字で表されるものだが上図ではXXX / YYY / ZZZと表記している
・内部LANで使用している経路のみ上位ISPに経路広報する
・上り下りともに通常時にはISP_Aを経由して通信する。
・拠点Aに障害が発生し通信不可となった場合のみISP_Bから 通信する。


実案件では上の図のように単純な構成というのはほとんどなく、もっと複雑な構成であることがほとんどです。


ISPであれば完全なActive-Standby構成ではなく冗長化かつ負荷 分散をしているところが全てでDefaultRouteのみ受け取るというのはなくFull Routeを受け取っていることと思います。
これが大学や自治体などでは負荷分散より冗長化に重点をおいているところが多くFullRouteを受け取れるようなハイエンド機器をあまり入れることがないことからDefaultRouteのみと想定しております。(これに対応してくれるか否かはISP次第となります)


この前提でRouterAのBGP/OSPF設定は以下のようになります。

[ OSPF設定 ]

router ospf 110
auto-cost reference-bandwidth 10000
network 172.16.1.0 0.0.0.255 area 0
default-information originate metric-type 1

[ BGP設定 ]

access-list 10 permit 192.168.0.0 0.0.255.255
route-map BGP permit 10
match ip address 10

ip prefix-list ISP-A-Route seq 5 permit 0.0.0.0/0
ip prefix-list MyRoute seq 5 permit 192.168.0.0/16 le 32

router bgp ZZZ
bgp log-neighbor-changes
timers bgp 30 90
redistribute ospf 110 route-map BGP
neighbor 10.0.0.2 remote-as XXX
neighbor 10.0.0.2 prefix-list ISP-A-Route in
neighbor 10.0.0.2 prefix-list MyRoute out
no auto-summary


RouterBのBGP/OSPF設定は以下のようになります。


[ OSPF設定 ]

router ospf 110
auto-cost reference-bandwidth 10000
network 172.16.2.0 0.0.0.255 area 0
default-information originate

[ BGP設定 ]

access-list 10 permit 192.168.0.0 0.0.255.255
route-map BGP permit 10
match ip address 10

ip prefix-list ISP-B-Route seq 5 permit 0.0.0.0/0
ip prefix-list MyRoute seq 5 permit 192.168.0.0/16

router bgp ZZZ
bgp log-neighbor-changes
aggregate-address 192.168.0.0 255.255.0.0 summary-only
timers bgp 30 90
redistribute ospf 110 route-map BGP
neighbor 10.0.0.6 remote-as YYY
neighbor 10.0.0.6 prefix-list ISP-B-Route in
neighbor 10.0.0.6 prefix-list MyRoute out
no auto-summary


両者の違いを中心に見ていきます。


■default-information originate (OSPF)

デフォルトルートを生成するコマンドです。

RouterAではmetric-type 1ですがRouterBでは指定していません。指定しなければmetric-type 2になりtype 2よりtype 1の方が優先されます。 それによりRouterA/Bの両方からDefaultRouteを生成するのですが、RouterAを優先し上りトラフィックは拠点Aを経由という結果になります。
このコマンドのオプションでalwaysキーワードを付けることができます。

これはデフォルトルートがルーティングテーブル上にあるないに関わらずデフォルトルートを配信させるというものでこれを指定しなければルーティングテーブル上にデフォルトルートがある場合のみデフォルトルートを生成します。デフォルトルートはBGP経由で受け取りますのでネイバーが切れた時のことを考えてalwaysは指定していません。


■ip prefix-list MyRoute (BGP)

自サイトから上位ISPへ経路広報するフィルタを定義しています。RouterAにはle 32というキーワードがあります。これは192.168まで合致しておりマスク長が32bitであることを意味しています。対してRouterBにはle 32というのはなく厳密に192.168.0.0/16に一致した経路のみ指定しているということになります。拠点Aからは192.168.X.X/24という個別経路を指定しているのに対し拠点Bでは192.168.0.0/16の大きく集約した経路のみを指定しているという違いがあります。

これを発信インターフェイスのフィルタに適用することにより拠点Aからは個別経路が広報され拠点Bからは集約経路が広報されます。それによりロンゲストマッチ(最長一致)の法則によりプレフィッ クスの長い経路が優先され下り経路も拠点Aが優先されるという結果となります。


■ip prefix-list ISP-X-Route


デフォルトルートを指定しており、受信インターフェイスのフィルタに適用することにより上位ISPからはデフォルトルー トのみ受け取るという結果になります。

■aggregate-address


経路集約を意味します。最後のsummary-onlyキーワードをつけることにより集約経路のみという意味にな ります。summary-onlyをつけなければ集約経路+個別の経路という意味になります。経路集約をするのはRouterBなのでRouterBにだけこのオプションをつけています。
その他、細かいところでBGPのkeepaliveやholdtimeなどを半分に減らしたりospfからbgp にredistributeなど行なっています。


以上のような手法でトラフィックを制御しております。(かなり掻い摘んだ説明ですが・・・)


一般的にISPでBGPのトラフィック制御といえばBGPルータ同士でIBGPをはっておき、上りはLocalPreference、下りに関してはas-path prependで制御するのが一般的かと思います。
それに比べて上記の手法はBGPの属性を使わずに制御をするイレギュラーなやり方だと思っておりますが綺麗に動く ことが想定されます。(JPIRRへの個別の経路登録が必須となります!)


上位ISPの回線が落ちた場合、上位ISPの接続に使っているRouterのダウン、広域イーサのMCが壊れた場合などいずれの障害においても対応可能です




 

 関連記事
 BGPの基本設定
 BGPの経路フィルタリング
 BGPの経路制御
 BGP (PrivateAS)の設定
 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.