[Xorp-users] Re: help establishing OSPF adjacencies

Nick Feamster feamster@lcs.mit.edu
Wed, 19 Oct 2005 17:18:44 -0400


Hi Atanu,

What does this error message mean?

[ 2005/10/19 17:05:51  FATAL xorp_ospfv2:10666 OSPF +914 peer.cc
is_neighbour_DR_or_BDR ] Assertion (do_dr_or_bdr()) failed

I see adjacencies in my ospf database, but nothing in the RIB, and I
suspect this error may have something to do with it?  Thanks a lot!

Xorp> show ospf4 database 0.0.0.0 
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum Len
 Router  *128.31.1.13      128.31.1.13      0x80000003    68  0x2 0x6771  48
 Router   128.31.1.14      128.31.1.14      0x80000002   700  0x2 0x9341  48
 Router   128.31.1.15      128.31.1.15      0x80000002   860  0x2 0x9140  48
 Xorp> show route table ipv4 unicast ospf
 Xorp> 

-Nick

On Mon, Oct 17, 2005 at 05:22:21PM -0700, Atanu Ghosh wrote:
> Hi,
> 
> Responses inline.
> 
>     Nick> On Mon, Oct 17, 2005 at 02:11:25PM -0700, Atanu Ghosh wrote:
>     >> Hi,
>     >> 
>     >> The messages of the form '[ 4251 +430 xrl_io.cc ...' are
>     >> debugging output from OSPF. One of the things that they show are
>     >> packets being sent and received by OSPF.
>     >> 
>     >> OSPF uses multicast on broadcast media to distribute LSAs (with a
>     >> TTL of 1), so this behaviour is correct.
> 
>     Nick> OK.  Thanks for the clarification.
> 
>     >> The TRACE messages are typically at the top of methods so they
>     >> show the state on entry to the method. It is therefore correct
>     >> that when a InterFaceUp event occurs that the state of the
>     >> interface was down.
>     >> 
>     >> Could you try disabling Click and see if an adjacency is still
>     >> not formed.
> 
>     Nick> Yes, I think I did actually try that.  I removed it from the
>     Nick> XORP configuration, at least.  What should I configure in the
>     Nick> FEA instead?  Do I need to configure multicast?  Also, when
>     Nick> you say "broadcast media", what do you mean?  I'd think that
>     Nick> would mean the broadcast address of the subnet, 128.31.1.255.
>     Nick> What's this 224... multicast address, and do I need to
>     Nick> configure something in XORP to make certain it's reachable?
> 
> OSPF supports a number of different network types one of them is
> Broadcast the definition from the RFC is below. The XORP configuration
> defaults to broadcast (point-2-point and point-to-multipoint are also
> supported). You shouldn't need to configure anything in order to support
> the sending of the multicast packets. I have included a complete config
> that I am using below.
> 
> ---------------------------------------- RFC 2328
> 	Broadcast networks
> 	    Networks supporting many (more than two) attached routers,
> 	    together with the capability to address a single physical
> 	    message to all of the attached routers (broadcast).
> 	    Neighboring routers are discovered dynamically on these nets
> 	    using OSPF's Hello Protocol.  The Hello Protocol itself
> 	    takes advantage of the broadcast capability.  The OSPF
> 	    protocol makes further use of multicast capabilities, if
> 	    they exist.  Each pair of routers on a broadcast network is
> 	    assumed to be able to communicate directly. An ethernet is
> 	    an example of a broadcast network.
> ----------------------------------------
> 
> ----------------------------------------
> interfaces {
>     interface en1 {
> 	vif en1 {
> 	    address 10.0.1.6 {
> 		prefix-length: 16
> 	    }
> 	}
>     }
> }
> 
> protocols {
>     ospf4 {
> 	router-id: 10.0.1.6
> 
> 	area 0.0.0.0 {
> 	    interface en1 {
> 		vif en1 {
> 		    address 10.0.1.6 {
> 		    }
> 		}
> 	    }
> 	}
>     }
> }
> ----------------------------------------
> 
>     >> In order for an adjacency to be formed routers have to see each
>     >> others hello packets. A hello packet contains a hello interval, a
>     >> router dead interval and a list of other routers that have been
>     >> seen on this interface. The hello interval and router dead
>     >> interval have to match for an adjacency attempt to be made. As an
>     >> optimisation on broadcast networks rather than forming an
>     >> adjacency with every other router on the subnet a designated
>     >> router and backup designated router are elected.  The DR and BDR
>     >> routers form adjacencies with all the routers and the routers in
>     >> the other set form only two adjacencies.
>     >> 
>     >> Two routers with the default configuration should try and form an
>     >> adjacency. You should see TRACE messages of this form:
>     >> 
>     >> [ . TRACE .] Event(HelloReceived) I.(fxp0/fxp0) N.(128.31.1.14)
>     >> State(Full) [ . TRACE .] Event(2-WayReceived) I.(fxp0/fxp0)
>     >> N.(128.31.1.14) State(Full)
>     >> 
>     >> I have replaced some of the output with '.'s.
>     >> 
>     >> If you are not seeing Event(HelloReceived) then they are not
>     >> seeing each others hello messages. Note the state is Full in this
>     >> example.
> 
>     Nick> I definitely don't see these.
> 
> Then the routers are not seeing each others packets.
> 
>     >> After I saw you original message I went back and checked that
>     >> adjancencies are still being formed and they are.
>     >> 
>     >> I found one thing a little puzzling the checksum for both routers
>     >> for different LSAs is the same, is this the actual output?
> 
>     Nick> No, I had a copy/paste error.  The checksums are different.
> 
> Good - thats what I guessed:-).
> 
>      Atanu.