Disable-Capability-Negotiation

This scenario demonstrates how to configure the disable-capability-negotiation option for a BGP neighbor. When enabled, the router suppresses sending Capability Negotiation as an OPEN message optional parameter. This is used for interoperability with legacy BGP implementations that do not support capability negotiation. The test verifies that capabilities like Graceful Restart are NOT advertised when this option is enabled.

Test iBGP - Neighbor disable-capability-negotiation suppresses capabilities

Description

Test to verify that disable-capability-negotiation suppresses sending BGP capabilities. When enabled, capabilities like Graceful Restart and Route Refresh should NOT be advertised. The session should still establish and routes should be exchanged, but in basic IPv4 unicast mode.

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces dummy dum0 address 1.1.1.1/24
set interfaces ethernet eth0 address 10.10.0.100/24
set protocols bgp 20 neighbor peer disable-capability-negotiation
set protocols bgp 20 neighbor peer remote-address 10.10.0.200
set protocols bgp 20 neighbor peer remote-as 20
set protocols bgp 20 redistribute connected
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 2: Set the following configuration in DUT1 :

set interfaces dummy dum0 address 1.1.1.2/24
set interfaces ethernet eth0 address 10.10.0.200/24
set protocols bgp 20 neighbor peer remote-address 10.10.0.100
set protocols bgp 20 neighbor peer remote-as 20
set protocols bgp 20 redistribute connected
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Run the command protocols bgp show ip summary on DUT0 and check whether the output contains the following tokens:

Established
Show output
IPv4 Unicast Summary:
BGP router identifier 10.10.0.100, local AS number 20 VRF default vrf-id 0
BGP table version 3
RIB entries 3, using 456 bytes of memory
Peers 1, using 24 KiB of memory

Neighbor        LocalAddr       V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down        State   PfxRcd   PfxSnt Desc
10.10.0.200     10.10.0.100     4         20         5         6        3    0    0 00:00:04  Established        2        2 N/A

Total number of neighbors 1

Attention

Verify iBGP session establishes with disable-capability-negotiation.

Step 4: Run the command protocols bgp show ip summary on DUT0 and check whether the output matches the following regular expressions:

10.10.0.200.*Established
Show output
IPv4 Unicast Summary:
BGP router identifier 10.10.0.100, local AS number 20 VRF default vrf-id 0
BGP table version 3
RIB entries 3, using 456 bytes of memory
Peers 1, using 24 KiB of memory

Neighbor        LocalAddr       V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down        State   PfxRcd   PfxSnt Desc
10.10.0.200     10.10.0.100     4         20         5         6        3    0    0 00:00:04  Established        2        2 N/A

Total number of neighbors 1

Attention

Verify that routes are exchanged despite disabled capability negotiation.

Step 5: Run the command protocols bgp show ip on DUT0 and check whether the output matches the following regular expressions:

1.1.1.0/24
Show output
BGP table version is 3, local router ID is 10.10.0.100, vrf id 0
Default local pref 100, local AS 20
Status codes:  s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
*>  1.1.1.0/24       0.0.0.0                  0         32768 ?
* i                  10.10.0.200              0    100      0 ?
*>  10.10.0.0/24     0.0.0.0                  0         32768 ?
* i                  10.10.0.200              0    100      0 ?

Displayed 2 routes and 4 total paths

Step 6: Run the command protocols bgp show ip on DUT1 and check whether the output matches the following regular expressions:

1.1.1.0/24
Show output
BGP table version is 3, local router ID is 10.10.0.200, vrf id 0
Default local pref 100, local AS 20
Status codes:  s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
*>  1.1.1.0/24       0.0.0.0                  0         32768 ?
* i                  10.10.0.100              0    100      0 ?
*>  10.10.0.0/24     0.0.0.0                  0         32768 ?
* i                  10.10.0.100              0    100      0 ?

Displayed 2 routes and 4 total paths

Attention

Verify that Graceful Restart capability is NOT advertised by DUT0 (no “advertised” in output).

Step 7: Run the command protocols bgp show ip neighbors on DUT0 and check whether the output matches the following regular expressions:

Graceful Restart Capability: received
Show output
BGP neighbor is 10.10.0.200, remote AS 20, local AS 20, internal link
Local Role: undefined
Remote Role: undefined
Hostname: osdx
BGP version 4, remote router ID 10.10.0.200, local router ID 10.10.0.100
BGP state = Established, up for 00:00:05
Last read 00:00:04, Last write 00:00:04
Hold time is 90 seconds, keepalive interval is 30 seconds
Configured hold time is 90 seconds, keepalive interval is 30 seconds
Configured tcp-mss is 0, synced tcp-mss is 1448
Configured conditional advertisements interval is 60 seconds
Neighbor capabilities:
4 Byte AS: received
AddPath:
IPv4 Unicast: RX received
Paths-Limit:
IPv4 Unicast: received (0)
Long-lived Graceful Restart: received
Address families by peer:
Route refresh: received
Enhanced Route Refresh: received
Address Family IPv4 Unicast: received
Hostname Capability: not advertised received (name: osdx,domain name: n/a)
Version Capability: not advertised not received
Link-Local Next Hop Capability: not advertised not received
Graceful Restart Capability: received
Remote Restart timer is 120 seconds
Address families by peer:
Graceful Restart Capability: received
Remote Restart timer is 120 seconds
Peer has restarted (R-bit is set)
Peer has restarted (N-bit is set)
Address families by peer:
none
Graceful restart information:
End-of-RIB send: IPv4 Unicast
End-of-RIB received: IPv4 Unicast
Local GR Mode: Helper*
Remote GR Mode: NotApplicable

R bit: False
N bit: False
Timers:
Configured Restart Time(sec): 120
Received Restart Time(sec): 120
Configured LLGR Stale Path Time(sec): 0
Message statistics:
Inq depth is 0
Outq depth is 0
Sent       Rcvd
Opens:                  2          1
Notifications:          0          0
Updates:                3          3
Keepalives:             1          1
Route Refresh:          0          0
Capability:             0          0
Total:                  6          5

Prefix statistics:
Inbound filtered: 0
AS-PATH loop: 0
Originator loop: 0
Cluster loop: 0
Invalid next-hop: 0
Withdrawn: 0
Attributes discarded: 0

Minimum time between advertisement runs is 0 seconds
Update delay timer is 0 seconds (remaining: 0)

For address family: IPv4 Unicast
Update group 1, subgroup 1
Packet Queue length 0
Community attribute sent to this neighbor(all)
2 accepted, 2 sent prefixes

Connections established 1; dropped 0
Last reset 00:00:08,  No path to specified Neighbor (n/a)
Internal BGP neighbor may be up to 255 hops away.
Local host: 10.10.0.100, Local port: 179
Foreign host: 10.10.0.200, Foreign port: 39398
Nexthop: 10.10.0.100
Nexthop global: fe80::dcad:beff:feef:6c00
Nexthop local: fe80::dcad:beff:feef:6c00
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 30
Estimated round trip time: 0 ms
Read thread: on  Write thread: on  FD used: 29

Test iBGP - Normal session advertises capabilities

Description

Test to verify that a normal BGP session (without disable-capability-negotiation) advertises capabilities like Graceful Restart. This serves as a baseline comparison to confirm that disable-capability-negotiation has an observable effect.

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces dummy dum0 address 1.1.1.1/24
set interfaces ethernet eth0 address 10.10.0.100/24
set protocols bgp 20 neighbor peer remote-address 10.10.0.200
set protocols bgp 20 neighbor peer remote-as 20
set protocols bgp 20 redistribute connected
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 2: Set the following configuration in DUT1 :

set interfaces dummy dum0 address 1.1.1.2/24
set interfaces ethernet eth0 address 10.10.0.200/24
set protocols bgp 20 neighbor peer remote-address 10.10.0.100
set protocols bgp 20 neighbor peer remote-as 20
set protocols bgp 20 redistribute connected
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Run the command protocols bgp show ip summary on DUT0 and check whether the output contains the following tokens:

Established
Show output
IPv4 Unicast Summary:
BGP router identifier 10.10.0.100, local AS number 20 VRF default vrf-id 0
BGP table version 3
RIB entries 3, using 456 bytes of memory
Peers 1, using 24 KiB of memory

Neighbor        LocalAddr       V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down        State   PfxRcd   PfxSnt Desc
10.10.0.200     10.10.0.100     4         20         5         6        3    0    0 00:00:05  Established        2        2 N/A

Total number of neighbors 1

Attention

Verify iBGP session establishes normally.

Step 4: Run the command protocols bgp show ip summary on DUT0 and check whether the output matches the following regular expressions:

10.10.0.200.*Established
Show output
IPv4 Unicast Summary:
BGP router identifier 10.10.0.100, local AS number 20 VRF default vrf-id 0
BGP table version 3
RIB entries 3, using 456 bytes of memory
Peers 1, using 24 KiB of memory

Neighbor        LocalAddr       V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down        State   PfxRcd   PfxSnt Desc
10.10.0.200     10.10.0.100     4         20         5         6        3    0    0 00:00:05  Established        2        2 N/A

Total number of neighbors 1

Attention

Verify that routes are exchanged.

Step 5: Run the command protocols bgp show ip on DUT0 and check whether the output matches the following regular expressions:

1.1.1.0/24
Show output
BGP table version is 3, local router ID is 10.10.0.100, vrf id 0
Default local pref 100, local AS 20
Status codes:  s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
*>  1.1.1.0/24       0.0.0.0                  0         32768 ?
* i                  10.10.0.200              0    100      0 ?
*>  10.10.0.0/24     0.0.0.0                  0         32768 ?
* i                  10.10.0.200              0    100      0 ?

Displayed 2 routes and 4 total paths

Step 6: Run the command protocols bgp show ip on DUT1 and check whether the output matches the following regular expressions:

1.1.1.0/24
Show output
BGP table version is 3, local router ID is 10.10.0.200, vrf id 0
Default local pref 100, local AS 20
Status codes:  s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
*>  1.1.1.0/24       0.0.0.0                  0         32768 ?
* i                  10.10.0.100              0    100      0 ?
*>  10.10.0.0/24     0.0.0.0                  0         32768 ?
* i                  10.10.0.100              0    100      0 ?

Displayed 2 routes and 4 total paths

Attention

Verify that Graceful Restart capability IS advertised in a normal session.

Step 7: Run the command protocols bgp show ip neighbors on DUT0 and check whether the output matches the following regular expressions:

Graceful Restart Capability: advertised and received
Show output
BGP neighbor is 10.10.0.200, remote AS 20, local AS 20, internal link
Local Role: undefined
Remote Role: undefined
Hostname: osdx
BGP version 4, remote router ID 10.10.0.200, local router ID 10.10.0.100
BGP state = Established, up for 00:00:05
Last read 00:00:04, Last write 00:00:04
Hold time is 90 seconds, keepalive interval is 30 seconds
Configured hold time is 90 seconds, keepalive interval is 30 seconds
Configured tcp-mss is 0, synced tcp-mss is 1448
Configured conditional advertisements interval is 60 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
AddPath:
IPv4 Unicast: RX advertised and received
Paths-Limit:
IPv4 Unicast: advertised (0) and received (0)
Long-lived Graceful Restart: advertised and received
Address families by peer:
Route refresh: advertised and received
Enhanced Route Refresh: advertised and received
Address Family IPv4 Unicast: advertised and received
Hostname Capability: advertised (name: osdx,domain name: n/a) received (name: osdx,domain name: n/a)
Version Capability: not advertised not received
Link-Local Next Hop Capability: not advertised not received
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Address families by peer:
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Peer has restarted (R-bit is set)
Peer has restarted (N-bit is set)
Address families by peer:
none
Graceful restart information:
End-of-RIB send: IPv4 Unicast
End-of-RIB received: IPv4 Unicast
Local GR Mode: Helper*
Remote GR Mode: Helper

R bit: True
N bit: True
Timers:
Configured Restart Time(sec): 120
Received Restart Time(sec): 120
Configured LLGR Stale Path Time(sec): 0
IPv4 Unicast:
F bit: False
End-of-RIB sent: Yes
End-of-RIB sent after update: Yes
End-of-RIB received: Yes
Timers:
Configured Stale Path Time(sec): 360
LLGR Stale Path Time(sec): 0
Message statistics:
Inq depth is 0
Outq depth is 0
Sent       Rcvd
Opens:                  2          1
Notifications:          0          0
Updates:                3          3
Keepalives:             1          1
Route Refresh:          0          0
Capability:             0          0
Total:                  6          5

Prefix statistics:
Inbound filtered: 0
AS-PATH loop: 0
Originator loop: 0
Cluster loop: 0
Invalid next-hop: 0
Withdrawn: 0
Attributes discarded: 0

Minimum time between advertisement runs is 0 seconds
Update delay timer is 0 seconds (remaining: 0)

For address family: IPv4 Unicast
Update group 1, subgroup 1
Packet Queue length 0
Community attribute sent to this neighbor(all)
2 accepted, 2 sent prefixes

Connections established 1; dropped 0
Last reset 00:00:07,  No path to specified Neighbor (n/a)
Internal BGP neighbor may be up to 255 hops away.
Local host: 10.10.0.100, Local port: 179
Foreign host: 10.10.0.200, Foreign port: 35142
Nexthop: 10.10.0.100
Nexthop global: fe80::dcad:beff:feef:6c00
Nexthop local: fe80::dcad:beff:feef:6c00
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 30
Estimated round trip time: 0 ms
Read thread: on  Write thread: on  FD used: 29