extras

Sunday, September 8, 2013

Logical Improvements to the Robtex Backend Algorithm, based on IPv6 rollout.

Logical Improvements to the Robtex Backend Algorithm, based on IPv6 rollout.

As some of you may have noticed already, we have updated the GUI and the algorithms used for https://as.robtex.com.  A working example (of as48285) can be found here: https://as.robtex.com/as48285.html.  I find it easier to understand changes if they are explained one by one. So, here goes:

A) The rollout of IPv6 in our backend, and subsequent increase in functionality, forced us (this is a good thing) to reconsider the use of IPv4-specific terminology.  Most notably, this affects [anet,bnet,cnet].robtex.com.  The functions are of course still active, but will now automagically reroute you to the correct section of the site, depending on the data processed. 


Reproduction Tutorial (IPv4):

  1. Go to https://anet.robtex.com / https://bnet.robtex.com or https://cnet.robtex.com.
  2. Enter "66.249.75", press "go". 
  3. As you can see, the system has now processed the data and forwarded your request to the correct backend (in this case https://route.robtex.com/66.249.75.0-24---google.html), regardless of what URL you chose to use above, the calculations will end up being the same.  We strongly encourage you to use "66.249.75.0/24" instead of "66.249.75",  as it is never wrong to use CIDR, but neglecting to do so can be at times. Applicable scenarios are considered out of scope for this article. 

Reproduction Tutorial (IPv6):
  1. Go to https://anet.robtex.com / https://bnet.robtex.com or https://cnet.robtex.com.
  2. Enter "2607", press "go". 
  3. What happened now?  That was not what we expected?  Go back again.
  4. Don't worry, this is per design.  Why?  Well, to answer that question we must first compare legacy IP with IPv6.  Legacy IP has undergone multiple transformations, the dominant one being the implementation of CIDR in 1993.  Since then, the correct terminology for a legacy "A-net" is an '/8', per CIDR regulations (rfc1518).  However, naturally an /8 network corresponds to the legacy A-nets, so the term is still sometimes used, although it is only ever accurate when discussing /8, /16, or /24 networks (the networks with the same netmask as the old A/B/C-nets), and even then it makes little sense. For IPv6, using CIDR is recommended for the same reason; it is far more flexible. So, what should we use instead?
  5. Try entering "2607:f8b0::/32", or any network you want to look deeper into. 
  6. You should now have been rerouted to https://route.robtex.com/2607:f8b0::-32.htmlYou will notice that you can travel downstream recursively through the interface.

Those of you who have paid attention up until now, might already have realized that you can go straight to https://route.robtex.com for routes, and https://as.robtex.com for information on Autonomous Systems.  

But there is more, the system can now handle cross-site searches, so if you enter "as48285" at route.robtex.com, Robtex will be very forgiving and reroute your request to the section of the Robtex Backend (in this case, https://as.robtex.com/as48285.html) that makes the most logical sense, based on data input. Obviously, vice versa holds true, too.  In fact, any syntax will pretty much work anywhere, as long as you abide by the guidelines detailed in the Reproduction Tutorials above, regarding CIDR.


B) Robtex has always been an extremely powerful engine, with an (according to some) suboptimal graphical design that is sometimes hard to grasp for beginners.  It is extremely tech oriented, per design.  We believe there are plenty of beautiful GUIs out there to leave room for at least one that focuses solely on functionality, as we believe that gives us the only edge that matters. Graphics change, powerful functions remain.  However, we do acknowledge that functionality requires a level of intuitive design to work well.  It is a hard balance when you need to prioritize.  As we rely on your feedback, to find this balance, we have tried to listen to what you have had to say on Google+, and have, to the best of our abilities, tried to implement what we feel is a reasonable balance. Which leads us to the next point on this list:

C) Again, go to https://as.robtex.com/as48285.html.  Notice the new menu?  It now has a mouse over info-box, which will provide you with some function specific guidance.  You can choose to use the menu, or just scroll down.  From this interface, you can explore pretty much anything worth knowing about the structure of the Internet.  But again, let's go through them one by one for clarity:

  1. AS-info will tell you when this information was gathered, and from what databases. Robtex uses multiple sources, as well as our own algorithm, but the public sources are all listed here.  The information displayed may not always be up to date.  It should update once the full routing table has spread across all neighbors, from wherever the change was made.  Due to limitations outside of our control, some of which are inherit to the Border Gateway Protocol itself, the propagation of prefixes to and from BGP neighbors might at times result in unfortunate delays. Usually, this is not a problem, as Robtex has counter-measures in place to proactively ensure that the data is as up to date as possible, through best-effort caching and other techniques considered out of scope for this article. The pie chart underneath is a work in progress, as it does not yet scale well with Tier1 networks with an enormous amount of peers.  This is something we will fix as a direct result of feedback from you, our users.  Thank you!
  2. Graph shows you a visual representation of the connections between the different Autonomous Systems' edge routers.  Thanks to your feedback, there is now a static horizontal scroll at the bottom, so that you can always scroll horizontally, and not just when you are in the #graph anchor.  Please also pay attention to the fact that you can click any Autonomous System in the graph, and display the network topology from that Autonomous System's perspective.  A visual looking glass, of sorts.
  3. Peers will show you all the data that is used to populate the Graph, but in text format.  In addition, it will also display AS macro and potential BGP endpoints. 
  4. BGP will show you what prefixes are announced by the Autonomous System in question, as well as any information available from the different sources, such as descriptions, announcements and registrations. Naturally, you can also click any of the networks, and it will display any applicable https://route.robtex.com backend-data.
  5. Sources will display raw data collected, for general information and verification purposes.
So, we hope you like the new design, and that you will appreciate the IPv6 support and better GUI.  If you do have additional feedback (please, let it be so), don't hesitate to contact us at https://google.com/+robtex

Thank you for your time and traffic.  Without you, Robtex would just be an extremely advanced calculator. 

Best Regards,