Day 41 — BGP Confederations: Sub-AS Design, External View and Migration

1. Opening

Confederations are another way to scale BGP inside a large administrative domain. They divide the domain into member autonomous systems while presenting a single confederation identifier to external peers. They are powerful, but their operational model is more complex than simply 'using private ASNs inside.'

The engineering goal is not to memorize another BGP command. It is to understand what information each speaker is allowed to propagate, what path information can be hidden, and what failure domain is created by the chosen control-plane architecture.

2. Concept and standards behavior

RFC 5065 defines AS_CONFED_SEQUENCE and AS_CONFED_SET and how member-AS relationships are represented. Confederation external sessions have eBGP-like properties inside the confederation, while the confederation is presented externally as one AS. Modern guidance must also account for the fact that RFC 9774 prohibits new origination of AS_SET/AS_CONFED_SET in ordinary aggregation contexts; that does not erase RFC 5065's confederation architecture, but it reinforces the need to distinguish attributes and mechanisms carefully.

A recurring rule in this module is that configuration scale and routing-information scale are different problems. A design can be easy to configure but still create poor path visibility, slow convergence, or an oversized blast radius. Conversely, a topology can carry complete information but be operationally expensive to maintain.

3. Scenario

Create confederation identifier 65000 with member AS65010 and AS65020. Establish a session between members and an external peer to AS65100. Verify the path representation internally and the single confederation identity seen externally.

Documentation-safe addressing is used. The common lab AS is 65010. Internal loopbacks use 192.0.2.0/24 host routes; external test prefixes use 203.0.113.0/24 and 198.51.100.0/24 where needed. All fictional failures are lab-only.

Success criteria

  1. Every speaker learns the routes it is supposed to learn.
  2. The propagation rule can be explained before commands are applied.
  3. Loop-prevention attributes are visible where the feature uses them.
  4. A negative test proves that an invalid or unintended propagation does not occur.
  5. Rollback returns the topology to a known-good control-plane state.

4. Topology diagram

A matching SVG/PNG diagram is stored in media/diagrams/.

5. Prerequisites

  • IOS XE 17.18.x documentation baseline.
  • Stable IGP reachability among BGP loopbacks.
  • Explicit update-source and appropriate neighbor reachability for loopback-based sessions.
  • Authentication only if the lab image and design have been validated for it.
  • Independent management access before changing route-reflection/confederation policy.
  • Pre-change capture of BGP summary, selected paths and relevant neighbor state.

6. Baseline configuration

Topic-specific configuration excerpt — not a complete device configuration.

router bgp 65010
 bgp confederation identifier 65000
 bgp confederation peers 65020
 neighbor 192.0.2.20 remote-as 65020
!
! Member AS65020 uses the same confederation identifier
! and declares AS65010 as a confederation peer.

Do not silently transfer this syntax to IOS XR or NX-OS. Those platforms must use their own policy/configuration model.

7. Verification before modification

Use a combination of topology, session and route evidence:

show bgp ipv4 unicast summary
show bgp ipv4 unicast
show bgp ipv4 unicast 203.0.113.0/24
show bgp ipv4 unicast neighbors
show ip route

For route-reflection topics also inspect the path detail for ORIGINATOR_ID and CLUSTER_LIST where present. The absence or presence of a route must be explained by the propagation rule, not guessed from neighbor state alone.

8. Controlled modification

Add a second member AS and trace a route across two member-AS boundaries to the external peer. Verify that external policy still sees the intended confederation AS.

Predict the exact peers whose Adj-RIB-In/Loc-RIB should change. Then apply one control-plane change, re-check path detail, and verify that no unrelated peer loses reachability.

9. Fault injection

Illustrative lab — not a real incident.

Misconfigure a member relationship as ordinary eBGP by omitting the confederation peer declaration. Observe changes in path handling and session semantics.

Capture the state before and after the fault. A useful fault must change one causal variable only.

10. Step-by-step troubleshooting

  1. Confirm IGP reachability among BGP endpoints.
  2. Confirm TCP/BGP sessions are Established.
  3. Identify where the route originated.
  4. Trace the route one BGP hop at a time.
  5. Determine whether the receiving neighbor is eBGP, ordinary iBGP, RR client, RR non-client, or confederation peer.
  6. Inspect best-path state before assuming propagation is broken.
  7. Inspect ORIGINATOR_ID/CLUSTER_LIST for reflected routes.
  8. Inspect policy and next-hop reachability.
  9. Verify whether an alternative path was never learned, learned but not selected, or selected but not advertised.
  10. Apply the smallest proven correction.
  11. Re-run the same positive and negative tests.
  12. Observe stability before closing the change.

11. Root cause and correction

The cause is inconsistent confederation membership configuration. Correct the member-AS and confederation-peer declarations on both sides, then re-check path attributes and external view.

The correction must address the architectural cause rather than adding random neighbor statements until the route appears.

12. Post-fix verification

Verify:

  • all intended sessions remain Established;
  • the expected prefix is learned by the intended speakers;
  • reflected attributes are correct where applicable;
  • next hop remains reachable;
  • no routing loop is created;
  • the negative propagation test still passes.

13. Rollback

Restore the previous neighbor relationship or policy, not an ad-hoc alternative. If the change affects route reflection, preserve enough connectivity that clients do not become isolated during rollback. Roll back for unexpected loss of route visibility, oscillation, unintended path change, or evidence that the design created a larger failure domain than approved.

14. Production lessons

Confederations are a control-plane architecture, not merely an ASN trick. Prefer the simplest design that meets scale, policy and failure-domain requirements; route reflection is more common and often easier to operate.

Deep-dive engineering notes

Confederation identity has two scopes

A confederation divides a large routing domain into member ASes for internal scaling and policy, while external peers see the confederation identifier rather than the internal member structure. This dual view is the core architectural idea. Engineers must know whether a policy is matching the member-AS representation used inside the confederation or the public/external AS representation seen outside.

Member-AS boundaries are neither ordinary iBGP nor ordinary Internet eBGP

Sessions between confederation members borrow eBGP-like behavior for scaling while preserving the confederation's single external identity. Treating them exactly like normal eBGP can lead to incorrect assumptions about AS-path representation and policy. Treating them like ordinary iBGP loses the reason confederations exist.

Route reflection versus confederations

Both reduce the universal iBGP full-mesh requirement, but their operational models differ. Route reflection changes propagation relationships inside one AS. Confederations introduce member-AS structure and explicit boundaries. A network with strong administrative regions and highly structured internal policy may benefit from confederation semantics, while many deployments favor route reflection because it is simpler and more common operationally.

Migration risk

A confederation migration changes session roles and path representation. Build coexistence carefully, define which routers move first, and test route policy that matches AS paths. A regex written for the pre-migration AS_PATH may behave differently when member-AS segments appear internally.

Oscillation awareness

RFC 7964 documents that route reflection or confederations can interact with certain topologies and policies to create persistent route oscillation. That is not a reason to avoid both mechanisms; it is a reason to validate policy ordering, MED behavior, topology and path visibility rather than assuming the scaling architecture is neutral.

15. Knowledge check

  1. Which problem in this post is a control-plane topology problem rather than a command-syntax problem?
  2. What evidence distinguishes “route was never learned” from “route was learned but not selected”?
  3. What negative test proves the scaling feature has not introduced unintended propagation?

Answers

  1. The relationship among BGP speakers and the rules governing propagation.
  2. Per-prefix BGP path detail and neighbor route evidence.
  3. Verify a route that should remain hidden/unadvertised is absent from the relevant neighbor's learned/advertised state.

16. Sources

  • RFC 5065 — Autonomous System Confederations for BGP
  • RFC 4271 — BGP-4
  • RFC 7964 — persistent route oscillation considerations

Day 40 — Route-Reflector Path Hiding and Optimal Route Reflection

1. Opening

Route reflection can hide paths. A reflector generally selects a best path and reflects that view; clients may therefore never learn alternatives that would have been available in a full mesh. This can create suboptimal egress and can interact with convergence.

The engineering goal is not to memorize another BGP command. It is to understand what information each speaker is allowed to propagate, what path information can be hidden, and what failure domain is created by the chosen control-plane architecture.

2. Concept and standards behavior

RFC 4456's reduction of routing information creates the path-hiding problem. RFC 7911 ADD-PATH allows multiple paths for the same NLRI to be advertised when negotiated. RFC 9107 defines Optimal Route Reflection, in which the reflector can calculate client-appropriate optimal paths using client location/IGP perspective. These mechanisms solve different problems and must not be conflated.

A recurring rule in this module is that configuration scale and routing-information scale are different problems. A design can be easy to configure but still create poor path visibility, slow convergence, or an oversized blast radius. Conversely, a topology can carry complete information but be operationally expensive to maintain.

3. Scenario

Use two exits for 203.0.113.0/24. RR1 has lower IGP cost to Exit-A, while Client-B is physically closer to Exit-B. Without additional mechanisms, RR1's own best-path view can cause Client-B to receive a path that is not locally optimal.

Documentation-safe addressing is used. The common lab AS is 65010. Internal loopbacks use 192.0.2.0/24 host routes; external test prefixes use 203.0.113.0/24 and 198.51.100.0/24 where needed. All fictional failures are lab-only.

Success criteria

  1. Every speaker learns the routes it is supposed to learn.
  2. The propagation rule can be explained before commands are applied.
  3. Loop-prevention attributes are visible where the feature uses them.
  4. A negative test proves that an invalid or unintended propagation does not occur.
  5. Rollback returns the topology to a known-good control-plane state.

4. Topology diagram

Route-Reflector Path Hiding and Optimal Route Reflection
Route-Reflector Path Hiding and Optimal Route Reflection

5. Prerequisites

  • IOS XE 17.18.x documentation baseline.
  • Stable IGP reachability among BGP loopbacks.
  • Explicit update-source and appropriate neighbor reachability for loopback-based sessions.
  • Authentication only if the lab image and design have been validated for it.
  • Independent management access before changing route-reflection/confederation policy.
  • Pre-change capture of BGP summary, selected paths and relevant neighbor state.

6. Baseline configuration

Topic-specific configuration excerpt — not a complete device configuration.

router bgp 65010
 ! Route-reflector baseline omitted for brevity.
 !
 address-family ipv4
  ! Verify platform support and exact ADD-PATH/ORR syntax
  ! before enabling either mechanism.
 exit-address-family

Do not silently transfer this syntax to IOS XR or NX-OS. Those platforms must use their own policy/configuration model.

7. Verification before modification

Use a combination of topology, session and route evidence:

show bgp ipv4 unicast summary
show bgp ipv4 unicast
show bgp ipv4 unicast 203.0.113.0/24
show bgp ipv4 unicast neighbors
show ip route

For route-reflection topics also inspect the path detail for ORIGINATOR_ID and CLUSTER_LIST where present. The absence or presence of a route must be explained by the propagation rule, not guessed from neighbor state alone.

8. Controlled modification

First reproduce path hiding with ordinary reflection. Then, in a capability-appropriate lab, compare the information made available by ADD-PATH with the client-specific selection objective of ORR.

Predict the exact peers whose Adj-RIB-In/Loc-RIB should change. Then apply one control-plane change, re-check path detail, and verify that no unrelated peer loses reachability.

9. Fault injection

Illustrative lab — not a real incident.

Manipulate IGP cost so the reflector and a distant client have different closest exits. If the client never receives the alternative, troubleshooting the client's local BGP policy alone cannot fix the missing information.

Capture the state before and after the fault. A useful fault must change one causal variable only.

10. Step-by-step troubleshooting

  1. Confirm IGP reachability among BGP endpoints.
  2. Confirm TCP/BGP sessions are Established.
  3. Identify where the route originated.
  4. Trace the route one BGP hop at a time.
  5. Determine whether the receiving neighbor is eBGP, ordinary iBGP, RR client, RR non-client, or confederation peer.
  6. Inspect best-path state before assuming propagation is broken.
  7. Inspect ORIGINATOR_ID/CLUSTER_LIST for reflected routes.
  8. Inspect policy and next-hop reachability.
  9. Verify whether an alternative path was never learned, learned but not selected, or selected but not advertised.
  10. Apply the smallest proven correction.
  11. Re-run the same positive and negative tests.
  12. Observe stability before closing the change.

11. Root cause and correction

The cause is information reduction at the reflector, not necessarily an incorrect client policy. Correct by redesigning reflector placement or using a supported path-diversity/optimal-reflection mechanism after validating platform behavior.

The correction must address the architectural cause rather than adding random neighbor statements until the route appears.

12. Post-fix verification

Verify:

  • all intended sessions remain Established;
  • the expected prefix is learned by the intended speakers;
  • reflected attributes are correct where applicable;
  • next hop remains reachable;
  • no routing loop is created;
  • the negative propagation test still passes.

13. Rollback

Restore the previous neighbor relationship or policy, not an ad-hoc alternative. If the change affects route reflection, preserve enough connectivity that clients do not become isolated during rollback. Roll back for unexpected loss of route visibility, oscillation, unintended path change, or evidence that the design created a larger failure domain than approved.

14. Production lessons

Path visibility is a design input. ADD-PATH increases path diversity; ORR changes which path is optimal for a client perspective. More paths can improve decisions but also increase control-plane state.

Deep-dive engineering notes

Path hiding begins with information reduction

In a full mesh, a speaker can potentially learn alternate paths directly from their originators. With route reflection, the reflector's decision can become the information boundary. If RR1 selects Exit-A and never advertises Exit-B's alternative to a client, the client cannot select Exit-B regardless of its own lower IGP cost to that exit.

This is why local troubleshooting at the client can be misleading. The client's BGP table may be internally consistent; it simply never received the alternative. The correct diagnostic question becomes “which paths were available at the reflector, which one did it select, and which paths did it advertise?”

ADD-PATH and ORR solve different dimensions

RFC 7911 ADD-PATH allows multiple paths for the same NLRI to be advertised with path identifiers when capability negotiation permits it. The client gains more path diversity and can make a richer local decision. The cost is additional control-plane state and update volume.

RFC 9107 Optimal Route Reflection aims at a different problem: the RR can select paths using a perspective appropriate to the client, such as the client's location in the IGP topology. ORR is therefore about selecting a client-optimal view; ADD-PATH is about advertising multiple paths. A design may use one, the other, neither, or platform-specific combinations.

Reflector placement can mitigate or amplify hiding

If the reflector's network location and IGP perspective closely match its clients, its selected path may already be acceptable for those clients. Centralizing a single RR far from diverse client populations increases the chance that the RR's hot-potato choice differs from the client's best exit.

Scale trade-off

Path diversity is not free. More paths can increase Adj-RIB-Out state, memory, update processing, and downstream selection work. Before enabling a feature globally, identify the prefixes or address families that benefit and establish measurable convergence or optimality objectives.

Verification strategy

Capture the same prefix at Exit-A, Exit-B, RR, and client. Record all available paths at the RR, the selected path, and the client's received paths. That four-point evidence proves whether the issue is path hiding, client policy, or next-hop resolution.

15. Knowledge check

  1. Which problem in this post is a control-plane topology problem rather than a command-syntax problem?
  2. What evidence distinguishes “route was never learned” from “route was learned but not selected”?
  3. What negative test proves the scaling feature has not introduced unintended propagation?

Answers

  1. The relationship among BGP speakers and the rules governing propagation.
  2. Per-prefix BGP path detail and neighbor route evidence.
  3. Verify a route that should remain hidden/unadvertised is absent from the relevant neighbor's learned/advertised state.

16. Sources

  • RFC 4456 — route reflection
  • RFC 7911 — ADD-PATH
  • RFC 9107 — BGP Optimal Route Reflection (ORR)

RETICUX BGP Mastery — Day 39— Redundant and Hierarchical Route Reflectors

1. Opening

One route reflector solves session scale but can become a control-plane single point of failure. Adding a second reflector improves resilience only if clients actually peer to it, policies are consistent, and the reflectors do not share the same hidden dependency.

The engineering goal is not to memorize another BGP command. It is to understand what information each speaker is allowed to propagate, what path information can be hidden, and what failure domain is created by the chosen control-plane architecture.

2. Concept and standards behavior

RFC 4456 permits multiple route reflectors and cluster designs. Redundancy must be evaluated end to end: reflector processes, IGP reachability, physical failure domains, client adjacency, policy distribution and management. Hierarchical reflection can reduce session fan-out further, but it also increases path-selection layers and troubleshooting complexity.

A recurring rule in this module is that configuration scale and routing-information scale are different problems. A design can be easy to configure but still create poor path visibility, slow convergence, or an oversized blast radius. Conversely, a topology can carry complete information but be operationally expensive to maintain.

3. Scenario

Build RR1 and RR2 in AS65010. Each client peers to both. Place the two RRs on separate simulated failure domains. Compare this with a false-redundant design where both RRs depend on the same transit interface or where half the clients peer to only one.

Documentation-safe addressing is used. The common lab AS is 65010. Internal loopbacks use 192.0.2.0/24 host routes; external test prefixes use 203.0.113.0/24 and 198.51.100.0/24 where needed. All fictional failures are lab-only.

Success criteria

  1. Every speaker learns the routes it is supposed to learn.
  2. The propagation rule can be explained before commands are applied.
  3. Loop-prevention attributes are visible where the feature uses them.
  4. A negative test proves that an invalid or unintended propagation does not occur.
  5. Rollback returns the topology to a known-good control-plane state.

4. Topology diagram

Redundant and Hierarchical Route Reflectors
Redundant and Hierarchical Route Reflectors


5. Prerequisites

  • IOS XE 17.18.x documentation baseline.
  • Stable IGP reachability among BGP loopbacks.
  • Explicit update-source and appropriate neighbor reachability for loopback-based sessions.
  • Authentication only if the lab image and design have been validated for it.
  • Independent management access before changing route-reflection/confederation policy.
  • Pre-change capture of BGP summary, selected paths and relevant neighbor state.

6. Baseline configuration

Topic-specific configuration excerpt — not a complete device configuration.

router bgp 65010
 neighbor 192.0.2.101 remote-as 65010
 neighbor 192.0.2.102 remote-as 65010
 !
 address-family ipv4
  neighbor 192.0.2.101 activate
  neighbor 192.0.2.102 activate
 exit-address-family
!
! On each RR, mark the client as route-reflector-client
! according to that reflector's configuration.

Do not silently transfer this syntax to IOS XR or NX-OS. Those platforms must use their own policy/configuration model.

7. Verification before modification

Use a combination of topology, session and route evidence:

show bgp ipv4 unicast summary
show bgp ipv4 unicast
show bgp ipv4 unicast 203.0.113.0/24
show bgp ipv4 unicast neighbors
show ip route

For route-reflection topics also inspect the path detail for ORIGINATOR_ID and CLUSTER_LIST where present. The absence or presence of a route must be explained by the propagation rule, not guessed from neighbor state alone.

8. Controlled modification

Dual-home every client to RR1 and RR2, then fail RR1. The route should remain available through RR2 if the redundancy is real.

Predict the exact peers whose Adj-RIB-In/Loc-RIB should change. Then apply one control-plane change, re-check path detail, and verify that no unrelated peer loses reachability.

9. Fault injection

Illustrative lab — not a real incident.

Keep RR2 operational but remove the client's session to it. Then fail RR1. This demonstrates that two reflector devices do not create redundancy unless the client relationship is also redundant.

Capture the state before and after the fault. A useful fault must change one causal variable only.

10. Step-by-step troubleshooting

  1. Confirm IGP reachability among BGP endpoints.
  2. Confirm TCP/BGP sessions are Established.
  3. Identify where the route originated.
  4. Trace the route one BGP hop at a time.
  5. Determine whether the receiving neighbor is eBGP, ordinary iBGP, RR client, RR non-client, or confederation peer.
  6. Inspect best-path state before assuming propagation is broken.
  7. Inspect ORIGINATOR_ID/CLUSTER_LIST for reflected routes.
  8. Inspect policy and next-hop reachability.
  9. Verify whether an alternative path was never learned, learned but not selected, or selected but not advertised.
  10. Apply the smallest proven correction.
  11. Re-run the same positive and negative tests.
  12. Observe stability before closing the change.

11. Root cause and correction

The failure is architectural: the supposedly redundant path is not end-to-end. Correct the client peering and validate independent IGP/transport reachability to both reflectors.

The correction must address the architectural cause rather than adding random neighbor statements until the route appears.

12. Post-fix verification

Verify:

  • all intended sessions remain Established;
  • the expected prefix is learned by the intended speakers;
  • reflected attributes are correct where applicable;
  • next hop remains reachable;
  • no routing loop is created;
  • the negative propagation test still passes.

13. Rollback

Restore the previous neighbor relationship or policy, not an ad-hoc alternative. If the change affects route reflection, preserve enough connectivity that clients do not become isolated during rollback. Roll back for unexpected loss of route visibility, oscillation, unintended path change, or evidence that the design created a larger failure domain than approved.

14. Production lessons

Redundancy should survive a realistic shared-risk failure, not just a process restart. Hierarchy is justified by scale and geography—not by a desire to draw more layers in the diagram.

Deep-dive engineering notes

Two devices are not automatically redundant

A recurring design error is to count boxes instead of dependencies. RR1 and RR2 can be separate routers yet share the same rack power, aggregation link, IGP adjacency, management plane, configuration pipeline, or software defect. Redundancy should be assessed using shared-risk groups rather than device count.

Clients also need redundant adjacency. If Client-A peers only to RR1 and Client-B peers only to RR2, each client still has a single reflector dependency. A properly dual-homed client design lets either reflector continue distributing reachable paths after the other fails.

Cluster design deserves explicit intent

Cluster IDs participate in reflection loop prevention. Whether redundant RRs share a cluster ID or use distinct clusters depends on the intended reflection design and path behavior. Do not copy a cluster-id convention from another network without understanding what paths may be reflected between the RRs and how CLUSTER_LIST processing will behave.

Hierarchical reflection is a scale tool with a cost

Hierarchical RRs can reduce the number of sessions and align control-plane structure with geography or network tiers. But every reflection layer can further reduce available path information and adds another place where policy or best-path choice can become suboptimal. A hierarchy should therefore have a measurable purpose: peer-scale reduction, regional autonomy, failure containment, or platform limit management.

Failure testing for real redundancy

Test at least four events separately: loss of an RR BGP process, loss of the RR's IGP reachability, loss of a client-to-RR session, and loss of the shared transport beneath both RRs. A design that survives only the first event is not convincingly redundant.

Consistency versus independence

Redundant reflectors generally need consistent baseline policy, but complete operational coupling can create correlated failure. Configuration automation should enforce intended equivalence while allowing controlled staggered deployment, canary validation, and independent rollback. Reliability comes from both similarity of intent and separation of failure.

15. Knowledge check

  1. Which problem in this post is a control-plane topology problem rather than a command-syntax problem?
  2. What evidence distinguishes “route was never learned” from “route was learned but not selected”?
  3. What negative test proves the scaling feature has not introduced unintended propagation?

Answers

  1. The relationship among BGP speakers and the rules governing propagation.
  2. Per-prefix BGP path detail and neighbor route evidence.
  3. Verify a route that should remain hidden/unadvertised is absent from the relevant neighbor's learned/advertised state.

16. Sources

  • RFC 4456 — route-reflector clusters and loop prevention
  • Cisco IOS XE 17.x — BGP route-reflector configuration
  • RFC 7964 — route oscillation considerations with route reflection/confederations

Day 38 — Route Reflectors: Clients, Non-Clients and Reflection Rules

1. Opening

Route reflection changes the iBGP propagation model so selected speakers can re-advertise iBGP-learned routes. That removes the universal full-mesh requirement, but it also means the engineer must understand client and non-client rules rather than treating the reflector as a transparent relay.

The engineering goal is not to memorize another BGP command. It is to understand what information each speaker is allowed to propagate, what path information can be hidden, and what failure domain is created by the chosen control-plane architecture.



Route Reflectors: Clients, Non-Clients and Reflection Rules
Route Reflectors: Clients, Non-Clients and Reflection Rules


2. Concept and standards behavior

RFC 4456 defines route reflectors, clients, ORIGINATOR_ID and CLUSTER_LIST. In simplified terms, a route learned from an RR client may be reflected to other clients and non-clients; a route learned from a non-client is reflected to clients, but not to other non-clients. The RR still runs the BGP decision process—it does not blindly flood every path.

A recurring rule in this module is that configuration scale and routing-information scale are different problems. A design can be easy to configure but still create poor path visibility, slow convergence, or an oversized blast radius. Conversely, a topology can carry complete information but be operationally expensive to maintain.

3. Scenario

Use RR1 as route reflector with R1, R2 and R3 as clients, plus R4 as a non-client iBGP peer. Originate one prefix at R1 and another at R4, then trace which speakers receive each path.

Documentation-safe addressing is used. The common lab AS is 65010. Internal loopbacks use 192.0.2.0/24 host routes; external test prefixes use 203.0.113.0/24 and 198.51.100.0/24 where needed. All fictional failures are lab-only.

Success criteria

  1. Every speaker learns the routes it is supposed to learn.
  2. The propagation rule can be explained before commands are applied.
  3. Loop-prevention attributes are visible where the feature uses them.
  4. A negative test proves that an invalid or unintended propagation does not occur.
  5. Rollback returns the topology to a known-good control-plane state.

4. Topology diagram

Route Reflectors: Clients, Non-Clients and Reflection Rules
Route Reflectors: Clients, Non-Clients and Reflection Rules

5. Prerequisites

  • IOS XE 17.18.x documentation baseline.
  • Stable IGP reachability among BGP loopbacks.
  • Explicit update-source and appropriate neighbor reachability for loopback-based sessions.
  • Authentication only if the lab image and design have been validated for it.
  • Independent management access before changing route-reflection/confederation policy.
  • Pre-change capture of BGP summary, selected paths and relevant neighbor state.

6. Baseline configuration

Topic-specific configuration excerpt — not a complete device configuration.

router bgp 65010
 neighbor 192.0.2.11 remote-as 65010
 neighbor 192.0.2.12 remote-as 65010
 neighbor 192.0.2.13 remote-as 65010
 neighbor 192.0.2.14 remote-as 65010
 !
 address-family ipv4
  neighbor 192.0.2.11 route-reflector-client
  neighbor 192.0.2.12 route-reflector-client
  neighbor 192.0.2.13 route-reflector-client
 exit-address-family

Do not silently transfer this syntax to IOS XR or NX-OS. Those platforms must use their own policy/configuration model.

7. Verification before modification

Use a combination of topology, session and route evidence:

show bgp ipv4 unicast summary
show bgp ipv4 unicast
show bgp ipv4 unicast 203.0.113.0/24
show bgp ipv4 unicast neighbors
show ip route

For route-reflection topics also inspect the path detail for ORIGINATOR_ID and CLUSTER_LIST where present. The absence or presence of a route must be explained by the propagation rule, not guessed from neighbor state alone.

8. Controlled modification

Convert R3 from ordinary non-client to RR client and predict which reflected routes become newly visible to it. Verify path detail and reflected attributes.

Predict the exact peers whose Adj-RIB-In/Loc-RIB should change. Then apply one control-plane change, re-check path detail, and verify that no unrelated peer loses reachability.

9. Fault injection

Illustrative lab — not a real incident.

Misclassify two edge speakers as non-clients and assume the RR will reflect routes between them. Both sessions stay Established, yet route visibility is incomplete.

Capture the state before and after the fault. A useful fault must change one causal variable only.

10. Step-by-step troubleshooting

  1. Confirm IGP reachability among BGP endpoints.
  2. Confirm TCP/BGP sessions are Established.
  3. Identify where the route originated.
  4. Trace the route one BGP hop at a time.
  5. Determine whether the receiving neighbor is eBGP, ordinary iBGP, RR client, RR non-client, or confederation peer.
  6. Inspect best-path state before assuming propagation is broken.
  7. Inspect ORIGINATOR_ID/CLUSTER_LIST for reflected routes.
  8. Inspect policy and next-hop reachability.
  9. Verify whether an alternative path was never learned, learned but not selected, or selected but not advertised.
  10. Apply the smallest proven correction.
  11. Re-run the same positive and negative tests.
  12. Observe stability before closing the change.

11. Root cause and correction

The root cause is a wrong RR relationship, not a failed TCP/BGP session. Correct the intended client/non-client role and verify reflected route attributes.

The correction must address the architectural cause rather than adding random neighbor statements until the route appears.

12. Post-fix verification

Verify:

  • all intended sessions remain Established;
  • the expected prefix is learned by the intended speakers;
  • reflected attributes are correct where applicable;
  • next hop remains reachable;
  • no routing loop is created;
  • the negative propagation test still passes.

13. Rollback

Restore the previous neighbor relationship or policy, not an ad-hoc alternative. If the change affects route reflection, preserve enough connectivity that clients do not become isolated during rollback. Roll back for unexpected loss of route visibility, oscillation, unintended path change, or evidence that the design created a larger failure domain than approved.

14. Production lessons

Route reflectors reduce adjacency requirements by changing propagation semantics. Document client groups explicitly; an Established session alone does not prove the route will be reflected.

Deep-dive engineering notes

Reflection is selective propagation, not flooding

A route reflector still chooses BGP paths. It does not automatically copy every received path to every client. This distinction becomes crucial when several exits advertise the same NLRI. A client may receive only the reflector's selected view unless a separate path-diversity mechanism is used.

The client/non-client rules should be written into the design documentation. A route learned from a client can be reflected to clients and non-clients. A route learned from a non-client is reflected to clients but not to other non-clients. An engineer who treats all iBGP sessions attached to an RR as equivalent can create a topology where all sessions are Established yet some internal destinations disappear.

ORIGINATOR_ID and CLUSTER_LIST are diagnostic evidence

ORIGINATOR_ID identifies the BGP speaker that originally advertised a reflected route inside the AS. CLUSTER_LIST records clusters traversed by the reflected path and supports loop prevention. These fields are not decoration; they help prove that a route has been reflected and can explain why an RR rejects a path that appears to have returned through its own cluster.

When troubleshooting, compare two paths for the same prefix and explicitly inspect these attributes. If a path disappears after a cluster design change, the CLUSTER_LIST is often more useful than repeated show bgp summary output.

Next-hop behavior remains a separate problem

Route reflection changes iBGP advertisement rules but does not magically fix next-hop reachability. If a client receives a reflected route whose NEXT_HOP is unreachable, the control plane may show the route while the forwarding result remains broken or the path may not be usable. Maintain IGP reachability to relevant next hops and apply next-hop-self only where the design actually requires it.

Placement principle

Place reflectors for control-plane stability and topology awareness, not merely where configuration is convenient. A route reflector should not be forced through a fragile access failure domain just because it is physically near clients. Dedicated control-plane nodes, redundant transport, and consistent policy often matter more than raw hop count.

15. Knowledge check

  1. Which problem in this post is a control-plane topology problem rather than a command-syntax problem?
  2. What evidence distinguishes “route was never learned” from “route was learned but not selected”?
  3. What negative test proves the scaling feature has not introduced unintended propagation?

Answers

  1. The relationship among BGP speakers and the rules governing propagation.
  2. Per-prefix BGP path detail and neighbor route evidence.
  3. Verify a route that should remain hidden/unadvertised is absent from the relevant neighbor's learned/advertised state.

16. Sources

  • RFC 4456 — BGP Route Reflection
  • RFC 4271 — base BGP behavior
  • Cisco IOS XE 17.18.x BGP configuration guide

Day 37 — Why iBGP Full Mesh Does Not Scale

1. Opening

iBGP does not automatically relay every route learned from another iBGP peer. That behavior prevents simple internal loops but creates a scaling consequence: without another mechanism, every iBGP speaker that must share routes with every other speaker needs direct iBGP adjacency.

The engineering goal is not to memorize another BGP command. It is to understand what information each speaker is allowed to propagate, what path information can be hidden, and what failure domain is created by the chosen control-plane architecture.


Why iBGP Full Mesh Does Not Scale
Why iBGP Full Mesh Does Not Scale


2. Concept and standards behavior

In a plain iBGP design, routes learned from one iBGP peer are not advertised to another iBGP peer. RFC 4456 was created specifically because the resulting full mesh becomes operationally expensive as the number of speakers grows. With n routers, a full mesh requires n(n-1)/2 sessions. Ten speakers require 45 sessions; 50 require 1,225. Session count is not the only cost: every new router also increases configuration, policy and troubleshooting surfaces.

A recurring rule in this module is that configuration scale and routing-information scale are different problems. A design can be easy to configure but still create poor path visibility, slow convergence, or an oversized blast radius. Conversely, a topology can carry complete information but be operationally expensive to maintain.

3. Scenario

Build six routers inside AS65010. R1 originates 203.0.113.0/24. Initially configure only a chain of iBGP sessions R1-R2-R3-R4-R5-R6. The expected failure is that the route does not simply propagate across the chain. Then compare that with a true full mesh.

Documentation-safe addressing is used. The common lab AS is 65010. Internal loopbacks use 192.0.2.0/24 host routes; external test prefixes use 203.0.113.0/24 and 198.51.100.0/24 where needed. All fictional failures are lab-only.

Success criteria

  1. Every speaker learns the routes it is supposed to learn.
  2. The propagation rule can be explained before commands are applied.
  3. Loop-prevention attributes are visible where the feature uses them.
  4. A negative test proves that an invalid or unintended propagation does not occur.
  5. Rollback returns the topology to a known-good control-plane state.

4. Topology diagram

Why iBGP Full Mesh Does Not Scale
Why iBGP Full Mesh Does Not Scale

5. Prerequisites

  • IOS XE 17.18.x documentation baseline.
  • Stable IGP reachability among BGP loopbacks.
  • Explicit update-source and appropriate neighbor reachability for loopback-based sessions.
  • Authentication only if the lab image and design have been validated for it.
  • Independent management access before changing route-reflection/confederation policy.
  • Pre-change capture of BGP summary, selected paths and relevant neighbor state.

6. Baseline configuration

Topic-specific configuration excerpt — not a complete device configuration.

router bgp 65010
 bgp log-neighbor-changes
 neighbor 192.0.2.2 remote-as 65010
 neighbor 192.0.2.2 update-source Loopback0
 !
 address-family ipv4
  neighbor 192.0.2.2 activate
 exit-address-family

Do not silently transfer this syntax to IOS XR or NX-OS. Those platforms must use their own policy/configuration model.

7. Verification before modification

Use a combination of topology, session and route evidence:

show bgp ipv4 unicast summary
show bgp ipv4 unicast
show bgp ipv4 unicast 203.0.113.0/24
show bgp ipv4 unicast neighbors
show ip route

For route-reflection topics also inspect the path detail for ORIGINATOR_ID and CLUSTER_LIST where present. The absence or presence of a route must be explained by the propagation rule, not guessed from neighbor state alone.

8. Controlled modification

Add the missing direct iBGP adjacencies until the six-node topology forms a full mesh. Predict the required session count before configuring it and verify that R6 now learns R1's prefix.

Predict the exact peers whose Adj-RIB-In/Loc-RIB should change. Then apply one control-plane change, re-check path detail, and verify that no unrelated peer loses reachability.

9. Fault injection

Illustrative lab — not a real incident.

Remove one direct session that is the only way a particular speaker receives R1's path while keeping IGP reachability intact. The session topology, not IP reachability, becomes the fault.

Capture the state before and after the fault. A useful fault must change one causal variable only.

10. Step-by-step troubleshooting

  1. Confirm IGP reachability among BGP endpoints.
  2. Confirm TCP/BGP sessions are Established.
  3. Identify where the route originated.
  4. Trace the route one BGP hop at a time.
  5. Determine whether the receiving neighbor is eBGP, ordinary iBGP, RR client, RR non-client, or confederation peer.
  6. Inspect best-path state before assuming propagation is broken.
  7. Inspect ORIGINATOR_ID/CLUSTER_LIST for reflected routes.
  8. Inspect policy and next-hop reachability.
  9. Verify whether an alternative path was never learned, learned but not selected, or selected but not advertised.
  10. Apply the smallest proven correction.
  11. Re-run the same positive and negative tests.
  12. Observe stability before closing the change.

11. Root cause and correction

The proven cause is incomplete iBGP topology combined with the rule that iBGP-learned routes are not normally re-advertised to other iBGP peers. Correct by building the intended full mesh or introducing an explicit scaling architecture such as route reflection/confederations.

The correction must address the architectural cause rather than adding random neighbor statements until the route appears.

12. Post-fix verification

Verify:

  • all intended sessions remain Established;
  • the expected prefix is learned by the intended speakers;
  • reflected attributes are correct where applicable;
  • next hop remains reachable;
  • no routing loop is created;
  • the negative propagation test still passes.

13. Rollback

Restore the previous neighbor relationship or policy, not an ad-hoc alternative. If the change affects route reflection, preserve enough connectivity that clients do not become isolated during rollback. Roll back for unexpected loss of route visibility, oscillation, unintended path change, or evidence that the design created a larger failure domain than approved.

14. Production lessons

Use the full mesh as a conceptual baseline, not as an automatic production recommendation. Count sessions, policy attachment points, change burden and failure domains before deciding how to scale.

Deep-dive engineering notes

Why the session formula matters operationally

The mathematical growth of a full mesh is easy to state but the operational consequence is more important. Every new iBGP speaker can require another neighbor relationship on every existing speaker. That means another authentication relationship if authentication is used, another set of address-family activation decisions, another point where inbound/outbound policy can diverge, another state machine to monitor, and another adjacency to account for during maintenance. The design burden therefore grows faster than the router count.

A full mesh can still be reasonable in a small, stable control-plane core. The lesson is not “full mesh is bad”; the lesson is that it is a scaling baseline whose costs must be consciously accepted. A five-router control plane and a fifty-router control plane are different engineering problems even if both fit in memory.

Why an iBGP chain fails even when every IP hop works

An engineer can ping R1 from R6 and still have missing BGP routes. That distinction is important: IGP reachability proves the TCP endpoints can potentially communicate; it does not override the iBGP advertisement rule. In the chain lab, R2 learning R1's prefix over iBGP does not grant R2 permission to advertise that same path onward to R3 as ordinary iBGP. This is why adding static routes, changing interface costs, or repeatedly clearing sessions does not solve the architectural fault.

A strong troubleshooting workflow therefore records the route at each speaker. If R2 has the prefix and R3 does not, the next question is not “is R3 reachable?” but “what relationship allows R2 to propagate this path to R3?” That question leads naturally to route reflection or confederations.

Scaling metrics worth recording

For a production design review, record at least: number of BGP speakers, expected sessions, number of address families, number of policy variants, number of route sources, route churn, expected convergence objective, and operational ownership. Session count alone can underestimate complexity if each session carries several AFI/SAFI families and unique policy.

Failure-domain implication

A full mesh distributes dependency: there is no single route reflector whose loss removes every reflected path. But it also distributes change surface across every speaker. Route reflection centralizes some control-plane functions and therefore trades adjacency scale for new architectural dependencies. That trade-off is the bridge to Day 38.

15. Knowledge check

  1. Which problem in this post is a control-plane topology problem rather than a command-syntax problem?
  2. What evidence distinguishes “route was never learned” from “route was learned but not selected”?
  3. What negative test proves the scaling feature has not introduced unintended propagation?

Answers

  1. The relationship among BGP speakers and the rules governing propagation.
  2. Per-prefix BGP path detail and neighbor route evidence.
  3. Verify a route that should remain hidden/unadvertised is absent from the relevant neighbor's learned/advertised state.

16. Sources

  • RFC 4271 — BGP-4 base specification and iBGP behavior
  • RFC 4456 — Route Reflection, motivation for avoiding iBGP full mesh
  • Cisco IOS XE 17.18.x BGP configuration guide

RETICUX BGP Mastery — Day 30 BGP Policy Changes Without Flapping: Route Refresh, Soft Reset and Safe Rollback



BGP Policy Changes Without Flapping: Route Refresh, Soft Reset and Safe Rollback

Opening

A policy change should not automatically become a routing outage. Modern BGP provides mechanisms for re-evaluating routes without tearing down an established session, but each mechanism has different state, memory and interoperability implications.

Learning objectives

  • Explain the protocol mechanism precisely.
  • Distinguish standards behavior from Cisco implementation behavior.
  • Build a deterministic policy with explicit match and action logic.
  • Verify both received and advertised routing information.
  • Diagnose the failure mode and roll back safely.


BGP Policy Changes Without Flapping: Route Refresh, Soft Reset and Safe Rollback
BGP Policy Changes Without Flapping: Route Refresh, Soft Reset and Safe Rollback


Concept and standards behavior

Policy changes should not require unnecessary session resets. Route Refresh allows a speaker to request re-advertisement from a peer, while Cisco soft-reset mechanisms provide operational alternatives with different memory and interoperability implications. The lab changes a community policy, refreshes inbound routes, verifies the result and rolls back safely.

Implementation boundary: the standard defines the wire attribute and semantics; Cisco IOS XE syntax, defaults and verification commands must be checked against the selected 17.18.x platform documentation before claiming exact execution behavior.

Engineering scenario

The lab uses three documentation-safe routers: EDGE-A (AS 65001), TRANSIT-A (AS 65002) and EDGE-B (AS 65003). EDGE-A originates 192.0.2.0/24 and 198.51.100.0/24; EDGE-B provides a second policy domain. Loopbacks and point-to-point links use TEST-NET values. No production prefixes, credentials or real ASNs are used.

The engineering requirement is to express policy using reusable metadata and precise filters, then prove that the resulting Adj-RIB-In, best path and Adj-RIB-Out behavior match the intended policy.

Topology


Conditional Advertisement with advertise-map, exist-map and non-exist-map
Conditional Advertisement with advertise-map, exist-map and non-exist-map

        AS 65002 TRANSIT-A
       /                   \
  AS 65001 EDGE-A ---- AS 65003 EDGE-B
  192.0.2.0/24
  198.51.100.0/24

Prerequisites

  • Cisco IOS XE 17.18.x or a release with equivalent documented commands.
  • Working eBGP sessions.
  • Reachability between BGP next hops.
  • Address family ipv4 unicast enabled.
  • Console/out-of-band access for rollback.

Baseline configuration

The lab uses a minimal BGP baseline and then introduces only the policy feature under study. Representative configuration is shown below; exact interface names may differ by image.

router bgp 65001
 bgp router-id 10.255.1.1
 neighbor 192.0.2.2 remote-as 65002
 address-family ipv4
  neighbor 192.0.2.2 activate
  network 192.0.2.0 mask 255.255.255.0
 exit-address-family

Verification before modification

Use evidence rather than assumptions:

show ip bgp summary
show ip bgp
show ip bgp neighbors 192.0.2.2 advertised-routes
show ip bgp neighbors 192.0.2.2 received-routes
show ip bgp 192.0.2.0/24

Record the session state, prefix counts, selected path, relevant attributes and advertisement state before changing policy.

Controlled modification

Change an inbound community policy, request a route refresh from the peer, and compare the result with a disruptive session reset. Document when route refresh is available, what information is re-requested, and why stored soft-reconfiguration state can have memory implications.

Fault injection

Illustrative lab — not a real incident. Inject one deliberate policy error: either omit the required send-community capability, invert a permit/deny condition, or apply the policy in the wrong direction. The fault must be introduced independently from the baseline so the learner can prove causality.

Expected symptoms include a route missing a tag, a prefix unexpectedly accepted or rejected, an attribute not being propagated, or an advertisement disappearing from Adj-RIB-Out.

Troubleshooting

  1. Define the affected prefix and peer.
  2. Confirm the BGP session is Established.
  3. Inspect the route in Adj-RIB-In.
  4. Inspect the relevant attribute/community state.
  5. Verify the policy match condition.
  6. Verify the policy direction.
  7. Inspect the selected best path.
  8. Inspect Adj-RIB-Out toward the affected neighbor.
  9. Check whether the capability required for attribute exchange is enabled.
  10. Apply the smallest correction and re-check both control-plane and forwarding results.

Root cause

The smallest proven root cause should be stated only after the evidence chain identifies where the expected policy state diverged from the observed state. Do not blame “BGP” when the evidence points to a policy predicate, attribute propagation rule, address-family activation or missing capability.

Post-fix verification

Verify the peer, prefix, attribute state, selected path, advertised path and traffic behavior. For policy-only changes, also verify that the session did not flap unnecessarily.

Rollback

Remove the new policy or restore the previous sequence, then re-verify the same evidence points used before the change. If the change affects an Internet edge, use out-of-band access and a predefined rollback trigger.

Production lessons

  • Treat BGP policy as code: explicit inputs, deterministic predicates and observable outputs.
  • Prefer reusable metadata over repeated prefix-specific rules where the architecture supports it.
  • Keep import and export intent separate.
  • Verify both sides of a policy boundary.
  • Never assume an attribute is being exchanged merely because it exists locally.

Knowledge check

  1. What is the difference between a route tag and a route decision attribute?
  2. What evidence proves that an outbound policy actually changed Adj-RIB-Out?
  3. Why is a policy change safer when it can be refreshed without tearing down the BGP session?

Answers

  1. A tag such as a community carries policy metadata; a decision attribute such as LOCAL_PREF directly influences selection.
  2. The neighbor’s advertised-route view, combined with the route’s attribute state, proves the outbound result.
  3. Avoiding an unnecessary session reset reduces convergence disruption and preserves established control-plane state.

Sources

  • Cisco command reference: https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/command/irg-cr-book/bgp-c1.html
  • Cisco route refresh: https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9600/software/release/17-18/command_reference/b_1718_9600_cr/ip_routing_commands.html

Publishing assets

  • Excerpt: A policy change should not automatically become a routing outage. Modern BGP provides mechanisms for re-evaluating routes without tearing down an established se
  • Social caption: BGP policy becomes safer when intent is explicit, metadata is reusable and every change is observable.
  • Hashtags: #BGP #Networking #Routing #Cisco #NetworkEngineering #NetOps
  • Diagram alt text: Day 30: BGP Policy Changes Without Flapping: Route Refresh, Soft Reset and Safe Rollback shown across a three-router BGP policy topology.

RETICUX BGP Mastery Day 29- BGP Import and Export Policy: The RFC 8212 Safety Boundary

BGP Import and Export Policy: The RFC 8212 Safety Boundary

Opening

An EBGP session is a routing boundary between administrative domains. Treating that boundary as an implicit “send everything, accept everything” relationship is a preventable operational risk. RFC 8212 formalizes explicit import and export policy as the safer model.


BGP Import and Export Policy: The RFC 8212 Safety Boundary
BGP Import and Export Policy: The RFC 8212 Safety Boundary


Learning objectives

  • Explain the protocol mechanism precisely.
  • Distinguish standards behavior from Cisco implementation behavior.
  • Build a deterministic policy with explicit match and action logic.
  • Verify both received and advertised routing information.
  • Diagnose the failure mode and roll back safely.

Concept and standards behavior

A production BGP session needs an explicit statement of what may be accepted and what may be advertised. RFC 8212 updates RFC 4271 so routes on an EBGP session without explicit import/export policy are not eligible for decision or advertisement. The lab builds a default-deny edge and then adds narrowly scoped policy.

Implementation boundary: the standard defines the wire attribute and semantics; Cisco IOS XE syntax, defaults and verification commands must be checked against the selected 17.18.x platform documentation before claiming exact execution behavior.

Engineering scenario

The lab uses three documentation-safe routers: EDGE-A (AS 65001), TRANSIT-A (AS 65002) and EDGE-B (AS 65003). EDGE-A originates 192.0.2.0/24 and 198.51.100.0/24; EDGE-B provides a second policy domain. Loopbacks and point-to-point links use TEST-NET values. No production prefixes, credentials or real ASNs are used.

The engineering requirement is to express policy using reusable metadata and precise filters, then prove that the resulting Adj-RIB-In, best path and Adj-RIB-Out behavior match the intended policy.

Topology


BGP Import and Export Policy: The RFC 8212 Safety Boundary
BGP Import and Export Policy: The RFC 8212 Safety Boundary

        AS 65002 TRANSIT-A
       /                   \
  AS 65001 EDGE-A ---- AS 65003 EDGE-B
  192.0.2.0/24
  198.51.100.0/24

Prerequisites

  • Cisco IOS XE 17.18.x or a release with equivalent documented commands.
  • Working eBGP sessions.
  • Reachability between BGP next hops.
  • Address family ipv4 unicast enabled.
  • Console/out-of-band access for rollback.

Baseline configuration

The lab uses a minimal BGP baseline and then introduces only the policy feature under study. Representative configuration is shown below; exact interface names may differ by image.

router bgp 65001
 bgp router-id 10.255.1.1
 neighbor 192.0.2.2 remote-as 65002
 address-family ipv4
  neighbor 192.0.2.2 activate
  network 192.0.2.0 mask 255.255.255.0
 exit-address-family

Verification before modification

Use evidence rather than assumptions:

show ip bgp summary
show ip bgp
show ip bgp neighbors 192.0.2.2 advertised-routes
show ip bgp neighbors 192.0.2.2 received-routes
show ip bgp 192.0.2.0/24

Record the session state, prefix counts, selected path, relevant attributes and advertisement state before changing policy.

Controlled modification

Start with no EBGP import/export policy, then explicitly permit only 192.0.2.0/24 inbound and only 198.51.100.0/24 outbound. Show how the explicit policy changes the eligible routes and advertisements, and explain the RFC 8212 model separately from platform-specific defaults.

Fault injection

Illustrative lab — not a real incident. Inject one deliberate policy error: either omit the required send-community capability, invert a permit/deny condition, or apply the policy in the wrong direction. The fault must be introduced independently from the baseline so the learner can prove causality.

Expected symptoms include a route missing a tag, a prefix unexpectedly accepted or rejected, an attribute not being propagated, or an advertisement disappearing from Adj-RIB-Out.

Troubleshooting

  1. Define the affected prefix and peer.
  2. Confirm the BGP session is Established.
  3. Inspect the route in Adj-RIB-In.
  4. Inspect the relevant attribute/community state.
  5. Verify the policy match condition.
  6. Verify the policy direction.
  7. Inspect the selected best path.
  8. Inspect Adj-RIB-Out toward the affected neighbor.
  9. Check whether the capability required for attribute exchange is enabled.
  10. Apply the smallest correction and re-check both control-plane and forwarding results.

Root cause

The smallest proven root cause should be stated only after the evidence chain identifies where the expected policy state diverged from the observed state. Do not blame “BGP” when the evidence points to a policy predicate, attribute propagation rule, address-family activation or missing capability.

Post-fix verification

Verify the peer, prefix, attribute state, selected path, advertised path and traffic behavior. For policy-only changes, also verify that the session did not flap unnecessarily.

Rollback

Remove the new policy or restore the previous sequence, then re-verify the same evidence points used before the change. If the change affects an Internet edge, use out-of-band access and a predefined rollback trigger.

Production lessons

  • Treat BGP policy as code: explicit inputs, deterministic predicates and observable outputs.
  • Prefer reusable metadata over repeated prefix-specific rules where the architecture supports it.
  • Keep import and export intent separate.
  • Verify both sides of a policy boundary.
  • Never assume an attribute is being exchanged merely because it exists locally.

Knowledge check

  1. What is the difference between a route tag and a route decision attribute?
  2. What evidence proves that an outbound policy actually changed Adj-RIB-Out?
  3. Why is a policy change safer when it can be refreshed without tearing down the BGP session?

Answers

  1. A tag such as a community carries policy metadata; a decision attribute such as LOCAL_PREF directly influences selection.
  2. The neighbor’s advertised-route view, combined with the route’s attribute state, proves the outbound result.
  3. Avoiding an unnecessary session reset reduces convergence disruption and preserves established control-plane state.

Sources

  • RFC 8212: https://www.rfc-editor.org/rfc/rfc8212
  • Cisco communities: https://www.cisco.com/c/en/us/td/docs/routers/ios/config/17-x/ip-routing/b-ip-routing/m_irg-external-sp-0.html

Publishing assets

  • Excerpt: An EBGP session is a routing boundary between administrative domains. Treating that boundary as an implicit “send everything, accept everything” relationship is
  • Social caption: BGP policy becomes safer when intent is explicit, metadata is reusable and every change is observable.
  • Hashtags: #BGP #Networking #Routing #Cisco #NetworkEngineering #NetOps
  • Diagram alt text: Day 29: BGP Import and Export Policy: The RFC 8212 Safety Boundary shown across a three-router BGP policy topology.

RETICUX BGP Mastery Day 28- BGP Policy Match Tools: Prefix Lists, AS-Path ACLs and Community Lists —

BGP Policy Match Tools: Prefix Lists, AS-Path ACLs and Community Lists


BGP Policy Match Tools: Prefix Lists, AS-Path ACLs and Community Lists
BGP Policy Match Tools: Prefix Lists, AS-Path ACLs and Community Lists


Opening

BGP policy becomes dangerous when every decision is encoded as a long list of unrelated exceptions. The safer approach is to separate matching primitives from policy actions and make every permit and deny explainable.

Learning objectives

  • Explain the protocol mechanism precisely.
  • Distinguish standards behavior from Cisco implementation behavior.
  • Build a deterministic policy with explicit match and action logic.
  • Verify both received and advertised routing information.
  • Diagnose the failure mode and roll back safely.

Concept and standards behavior

Reliable BGP policy begins with precise match conditions. Prefix lists answer “which prefixes?”, AS-path filters answer “which path identities?”, and community lists answer “which policy tags?”. Route maps combine these predicates with attribute-setting and permit/deny behavior. This post teaches the tools as composable policy primitives.

Implementation boundary: the standard defines the wire attribute and semantics; Cisco IOS XE syntax, defaults and verification commands must be checked against the selected 17.18.x platform documentation before claiming exact execution behavior.

Engineering scenario

The lab uses three documentation-safe routers: EDGE-A (AS 65001), TRANSIT-A (AS 65002) and EDGE-B (AS 65003). EDGE-A originates 192.0.2.0/24 and 198.51.100.0/24; EDGE-B provides a second policy domain. Loopbacks and point-to-point links use TEST-NET values. No production prefixes, credentials or real ASNs are used.

The engineering requirement is to express policy using reusable metadata and precise filters, then prove that the resulting Adj-RIB-In, best path and Adj-RIB-Out behavior match the intended policy.

Topology


BGP Policy Match Tools: Prefix Lists, AS-Path ACLs and Community Lists
BGP Policy Match Tools: Prefix Lists, AS-Path ACLs and Community Lists

        AS 65002 TRANSIT-A
       /                   \
  AS 65001 EDGE-A ---- AS 65003 EDGE-B
  192.0.2.0/24
  198.51.100.0/24

Prerequisites

  • Cisco IOS XE 17.18.x or a release with equivalent documented commands.
  • Working eBGP sessions.
  • Reachability between BGP next hops.
  • Address family ipv4 unicast enabled.
  • Console/out-of-band access for rollback.

Baseline configuration

The lab uses a minimal BGP baseline and then introduces only the policy feature under study. Representative configuration is shown below; exact interface names may differ by image.

router bgp 65001
 bgp router-id 10.255.1.1
 neighbor 192.0.2.2 remote-as 65002
 address-family ipv4
  neighbor 192.0.2.2 activate
  network 192.0.2.0 mask 255.255.255.0
 exit-address-family

Verification before modification

Use evidence rather than assumptions:

show ip bgp summary
show ip bgp
show ip bgp neighbors 192.0.2.2 advertised-routes
show ip bgp neighbors 192.0.2.2 received-routes
show ip bgp 192.0.2.0/24

Record the session state, prefix counts, selected path, relevant attributes and advertisement state before changing policy.

Controlled modification

Build a policy with three predicates: prefix-list selects 192.0.2.0/24, AS-path access-list rejects an unwanted transit path, and community-list selects tagged routes. Combine them in route-map sequences and demonstrate implicit deny behavior.

Fault injection

Illustrative lab — not a real incident. Inject one deliberate policy error: either omit the required send-community capability, invert a permit/deny condition, or apply the policy in the wrong direction. The fault must be introduced independently from the baseline so the learner can prove causality.

Expected symptoms include a route missing a tag, a prefix unexpectedly accepted or rejected, an attribute not being propagated, or an advertisement disappearing from Adj-RIB-Out.

Troubleshooting

  1. Define the affected prefix and peer.
  2. Confirm the BGP session is Established.
  3. Inspect the route in Adj-RIB-In.
  4. Inspect the relevant attribute/community state.
  5. Verify the policy match condition.
  6. Verify the policy direction.
  7. Inspect the selected best path.
  8. Inspect Adj-RIB-Out toward the affected neighbor.
  9. Check whether the capability required for attribute exchange is enabled.
  10. Apply the smallest correction and re-check both control-plane and forwarding results.

Root cause

The smallest proven root cause should be stated only after the evidence chain identifies where the expected policy state diverged from the observed state. Do not blame “BGP” when the evidence points to a policy predicate, attribute propagation rule, address-family activation or missing capability.

Post-fix verification

Verify the peer, prefix, attribute state, selected path, advertised path and traffic behavior. For policy-only changes, also verify that the session did not flap unnecessarily.

Rollback

Remove the new policy or restore the previous sequence, then re-verify the same evidence points used before the change. If the change affects an Internet edge, use out-of-band access and a predefined rollback trigger.

Production lessons

  • Treat BGP policy as code: explicit inputs, deterministic predicates and observable outputs.
  • Prefer reusable metadata over repeated prefix-specific rules where the architecture supports it.
  • Keep import and export intent separate.
  • Verify both sides of a policy boundary.
  • Never assume an attribute is being exchanged merely because it exists locally.

Knowledge check

  1. What is the difference between a route tag and a route decision attribute?
  2. What evidence proves that an outbound policy actually changed Adj-RIB-Out?
  3. Why is a policy change safer when it can be refreshed without tearing down the BGP session?

Answers

  1. A tag such as a community carries policy metadata; a decision attribute such as LOCAL_PREF directly influences selection.
  2. The neighbor’s advertised-route view, combined with the route’s attribute state, proves the outbound result.
  3. Avoiding an unnecessary session reset reduces convergence disruption and preserves established control-plane state.

Sources

  • Cisco command reference: https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/command/irg-cr-book/bgp-c1.html
  • Cisco route-map continue: https://www.cisco.com/c/en/us/td/docs/routers/ios/config/17-x/ip-routing/b-ip-routing/m_irg-route-map-continue.html

Publishing assets

  • Excerpt: BGP policy becomes dangerous when every decision is encoded as a long list of unrelated exceptions. The safer approach is to separate matching primitives from p
  • Social caption: BGP policy becomes safer when intent is explicit, metadata is reusable and every change is observable.
  • Hashtags: #BGP #Networking #Routing #Cisco #NetworkEngineering #NetOps
  • Diagram alt text: Day 28: BGP Policy Match Tools: Prefix Lists, AS-Path ACLs and Community Lists shown across a three-router BGP policy topology.

RETICUX BGP Mastery -Day 27 - BGP Large Communities: Policy That Survives Four-Byte ASNs —

BGP Large Communities: Policy That Survives Four-Byte ASNs

Opening

The original community format was designed around two-octet ASNs. Modern routing uses four-octet ASNs, and operators still need compact, transitive policy metadata. Large Communities were designed for that exact operational gap.


BGP Large Communities: Policy That Survives Four-Byte ASNs
BGP Large Communities: Policy That Survives Four-Byte ASNs 


Learning objectives

  • Explain the protocol mechanism precisely.
  • Distinguish standards behavior from Cisco implementation behavior.
  • Build a deterministic policy with explicit match and action logic.
  • Verify both received and advertised routing information.
  • Diagnose the failure mode and roll back safely.

Concept and standards behavior

Large Communities solve a key scaling problem in the original two-octet-ASN community convention. RFC 8092 defines a 12-octet value made from a four-octet Global Administrator and two four-octet operator-defined fields. Cisco IOS XE 17.18.x provides large-community lists, matching, setting and verification.

Implementation boundary: the standard defines the wire attribute and semantics; Cisco IOS XE syntax, defaults and verification commands must be checked against the selected 17.18.x platform documentation before claiming exact execution behavior.

Engineering scenario

The lab uses three documentation-safe routers: EDGE-A (AS 65001), TRANSIT-A (AS 65002) and EDGE-B (AS 65003). EDGE-A originates 192.0.2.0/24 and 198.51.100.0/24; EDGE-B provides a second policy domain. Loopbacks and point-to-point links use TEST-NET values. No production prefixes, credentials or real ASNs are used.

The engineering requirement is to express policy using reusable metadata and precise filters, then prove that the resulting Adj-RIB-In, best path and Adj-RIB-Out behavior match the intended policy.

Topology


BGP Large Communities: Policy That Survives Four-Byte ASNs
BGP Large Communities: Policy That Survives Four-Byte ASNs 

        AS 65002 TRANSIT-A
       /                   \
  AS 65001 EDGE-A ---- AS 65003 EDGE-B
  192.0.2.0/24
  198.51.100.0/24

Prerequisites

  • Cisco IOS XE 17.18.x or a release with equivalent documented commands.
  • Working eBGP sessions.
  • Reachability between BGP next hops.
  • Address family ipv4 unicast enabled.
  • Console/out-of-band access for rollback.

Baseline configuration

The lab uses a minimal BGP baseline and then introduces only the policy feature under study. Representative configuration is shown below; exact interface names may differ by image.

router bgp 65001
 bgp router-id 10.255.1.1
 neighbor 192.0.2.2 remote-as 65002
 address-family ipv4
  neighbor 192.0.2.2 activate
  network 192.0.2.0 mask 255.255.255.0
 exit-address-family

Verification before modification

Use evidence rather than assumptions:

show ip bgp summary
show ip bgp
show ip bgp neighbors 192.0.2.2 advertised-routes
show ip bgp neighbors 192.0.2.2 received-routes
show ip bgp 192.0.2.0/24

Record the session state, prefix counts, selected path, relevant attributes and advertisement state before changing policy.

Controlled modification

Define a large-community convention such as 65001:100:1 for customer-originated routes. Match the large community in a route map, set it on export and verify the value on the peer. Compare the semantics with a legacy 65001:100 standard community.

Fault injection

Illustrative lab — not a real incident. Inject one deliberate policy error: either omit the required send-community capability, invert a permit/deny condition, or apply the policy in the wrong direction. The fault must be introduced independently from the baseline so the learner can prove causality.

Expected symptoms include a route missing a tag, a prefix unexpectedly accepted or rejected, an attribute not being propagated, or an advertisement disappearing from Adj-RIB-Out.

Troubleshooting

  1. Define the affected prefix and peer.
  2. Confirm the BGP session is Established.
  3. Inspect the route in Adj-RIB-In.
  4. Inspect the relevant attribute/community state.
  5. Verify the policy match condition.
  6. Verify the policy direction.
  7. Inspect the selected best path.
  8. Inspect Adj-RIB-Out toward the affected neighbor.
  9. Check whether the capability required for attribute exchange is enabled.
  10. Apply the smallest correction and re-check both control-plane and forwarding results.

Root cause

The smallest proven root cause should be stated only after the evidence chain identifies where the expected policy state diverged from the observed state. Do not blame “BGP” when the evidence points to a policy predicate, attribute propagation rule, address-family activation or missing capability.

Post-fix verification

Verify the peer, prefix, attribute state, selected path, advertised path and traffic behavior. For policy-only changes, also verify that the session did not flap unnecessarily.

Rollback

Remove the new policy or restore the previous sequence, then re-verify the same evidence points used before the change. If the change affects an Internet edge, use out-of-band access and a predefined rollback trigger.

Production lessons

  • Treat BGP policy as code: explicit inputs, deterministic predicates and observable outputs.
  • Prefer reusable metadata over repeated prefix-specific rules where the architecture supports it.
  • Keep import and export intent separate.
  • Verify both sides of a policy boundary.
  • Never assume an attribute is being exchanged merely because it exists locally.

Knowledge check

  1. What is the difference between a route tag and a route decision attribute?
  2. What evidence proves that an outbound policy actually changed Adj-RIB-Out?
  3. Why is a policy change safer when it can be refreshed without tearing down the BGP session?

Answers

  1. A tag such as a community carries policy metadata; a decision attribute such as LOCAL_PREF directly influences selection.
  2. The neighbor’s advertised-route view, combined with the route’s attribute state, proves the outbound result.
  3. Avoiding an unnecessary session reset reduces convergence disruption and preserves established control-plane state.

Sources

  • RFC 8092: https://www.rfc-editor.org/rfc/rfc8092
  • Cisco large community: https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9600/software/release/17-18/configuration_guide/rtng/b_1718_rtng_9600_cg/configuring_bgp_large_community.html

Publishing assets

  • Excerpt: The original community format was designed around two-octet ASNs. Modern routing uses four-octet ASNs, and operators still need compact, transitive policy metad
  • Social caption: BGP policy becomes safer when intent is explicit, metadata is reusable and every change is observable.
  • Hashtags: #BGP #Networking #Routing #Cisco #NetworkEngineering #NetOps
  • Diagram alt text: Day 27: BGP Large Communities: Policy That Survives Four-Byte ASNs shown across a three-router BGP policy topology.

RETICUX BGP Mastery - BGP Extended Communities: Structured Policy Metadata — Day 26

BGP Extended Communities: Structured Policy Metadata

Opening

Standard communities are useful, but many production applications need structure: a type, an administrator field and semantics that can survive across routing domains. Extended communities provide that structure.


BGP Extended Communities: Structured Policy Metadata

BGP Extended Communities: Structured Policy Metadata



Learning objectives

  • Explain the protocol mechanism precisely.
  • Distinguish standards behavior from Cisco implementation behavior.
  • Build a deterministic policy with explicit match and action logic.
  • Verify both received and advertised routing information.
  • Diagnose the failure mode and roll back safely.

Concept and standards behavior

Extended Communities add structure and a larger application space to the original community attribute. RFC 4360 defines the attribute and its type structure; extended communities are foundational to MPLS VPN route targets, site-of-origin policy and many other BGP applications. This post separates the generic attribute from later VPN-specific use.

Implementation boundary: the standard defines the wire attribute and semantics; Cisco IOS XE syntax, defaults and verification commands must be checked against the selected 17.18.x platform documentation before claiming exact execution behavior.

Engineering scenario

The lab uses three documentation-safe routers: EDGE-A (AS 65001), TRANSIT-A (AS 65002) and EDGE-B (AS 65003). EDGE-A originates 192.0.2.0/24 and 198.51.100.0/24; EDGE-B provides a second policy domain. Loopbacks and point-to-point links use TEST-NET values. No production prefixes, credentials or real ASNs are used.

The engineering requirement is to express policy using reusable metadata and precise filters, then prove that the resulting Adj-RIB-In, best path and Adj-RIB-Out behavior match the intended policy.

Topology


BGP Extended Communities: Structured Policy Metadata

        AS 65002 TRANSIT-A
       /                   \
  AS 65001 EDGE-A ---- AS 65003 EDGE-B
  192.0.2.0/24
  198.51.100.0/24

Prerequisites

  • Cisco IOS XE 17.18.x or a release with equivalent documented commands.
  • Working eBGP sessions.
  • Reachability between BGP next hops.
  • Address family ipv4 unicast enabled.
  • Console/out-of-band access for rollback.

Baseline configuration

The lab uses a minimal BGP baseline and then introduces only the policy feature under study. Representative configuration is shown below; exact interface names may differ by image.

router bgp 65001
 bgp router-id 10.255.1.1
 neighbor 192.0.2.2 remote-as 65002
 address-family ipv4
  neighbor 192.0.2.2 activate
  network 192.0.2.0 mask 255.255.255.0
 exit-address-family

Verification before modification

Use evidence rather than assumptions:

show ip bgp summary
show ip bgp
show ip bgp neighbors 192.0.2.2 advertised-routes
show ip bgp neighbors 192.0.2.2 received-routes
show ip bgp 192.0.2.0/24

Record the session state, prefix counts, selected path, relevant attributes and advertisement state before changing policy.

Controlled modification

Introduce an extended community and show how it is matched separately from the standard COMMUNITIES attribute. Explain why route-target and site-of-origin are application-specific uses and defer full VPN route-target architecture to the later MPLS L3VPN module.

Fault injection

Illustrative lab — not a real incident. Inject one deliberate policy error: either omit the required send-community capability, invert a permit/deny condition, or apply the policy in the wrong direction. The fault must be introduced independently from the baseline so the learner can prove causality.

Expected symptoms include a route missing a tag, a prefix unexpectedly accepted or rejected, an attribute not being propagated, or an advertisement disappearing from Adj-RIB-Out.

Troubleshooting

  1. Define the affected prefix and peer.
  2. Confirm the BGP session is Established.
  3. Inspect the route in Adj-RIB-In.
  4. Inspect the relevant attribute/community state.
  5. Verify the policy match condition.
  6. Verify the policy direction.
  7. Inspect the selected best path.
  8. Inspect Adj-RIB-Out toward the affected neighbor.
  9. Check whether the capability required for attribute exchange is enabled.
  10. Apply the smallest correction and re-check both control-plane and forwarding results.

Root cause

The smallest proven root cause should be stated only after the evidence chain identifies where the expected policy state diverged from the observed state. Do not blame “BGP” when the evidence points to a policy predicate, attribute propagation rule, address-family activation or missing capability.

Post-fix verification

Verify the peer, prefix, attribute state, selected path, advertised path and traffic behavior. For policy-only changes, also verify that the session did not flap unnecessarily.

Rollback

Remove the new policy or restore the previous sequence, then re-verify the same evidence points used before the change. If the change affects an Internet edge, use out-of-band access and a predefined rollback trigger.

Production lessons

  • Treat BGP policy as code: explicit inputs, deterministic predicates and observable outputs.
  • Prefer reusable metadata over repeated prefix-specific rules where the architecture supports it.
  • Keep import and export intent separate.
  • Verify both sides of a policy boundary.
  • Never assume an attribute is being exchanged merely because it exists locally.

Knowledge check

  1. What is the difference between a route tag and a route decision attribute?
  2. What evidence proves that an outbound policy actually changed Adj-RIB-Out?
  3. Why is a policy change safer when it can be refreshed without tearing down the BGP session?

Answers

  1. A tag such as a community carries policy metadata; a decision attribute such as LOCAL_PREF directly influences selection.
  2. The neighbor’s advertised-route view, combined with the route’s attribute state, proves the outbound result.
  3. Avoiding an unnecessary session reset reduces convergence disruption and preserves established control-plane state.

Sources

  • RFC 4360: https://www.rfc-editor.org/rfc/rfc4360
  • Cisco communities: https://www.cisco.com/c/en/us/td/docs/routers/ios/config/17-x/ip-routing/b-ip-routing/m_irg-external-sp-0.html

Publishing assets

  • Excerpt: Standard communities are useful, but many production applications need structure: a type, an administrator field and semantics that can survive across routing d
  • Social caption: BGP policy becomes safer when intent is explicit, metadata is reusable and every change is observable.
  • Hashtags: #BGP #Networking #Routing #Cisco #NetworkEngineering #NetOps
  • Diagram alt text: Day 26: BGP Extended Communities: Structured Policy Metadata shown across a three-router BGP policy topology.

Featured Post

Day 41 — BGP Confederations: Sub-AS Design, External View and Migration

1. Opening Confederations are another way to scale BGP inside a large administrative domain. They divide the domain into member autonomous systems while presenting a single confederation identifier to external peers. They are powerful, but their operational model is more complex than simply 'using private ASNs inside.' The engineering goal is not to memorize another BGP command. It is to understand what information each speaker is allowed to propagate, what path information can be hidden, and what failure domain is created by the chosen control-plane architecture . 2. Concept and standards behavior RFC 5065 defines AS_CONFED_SEQUENCE and AS_CONFED_SET and how member-AS relationships are represented. Confederation external sessions have eBGP-like properties inside the confederation, while the confederation is presented externally as one AS. Modern guidance must also account for the fact that RFC 9774 prohibits new origination of AS_SET/AS_CONFED_SET in ordinary aggregation c...