Attribute-Unchanged

Scenario to verify BGP peer-group attribute-unchanged inheritance. This command prevents the router from modifying specific BGP attributes when advertising routes to neighbors that are members of the peer-group. By default, when advertising to an eBGP peer, the router changes the next-hop to its own address, prepends its AS number to the AS-path, and may modify the MED value. The attribute-unchanged command allows preserving these attributes in their original form. The as-path option prevents the router from prepending its local AS to the path. The med option preserves the Multi-Exit Discriminator value without modification. The next-hop option keeps the original next-hop address instead of replacing it with the advertising router’s address.

../../../../_images/attribute-unchanged2.svg

Test eBGP - Peer-group attribute-unchanged

Description

Test attribute-unchanged options (as-path, next-hop, med) on a peer-group. Baseline shows default re-advertisement behavior; each option preserves the corresponding attribute.

Scenario

Example 1

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.10.0.100/24
set interfaces ethernet eth1 address 20.20.0.100/24
set protocols bgp 100 neighbor dut1 remote-address 10.10.0.200
set protocols bgp 100 neighbor dut1 remote-as 200
set protocols bgp 100 neighbor dut1 route-map import PERMIT
set protocols bgp 100 neighbor dut2 peer-group MYGROUP
set protocols bgp 100 neighbor dut2 remote-address 20.20.0.200
set protocols bgp 100 peer-group MYGROUP remote-as 300
set protocols bgp 100 peer-group MYGROUP route-map export PERMIT
set protocols route-map PERMIT rule 1 action permit
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 200 neighbor peer remote-address 10.10.0.100
set protocols bgp 200 neighbor peer remote-as 100
set protocols bgp 200 neighbor peer route-map export SET-MED
set protocols bgp 200 redistribute connected route-map SET-MED
set protocols route-map SET-MED rule 1 action permit
set protocols route-map SET-MED rule 1 set metric 50
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Set the following configuration in DUT2 :

set interfaces ethernet eth0 address 20.20.0.200/24
set protocols bgp 300 neighbor peer remote-address 20.20.0.100
set protocols bgp 300 neighbor peer remote-as 100
set protocols bgp 300 neighbor peer route-map import PERMIT
set protocols route-map PERMIT rule 1 action permit
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Attention

Verify eBGP sessions establish on DUT0.

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

20.20.0.200.*Established[\s\S]*10.10.0.200.*Established
Show output
IPv4 Unicast Summary:
BGP router identifier 20.20.0.100, local AS number 100 VRF default vrf-id 0
BGP table version 2
RIB entries 3, using 384 bytes of memory
Peers 2, using 47 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
20.20.0.200     20.20.0.100     4        300         2         2        0    0    0 00:00:00  Established (Policy)        0 N/A
10.10.0.200     10.10.0.100     4        200         5         3        2    0    0 00:00:01  Established        2 (Policy) N/A

Total number of neighbors 2

Attention

Verify attribute behavior on DUT2.

Step 5: Run command protocols bgp show ip 1.1.1.0/24 at DUT2 and check if output matches the following regular expressions:

100 200[\s\S]*20.20.0.100 from
Show output
BGP routing table entry for 1.1.1.0/24, version 1
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  100 200
    20.20.0.100 from 20.20.0.100 (20.20.0.100)
      Origin incomplete, valid, external, best (First path received)
      Last update: Thu Mar  5 15:40:55 2026

Example 2

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.10.0.100/24
set interfaces ethernet eth1 address 20.20.0.100/24
set protocols bgp 100 neighbor dut1 remote-address 10.10.0.200
set protocols bgp 100 neighbor dut1 remote-as 200
set protocols bgp 100 neighbor dut1 route-map import PERMIT
set protocols bgp 100 neighbor dut2 peer-group MYGROUP
set protocols bgp 100 neighbor dut2 remote-address 20.20.0.200
set protocols bgp 100 peer-group MYGROUP attribute-unchanged as-path
set protocols bgp 100 peer-group MYGROUP remote-as 300
set protocols bgp 100 peer-group MYGROUP route-map export PERMIT
set protocols route-map PERMIT rule 1 action permit
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 200 neighbor peer remote-address 10.10.0.100
set protocols bgp 200 neighbor peer remote-as 100
set protocols bgp 200 neighbor peer route-map export SET-MED
set protocols bgp 200 redistribute connected route-map SET-MED
set protocols route-map SET-MED rule 1 action permit
set protocols route-map SET-MED rule 1 set metric 50
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Set the following configuration in DUT2 :

set interfaces ethernet eth0 address 20.20.0.200/24
set protocols bgp 300 neighbor peer remote-address 20.20.0.100
set protocols bgp 300 neighbor peer remote-as 100
set protocols bgp 300 neighbor peer route-map import PERMIT
set protocols route-map PERMIT rule 1 action permit
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Attention

Verify eBGP sessions establish on DUT0.

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

20.20.0.200.*Established[\s\S]*10.10.0.200.*Established
Show output
IPv4 Unicast Summary:
BGP router identifier 20.20.0.100, local AS number 100 VRF default vrf-id 0
BGP table version 2
RIB entries 3, using 384 bytes of memory
Peers 2, using 47 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
20.20.0.200     20.20.0.100     4        300         2         4        0    0    0 00:00:00  Established (Policy)        0 N/A
10.10.0.200     10.10.0.100     4        200         5         3        2    0    0 00:00:02  Established        2 (Policy) N/A

Total number of neighbors 2

Attention

Verify attribute behavior on DUT0.

Step 5: Run command protocols bgp show ip neighbors neighbor dut2 advertised-routes at DUT0 and check if output matches the following regular expressions:

1.1.1.0/24[\s\S]*\s200\s
Show output
BGP table version is 2, local router ID is 20.20.0.100, vrf id 0
Default local pref 100, local AS 100
local address (null)
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
 *u  1.1.1.0/24       0.0.0.0                                0 200 ?
 *u  10.10.0.0/24     0.0.0.0                                0 200 ?

Total number of prefixes 2

Example 3

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.10.0.100/24
set interfaces ethernet eth1 address 20.20.0.100/24
set protocols bgp 100 neighbor dut1 remote-address 10.10.0.200
set protocols bgp 100 neighbor dut1 remote-as 200
set protocols bgp 100 neighbor dut1 route-map import PERMIT
set protocols bgp 100 neighbor dut2 peer-group MYGROUP
set protocols bgp 100 neighbor dut2 remote-address 20.20.0.200
set protocols bgp 100 peer-group MYGROUP attribute-unchanged next-hop
set protocols bgp 100 peer-group MYGROUP remote-as 300
set protocols bgp 100 peer-group MYGROUP route-map export PERMIT
set protocols route-map PERMIT rule 1 action permit
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 200 neighbor peer remote-address 10.10.0.100
set protocols bgp 200 neighbor peer remote-as 100
set protocols bgp 200 neighbor peer route-map export SET-MED
set protocols bgp 200 redistribute connected route-map SET-MED
set protocols route-map SET-MED rule 1 action permit
set protocols route-map SET-MED rule 1 set metric 50
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Set the following configuration in DUT2 :

set interfaces ethernet eth0 address 20.20.0.200/24
set protocols bgp 300 neighbor peer remote-address 20.20.0.100
set protocols bgp 300 neighbor peer remote-as 100
set protocols bgp 300 neighbor peer route-map import PERMIT
set protocols route-map PERMIT rule 1 action permit
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Attention

Verify eBGP sessions establish on DUT0.

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

20.20.0.200.*Established[\s\S]*10.10.0.200.*Established
Show output
IPv4 Unicast Summary:
BGP router identifier 20.20.0.100, local AS number 100 VRF default vrf-id 0
BGP table version 2
RIB entries 3, using 384 bytes of memory
Peers 2, using 47 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
20.20.0.200     20.20.0.100     4        300         3         4        0    0    0 00:00:01  Established (Policy)        0 N/A
10.10.0.200     10.10.0.100     4        200         5         3        2    0    0 00:00:02  Established        2 (Policy) N/A

Total number of neighbors 2

Attention

Verify attribute behavior on DUT2.

Step 5: Run command protocols bgp show ip 1.1.1.0/24 at DUT2 and check if output matches the following regular expressions:

10.10.0.200 \(inaccessible
Show output
BGP routing table entry for 1.1.1.0/24, version 0
Paths: (1 available, no best path)
  Not advertised to any peer
  100 200
    10.10.0.200 (inaccessible, import-check enabled) from 20.20.0.100 (20.20.0.100)
      Origin incomplete, invalid, external
      Last update: Thu Mar  5 15:41:15 2026

Example 4

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.10.0.100/24
set interfaces ethernet eth1 address 20.20.0.100/24
set protocols bgp 100 neighbor dut1 remote-address 10.10.0.200
set protocols bgp 100 neighbor dut1 remote-as 200
set protocols bgp 100 neighbor dut1 route-map import PERMIT
set protocols bgp 100 neighbor dut2 peer-group MYGROUP
set protocols bgp 100 neighbor dut2 remote-address 20.20.0.200
set protocols bgp 100 peer-group MYGROUP attribute-unchanged med
set protocols bgp 100 peer-group MYGROUP remote-as 300
set protocols bgp 100 peer-group MYGROUP route-map export PERMIT
set protocols route-map PERMIT rule 1 action permit
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 200 neighbor peer remote-address 10.10.0.100
set protocols bgp 200 neighbor peer remote-as 100
set protocols bgp 200 neighbor peer route-map export SET-MED
set protocols bgp 200 redistribute connected route-map SET-MED
set protocols route-map SET-MED rule 1 action permit
set protocols route-map SET-MED rule 1 set metric 50
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Set the following configuration in DUT2 :

set interfaces ethernet eth0 address 20.20.0.200/24
set protocols bgp 300 neighbor peer remote-address 20.20.0.100
set protocols bgp 300 neighbor peer remote-as 100
set protocols bgp 300 neighbor peer route-map import PERMIT
set protocols route-map PERMIT rule 1 action permit
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Attention

Verify eBGP sessions establish on DUT0.

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

20.20.0.200.*Established[\s\S]*10.10.0.200.*Established
Show output
IPv4 Unicast Summary:
BGP router identifier 20.20.0.100, local AS number 100 VRF default vrf-id 0
BGP table version 2
RIB entries 3, using 384 bytes of memory
Peers 2, using 47 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
20.20.0.200     20.20.0.100     4        300         3         4        0    0    0 00:00:00  Established (Policy)        0 N/A
10.10.0.200     10.10.0.100     4        200         5         3        2    0    0 00:00:01  Established        2 (Policy) N/A

Total number of neighbors 2

Attention

Verify attribute behavior on DUT2.

Step 5: Run command protocols bgp show ip at DUT2 and check if output matches the following regular expressions:

1.1.1.0/24\s+20.20.0.100\s+50
Show output
BGP table version is 2, local router ID is 20.20.0.200, vrf id 0
Default local pref 100, local AS 300
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
 *>  1.1.1.0/24       20.20.0.100             50             0 100 200 ?
 *>  10.10.0.0/24     20.20.0.100             50             0 100 200 ?

Displayed 2 routes and 2 total paths