cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
9915
Views
20
Helpful
37
Replies

Why is EIGRP automatically redistributing a static route?

johnnylingo
Level 5
Level 5

Spotted this in my CCIE lab and am rather baffled.  Why would EIGRP redistribute a static route even though I've configured it not to?

Configuration:

ip classess

!

router eigrp 65100
network 198.19.0.0 0.0.1.255
no auto-summary
!

ip route 198.19.0.0 255.255.0.0 Null0


CORE-2#sh ip eigrp top 198.19.0.0/16
IP-EIGRP (AS 65100): Topology entry for 198.19.0.0/16
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 256
  Routing Descriptor Blocks:
  0.0.0.0, from Rstatic, Send flag is 0x0
      Composite metric is (256/0), Route is Internal

      Vector metric:
        Minimum bandwidth is 10000000 Kbit
        Total delay is 0 microseconds
        Reliability is 0/255
        Load is 0/255
        Minimum MTU is 1500
        Hop count is 0

37 Replies 37

Jon Marshall
Hall of Fame
Hall of Fame

johnnylingo wrote:

Spotted this in my CCIE lab and am rather baffled.  Why would EIGRP redistribute a static route even though I've configured it not to?

Configuration:

ip classess

!

router eigrp 65100
network 198.19.0.0 0.0.1.255
no auto-summary
!

ip route 198.19.0.0 255.255.0.0 Null0


CORE-2#sh ip eigrp top 198.19.0.0/16
IP-EIGRP (AS 65100): Topology entry for 198.19.0.0/16
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 256
  Routing Descriptor Blocks:
  0.0.0.0, from Rstatic, Send flag is 0x0
      Composite metric is (256/0), Route is Internal

      Vector metric:
        Minimum bandwidth is 10000000 Kbit
        Total delay is 0 microseconds
        Reliability is 0/255
        Load is 0/255
        Minimum MTU is 1500
        Hop count is 0

You have a network statement of 198.19.0.0 0.0.1.255 which equals networks -

198.19.0.0

198.19.1.0

you then have a static route pointing to a Nullo interface. This is a static route pointing to a directly connected interface. Because it is directly connected and because you have matching network statement under your EIGRP config the route is showing up in the EIGRP topology table and will be redsitributed to any EIGRP neighbors.

Jon

Hello Johnny,

In addition to Jon's wonderful reply, if you define a static route using an outgoing interface only (i.e. without next hop IP address), it is treated by router as directly connected even though it is statically defined. That is kind of logical because you are saying that "this network is on this interface". Now, for distance vector routing protocols, every directly connected network including those statically defined can be advertised simply using the network command. This goes for RIP, IGRP and EIGRP. That is the reason why the 198.19.0.0/16 network was advertised because the EIGRP treated it as any other directly connected network.

Link-state routing protocols (OSPF, IS-IS) cannot be cheated this way. The network covered by the network command must be indeed a network defined on an interface by the command ip address. Statically defined connected networks created using the ip route command can be advertised only by explicit redistribution in link-state routing protocols.

Best regards,

Peter

Hi all,

Jon and Peter, I do appreciate your posts. I still think however that this behavior is weird. Although I haven't come across this from my own experience, there are others who have and I am not suggesting this is a bug. I view it more as a side-effect or gotcha. The explanation that this is a "directly connected" flavored static doesn't seem enough to me to explain why automatic "internal redistribution" is happening. [By the way, as far as I know, a static is always static and has AD higher than AD 0 that only true Connected routes can have. The notation "directly connected" has to do with how the forwarding engine sees the routes]. Maybe this is some sort of historical behavior (e.g. to overcome hop-count limitations in distance vector protocols). I don't know.

Kind Regards,

Maria

Hello Maria,

"The explanation that this is a "directly connected" flavored static doesn't seem enough to me to explain why automatic "internal redistribution" is happening."

I would say that the IOS itself is not consistent about such routes but they do have significant traits of directly connected routes. If you define a static route to a network X using only an outgoing interface, the router tries to talk to each node in network X as if it was indeed directly connected on that interface. If it is an Ethernet, it will ARP for its MAC address. If it is Frame Relay or ATM, it will try to look it in the IP/DLCI or IP/VPI,VCI mappings. If it is a BRI interface, it will look into dialer map tables... so the packet delivery mechanisms indeed treat such network as directly connected.

A routing protocol of course knows that this route is static. Why does the "redistribution" apply in this case is not clear to me, neither. Moreover, the behavior is not consistent - the DV routing protocols do this redistribution, the LS do not. I would personally like better if the networks were not redistributed. What I think about all this is that this is some kind of quirk (or a forgotten functionality) in IOS that has been leveraged by groups programming the DV protocols but that has not been picked up by the teams responsible for LS protocols. I see it as an implementation-dependent issue, not as a principal matter. But then again, somebody else responsible for certification exams might think that this is of utmost importance and shove some questions about it into exams

Best regards,

Peter

While it may be intuitive, I believe that it is not correct to refer to this as automatic "internal redistribution" . I believe that there is a significant clue to the behavior in the original post:

"Composite metric is (256/0), Route is Internal"

note that EIGRP is treating this as an internal route (matches a network statement) and not as an external router (result of redistribution).

The behavior of the routing protocol is to look for connected networks that match a network statement and to advertise those networks. That is what EIGRP is doing in this case. It did not redistribute the "static", it is advertising a "connected" route>

HTH

Rick

[edit] It may help Peter and some others to remember one of the distinctions between DV routing protocols and Link State Protocols. DV protocols recognize and advertise networks while Link State advertises links. The static to a connected interface is treated as a connected network, but it is not recognized as a connected link.

HTH

Rick

Hi Rick,

Thank you for replying. Nobody doubts that the EIGRP sees this network as internal and it also advertises it as such. Nevertheless, the show ip eigrp topology output that you have quoted also contains information that suggest that EIGRP at least understands that it is not a real directly connected route:

  Routing Descriptor Blocks:
  0.0.0.0, from Rstatic, Send flag is 0x0
      Composite metric is (256/0), Route is Internal

      Vector metric:
        Minimum bandwidth is 10000000 Kbit
        Total delay is 0 microseconds
        Reliability is 0/255
        Load is 0/255
        Minimum MTU is 1500
        Hop count is 0

Note a couple of "weird" values here:

  • From Rstatic - the same as with all static redistributed routes
  • Delay, reliability and load are set to 0 which no real directly connected network would have (the lowest configurable value is 1, not 0)

Best regards,

Peter

[edit] Yes, of course, I am well aware of the difference between DV and LS protocols but this all boils down into how this is coded inside IOS, and therefore I am afraid we are trying to find a "deeply buried truth" when in fact, it is just the way the IOS does this. The OSPF advertises links - very well but there is no problem in advertising a statically defined connected route as a link to a stub network. This would be identical to OSPF advertising, say, a loopback or a stub FastEthernet network. Once again - it can be done very easily, just the IOS does not do it. In my opinion, it is not an issue of a routing protocol, rather it is an implementation issue. I wish that an IOS programmer read these forums sometimes...

Peter

From your previous post:

"A routing protocol of course knows that this route is static. Why does the "redistribution" apply in this case is not clear to me, neither. Moreover, the behavior is not consistent - the DV routing protocols do this redistribution, the LS do not."

My point is that it is really not redistribution in EIGRP. And if it is not redistribution then it is not so much inconsistency in IOS as it is differences in the protocols about how they decide what to advertise.

HTH

Rick

HTH

Rick

Hi all,

Nice discussion we are having here!   Redistribution in general is the sharing of information between different routing protocols. According to Zinin, redistribution is the adoption of routes from the routing table, performed by a dynamic routing protocol that is not the source of these routes. When I said 'redistribution' I didn't refer to an explicit 'redistribute' command, and anyway, that was the problem in this case in the first place (i.e. that it was not explicit). So, allow me to insist on this terminology! Hope this isn't a big problem!

I will also insist on the separation of "directly attached networks" (the well known Connected) from "directly connected routes" (Connected and Static without next-hop information). This is also found in Zinin's Cisco IP Routing. If this distinction is ignored, people start thinking some Static's have a 0 AD, start writing certification books about this gotcha, and takes years for people to clear their understanding about what's going on (I guess the worst kind of gotcha is the one that doesn't even exist).

Kind Regards,

Maria

Hello Rick,

I understand what you mean. But even so, that does not "ring a bell" for me here. I have no problems accepting that the EIGRP advertises this network as any other directly connected network and that calling it a redistribution is probably not correct. All this is fine by me.

But let's not confuse the fundamental principle of a routing protocol (i.e. what is the actual information it transmits and what data does it base its algorithm on) with a method of choosing which locally known networks it decides to advertise. I agree wholeheartedly that OSPF advertises links. But a  link is just an abstract way of saying "I have a direct access to this object". A link is not an interface per se - it is a more general concept. There is no need to look only for interfaces when advertising links in OSPF, and in fact, if you look closely at links advertised by OSPF, many of them are strongly artificial - each point-to-point interface is represented by two links in LSA1 - the one is for the adjacent router, the other is for the IP network that is present on the point-to-point network. From this viewpoint, it is nothing foreign for OSPF to take a statically created connected route and advertise it as just another link.

Best regards,

Peter

rburts wrote:

While it may be intuitive, I believe that it is not correct to refer to this as automatic "internal redistribution" . I believe that there is a significant clue to the behavior in the original post:

"Composite metric is (256/0), Route is Internal"

note that EIGRP is treating this as an internal route (matches a network statement) and not as an external router (result of redistribution).

The behavior of the routing protocol is to look for connected networks that match a network statement and to advertise those networks. That is what EIGRP is doing in this case. It did not redistribute the "static", it is advertising a "connected" route>

HTH

Rick

[edit] It may help Peter and some others to remember one of the distinctions between DV routing protocols and Link State Protocols. DV protocols recognize and advertise networks while Link State advertises links. The static to a connected interface is treated as a connected network, but it is not recognized as a connected link.

Rick

You are being slightly selective in which bits you choose from the output

Yes it reports it as internal but as Peter pointed out it also reports it as Rstatic. And there is no denying that there is a static route configured on the router. How EIGRP sees that static route is the matter of debate here but it is a fair statement, it think,  to say their is a dynamic routing protocol (EIGRP) and a static route and the static route has been learnt by EIGRP.

Now using Maria's definition of redistribution you could say that redistribution has therefore occured. Perhaps we are just arguing over semantics !

Lastly i think if you looked at the posts of people on this thread you should probably know that they would be aware of the fundamental difference between DV and Link state protocols. I do think it's important to take into account the experience of the poster when answering.

Jon

Hello Jon,

First of all, thank you very much for joining this discussion. I enjoy it tremendously!

Perhaps this is indeed about semantics. We see a static route being advertised without doing the usual obligatory configuration and now we are confused and trying to measure things by defining properties to sort them out. The problem is perhaps that many of our concepts are not well defined, rather they are intuitive. What exactly does it mean when we write the network or redistribute statement? We know the answer from our experience but that is not an exhaustive, unambiguous definition. It is merely an intuitive understanding. The only conclusive definition here could be given by a person that has access to the IOS source code because that is the ultimate source of information about the machinery behind the network or redistribute commands.

Lastly i think if you looked at the posts of people on this thread you should probably know that they would be aware of the fundamental difference between DV and Link state protocols

This is very considerate of you, Jon, thank you. Nevertheless, Rick - I do not feel offended in any way. I understand that you had to reiterate a fact because it comprised the idea you wanted to convey.

Best regards,

Peter

paluchpeter wrote:

Hello Jon,

First of all, thank you very much for joining this discussion. I enjoy it tremendously!

Perhaps this is indeed about semantics. We see a static route being advertised without doing the usual obligatory configuration and now we are confused and trying to measure things by defining properties to sort them out. The problem is perhaps that many of our concepts are not well defined, rather they are intuitive. What exactly does it mean when we write the network or redistribute statement? We know the answer from our experience but that is not an exhaustive, unambiguous definition. It is merely an intuitive understanding. The only conclusive definition here could be given by a person that has access to the IOS source code because that is the ultimate source of information about the machinery behind the network or redistribute commands.

Lastly i think if you looked at the posts of people on this thread you should probably know that they would be aware of the fundamental difference between DV and Link state protocols

This is very considerate of you, Jon, thank you. Nevertheless, Rick - I do not feel offended in any way. I understand that you had to reiterate a fact because it comprised the idea you wanted to convey.

Best regards,

Peter

Peter

Funnily enough there is a guy called Russ White who works for Cisco and has access to the source code of EIGRP and he used to post on these forums. There are a few times where people have disagreed over specifics on EIGRP and then along came Russ who would say something along the lines of "well i've just checked the code and ...". The discussion kind of ended there

Jon

Hi Jon,

I think one of the problems with EIGRP is that it's cisco proprietary and we can't really argue a lot about its logic (that's why it's my least favorite routing protocol). This case brought to me thoughts of Russ as well!

Kind Regards,

Maria

Maria, Jon,

Mr. Russ White? Hmm, I have not had the honor to meet him here in person, I can just look up his posts. I certainly hope he's still around!

Regarding the EIGRP, I have found the its principles very attractive (the diffusing updates by Dijkstra and Scholten, the DUAL by Garcia) but right as Mr. Jeff Doyle pointed out on his blog, the amazement can quickly turn into horror if there is something going wrong with EIGRP-based network and out of sudden, no one seems to have a profound understanding of it. Exactly as Maria said, it is a black box and the details are "leaking out" very slowly. Just how long did it take to tone down the hype that the EIGRP is a "hybrid" protocol? I think it was 5 years at least, and it is still going around.

Best regards,

Peter

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Innovations in Cisco Full Stack Observability - A new webinar from Cisco