advertise-map の条件

advertise-mapは生成する集約経路に対して、任意の個別経路のattributeを引き継がせることができます。

 

 

R2とR3で/16の集約経路を生成してR1に広報しています。

R2#sh ip bgp nei 10.1.2.1 adv | b Net
     Network          Next Hop            Metric LocPrf Weight Path
 *>  10.2.0.0/16      0.0.0.0                       100  32768 ?

Total number of prefixes 1

R3#sh ip bgp nei 10.1.3.1 adv | b Net
Network Next Hop Metric LocPrf Weight Path
*> 10.3.0.0/16 0.0.0.0 100 32768 i

Total number of prefixes 1
R3#

 

R1はシンプルに以下設定です。

router bgp 65100
 bgp router-id 10.0.0.1
 bgp log-neighbor-changes
 timers bgp 10 30
 neighbor 10.1.2.2 remote-as 65200
 neighbor 10.1.3.3 remote-as 65300
 neighbor 10.1.4.4 remote-as 65400

 

R1とR4での見え方

R1#sh ip bgp | b Net
     Network          Next Hop            Metric LocPrf Weight Path
 *>  10.2.0.0/16      10.1.2.2                 0             0 65200 ?
 *>  10.3.0.0/16      10.1.3.3                 0             0 65300 i
R1#
R4#sh ip bgp | b Net
Network Next Hop Metric LocPrf Weight Path
*> 10.2.0.0/16 10.1.4.1 0 65100 65200 ?
*> 10.3.0.0/16 10.1.4.1 0 65100 65300 i
R4#

 

集約経路(/8)のみR4に広報します。

R1(config)#router bgp 65100
R1(config-router)#agg 10.0.0.0 255.0.0.0 sum

R4#sh ip bgp | b Net
Network Next Hop Metric LocPrf Weight Path
*> 10.0.0.0 10.1.4.1 0 0 65100 i

 

as-setを付けてみます。

R1(config-router)#agg 10.0.0.0 255.0.0.0 sum as-set
R1(config-router)#do clear ip bgp * soft

R4#sh ip bgp | b Net
Network Next Hop Metric LocPrf Weight Path
*> 10.0.0.0 10.1.4.1 0 0 65100 {65200,65300} ?

 

次にadvertise-mapでR3からのattributeを引き継がせ、R2の情報を消します。

R1(config)#access-list 1 permit 10.3.0.0 0.0.0.0
R1(config)#
R1(config)#route-map ADV-MAP permit 10
R1(config-route-map)#match ip add 1
R1(config-route-map)#
R1(config-route-map)#router bgp 65100
R1(config-router)#agg 10.0.0.0 255.0.0.0 sum as-set adv ADV-MAP
R1(config-router)#do clear ip bgp * soft
R1(config-router)#

R4#sh ip bgp | b Net
Network Next Hop Metric LocPrf Weight Path
*> 10.0.0.0 10.1.4.1 0 0 65100 65300 i

 

ここでR3からの広報を止めてみます。R1には/8の元になる経路としてはR2からの/16がある状態です。

R3(config)#int fa0/0
R3(config-if)#shut

R1#sh ip bgp | b Net
Network Next Hop Metric LocPrf Weight Path
s> 10.2.0.0/16 10.1.2.2 0 0 65200 ?
R1#

 

上記で既に分かってしまいましたがR4は/8経路を受け取っていません。R1が広報していないことが分かります。

R1#sh ip bgp nei 10.1.4.4 adv
Total number of prefixes 0
R1#

R4#sh ip bgp | b Net
R4#
R4#sh ip bgp 10.0.0.0
% Network not in table
R4#

 

advertise-mapを使うことで任意の経路のattributeを引き継がせることができますが、その経路を受信しなくなると集約経路自体を広報しなくなるようです。

この時のdebugを見ると/8は無効ルートと扱われています。

R1#
R1#debug ip bgp event
BGP events debugging is on
R1#debug ip bgp update
BGP updates debugging is on for address family: IPv4 Unicast
R1#
*Apr  1 15:02:26.227: BGP: 10.1.3.3 reset due to BGP Notification sent
*Apr  1 15:02:26.227: %BGP-3-NOTIFICATION: sent to neighbor 10.1.3.3 4/0 (hold time expired) 0 bytes
*Apr  1 15:02:26.235: %BGP-5-NBR_RESET: Neighbor 10.1.3.3 reset (BGP Notification sent)
*Apr  1 15:02:26.239: BGP: tbl IPv4 Unicast:base Service reset requests
*Apr  1 15:02:26.239: BGP(0): no valid path for 10.3.0.0/16
*Apr  1 15:02:26.243: BGP: tbl IPv4 Multicast:base Service reset requests
*Apr  1 15:02:26.243: BGP: tbl MVPNv4 Unicast:base Service reset requests
*Apr  1 15:02:26.247: %BGP-5-ADJCHANGE: neighbor 10.1.3.3 Down BGP Notification sent
*Apr  1 15:02:26.247: %BGP_SESSION-5-ADJCHANGE: neighbor 10.1.3.3 IPv4 Unicast topology base removed from session  BGP Notification sent
R1#
*Apr  1 15:02:26.251: BGP(0): no valid path for 10.0.0.0/8
*Apr  1 15:02:26.255: BGP(0): removed aggregate route for 10.0.0.0/8
*Apr  1 15:02:26.255: BGP: topo global:IPv4 Unicast:base Remove_fwdroute for 10.0.0.0/8
*Apr  1 15:02:26.259: BGP: topo global:IPv4 Unicast:base Remove_fwdroute for 10.3.0.0/16
*Apr  1 15:02:26.263: BGP(0): (base) 10.1.2.2 send unreachable (format) 10.0.0.0/8
R1#

コメント