Hi Stuart,

Thanks for your great response, all makes perfect sense.

I will start with OpenOSPFd and OpenBGPd and see how I get on.

I was initially thinking of using BIRD for the previously mentioned
reasons, but considering all the points discussed I will start testing,
testing testing...

Wish me luck and thank you everyone for all your comments! :)

Andrew Lemin


On Sat, 18 May 2013 22:33:21 +0100, Stuart Henderson <[email protected]>
wrote:
> On 2013/05/18 18:10, andy wrote:
>> Hi,
>> Sorry for the slow reply, have just got back home from the RIPE 66
>> conference in Dublin. Which was great by the way :)
>> Thank you very much for your comments and suggestions. When building
>> something like this it is really important to me to hear the experience
>> and
>> thoughts of others.
>> 
>> Ok, so I think Quagga is out the Window.
>> This is what I have got it down too.. I have put question marks next to
>> the items which I am not 100% sure on, and a score of 1 to 10 on how
>> important it is.
>> 
>> 
>> *BIRD;
>> - Pro's
>> Widely deployed - 7/10
>> Heavily tested - 10/10
>> Great interoperability with Cisco - 10/10
>> Fast development with many developers working on it - 5/10
>> 
>> - Con's
>> All routes treated with same priority - 4/10
>> No CARP demote - (Not sure if this is important or not?) - ?/10
> 
> Important con here if you're talking about running it on OpenBSD is that
> this is not a primary platform for them. I think it's safe to say that
> far fewer people will be running BIRD on OpenBSD than will be running
> OpenOSPFd on OpenBSD. (I mostly just imported it to ports in case it's
> useful for interoperability testing rather than to actually use it..)
> 
>> *OpenBGPd/OpenOSPFd;
>> - Pro's
>> Tightly integrated into OBSD code - 7/10
>> Routes support different priorities - 5/10
> 
> This is important when you're running with multiple routing daemons
> but less important if everything is done in one process.
> 
>> Supports CARP demote - (Not sure if this is important or not?) - ?/10
> 
> If you are using ospfd on a machine (firewall, etc) which is also
> running carp, yes it's very important, otherwise a machine can become
> carp master when ospf is down so it has no onward routes.
> 
>> Better configuration interface compared to Bird(?) - 3/10
>> 
>> - Con's
>> Not so widely deployed(?) - 7/10
> 
> I don't think it's really possible to say which is more widely
deployed..
> I'm pretty sure Quagga is more deployed than either, still that wouldn't
> make me want to use it unless it was the only option ;)
> 
>> Not as well tested(?) - 10/10
> 
> see above; definitely better tested than BIRD on OpenBSD.
> 
>> More likely to have interoperability issues with Cisco maybe(?) - 10/10
> 
> no known problems, and we do minimal dead time for sub-second failover.
> 
>> I seem to remember seeing something when googling like OpenOSPFd once
had
>> assert fail problems when receiving packets from other routing daemons
>> with
>> unknown attributes, is this true or still the case? I can't remember
>> where
>> I heard that so not sure if thats even true.
> 
> You're thinking of something else (possibly quagga's ospfd?)
> OpenBSD's ospfd has never had asserts.
> 
>> What is the level of integration with CARP for OpenBGPd and OpenOSPFd?
>> I.e. Can I have both the Primary 'and' the Backup firewalls sending and
>> receiving routes all the time, but referring to the CARP IPs in the
route
>> entires so the forwarding plane uses the CARP Masters etc, and the
>> routing
>> control plane always involves all firewalls etc? This would mean that a
>> CARP fail-over would effectively be an instantaneous re-convergence?
>> (this
>> is very important).
> 
> With OpenOSPFd normally both carp master *and* carp backup will
advertise
> the route, master with a low (more preferred) metric, backup with a high
> metric. So when a failover occurs, the route will not drop out at all,
> it will switch straight over. I think this is what you're looking for.
> Other routing daemons do not do this.
> 
>> The network I am building is as follows;
>> I have 3 data centres (one primary, one DR/backup, one
>> staging/development).
>> I am building 2 brand new POPs at two new central locations using two
>> Cisco ASR 1002 routers to join the data centres and firewalls I have
>> inherited together, and bring all POPs/DCs under the same ASN and
global
>> IP
>> prefixes etc.
>> 
>> The DR/backup and staging/dev DCs just have single layer 2 back-haul
>> links
>> (one to one POP, and the other to the other POP).
>> The primary data center has a fibre to the first POP, and a second
>> diverse
>> path fibre to the other POP, and the two POPs have a fibre between
them.
>> 
>>              Transits&IXPs
>>                   |
>>            -------POP1----DR_DC
>> Primary_DC-|       |
>>            -------POP2---------Dev_DC
>>                   |
>>              Transits&IXPs
>> 
>> The two Cisco ASRs are going to run eBGP to announce our ASN and full
>> prefix globally etc, eBGP with announce filtering for our IXP peerings,
>> iBGP to redistribute full internet table routes between them, and OSPF
to
>> redistribute the local DC sub-prefixes etc.
>> 
>> Each of the DR and Dev DCs have two OpenBSD firewalls (in CARP
>> configuration), and the Primary data centre has six OpenBSD firewalls
(3
>> pairs) to physically separate out the different internal networks in
that
>> data centre (Public DMZ network behind different firewalls to the
>> corporate
>> business networks etc).
>> 
>> The layer 2 connectivity between the 3 pairs of firewalls at the
primary
>> data centre and the two POPs is provided by VPLS from our Primary
>> colocation data centre provider who we have a close working
relationship
>> with.
>> 
>> Naturally I have sliced up our public global IP prefix so each pair of
>> firewalls host their own aggregated IP ranges from the global prefix
etc,
>> and I would like each of these sub-prefixes to be redistributed around
>> using OSPF between all POPs and all firewalls in all locations etc.
>> 
>> So in the case of the Primary data centre firewalls, they should
receive
>> equal cost multi-path routes for global transit and IXP access via POP1
>> and
>> POP2, and routes with different preferences for the DR DC and Dev DC
>> depending on whether going via POP1 (one hop to DR, and two hops for
Dev)
>> or POP2 (one hop to Dev, and two hops to DR) for example.
>> 
>> 
>> So considering the pro's and con's above, this network design, Cisco
>> interoperability being critical, and firewall fail-over providing
>> instantaneous re-convergence, is their any advice you can offer
regarding
>> BIRD or OpenOSPFd for the OpenBSD firewalls?
> 
> Given what you want to do, I definitely think openospfd is preferred.
> 
>> To add another can of worms to the mix, although not entirely important
>> for the core dynamic routing design under normal operation, the
Transits
>> and IXP access are being provided by our VPLS network provider who have
>> multiple transits each from Telecom Italia, Level 3 and NTT, and
multiple
>> connections to LONAP (our IXP). This means we only need two 10 GBit
>> uplinks
>> on our ASRs instead of lots of physical layer 1 connections (Our new
POPs
>> will be in the same racks as their POPs..).
> 
> FWIW I personally know of 2 networks at lonap using openbgpd/openospfd
> (one being mine. ;)
> 
>> It also means that if both of our ASR routers were to go down, they can
>> continue providing the layer 3 Transit and IXP access for the Primary
DC
>> only (DR and Dev would be offline of course), and so for the 3 pairs of
>> firewalls at the Primary DC only, I am also thinking about running
>> additional eBGP instances as a backup for announcing our ASN and
prefixes
>> (should the ASRs be down) and so I would need to run openBGPd (if using
>> the
>> OpenOSPFd/OpenBGPd option), or create a BGP domain in BIRD on those
>> primary
>> DC firewalls.
>> 
>> 
>> Thank you for reading this far, I hope this all clear. And thanks again
>> for your thoughts and ideas, they are greatly appreciated.
>> Humbly yours, Andrew Lemin
>> 
>> 
>> 
>> On Thu, 16 May 2013 22:15:40 +0000 (UTC), Stuart Henderson
>> <[email protected]> wrote:
>> > On 2013-05-16, andy <[email protected]> wrote:
>> >> Hello,
>> >> I would like to appeal to the knowledge and experience of this
mailing
>> >> list to offer any opinions/preferences for which routing daemon
would
>> be
>> >> best to use (openospfd or bird or quagga) on OpenBSD when
>> interoperating
>> >> with Cisco IOS XE routers for redistributing IPv4 and IPv6 routes?
>> >>
>> >> I am planning to install 2 Cisco ASR 1002 routers as POPs to
>> interconnect
>> >> our many OpenBSD firewalls at our data centres, and would like OSPF
to
>> >> redistribute all the prefixes.
>> >>
>> >> I like BIRD and have used it before to a basic extent, but wonder if
>> the
>> >> OpenOSPFd daemon would be better seeing as it seems to be more
closely
>> >> coupled with OpenBSD development?
>> >>
>> >> Thank you in advance for your time.
>> >> Kind regards, Andy.
>> >>
>> >>
>> > 
>> > I would suggest sticking with the routing daemons from the base OS on
>> > OpenBSD if possible. They are designed to work with the OS and in
most
>> > cases if a problem can be clearly identified or reproduced it will
>> > usually get fixed.
>> > 
>> > OpenBSD is a fairly minor target for the other daemons, in particular
>> > part of quagga's current ospf code needed to be reverted to an older
>> > version to even build on OpenBSD and it's not really well tested.
>> > 
>> > If on an OS other than OpenBSD I'd probably go for BIRD (though I'm
>> > not really keen on the config language). But it has a few things
>> > missing that would really be wanted for working alongside some
>> > other parts of OpenBSD e.g. it doesn't support route priorities,
>> > it just adds everything at RTP_DEFAULT (below the priority
>> > of other routing daemons), doesn't support carp demote, etc.
>> > Also IIRC it doesn't support some other nice things that ospfd
>> > does, like fast hellos ("router-dead-time minimal" in ospfd).

Reply via email to