概要

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ルートは無効になってしまいます。

図 MPLS-VPNでの拠点間の接続 その1
図 MPLS-VPNでの拠点間の接続 その1

そこで、PEルータでneighbor as-overrideコマンドを利用します。以下の図で、PE2でCE2に対してneighbor as-overrideコマンドを設定します。BGPルート192.168.1.0/24に付加されているAS_PATHアトリビュートは「65100」です。PE2ルータは、これを自AS番号「65001」に書き換えます。そして、EBGPネイバーであるCE2ルータへアドバタイズするので、AS_PATHに自AS番号が付加(プリペンド)されて「65001 65001」となります。

AS_PATHの中には自AS番号が含まれていないので、CE2ルータはBGPルート192.168.1.0/24を正常に受信できます。

 図 MPLS-VPNでの拠点間の接続 その2
図 MPLS-VPNでの拠点間の接続 その2

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のプリペンドの前に処理されます。

確認コマンド

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コマンドの設定を考えます。

図  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 AS_PATHによるループ防止の確認

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

図 AS_PATHによるループ防止
図 AS_PATHによるループ防止

Step2:R1 neighbor as-overrideコマンドの設定

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

図 neighbor as-override
図 neighbor as-override

Step4:R1 neighbor as-overrideコマンドの設定

R2に対しても同様にneighbor as-overrideコマンドを設定します。

R2 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の仕組み