BGP (Border Gateway Protocol) は、インターネットや大規模ネットワークの経路制御に不可欠なプロトコルです。本記事では、AS-PATH属性の仕組みを解説し、Ciscoルータを使った具体的な設定例と動作検証を通じて、どのように経路制御を行うかを学びます解説します。
AS-PATH属性とは
AS-PATH属性は、BGP (Border Gateway Protocol) における重要な属性の一つで、ある宛先プレフィックスに到達するために経由するAS番号のリストを示します。この属性により、以下のような動作が実現されます。
- ルート選択基準: AS-PATHが短い経路が優先されます。これは、短い経路がより最適であるとみなされるためです。
- 経路操作: 管理者がAS番号を追加(プリペンド)することで、意図的に経路を長く見せることができます。この方法を用いると、ある経路を他の経路よりも劣後させることが可能です。
例えば、ある宛先プレフィックス 192.0.2.0/24 に到達するためのAS-PATHが 100 200 300 の場合、ルータはAS300からAS200、次にAS100を経由して到達することを意味します。
検証の概要
今回の検証では、以下の環境を構築してAS-PATHの動作を確認します。
- プレフィックス 23.23.23.23/32 をR2とR3のループバックインターフェースに設定し、R6にアドバタイズします。
- 初期状態では、AS-PATHが同一であるため、R6はルータIDが小さいR2経由の経路をベストパスとして選択します。
- 次に、R2のAS-PATHをプリペンドして、R3からの経路が優先されるように操作します。
構成と設定
それぞれのルータで、ループバックインターフェースに 23.23.23.23/32 を設定します。
R2の設定
R2(config)# int loopback 23 R2(config-if)# ip add 23.23.23.23 255.255.255.255 ! R2(config)# router bgp 23 R2(config-router)# bgp router-id 2.2.2.2 R2(config-router)# neighbor 192.168.26.6 remote-as 6 R2(config-router)# network 23.23.23.23 mask 255.255.255.255
R3の設定
R3(config)# int loopback 23 R3(config-if)# ip add 23.23.23.23 255.255.255.255 ! R3(config)# router bgp 23 R3(config-router)# bgp router-id 3.3.3.3 R3(config-router)# neighbor 192.168.36.6 remote-as 6 R3(config-router)# network 23.23.23.23 mask 255.255.255.255
R6の設定
R6でR2とR3をBGPピアとして設定します。
R6(config)# router bgp 6 R6(config-router)# neighbor 192.168.26.2 remote-as 23 R6(config-router)# neighbor 192.168.36.3 remote-as 23
動作確認
R6のBGPテーブルを確認し、AS-PATHとベストパスの動作を確認します。
R6でのBGPテーブル
AS-PATHが同一(23)のため、ルータIDが小さいR2 (2.2.2.2) がベストパスとして選択されています。
R6# show ip bgp BGP table version is 2, local router ID is 6.6.6.6 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path * 23.23.23.23/32 192.168.36.3 0 0 23 i *> 192.168.26.2 0 0 23 i
R6# show ip bgp 23.23.23.23 BGP routing table entry for 23.23.23.23/32, version 2 Paths: (2 available, best #2, table default) Advertised to update-groups: 1 23 192.168.36.3 from 192.168.36.3 (3.3.3.3) Origin IGP, metric 0, localpref 100, valid, external rx pathid: 0, tx pathid: 0 23 192.168.26.2 from 192.168.26.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, external, best rx pathid: 0, tx pathid: 0x0
AS-PATHプリペンドの設定
次に、R2でAS-PATHをプリペンドし、意図的にR3の経路が選択されるように設定を変更します。
R2での設定
R2(config)# route-map ASPREPEND permit 10 R2(config-route-map)# set as-path prepend 1 2 3 4 5 R2(config)# router bgp 23 R2(config-router)# neighbor 192.168.26.6 route-map ASPREPEND out
設定後、BGPプロセスをクリアします。
R2# clear ip bgp *
プリペンド後のR6でのBGPテーブル
R2の経路にはAS 1 2 3 4 5 が追加され、AS-PATHが長くなりました。R3からの経路がベストパスとして選択されるようになっています。
R6# show ip bgp 23.23.23.23 BGP routing table entry for 23.23.23.23/32, version 3 Paths: (2 available, best #1, table default) Advertised to update-groups: 1 23 192.168.36.3 from 192.168.36.3 (3.3.3.3) Origin IGP, metric 0, localpref 100, valid, external, best rx pathid: 0, tx pathid: 0x0 23 1 2 3 4 5 192.168.26.2 from 192.168.26.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, external rx pathid: 0, tx pathid: 0
まとめ
今回の検証では、AS-PATH属性を利用して経路選択に影響を与える方法を確認しました。BGPを用いたネットワーク設計では、AS-PATHプリペンドを活用することで、経路制御を柔軟に行うことができます。
その他 BGP関連記事は >> ルーティングプロトコル(BGP)まとめ << より参照できます。
コメント