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

 
 Top - Cisco - Cisco BGP設定 プライベートAS




プライベートASを前提にした設定の紹介です。


何らかの事情で2社以上とISP契約が難しい、なるべくコストをかけたくないがWAN回線は冗長化したいといった場合にプライベートASによる冗長化がオススメです。グローバルASとは違いプライベートASは申請をしコストをかけて取得するものではありません。上位ISPとの打ち合わせで予めプライベートAS用として用意されている空間(64512~65534)から任意を選ぶ事が可能です。


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

・RouterAとRouterBでIBGPをはる。(図中では直接繋がっているように見えるが広域EtherをL2で抜いている)
・上図に示しているIPは全てプライベートIPだが、実際には全てグローバルIPが想定される
・上位ISPからはデフォルトルート(0.0.0.0/0)のみ 受け取る
・内部LANで使用している経路のみ上位ISPに経路広報する
・上位ISPではMED値が比較される設定が入っている(bgp deterministic-med)
・上り下りともに通常時にはISP_Aを経由して通信する。
・拠点Aに障害が発生し通信不可となった場合のみISP_Bから 通信する。


実案件でもプライベートASを使ってFull Routeを受け取るというのは皆無です。全てといっていいぐらいデフォルトルートのみ受け取るケースが多いです。またプライベートASを使った場合でも負荷分散をさせることは技術的には可能ですが冗長化を目的として実施することが多いことからActive-Standby構成で導入することが多いです。本記事もActive-Standby構成を前提にしています。


この前提で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 100

[ 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

route-map BGP-OUT permit 10
match ip address prefix-list MyRoute
set metric 100

route-map BGP-IN permit 10
set local-preference 200

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.2 remote-as XXX
neighbor 10.0.0.2 prefix-list ISP-A-Route in
neighbor 10.0.0.2 prefix-list MyRoute out
neighbor 10.0.0.2 route-map BGP-IN in
neighbor 10.0.0.2 route-map BGP-OUT out
neighbor 172.16.200.2 remote-as ZZZ
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 metric 200

[ 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

route-map BGP-OUT permit 10
match ip address prefix-list MyRoute
set metric 200

route-map BGP-IN permit 10
set local-preference 100

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 XXX
neighbor 10.0.0.6 prefix-list ISP-A-Route in
neighbor 10.0.0.6 prefix-list MyRoute out
neighbor 10.0.0.6 route-map BGP-IN in
neighbor 10.0.0.6 route-map BGP-OUT out
neighbor 172.16.200.1 remote-as ZZZ
no auto-summary


グローバルASの際にはBGPの属性を全く使わずして経路を制御しました。これはBGPの属性では完全に制御する ことが出来ないからです。対してプライベートASの場合にはBGPの属性を使って完全にActive-Standbyを実現することが出来ます。

先ず上りトラフィックを制御しているのがLocal Preference。これは値が高いほうが優先されます。上記ではRouterAで200、RouterBで100としており、いずれもデフォルトルートに対して値をつけています。IBGPをはっているので両者で値の比較が行われ、RouterAが優先、RouterBにはデフォルトルート自体のってこなくなります。その結果、RouterBではOSPFでdefault-informationを指定していますが、alwaysキーワードを指定していないため 0.0.0.0/0は配信されず全ての上位ISPへのトラフィックはRouterAを経由することになります。


次に下りトラフィックを制御しているのがMEDと呼ばれる属性で上記設定ではroute-map BGP-OUTでset metricで指定しています。自サイトの経路に対して値の重み付けをして上位ISPに経路広報するとういもので値が低いほうが優先されます。これは上位のASにMEDで値をつけて流しても上位のASからさらに上位のASに流れることはありません。そのため特定のASに対してのみ有効な設定でありプライベートASでのみ使う属性と思ってよいと思います。

このLocalPreferenceとMEDを使うことでプライベートASでは経路を完全に制御することが出来ます。



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