PDA

View Full Version : OLSR routing issues


knolan
09-30-2007, 02:39 AM
After we upgraded from v1.1.4 to v1.1.13 we switched off OLSR as nodes kept loosing routing information and our network was effectly down.

I changed the network to use RIP for routing and disabled the IP's on redundant links so that RIP wouldn't have problems.

I believe a number of others did the same at the time.

We have now upgraded the entire network to v1.3.3 (one node is v1.3.0 due to license renewal issues)


So I have tried to revert back to using OLSR, but after a night of fighting the network went back to using RIP again.


The process I used to go to OLSR was.

1. configure the following script on each node.



LinkQualityFishEye 1
IpVersion 4
Hna4
{

#### Only put Subnets in here if hosts will not be running OLSR

# example 192.168.0.0 255.255.255.0

}

AllowNoInt yes
TosValue 16
Willingness 4

IpcConnect
{
MaxConnections 0
Host 127.0.0.1
}

UseHysteresis no
LinkQualityLevel 2
LinkQualityWinSize 10
Pollrate 0.5
TcRedundancy 2
MprCoverage 7

LoadPlugin "olsrd_httpinfo.so.0.1"
{
PlParam "port" "8001"
#### IP Addresses or Ranges allowed to view OLSR info via http
##### Example PlParam "Net" "192.168.0.1 255.255.255.255"

}

Interface "eth0" "eth1" "wpci0" "wpci1" "wpci2" "wpci3"
{
HelloInterval 0.5
HelloValidityTime 10.0
TcInterval 1.0
TcValidityTime 14.0
MidInterval 5.0
MidValidityTime 15.0
HnaInterval 5.0
HnaValidityTime 15.0
# LinkQualityMult 192.168.0.10 0.40 # Line used to force one link to be used over another
}







2. Add in the Networks of non OLSR running hosts (Only CPE's and customers with CCB Assigned IP Ranges)

3. Ensure the IP Address for communicating between nodes is the first IP on the interface

4. Delete any private IP Addresses on the network (we had some 192.168.0.1, 192.168.1.1 & 192.168.2.1 addresses on interfaces)

4. Starting with the nodes at the far end of the network turn on OLSR, and turn off RIP

5. enabled the IP's on links which supplied redundant links for the netowrk.

After following this process for the entire network I started monitoring the change and noticed that routing wasn't working.

Our Network is designed where we have a StarOS V2 Server running BGP at our edge (Connected to 2 Transit providers), with 3 StarV3 routers on the same subnet providing links to all our sites, and each of these sites acting as both relays and AP's for customers. Each of these sites have a link to at least one other site with another route to our core.

There are no static routes on our network, as it is 100% running RIP (Internal) or BGP (Edge).

As V2 doesn't support OLSR I had set one of the 3 V3 Routers to provide the 0.0.0.0/0 HNA4 route. and I gave this node a default static route to the V2 Router.


As Routing wasn't working, I disabled the IP's at all but 1 of these sites and tried to get OLSR just working with 3 hops (V2 --> V3 --> V3)

As this still didn't work I then tried something which shouldn't work. I put the network info into the HNA4 statement for the point to point link (v3 --> v3) and the network seemed to stablise for Ping traffic.

I then proceeded to try this for the rest of the network, one hop at a time. but this caused the routing info to drop again.

I had scheduled the outage on our network from 11pm --> 6am and it was getting close to 3am, so I decided to back out the change and go back to RIP - by 5am the network was back very stable with ping times across the network averaging between 7ms and 13ms (max 5 hops from our core, with a max distance for any of the links at 26 miles)


1. Disable the IP's on redundant links
2. Enable RIP
3. Disable OLSR

The network took about 5 minutes and all was back running.


So the question is, has anyone else who turned off OLSR gone back to using it again? and can anyone suggest changes to the method I used to go from RIP to OLSR?


Thanks
Keith

tog
09-30-2007, 03:54 AM
Please check the OLSR article on the wiki for an updated OLSR configuration. It should help you with your OLSR routing instability.

http://staros.tog.net/wiki/OLSR

knolan
09-30-2007, 12:45 PM
Tog,

Thanks for the help, I will have a look at the new config, to figure out what and why you have changed it. and I will look at implementing next weekend.


- I must remember to have a look at the wiki the next time I have a StarOS issue.

A quick question, in the wiki it seems to suggest that I can have more than 1 default gateway to the internet and I can announce both. I remember this wasn't possible in the past, does it now work?

Also is it possible to weight one of the routes so it only kicks in if the first route is down?


Thanks
Keith

tog
09-30-2007, 12:58 PM
If you announce an HNA4 of 0.0.0.0/0 all the time from two different hosts, both will be available all the time and the closest of the two will be the path chosen... Unless you use "LinkQualityMult" to "demote" or "downgrade" the secondary path at each OLSR router.

If you look in the default config there is an olsrd_dyn_gw plugin, but it has no way of saying it is the preferred or non-preferred default gateway. It is designed to ping an IP (or IPs) and if they become unreachable, it will stop announcing its HNA4 of 0.0.0.0/0. If they are reachable, it will announce 0.0.0.0/0. Simple as that I believe.

knolan
09-30-2007, 05:15 PM
Silly question, but since I've changed all my nodes to have the "Tog" config, where do I find the original OLSR Config.

I know I could just install a new board and take the config from that. but is there a file I can download?


Thanks
Keith

tog
10-01-2007, 02:14 AM
The wiki has a revision history, you can see the old revision of the OLSR page with the old OLSR config using that.