■BGPの設定
実際のBGPの設定を見ていきます。ルータ上でBGPを有効にするには以下を設定します。
(config)# router bgp [自サイトのAS番号] |
ルータのBGPを有効にしたところで今度は近隣ルータを手動で設定します。
(config-router)# neighbor [対向のIP] remote-as [対向のAS番号] |
eBGPピアは通常物理インターフェイスのIPアドレスをもとにピアをはるので特に意識しなくて良いのですがiBGPピアは一般的にルータ上でLoopbackアドレスを設定し、それを送信元/送信先にiBGPピアを形成します。iBGPに関しては内部経路が2つ以上存在している場合、経路の冗長化が実現可能だからです。ただし、Loに対してIP Reachabilityである必要があり、Loまで1つのみの経路しか存在しない場合は物理インターフェイスでも問題ありません。
(config-router)# neighbor [対向のIP] update-source Loopback0 |
eBGPピアをはる際に実務ではMD5認証を行うのが一般的です。これは以下の設定で実現可能であり、当然ながら両端で一致している必要があります。
(config-router)# neighbor [対向のIP] password [パスワード] |
BGPに経路を注入するには幾つかの方法があります。一つはIGPをBGPに再配布する方法。もう一つは手動設定です。手動でBGPに経路を注入するには以下の設定を行います。
(config-router)# network [ネットワークアドレス] mask [サブネットマスク] |
もう一つのIGPからBGPへの経路再配布です。
(config-router)# redistribute [ルーティングプロトコル] [プロセスID] |
■実際の設定例
以下の構成図を前提に各ルータを設定していきます。
各ルータの設定は以下のようになります。no synchronizationとno auto-summaryとbgp log-neighbor-changesは自動で設定されます。BGPへの経路の注入はneworkコマンドではなくIGPからBGPへの再配布で設定しています。
・Router1 (eBGPのみ) | ・Router2 (eBGP / iBGP) |
interface FastEthernet0/0 ip address 10.10.10.1 255.255.255.252 duplex auto speed auto ! router bgp 100 no synchronization bgp log-neighbor-changes neighbor 10.10.10.2 remote-as 200 neighbor 10.10.10.2 password cisco no auto-summary |
interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface FastEthernet0/0 ip address 10.10.10.2 255.255.255.252 duplex auto speed auto ! interface FastEthernet0/1 ip address 30.30.30.1 255.255.255.252 duplex auto speed auto ! router ospf 110 log-adjacency-changes network 2.2.2.2 0.0.0.0 area 0 network 30.30.30.0 0.0.0.3 area 0 ! router bgp 200 no synchronization bgp log-neighbor-changes redistribute ospf 110 neighbor 3.3.3.3 remote-as 200 neighbor 3.3.3.3 update-source Loopback0 neighbor 4.4.4.4 remote-as 200 neighbor 4.4.4.4 update-source Loopback0 neighbor 10.10.10.1 remote-as 100 neighbor 10.10.10.1 password cisco no auto-summary |
・Router3 (iBGPのみ) | ・Router4 (eBGP / iBGP) |
interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface FastEthernet0/0 ip address 30.30.30.2 255.255.255.252 duplex auto speed auto ! interface FastEthernet0/1 ip address 40.40.40.2 255.255.255.252 duplex auto speed auto ! router ospf 110 log-adjacency-changes network 3.3.3.3 0.0.0.0 area 0 network 30.30.30.0 0.0.0.3 area 0 network 40.40.40.0 0.0.0.3 area 0 ! router bgp 200 no synchronization bgp log-neighbor-changes neighbor 2.2.2.2 remote-as 200 neighbor 2.2.2.2 update-source Loopback0 neighbor 4.4.4.4 remote-as 200 neighbor 4.4.4.4 update-source Loopback0 no auto-summary |
interface Loopback0 ip address 4.4.4.4 255.255.255.255 ! interface FastEthernet0/0 ip address 20.20.20.2 255.255.255.252 duplex auto speed auto ! interface FastEthernet0/1 ip address 40.40.40.1 255.255.255.252 duplex auto speed auto ! router ospf 110 log-adjacency-changes network 4.4.4.4 0.0.0.0 area 0 network 40.40.40.0 0.0.0.3 area 0 ! router bgp 200 no synchronization bgp log-neighbor-changes redistribute ospf 110 neighbor 2.2.2.2 remote-as 200 neighbor 2.2.2.2 update-source Loopback0 neighbor 3.3.3.3 remote-as 200 neighbor 3.3.3.3 update-source Loopback0 neighbor 20.20.20.1 remote-as 300 neighbor 20.20.20.1 password cisco no auto-summary |
・Router5 (eBGPのみ) | |
interface FastEthernet0/0 ip address 20.20.20.1 255.255.255.252 duplex auto speed auto ! router bgp 300 no synchronization bgp log-neighbor-changes neighbor 20.20.20.2 remote-as 200 neighbor 20.20.20.2 password cisco no auto-summary |
■BGPの動作確認
BGPを設定したらそれが適切に動作していることを確認しましょう。まずは経路情報の確認です。
R1# show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, 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, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 2.0.0.0/32 is subnetted, 1 subnets B 2.2.2.2 [20/0] via 10.10.10.2, 01:12:32 3.0.0.0/32 is subnetted, 1 subnets B 3.3.3.3 [20/11] via 10.10.10.2, 01:12:32 4.0.0.0/32 is subnetted, 1 subnets B 4.4.4.4 [20/21] via 10.10.10.2, 01:12:32 40.0.0.0/30 is subnetted, 1 subnets B 40.40.40.0 [20/20] via 10.10.10.2, 01:12:32 10.0.0.0/30 is subnetted, 1 subnets C 10.10.10.0 is directly connected, FastEthernet0/0 30.0.0.0/30 is subnetted, 1 subnets B 30.30.30.0 [20/0] via 10.10.10.2, 01:12:33 |
上記の例ではRouter1が5つの経路をBGP経由で学習しています。BGP経路は行頭にBが表示されます。ルータがBGPから学習した経路を全て見たい場合は次のコマンドを使います。
R1# show ip bgp BGP table version is 8, local router ID is 10.10.10.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 2.2.2.2/32 10.10.10.2 0 0 200 ? *> 3.3.3.3/32 10.10.10.2 11 0 200 ? *> 4.4.4.4/32 10.10.10.2 21 0 200 ? *> 30.30.30.0/30 10.10.10.2 0 0 200 ? *> 40.40.40.0/30 10.10.10.2 20 0 200 ? |
行頭に*がついているのが実際にルーティングテーブルに採用された経路です。上記では全ての経路がルーティングテーブルに採用されています。ルータがどのルータとBGPピアを張っているのか調べるコマンドが下記です。
R2# show ip bgp summary BGP router identifier 2.2.2.2, local AS number 200 BGP table version is 8, main routing table version 8 5 network entries using 585 bytes of memory 10 path entries using 520 bytes of memory 9/4 BGP path/bestpath attribute entries using 1116 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 2221 total bytes of memory BGP activity 5/0 prefixes, 11/1 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 3.3.3.3 4 200 98 104 8 0 0 01:34:51 0 4.4.4.4 4 200 91 93 8 0 0 01:23:46 5 10.10.10.1 4 100 103 110 8 0 0 01:41:10 0 |
Router2では上記のように表示され、3つのルータとピアを張っていることがお分かりいただけます。右端のState/PfxRcdの列に実際に受信している経路の数が表示されます。ここに数字以外の例えばActive等と表示されている場合はピアが形成されていないということになります。
ピアに対して実際にアドバタイズしている経路を表示するには次のコマンドを使用します。
R2# show ip bgp neighbors 10.10.10.1 advertised-routes BGP table version is 8, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 2.2.2.2/32 0.0.0.0 0 32768 ? *> 3.3.3.3/32 30.30.30.2 11 32768 ? *> 4.4.4.4/32 30.30.30.2 21 32768 ? *> 30.30.30.0/30 0.0.0.0 0 32768 ? *> 40.40.40.0/30 30.30.30.2 20 32768 ? Total number of prefixes 5 |
上記ではネイバー10.10.10.1に対して上の5つの経路をアドバタイズしているということになります。何らかの事情でBGPピアをリセットしたい場合は次のコマンドで可能です。
R2# clear ip bgp 10.10.10.1 R2# *Mar 1 02:02:44.935: %BGP-5-ADJCHANGE: neighbor 10.10.10.1 Down User reset *Mar 1 02:02:45.399: %BGP-5-ADJCHANGE: neighbor 10.10.10.1 Up |
ただし、このコマンドを実施するとピアがリセットされることから通信断が発生することに注意してください。通信断を発生させずアトリビュートの変更などを即座に反映させたい場合、ソフトウェア的にリスタートさせることもできます。
R2# clear ip bgp 10.10.10.1 soft |
このコマンドでは通信断は発生いたしません。