On Mon, Aug 03, 2009 at 09:53:00AM -0400, Matthew Haas wrote:
> Good day.
>
> I hope this is the appropriate forum for my questions. It is both
> OpenBSD and OpenOSPFD related, but quite networking-centric. My
> apologies if there is a better forum.
Which version of OpenBSD are you using. There was a multicast fix going
into bridge(4) some time ago (IIRC after 4.5) that is necessary in your
case. On the other hand I don't understand why you need to have the
bridge, why not use two different networks one for em(4) and one for
tun(4) and let ospfd handle the rest. Running a dynamic routing protocol
allows you to do that without much issues.
>
> I've scoured the various examples out on the internet, referenced
> relevant information in the various OpenBSD FAQs and elsewhere, yet
> still am experiencing problems.
>
> Basically, I am trying to run OpenOSPFD to manage my routes between
> 4 routers (2 local, 2 remote, each managing a unique network). I
> have a backbone network on each of the routers for router
> communication, and the remote routers have backbone network IP
> addresses via an OpenVPN connection.
>
> I know pictures are preferred, but with the amount of information
> it seemed daunting, so here's a semi-picture (where the connection
> between all routers is via the 10.10.10.x network):
>
> local routers
> ----------------------------------------
> router A (OBSD4.4) router B (OBSD 4.4)
> ------------------ -------------------
> em0: 10.80.1.0/24 xl0: 10.80.2.0/24
> em1: 10.10.10.1 em0: 10.10.10.2
> tun1: backbone VPN
> bridge1: em0 + tun1
>
> remote routers
> ----------------------------------------
> router C (OBSD4.3) router D (FBSD 7.2)
> ------------------ -------------------
> re0: 10.81.1.0/24 xl1: 10.82.1.0/24
> tun1: 10.10.10.4 tap1: 10.10.10.5
>
> router B bridge1:
> /etc/bridgename.bridge1
> -----------------------
> add em0
> add tun1
> up
>
> *** IP forwarding is enabled on all routers.
>
> *** In pf rules on all routers, I am telling pf to skip the backbone
> and tun interfaces (so it doesn't somehow complicate things).
>
> Objective: Trying to run OSPF to manage routes between the routers,
> each of which manages a 10.8x.y.0/24 network.
>
> * the 10.10.10.x network is designated as the communications network
> between the routers (aka "backbone network").
>
> * the remote routers join the backbone via an OpenVPN connection
> hosted by "router B" (the tun1 interface on "router B").
>
> * tun1 and em0 on "router B" are bridged, in the belief that it
> will facilitate communication from routers C and D communicating
> on the backbone network.
>
> * the backbone VPN works. I can set static routes as appropriate and
> traffic routes as desired.
>
> * although I have 4 routers, I am playing with A, B, and C at this
> point, as I still have to figure out how to get OpenOSPFD on a
> FreeBSD box (it doesn't seem to be actively supported in ports
> anymore?)
>
> --------------------------------------------------------------------
>
> OpenOSPFD config (/etc/ospfd.conf)
> ----------------------------------
> router A (OpenOSPFD 4.4.1)
> --------------------------
> router-id 10.10.10.1
> redistribute connected
>
> area 0.0.0.0 {
> auth-type none
> interface em1
> }
>
> router B (OpenOSPFD 4.4.1)
> --------------------------
> router-id 10.10.10.2
> redistribute connected
>
> area 0.0.0.0 {
> auth-type none
> interface em0
> }
>
> router C (native OpenOSPFD to OBSD4.3)
> --------------------------------------
> router-id 10.10.10.4
> redistribute connected
>
> area 0.0.0.0 {
> auth-type none
> interface tun1
> }
>
> --------------------------------------------------------------------
>
> Observations: There appears to be problems on "router B" when OSPFd
> is trying to establish full communication amongst all the routers.
>
> Output of "ospfctl show neighbor" when all 3 are running
> --------------------------------------------------------
> router A
> --------
> 10.10.10.4 1 FULL/DR 00:00:31 10.10.10.4 em1 09:55:14
> 10.10.10.2 1 FULL/OTHER 00:00:31 10.10.10.2 em1 16:11:21
>
> router B
> --------
> 10.10.10.4 1 DOWN/OTHER 00:02:04 10.10.10.4 tun1 -
> 10.10.10.1 1 FULL/BCKUP 00:00:30 10.10.10.1 em0 16:11:47
>
> router C
> --------
> 10.10.10.1 1 FULL/BCKUP 00:00:34 10.10.10.1 tun1 09:55:50
> 10.10.10.2 1 INIT/OTHER 00:00:34 10.10.10.2 tun1 -
>
> If I just run ospfd on routers A and C, they seem to talk just fine.
> When I start ospfd on router B, if I tell it to use "interface em0"
> it seems to be able to talk okay with router A (but has issues
> talking to router C), whereas if it is using "interface tun1", it
> can talk to router C, but has issues talking to router A (I see lots
> of "unknown neighbor ID" messages from ospfd-- a tcpdump seems to
> show traffic destined to router A from B is going down tun1, never
> getting to the right place-- but this is usually when I tell router
> B to use BOTH em0 and tun1, just two consecutive interface
> statements in the area stanza).
>
> When I have "router B" use tun1 (the backbone VPN link), I have to
> assign it an IP (10.10.10.6 for the sake of experimenting). This
> tends to have an effect of popping up on routers A and C as a
> neighbor.
>
> I thought what might be a way to solve the problem was to tell
> router B to use the bridge1 interface... but I cannot seem to apply
> an IP address to it.
>
> The questions I think I have are:
>
> - Do I need to do something more with the bridge to somehow get it
> talking transparently between the two interfaces on router B?
>
> - Is it possible to apply an IP address to an OpenBSD bridge? If so,
> how?
>
> - Any suggestions for dealing with OpenOSPFD communications through this
> scenario?
>
> - I can use OSPF on more than 2 routers, right? I don't see anything
> that specifically says "max/only 2", but I do see some status messages
> that refer to "2-WAY", and all the examples found out on the internet
> make use of only 2 routers. I do have a 3rd local router (not
> mentioned) that I'd also like to join in on the fun once I get things
> going.
>
> - I do want OSPF in this scenario, right? I read up on BGP and OSPF and
> arrived at the conclusion that I am dealing with interior routing.
>
> - Random OT question: Does anyone know the current state of OpenOSPFD on
> non-OpenBSD systems (and FreeBSD 7.2 in particular)? From what I can
> see, OpenOSPFD was removed from ports a year or so ago, citing lack of
> maintainer. I see other mentions that people should favor OpenOSPFD
> over Quagga's OSPFD due to a more active community.
>
> Thanks for any help, suggestions, pointers, etc. that can be offered.
>
> -Matthew
>
--
:wq Claudio