BGP in a containers

I am working on an personal experiment and was wondering what is the best
option for running BGP in a docker base container. I have seen a lot blogs
and docs referencing Quagga. I just want to make sure I am not over looking
any other options before I dive in. Any thoughts or suggestions?

-James

*twitches*

Please don't let this be an actual thing with something as critical as BGP.

I know of a telco that has been doing this it helps them be able to move
around containers and not have constantly configure IP's on servers.

I guess / hope what you’re trying to achieve is to announce services from the containers using BGP. If this is the case, what you’re looking for is called exabgp.

ic

I agree, i hope that this is for testing/testbench purposes only, or only
running iBGP, as no one in the world would like for you to be running a
public BGP through a docker instance.

I am working on an personal experiment and was wondering what is the best
option for running BGP in a docker base container. I have seen a lot blogs
and docs referencing Quagga. I just want to make sure I am not over looking
any other options before I dive in. Any thoughts or suggestions?

https://docs.cumulusnetworks.com/display/HOSTPACK/Configuring+FRRouting+on+the+Host

Yes, that's it.

Have a peak at
https://osrg.github.io/gobgp/
and
https://github.com/osrg/dockerfiles

there's actually a not insignificant part of the 'network device' world
which is in fact just really a container and "quagga" (or similar).

James, do you care about being close to a 'cisco like' config world?
(quagga)
more programmatic? (exa-bgp, gobgp .. a few others)

something else?

bird is better than quagga!

(runs away) :wink:

14.06.18 21:56, james jones пише:

If this is to run bgp to the ToR, this is a nice way do have redundant
paths to a server.

Exabgp is a nice tool for this, and a colleague of mine developed
'bagpipe' (https://github.com/Orange-OpenSource/bagpipe-bgp) for this,
now part of openstack
(https://github.com/openstack/networking-bagpipe) but still usable as
a standalone daemon.

This is generally in the context of routing-on-the-host setups. We're using BIRD for that in a kubernetes deployment.

I run BGP (bird) on containers in a high available production environment for supporting multiple kubernetes clusters, among other very critical pieces of my infrastructure.
As long as you know what you’re doing and have people that knows how to troubleshoot, it's very reliable. the fact that you’re using containers shouldn’t matter which BGP daemon you will decide using. if you’re comfortable with quagga, containerize quagga. if you like gobgp, use gobgp. they all can be containerized and will work fine if the all the underlying foundation is proper configured.

—vicente

re: Exa:

Our use case was both on exporting service IPs as well as receiving routes from ToRs. Exa is more geared towards the former than the latter. Rather then working on getting imports and route installation through Exa, we found it simpler with BIRD exporting the service IP from it bound to a loopback to run local healthchecks on the nodes and then have them yank the service IP from the loopback on failing healthchecks in order to stop exporting.

But, YMMV etc.

I'm happy with GoBGP in a docker container for my BGP
Dashboard/LookingGlass project.
https://github.com/rhicks/bgp-dashboard

Its just piping RIB updates, as JSON, to script to feed into MongoDB
container.

At work we also looked at GoBGP as a route-server for a small IXP type of
setup, but ran into few issues that we didn't have the time to fully
debug. So we switched to BIRD for that project.
We are happy with both.

So I have to ask, why is it advantageous to put this in a container rather than just run it directly
on the container's host?

Mike

I wonder which part of the proposal people find offensive.

Mike Hammett wrote :
I wonder which part of the proposal people find offensive.

The intent of the original post was vague. Like a lot of people, I would not run a full BGP router in a container. Now, if the purpose is to inject or learn a handful of routes in order to do limited host routing, I can see the need.
A route-server or a looking glass in a container would be fine, or something to perform analysis on the routing table, but not anything that has to route actual traffic.

I use ExaBGP to inject routes, perfect tool for that. If routes have to be received (not my use case) it makes more sense, as stated by previous posts, to use Quagga or BIRD.
Which one is better : easy : if you like Cisco better, use Quagga. If you like Juniper better, use BIRD :stuck_out_tongue:

BIRD looking glass looks very good :wink:

Hope this makes sense.
Michel.

TSI Disclaimer: This message and any files or text attached to it are intended only for the recipients named above and contain information that may be confidential or privileged. If you are not the intended recipient, you must not forward, copy, use or otherwise disclose this communication or the information contained herein. In the event you have received this message in error, please notify the sender immediately by replying to this message, and then delete all copies of it from your system. Thank you!...

I have no idea. All - You know no one is trying to make *you* run BGP
inside of a container, right?

The funny part is I don’t like containers but love VMs, so kvm, vmware, citrix, hvm, et al.
Not much difference but I tend to like the separation of OS knowledge, with all the bugs lately though I wonder if it’s worth it.

Sincerely,

Eric Tykwinski
TrueNet, Inc.
P: 610-429-8300