BGP next-hop-unchanged


設定

物理:192.168.123.0/24
Loopback:x.x.x.x/32
画像赤線がeBGPピア

show ip bgp

iosv-1#sh ip bgp | b validation
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   1.1.1.1/32       0.0.0.0                  0         32768 i
 *>   2.2.2.2/32       192.168.123.2            0             0 2 i
 *>   3.3.3.3/32       192.168.123.3            0             0 3 i

iosv-2#sh ip bgp | b validation
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   1.1.1.1/32       192.168.123.1            0             0 1 i
 *>   2.2.2.2/32       0.0.0.0                  0         32768 i
 *>   3.3.3.3/32       192.168.123.3                          0 1 3 i

iosv-3#sh ip bgp | b validation
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   1.1.1.1/32       192.168.123.1            0             0 1 i
 *>   2.2.2.2/32       192.168.123.2                          0 1 2 i
 *>   3.3.3.3/32       0.0.0.0                  0         32768 i

この中で、1st Party NEXT_HOPっていうのがスライドのP35からあるんだけど、全然意識したことない動作だったから気になって発表者の土屋さんに聞いたところ「Ciscoはnext-hop-unchangedをしなくても勝手に書き換えるよ」って。

1st party NEXT_HOPの検証

記事に書いてある通り、unchangedを設定しなくてもネクストホップが最適化されている。(JANOG42のスライドではiosv-2,3間のトラフィックは始めiosv-1を流れているが、next-hopをunchangedすることで直接やりとりするようになっている。)

問題は、3次情報なこと。
CCOでそういうことが書かれてある箇所を探してるんだけど見つからない。

あとそもそもroute-mapのsetにunchangedがない他、シンプルなeBGPピアにはnext-hop-unchangedは設定できない(下記参照)

iosv-2(config-router)#nei 3.3.3.3 next-hop-unchanged
%BGP: Can propagate the nexthop only to multi-hop EBGP neighbor or iBGP VRF CE lite

iosv-1(config)#route-map MAP permit 10
iosv-1(config-route-map)#set ip next-hop ?
  A.B.C.D              IP address of next hop
  dynamic              application dynamically sets next hop
  encapsulate          Encapsulation profile for VPN nexthop
  peer-address         Use peer address (for BGP only)
  recursive            Recursive next-hop
  self                 Use self address (for BGP only)
  verify-availability  Verify if nexthop is reachable
Chapter: BGP Next Hop Unchanged

neighbor next-hop-unchanged

eBGP multihopとmultihop eBGP別物だと思ってたけど全然そんなことなかった。ebgp-multihop設定したあとであればunchangedは入る。

iosv-1(config)#router bgp 1
iosv-1(config-router)#nei 192.168.123.3 ebgp-multi
iosv-1(config-router)#nei 192.168.123.2 ebgp-multi
iosv-1(config-router)#nei 192.168.123.2 next-hop-unchanged
iosv-1(config-router)#nei 192.168.123.3 next-hop-unchanged

因みにBGPテーブルは変化なし。
そらそう、だってunchanged入れてなくてもネクストホップが最適になってたんだもの。

iosv-2#sh ip bgp | b validation
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   1.1.1.1/32       192.168.123.1            0             0 1 i
 *>   2.2.2.2/32       0.0.0.0                  0         32768 i
 *>   3.3.3.3/32       192.168.123.3                          0 1 3 i

iosv-3#sh ip bgp | b validation 
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   1.1.1.1/32       192.168.123.1            0             0 1 i
 *>   2.2.2.2/32       192.168.123.2                          0 1 2 i
 *>   3.3.3.3/32       0.0.0.0                  0         32768 i

set ip next-hop unchanged

route-mapへのunchangedの設定は16.3.1から対応とのこと。
最新CML2.6.1のIOSバージョンは15.9なので設定不可。

iosv-3#show version
Cisco IOS Software, IOSv Software (VIOS-ADVENTERPRISEK9-M), Version 15.9(3)M6, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2022 by Cisco Systems, Inc.
Compiled Mon 08-Aug-22 15:22 by mcpre

因みに

Another common use of this feature is a VPNv4 inter-AS Option C configuration, as defined in RFC4364, Section 10.

Chapter: BGP Next Hop Unchanged

CCOにこう書いてるけど、EIの範囲じゃないので一旦飛ばす。EIとって、SPの勉強始めたら戻ってこよう。

参考

Chapter: BGP Next Hop Unchanged

1st party NEXT_HOPの検証

BGP NEXT_HOP Attribute(JANOG42)


いいなと思ったら応援しよう!