[OLSR-users] Re: multiple interfaces? (long post)
aled
(spam-protected)
Wed Jan 26 01:50:35 CET 2005
> While the multiple interface scenario seems to work quite well for many
> people, it has been reported by one person that a link to a neighbour
> never becomes symmetric in spite of zero packet loss and a corresponding
> ETX of 1.00. So, there might very well be a bug in the LQ implementation
> that doesn't show up very often.
>
> Tracking the reported problem down is on my to-do list for 0.4.9. So, it
> would be interesting to find out whether you are facing the same problem.
>
> Could you supply some additional information on your infrastructure, its
> network topology and IP addresses? Based on the additional information
> we could then ask you to create debug logs that help us track down what
> causes the problem that you have.
Ok, sorry for the delay, but in light of the replies I recieved on this list
(thanks!) I went back and checked everything, and re-read all the documentation.
The bottom line is I still can't get it working. I'm not sure if htis is the
same bug
that you mention; I'll let you decide. So I've included as much info as possible
in this post.
I have a network of 5 WRT54G's, all running OpenWRT (i.e. Linux 2.4.20, mips
architecture). I installed a binary version of olsrd 0.4.8 from
http://www.wildcatwireless.net/wrt54g. It works absolutely perfectly when
configured on only one interface. Never crashed or gone wrong in any way, to my
knowledge. It's quite hard to change the configuration, as these routers are in
different houses, and in use, and I have limited physical access.
The routers are numbered 1,2,3,5 and 7. Router 1 is the connection to the
internet. They are arranged such that 2, 5 and 1 have good connectivity, 7 and 3
have good connectivity, and 7 and 1 have poor connectivity (although 7 and 1 are
physically close).
2 1 7 3 <- closer numbers have
5 better connectivity
So, I decided to put an ethernet cable between 7 and 1. Here is a diagram of the
network interfaces on 7 and 1:
eth1, 10.1.5.1, mask 255.255.255.0, bcast 10.1.5.255
\|/
|
--------- |
vlan0 --|Router1|---
internet | |
---------
|vlan2, 10.254.1.3, mask 255.255.255.0, bcast 10.254.1.255
|
|
-----| eth1, 10.1.5.7, mask 255.255.255.0, bcast 10.1.5.255
| \|/
| |
| --------- |
| |Router7|---
| |
| ---------
| |vlan0, 10.254.1.1, mask 255.255.255.0, bcast 10.254.1.255
------
Here is the router 1's olsrd.conf
DebugLevel 0
IpVersion 4
Hna4
{
0.0.0.0 0.0.0.0
}
AllowNoInt yes
IpcConnect
{
MaxConnections 1
Host 127.0.0.1
}
LinkQualityLevel 2
LinkQualityWinSize 20
UseHysteresis no
Pollrate 0.05
TcRedundancy 2
Interface "vlan2"
{
Ip4Broadcast 10.254.1.255
}
Interface "eth1"
{
Ip4Broadcast 10.1.5.255
}
Here is router 7's olsrd.conf:
DebugLevel 0
IpVersion 4
Hna4
{
}
AllowNoInt yes
IpcConnect
{
MaxConnections 1
Host 127.0.0.1
}
LinkQualityLevel 2
LinkQualityWinSize 20
UseHysteresis no
Pollrate 0.05
TcRedundancy 2
Interface "vlan0"
{
Ip4Broadcast 10.254.1.255
}
Interface "eth1"
{
Ip4Broadcast 10.1.5.255
}
OK, now *before* I plug in the cable (olsrd is running), here are the routing
tables. There is a lot of irrelevent stuff in here, in particular the other
vlan's, and tun0 (an OpenVPN tunnel). I'm slightly concerned that 10.1.5.2
doesn't appear in router1's routing table at this point. (should I be?)
(spam-protected):~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.8.0.2 * 255.255.255.255 UH 0 0 0 tun0
10.1.5.7 * 255.255.255.255 UH 1 0 0 eth1
10.1.5.5 * 255.255.255.255 UH 1 0 0 eth1
10.1.5.3 10.1.5.7 255.255.255.255 UGH 2 0 0 eth1
10.254.1.1 10.1.5.7 255.255.255.255 UGH 1 0 0 eth1
10.254.1.1 * 255.255.255.255 UH 1 0 0 vlan2
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
192.168.1.0 * 255.255.255.0 U 0 0 0 vlan0
10.1.4.0 * 255.255.255.0 U 0 0 0 vlan4
10.1.5.0 * 255.255.255.0 U 0 0 0 eth1
10.254.1.0 * 255.255.255.0 U 0 0 0 vlan2
10.1.1.0 * 255.255.255.0 U 0 0 0 vlan1
10.1.3.0 * 255.255.255.0 U 0 0 0 vlan3
default 192.168.1.1 0.0.0.0 UG 0 0 0 vlan0
(spam-protected):~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.8.0.1 10.8.0.29 255.255.255.255 UGH 0 0 0 tun0
10.8.0.29 * 255.255.255.255 UH 0 0 0 tun0
10.1.5.5 10.1.5.1 255.255.255.255 UGH 2 0 0 eth1
10.1.5.2 10.1.5.1 255.255.255.255 UGH 2 0 0 eth1
10.254.1.3 10.1.5.1 255.255.255.255 UGH 1 0 0 eth1
10.1.5.3 * 255.255.255.255 UH 1 0 0 eth1
10.1.5.1 * 255.255.255.255 UH 1 0 0 eth1
10.7.4.0 * 255.255.255.0 U 0 0 0 vlan4
10.1.5.0 * 255.255.255.0 U 0 0 0 eth1
10.254.1.0 * 255.255.255.0 U 0 0 0 vlan0
10.7.1.0 * 255.255.255.0 U 0 0 0 vlan1
10.7.3.0 * 255.255.255.0 U 0 0 0 vlan3
10.7.2.0 * 255.255.255.0 U 0 0 0 vlan2
default 10.8.0.29 0.0.0.0 UG 0 0 0 tun0
So it seems mostly reasonable at this point. Now I plug in the cable. Wait a
minute for the routes to recalculate...
(spam-protected):~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.8.0.2 * 255.255.255.255 UH 0 0 0 tun0
10.1.5.7 10.1.5.3 255.255.255.255 UGH 2 0 0 eth1
10.1.5.5 * 255.255.255.255 UH 1 0 0 eth1
10.1.5.3 * 255.255.255.255 UH 1 0 0 eth1
10.254.1.1 * 255.255.255.255 UH 1 0 0 vlan2
10.254.1.1 10.1.5.3 255.255.255.255 UGH 2 0 0 eth1
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
192.168.1.0 * 255.255.255.0 U 0 0 0 vlan0
10.1.4.0 * 255.255.255.0 U 0 0 0 vlan4
10.1.5.0 * 255.255.255.0 U 0 0 0 eth1
10.254.1.0 * 255.255.255.0 U 0 0 0 vlan2
10.1.1.0 * 255.255.255.0 U 0 0 0 vlan1
10.1.3.0 * 255.255.255.0 U 0 0 0 vlan3
default 192.168.1.1 0.0.0.0 UG 0 0 0 vlan0
(spam-protected):~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.8.0.1 10.8.0.29 255.255.255.255 UGH 0 0 0 tun0
10.8.0.29 * 255.255.255.255 UH 0 0 0 tun0
10.1.5.5 10.1.5.3 255.255.255.255 UGH 3 0 0 eth1
10.1.5.2 10.1.5.3 255.255.255.255 UGH 3 0 0 eth1
10.254.1.3 10.1.5.3 255.255.255.255 UGH 2 0 0 eth1
10.1.5.3 * 255.255.255.255 UH 1 0 0 eth1
10.1.5.1 10.1.5.3 255.255.255.255 UGH 2 0 0 eth1
10.7.4.0 * 255.255.255.0 U 0 0 0 vlan4
10.1.5.0 * 255.255.255.0 U 0 0 0 eth1
10.254.1.0 * 255.255.255.0 U 0 0 0 vlan0
10.7.1.0 * 255.255.255.0 U 0 0 0 vlan1
10.7.3.0 * 255.255.255.0 U 0 0 0 vlan3
10.7.2.0 * 255.255.255.0 U 0 0 0 vlan2
default 10.8.0.29 0.0.0.0 UG 0 0 0 tun0
default 10.1.5.3 0.0.0.0 UG 2 0 0 eth1
Whoa! This is completely borked. Can anyone explain this? Routers 1 and 7 are
going via 3, which is totally wrong. The route between 10.254.1.1 and 10.254.1.3
is going via router3, despite a piece of wire directly between them.
The interesting things I pick up from this are that
o the 10.254.1.x link has a ETX of 1.00 in one direction, and 22.37 in the other.
o there is no symmetric link between routers 1 and 7
Here's some olsrd debug output from router 1:
--- 00:31:06.55 ------------------------------------------------- HNA SET
IP net netmask GW IP
--- 00:31:06.55 ---------------------------------------------------- LINKS
IP address hyst LQ lost total NLQ ETX
10.1.5.5 0.000 0.900 2 20 0.937 1.19
10.1.5.7 0.000 0.950 1 20 0.200 5.26
10.1.5.3 0.000 1.000 0 20 1.000 1.00
10.254.1.1 0.000 0.950 1 20 0.047 22.37
10.1.5.2 0.000 1.000 0 20 1.000 1.00
--- 00:31:06.55 ------------------------------------------------ NEIGHBORS
IP address LQ NLQ SYM MPR MPRS will
10.1.5.2 1.000 1.000 YES NO YES 3
10.1.5.3 1.000 1.000 YES YES YES 3
10.1.5.5 0.900 0.937 YES NO YES 3
10.1.5.7 0.950 0.200 NO NO NO 3
--- 00:31:06.55 ------------------------------------------------- TOPOLOGY
Source IP addr Dest IP addr LQ ILQ ETX
10.1.5.2 10.1.5.1 1.000 1.000 1.00
10.1.5.2 10.1.5.5 0.718 0.918 1.52
10.1.5.3 10.1.5.1 1.000 1.000 1.00
10.1.5.3 10.1.5.7 0.000 0.976 0.00
10.1.5.5 10.1.5.1 0.949 0.898 1.17
10.1.5.5 10.1.5.2 0.918 0.718 1.52
10.1.5.7 10.1.5.3 1.000 1.000 1.00
ANSN UPDATED 75
Processing TC from 10.1.5.7
Received TC from NON SYM neighbor 10.1.5.7
Alias list for 10.1.5.7: 10.1.5.7 - 10.254.1.1
Processing MID from 10.1.5.7...
Received MID from NON SYM neighbor 10.1.5.7
Processing TC from 10.1.5.3
mpr_selector_list:[10.1.5.7:10.1.5.1:]
Processing TC from 10.1.5.7
mpr_selector_list:[10.1.5.3:]
Alias list for 10.1.5.7: 10.1.5.7 - 10.254.1.1
Processing MID from 10.1.5.7...
MID: update 10.1.5.7
--- 00:31:06.91 ------------------------------------------------- DIJKSTRA
10.1.5.2:1.00 (one-hop)
10.1.5.3:1.00 (one-hop)
10.1.5.5:1.19 (one-hop)
10.1.5.7:7.87 <- 10.1.5.3:1.00 (one-hop)
and some olsrd debug output from router 7:
--- 00:31:17.25 ------------------------------------------------- HNA SET
IP net netmask GW IP
0.0.0.0 0.0.0.0 10.1.5.1
--- 00:31:17.25 ---------------------------------------------------- LINKS
IP address hyst LQ lost total NLQ ETX
10.1.5.1 0.000 1.000 0 20 1.000 1.00
10.254.1.3 0.000 1.000 0 20 1.000 1.00
10.1.5.3 0.000 1.000 0 20 1.000 1.00
--- 00:31:17.25 ------------------------------------------------ NEIGHBORS
IP address LQ NLQ SYM MPR MPRS will
10.1.5.1 1.000 1.000 NO NO NO 3
10.1.5.3 1.000 1.000 YES YES NO 3
--- 00:31:17.25 ------------------------------------------------- TOPOLOGY
Source IP addr Dest IP addr LQ ILQ ETX
10.1.5.1 10.1.5.2 1.000 1.000 1.00
10.1.5.1 10.1.5.3 0.976 1.000 1.02
10.1.5.1 10.1.5.5 0.878 1.000 1.14
10.1.5.2 10.1.5.1 1.000 1.000 1.00
10.1.5.2 10.1.5.5 0.737 0.937 1.45
10.1.5.3 10.1.5.1 1.000 0.976 1.02
10.1.5.3 10.1.5.7 1.000 1.000 1.00
10.1.5.5 10.1.5.1 1.000 0.878 1.14
10.1.5.5 10.1.5.2 0.937 0.737 1.45
Processing TC from 10.1.5.5
Received TC from NON SYM neighbor 10.1.5.1
Processing TC from 10.1.5.5
mpr_selector_list:[10.1.5.2:10.1.5.1:]
Processing TC from 10.1.5.3
mpr_selector_list:[10.1.5.7:10.1.5.1:]
Processing TC from 10.1.5.1
Received TC from NON SYM neighbor 10.254.1.3
Alias list for 10.1.5.1: 10.1.5.1 - 10.254.1.3
Processing MID from 10.1.5.1...
Received MID from NON SYM neighbor 10.254.1.3
Received HNA from NON SYM neighbor 10.254.1.3
Received HNA from NON SYM neighbor 10.1.5.1
Processing TC from 10.1.5.2
Received TC from NON SYM neighbor 10.254.1.3
Processing TC from 10.1.5.2
Received TC from NON SYM neighbor 10.1.5.1
Alias list for 10.1.5.1: 10.1.5.1 - 10.254.1.3
Processing MID from 10.1.5.1...
Received MID from NON SYM neighbor 10.1.5.1
Processing TC from 10.1.5.1
Received TC from NON SYM neighbor 10.1.5.1
Processing TC from 10.1.5.2
mpr_selector_list:[10.1.5.5:10.1.5.1:]
Alias list for 10.1.5.1: 10.1.5.1 - 10.254.1.3
Processing MID from 10.1.5.1...
MID: update 10.1.5.1
Processing TC from 10.1.5.1
mpr_selector_list:[10.1.5.5:10.1.5.3:10.1.5.2:]
Processing TC from 10.1.5.5
Received TC from NON SYM neighbor 10.254.1.3
Processing TC from 10.1.5.5
Received TC from NON SYM neighbor 10.1.5.1
Processing TC from 10.1.5.5
mpr_selector_list:[10.1.5.2:10.1.5.1:]
Processing TC from 10.1.5.3
mpr_selector_list:[10.1.5.7:10.1.5.1:]
Processing TC from 10.1.5.1
Received TC from NON SYM neighbor 10.254.1.3
Received HNA from NON SYM neighbor 10.254.1.3
Alias list for 10.1.5.1: 10.1.5.1 - 10.254.1.3
Processing MID from 10.1.5.1...
Received MID from NON SYM neighbor 10.254.1.3
Processing TC from 10.1.5.2
Received TC from NON SYM neighbor 10.1.5.1
Received HNA from NON SYM neighbor 10.1.5.1
Processing TC from 10.1.5.2
Received TC from NON SYM neighbor 10.254.1.3
Processing TC from 10.1.5.2
mpr_selector_list:[10.1.5.1:]
--- 00:31:28.27 ------------------------------------------------- DIJKSTRA
10.1.5.3:1.00 (one-hop)
10.1.5.1:2.02 <- 10.1.5.3:1.00 (one-hop)
10.1.5.2:3.02 <- 10.1.5.1:2.02 <- 10.1.5.3:1.00 (one-hop)
10.1.5.5:3.20 <- 10.1.5.1:2.02 <- 10.1.5.3:1.00 (one-hop)
Phew!
Well, if it will help to post any more debug output, just let me know :-)
Aled.
More information about the Olsr-users
mailing list