目次
概要
neighbor as-overrideコマンドは、特定のネイバーへアドバタイズするBGPルートのAS_PATHアトリビュートを書き換えます。neighbor as-overrideコマンドについて解説します。
neighbor as-overrideコマンドとは
neighbor as-overrideコマンドは、BGPルートのAS_PATHアトリビュートを書き換えます。特定のネイバーへBGPルートをアドバタイズするときに、AS_PATHの先頭のAS番号を自AS番号に書き換えます。
neighbor as-overrideコマンドを利用する主なケースは、MPLS-VPNで拠点間を接続しているときです。MPLS-VPNで拠点間を接続して、PE-CE間でBGPを利用するとき、CEルータのAS番号は同じにすることがあります。すると、AS_PATHによるループ防止によってBGPルートは無効になってしまいます。
そこで、PEルータでneighbor as-overrideコマンドを利用します。以下の図で、PE2でCE2に対してneighbor as-overrideコマンドを設定します。BGPルート192.168.1.0/24に付加されているAS_PATHアトリビュートは「65100」です。PE2ルータは、これを自AS番号「65001」に書き換えます。そして、CE2ルータはEBGPネイバーなので、BGPルート192.168.1.0/24のAS_PATHにPE2ルータのAS番号が付加(プリペンド)されて「65001 65001」となります。
AS_PATHの中には自AS番号が含まれていないので、CE2ルータはBGPルート192.168.1.0/24を正常に受信できます。
関連記事
neighbor as-overrideの代わりに、neighbor allowas-inを設定することもできます。neighbor allowas-inコマンドについて、以下の記事で解説しています。
neighbor as-overrideコマンドと確認コマンド
コマンドフォーマット
neighbor as-overrideコマンドは、BGPのIPv4 VRFのコンフィグレーションモードで設定します。BGPのコンフィグレーションモード直下では設定できません。あらかじめVRFの設定も必要です。
neighbor as-override
(config)#router bgp <AS>
(config-router)#address-family ipv4 vrf <vrf-name>
(config-router-af)#neighbor <ip-address> as-override
<AS> : AS番号
<vrf-name> : VRF名
<ip-address> : ネイバーのIPアドレス
指定したネイバーへBGPルートをアドバタイズするときに、AS_PATHの先頭AS番号を自ASに書き換えます。EBGPネイバーへBGPルートをアドバタイズするときのAS_PATHのプリペンドの前に処理されます。
関連記事
VRFについて、以下の記事も合わせてご覧ください。
確認コマンド
show bgp vpnv4 unicast vrf <vrf-name> neighborコマンドでネイバーの詳細を見ると、neighbor as-overrideコマンドが設定されていることを確認できます。
show bgp vpnv4 unicast vrf neighbor
R1#show bgp vpnv4 unicast vrf AAA neighbors BGP neighbor is 10.1.2.2, vrf AAA, remote AS 65100, external link BGP version 4, remote router ID 2.2.2.2 BGP state = Established, up for 00:42:45 Last read 00:00:44, last write 00:00:44, 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: 4 2 Keepalives: 48 48 Route Refresh: 0 0 Total: 54 52 Default minimum time between advertisement runs is 0 seconds For address family: VPNv4 Unicast Translates address family IPv4 Unicast for VRF AAA BGP table version 9, neighbor version 9/0 Output queue size: 0 Index 1, Offset 0, Mask 0x2 1 update-group member Overrides the neighbor AS with my AS before sending updates ~省略~
neighbor as-overrideコマンドの設定例
ネットワーク構成
以下のネットワーク構成で、neighbor as-overrideコマンドの設定を考えます。
初期設定
各ルータの初期設定の抜粋です。R1ではVRF「AAA」を定義しています。R1-R2間およびR1-R3間でBGPネイバーを確立しています。R2は192.168.1.0/24をBGPでアドバタイズしています。R3は192.168.3.0/24をBGPでアドバタイズしています。
R1 初期設定抜粋(Click)
hostname R1 ! ip vrf AAA rd 65001:1 route-target export 65001:1 route-target import 65001:1 ! interface FastEthernet0/0 ip vrf forwarding AAA ip address 10.1.2.1 255.255.255.0 ! interface FastEthernet0/1 ip vrf forwarding AAA ip address 10.1.3.1 255.255.255.0 ! router bgp 65001 no synchronization bgp router-id 1.1.1.1 bgp log-neighbor-changes no auto-summary ! address-family ipv4 vrf AAA neighbor 10.1.2.2 remote-as 65100 neighbor 10.1.2.2 activate neighbor 10.1.2.2 as-override neighbor 10.1.3.3 remote-as 65100 neighbor 10.1.3.3 activate neighbor 10.1.3.3 as-override no synchronization exit-address-family
R2 初期設定抜粋(Click)
hostname R2 ! interface Loopback0 ip address 192.168.2.2 255.255.255.0 ! interface FastEthernet0/0 ip address 10.1.2.2 255.255.255.0 ! router bgp 65100 no synchronization bgp router-id 2.2.2.2 bgp log-neighbor-changes network 192.168.2.0 neighbor 10.1.2.1 remote-as 65001 no auto-summary
R3 初期設定抜粋(Click)
hostname R3 ! interface Loopback0 ip address 192.168.3.3 255.255.255.0 ! interface FastEthernet0/0 ip address 10.1.3.3 255.255.255.0 ! router bgp 65100 no synchronization bgp router-id 3.3.3.3 bgp log-neighbor-changes network 192.168.3.0 neighbor 10.1.3.1 remote-as 65001 no auto-summary
設定と確認
Step1:AS_PATHによるループ防止の確認
AS_PATHアトリビュートに自AS番号が含まれていると、ループとみなされていることを確認します。R3でBGP UPDATEメッセージのデバッグを有効にして、BGPルートを再度受信します。
R3 AS_PATHによるループ防止の確認
R3#debug ip bgp updates BGP updates debugging is on for address family: IPv4 Unicast R3#clear ip bgp * in R3# *Mar 1 00:25:46.339: BGP(0): 10.1.3.1 rcv UPDATE w/ attr: nexthop 10.1.3.1, origin i, originator 0.0.0.0, path 65001 65100, community , extended community *Mar 1 00:25:46.343: BGP(0): 10.1.3.1 rcv UPDATE about 192.168.3.0/24 -- DENIED due to: AS-PATH contains our own AS; *Mar 1 00:25:46.347: BGP(0): 10.1.3.1 rcv UPDATE w/ attr: nexthop 10.1.3.1, origin i, originator 0.0.0.0, path 65001 65100, community , extended community *Mar 1 00:25:46.351: BGP(0): 10.1.3.1 rcv UPDATE about 192.168.2.0/24 -- DENIED due to: AS-PATH contains our own AS; R3#undebug all All possible debugging has been turned off
ループとみなされた192.168.2.0/24のBGPルートは受信せずにBGPテーブルにも入っていません。
R3 show ip bgp
R3#show ip bgp BGP table version is 4, local router ID is 3.3.3.3 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 *> 192.168.3.0 0.0.0.0 0 32768 i
Step2:R1 neighbor as-overrideコマンドの設定 for R3
R1でネイバーR3に対してneighbor as-overrideコマンドを設定します。R1からR3へBGPルートをアドバタイズするときに先頭のAS番号「65100」を自AS番号「65001」に書き換えます。
R1 neighbor as-override
router bgp 65001 address-family ipv4 vrf AAA neighbor 10.1.3.3 as-override
Step3:R3 BGPルートの確認
R3は、192.168.2.0/24のBGPルートを受信してベストパスにします。そして、ルーティングテーブルに登録しています。
R3 BGPルートの確認
R3#show ip bgp BGP table version is 5, local router ID is 3.3.3.3 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 *> 192.168.2.0 10.1.3.1 0 65001 65001 i *> 192.168.3.0 0.0.0.0 0 32768 i R3#show ip route ~省略~ Gateway of last resort is not set 10.0.0.0/24 is subnetted, 1 subnets C 10.1.3.0 is directly connected, FastEthernet0/0 B 192.168.2.0/24 [20/0] via 10.1.3.1, 00:01:09 C 192.168.3.0/24 is directly connected, Loopback0
Step4:R1 neighbor as-overrideコマンドの設定 for R2
R1で、R2に対しても同様にneighbor as-overrideコマンドを設定します。
R1 neighbor as-override
router bgp 65001 address-family ipv4 vrf AAA neighbor 10.1.2.2 as-override
Step5:通信確認
ここまでの設定によって、同じAS番号の離れたAS間のネットワークで通信できます。R2/R3のBGPテーブルとルーティングテーブルを確認します。
R2/R3 BGPテーブル ルーティングテーブル
R2#show ip bgp BGP table version is 11, 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 *> 192.168.2.0 0.0.0.0 0 32768 i *> 192.168.3.0 10.1.2.1 0 65001 65001 i R2#show ip route bgp B 192.168.3.0/24 [20/0] via 10.1.2.1, 00:00:22
R3#show ip bgp BGP table version is 7, local router ID is 3.3.3.3 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 *> 192.168.2.0 10.1.3.1 0 65001 65001 i *> 192.168.3.0 0.0.0.0 0 32768 i R3#show ip route bgp B 192.168.2.0/24 [20/0] via 10.1.3.1, 00:00:48
そして、192.168.2.0/24と192.168.3.0/24間で通信できることを確認します。R2からR3へPingします。
R2からR3へPing
R2#ping 192.168.3.3 source 192.168.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.3.3, timeout is 2 seconds: Packet sent with a source address of 192.168.2.2 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/18/20 ms
まとめ
ポイント
- neighbor as-overrideコマンドは、特定のネイバーへBGPルートをアドバタイズするときに、AS_PATHの先頭のAS番号を自AS番号に書き換えます。
- BGPのVRFアドレスファミリーのコンフィグレーションモードで次のコマンドを入力します。
- (config-router-af)#neighbor <ip-address> as-override
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プレフィックスの交換