Capability-Negotiation
Scenario to verify BGP peer-group capability negotiation features.
BGP capabilities are negotiated during session establishment to determine what features
both peers support. The disable-capability-negotiation option suppresses sending
capabilities in the OPEN message, so the peer only sees the capabilities it receives
(e.g., Graceful Restart shows as “received” only instead of “advertised and received”).
The override-capability option forces session establishment even when there is a
capability mismatch between peers (e.g., one peer activates IPv6 but the other does not).
Without override-capability, a peer configured with strict-capability-match
will reject sessions when capabilities do not match. When configured on a peer-group,
all members inherit the capability negotiation behavior.
Test iBGP - Peer-group capability negotiation
Description
Test disable-capability-negotiation and override-capability on a peer-group.
Scenario
Example 1
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 address 10.10.0.100/24 set protocols bgp 20 neighbor peer peer-group MYGROUP 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 peer-group MYGROUP disable-capability-negotiation set protocols bgp 20 peer-group MYGROUP 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 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'
Attention
Verify iBGP session establishes.
Step 3: Run command protocols bgp show ip summary at DUT0 and check if output matches the following regular expressions:
10.10.0.200.*EstablishedShow output
IPv4 Unicast Summary: BGP router identifier 10.10.0.100, local AS number 20 VRF default vrf-id 0 BGP table version 1 RIB entries 1, using 128 bytes of memory Peers 1, using 24 KiB of memory Peer groups 1, using 64 bytes 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 4 5 1 0 0 00:00:02 Established 1 1 FRRouting/10.4.1 Total number of neighbors 1
Attention
Verify routes are exchanged.
Step 4: Run command protocols bgp show ip at DUT0 and check if output matches the following regular expressions:
10.10.0.0/24[\s\S]*10.10.0.200Show output
BGP table version is 1, local router ID is 10.10.0.100, vrf id 0 Default local pref 100, local AS 20 local address - 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 *> 10.10.0.0/24 0.0.0.0 0 32768 ? * i 10.10.0.200 0 100 0 ? Displayed 1 routes and 2 total paths
Attention
Verify capability: Graceful Restart Capability: received.
Step 5: Run command protocols bgp show ip neighbors at DUT0 and check if output matches the following regular expressions:
Graceful Restart Capability: receivedShow output
BGP neighbor is 10.10.0.200, remote AS 20, local AS 20, internal link Local Role: undefined Remote Role: undefined Hostname: osdx Member of peer-group MYGROUP for session parameters BGP version 4, remote router ID 10.10.0.200, local router ID 10.10.0.100 BGP state = Established, up for 00:00:02 Last read 00:00:01, Last write 00:00:01 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 received software version (FRRouting/10.4.1) Link-Local Next Hop Capability: not advertised not received Graceful Restart Capability: received Remote Restart timer is 120 seconds 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: 2 2 Keepalives: 1 1 Route Refresh: 0 0 Capability: 0 0 Total: 5 4 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 For address family: IPv4 Unicast MYGROUP peer-group member Update group 1, subgroup 1 Packet Queue length 0 Community attribute sent to this neighbor(all) 1 accepted, 1 sent prefixes Connections established 1; dropped 0 Last reset never 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: 53134 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: 25
Example 2
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 address 10.10.0.100/24 set protocols bgp 20 neighbor peer peer-group MYGROUP 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 peer-group MYGROUP 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 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'
Attention
Verify iBGP session establishes.
Step 3: Run command protocols bgp show ip summary at DUT0 and check if output matches the following regular expressions:
10.10.0.200.*EstablishedShow output
IPv4 Unicast Summary: BGP router identifier 10.10.0.100, local AS number 20 VRF default vrf-id 0 BGP table version 1 RIB entries 1, using 128 bytes of memory Peers 1, using 24 KiB of memory Peer groups 1, using 64 bytes 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 4 5 1 0 0 00:00:01 Established 1 1 FRRouting/10.4.1 Total number of neighbors 1
Attention
Verify routes are exchanged.
Step 4: Run command protocols bgp show ip at DUT0 and check if output matches the following regular expressions:
10.10.0.0/24[\s\S]*10.10.0.200Show output
BGP table version is 1, local router ID is 10.10.0.100, vrf id 0 Default local pref 100, local AS 20 local address - 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 *> 10.10.0.0/24 0.0.0.0 0 32768 ? * i 10.10.0.200 0 100 0 ? Displayed 1 routes and 2 total paths
Attention
Verify capability: Graceful Restart Capability: advertised and received.
Step 5: Run command protocols bgp show ip neighbors at DUT0 and check if output matches the following regular expressions:
Graceful Restart Capability: advertised and receivedShow output
BGP neighbor is 10.10.0.200, remote AS 20, local AS 20, internal link Local Role: undefined Remote Role: undefined Hostname: osdx Member of peer-group MYGROUP for session parameters BGP version 4, remote router ID 10.10.0.200, local router ID 10.10.0.100 BGP state = Established, up for 00:00:01 Last read 00:00:00, Last write 00:00:00 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: advertised software version (FRRouting/10.4.1) received software version (FRRouting/10.4.1) 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: 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: 2 2 Keepalives: 1 1 Route Refresh: 0 0 Capability: 0 0 Total: 5 4 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 For address family: IPv4 Unicast MYGROUP peer-group member Update group 1, subgroup 1 Packet Queue length 0 Community attribute sent to this neighbor(all) 1 accepted, 1 sent prefixes Connections established 1; dropped 0 Last reset never 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: 35122 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: 25
Example 3
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 address 10.10.0.100/24 set protocols bgp 20 neighbor peer address-family ipv6-unicast activate set protocols bgp 20 neighbor peer peer-group MYGROUP 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 peer-group MYGROUP override-capability set protocols bgp 20 peer-group MYGROUP 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 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'
Attention
Verify iBGP session establishes.
Step 3: Run command protocols bgp show ip summary at DUT0 and check if output matches the following regular expressions:
10.10.0.200.*EstablishedShow output
IPv4 Unicast Summary: BGP router identifier 10.10.0.100, local AS number 20 VRF default vrf-id 0 BGP table version 1 RIB entries 1, using 128 bytes of memory Peers 1, using 24 KiB of memory Peer groups 1, using 64 bytes 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 4 6 1 0 0 00:00:01 Established NoNeg 1 FRRouting/10.4.1 Total number of neighbors 1
Attention
Verify routes are exchanged.
Step 4: Run command protocols bgp show ip at DUT0 and check if output matches the following regular expressions:
10.10.0.0/24[\s\S]*10.10.0.200Show output
BGP table version is 1, local router ID is 10.10.0.100, vrf id 0 Default local pref 100, local AS 20 local address - 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 *> 10.10.0.0/24 0.0.0.0 0 32768 ? * i 10.10.0.200 0 100 0 ? Displayed 1 routes and 2 total paths
Example 4
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 address 10.10.0.100/24 set protocols bgp 20 neighbor peer address-family ipv6-unicast activate set protocols bgp 20 neighbor peer peer-group MYGROUP 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 neighbor peer strict-capability-match set protocols bgp 20 peer-group MYGROUP 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 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'
Attention
Verify iBGP session does NOT establish.
Step 3: Run command protocols bgp show ip summary at DUT0 and check if output does not match the following regular expressions:
10.10.0.200.*EstablishedShow output
IPv4 Unicast Summary: BGP router identifier 10.10.0.100, local AS number 20 VRF default vrf-id 0 BGP table version 1 RIB entries 1, using 128 bytes of memory Peers 1, using 24 KiB of memory Peer groups 1, using 64 bytes 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 4 9 0 0 0 never Idle 0 0 FRRouting/10.4.1 Total number of neighbors 1
Attention
Verify DUT0 does NOT receive route from peer.
Step 4: Run command protocols bgp show ip at DUT0 and check if output does not match the following regular expressions:
10.10.0.0/24[\s\S]*10.10.0.200Show output
BGP table version is 1, local router ID is 10.10.0.100, vrf id 0 Default local pref 100, local AS 20 local address - 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 *> 10.10.0.0/24 0.0.0.0 0 32768 ? Displayed 1 routes and 1 total paths