Capability

Scenario to verify BGP peer-group capability inheritance. When capability dynamic is configured on a peer-group, members advertise the dynamic capability during session setup, allowing future capability changes without resetting the session.

Test iBGP - Peer-group capability dynamic is negotiated

Description

Test that capability dynamic configured on a peer-group is inherited by its members. Both peers advertise the dynamic capability and it is successfully negotiated.

Scenario

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 capability dynamic
set protocols bgp 20 peer-group MYGROUP remote-as 20
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.1/24
set interfaces ethernet eth0 address 10.10.0.200/24
set protocols bgp 20 neighbor peer capability dynamic
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 2
RIB entries 3, using 456 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         5         4        2    0    0 00:00:05  Established        2        0 N/A

Total number of neighbors 1

Attention

Verify iBGP session establishes with dynamic capability.

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 2
RIB entries 3, using 456 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         5         4        2    0    0 00:00:05  Established        2        0 N/A

Total number of neighbors 1

Attention

Verify dynamic capability is advertised and received.

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

Dynamic: 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
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: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)
Dynamic: advertised and received
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:                1          3
Keepalives:             1          1
Route Refresh:          0          0
Capability:             0          0
Total:                  4          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
MYGROUP peer-group member
Update group 1, subgroup 1
Packet Queue length 0
Community attribute sent to this neighbor(all)
2 accepted, 0 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: 57808
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

Attention

Verify routes are exchanged normally.

Step 6: 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 2, 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
*>i 1.1.1.0/24       10.10.0.200              0    100      0 ?
*>i 10.10.0.0/24     10.10.0.200              0    100      0 ?

Displayed 2 routes and 2 total paths

Test iBGP - Without ORF receives all routes

Description

Baseline test without ORF. DUT1 advertises two networks (1.1.1.0/24 and 2.2.2.0/24) and DUT0 receives both. This serves as a comparison point for the ORF test.

Scenario

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 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.1/24
set interfaces dummy dum1 address 2.2.2.1/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 5, using 760 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         6         4        3    0    0 00:00:05  Established        3        0 N/A

Total number of neighbors 1

Attention

Verify iBGP session establishes.

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 5, using 760 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         6         4        3    0    0 00:00:05  Established        3        0 N/A

Total number of neighbors 1

Attention

Verify DUT0 receives both routes from DUT1 (no filtering).

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[\s\S]*2.2.2.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
*ui 1.1.1.0/24       10.10.0.200              0    100      0 ?
*ui 2.2.2.0/24       10.10.0.200              0    100      0 ?
*ui 10.10.0.0/24     10.10.0.200              0    100      0 ?

Displayed 3 routes and 3 total paths

Test iBGP - Peer-group capability ORF prefix-list filters routes at source

Description

Test BGP capability orf prefix-list configured on a peer-group. DUT0 is configured with ORF send mode via peer-group and has a prefix-list that only permits 1.1.1.0/24. DUT1 receives the filter and only sends 1.1.1.0/24, filtering 2.2.2.0/24 at source.

Scenario

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 prefix-list import ALLOW-NET1
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 capability orf prefix-list send
set protocols bgp 20 peer-group MYGROUP remote-as 20
set protocols ip prefix-list ALLOW-NET1 rule 1 action permit
set protocols ip prefix-list ALLOW-NET1 rule 1 prefix 1.1.1.0/24
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.1/24
set interfaces dummy dum1 address 2.2.2.1/24
set interfaces ethernet eth0 address 10.10.0.200/24
set protocols bgp 20 neighbor peer capability orf prefix-list receive
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 1
RIB entries 1, using 152 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         7         5        1    0    0 00:00:04  Established        1        0 N/A

Total number of neighbors 1

Attention

Verify iBGP session establishes with ORF capability.

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 1
RIB entries 1, using 152 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         7         5        1    0    0 00:00:04  Established        1        0 N/A

Total number of neighbors 1

Attention

Verify ORF prefix-list capability is negotiated between peers.

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

Outbound Route Filter \(ORF\): sent
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
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: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:                1          3
Keepalives:             1          1
Route Refresh:          1          2
Capability:             0          0
Total:                  5          7

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
MYGROUP peer-group member
Update group 1, subgroup 1
Packet Queue length 0
AF-dependant capabilities:
Outbound Route Filter (ORF) type (64) Prefix-list:
Send-mode: advertised
Receive-mode: received
Outbound Route Filter (ORF): sent;
Community attribute sent to this neighbor(all)
Inbound path policy configured
Incoming update prefix filter list is *ALLOW-NET1
1 accepted, 0 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: 52038
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

Attention

Verify DUT0 receives the permitted route 1.1.1.0/24.

Step 6: 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 1, 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
*>i 1.1.1.0/24       10.10.0.200              0    100      0 ?

Displayed 1 routes and 1 total paths

Attention

Verify DUT0 does NOT receive 2.2.2.0/24 because ORF filters it at DUT1.

Step 7: Run the command protocols bgp show ip on DUT0 and check whether the output does not match the following regular expressions:

2.2.2.0/24
Show output
BGP table version is 1, 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
 *>i 1.1.1.0/24       10.10.0.200              0    100      0 ?

Displayed 1 routes and 1 total paths