My technical readers will surely know which direction this post is going, some may even be thinking here we go again, but in light of recent events I felt compelled to write an article on the subject of static vs dynamic routing. For those that don’t know we have two main ways that we can design routes and implement traffic flow, static routing and dynamic routing. Simply put static routes will be the same regardless of what happens within the network, while dynamic routes are fluid and able to adapt to any changes within the network. Of courses there are advantages and disadvantages to both.
Static routes offer the benefit of being easy to implement and maintain, as long as you have a relatively small network. For any network with a connection to the internet there will always be at least one, regardless of network siz, to the gateway of last resort using a default route. Implementing a network via static routes saves on CPU and Memory resources, of the actual routers, because there are no algorithms or updates to be processed as is the case with dynamic routing protocols. Security is less of an issue because there are no advertisement containing network information being sent out across the network either. Last but not least static routes are predictable because they will never change.
However, that predictability could also be a disadvantage as well. For instance, if any of the hardware along the path of the route fails or a cable is broken, the routers are ignorant to that face and will continue to unsuccessfully send traffic until the path is restored or there is some sort of manual reroute of the traffic which is an unnecessary risk in itself. Within larger networks the task of implementing and maintaining static routes also becomes very time consuming and more complex which is not something any logical Engineer would purposefully do. I would never choose to implement static routing outside of a special circumstance like the default route, or while implementing some sort of break fix. There’s probably a few more instances but they aren’t necessary for this post.
Moving on to Dynamic routing, the biggest advantage is the worst disadvantage of static routing. Dynamic routing automatically reroutes traffic when it detects failures in the network that would render a particular path (read route) unusable, which greatly reduces or eliminates the impact to the end user. The detection of the failures is actually a combination of other protocols that the dynamic protocol interpets and acts upon. Once a change is detected, updates are sent to neighboring routers to advise them of the problem and to avoid sending traffic on the affected path. Network size doesn’t matter either which is another benefit to dynamic routing, and it’s pretty self-sufficient once implemented properly, and yes I’m purposely keeping it it basic here as I do have an audience that isn’t completely technical.
Speaking of implementing, compared to static routing the implementation of dynamic routing is initially much more complex. I list that as a disadvantage strictly because it affords the opportunity for more mistakes due to the number of different steps involved. Us Engineers are only human after all. The actual route your traffic takes is dependent completely upon the topology of the network and the algorithms and processes that the dynamic protocol chooses, meaning manual intervention is still required if a certain route is more desirable, for reasons outside of what the protocol dictates, but it’s not quite the same as implementing a static route. It’s also less secure due to the route advertisements and updates being sent over the network, which are also more resource intensive on your equipment as well.
Having briefly explained the pros and cons of both, dynamic routing is definitely the way to go. What baffles me is some of the instances of static routing that I continue to come across out here in the real world. It just doesn’t make sense to install static routing when it pertains to business critical functions that require manual intervention to fix, when the option of automatic recovery exist. A former colleague of mine who now works at another company detailed an incident he recently discovered between his company’s core network and another company that they peer with for a critical service. That peering was statically assigned so when a link went down in the cloud between them they continued to send traffic blindly. Had the peering been done with a dynamic routing protocol they would’ve received notification that the primary circuit was unusable and been rerouted. Instead he had to get them on the call, identify the issue and manually shut down the link and open the backup connection. Something that would’ve taken less than a handful of seconds dynamically.