Using Quagga in BGP tests

Quagga is a terrifically useful tool when you need to build a BGP test lab. Not only can you quickly add an extra BGP router in your network; it also allows you to insert BGP routes with almost any attribute you want. I’ve described some of its features and included a sample Quagga-to-router connectivity scenario in the “Use Quagga to generate BGP routes” article published in the CT3 wiki.

9 comments:

  1. Also useful thing to generate BGP-routes is NET::BGP module in perl. I use this module to upload multiple Internet full view tables to router in lab for testing purposes.

    ReplyDelete
  2. Hi I'm using quagga in production evironment (non-business though) and feature that network command is creating a bgp route even if router hasn't same prefix in routing table was very annoying to me. I've actually consider it as a drawback rather then feature.
    Never thought about it as a possibility to use this feature/weakness for such testing :-)
    Thanks for tip.

    ReplyDelete
  3. @pigo: One of our engineers managed to crash a high-end router in this manner :) Net::BGP is great for stress-testing purposes.

    ReplyDelete
  4. 2 Ivan: Its very strange that router crashed. Our tests with Cisco and Juniper produced only tracebacks in bad cases but nothing more :)

    ReplyDelete
  5. Why not use Vyatta?

    It includes Quagga and has a command line structure more like IOS and JunOS. Plus lots of documentation.

    ReplyDelete
  6. Sadly Quagga lacks MPBGP capability, though it does have it coded in it isn't stable enough to be usable.

    ReplyDelete
  7. Oh, I would never use Quagga in a production environment (and I guess there are numerous people that disagree with me :), but it's perfect in a test lab.

    ReplyDelete
  8. Yap Chin Hoong08 June, 2010 06:31

    Hi Ivan, by reading at the CT3 wiki doc (http://wiki.nil.com/Use_Quagga_to_generate_BGP_routes), I saw that "set as-path prepend 1 2 3 4" is there, and I believe the AS_PATH should looks like 1 2 3 4 65000, but seems like it get appended instead of prepended based on the output of the "show ip bgp" command on the Cisco router in the last code snippet in the mentioned document. 8-)

    ReplyDelete
  9. Ivan Pepelnjak08 June, 2010 07:00

    In my example the AS-path is “prepended” to an empty AS-path when the route is inserted into the BGP table. You can use the “set as-path prepend” to prepend AS-path when sending it to a neighbor or to set AS-path when inserting the route in the BGP table. In both cases, the local AS is always prepended to the AS-path as the update is sent to the neighbor, see also:
    http://blog.ioshints.info/2009/03/as-path-prepending-technical-details.html

    ReplyDelete

You don't have to log in to post a comment, but please do provide your real name/URL. Anonymous comments might get deleted.

Ivan Pepelnjak, CCIE#1354, is the chief technology advisor for NIL Data Communications. He has been designing and implementing large-scale data communications networks as well as teaching and writing books about advanced technologies since 1990. See his full profile, contact him or follow @ioshints on Twitter.