目次
ネットワーク構成
設定条件
- R1~R3でAS65001を構成します。また、R4~R6でAS65002を構成します。IBGPネイバーはすべてLoopback0のIPアドレスを利用して確立します。
- AS65001とAS65002間でEBGPネイバーを確立します。R1とR4ではLoopback1のIPアドレスを利用します。このとき、必要ならばスタティックルートを設定してください。
- R3とR6のLoopback1のネットワークアドレスをBGPルートとしてアドバタイズし、AS間の通信ができるようにします。このとき、R2ではnext-hop-selfを設定してはいけません。また、AS間のリンクをBGPやIGPでアドバタイズしてもいけません。
- R3からAS65002内の100.2.2.0/24へパケットをルーティングする際には、R2を経由するようにしてください。ただし、設定はR3のみで行いBGPパスアトリビュートを変更してはいけません。
- R6からAS65001内の100.1.1.0/24へパケットをルーティングする際には負荷分散されるようにしてください。
初期設定
以下の内容は設定済みです。
- ホスト名
- IPアドレス
- AS内のルーティング
OSPFエリア0
設定と確認
【Step1:IBGPネイバーの設定】
AS65001、AS65002内のIBGPネイバーをフルメッシュで設定します。Loopback0のIPアドレスを利用するので、neighbor update-sourceコマンドでBGPパケットの送信元IPアドレスとしてLoopback0を使うように設定しなければいけないことに注意してください。
R1
router bgp 65001 neighbor 192.168.0.2 remote-as 65001 neighbor 192.168.0.2 update-source loopback0 neighbor 192.168.0.3 remote-as 65001 neighbor 192.168.0.3 update-source loopback0
R2
neighbor 192.168.0.1 remote-as 65001 neighbor 192.168.0.1 update-source loopback0 neighbor 192.168.0.3 remote-as 65001 neighbor 192.168.0.3 update-source loopback0
R3
router bgp 65001 neighbor 192.168.0.2 remote-as 65001 neighbor 192.168.0.2 update-source loopback0 neighbor 192.168.0.1 remote-as 65001 neighbor 192.168.0.1 update-source loopback0
R4
router bgp 65002 neighbor 192.168.0.5 remote-as 65002 neighbor 192.168.0.5 update-source loopback0 neighbor 192.168.0.6 remote-as 65002 neighbor 192.168.0.6 update-source loopback0
R5
router bgp 65002 neighbor 192.168.0.4 remote-as 65002 neighbor 192.168.0.4 update-source loopback0 neighbor 192.168.0.6 remote-as 65002 neighbor 192.168.0.6 update-source loopback0
R6
router bgp 65002 neighbor 192.168.0.5 remote-as 65002 neighbor 192.168.0.5 update-source loopback0 neighbor 192.168.0.4 remote-as 65002 neighbor 192.168.0.4 update-source loopback0
【Step2:IBGPネイバーの確認】
各ルータでshow ip bgp summaryコマンドでIBGPネイバーを正常に確立できていることを確認します。R1およびR4では次のような表示です。
R1
R1#show ip bgp summary BGP router identifier 192.168.0.1, local AS number 65001 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.2 4 65001 22 22 1 0 0 00:19:45 0 192.168.0.3 4 65001 22 22 1 0 0 00:19:43 0
R4
R4#show ip bgp summary BGP router identifier 192.168.0.4, local AS number 65002 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.5 4 65002 21 21 1 0 0 00:18:52 0 192.168.0.6 4 65002 21 21 1 0 0 00:18:53 0
この時点では、BGPルートをまったく生成していないので、受信したルート数はすべて0です。
【Step3:EBGPネイバーの設定】
R1-R4間、R2-R5間のEBGPネイバーを設定します。R1-R4間ではLooback1のIPアドレスを利用します。直接接続以外のインタフェースのIPアドレスでEBGPネイバーを確立するときには、次の3点に注意が必要です。
- ネイバーを確立するIPアドレスへの接続性があること
- neighbor update-sourceコマンドでBGPパケットの送信元IPアドレスを適切に設定していること
- EBGPパケットのTTLを増やすこと
R1とR4では、ネイバーを確立するIPアドレスへの接続性を確保するために、等コストロードバランスになるようにスタティックルートを設定します。
R1
ip route 10.1.1.4 255.255.255.255 10.1.14.4 ip route 10.1.1.4 255.255.255.255 10.1.41.4 ! router bgp 65001 neighbor 10.1.1.4 remote-as 65002 neighbor 10.1.1.4 update-source loopback1 neighbor 10.1.1.4 ebgp-multihop
R4
ip route 10.1.1.1 255.255.255.255 10.1.14.1 ip route 10.1.1.1 255.255.255.255 10.1.41.1 ! router bgp 65002 neighbor 10.1.1.1 remote-as 65001 neighbor 10.1.1.1 update-source loopback1 neighbor 10.1.1.1 ebgp-multihop
R2
router bgp 65001 neighbor 10.2.25.5 remote-as 65002
R5
router bgp 65002 neighbor 10.2.25.2 remote-as 65001
【Step4:EBGPネイバーの確認】
R1/R4、R2/R5でshow ip bgp summaryコマンドでEBGPネイバーを正常に確立できていることを確認します。R1とR2では、次のような表示です。
R1
R1#show ip bgp summary BGP router identifier 192.168.0.1, local AS number 65001 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.1.1.4 4 65002 8 8 1 0 0 00:04:14 0 192.168.0.2 4 65001 34 34 1 0 0 00:31:35 0 192.168.0.3 4 65001 34 34 1 0 0 00:31:33 0
R2
R2#show ip bgp summary BGP router identifier 192.168.0.2, local AS number 65001 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.2.25.5 4 65002 7 7 1 0 0 00:03:55 0 192.168.0.1 4 65001 34 34 1 0 0 00:31:58 0 192.168.0.3 4 65001 34 34 1 0 0 00:31:40 0
次の図は、BGPネイバーの状態をまとめたものです。
【Step5:BGPルートのアドバタイズ】
R3とR6でnetworkコマンドを利用して、Loopback1のネットワークアドレスをBGPルートとしてアドバタイズします。また、AS境界のR1、R4、R5ではNEXT_HOPへの到達性を確保するためにIBGPネイバーに対してneighbor next-hop-selfの設定を行います。R2ではnext-hop-selfを設定してはいけないという条件から、ルートマップによってNEXT_HOPアトリビュートを変更します。
R3
router bgp 65001 network 100.1.1.0 mask 255.255.255.0
R6
router bgp 65002 network 100.2.2.0 mask 255.255.255.0
R1
router bgp 65001 neighbor 192.168.0.2 next-hop-self neighbor 192.168.0.3 next-hop-self
R2
router bgp 65001 neighbor 192.168.0.1 route-map NEXT_HOP out neighbor 192.168.0.3 route-map NEXT_HOP out ! route-map NEXT_HOP permit 10 set ip next-hop 192.168.0.2
R4
router bgp 65002 neighbor 192.168.0.5 next-hop-self neighbor 192.168.0.6 next-hop-self
R5
router bgp 65002 neighbor 192.168.0.4 next-hop-self neighbor 192.168.0.6 next-hop-self
【Step6:BGPルートのアドバタイズの確認】
R3とR6のBGPテーブルを見て、対向のASのBGPルートがアドバタイズされていることを確認します。
R3
R3#show ip bgp 100.2.2.0 BGP routing table entry for 100.2.2.0/24, version 4 Paths: (2 available, best #2, table Default-IP-Routing-Table) Not advertised to any peer 65002 192.168.0.2 (metric 11) from 192.168.0.2 (192.168.0.2) Origin IGP, metric 0, localpref 100, valid, internal 65002 192.168.0.1 (metric 11) from 192.168.0.1 (192.168.0.1) Origin IGP, metric 0, localpref 100, valid, internal, best
R6
R6#show ip bgp 100.1.1.0 BGP routing table entry for 100.1.1.0/24, version 3 Paths: (2 available, best #2, table Default-IP-Routing-Table) Not advertised to any peer 65001 192.168.0.5 (metric 11) from 192.168.0.5 (192.168.0.5) Origin IGP, metric 0, localpref 100, valid, internal 65001 192.168.0.4 (metric 11) from 192.168.0.4 (192.168.0.4) Origin IGP, metric 0, localpref 100, valid, internal, best
R3はAS65002のBGPルート 100.2.2.0/24をR1とR2から受信しています。同様に、R6はAS65001のBGPルート 100.1.1.0/24をR4とR5から受信しています。なお、現在、ベストパスはルータIDによって決定されています。ルータIDが小さいBGPネイバーから受信したBGPルートがベストパスとなっています。そして、R3とR6のルーティングテーブルは以下のようになります。
R3
R3#show ip route ~省略~ Gateway of last resort is not set C 192.168.13.0/24 is directly connected, Ethernet0/0 100.0.0.0/24 is subnetted, 2 subnets B 100.2.2.0 [200/0] via 192.168.0.1, 00:31:24 C 100.1.1.0 is directly connected, Loopback1 C 192.168.23.0/24 is directly connected, Ethernet0/1 192.168.0.0/32 is subnetted, 3 subnets O 192.168.0.1 [110/11] via 192.168.13.1, 03:04:06, Ethernet0/0 O 192.168.0.2 [110/11] via 192.168.23.2, 03:04:06, Ethernet0/1 C 192.168.0.3 is directly connected, Loopback0
R6
R6#show ip route ~省略~ Gateway of last resort is not set C 192.168.46.0/24 is directly connected, Ethernet0/0 100.0.0.0/24 is subnetted, 2 subnets C 100.2.2.0 is directly connected, Loopback1 B 100.1.1.0 [200/0] via 192.168.0.4, 00:31:43 C 192.168.56.0/24 is directly connected, Ethernet0/1 192.168.0.0/32 is subnetted, 3 subnets O 192.168.0.4 [110/11] via 192.168.46.4, 03:04:48, Ethernet0/0 O 192.168.0.5 [110/11] via 192.168.56.5, 03:04:48, Ethernet0/1 C 192.168.0.6 is directly connected, Loopback0
【Step7:OSPFコストの変更】
IBGPルートのベストパスを決定するときの基準として、ネクストホップアドレスへ到達する際のIGPのメトリックがあります。ネクストホップアドレスへ到達するためのIGPルートのメトリックが小さい方のルートが優先されます。
R3からAS65002の100.2.2.0/24宛てのパケットをルーティングするときにR2を優先するためには、R3でR2からアドバタイズされたIBGPルートがベストパスになるようにします。そして、そのためには、R3からR2のLoopback0(192.168.0.2)へのIGP(OSPF)メトリックを小さくします。
R3
interface Ethernet0/1 ip ospf cost 1
Step8:R3から100.2.2.0/24への通信経路の確認】
R3でAS65002の100.2.2.0/24のベストパスを確認します。
R3
R3#show ip bgp 100.2.2.0 BGP routing table entry for 100.2.2.0/24, version 5 Paths: (2 available, best #1, table Default-IP-Routing-Table) Flag: 0x900 Not advertised to any peer 65002 192.168.0.2 (metric 2) from 192.168.0.2 (192.168.0.2) Origin IGP, metric 0, localpref 100, valid, internal, best 65002 192.168.0.1 (metric 11) from 192.168.0.1 (192.168.0.1) Origin IGP, metric 0, localpref 100, valid, internal
R3で100.2.2.0/24のベストパスはR2からアドバタイズされたルートになっていることがわかります。これは、R3のE0/1のOSPFコストを小さくしたので、R2の192.168.0.1へ到達するためのOSPFコストが小さくなったからです。
そして、R3から100.2.2.6宛てのTracerouteを実行すると、次のようになります。
R3
R3#traceroute 100.2.2.6 source 100.1.1.3 Type escape sequence to abort. Tracing the route to 100.2.2.6 1 192.168.23.2 24 msec 16 msec 20 msec 2 10.2.25.5 32 msec 48 msec 28 msec 3 192.168.56.6 56 msec * 64 msec
【Step9:負荷分散の設定】
通常、BGPルートはベストパスのみがルーティングテーブルに登録されます。BGPルートの負荷分散を行うためには、maximum-pathsコマンドを利用します。maximum-pathsコマンドにより、AS_PATH、MED、LOCAL_PREFが同じBGPルートを複数ルーティングテーブルに登録することができます。
R6
router bgp 65002 maximum-paths ibgp 2
【Step10:負荷分散の確認】
R6のBGPテーブルおよびルーティングテーブルを確認します。
R6
R6#show ip bgp 100.1.1.0 BGP routing table entry for 100.1.1.0/24, version 4 Paths: (2 available, best #2, table Default-IP-Routing-Table) Multipath: iBGP Not advertised to any peer 65001 192.168.0.5 (metric 11) from 192.168.0.5 (192.168.0.5) Origin IGP, metric 0, localpref 100, valid, internal, multipath 65001 192.168.0.4 (metric 11) from 192.168.0.4 (192.168.0.4) Origin IGP, metric 0, localpref 100, valid, internal, multipath, best R6#show ip route bgp 100.0.0.0/24 is subnetted, 2 subnets B 100.1.1.0 [200/0] via 192.168.0.5, 00:01:37 [200/0] via 192.168.0.4, 01:16:42
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プレフィックスの交換