cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
930
Views
8
Helpful
12
Replies

OSPF over NBMA network

bellocarico
Level 1
Level 1

I'm setting up an hub and spoke over frame-relay.

R1 is the central router where R2 and R3 are the spokes.

Because I don't want to change network type and I need make R1 the DR, I've followed the Cisco documentation using the commands:

(X.X.X.X = IP address of R2

Y.Y.Y.Y = IP address of R3)

neighbor X.X.X.X priority 0

neighbor Y.Y.Y.Y priority 0

on R1 to set in one place the neighbor and the priority.

For some reason thsi doesn't work.

Also, doing show run I can see the

neighbor X.X.X.X

and

neighbor Y.Y.Y.Y

but no priority 0 in both cases :-?

doing a:

show ip ospf neighbor

on R1 I can see R2 being the DR.

If I don't specify the priority on the hub, but instead set this up directly on the spokes interfaces, everything works well.

I'm just trying to understand why the first config doesn't work...

12 Replies 12

Richard Burts
Hall of Fame
Hall of Fame

Stefano

I am not sure why the neighbor command has the optional parameter for priority. I vaguely seem to remember that it establishes a default that the router will use if it does not learn a priority directly from the neighbor. But if the neighbor advertises a priority then that is used instead of the priority on R1. And my experience of OSPF in the lab and in a number of live networks is that it never is effective in changing the priority of another router.

And when you think about it, it does not make much sense for one router to be able to set the priority of another router. Why should R2 accept a priority established for it by R1? And how would R1 communicate to R2 what priority it should use?

So as a working principle if you want to manipulate OSPF priority (which you probably in hub and spoke NBMA) then make the priority adjustment on each spoke router.

HTH

Rick

HTH

Rick

Rick, thanks for your answer!

Thanks also for the advices from you hands on experience :-)

As I said, setting up the priority on the spokes everything works well, but all this effort I'm doing to fully understand the tecnology is torward the CCIE R&S lab. More than find alternative ways to achive the same result I really want/have to understand what's going on and why.

Coming back to the technical issue:

I get you point and I see what you mean with "Why should R2 accept a priority established for it by R1"

However, if all the devices belong to the same network under my point of view an AS can be define also as administrative domain.

E.g think about BGP and route reflectors; it works exactly the same way, why would I want to set the reflector clients from the master router?

I'm not an IOS developer and I don't have the peculiar answer for this, but overall it makes sense to me, as long as the master router is under my administrative domain.

Stefano

I agree that it is important to understand why things work the way they do, as well as knowing what will work, and that is especially true in the CCIE lab. I spent a lot of time studying and learning to understand the why questions before I achieved my CCIE. I wish you the best in your attempts to achieve this.

I continue to believe that it makes sense for the OSPF priority to be set on the remote router. And I believe that the OSPF priority is a fundamentally different issue from the BGP route reflector but there is a common element in where the configuration statement should be placed. In the OSPF priority we want to change the behavior of the remote router (it should not claim eligible for election as DR) and I believe it makes sense that the configuration statement for this should be on that router and not on the hub router. In BGP route reflector you are not changing the behavior of the reflector client - it continues to process in the same way and believes that it is in a full mesh environment. The behavior change is on the reflector who knows that there is not a full mesh and will advertise IBGP routes to the reflector clients. Since we are changing the behavior of the reflector I believe it is necessary to have the configuration statements on that router.

HTH

Rick

HTH

Rick

ikizoo4
Level 1
Level 1

with my understatnding,,

priority 0 is default, so with your configuration, nothing to make any difference, because all routers have default priority 0. So after doing a DR election procedure R2 elected as DR.

===========================================

For some reason thsi doesn't work.

Also, doing show run I can see the

neighbor X.X.X.X

and

neighbor Y.Y.Y.Y

but no priority 0 in both cases :-?

=> its because priority 0 is default.

my 2 cents

Bongsu

Actually the default priority for OSPF is 1 and indicates availability to be elected DR or BDR. The priority of 0 is not the default and indicates that this router is not available to be elected either DR or BDR.

HTH

Rick

HTH

Rick

Rick,

I think i need to add more explaination. you are right Rick, but you are talking about "ip ospf priority".

- neighbor IP priority 0 : priority of nieghbor

- ip ospf priority : priority of itself

and with "neighbor IP priority 0" default is 0, and when these two have diffierent value. priority of itself is high priority. so back to the original question, actually all routers priority itself are all 1 and then they will be doing DR election.

my 2 cents

The fact that the piority 0 is the default for the neighbor command would make sense.

This could also be the explanation why the parameter is not included in the config.

However... it doesn't work!

If what you say is true, R2 and R3 should never become DR or eve BDR; where this is actually happening...

An other interesting point to add is:

If I add the

ip ospf priproty 0

on the spokes the OSPF election is automatically (istantantly) sorted (R2 auto-demoted to DROTHER), but this doesn't happen if I modify the

neighbor X.X.X.X

into

neighbor X.X.X.X priority 0

on the Hub

Last last thing, together with

neighbor X.X.X.X priority 0

I've tryed to add the

ip ospf priority 255 on the HUB Interface.

This helps R1 to become the DR, but still, I don't want R2/R3 to become BDR.

Thanks to read!

Hi Stefano,

if I modify the

neighbor X.X.X.X

into

neighbor X.X.X.X priority 0

on the Hub

=> you can't modify to "neighbor X.X.X.X priority 0" it's not showing up in the config, and they are the same neighbor X.X.X.X = neighbor X.X.X.X priority 0, I don't understatnd what you trying to do.

Last last thing, together with

neighbor X.X.X.X priority 0

I've tryed to add the

ip ospf priority 255 on the HUB Interface.

This helps R1 to become the DR, but still, I don't want R2/R3 to become BDR.

=> if you did'nt configure ip ospf priority 0 on the SPOKE, of cource R2/R3 could be a BDR, cause they have priority 1 as default.

Thanks

I think I miss something here:

The command:

neighbor X.X.X.X priority 0

(or only neighbor X.X.X.X at this point assuming that priority 0 is the default)

configured on the HUB "should" set the priority to 0 on the spokes.

So with no other config added this should be the result:

R1=priority 1 -> default and will become DR

R2=priority 0 -> because the neighbor command on the hub, won't become BDR

R3=priority 0 -> because the neighbor command on the hub, won't become BDR

As I said, in my lab R2 and R3 have no priority 0.

That means to me that the Hub is not communicating the priority for some reason.

Is there anything else I need to take into account in this scenario?

Thanks!

Stefano

Perhaps one of the Cisco engineers participating in the forum can give us a better explanation of the purpose of the neighbor priority command. Until we get that better explanation we must deal with the observed behavior.

You seem to want to maintain the assumption that the neighbor priority command on the hub will set the priority of the spoke. I do not think that it is logical for the OSPF priority of one router to be set by some other router. When you configure the hub router with neighbor priority 0 the hub may initially think that the priority of the spoke will be 0. But when it receives a hello message from the spoke indicating that its priority is 1 then both routers treat the priority as 1.

Another aspect of this is that it is clearly not enough to give the hub router a high priority to help it get elected. It is necessary to prevent either of the spokes from being elected BDR. And the way to do this is to configure priority 0 on the spoke router.

HTH

Rick

HTH

Rick

Stefano

I have found an article on CCO which sheds light on this functionality. According to this article the neighbor priority parameter is used by the hub router to decide which neighbors to send hello packets to:

"When the router first starts up, it sends only hello packets to those routers with non-zero priority; that is, routers that are eligible to become designated routers (DR) and backup designated routers (BDR). After DR and BDR are selected, DR and BDR will then start sending hello packets to all neighbors in order to form adjacencies."

here is the URL for the article:

http://www.cisco.com/en/US/partner/products/sw/iosswrel/ps1826/products_feature_guide09186a0080087d4e.html

From this it is obvious that the neighbor priority command is not an attempt to set the priority of the spoke router but is used to determine to which routers to send initial hello packets. So if you want the spoke router to not become DR or BDR you must set the priority to zero on the spoke router.

From this article I assume that the hub does not send an initial hello to the spoke. But the spoke does send hello to the hub and based on that hello the hub sends hello to the spoke and the neighbor process begins.

HTH

Rick

HTH

Rick

Rick, thanks again for you interest in this topic.

The explanation you're giving makes a lot of sense to me.

Especially the fact that R2 doesn't wait for Hellos from R1, but proactively contact R1 with its Hellos.

In fact one of the first rules of the neighbor command is that it can (should?) be set only on one side as the opposite device is able to reconize it and automatically switch address type (unicast).

There are only 2 things I miss to understand now:

If what you state is true, than the neighbor X.X.X.X doesn't send any hello by default as the priority 0 seems to be the default value.

This is proved doublechecking the config:

neighbor X.X.X.X priority 0

it's saved as

neighbor X.X.X.X

where instead

neighbot X.X.X.X priority 1

it's saved as

naighbor X.X.X.X priority 1

Second thing:

I don't get the point in using a command, which could be set from 0 to 255, to just enable or disable hellos.

Thanks a lot!

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: