Details
-
Bug
-
Status: Resolved
-
Resolution: Done
-
Bugzilla Migration
-
None
-
Operating System: All
Platform: All
-
4835
Description
Routes not withdrawn when both eBGP peers (they previously announced these routes) are disconnected
https://tools.ietf.org/html/rfc4271#section-3.1
3.1. Routes: Advertisement and Storage
...
BGP provides mechanisms by which a BGP speaker can inform its peers
that a previously advertised route is no longer available for use.
There are three methods by which a given BGP speaker can indicate
that a route has been withdrawn from service:
...
c) the BGP speaker connection can be closed, which implicitly
removes all routes the pair of speakers had advertised to each
other from service.
example-ipv4-topology
=====================
eBGP-1 connected
----------------
{"topology":[{"topology-id":"example-ipv4-topology","topology-types":{},"node":[{"node-id":"1.1.1.1","l3-unicast-igp-topology:igp-node-attributes":{"prefix":[
{"prefix":"8.0.0.0/28"},
{"prefix":"8.0.0.16/28"}]}}],"server-provided":true}]}
both eBGPs connected
--------------------
{"topology":[{"topology-id":"example-ipv4-topology","topology-types":{},"node":[{"node-id":"1.1.1.1","l3-unicast-igp-topology:igp-node-attributes":{"prefix":[
{"prefix":"8.0.0.0/28"},
{"prefix":"8.0.0.16/28"}]}}],"server-provided":true}]}
eBGP-1 disconnected
-------------------
{"topology":[{"topology-id":"example-ipv4-topology","topology-types":{},"node":[{"node-id":"2.2.2.2","l3-unicast-igp-topology:igp-node-attributes":{"prefix":[
{"prefix":"8.0.0.0/28"},
{"prefix":"8.0.0.16/28"}]}}],"server-provided":true}]}
example-ipv4-topology stil contains routes after both eBGP peers disconnection ...
----------------------------------------------------------------------------------
20151223 11:06:42.317 / 20151223 11:06:42.318 / 00:00:00.001
11:06:42.318 FAIL '{"topology":[{"topology-id":"example-ipv4-topology","topology-types":{},"node":[{"node-id":"2.2.2.2","l3-unicast-igp-topology:igp-node-attributes":{"prefix":
[
{"prefix":"8.0.0.0/28"},
{"prefix":"8.0.0.16/28"}]}}],"server-provided":true}]}' does not contain '{"topology":[{"topology-id":"example-ipv4-topology","server-provided":true,"topology-types":{}}]}'
==========================================================
the BGP peer log does not contain any prefix withdrawals:
...
2015-12-23 12:20:38,223 DEBUG: UPDATE message received: 0xffffffffffffffffffffffffffffffff0035020000001e40010100400206020100008000800e0e0001010402020202001c08000000
2015-12-23 12:20:38,223 DEBUG: Decoding update message:
2015-12-23 12:20:38,223 DEBUG: Message header marker: 0xffffffffffffffffffffffffffffffff
2015-12-23 12:20:38,223 DEBUG: Message lenght: 0x0035 (53)
2015-12-23 12:20:38,224 DEBUG: Message type: 0x02 (update)
2015-12-23 12:20:38,224 DEBUG: Withdrawn routes lenght: 0x0000 (0)
2015-12-23 12:20:38,224 DEBUG: Withdrawn routes: 0x
2015-12-23 12:20:38,224 DEBUG: Withdrawn routes prefix list: []
2015-12-23 12:20:38,224 DEBUG: Total path attribute lenght: 0x001e (30)
2015-12-23 12:20:38,224 DEBUG: Path attributes: 0x40010100400206020100008000800e0e0001010402020202001c08000000
2015-12-23 12:20:38,224 DEBUG: Attribute type=1 (ORIGIN, flags:0x40)
2015-12-23 12:20:38,224 DEBUG: Attribute value=0x00
2015-12-23 12:20:38,224 DEBUG: Attribute type=2 (AS_PATH, flags:0x40)
2015-12-23 12:20:38,225 DEBUG: Attribute value=0x020100008000
2015-12-23 12:20:38,225 DEBUG: Attribute type=14 (MP_REACH_NLRI, flags:0x80)
2015-12-23 12:20:38,225 DEBUG: Attribute value=0x0001010402020202001c08000000
2015-12-23 12:20:38,225 DE Address Family Identifier=0x0001
2015-12-23 12:20:38,225 DE Subsequent Address Family Identifier=0x01
2015-12-23 12:20:38,225 DE Length of Next Hop Network Address=4 (0x04)
2015-12-23 12:20:38,225 DE Network Address of Next Hop=2.2.2.2 (0x02020202)
2015-12-23 12:20:38,225 DE Reserved=0x00
2015-12-23 12:20:38,225 DE Network Layer Reachability Information=0x1c08000000
2015-12-23 12:20:38,226 DE NLRI prefix list: ['8.0.0.0/28']
2015-12-23 12:20:38,226 DE nlri_prefix_received: 8.0.0.0/28
2015-12-23 12:20:38,226 DEBUG: Calculated NLRI length: 0
2015-12-23 12:20:38,226 DEBUG: NLRI: 0x
2015-12-23 12:20:38,226 DEBUG: NLRI prefix list: []
2015-12-23 12:20:38,226 INFO: total_received_update_message_counter: 6
2015-12-23 12:20:38,226 INFO: total_received_nlri_prefix_counter: 6
2015-12-23 12:20:38,226 INFO: total_received_withdrawn_prefix_counter: 0
2015-12-23 12:20:48,237 INFO: ... idle for 10.010s
2015-12-23 12:20:48,237 INFO: total_rx_idle_time_counter: 19.797s
2015-12-23 12:20:48,237 INFO: total_received_update_message_counter: 6
2015-12-23 12:20:48,237 INFO: total_received_nlri_prefix_counter: 6
2015-12-23 12:20:48,237 INFO: total_received_withdrawn_prefix_counter: 0
Traceback (most recent call last):
File "play.py", line 1632, in <module>
state.perform_one_loop_iteration()
File "play.py", line 1574, in perform_one_loop_iteration
self.reader.wait_for_read()
File "play.py", line 1406, in wait_for_read
select.select([self.socket], [], [self.socket], wait_timedelta)
==========================================================
see the attached karaf.log as well - from the ROBOT MESSAGE: Starting test Disconnect_eBGP_Peer2