目次
概要
設定ミスによって、正常にBGPネイバーを確立できません。また、BGPルートのアドバタイズも想定通りできません。BGPの設定ミスの切り分けと修正を行います。
ネットワーク構成
BGPの設定の条件は以下の通りとします。
AS100をトランジットASとして、AS1-AS2間の通信ができるようにしています。AS1のISPで100.1.1.0/24と100.1.2.0/24をBGPルートとして生成しています。AS2のISP2で200.1.1.0/24と200.1.2.0/24をBGPルートとして生成しています。
AS100内は、R1をルートリフレクタとして、R2~R5はR1とIBGPネイバーの設定を行なっています。IBGPネイバーはLoopbackインタフェースのIPアドレスを利用して確立します。
R1で150.1.1.0/24と150.1.2.0/24をBGPルートとして生成します。そして、できるだけ長いサブネットマスクで集約してアドバタイズします。集約ルートだけではなく、集約前のルートもアドバタイズします。
AS100からAS1の100.1.1.0/24へルーティングするときにはR2を経由するようにします。また、100.1.2.0/24へルーティングするときにはR3を経由するようにします。
AS2から150.1.1.0/24へルーティングするときにはR4を経由するようにします。また、150.1.2.0/24へルーティングするときにはR5を経由するようにします。
設定概要
各ルータのBGPに関する設定は以下のとおりです。これらの設定には、一部設定ミスがあり条件通りにBGPは動作していません。
R1 BGPに関する設定(Click)
interface Loopback0 ip address 192.168.0.1 255.255.255.255 ! interface Loopback1 ip address 150.1.2.1 255.255.255.0 secondary ip address 150.1.1.1 255.255.255.0 ! interface Ethernet0/0 ip address 192.168.12.1 255.255.255.0 ! interface Ethernet0/1 ip address 192.168.13.1 255.255.255.0 ! interface Ethernet0/2 ip address 192.168.14.1 255.255.255.0 ! interface Ethernet0/3 ip address 192.168.15.1 255.255.255.0 ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0 ! router bgp 100 no synchronization bgp log-neighbor-changes network 150.1.1.0 mask 255.255.255.0 network 150.1.2.0 mask 255.255.255.0 aggregate-address 150.1.0.0 255.255.252.0 neighbor 192.168.0.3 remote-as 100 neighbor 192.168.0.3 route-reflector-client neighbor 192.168.0.4 remote-as 100 neighbor 192.168.0.4 update-source Loopback0 neighbor 192.168.0.4 route-reflector-client neighbor 192.168.0.5 remote-as 100 neighbor 192.168.0.5 update-source Loopback0 neighbor 192.168.0.5 next-hop-self neighbor 192.168.1.2 remote-as 100 neighbor 192.168.1.2 update-source Loopback0 neighbor 192.168.1.2 route-reflector-client no auto-summary
R2 BGPに関する設定(Click)
interface Loopback0 ip address 192.168.0.2 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.12.2 255.255.255.0 ! interface Serial1/0 ip address 100.0.1.2 255.255.255.0 ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0 ! router bgp 100 no synchronization bgp log-neighbor-changes neighbor 100.0.1.10 remote-as 1 neighbor 100.0.1.10 route-map LOCAL_PREF in neighbor 192.168.0.1 remote-as 100 neighbor 192.168.0.1 update-source Loopback0 neighbor 192.168.0.1 next-hop-self no auto-summary ! access-list 1 permit 100.1.1.0 ! route-map LOCAL_PREF permit 10 match ip address 1 set local-preference 500 ! route-map LOCAL_PREF permit 20
R3 BGPに関する設定(Click)
interface Loopback0 ip address 192.168.0.3 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.13.3 255.255.255.0 ! interface Serial1/0 ip address 100.0.2.3 255.255.255.0 serial restart-delay 0 ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0 ! router bgp 100 no synchronization bgp log-neighbor-changes neighbor 100.0.2.10 remote-as 1 neighbor 100.0.2.10 route-map LOCAL_PREF in neighbor 192.168.0.1 remote-as 100 neighbor 192.168.0.1 next-hop-self no auto-summary ! access-list 1 permit 100.1.2.0 ! route-map LOCAL_PREF permit 10 match ip address 1 set local-preference 500 ! route-map LOCAL_PREF permit 20
R4 BGPに関する設定(Click)
interface Loopback0 ip address 192.168.0.4 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.14.4 255.255.255.0 ! interface Serial1/0 ip address 200.0.1.4 255.255.255.0 ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0 ! router bgp 100 no synchronization bgp log-neighbor-changes neighbor 192.168.0.1 remote-as 101 neighbor 192.168.0.1 update-source Loopback0 neighbor 192.168.0.1 next-hop-self neighbor 200.0.1.20 remote-as 2 neighbor 200.0.1.20 route-map MED out no auto-summary ! access-list 1 permit 150.1.1.0 ! route-map MED permit 10 match ip address 1 set metric 10 ! route-map MED permit 20 set metric 100
R5 BGPに関する設定(Click)
interface Loopback0 ip address 192.168.0.5 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.15.5 255.255.255.0 ! interface Serial1/0 ip address 200.0.2.5 255.255.255.0 ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0 ! router bgp 100 no synchronization bgp log-neighbor-changes neighbor 192.168.0.1 remote-as 100 neighbor 192.168.0.1 update-source Loopback0 neighbor 192.168.0.1 next-hop-self neighbor 200.0.2.20 remote-as 2 neighbor 200.0.2.20 route-map MED out no auto-summary ! access-list 1 permit 150.1.2.0 ! route-map MED permit 10 match ip address 1 set metric 10 ! route-map MED permit 20 set metric 100
ISP1 BGPに関する設定(Click)
interface Loopback0 ip address 100.1.2.10 255.255.255.0 secondary ip address 100.1.1.10 255.255.255.0 ! interface Serial1/0 ip address 100.0.1.10 255.255.255.0 ! interface Serial1/1 ip address 100.0.2.10 255.255.255.0 ! router bgp 1 no synchronization bgp log-neighbor-changes network 100.1.0.0 mask 255.255.0.0 neighbor 100.0.1.2 remote-as 100 neighbor 100.0.2.3 remote-as 100 no auto-summary
ISP2 BGPに関する設定(Click)
interface Loopback0 ip address 200.1.2.20 255.255.255.0 secondary ip address 200.1.1.20 255.255.255.0 ! interface Serial1/0 ip address 200.0.1.20 255.255.255.0 ! interface Serial1/1 ip address 200.0.2.20 255.255.255.0 ! router bgp 2 no synchronization bgp log-neighbor-changes network 200.1.1.0 network 200.1.2.0 neighbor 200.0.1.4 remote-as 100 neighbor 200.0.2.5 remote-as 100 no auto-summary
トラブルの症状
現在の各ルータのBGPの設定は、一部正しくありません。ISP1とISP2のBGPで学習したルートを確認すると、他のASのルートをBGPで正しく学習できていません。そのため、AS間の通信を正常に行うことができない状態です。
ISP1/ISP2 show ip route bgp
ISP1#show ip route bgp
ISP2#show ip route bgp 150.1.0.0/16 is variably subnetted, 3 subnets, 2 masks B 150.1.2.0/24 [20/10] via 200.0.2.5, 00:00:18 B 150.1.1.0/24 [20/100] via 200.0.2.5, 00:00:18 B 150.1.0.0/22 [20/100] via 200.0.2.5, 00:00:18
トラブルの原因を調べるために、各ルータで以下のshowコマンドを実行しました。
R1
show ip bgp summary
show ip bgp neighbor 192.168.0.5
R2~R5
show ip bgp summary
ISP1/ISP2
show ip bgp summary
show ip bgp
各ルータのshowコマンドの出力は下記のようになっています。
R1 showコマンド
R1#show ip bgp summary BGP router identifier 192.168.0.1, local AS number 100 BGP table version is 6, main routing table version 6 5 network entries using 585 bytes of memory 5 path entries using 260 bytes of memory 4/3 BGP path/bestpath attribute entries using 496 bytes of memory 1 BGP AS-PATH entries using 24 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 1365 total bytes of memory BGP activity 12/7 prefixes, 17/12 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.3 4 100 46 51 0 0 0 07:54:32 Active 192.168.0.4 4 100 36 43 0 0 0 07:59:42 Active 192.168.0.5 4 100 521 530 6 0 0 07:54:31 2 192.168.1.2 4 100 0 0 0 0 0 never Active R1#show ip bgp neighbor 192.168.0.5 BGP neighbor is 192.168.0.5, remote AS 100, internal link BGP version 4, remote router ID 192.168.0.5 BGP state = Established, up for 07:54:31 Last read 00:00:31, last write 00:00:31, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Message statistics: InQ depth is 0 OutQ depth is 0 Sent Rcvd Opens: 2 2 Notifications: 0 0 Updates: 12 3 Keepalives: 516 516 Route Refresh: 0 0 Total: 530 521 Default minimum time between advertisement runs is 0 seconds For address family: IPv4 Unicast BGP table version 6, neighbor version 6/0 Output queue size : 0 Index 1, Offset 0, Mask 0x2 1 update-group member NEXT_HOP is always this router Sent Rcvd Prefix activity: ---- ---- Prefixes Current: 3 2 (Consumes 104 bytes) Prefixes Total: 3 2 Implicit Withdraw: 0 0 Explicit Withdraw: 0 0 Used as bestpath: n/a 2 Used as multipath: n/a 0 Outbound Inbound Local Policy Denied Prefixes: -------- ------- Bestpath from this peer: 2 n/a Total: 2 0 Number of NLRIs in the update sent: max 2, min 0 Connections established 2; dropped 1 Last reset 07:54:32, due to User reset Connection state is ESTAB, I/O status: 1, unread input bytes: 0 Connection is ECN Disabled, Mininum incoming TTL 0, Outgoing TTL 255 Local host: 192.168.0.1, Local port: 37129 Foreign host: 192.168.0.5, Foreign port: 179 -- omitted --
R2 showコマンド
R2#show ip bgp summary BGP router identifier 192.168.0.2, local AS number 100 BGP table version is 17, main routing table version 17 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 100.0.1.10 4 1 530 525 17 0 0 07:56:15 0 192.168.0.1 4 100 39 36 0 0 0 08:02:28 Active
R3 showコマンド
R3#show ip bgp summary BGP router identifier 192.168.0.3, local AS number 100 BGP table version is 19, main routing table version 19 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 100.0.2.10 4 1 530 529 19 0 0 07:56:33 0 192.168.0.1 4 100 51 46 0 0 0 07:56:24 Active
R4 showコマンド
R4#show ip bgp summary BGP router identifier 192.168.0.4, local AS number 100 BGP table version is 20, main routing table version 20 2 network entries using 234 bytes of memory 2 path entries using 104 bytes of memory 2/1 BGP path/bestpath attribute entries using 248 bytes of memory 1 BGP AS-PATH entries using 24 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 610 total bytes of memory BGP activity 9/7 prefixes, 10/8 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.1 4 101 0 0 0 0 0 never Idle 200.0.1.20 4 2 537 529 20 0 0 07:56:42 2
R5 showコマンド
R5#show ip bgp summary BGP router identifier 192.168.0.5, local AS number 100 BGP table version is 23, main routing table version 23 5 network entries using 585 bytes of memory 5 path entries using 260 bytes of memory 4/3 BGP path/bestpath attribute entries using 496 bytes of memory 1 BGP AS-PATH entries using 24 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 1365 total bytes of memory BGP activity 12/7 prefixes, 15/10 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.1 4 100 533 524 23 0 0 07:57:12 3 200.0.2.20 4 2 538 537 23 0 0 07:57:17 2
ISP1 showコマンド
ISP1#show ip bgp summary BGP router identifier 100.1.1.10, local AS number 1 BGP table version is 11, main routing table version 11 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 100.0.1.2 4 100 526 531 11 0 0 07:57:47 0 100.0.2.3 4 100 530 531 11 0 0 07:57:48 0 ISP1#show ip bgp
ISP2 showコマンド
ISP2#show ip bgp summary BGP router identifier 200.1.1.20, local AS number 2 BGP table version is 12, main routing table version 12 5 network entries using 585 bytes of memory 5 path entries using 260 bytes of memory 5/4 BGP path/bestpath attribute entries using 620 bytes of memory 1 BGP AS-PATH entries using 24 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 1489 total bytes of memory BGP activity 15/10 prefixes, 22/17 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 200.0.1.4 4 100 531 539 12 0 0 07:58:06 0 200.0.2.5 4 100 538 539 12 0 0 07:58:07 3 ISP2#show ip bgp BGP table version is 12, local router ID is 200.1.1.20 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 *> 150.1.0.0/22 200.0.2.5 100 0 100 i *> 150.1.1.0/24 200.0.2.5 100 0 100 i *> 150.1.2.0/24 200.0.2.5 10 0 100 i *> 200.1.1.0 0.0.0.0 0 32768 i *> 200.1.2.0 0.0.0.0 0 32768 i
問題
- なぜ各ルータはBGPでルート情報を正しく学習できないのでしょうか。
- BGPでルート情報を正しく学習し、AS間の通信ができるようにするためにはどのように設定を修正すればよいでしょうか。
解答
なぜ各ルータはBGPでルート情報を正しく学習できないのでしょうか。
AS100内でIBGPネイバーを正しく確立できていないため。IBGPネイバーを正しく確立できていない原因は、次の通り。
【R1-R2間】
R1のIBGPネイバーの設定でR2のIPアドレスを間違っている
【R1-R3間】
BGPパケットの送信元IPアドレスがLoopback0のIPアドレスとなっていない
【R1-R4間】
R4のIBGPネイバーの設定でR1のAS番号を間違っている
【R1-R5間】
R5をルートリフレクタクライアントとして設定していない
また、ISP1でnetworkコマンドの設定が正しくないためBGPルートの生成が行われていない。
BGPでルート情報を正しく学習し、AS間の通信ができるようにするためにはどのように設定を修正すればよいでしょうか。
R1
router bgp 100 no neighbor 192.168.1.2 remote-as 100 neighbor 192.168.0.2 remote-as 100 neighbor 192.168.0.2 update-source loopback0 neighbor 192.168.0.2 route-reflector-client neighbor 192.168.0.3 update-source loopback0 neighbor 192.168.0.5 route-reflector-client
R3
router bgp 100 neighbor 192.168.0.1 update-source loopback0
R4
router bgp 100 no neighbor 192.168.0.1 remote-as 101 neighbor 192.168.0.1 remote-as 100 neighbor 192.168.0.1 update-source loopback0 neighbor 192.168.0.1 next-hop-self
ISP1
router bgp 1 network 100.1.1.0 mask 255.255.255.0 network 100.1.2.0 mask 255.255.255.0 no network 100.1.0.0 mask 255.255.0.0
ワンポイント
- BGPネイバーの状態がActiveとなっているときは、ネイバーの設定が正しくない
- ルートリフレクタとなるルータでルートリフレクタクライアントを指定する
- networkコマンドはルーティングテーブル上の既知のネットワークアドレス/サブネットマスクを指定してBGPルートを生成する
解説
BGPではネイバーを確立してから、BGPルートを交換します。そのため、BGPネイバーを確立できなければ、BGPルートの交換ができずパケットのルーティングもできません。BGPの設定ミスを考えるときにBGPネイバーの確認がとても重要です。BGPネイバーの状態はEstablished状態が正常な状態です。Active状態となっている場合は、何らかの設定ミスがあることがほとんどです。
今回考えているトラブルチケットには、BGPネイバーの確立に関して次の設定ミスがあります。
- ネイバーのIPアドレス(R1-R2間)
- BGPパケットの送信元IPアドレス(R1-R3間)
- AS番号(R1-R4間)
- ルートリフレクタ(R1-R5間)
また、BGPではnetworkコマンドによってBGPルートを生成します。networkコマンドはルーティングテーブル上の既知のルートを指定しなければいけません。トラブルチケットには、networkコマンドの設定ミスも含まれています。
ネイバーのIPアドレス(R1-R2間)
R1のshow ip bgp summaryコマンドの出力を見ると、R2のLoopback0の192.168.0.2に対するネイバーの設定が行われていないことがわかります。192.168.0.2ではなく192.168.1.2という間違ったIPアドレスでネイバーの設定を行なっていると考えられます。
R1 show ip bgp summary
R1#show ip bgp summary BGP router identifier 192.168.0.1, local AS number 100 -- omitted -- Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.3 4 100 46 51 0 0 0 22:34:12 Active 192.168.0.4 4 100 36 43 0 0 0 22:39:23 Active 192.168.0.5 4 100 1401 1410 6 0 0 22:34:11 2 192.168.1.2 4 100 0 0 0 0 0 never Active
192.168.1.2というIPアドレスは、存在しないIPアドレスです。存在しないIPアドレスに対して接続性がないので、BGPネイバーはActive状態のままとなります。
R1で以下のように、間違ったIPアドレスのネイバーの設定を削除して、R2 Loopback0のIPアドレス192.168.0.2を正しく指定してIBGPネイバーの設定を修正します。
R1 ネイバーIPアドレスの修正
router bgp 100 no neighbor 192.168.1.2 remote-as 100 neighbor 192.168.0.2 remote-as 100 neighbor 192.168.0.2 update-source loopback0 neighbor 192.168.0.2 route-reflector-client
設定修正後、show ip bgp summaryコマンドの出力は次のようになります。
R1 show ip bgp summary
R1#show ip bgp summary BGP router identifier 192.168.0.1, local AS number 100 -- omitted -- Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.2 4 100 4 7 6 0 0 00:00:49 0 192.168.0.3 4 100 46 51 0 0 0 22:48:35 Active 192.168.0.4 4 100 36 43 0 0 0 22:53:46 Active 192.168.0.5 4 100 1415 1424 6 0 0 22:48:35 2
R2との間のネイバーがEstablished状態となっていることがわかります。
BGPパケットの送信元IPアドレス(R1-R3間)
BGPネイバーはお互いがお互いをネイバーとして認識しなければいけません。そのために、BGPパケットの送信元IPアドレスをチェックします。BGPパケットの送信元IPアドレスと設定しているBGPネイバーのIPアドレスが一致していなければなりません。
AS100内のIBGPネイバーはそれぞれのルータのLoopback0のIPアドレスでネイバーを設定しています。つまり、BGPパケットの送信元IPアドレスはLoopback0のIPアドレスを利用しなければいけません。そのためには、neighbor update-sourceコマンドの設定が必要です。neighbor update-sourceコマンドでLoopback0のIPアドレスをBGPパケットの送信元IPアドレスとして利用するようにします。
ところが、R1-R3間のIBGPネイバーの設定にはneighbor update-sourceコマンドが抜けています。その結果、ネイバーを正しく確立することができずActive状態に留まってしまっています。
R1-R3間で正しくネイバーを確立するためには、以下のようにneighbor update-sourceコマンドの設定が必要です。
R1 neighbor update-source
router bgp 100 neighbor 192.168.0.3 update-source loopback0
R3 neighbor update-source
router bgp 100 neighbor 192.168.0.1 update-source loopback0
設定後、R1-R3間のネイバーは以下のようにEstablished状態となり、正常に確立することができます。
R1 show ip bgp summary
R1#show ip bgp summary BGP router identifier 192.168.0.1, local AS number 100 -- omitted -- Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.2 4 100 48 51 6 0 0 00:44:33 0 192.168.0.3 4 100 51 59 6 0 0 00:01:07 0 192.168.0.4 4 100 36 43 0 0 0 23:37:30 Active 192.168.0.5 4 100 1459 1468 6 0 0 23:32:18 2
AS番号(R1-R4間)
BGPネイバーを確立するためには、お互いのAS番号の認識も一致していなければいけません。R4のshow ip bgp summaryコマンドの出力を見ると、R4はR1のAS番号を101として設定していることがわかります。
R4 show ip bgp summary
R4#show ip bgp summary BGP router identifier 192.168.0.4, local AS number 100 -- omitted -- Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.1 4 101 0 0 0 0 0 never Idle 200.0.1.20 4 2 1478 1470 20 0 0 23:37:25 2
このように相手のAS番号を間違って設定すると、BGPネイバーの状態はIdle状態のままで留まってしまいます。なお、対向のR1ではR4のBGPネイバー状態はActive状態となります。
R4では、次のように正しくR1のAS番号を指定してネイバーの設定を行います。
R4 ネイバーのAS番号を修正
router bgp 100 no neighbor 192.168.0.1 remote-as 101 neighbor 192.168.0.1 remote-as 100 neighbor 192.168.0.1 update-source loopback0 neighbor 192.168.0.1 next-hop-self
設定修正後ネイバーの状態を確認すると、以下のようにEstablished状態となり正しくネイバーを確立できていることがわかります。
R4 show ip bgp summary
R4#show ip bgp summary BGP router identifier 192.168.0.4, local AS number 100 -- omitted -- Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.1 4 100 8 5 23 0 0 00:00:37 3 200.0.1.20 4 2 1494 1488 23 0 0 23:52:22 2
ルートリフレクタ(R1-R5間)
AS100内はR1をルートリフレクタとして、IBGPネイバーをフルメッシュで確立する必要がないようにしています。ところが、R5をルートリフレクタクライアントとして指定していません。現在のネットワーク構成であれば、BGPルートのアドバタイズには特に問題はありません。しかし、設定の条件よりR5をルートリフレクタクライアントとして設定するべきです。
R1では、以下のようにR5をルートリフレクタクライアントとして設定します。
R1 ルートリフレクタの設定
router bgp 100 neighbor 192.168.0.5 route-reflector-client
R1がR5をルートリフレクタクライアントして認識していることを確認するために、show ip bgp neighbor 192.168.0.5コマンドを利用します。
R1 show ip bgp neighbors 192.168.0.5
R1#show ip bgp neighbors 192.168.0.5 BGP neighbor is 192.168.0.5, remote AS 100, internal link BGP version 4, remote router ID 192.168.0.5 BGP state = Established, up for 00:10:38 -- omitted -- For address family: IPv4 Unicast BGP table version 12, neighbor version 12/0 Output queue size : 0 Index 1, Offset 0, Mask 0x2 Route-Reflector Client 1 update-group member NEXT_HOP is always this router -- omitted --
networkコマンド(ISP1)
AS100内のIBGPネイバーが正常に確立でき、また、AS1やAS2とのEBGPネイバーも正常に確立できてもAS1-AS2間の通信は不可能です。AS1内の100.1.1.0/24と100.1.2.0/24のルートをBGPで学習できていないからです。
ISP1のBGPテーブルを確認すると、以下のようになっています。
ISP1 show ip bgp
ISP1#show ip bgp BGP table version is 16, local router ID is 100.1.1.10 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 * 150.1.0.0/22 100.0.2.3 0 100 i *> 100.0.1.2 0 100 i * 150.1.1.0/24 100.0.2.3 0 100 i *> 100.0.1.2 0 100 i * 150.1.2.0/24 100.0.2.3 0 100 i *> 100.0.1.2 0 100 i * 200.1.1.0 100.0.2.3 0 100 2 i *> 100.0.1.2 0 100 2 i * 200.1.2.0 100.0.2.3 0 100 2 i *> 100.0.1.2 0 100 2 i
ISP1のBGPテーブルにはR2、R3から受信したBGPルートがありますが、ISP1自身が生成するBGPルートがありません。ISP1のnetworkコマンドの設定を確認すると、100.1.1.0/24と100.1.2.0/24を集約して100.1.0.0/16として指定しています。networkコマンドはルーティングテーブルに登録されているネットワークアドレス/サブネットマスクで指定しなければいけません。
ISP1で正しくBGPルートを生成するために、以下のようにnetworkコマンドを修正します。
ISP1 networkコマンドの修正
router bgp 1 network 100.1.1.0 mask 255.255.255.0 network 100.1.2.0 mask 255.255.255.0 no network 100.1.0.0 mask 255.255.0.0
ISP1のnetworkコマンドを修正したあと、BGPテーブルを見ると正しくBGPルートを生成しネイバーへアドバタイズしていることがわかります。
ISP1 show ip bgp
ISP1#show ip bgp BGP table version is 18, local router ID is 100.1.1.10 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 *> 100.1.1.0/24 0.0.0.0 0 32768 i *> 100.1.2.0/24 0.0.0.0 0 32768 i * 150.1.0.0/22 100.0.2.3 0 100 i *> 100.0.1.2 0 100 i * 150.1.1.0/24 100.0.2.3 0 100 i *> 100.0.1.2 0 100 i * 150.1.2.0/24 100.0.2.3 0 100 i *> 100.0.1.2 0 100 i * 200.1.1.0 100.0.2.3 0 100 2 i *> 100.0.1.2 0 100 2 i * 200.1.2.0 100.0.2.3 0 100 2 i *> 100.0.1.2 0 100 2 i
そして、AS1-AS2間の通信も正常にできるようになります。
ISP1 通信確認
ISP1#ping 200.1.1.20 source 100.1.1.10 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 200.1.1.20, timeout is 2 seconds: Packet sent with a source address of 100.1.1.10 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/24/40 ms ISP1#ping 200.1.2.20 source 100.1.1.10 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 200.1.2.20, timeout is 2 seconds: Packet sent with a source address of 100.1.1.10 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/23/48 ms
BGPの仕組み
- BGPの概要 ~AS間でルート情報を交換~
- BGPの動作
- BGPの基本設定と確認コマンド
- BGPピアグループ(Peer Group) ~ネイバーの設定をまとめよう~
- BGPネイバーの状態
- BGPコンフェデレーションの設定
- BGPコンフェデレーションの設定例
- BGPネイバー認証
- BGP Well Known Mandatory アトリビュート -ORIGIN/AS_PATH/NEXT_HOP-
- 図解!BGPベストパス選択アルゴリズム
- BGP 基本的な設定についての演習[Cisco]
- BGPの基本的な設定についての演習 ~トラブルシュート~
- BGP KEEPALIVEタイマ/ホールドタイムの設定
- BGPルート 最小送信間隔の設定
- BGPルートダンプニング
- マルチホーム – インターネット接続の冗長化 –
- マルチホームAS BGPルートフィルタのポイント
- マルチホームAS ベストパス選択のポイント
- マルチホームAS IGPとBGPの連携のポイント
- マルチホームAS BGPの設定例
- IP-VPNでのBGPの利用 設定例
- BGPルートフィルタの種類
- BGPルートフィルタ -ディストリビュートリスト-
- BGPルートフィルタ -ディストリビュートリスト設定例-
- BGPルートフィルタ -プレフィクスリスト-
- BGPルートフィルタ -プレフィクスリスト設定例-
- BGPルートフィルタ -フィルタリスト(AS_PATH ACL)-
- BGPルートフィルタ -フィルタリスト(AS_PATH ACL)設定例-
- BGPルートフィルタ -ルートマップ(route-map)-
- BGPルートフィルタ -ルートマップ(route-map)設定例-
- BGP neighbor allowas-inコマンド
- BGP neighbor as-overrideコマンド
- BGPルート RIB Failure
- BGPルート アドミニストレイティブディスタンスの制御
- BGPルートの負荷分散
- BGPルート 条件付き生成
- BGPルート 条件付きアドバタイズ
- BGP ルート集約 自動集約
- BGPルート集約 networkコマンドによる集約
- BGPルート集約 networkコマンドによる集約 設定例
- BGP ルート集約 aggregate-addressコマンドによる集約
- aggregate-addressコマンドのオプション summary-only
- aggregate-addressコマンドのオプション attribute-map
- aggregate-addressコマンドのオプション as-set
- aggregate-addressコマンドのオプション advertise-map
- aggregate-addressコマンド as-set/attribute-map/advertise-map 設定例
- BGP選択型集約の概要
- BGP選択型集約 suppress-map
- BGP選択型集約 unsuppress-map
- BGP 選択型集約 suppress-map/unsuppress-map 設定例
- BGP local-as ~ネイバーに他のASのように見せる~
- BGP neighbor remove-private-ASコマンド
- bgp fast external-fallover
- BGP プレフィクス数の制限
- BGP COMMUNITYアトリビュートの使い方
- BGP Well-known COMMUNITYのルートフィルタ設定例
- BGP プライベートCOMMUNITYによるルート制御の設定例
- [演習]BGP応用 Part1:BGP基本設定
- [演習]BGP応用 Part2:ルート集約
- [演習]BGP応用 Part3:ポリシーベースルーティング
- [演習]BGP応用 Part4:トラブルシューティング
- BGP 設定ミスの切り分けと修正 Part1
- BGP 設定ミスの切り分けと修正 Part2
- BGP 設定ミスの切り分けと修正 Part3
- BGP 設定ミスの切り分けと修正 Part4
- BGP 設定ミスの切り分けと修正 Part5
- BGP 設定ミスの切り分けと修正 Part6
- BGP 設定ミスの切り分けと修正 Part7
- IPv6 BGPの設定例 Part1
- IPv6 BGPの設定例 Part2
- 2021年10月4日 Facebookに何が起こったか?
- IPv4 BGPネイバーでのIPv6プレフィックスの交換