CCNP SPCOR · Networking

AD, route maps, prefix lists & redistribution

Move routes between EIGRP and OSPF safely: seed metrics, the subnets keyword, prefix lists and route maps, route tags that stop feedback loops, distribute-lists, and administrative distance tuning that fixes suboptimal routing at two-way boundaries.

74 min read13 chapters2 labs15 quiz8 scenarios15 interview Q&A

This first module is free: read the lesson and take the quiz. Create a free account to run up to 3 hands-on labs.

Log inStart free
Jump to chapter (13)
01

The big picture: routes crossing borders

What you will learn in this module. By the end of these 13 chapters you will be able to explain, configure, verify and troubleshoot everything in the first block of the CCNP ENARSI 300-410 v1.1 blueprint: administrative distance (1.1), route maps for any routing protocol (1.2), loop prevention with filtering, tagging, split horizon and route poisoning (1.3), and redistribution between any routing protocols or routing sources (1.4). Along the way you will master prefix lists, ACL-based route matching and distribute-lists, because every one of those blueprint items depends on them.

Prerequisites

  • You can configure basic EIGRP and single-area OSPF and read show ip route (ENCOR routing modules).
  • You know what an ACL, a wildcard mask and a subnet mask are (CCNA).
  • You have seen the structured troubleshooting method from the ENARSI start module: define the problem, gather facts, test one hypothesis at a time.

We will not re-teach how EIGRP or OSPF form neighbours. Deep EIGRP, OSPF and BGP troubleshooting come in the next ENARSI modules; here we focus on what happens between routing sources.

An analogy: two countries and a border post

Imagine two countries that speak different languages and use different currencies. A company has offices in both, so goods must cross the border every day. At the border post an officer does four jobs:

  1. Decides whom to believe. If two messengers bring different news about the same town, the officer trusts the more reliable source. In a router that ranking is administrative distance (AD).
  2. Converts currency. A price in rupees means nothing across the border until it is converted. Routing metrics are the same: an OSPF cost of 3 means nothing to EIGRP, so the router assigns a seed metric when it redistributes.
  3. Applies customs rules. Some goods may cross, others may not. Prefix lists, route maps and distribute-lists are the customs rulebook.
  4. Stamps passports. A stamp says "this traveller came from country A". If the same traveller tries to re-enter country A through a second border post pretending to be foreign, the stamp gives him away. That stamp is a route tag, and it is the main tool against redistribution loops.

Keep this picture in mind. Every chapter in this module is one of these four jobs, done carefully.

Why it matters in real networks

Pure single-protocol networks are rare. Companies merge (one side runs EIGRP, the other OSPF), branches connect over BGP to a provider, static routes point at firewalls, and data centers inject routes into the campus. Wherever two routing sources meet, a router must redistribute: copy routes learned from one source into another protocol. Done carelessly, redistribution causes three classic failures: routes that silently never appear, traffic that takes a long detour (suboptimal routing), and routing loops or flapping routes. ENARSI loves these problems because they test whether you understand the rules, not just the commands.

EIGRP 100 (Delhi) OSPF area 0 (Bengaluru) E1RID 5.5.5.5 BR1RID 1.1.1.1 BR2RID 2.2.2.2 O1RID 9.9.9.9 users 172.16.10.0/24 Lo1 192.168.50.0/24 users 10.200.10.0/24 Lo 10.200.1.0, 10.200.2.0 boundary routers redistribute both ways

The module lab: Delhi runs EIGRP 100, Bengaluru runs OSPF area 0, and BR1 and BR2 run both. Links: E1-BR1 10.1.1.0/24, E1-BR2 10.1.2.0/24, BR1-O1 10.2.1.0/24, BR2-O1 10.2.2.0/24.

The lab you will build and break

Both labs in this module use the topology above. E1 is the Delhi core (EIGRP 100, router ID 5.5.5.5). It has the Delhi users on 172.16.10.0/24 and a partner network 192.168.50.0/24 on Loopback1 that it injects with redistribute connected, so the rest of EIGRP sees it as an external route. O1 is the Bengaluru core (OSPF area 0, router ID 9.9.9.9) with the Bengaluru users on 10.200.10.0/24 and loopbacks 10.200.1.0/24 and 10.200.2.0/24. BR1 and BR2 are the two boundary routers. Because there are two of them, the lab contains every classic multi-point redistribution problem.

  • Lab 1, Mutual redistribution with route tags: redistribute in both directions on both boundary routers, then use tags so nothing that left a domain comes back into it.
  • Lab 2, Troubleshoot suboptimal routing and missing prefixes: BR1 sends Delhi-bound traffic through Bengaluru, and a prefix list hides the Bengaluru users from Delhi. You fix both without removing the tags.

Worked example. Before any redistribution, E1's routing table holds only EIGRP and connected routes, and O1 holds only OSPF and connected routes. PCE (172.16.10.10) pinging PCO (10.200.10.10) fails at E1 with "destination unreachable", because E1 has no route to 10.200.10.0/24. After Lab 1, E1 shows D EX 10.200.10.0/24 with two next hops (10.1.1.2 and 10.1.2.2), O1 shows O E2 172.16.10.0/24 with metric 20 and tag 90, and the ping succeeds.

How this module is organised

Blueprint itemChapters
1.1 Administrative distance2 route selection and AD, 3 changing AD
1.2 Route maps (attributes, tagging, filtering)4 prefix lists, 5 ACLs for routes, 6 route maps, 7 distribute-lists
1.4 Redistribution8 rules and seed metrics, 9 configuring one-way and mutual
1.3 Loop prevention10 multi-point problems, 11 tags, split horizon, poisoning
All of the above12 troubleshooting workflow, 13 summary and exam checklist

Common mistake. Thinking of redistribution as "connecting two protocols". It is not a link between protocols; it is a copy from one routing table source into another protocol's database, done by one router, in one direction, under that router's rules. Every problem in this module comes from forgetting that.

Exam trap. The blueprint says "troubleshoot". Expect show-command output and a symptom, not a blank config screen. You must read show ip route, show ip protocols and show route-map output and spot the one wrong line.

The merger that went live on a Friday

After an acquisition, an engineer joined an EIGRP company to an OSPF company with two routers and typed redistribute ospf 1 under EIGRP and redistribute eigrp 100 subnets under OSPF on both. Delhi could still not reach Bengaluru, and on Monday traffic from one boundary router to a Delhi partner network was crossing the WAN twice. Checking showed two separate faults: no seed metric under EIGRP, so nothing entered EIGRP, and an AD preference that made one boundary router trust the OSPF copy of a Delhi route. Adding the seed metric, tags and distance ospf external 171 fixed both.

Lesson: redistribution is never "just one command"; plan metrics, filters, tags and AD together.

"What is route redistribution, and why do engineers consider it risky?"

Strong answer: redistribution is a router taking routes installed in its routing table by one source (a protocol, static or connected) and advertising them into another protocol with a new seed metric. It is risky because the original metric is lost, AD differences can make routers prefer a longer path, and with two or more redistribution points routes can feed back into their origin and cause loops. Mention the controls: filtering with prefix lists and route maps, tagging, and AD tuning.

Key takeaways

  • This module covers ENARSI 300-410 v1.1 items 1.1 to 1.4: AD, route maps, loop prevention and redistribution.
  • Redistribution copies routes from one routing source's table entries into another protocol, one router and one direction at a time.
  • Four jobs at every boundary: choose the source (AD), convert the metric (seed), filter (prefix lists, route maps), stamp (tags).
  • Two or more boundary routers bring suboptimal routing and feedback loops; both labs are built around that.
  • Lab devices: E1 (EIGRP 100), O1 (OSPF area 0), BR1 and BR2 running both.
02

Route selection and administrative distance

A newspaper editor receives the same story from three sources: a staff reporter, a news agency and an anonymous social media post. She does not compare how exciting each version is; she first asks which source she trusts more. A router does the same. When several routing sources offer the same prefix, it does not compare their metrics (an EIGRP metric and an OSPF cost are different currencies). It compares a trust score called administrative distance.

Three separate decisions

Beginners often mix up three decisions that happen at different stages. Keep them apart and most AD questions become easy.

  1. Best path inside one protocol. EIGRP picks its successor by lowest composite metric; OSPF picks by lowest cost, with intra-area preferred over inter-area over E1 over E2. This happens inside the protocol's own database.
  2. Which source installs the prefix in the routing table (RIB). If EIGRP, OSPF and a static route each offer exactly the same prefix and length, the router installs the one with the lowest AD. The losers stay in their own databases but are not used.
  3. Which RIB entry forwards a packet. When a packet arrives, the router uses the longest prefix match among all installed routes, regardless of AD.
EIGRP best path OSPF best path static route same prefix?lowest AD wins RIB FIBlongest match metric inside a protocol, AD between sources, longest match per packet

Route selection happens in stages: each protocol picks its best path, AD picks between sources for the same prefix, and forwarding uses the longest match.

The default AD table (Cisco IOS and IOS-XE)

SourceADRoute code
Connected interface0C
Static route1S
EIGRP summary route5D
External BGP (eBGP)20B
Internal EIGRP90D
OSPF (intra-area, inter-area and external)110O, O IA, O E1, O E2
IS-IS115i L1, i L2
RIP120R
ODR160o
External EIGRP170D EX
Internal BGP (iBGP) and locally originated BGP200B
Default route learned from DHCP254S*
Unknown or unreachable (never installed)255n/a

Two design ideas explain the odd-looking numbers. EIGRP gives its external routes (redistributed from somewhere else) a worse AD of 170 so that a real internal path is always preferred over a redistributed copy. BGP trusts eBGP (20) highly because external routes normally come only from the provider, but distrusts iBGP (200) so that an IGP path to an internal prefix wins over BGP.

Seeing AD in the output

In show ip route each entry shows [AD/metric]. The detailed view prints it in words.

BR1#show ip route 192.168.50.0
Routing entry for 192.168.50.0/24
  Known via "ospf 1", distance 110, metric 20
  Tag 90, type extern 2, forward metric 2
  Redistributing via eigrp 100
  Last update from 10.2.1.1 on GigabitEthernet0/1, 00:04:12 ago
  Routing Descriptor Blocks:
  * 10.2.1.1, from 2.2.2.2, 00:04:12 ago, via GigabitEthernet0/1
      Route metric is 20, traffic share count is 1
      Route tag 90

Worked example. In lab 2, BR1 hears 192.168.50.0/24 from two sources. From E1 over EIGRP it is D EX with AD 170 and metric 130816, one hop away. From BR2 through O1 it is O E2 with AD 110 and metric 20, three hops away. The router never compares 130816 with 20. It compares 170 with 110, installs the OSPF route, and sends Delhi-bound traffic through Bengaluru and back. The EIGRP copy still sits in show ip eigrp topology, unused. Chapter 10 explains why this happens with two boundary routers and chapter 3 fixes it.

Longest match beats AD

AD only compares identical prefixes. If OSPF offers 10.200.10.0/25 and EIGRP offers 10.200.10.0/24, both are installed, because they are different routes. A packet to 10.200.10.20 follows the OSPF /25 even though EIGRP's AD is lower; a packet to 10.200.10.200 follows the EIGRP /24.

Why AD matters for redistribution

Redistribution takes routes from the routing table, not from the protocol database. A router running redistribute eigrp 100 under OSPF only exports prefixes that are currently installed as EIGRP routes (plus connected networks covered by EIGRP). If AD made a prefix install from OSPF instead, that prefix is silently not redistributed from EIGRP. Many "missing route" tickets are really AD tickets.

Floating static routes

A floating static route uses AD deliberately. Giving a backup static route an AD higher than the dynamic protocol keeps it out of the RIB until the dynamic route disappears.

! backup to Bengaluru users, used only if OSPF loses the route
ip route 10.200.10.0 255.255.255.0 192.0.2.1 250

Common mistake. Choosing a floating static AD that is not higher than every protocol that can supply the prefix. AD 100 floats above EIGRP internal (90) but beats OSPF (110), so over OSPF it becomes the primary route. Pick a value above the worst real source, for example 250.

Exam trap. All OSPF route types share AD 110 by default; E1 versus E2 is a metric decision inside OSPF, not an AD decision. EIGRP is the protocol with two defaults: 90 internal, 170 external. And AD is local only: it is never carried in any routing update.

The backup link that carried everything

A branch had OSPF over MPLS and a floating static route over an internet VPN with ip route 0.0.0.0 0.0.0.0 Tunnel10 100. The static route was meant as backup, but the VPN link ran hot and the MPLS link idle. show ip route 0.0.0.0 showed "Known via static, distance 100" instead of OSPF. The engineer had copied the value from an EIGRP site where 100 was above 90. Changing the AD to 250 moved traffic back to MPLS.

Lesson: a floating static route must float above every dynamic source for that prefix, not just one.

"A router learns the same prefix from OSPF and EIGRP. How does it decide which one to use?"

Strong answer: metrics cannot be compared across protocols, so for the identical prefix and length the router installs the source with the lowest administrative distance: EIGRP internal 90 beats OSPF 110, but OSPF 110 beats EIGRP external 170. The loser stays in its protocol database. Then add the two subtleties: longest match still decides forwarding when prefixes differ, and only the installed route can be redistributed.

Key takeaways

  • Metric chooses inside a protocol, AD chooses between sources for the same prefix, longest match chooses per packet.
  • Remember 0, 1, 5, 20, 90, 110, 115, 120, 170, 200, 255, and that EIGRP external is 170.
  • AD is local and never advertised.
  • Redistribution exports only routes installed in the RIB by that source, so AD decides what can be redistributed.
  • A floating static route needs an AD above every dynamic source for that prefix.
03

Changing AD per protocol, per source and per prefix

Back to our newspaper editor. Usually the staff reporter is trusted more than the agency. But for one topic, say cricket, the agency has a specialist on the ground, so she decides: "for cricket stories from that agency, trust them more than usual." Routers allow exactly this. You can change the trust score for a whole protocol, for one route type, for routes from one source, or for one prefix from one source. The distance command is your tool, and every form of it is exam material.

Rule zero: AD is local

Changing AD on BR1 changes only which route BR1 installs. Neighbours never learn the new value. That is powerful (you can fix one router without touching others) and dangerous (two routers can now disagree about the best path and forward traffic to each other).

EIGRP

! classic mode: internal and external separately
router eigrp 100
 distance eigrp 90 175
! per source: internal routes learned from neighbour 10.1.1.1 get AD 95
 distance 95 10.1.1.1 0.0.0.0
! named mode: the same idea under the topology
router eigrp NK
 address-family ipv4 unicast autonomous-system 100
  topology base
   distance eigrp 90 175

In EIGRP the source address in the per-source form is the neighbour's interface address, and that form applies to internal routes. To change external routes, use distance eigrp.

OSPF

router ospf 1
! by route type
 distance ospf intra-area 110 inter-area 110 external 171
! everything from this process
 distance 115
! per source: routes whose LSA was originated by router ID 2.2.2.2
 distance 171 2.2.2.2 0.0.0.0

This is the classic trap: in OSPF the per-source address is the router ID of the router that originated the LSA (the Advertising Router), not the neighbour's interface address. OSPF routes are computed from the LSDB, so the "source" of an external route is the ASBR that created the type-5 LSA.

BGP, RIP and static

router bgp 65001
 distance bgp 20 200 200        ! external internal local
router rip
 distance 120
ip route 10.200.10.0 255.255.255.0 192.0.2.1 250   ! per static route

Per prefix: add an ACL

Every per-source form accepts an optional standard ACL that selects which prefixes get the new AD. A wildcard of 255.255.255.255 on the source means "from any source".

access-list 50 permit 192.168.50.0 0.0.0.255
router ospf 1
! only 192.168.50.0/24 from the two boundary routers gets AD 171
 distance 171 1.1.1.1 0.0.0.0 50
 distance 171 2.2.2.2 0.0.0.0 50
BR1 before D EX 192.168.50.0/24 AD 170 O E2 192.168.50.0/24 AD 110 (wins) path: O1, BR2, E1 (3 hops) BR1 after external 171 D EX 192.168.50.0/24 AD 170 (wins) O E2 192.168.50.0/24 AD 171 path: E1 directly (1 hop) one command flips which copy is installed

Raising OSPF external AD to 171 on the boundary router makes the EIGRP external copy (170) win.

Worked example: which knob in lab 2? BR1 prefers the O E2 copy (110) of the Delhi route over the D EX original (170). Three candidate fixes:

  • A. distance ospf external 171 on BR1 and BR2. D EX 170 now beats O E2 171. OSPF intra-area routes (O, 110) still beat any D EX copy of them. Clean and simple for this lab.
  • B. distance eigrp 90 105 on BR1 and BR2. D EX 105 beats O E2 110, which fixes 192.168.50.0/24. But BR2 redistributes the Bengaluru LAN 10.200.10.0/24 into EIGRP, and BR1 can hear it back through E1 as D EX 105 (for example whenever E1's best path points only at BR2), which beats BR1's own OSPF intra-area route (110). Tags stop it being redistributed again, but they do not stop BR1 installing it. New suboptimal routing: rejected.
  • C. Per-source OSPF distance for the boundary routers' router IDs with an ACL. Most precise; useful when the OSPF domain also has its own genuine external routes that must keep AD 110.

The lab expects option A: distance ospf external with any value from 171 upward.

Verification

BR1#show ip protocols | section ospf
Routing Protocol is "ospf 1"
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Router ID 1.1.1.1
  It is an autonomous system boundary router
 Redistributing External Routes from,
    eigrp 100, includes subnets in redistribution, route-map EIGRP-TO-OSPF
  ...
  Distance: intra-area 110 inter-area 110 external 171

BR1#show ip route 192.168.50.0
Routing entry for 192.168.50.0/24
  Known via "eigrp 100", distance 170, metric 130816, type external
  Redistributing via ospf 1
  Advertised by ospf 1 subnets route-map EIGRP-TO-OSPF

If the table does not change straight away, clear ip route 192.168.50.0 (or clear ip route *) re-installs routes from the protocol databases without resetting any neighbours.

Common mistake. Using the neighbour's interface IP in an OSPF per-source distance, for example distance 171 10.2.1.1 0.0.0.0 on BR1. Nothing matches, because OSPF compares against originating router IDs such as 2.2.2.2. The command is accepted silently and does nothing.

Exam trap. Changing AD on only one of two boundary routers. The other router keeps the old preference, so the problem moves instead of disappearing. When a question shows two redistribution points, the fix almost always goes on both.

The per-source distance that did nothing

An engineer wanted to distrust OSPF externals injected by a lab router and typed distance 200 172.31.0.2 0.0.0.0 under OSPF, using the lab router's link address. Nothing changed in show ip route. show ip ospf database external showed "Advertising Router: 3.3.3.3" for those LSAs. Re-entering the command as distance 200 3.3.3.3 0.0.0.0 immediately gave the lab routes AD 200.

Lesson: OSPF per-source distance matches the LSA's advertising router ID; EIGRP matches the neighbour's IP.

"How would you fix suboptimal routing caused by AD at a mutual redistribution point, and what would you avoid?"

Strong answer: raise the AD of the redistributed copies rather than lowering the AD of externals in general, for example distance ospf external 171 on every boundary router so EIGRP externals (170) win over their OSPF copies, while OSPF internal routes (110) still beat EIGRP copies of them. Mention per-source or per-prefix distance with an ACL when the domain has genuine externals, remember that OSPF per-source uses the originating router ID, and verify with show ip protocols and show ip route.

Key takeaways

  • distance eigrp int ext, distance ospf intra-area/inter-area/external, distance bgp ebgp ibgp local change AD per route type.
  • Per-source form: distance AD source wildcard [acl]; EIGRP uses the neighbour IP, OSPF the originating router ID.
  • Add a standard ACL to limit the change to certain prefixes.
  • AD changes are local, so apply them on every redistribution point.
  • Prefer raising OSPF external AD to lowering EIGRP external AD at an EIGRP/OSPF boundary.
04

Prefix lists: ge, le and many drills

Think of a courier company that sorts parcels with two questions. First: "is the address inside PIN area 5600xx?" Second: "is it a whole building, a floor, or a single flat?" A prefix list asks the same two questions about a route. The first is about the network bits (which area), the second is about the prefix length (how specific). Every route map, distribute-list and BGP filter you write in this module will lean on prefix lists, so we practise them until they are automatic.

Syntax

ip prefix-list NAME [seq N] {permit | deny} PREFIX/LEN [ge G] [le L]
ipv6 prefix-list NAME [seq N] {permit | deny} PREFIX/LEN [ge G] [le L]

A route matches an entry only if both tests pass:

  1. Network test: the first LEN bits of the route equal the first LEN bits of PREFIX.
  2. Length test: the route's own prefix length is inside the allowed range.
You writeAllowed route lengths
no ge, no leexactly LEN
le L onlyLEN up to L
ge G onlyG up to 32 (128 for IPv6)
ge G le LG up to L

The values must satisfy LEN < G ≤ L ≤ 32; IOS rejects an entry that breaks this rule. The list is read in sequence order (default steps of 5), the first matching entry decides, and every list ends with an implicit deny for anything not matched.

/0/8/16/24/32 10.200.0.0/16 (exact) /16 le 24 /16 ge 24 /16 ge 24 le 24

For 10.200.0.0/16 the network test is always "first 16 bits are 10.200"; ge and le only move the allowed length window.

Drills: match or not?

EntryMatchesDoes not match
10.200.1.0/2410.200.1.0/2410.200.10.0/24, 10.200.1.0/25
10.200.0.0/16 le 2410.200.0.0/16, 10.200.64.0/18, 10.200.10.0/2410.200.10.128/25, 10.201.0.0/24
10.200.0.0/16 ge 2410.200.10.0/24, 10.200.10.1/3210.200.0.0/16, 10.200.0.0/20
10.200.0.0/16 ge 24 le 24every /24 inside 10.200.0.0/16any /25 to /32, the /16 itself
0.0.0.0/0the default route onlyeverything else
0.0.0.0/0 le 32every IPv4 route ("permit any")nothing
0.0.0.0/0 ge 32every /32 host routeanything shorter than /32
172.16.0.0/20 le 24172.16.10.0/24 (third octet 0 to 15)172.16.20.0/24, 172.16.0.0/16
192.168.50.0/24 ge 25 le 26192.168.50.128/25, 192.168.50.64/26192.168.50.0/24, 192.168.50.0/27
0.0.0.0/1 ge 8 le 8classful class A networks such as 10.0.0.0/810.1.0.0/16, 172.16.0.0/16
128.0.0.0/2 ge 16 le 16class B networks such as 172.16.0.0/16172.16.10.0/24
192.0.0.0/3 ge 24 le 24class C networks such as 192.168.50.0/24192.168.0.0/16

Worked example: 172.16.0.0/20 le 24 against 172.16.20.0/24. Write the third octet in binary. /20 fixes the first 4 bits of the third octet. 0 is 0000 0000, so the list requires the third octet to start with 0000, meaning values 0 to 15. 20 is 0001 0100: it starts with 0001, so the network test fails before the length test is even checked. 172.16.10.0/24 has 10 = 0000 1010, passes the network test, and its length 24 is inside 20 to 24, so it matches.

Lab 2: the list that was too exact

In the troubleshooting lab, route map OSPF-TO-EIGRP permits only routes matching prefix list OSPF-LANS, which contains a single entry.

BR1#show ip prefix-list detail OSPF-LANS
Prefix-list with the last deletion/insertion: OSPF-LANS
ip prefix-list OSPF-LANS:
   count: 1, range entries: 0, sequences: 5 - 5, refcount: 2
   seq 5 permit 10.200.1.0/24 (hit count: 14, refcount: 1)

With no ge or le, only 10.200.1.0/24 passes. 10.200.2.0/24 and the users' LAN 10.200.10.0/24 fail the network test and fall to the implicit deny, so E1 never learns them. The fix adds a range entry; nothing needs to be removed.

ip prefix-list OSPF-LANS seq 10 permit 10.200.0.0/16 le 24
! the transit links 10.2.1.0/24 and 10.2.2.0/24 still do not match, by design
BR1#show ip prefix-list detail OSPF-LANS
ip prefix-list OSPF-LANS:
   count: 2, range entries: 1, sequences: 5 - 10, refcount: 3
   seq 5 permit 10.200.1.0/24 (hit count: 16, refcount: 1)
   seq 10 permit 10.200.0.0/16 le 24 (hit count: 4, refcount: 1)

The hit count column is the best live evidence that an entry is matching routes. You can reset it with clear ip prefix-list OSPF-LANS.

Editing safely

  • Insert between entries by choosing a free sequence number, for example seq 7.
  • Remove one entry with no ip prefix-list OSPF-LANS seq 5. no ip prefix-list OSPF-LANS removes the entire list, and every route map referencing it then matches nothing.
  • A prefix list that is referenced but does not exist behaves differently per feature; never rely on it. Create the list first, then reference it.

Common mistake. Writing permit 10.200.0.0/16 and expecting it to cover the /24s inside. Without le, it matches only the /16 itself. The second classic is ending a deny-style list without permit 0.0.0.0/0 le 32, which silently blocks everything else.

Exam trap. Prefix lists compare the prefix length of the route, not a wildcard. An ACL entry like permit 10.200.0.0 0.0.255.255 matches any route whose network address starts with 10.200 regardless of mask; 10.200.0.0/16 in a prefix list matches only that exact /16. Also know that 0.0.0.0/0 alone means only the default route.

The deny list that ate the network

To stop a lab network leaking into production, an engineer created ip prefix-list NO-LAB seq 5 deny 10.99.0.0/16 le 32 and applied it with distribute-list prefix NO-LAB out under EIGRP on a distribution router. Within seconds every access router lost all routes learned through it. The list had no permit entry, so the implicit deny blocked everything. Adding seq 100 permit 0.0.0.0/0 le 32 restored service.

Lesson: a list meant to deny a few routes must end with an explicit permit-any.

"Write a prefix list that matches all /24 to /28 subnets inside 10.0.0.0/8, and explain why a prefix list is better than an ACL for this."

Strong answer: ip prefix-list SUBS permit 10.0.0.0/8 ge 24 le 28. The /8 fixes the network bits, ge and le set the length window. A standard ACL can only test the network address, not the route's mask, so it cannot tell 10.1.1.0/24 from 10.1.1.0/30. Mention sequence numbers for easy editing, the implicit deny, and hit counts in show ip prefix-list detail.

Key takeaways

  • A prefix list tests network bits (first LEN bits) and prefix length (exact, or a ge/le window).
  • Rule: LEN < ge ≤ le ≤ 32; no ge/le means exact length.
  • First match wins, sequence numbers allow editing, and an implicit deny ends every list.
  • 0.0.0.0/0 is the default route only; 0.0.0.0/0 le 32 is everything.
  • Use show ip prefix-list detail hit counts to prove which entry matches.
05

ACLs vs prefix lists for route matching

Imagine a wedding guest list that contains only first names. "Rahul" is on the list, so every Rahul at the gate walks in: the uncle, the cousin and the neighbour's son. That is a standard ACL used to match routes: it sees the network address and nothing about the mask. A prefix list is the guest list with first name and age, so it can tell the uncle from the son. Both tools still appear everywhere in real configs and in exam output, so you must read both fluently.

Packets versus routes

You learned ACLs for filtering packets: source, destination, protocol, ports. When an ACL is referenced by a routing feature (a distribute-list, a route map's match ip address, a distance command) it filters routes instead, and the fields take on new meanings.

  • Standard ACL: the address and wildcard are compared with the route's network address only. The prefix length is ignored.
  • permit means "this route matches"; deny means "this route does not match". Inside a route map, "does not match" sends the route to the next sequence; it does not necessarily drop it.
  • The implicit deny at the end still exists: anything not permitted does not match.
routes: 10.200.10.0/24 and 10.200.10.0/25 standard ACL sees only 10.200.10.0 cannot tell /24 from /25 prefix list sees 10.200.10.0 and /24 matches each exactly

A standard ACL compares only the network address of a route; a prefix list also checks its length.

Standard ACL examples

! matches every route whose network address starts with 10.200
access-list 10 permit 10.200.0.0 0.0.255.255
! matches any route whose network address is exactly 192.168.50.0, any mask
access-list 20 permit 192.168.50.0 0.0.0.0
! "permit any" for routes
access-list 30 permit any

ACL 10 matches 10.200.0.0/16, 10.200.10.0/24 and 10.200.10.128/25 alike. ACL 20 matches 192.168.50.0/24 but also a summary 192.168.50.0/23 or a host route 192.168.50.0/32 if one appeared.

Extended ACLs: two different meanings

Extended ACLs add a second address field, and Cisco uses it differently depending on the feature. This is a favourite trap.

  • In BGP filtering and in route maps used by BGP, the source field matches the route's network and the destination field matches its mask. So an extended ACL can match length, just awkwardly.
  • In an IGP distribute-list (EIGRP, RIP), the source field matches the router that sent the update and the destination field matches the network.
! BGP style: exactly 10.200.10.0/24
access-list 101 permit ip host 10.200.10.0 host 255.255.255.0
! BGP style: every /24 inside 10.200.0.0/16
access-list 102 permit ip 10.200.0.0 0.0.255.255 host 255.255.255.0
! EIGRP distribute-list style: 192.168.50.0 only when learned from 10.1.1.1
access-list 103 permit ip host 10.1.1.1 host 192.168.50.0

Compare ACL 102 with the prefix list 10.200.0.0/16 ge 24 le 24. Same result, far less readable. That is why modern configs prefer prefix lists, and why the neighbour side of a filter is usually written with distribute-list prefix LIST gateway GW-LIST instead.

Side-by-side comparison

FeatureStandard ACLPrefix list
Matches network bitsyes, with a wildcardyes, with a length
Matches prefix lengthnoyes, exact or ge/le range
Non-contiguous wildcards (for example odd third octets)yesno
Edit one line in placenamed ACLs with sequence numbersyes, always sequenced
Hit counters for routesno useful counteryes, hit count per entry
Accepted by distanceyes (standard only)no
Accepted by route maps and distribute-listsyesyes

The distance command is the one place you still must use a standard ACL, as you saw in chapter 3. The other rare case is a wildcard that is not contiguous, such as "every odd /24", which a prefix list cannot express.

Worked example: rewriting a legacy filter. An old EIGRP config on BR1 contains distribute-list 10 out ospf 1 with access-list 10 permit 10.200.0.0 0.0.255.255, intended to redistribute only Bengaluru LANs of /24 or shorter. A new /30 link 10.200.99.0/30 appears in OSPF and leaks into EIGRP, because the ACL ignores length. The replacement is:

ip prefix-list BLR-LANS seq 10 permit 10.200.0.0/16 le 24
router eigrp 100
 no distribute-list 10 out ospf 1
 distribute-list prefix BLR-LANS out ospf 1

The /30 now fails the length test and stays out of EIGRP.

Other match clauses that take a list

  • match ip address {ACL | prefix-list NAME}: the route's network (and length, with a prefix list).
  • match ip next-hop {ACL | prefix-list NAME}: the route's next-hop address.
  • match ip route-source {ACL | prefix-list NAME}: the router that advertised the route.

Common mistake. Using a deny line in an ACL to "block" a route inside a route map permit entry and expecting the route to be dropped. The deny only means "no match here"; the route falls through to the next sequence, and if that sequence permits everything, the route goes through.

Exam trap. Given access-list 5 permit 172.16.0.0 0.0.255.255 in a distribute-list, the exam may ask whether 172.16.10.0/24 and 172.16.0.0/16 both pass. They do: a standard ACL ignores prefix length. Also expect questions about the extended ACL source and destination meanings.

Blocking a summary blocked a LAN

A team wanted to stop the summary 10.200.0.0/16 from entering EIGRP while keeping specific subnets, and added access-list 20 deny 10.200.0.0 0.0.0.0 plus access-list 20 permit any in a distribute-list. The summary disappeared, but so did the server LAN 10.200.0.0/24, because both routes share the network address 10.200.0.0. Replacing the ACL with ip prefix-list NO-SUM seq 5 deny 10.200.0.0/16 and seq 10 permit 0.0.0.0/0 le 32 removed only the /16.

Lesson: when two routes share a network address and differ only in length, only a prefix list can separate them.

"How does a standard ACL match routes, and when would you still use an ACL instead of a prefix list?"

Strong answer: in a routing context the standard ACL compares only the route's network address with the wildcard; permit means match, deny means no match, and the mask is ignored. Prefix lists add length matching, sequence editing and hit counts, so they are the default choice. I would still use an ACL where the command requires one, such as per-prefix distance, or for a non-contiguous wildcard. Bonus: explain the extended ACL network and mask trick in BGP.

Key takeaways

  • In route filtering a standard ACL matches only the network address; the prefix length is ignored.
  • ACL permit means match and deny means no match; in a route map a non-match moves to the next sequence.
  • Extended ACLs: BGP uses source = network and destination = mask; IGP distribute-lists use source = update sender and destination = network.
  • Prefix lists match length, are easy to edit and show hit counts; prefer them.
  • The distance command accepts only a standard ACL.
06

Route maps: match, set, sequence logic and continue

Picture a government office with numbered counters. You start at counter 10. The clerk checks your documents against a list of conditions. If everything is in order, he either stamps your form and sends you out (permit) or tears it up (deny). If your documents do not match his conditions, you walk to counter 20 and try again. If no counter accepts you, the guard at the exit turns you away. That office is a route map: an ordered list of entries, each with conditions (match) and actions (set), used to filter routes and change their attributes.

Anatomy

route-map NAME {permit | deny} SEQUENCE
 match ...        ! zero or more conditions
 set ...          ! zero or more actions, only used by permit entries

If you omit the action and sequence, IOS creates permit 10. Sequence numbers let you insert entries later (use gaps of 10).

The processing rules

  1. Entries are checked in ascending sequence order. The first entry whose conditions all succeed decides; later entries are not checked (unless continue is used).
  2. Different match commands in one entry are combined with AND: match tag 90 plus match ip address prefix-list OSPF-LANS means both must be true.
  3. Several values in one match command are combined with OR: match tag 90 110 means tag 90 or tag 110. Typing the same match type twice makes IOS merge the values into one line, so it is still OR.
  4. An entry with no match command matches every route. That is how you write "permit everything else".
  5. permit entry matched: the route is accepted and every set is applied. deny entry matched: the route is rejected.
  6. No entry matched: implicit deny.
route deny 10match tag 90 yes: rejected no permit 20prefix-list OSPF-LANS yes: set tag 110 no implicit denynot redistributed route map OSPF-TO-EIGRP in lab 2, evaluated top-down

Each route walks the entries in order; the first full match decides, and no match means implicit deny.

Four combinations people confuse

Route map entryPrefix list result for the routeOutcome
permitpermit (matches)route accepted, sets applied
permitdeny or no entry (no match)entry skipped, go to next sequence
denypermit (matches)route rejected
denydeny or no entry (no match)entry skipped, go to next sequence

The list only answers "does it match?". The route map entry's own permit or deny decides the fate.

Useful match and set clauses

  • match: ip address prefix-list, ip address ACL, ip next-hop, ip route-source, tag, interface, metric, route-type internal | external type-1 | external type-2 | local | nssa-external, and in BGP as-path and community.
  • set: metric (one value, or five EIGRP values), metric-type type-1 | type-2 for OSPF, tag, ip next-hop, and in BGP local-preference, weight, as-path prepend, community.

Route maps are called from redistribute ... route-map, distribute-list route-map, default-information originate route-map, BGP neighbor ... route-map in|out and policy-based routing (ip policy route-map, covered in the PBR module).

The continue clause

Normally the first matching entry ends processing. continue [SEQ] inside a matched permit entry tells the router to keep going to the next entry, or to a specific later sequence, so several entries can each add attributes to the same route. It is a BGP policy tool on IOS (for example set a community in one entry and local preference in another). Do not build redistribution or PBR designs on it.

route-map FROM-ISP permit 10
 match ip address prefix-list CUSTOMERS
 set community 65001:100
 continue 20
route-map FROM-ISP permit 20
 match as-path 10
 set local-preference 200
route-map FROM-ISP permit 30

Worked example: three routes through OSPF-TO-EIGRP on BR1 (lab 2 before the fix).

  • 10.200.1.0/24, O, no tag: seq 10 needs tag 90, no. Seq 20: prefix list seq 5 permits it, so it matches. Set tag 110. Redistributed into EIGRP.
  • 192.168.50.0/24, O E2, tag 90: seq 10 matches, deny. Not redistributed. This is the loop protection.
  • 10.200.10.0/24, O, no tag: seq 10 no, seq 20 prefix list has no entry for it, no. End of map: implicit deny. This is the missing-prefix ticket.

Verification

BR1#show route-map OSPF-TO-EIGRP
route-map OSPF-TO-EIGRP, deny, sequence 10
  Match clauses:
    tag 90
  Set clauses:
  Policy routing matches: 0 packets, 0 bytes
route-map OSPF-TO-EIGRP, permit, sequence 20
  Match clauses:
    ip address prefix-lists: OSPF-LANS
  Set clauses:
    tag 110
  Policy routing matches: 0 packets, 0 bytes

The "Policy routing matches" counters count packets forwarded by PBR, so they stay at zero for redistribution. To prove what a redistribution route map did, check prefix-list hit counts and look for the tag in the destination protocol (show ip route on E1 shows "Tag 110").

Common mistake. Writing a deny entry to block a few routes and forgetting the final route-map NAME permit 30 with no match. The implicit deny then blocks everything else, and the destination protocol loses every redistributed route. A redistribution that references a route map name that does not exist also redistributes nothing.

Exam trap. AND versus OR. Two match lines of different types in one entry must both be true. If the question wants "tag 90 OR in prefix list X", you need two separate entries. And set lines in a deny entry are never applied.

The AND that should have been OR

An engineer wanted to stop routes tagged 90 or any 10.99.0.0/16 lab prefix from entering EIGRP, and wrote one deny entry with match tag 90 and match ip address prefix-list LAB. Lab routes kept leaking and so did tag-90 routes. Only routes that were both tag 90 and inside 10.99.0.0/16 were blocked, and there were none. Splitting the conditions into deny 10 (tag) and deny 20 (prefix list) followed by permit 30 fixed it.

Lesson: different match commands in one entry are AND; separate entries give you OR.

"Walk me through how a router processes a route map used for redistribution."

Strong answer: the route is compared with entries in ascending sequence; within an entry different match types are ANDed and values in one match are ORed; an entry without match matches all. The first full match decides: permit accepts the route and applies the sets (tag, metric, metric type), deny rejects it. If nothing matches, the implicit deny drops it. Mention that continue exists mainly for BGP, and that show route-map counters are PBR packet counters, not route counts.

Key takeaways

  • Route maps are evaluated top-down by sequence; first full match wins; no match is an implicit deny.
  • Different match commands are AND; multiple values in one match are OR; no match line matches all.
  • The ACL or prefix list only decides "match or not"; the entry's permit or deny decides the route's fate.
  • Sets run only in permit entries: tag, metric, metric-type, next hop, BGP attributes.
  • End filtering maps with an empty permit entry; continue is mainly a BGP tool.
07

Distribute-lists: filtering routes in and out

Two ways to share travel information. In an office, news about a road closure passes from desk to desk, and anyone can decide not to pass a story on: that is distance vector, like EIGRP and RIP. In a city, every driver carries the same printed map book: that is link state, like OSPF. You can refuse to repeat a rumour, but you cannot tear a page out of everyone's map book; at most you can decide not to drive down a road yourself. That single idea explains almost everything about distribute-lists.

What a distribute-list is

A distribute-list attaches a filter (ACL, prefix list or route map) to a routing process, in one direction:

distribute-list {ACL | prefix NAME | route-map NAME} in  [interface]
distribute-list {ACL | prefix NAME | route-map NAME} out [interface | protocol process]
! EIGRP and RIP extra: match the advertising neighbour too
distribute-list prefix NAME gateway GW-NAME in [interface]

In EIGRP: real control over advertisements

EIGRP routers only know what neighbours tell them, so filters change what others learn.

  • out [interface]: the router does not advertise matching routes (on that interface or all). Downstream routers never hear them.
  • in [interface]: the router ignores matching routes received (from that interface or all). It will not install them and will not advertise them onward.
  • out ospf 1 (a protocol name): filters which routes are redistributed from that source into EIGRP. It is an alternative to a route map on the redistribute command.
router eigrp 100
 distribute-list prefix BRANCH-ONLY out GigabitEthernet0/1
 distribute-list prefix BLR-LANS out ospf 1
 distribute-list route-map NO-OSPF-BORN in GigabitEthernet0/0

In OSPF: only the local routing table

Every router in an area must hold an identical LSDB, so OSPF cannot simply drop LSAs.

  • distribute-list ... in filters between the LSDB and the RIB on this router only. The LSA stays in the database and is still flooded to neighbours.
  • distribute-list ... out is valid only with a protocol name on an ASBR, for example distribute-list prefix EXPORT out eigrp 100. It controls which routes become type-5 LSAs.
  • Real OSPF filtering of what other routers see is done elsewhere: area X filter-list prefix NAME in|out and area X range ... not-advertise on an ABR (type 3), and summary-address ... not-advertise on an ASBR (type 5). The ENARSI OSPF module covers these.
EIGRP E1 BR1 filter update never learned OSPF LSDB (full) RIB filter LSAs still flooded EIGRP filters updates; OSPF "in" only filters its own RIB

In EIGRP a distribute-list changes what neighbours learn; in OSPF an inbound distribute-list only hides routes from the local routing table.

Worked example: a safer AD design with a tag filter. In chapter 3 we rejected distance eigrp 90 105 because BR1 could install OSPF-born routes (tag 110) that came back through E1. A distribute-list removes that risk: BR1 refuses any EIGRP route carrying tag 110 from E1, because it already has the original in OSPF.

route-map NO-OSPF-BORN deny 10
 match tag 110
route-map NO-OSPF-BORN permit 20
router eigrp 100
 distribute-list route-map NO-OSPF-BORN in GigabitEthernet0/0

Now BR1 can never prefer an EIGRP copy of a Bengaluru route, whatever the AD. This "filter re-entering routes by tag" pattern is the most robust multi-point redistribution design, and chapter 11 builds on it.

Verification

BR1#show ip protocols | section eigrp
Routing Protocol is "eigrp 100"
  Outgoing update filter list for all interfaces is not set
    Redistributed ospf 1 filtered by BLR-LANS
  Incoming update filter list for all interfaces is not set
  Default networks flagged in outgoing updates
  Default networks accepted from incoming updates
  Redistributing: ospf 1
  EIGRP-IPv4 Protocol for AS(100)
    Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
    Router-ID: 1.1.1.1

O1#show ip protocols | include filter
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is (prefix-list) NO-TEST

After adding or changing an EIGRP distribute-list, EIGRP resynchronises with neighbours (graceful restart of the affected peers on recent releases). For an OSPF inbound filter, compare show ip ospf database (the LSA is still there) with show ip route (the route is gone).

Common mistake. Using an OSPF inbound distribute-list on a transit router to hide a network. Other routers still have the LSA and still compute paths through that router, which now has no route and drops the traffic: a black hole. Filter at the ABR or ASBR where the LSA is created, not in the middle of an area.

Exam trap. "Router X has distribute-list prefix NO-TEST in under OSPF; what do its neighbours see?" Answer: everything, unchanged. The LSDB is untouched. Also, an EIGRP distribute-list ... out naming a protocol filters redistribution, not neighbour advertisements.

Filtered on O1, dropped on O1

The Bengaluru security team asked that users in 10.200.10.0/24 must not reach the Delhi partner network 192.168.50.0/24. An engineer added an OSPF inbound distribute-list on O1 denying 192.168.50.0/24. The route vanished from O1, so O1 dropped the traffic; mission accomplished, apparently. A week later a second Bengaluru router, O2, was added behind O1. O2 still had the O E2 route (the LSA was flooded normally), sent partner traffic to O1, and O1 dropped it with ICMP unreachables, confusing the application team. The clean fix was to deny the prefix in route map EIGRP-TO-OSPF on both boundary routers, so no LSA existed.

Lesson: in OSPF, filter where the LSA is born; inbound distribute-lists only hide routes locally.

"Why does a distribute-list behave differently in OSPF than in EIGRP?"

Strong answer: EIGRP is distance vector, so a router advertises only what it chooses and in or out filters change what neighbours learn. OSPF is link state; all routers in an area need identical LSDBs, so an inbound distribute-list only filters routes from the LSDB into the local RIB while the LSA is still flooded, and out works only with a source protocol on an ASBR to limit redistribution. For real OSPF filtering use ABR area filter-list or range not-advertise, or filter at redistribution.

Key takeaways

  • A distribute-list attaches an ACL, prefix list or route map to a routing process, in or out, optionally per interface.
  • EIGRP: in and out really change what is learned and advertised; out PROTOCOL filters redistribution.
  • OSPF: in filters only the local RIB (LSAs still flood); out PROTOCOL works only on an ASBR.
  • A distribute-list with a route map can filter by tag, the core of robust multi-point redistribution.
  • Verify with show ip protocols and, for OSPF, compare the LSDB with the RIB.
08

Redistribution rules and seed metrics per protocol

At an airport currency desk, every country has its own rules. Some currencies convert automatically at a fixed rate, some need you to fill a form first, and some cannot be converted at all unless you insist. Redistribution works the same way. Each routing protocol has its own rule for the seed metric (the starting metric given to a redistributed route) and its own quirks about what it will take. This chapter is the rulebook; chapter 9 puts it to work.

Five rules that apply to every protocol

  1. Redistribution reads the routing table. redistribute X takes routes that are installed in the RIB by source X, plus the connected networks of interfaces on which X is enabled. A route that lost the AD contest to another source is not taken.
  2. It is per router and per direction. redistribute ospf 1 under EIGRP on BR1 moves routes one way on one router. The other direction and the other boundary router need their own commands.
  3. It is not transitive on one router. If BR1 redistributes RIP into OSPF and OSPF into EIGRP, the RIP routes do not reach EIGRP, because they are not installed as OSPF routes on BR1.
  4. The router must run both sources and have routes from the source installed.
  5. Redistributed routes are external in the target. EIGRP marks them D EX (AD 170) and records the origin; OSPF creates type-5 LSAs (type-7 in an NSSA) seen as O E1 or O E2; BGP gives them origin "incomplete" (?).
BR1 routing table D 172.16.10.0/24 (EIGRP) C 10.1.1.0/24 (EIGRP enabled) O E2 192.168.50.0/24 (won AD) O 10.200.10.0/24 (OSPF) redistribute into OSPF (type 5) 172.16.10.0/24, 10.1.1.0/24 192.168.50.0/24 NOT taken only EIGRP-installed and EIGRP-enabled connected

redistribute eigrp 100 on BR1 exports routes installed by EIGRP and EIGRP-enabled connected networks, never a prefix that OSPF won.

Seed metrics, protocol by protocol

IntoDefault seed metricWhat you must know
EIGRPinfinite (unreachable) for routes from other routing protocolsSet metric BW DELAY REL LOAD MTU, default-metric, or set metric in a route map. Connected and static routes use the interface metric. Another EIGRP AS keeps its metric.
OSPF20, type E2 (BGP-learned routes get 1)Change with metric, metric-type 1 or a route map. E2 cost stays fixed across the domain; E1 adds internal cost.
BGPMED = the route's IGP metricNext hop is the IGP next hop, origin is incomplete, local weight 32768. From OSPF, only internal routes are taken unless you add match internal external 1 external 2.
RIPinfinite for other routing protocolsGive a hop count (1 to 15) with metric or default-metric.

Two more defaults: redistribute ospf into EIGRP or RIP takes internal and external OSPF routes; redistribute bgp into an IGP takes only eBGP routes unless bgp redistribute-internal is configured. That second default protects IGPs from a full iBGP table.

The EIGRP seed metric in numbers

The five values are bandwidth in kbit/s, delay in tens of microseconds, reliability out of 255, load out of 255, and MTU. With the classic formula (K1 = K3 = 1) only bandwidth and delay count: metric = 256 x (10,000,000 / min bandwidth + total delay / 10).

Worked example: the lab seed 100000 100 255 1 1500. On BR1, the redistributed route has bandwidth 100,000 kbit/s and delay 1000 microseconds (100 tens). Its metric is 256 x (100 + 100) = 51,200, which E1 sees as the reported distance. E1 adds its Gigabit link (bandwidth 1,000,000 kbit/s, delay 10 microseconds): minimum bandwidth stays 100,000, delay becomes 1010, so the feasible distance is 256 x (100 + 101) = 51,456.

E1#show ip eigrp topology 10.200.10.0/24
EIGRP-IPv4 Topology Entry for AS(100)/ID(5.5.5.5) for 10.200.10.0/24
  State is Passive, Query origin flag is 1, 2 Successor(s), FD is 51456
  Descriptor Blocks:
  10.1.1.2 (GigabitEthernet0/0), from 10.1.1.2, Send flag is 0x0
      Composite metric is (51456/51200), route is External
      Vector metric:
        Minimum bandwidth is 100000 Kbit
        Total delay is 1010 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 1
        Originating router is 1.1.1.1
      External data:
        AS number of route is 1
        External protocol is OSPF, external metric is 2
        Administrator tag is 110 (0x0000006E)

The External data block is gold for troubleshooting: it tells you which router redistributed the route, from which protocol and process, the original metric, and the tag.

The subnets keyword: a little history

On older IOS releases, redistribute eigrp 100 under OSPF without subnets redistributed only classful networks and printed "% Only classful networks will be redistributed". Networks like 172.16.10.0/24 silently stayed out. On recent IOS and IOS-XE releases subnets behaviour is the default and the keyword is added to the running configuration automatically. Always type it anyway: it documents intent and protects you on older code. OSPFv3 has no subnets keyword.

Connected, static and default routes

  • redistribute connected [route-map] injects interface networks. E1 uses this for Loopback1 (192.168.50.0/24), which is why that network is D EX everywhere else. Use match interface in a route map to pick interfaces.
  • redistribute static injects static routes; into EIGRP they keep the outgoing interface metric.
  • A default route is special. OSPF will not advertise 0.0.0.0/0 through redistribute; use default-information originate [always]. BGP needs default-information originate or neighbor ... default-originate.

Common mistake. Typing redistribute ospf 1 under EIGRP with no metric. IOS accepts it, prints nothing, and show ip protocols even shows "Redistributing: ospf 1", yet no route appears, because the seed is infinite. Always add metric or default-metric.

Exam trap. "Default metric of routes redistributed into OSPF?" 20, E2, except 1 for BGP. "Which OSPF routes go into BGP by default?" Internal only. "Which BGP routes go into an IGP by default?" eBGP only. "Why is 172.16.10.0/24 missing on an old router?" No subnets.

The data center routes that never reached the WAN

A company redistributed OSPF into BGP at its WAN edge with redistribute ospf 1. Campus networks appeared in BGP, but the data center networks, which were redistributed into OSPF from static routes on a DC firewall pair, did not. show ip route on the edge showed them as O E2; show bgp ipv4 unicast did not list them. The default for OSPF into BGP is internal routes only. Changing the command to redistribute ospf 1 match internal external 1 external 2, with a prefix-list route map, brought them in.

Lesson: every protocol pair has its own defaults; know them before assuming a filter is to blame.

"You redistribute OSPF into EIGRP and nothing shows up. What do you check first?"

Strong answer: the seed metric. EIGRP treats routes from another routing protocol as unreachable without metric, default-metric or a route-map set metric; connected, static and other EIGRP AS routes are the exceptions. Then confirm the routes are actually installed as OSPF on the redistributing router, check any route map or distribute-list, and verify with show ip eigrp topology where the External data shows protocol, originating router and tag.

Key takeaways

  • Redistribution takes source-installed routes plus source-enabled connected networks, per router, per direction, not transitively.
  • Seeds: EIGRP and RIP need a metric; OSPF defaults to 20 E2 (1 from BGP); BGP sets MED from the IGP metric.
  • OSPF into BGP takes internal routes only by default; BGP into an IGP takes eBGP routes only.
  • Type subnets when redistributing into OSPF; older releases took only classful networks without it.
  • Default routes need default-information originate in OSPF and BGP.
09

One-way and mutual redistribution: building lab 1

A small village joined to a highway by a single one-way slip road is easy to manage: cars can enter the highway, and for the way back the village simply follows a sign that says "everything else, this way". Connect a big city to the highway with two two-way junctions and you need traffic police, signs and rules, or cars will circle forever. Redistribution designs grow the same way, from one-way at one point to mutual (two-way) at several points.

Four designs, four risk levels

one-way, one pointsafest; add a default route back mutual, one pointno feedback path, single failure point one-way, two pointsredundant; AD surprises possible mutual, two pointsfeedback, loops, suboptimal paths 1 point2+ points one directionboth directions

Risk grows with the number of redistribution points and directions; the module labs sit in the bottom-right corner.

  • One-way, one point. Example: a small OSPF branch domain behind BR1. BR1 redistributes OSPF into EIGRP, and instead of redistributing EIGRP back, it sends a default route into OSPF with default-information originate. No feedback is possible.
  • Mutual, one point. Both directions on one router. A route cannot come back through a second boundary, so feedback is impossible, but the single router is a single point of failure.
  • One-way, two points. Redundant, but a route redistributed at one point can still be seen by the other point in the destination protocol and win on AD.
  • Mutual, two or more points. Redundant and realistic, and home to every problem in chapter 10. You need tags, filters and AD planning.

Lab 1, step by step

Starting point: EIGRP 100 is up between E1, BR1 and BR2; OSPF area 0 is up between O1, BR1 and BR2; no redistribution yet.

Step 1: OSPF into EIGRP on both boundary routers.

! BR1 and BR2
router eigrp 100
 redistribute ospf 1 metric 100000 100 255 1 1500
! alternative: default-metric 100000 100 255 1 1500, then redistribute ospf 1
E1#show ip route eigrp | include EX
D EX     10.200.10.0/24 [170/51456] via 10.1.2.2, 00:00:41, GigabitEthernet0/1
                        [170/51456] via 10.1.1.2, 00:00:41, GigabitEthernet0/0
D EX     10.200.1.0/24 [170/51456] via 10.1.2.2, 00:00:41, GigabitEthernet0/1
                       [170/51456] via 10.1.1.2, 00:00:41, GigabitEthernet0/0

Two equal next hops: both boundary routers redistribute with the same seed, so E1 load-shares.

Step 2: EIGRP into OSPF on both boundary routers.

router ospf 1
 redistribute eigrp 100 subnets
O1#show ip route ospf | include E2
O E2     172.16.10.0/24 [110/20] via 10.2.2.2, 00:01:02, GigabitEthernet0/1
                        [110/20] via 10.2.1.2, 00:01:02, GigabitEthernet0/0
O E2     192.168.50.0/24 [110/20] via 10.2.2.2, 00:01:02, GigabitEthernet0/1

Notice the difference. 172.16.10.0/24 is an EIGRP internal route (AD 90) on both boundary routers, so both redistribute it. 192.168.50.0/24 is EIGRP external (AD 170). Whichever boundary router redistributed it first (here BR2) created an O E2 route; the other one (BR1) then preferred that O E2 copy (AD 110) over its own D EX route (AD 170), so BR1 has nothing to redistribute. You have just reproduced the suboptimal-routing problem that lab 2 fixes.

Step 3: feedback appears. BR1 now holds 192.168.50.0/24 as an OSPF route, and it redistributes OSPF into EIGRP, so it injects E1's own network back into EIGRP with the lab seed metric.

E1#show ip eigrp topology all-links | section 192.168.50.0
P 192.168.50.0/24, 1 successors, FD is 128256, serno 7
        via Rconnected (128256/0)
        via 10.1.1.2 (51456/51200), GigabitEthernet0/0

E1 still forwards with its connected route (AD 0), but EIGRP now holds a second path for this network pointing back through BR1, and that fake path even has the better metric. If Loopback1 went down, the fake path could keep the network alive in EIGRP and pull traffic into a loop.

Step 4: tag and filter. On both boundary routers, stamp routes on the way out and refuse the stamp on the way back (chapter 11 explains the design in depth).

route-map EIGRP-TO-OSPF deny 10
 match tag 110
route-map EIGRP-TO-OSPF permit 20
 set tag 90
route-map OSPF-TO-EIGRP deny 10
 match tag 90
route-map OSPF-TO-EIGRP permit 20
 set tag 110
router ospf 1
 redistribute eigrp 100 subnets route-map EIGRP-TO-OSPF
router eigrp 100
 redistribute ospf 1 metric 100000 100 255 1 1500 route-map OSPF-TO-EIGRP

Step 5: verify.

E1#show ip eigrp topology all-links | section 192.168.50.0
P 192.168.50.0/24, 1 successors, FD is 128256, serno 9
        via Rconnected (128256/0)

O1#show ip route 172.16.10.0
Routing entry for 172.16.10.0/24
  Known via "ospf 1", distance 110, metric 20
  Tag 90, type extern 2, forward metric 1
  Routing Descriptor Blocks:
    10.2.2.2, from 2.2.2.2, 00:00:32 ago, via GigabitEthernet0/1
      Route metric is 20, traffic share count is 1
      Route tag 90
  * 10.2.1.2, from 1.1.1.1, 00:00:32 ago, via GigabitEthernet0/0
      Route metric is 20, traffic share count is 1
      Route tag 90

The lab asks you to read that tag: 90. Finally, ping 10.200.10.10 from PCE succeeds, and PCO reaches 192.168.50.1.

Worked example: why the ping works in both directions. PCE (172.16.10.10) sends to 10.200.10.10. E1 has D EX 10.200.10.0/24 via BR1 and BR2 (seed from step 1). BR1 has O 10.200.10.0/24 via O1. The reply to 172.16.10.10 uses O1's O E2 172.16.10.0/24 via either boundary router, which has D 172.16.10.0/24 via E1. Every hop has a route in both directions: that is the definition of working redistribution.

Common mistake. Configuring the tag route maps on only one boundary router. The other one keeps redistributing untagged routes and will happily re-inject routes that the first router tagged. Mutual redistribution policy must be identical on every boundary router.

Exam trap. Mutual redistribution at a single point cannot cause route feedback between the two domains, because there is no second boundary for a route to come back through. Questions about feedback loops always involve two or more redistribution points.

The branch that only needed a default

A retail company ran mutual redistribution between its EIGRP core and every OSPF store router at two hubs. Every store change caused EIGRP churn and one hub sometimes routed store traffic through the other. The redesign made redistribution one-way: each hub redistributed OSPF store networks into EIGRP with tags, and sent only default-information originate into OSPF. The stores lost nothing (all non-store traffic went to the hubs anyway) and the feedback risk disappeared.

Lesson: the safest redistribution is the one you do not need; a default route often replaces the return direction.

"When would you choose one-way redistribution plus a default route instead of mutual redistribution?"

Strong answer: when one domain is a stub, such as branches or an acquired site whose only exit is the core. Redistribute the stub's prefixes into the core (tagged and filtered), and give the stub a default with default-information originate. It removes feedback and AD problems in the return direction and keeps the stub's tables small. Use mutual redistribution only when both domains need specific routes from each other, and then plan tags, filters and AD on every boundary router.

Key takeaways

  • Risk grows from one-way at one point to mutual at several points.
  • One-way plus a default route is the simplest safe design for stub domains.
  • Lab 1: seed metric into EIGRP, subnets into OSPF, then tag route maps on both boundary routers.
  • EIGRP externals redistributed at two points show both feedback and AD-based suboptimal routing.
  • Verify with show ip route (tags, next hops), show ip eigrp topology all-links and end-to-end pings.
10

Multi-point redistribution problems: suboptimal paths and loops

Two villages are joined by two bridges. A story leaves village A over the north bridge, is told in village B, and walks back over the south bridge. Now village A hears its own story, but told by strangers from B, and some people believe the stranger's version more than the original. That is route feedback. With two or more redistribution points it is not a rare accident; it is the default behaviour unless you stop it. This chapter dissects every failure it causes, using the module topology.

Problem 1: suboptimal routing caused by AD

Follow the Delhi partner network 192.168.50.0/24, an EIGRP external route (E1 redistributes it from Loopback1).

  1. Both boundary routers learn it as D EX, AD 170 from E1.
  2. BR2 redistributes it into OSPF first. O1 floods a type-5 LSA; BR1 receives it as O E2, AD 110.
  3. BR1 compares AD: 110 beats 170. BR1 installs the OSPF copy and routes 192.168.50.0/24 via O1, BR2 and E1: three hops instead of one.
  4. Because BR1's RIB entry is now OSPF, redistribute eigrp 100 on BR1 no longer exports it. Only BR2 advertises it into OSPF; the redundancy you built exists only on paper.
E1 BR1 BR2 O1 best path, unused 123 BR1 to 192.168.50.0/24: O E2 (AD 110) beats D EX (AD 170)

BR1 trusts the OSPF copy of an EIGRP external route and sends traffic around the ring; hops 1, 2, 3 match the lab 2 traceroute.

BR1#traceroute 192.168.50.1
Type escape sequence to abort.
Tracing the route to 192.168.50.1
VRF info: (vrf in name/id, vrf out name/id)
  1 10.2.1.1 1 msec 1 msec 1 msec
  2 10.2.2.2 1 msec 2 msec 1 msec
  3 10.1.2.1 2 msec *  2 msec

Hop 1 is O1 (10.2.1.1): the first answer in lab 2. Note that EIGRP internal routes such as 172.16.10.0/24 do not suffer, because AD 90 beats 110. The problem hits routes that are external in their home protocol: EIGRP externals, and in other designs RIP routes (120) versus OSPF or anything versus eBGP (20).

Problem 2: route feedback and a persistent loop

BR1 holds 192.168.50.0/24 as OSPF, and it redistributes OSPF into EIGRP. Without tags, it injects Delhi's own network back into Delhi. Now imagine Loopback1 on E1 goes down.

  1. E1 loses the connected route. EIGRP still has the feedback path via BR1 (chapter 9, step 3), so E1 installs D EX 192.168.50.0/24 via BR1.
  2. E1 advertises it to BR2 (split horizon only stops it towards BR1). BR2 keeps its D EX route and keeps redistributing it into OSPF.
  3. O1 keeps the LSA and forwards to BR2; BR1 keeps its O E2 route via O1 and keeps feeding EIGRP.
  4. Result: a network that no longer exists stays in both domains, and packets for it circle E1, BR1, O1, BR2, E1 until the TTL expires.
E1 BR1 BR2 O1 packets packets packets packets Lo1 is down, route lives on

Without tags, a withdrawn network keeps circulating between the two domains and traffic loops until TTL expiry.

Problem 3: lost metrics and misleading seeds

A seed metric replaces the route's real cost. In lab 1 the feedback copy of 192.168.50.0/24 arrived at E1 with metric 51,456, better than the genuine connected route's 128,256. Any router that compares only EIGRP metrics could prefer a path through the other domain. Seed metrics should be worse than real internal paths; a common rule is to use a seed that looks like a slow link.

Problem 4: oscillation

Because a boundary router stops redistributing a prefix as soon as it installs the other protocol's copy, the two boundary routers can take turns: BR1 withdraws its type-5 LSA, BR2's copy wins everywhere, then a change on BR2 flips the preference again. debug ip routing shows the same prefix being added and deleted every few seconds. Stable AD and tag policy removes the cause.

Worked example: which prefixes are at risk? In the module topology, list each prefix with its AD at the boundary routers. 172.16.10.0/24: D (90) versus O E2 copy (110), safe. 192.168.50.0/24: D EX (170) versus O E2 copy (110), at risk. 10.200.10.0/24: O (110) versus D EX copy (170), safe. 10.200.1.0/24: O (110), safe. Only prefixes whose original AD is worse than the copy's AD in the other protocol can be pulled the wrong way. That quick table predicts the lab 2 ticket before you run a single command.

The toolbox

ProblemPrimary fixAlso useful
Feedback of routes into their originTag on exit, deny tag on entry (chapter 11)Prefix lists that deny the domain's own ranges
AD-based suboptimal routingdistance ospf external 171 or per-source distancedistribute-list by tag inbound on boundary routers
Misleading seed metricsSeeds worse than internal pathsFiltering, E1 metric type for consistent OSPF costs
OscillationConsistent AD and tags on all boundary routersSummarise at the boundary to reduce churn

Common mistake. Fixing only the symptom router. The lab 2 ticket names BR1, but the policy (distance and tags) must be identical on BR1 and BR2. Otherwise the problem flips to BR2 the next time the redistribution race goes the other way, for example after a reload.

Exam trap. Tags stop feedback (re-redistribution) but not AD-based suboptimal routing: in lab 2 the tags are already in place and BR1 still takes the long path. The two problems need two different fixes.

The ghost subnet

A manufacturing plant decommissioned the 10.44.0.0/24 camera network, but the NOC still saw it in both RIP and OSPF a week later, and a ping to 10.44.0.1 produced "TTL expired in transit" from alternating routers. The two plant boundary routers ran mutual RIP and OSPF redistribution without tags. The route was feeding itself between the protocols. Adding tag-based deny route maps on both boundary routers made the ghost vanish within one update interval.

Lesson: a route that outlives its network, plus TTL-expired errors between boundary routers, means redistribution feedback.

"Describe the problems that appear with mutual redistribution at two points and how you would prevent them."

Strong answer: first, route feedback, where a route leaves a domain at one boundary and re-enters at the other, which can keep dead routes alive and form loops; prevent it with tags set on exit and denied on entry, or prefix lists. Second, suboptimal routing, where a boundary router prefers the other protocol's copy because of AD, for example O E2 110 over D EX 170; fix it with distance ospf external 171 or per-source distance. Mention lost metrics, oscillation, and applying the same policy on every boundary router.

Key takeaways

  • With two or more mutual redistribution points, route feedback happens by default.
  • Routes that are external in their home protocol (D EX 170) lose to the other protocol's copy (O E2 110): suboptimal routing.
  • A boundary router that installs the other copy stops redistributing the original, weakening redundancy.
  • Feedback can keep withdrawn networks alive and loop traffic; tags fix feedback, AD fixes the path choice.
  • Build a quick AD table per prefix to predict which routes are at risk.
11

Loop prevention: tags, split horizon and route poisoning

Every culture has rules against gossip loops. You stamp a letter so it is not delivered twice. You do not repeat a story back to the person who told it to you. And when a road is really closed, you shout "closed!" loudly instead of just going quiet, so nobody keeps driving towards it. Routing has exactly these three rules: tags, split horizon and route poisoning. Blueprint item 1.3 asks you to troubleshoot all of them, plus filtering.

Route tags: the passport stamp

A route tag is a 32-bit number attached to a route. It does nothing by itself; it is metadata that a route map can later match. Where it lives:

  • EIGRP external routes carry an administrator tag in the External data (named mode can also tag internal routes).
  • OSPF type-5 and type-7 LSAs carry an External Route Tag, and every router in the domain sees it.
  • RIPv2 has a route tag field. BGP has no tag field; it uses communities for the same purpose.

The key property: the tag survives the trip through the other protocol, because each redistribution can copy or set it. That lets the second boundary router recognise a route that originally came from the domain it is about to enter.

E1172.16.10.0/24 BR1set tag 90 OSPF domaintype 5, tag 90 BR2deny tag 90 not back into EIGRP 90 = born in EIGRP, 110 = born in OSPF (numbers chosen to echo AD)

BR1 stamps the Delhi route with tag 90 on its way into OSPF; BR2 sees the stamp and refuses to send it back into EIGRP.

The lab tag design, line by line

route-map EIGRP-TO-OSPF deny 10
 match tag 110          ! born in OSPF: never send it back to OSPF
route-map EIGRP-TO-OSPF permit 20
 set tag 90             ! everything else: stamp "born in EIGRP"
route-map OSPF-TO-EIGRP deny 10
 match tag 90           ! born in EIGRP: never send it back to EIGRP
route-map OSPF-TO-EIGRP permit 20
 set tag 110            ! everything else: stamp "born in OSPF"

The same four entries go on every boundary router. Each direction does two jobs: deny the other domain's stamp, and set its own stamp on everything it lets through.

O1#show ip ospf database external 172.16.10.0
            OSPF Router with ID (9.9.9.9) (Process ID 1)
                Type-5 AS External Link States
  LS age: 312
  Options: (No TOS-capability, DC, Upward)
  LS Type: AS External Link
  Link State ID: 172.16.10.0 (External Network Number )
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000002
  Checksum: 0x5A2C
  Length: 36
  Network Mask: /24
        Metric Type: 2 (Larger than any link state path)
        MTID: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 90

Worked example: three or more boundary routers. With domain tags, any number of boundary routers can share the same two values. Some designs instead give each boundary router its own tag (BR1 sets 1, BR2 sets 2, BR3 sets 3) and every router denies all of them with one line, match tag 1 2 3 (OR logic). Per-router tags let you see in any routing table exactly which boundary router injected a route, which speeds up troubleshooting in large networks.

Tags to protect path choice

Tags plus deny stop re-redistribution. To also stop a boundary router from installing a route that originally came from its own other side, filter by tag inbound, as in chapter 7: distribute-list route-map NO-OSPF-BORN in under EIGRP (deny tag 110). OSPF can do the same for its RIB with distribute-list route-map matching tag 90. Combining tags with this inbound filter is the most robust multi-point design.

Split horizon and poison reverse

Split horizon: a distance-vector router never advertises a route out of the interface it uses to reach that route. It prevents two-router loops. RIP and EIGRP enable it by default. The classic exception is a hub-and-spoke network such as a DMVPN hub, where all spokes sit behind one tunnel interface; the hub must use no ip split-horizon eigrp 100 on the tunnel so spokes learn each other's networks (DMVPN module). Poison reverse is the stronger form: advertise the route back to where it came from, but with an infinite metric.

Route poisoning

When a route fails, the router advertises it immediately with an infinite metric instead of silently dropping it: hop count 16 in RIP, maximum delay in EIGRP (EIGRP then queries neighbours for an alternative). Neighbours remove it at once instead of waiting for timers. RIP adds hold-down timers and triggered updates; EIGRP relies on DUAL's feasibility condition, which only accepts backup paths that are guaranteed loop-free.

Other built-in guards worth knowing

ProtocolGuard
EIGRPIgnores external routes whose originating router ID equals its own; feasibility condition
OSPFSPF on a shared LSDB; inter-area routes must pass through area 0; down bit and domain tag for PE-CE (VRF module)
BGPRejects routes containing its own AS in AS_PATH; iBGP routes are not re-advertised to iBGP peers
RIPSplit horizon, poison reverse, route poisoning, hold-down, maximum 15 hops

Common mistake. Setting tags but never matching them. A route map with only set tag 90 stamps passports that nobody checks. Also, tag 0 is the default for untagged routes, so match tag 0 matches almost everything and is not a loop guard.

Exam trap. Duplicate EIGRP router IDs. Because EIGRP drops external routes that carry its own router ID as the originator, two routers with the same router ID silently ignore each other's redistributed routes while internal routes work fine. Symptom: only D EX routes missing.

The cloned router ID

A new Delhi branch router was built from E1's configuration template and kept eigrp router-id 5.5.5.5. It redistributed its static routes to a vendor network into EIGRP. Every router except E1 learned them; E1 did not. show ip eigrp topology on BR1 showed "Originating router is 5.5.5.5" for the vendor routes, the same as E1's own router ID, so E1 discarded them as its own looping externals. Changing the branch router ID to 5.5.5.6 fixed it.

Lesson: the originating router ID in EIGRP external data is a loop guard; duplicate router IDs trigger it falsely.

"How do route tags prevent redistribution loops, and what other loop-prevention mechanisms should a network engineer know?"

Strong answer: a boundary router sets a tag identifying the source domain when it redistributes; the tag travels in EIGRP external data or the OSPF type-5 LSA; the other boundary router's route map denies that tag, so the route cannot re-enter its origin. Tags can also drive inbound distribute-lists to prevent installing re-entered routes. Then list the built-ins: split horizon and poison reverse, route poisoning with infinite metrics, EIGRP feasibility condition and originating router ID check, OSPF's backbone rule, BGP AS_PATH.

Key takeaways

  • A tag is a 32-bit stamp carried in EIGRP externals and OSPF type-5/7 LSAs; it survives redistribution.
  • Set your domain's tag on exit and deny the other domain's tag on entry, identically on every boundary router.
  • Inbound distribute-lists matching tags also protect path selection.
  • Split horizon, poison reverse and route poisoning prevent distance-vector loops; disable split horizon only where needed, such as a DMVPN hub.
  • Duplicate EIGRP router IDs make routers drop each other's external routes.
12

Troubleshooting workflow: walking lab 2

A good doctor does not start with surgery. She asks where it hurts, checks the pulse, orders one test, reads it, and only then treats. Redistribution problems deserve the same discipline, because the symptom (a missing route in Delhi) often appears far from the cause (one line in a prefix list in a boundary router). This chapter gives you a repeatable workflow and then walks the lab 2 tickets exactly as you would in the lab or the exam.

The workflow: follow the route from birth to destination

  1. Define the symptom precisely. Which prefix, seen from which router, and which of three types: missing, wrong path, or looping/flapping. Use show ip route PREFIX, traceroute and ping with a source.
  2. Birth: is the route installed from the intended source on the redistributing router? show ip route PREFIX and read "Known via". If AD made another source win, nothing will be exported from the intended one.
  3. The redistribute command. show ip protocols and show running-config | section router: right process or AS number, seed metric into EIGRP or RIP, subnets into OSPF, the route-map name spelled exactly.
  4. Policy. show route-map NAME, show ip prefix-list detail NAME (hit counts), ACLs. Walk the route through the entries by hand.
  5. The target database. show ip eigrp topology PREFIX (External data, originating router, tag) or show ip ospf database external PREFIX (advertising router, tag, metric type).
  6. Propagation. Distribute-lists, summarisation, EIGRP stub, OSPF stub or totally stubby areas (which block type-5 LSAs), filtering on ABRs.
  7. Path choice. On each hop, compare AD and metric; check both boundary routers.
  8. Loops. TTL-expired messages, debug ip routing showing add and delete churn, missing tags.
1 symptom 2 source RIB 3 redistribute 4 policy 5 target DB 6 propagation 7 AD and path 8 loops, tags follow the prefix from where it is born to where it is missing

Eight checks in order: most tickets are solved by step 4, but steps 7 and 8 catch the multi-point problems.

Lab 2, ticket 1: BR1 takes the long way to 192.168.50.0/24

Symptom. The lab asks for hop 1 of a traceroute from BR1.

BR1#traceroute 192.168.50.1
Tracing the route to 192.168.50.1
  1 10.2.1.1 1 msec 1 msec 1 msec
  2 10.2.2.2 1 msec 2 msec 1 msec
  3 10.1.2.1 2 msec *  2 msec

Hop 1 is 10.2.1.1, O1: BR1 is sending Delhi traffic into Bengaluru. Check the RIB.

BR1#show ip route 192.168.50.0
Routing entry for 192.168.50.0/24
  Known via "ospf 1", distance 110, metric 20
  Tag 90, type extern 2, forward metric 2
  Redistributing via eigrp 100
  Routing Descriptor Blocks:
  * 10.2.1.1, from 2.2.2.2, 00:12:40 ago, via GigabitEthernet0/1
      Route metric is 20, traffic share count is 1
      Route tag 90

The route is O E2, tag 90 (born in EIGRP), advertised by 2.2.2.2 (BR2). The tags already prevent it going back into EIGRP, so this is not feedback. It is AD: 110 beats the D EX 170 still visible in show ip eigrp topology 192.168.50.0/24. Fix on both boundary routers:

router ospf 1
 distance ospf external 171
BR1#show ip route 192.168.50.0 | include Known
  Known via "eigrp 100", distance 170, metric 130816, type external
O1#show ip route 192.168.50.0 | include via
  * 10.2.2.2, from 2.2.2.2, 00:00:18 ago, via GigabitEthernet0/1
    10.2.1.2, from 1.1.1.1, 00:00:18 ago, via GigabitEthernet0/0

BR1 now uses E1 directly, and because BR1's RIB entry is EIGRP again, it redistributes the prefix too: O1 load-shares across both boundary routers. Redundancy restored.

Lab 2, ticket 2: Delhi cannot reach the Bengaluru users

Symptom. E1 has only one Bengaluru prefix.

E1#show ip route | include 10.200
D EX     10.200.1.0/24 [170/51456] via 10.1.2.2, 00:14:02, GigabitEthernet0/1
                       [170/51456] via 10.1.1.2, 00:14:02, GigabitEthernet0/0

Source RIB: BR1 has O 10.200.10.0/24 and O 10.200.2.0/24, so birth is fine. Redistribute command: show ip protocols shows "Redistributing: ospf 1" and the running config shows route-map OSPF-TO-EIGRP with the seed metric. Policy:

BR1#show route-map OSPF-TO-EIGRP
route-map OSPF-TO-EIGRP, deny, sequence 10
  Match clauses:
    tag 90
route-map OSPF-TO-EIGRP, permit, sequence 20
  Match clauses:
    ip address prefix-lists: OSPF-LANS
  Set clauses:
    tag 110
BR1#show ip prefix-list detail OSPF-LANS
   seq 5 permit 10.200.1.0/24 (hit count: 14, refcount: 1)

Walk 10.200.10.0/24 through the map: not tag 90, then no prefix-list entry matches, so implicit deny. Fix on both boundary routers, without touching the tagging:

ip prefix-list OSPF-LANS seq 10 permit 10.200.0.0/16 le 24
E1#show ip route 10.200.10.0
Routing entry for 10.200.10.0/24
  Known via "eigrp 100", distance 170, metric 51456, type external
  Routing Descriptor Blocks:
  * 10.1.2.2, from 10.1.2.2, 00:00:25 ago, via GigabitEthernet0/1
      Route metric is 51456, traffic share count is 1
      Route tag 110
    10.1.1.2, from 10.1.1.2, 00:00:25 ago, via GigabitEthernet0/0

Final check: PCE pings 10.200.10.10 and PCO pings 192.168.50.1. A ping sourced from O1 itself may still fail, because O1 sources it from a transit link (10.2.x.x) that the prefix list deliberately does not redistribute. That is expected, not a new fault.

Debugging, carefully

debug ip routing prints every RIB add and delete, and reveals AD fights and oscillation.

RT: add 192.168.50.0/24 via 10.1.1.1, eigrp metric [170/130816]
RT: closer admin distance for 192.168.50.0, flushing 1 routes
RT: add 192.168.50.0/24 via 10.2.1.1, ospf metric [110/20]

Use it on a lab router or with logging to the buffer and a short capture window, then undebug all.

Worked example: symptom to cause cheat table. Only D EX routes missing on one router: duplicate EIGRP router ID. Nothing redistributed into EIGRP: missing seed metric or missing route map. Only classful networks in OSPF: missing subnets on old code. Some prefixes missing: prefix list or route map implicit deny. Wrong path at a boundary: AD. Dead routes that stay alive and TTL expired: feedback without tags. Type-5 routes missing in one area: stub area.

Common mistake. Changing configuration before collecting evidence. Removing the tag route maps "to test" in lab 2 would re-open the feedback loop and make both tickets harder to read. Change one thing, on all boundary routers, and re-verify.

Exam trap. In troubleshooting questions the first command you choose matters. For "route missing after redistribution" the best first step is usually show ip route PREFIX on the redistributing router (is it installed from the source?), not a debug.

Missing only in the branches

After a migration, a hub correctly redistributed EIGRP into OSPF, and the core routers saw every O E2 route, but branch routers in area 20 did not. Steps 2 to 5 all checked out. Step 6 found area 20 stub on the ABR: stub areas block type-5 LSAs and replace them with a default route. The branches were fine with the default; the real fault was a monitoring server that polled for specific routes. The team documented the design instead of changing it.

Lesson: finish the workflow; sometimes "missing" is the design working as intended.

"A prefix redistributed from OSPF into EIGRP is missing on some EIGRP routers. Walk me through your troubleshooting."

Strong answer: confirm the symptom with show ip route on an affected and an unaffected router. On the boundary router, check the prefix is installed as OSPF, then check the redistribute command (seed metric, route-map name), the route map and prefix list hit counts, and whether the prefix is in show ip eigrp topology with the expected tag. Then look downstream for distribute-lists, summarisation or stub configuration, and check duplicate router IDs if only externals are missing. Apply fixes consistently on every boundary router and verify end to end.

Key takeaways

  • Classify the symptom: missing, wrong path, or looping.
  • Follow the prefix: source RIB, redistribute command, policy, target database, propagation, path choice, loops.
  • Lab 2 ticket 1 is AD (fix with distance ospf external 171); ticket 2 is a too-exact prefix list (fix with le 24).
  • Prefix-list hit counts, route tags and External data are the fastest evidence.
  • Use debug ip routing carefully to catch AD fights and flapping.
13

Summary and exam checklist

Back at the border post from chapter 1. The officer now knows whom to trust (AD), how to convert currency (seed metrics), which goods may cross (prefix lists, route maps, distribute-lists) and how to stamp passports so nobody sneaks back in (tags). This chapter is your revision sheet: what you must be able to do, the words you must know, the facts the exam loves, and the commands in one place.

boundary routerBR1, BR2 1.1 trust: ADdistance commands 1.4 convert: seedredistribute rules 1.2 filter: mapsprefix lists, route maps 1.3 stamp: tagssplit horizon, poisoning

The four blueprint items meet at every boundary router.

Can-do checklist

  • State the default AD of every source and explain why EIGRP external is 170 and iBGP 200.
  • Separate metric (inside a protocol), AD (between sources for the same prefix) and longest match (per packet).
  • Change AD with distance eigrp, distance ospf, distance bgp, per source and per prefix with an ACL; know that OSPF per-source uses originating router IDs.
  • Write and read prefix lists with ge and le without hesitation, including permit-any and default-only entries.
  • Explain how standard and extended ACLs match routes and why prefix lists are preferred.
  • Trace any route through a route map: sequence order, AND/OR, implicit deny, set actions, continue.
  • Apply distribute-lists in EIGRP and OSPF and predict exactly what neighbours see.
  • Redistribute between EIGRP, OSPF, BGP, RIP, connected and static with the correct seed metrics and keywords.
  • Build lab 1 (mutual redistribution with tags) and fix lab 2 (AD and prefix-list tickets) from memory.
  • Recognise feedback, suboptimal routing, lost metrics and oscillation, and choose the right fix for each.
  • Explain split horizon, poison reverse, route poisoning and the EIGRP originating router ID check.

Mini glossary

Administrative distance
Local trust value (0 to 255) used to choose between sources offering the same prefix; lower wins; never advertised.
Seed metric
The starting metric a redistributed route receives in the target protocol.
Redistribution
Copying routes installed by one source into another protocol on one router, in one direction.
Mutual redistribution
Redistribution in both directions between two domains.
Route feedback
A route re-entering the domain it came from through another redistribution point.
Route tag
32-bit label on EIGRP external and OSPF external routes, used by route maps to recognise origin.
Prefix list
Ordered filter matching network bits and prefix length (ge, le).
Route map
Ordered permit/deny entries with match conditions and set actions.
Distribute-list
Filter applied to a routing process inbound or outbound, per interface or per redistributed protocol.
Split horizon
Never advertise a route out of the interface used to reach it.
Route poisoning
Advertising a failed route with an infinite metric so neighbours drop it at once.

Most tested facts

TopicFact
AD0 connected, 1 static, 5 EIGRP summary, 20 eBGP, 90 EIGRP, 110 OSPF, 115 IS-IS, 120 RIP, 170 EIGRP external, 200 iBGP, 255 unusable
Into OSPFE2, metric 20 (1 from BGP); subnets needed on old IOS
Into EIGRPSeed metric required from other routing protocols; five values BW DLY REL LOAD MTU
Into BGPMED = IGP metric; OSPF internal routes only by default
Out of BGPeBGP routes only unless bgp redistribute-internal
Prefix listLEN < ge ≤ le ≤ 32; implicit deny; 0.0.0.0/0 le 32 = any
Route mapDifferent match types AND, values OR, no match = all, implicit deny at end
OSPF distribute-list inFilters local RIB only; LSAs still flood
Multi-pointTags stop feedback; AD fixes suboptimal paths; apply to every boundary router

Command cheat sheet

router eigrp 100
 redistribute ospf 1 metric 100000 100 255 1 1500 route-map OSPF-TO-EIGRP
 distance eigrp 90 170
 distribute-list prefix NAME {in | out} [interface]
router ospf 1
 redistribute eigrp 100 subnets route-map EIGRP-TO-OSPF
 distance ospf intra-area 110 inter-area 110 external 171
 distance 171 2.2.2.2 0.0.0.0 50
 default-information originate
ip prefix-list OSPF-LANS seq 10 permit 10.200.0.0/16 le 24
route-map OSPF-TO-EIGRP deny 10
 match tag 90
route-map OSPF-TO-EIGRP permit 20
 match ip address prefix-list OSPF-LANS
 set tag 110
show ip route PREFIX                      ! Known via, distance, Tag, Advertised by
show ip protocols                         ! Redistributing, filters, Distance
show ip eigrp topology PREFIX             ! External data: protocol, originator, tag
show ip ospf database external PREFIX     ! Advertising Router, Metric Type, Tag
show route-map NAME
show ip prefix-list detail NAME           ! hit counts
debug ip routing                          ! RIB add/delete, AD fights

Worked example: a 60-second exam drill. Output: BR2 shows 10.99.1.0/24 as "Known via ospf 1, distance 110, Tag 90". Reasoning: tag 90 means born in EIGRP; OSPF won on AD; if BR2's OSPF-TO-EIGRP map lacks deny tag 90, feedback follows; if the EIGRP original was external, BR2 is taking a suboptimal path. Two checks, show route-map and show ip eigrp topology 10.99.1.0/24, confirm which.

Common mistake. Memorising commands without the rules. The exam rarely asks "type the command"; it shows output with one wrong value. Know why each default exists and you will spot the wrong line quickly.

Exam trap. Watch for answers that fix only one boundary router, lower EIGRP external AD without considering OSPF internals, or use an OSPF distribute-list to "stop advertisement". Each is a classic wrong option.

Handover checklist after the merger

When the Delhi and Bengaluru networks from our labs went into production, the senior engineer left a five-line handover note: seed metric 100000 100 255 1 1500 on both boundary routers; tags 90 (EIGRP-born) and 110 (OSPF-born) with deny entries; distance ospf external 171 on both; OSPF-LANS prefix list covers 10.200.0.0/16 up to /24; any new boundary router must copy all four. Six months later a third boundary router was added in a day without incident.

Lesson: a redistribution design is a policy; write it down and apply it identically everywhere.

"Design mutual redistribution between an EIGRP and an OSPF domain with two boundary routers. What goes into your checklist?"

Strong answer: seed metrics that are worse than internal paths; subnets into OSPF; prefix lists limiting what each side exports; tags on exit and tag denies on entry; AD adjustment such as distance ospf external 171, or inbound tag filters, so EIGRP externals are not replaced by their OSPF copies; identical policy on both routers; and a verification plan with show ip route, topology and LSDB checks, traceroutes from both domains, and a failure test.

Key takeaways

  • Four jobs at every boundary: trust (AD), convert (seed), filter (maps and lists), stamp (tags).
  • Know the defaults: AD table, OSPF 20 E2, EIGRP needs a seed, BGP MED and eBGP-only rules.
  • Prefix lists and route maps are logic puzzles: practise until matching is automatic.
  • Two or more redistribution points need tags and AD planning on every boundary router.
  • Troubleshoot by following the prefix from birth to where it is missing.
🎓 For educational purposes only — all devices are simulationsTerms of UsePrivacy PolicyVerify a certificate© 2026 Network Kings
CONFIG by Network Kings — an educational IT simulation platform for learning purposes only. It is not Cisco IOS, Junos, FortiOS or PAN-OS and contains no Cisco, Juniper, Fortinet or Palo Alto Networks software. Cisco, IOS, CCNA, CCNP, Juniper, JNCIA, JNCIS, JNCIP, Fortinet, FortiGate, FortiOS, NSE, Palo Alto Networks, PAN-OS and PCNSE are trademarks of their respective owners. Network Kings is not affiliated with or endorsed by Cisco Systems, Inc., Juniper Networks, Inc., Fortinet, Inc. or Palo Alto Networks, Inc.