This question is related to a previous one on OSPF routing.
Based on the advice give to the previous question, I have now made myself a network diagram, identified the backbone area and all other areas and started configuring OSPF on the various routers. All the HP ProCurve 7102dl routers talk to each and that works fine. However, on the intra-area routers, which are all Linux servers, I am using quagga (Version 0.99.10, from debian lenny) and this just won't work at all.
Here are some examples: In one particular area the primary network is 192.168.51.0/24 and both the linux router and the HP router have an interface in that network. The HP router has VPN tunnels to other HP routers and connects the entire subnet to the outside world. Behind the Linux router is another subnet on 192.168.52.0/24. When I look at the OSPF configuration for these interfaces, this is what I get:
Linux router:
uk-swa-bps01# show ip ospf interface eth0
eth0 is up
ifindex 2, MTU 1500 bytes, BW 0 Kbit <UP,BROADCAST,RUNNING,MULTICAST>
Internet Address 192.168.51.1/24, Broadcast 192.168.51.255, Area 0.0.0.51
MTU mismatch detection:enabled
Router ID 192.168.51.1, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 192.168.51.1, Interface Address 192.168.51.1
No backup designated router on this network
Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
Hello due in 6.595s
Neighbor Count is 0, Adjacent neighbor count is 0
uk-swa-bps01# show ip ospf database
OSPF Router with ID (192.168.51.1)
Router Link States (Area 0.0.0.51)
Link ID ADV Router Age Seq# CkSum Link count
192.168.51.1 192.168.51.1 1335 0x80000016 0xabf6 2
And on the HP router:
bps-test-vpn#show ip ospf interface ethernet 0/2
eth 0/2 is UP, line protocol is UP
IP address: 192.168.51.254 255.255.255.0, Area: 0.0.0.51
Router ID: 192.168.51.254, Network type: Broadcast, Cost: 1
Transmit delay: 1, State: DR, Priority: 1
Designated Router (ID): 192.168.51.254, Interface Address: 192.168.51.254
Backup Designated Router (ID): 0.0.0.0, Interface Address: 0.0.0.0
Timer intervals: Hello: 10, Dead: 40, Retransmit: 5
Hello due in: 00:00:05
Number of neighbors: 0, Adjacent neighbors: 0
bps-test-vpn#show ip ospf 0 database
OSPF router with ID: 192.168.51.254
Router Link States, Area 0
Link ID Adv Router Age Seq # Checksum
10.10.2.1 10.10.2.1 601 0x80000004 0xECAD
10.176.1.33 10.176.1.33 1526 0x80000086 0xAAE1
10.181.1.1 10.181.1.1 826 0x8000009A 0x56EF
192.168.51.254 192.168.51.254 819 0x8000001D 0x0B13
Summary Net Link States, Area 0
Link ID Adv Router Age Seq # Checksum
10.171.0.0 10.10.2.1 825 0x80000001 0x2867
10.171.0.0 10.176.1.33 1520 0x80000001 0x3990
10.181.0.0 10.181.1.1 1226 0x80000009 0x4989
10.181.1.0 10.181.1.1 1226 0x80000032 0xD9D1
192.168.51.0 192.168.51.254 824 0x80000016 0xF915
bps-test-vpn#show ip ospf 0.0.0.51 database
OSPF router with ID: 192.168.51.254
Router Link States, Area 0.0.0.51
Link ID Adv Router Age Seq # Checksum
192.168.51.254 192.168.51.254 845 0x80000009 0xFD79
Summary Net Link States, Area 0.0.0.51
Link ID Adv Router Age Seq # Checksum
0.0.0.0 192.168.51.254 610 0x80000005 0x15AA
10.10.1.40 192.168.51.254 835 0x80000001 0x87FF
10.10.1.44 192.168.51.254 830 0x80000001 0x6919
10.10.1.52 192.168.51.254 835 0x80000001 0x0F6C
10.10.1.72 192.168.51.254 844 0x80000001 0x3C2C
10.10.1.76 192.168.51.254 835 0x80000001 0x1E45
10.171.0.0 192.168.51.254 830 0x80000001 0xA269
10.181.0.0 192.168.51.254 830 0x80000001 0x34CC
10.181.1.0 192.168.51.254 830 0x80000001 0x17EB
Clearly OSPF is enabled on both sides on the interfaces that are in the 192.168.51.0/24 subnet, yet they don't talk to each other, because otherwise I would be getting some OSPF routes on the Linux Box. But I am not. So what am I doing wrong? I have tried all sorts of things, but I am not making any headways. Any advice would be appreciated. If you need additional info, just ask and I'll edit my post.
Guacamole pointed me in the right direction. I did a bit of debugging on the ProCurve and in quagga and it emerged that one of them was seeing the area as a stub area, but the other saw it as a normal area, and that's where the communication broke down. Once I had both configured to see the area as the same, it all worked like a charm.