top of page
Search

CIDR Clash

  • Jan 12
  • 5 min read

The Problem


As I shared in my previous post The Network Overlap Problem there are many ways an organization can find themselves entangled in so many CIDR ranges that it becomes tedious to track and maintain. Decentralized teams managing product-specific network components, or disparate networks becoming joined together through mergers and acquisitions all are subject to this risk. With all the competing agendas and expectations, the last thing we want to worry about is how to determine which network ranges overlap, causing problems in our cloud infrastructure.


When I encountered this problem at a previous client, we couldn’t find a quick solution in any of the tools we had available to us (which, quite frankly, were very few) or freely available online. I regularly use CIDR-to-IP conversion tools, so I was expecting there to be something readily available that addressed the problem. Unfortunately, what we found were mostly stack overflow answers and reddit threads the most helpful of which included snippets of python code.


Image generated with Midjourney


I’ll do it myself!


I thought, “ok sure I could download the latest python and put something together and maybe even save it somewhere to reuse. Or I could build a website, rewrite the logic in JavaScript and toss it in an angular app.” To quote Leela from Futurama “and that’s exactly what [he] did do that”[1]. Admittedly [2], I didn’t even begin building it in time for it to be useful to the project. However, it is now available for use in future similar situations.


I started by first creating a simple module in TypeScript and tested the module’s functionality in a node shell. Now that I had a way to quickly print out colliding network ranges that were written in CIDR notation, I added a simple single page application web page in Angular with a form that takes in a comma delimited list of IP ranges in CIDR notation, and returns the list, highlighting the collisions that it finds.

I then went over to my preferred domain registration provider and registered a domain name I felt was clever. I then went to another site to pick up an SSL certificate (which I regret, the site I used was a pain in the ass[3]).


I then put it on a cloud storage bucket setup for static website hosting, I installed the certificate into the provider-native certificate manager, set up a provider-native CDN to front it (though there’s currently no content that really requires caching like that…), and used the cloud provider’s DNS tool to set up A and CNAME records.

With the help of a generative graphics tool and an image editor, we had a logo and some other artwork, and were ready to launch the site.


Image generated with Midjourney


Announcing CIDR Clash


Today, I’m introducing CIDR Clash, my latest product, for public release. It serves a purpose and I’m hoping it will be of use to others on the quest for less frustration and more foresight and predictability. As for next steps for the site, I’m currently trying to get some things figured out both technically and otherwise for hosting ads on the site. I don’t love the idea of having ads all over the place, but the tool is rather simple and there’s a good amount of real estate available on the page.


Unfortunately, I keep getting rejected from the major online ad platforms for having “too thin” content (they seem to be largely geared towards blogs, but who the heck wants to use a blog site filled with ads, amirite?), despite it being a useful (and very nearly unrivaled[4]) tool in terms of functionality (does anyone know of a platform that will work with a “thin content” application like this one?). I’ve put a “buy me a coffee” button for now (so far, no bites), but I’ll keep searching (in my nearly negligible “free time”) for a way to monetize the site at least to the point of it paying for itself.

I may also add user accounts and perhaps even provide additional (premium?) features, like saved queries or suggested network redistributions. There are few additional generic features I will consider adding, including some kind of forum-style support mechanism which may also serve as a way to request new features.


I also plan to add a conversion tool for IP ranges to CIDR notation and vice versa. There are a number of tools easily found via one’s favorite search engine that already provide this feature, so it’s in no way a market differentiator, but it also is very low hanging fruit (the components are basically already implemented, it would just require some visual components). Whether or not I implement user accounts, it only makes sense to expand the functionality with additional features, thereby increasing the stickiness of the site. It also makes the current site vulnerable to any similar multi-feature tools who would only need to introduce this one feature (whereas I will need to introduce all their existing features to achieve parity, and any real chance at market differentiation).


Finally, I’m considering releasing the site as an open source project. While I don’t exactly love the idea of giving away the work, it’s not like anyone who would run the site locally (e.g. to avoid ads) would be incapable of building the algorithm themselves. To be honest, the only real reason I wouldn’t open source it is that I’m a bit self conscious about the code I wrote. I haven’t had a chance to scrutinize it as I would when collaborating with others, so I’d like a chance at a massive refactor to clean up (and provide some tests). I guess it’s a bit like cleaning before the maid shows up, but that’s pride for you.


Anyway, check out the site, and feel free to let me know what you think!


Footnotes:


[1] S8E6 Yo Leela Leela; I would have also accepted “wait! There is a way! The way I just said!” A la Hermes in 5E15 Bender Should Not Be Allowed On TV, but that would have required more editing.

[2] And for several reasons, but mostly due to a lack of bandwidth, and that while it was frustrating, it wasn’t actually my frustration, so the squeakier wheels got my grease, so to speak.

[3] I won’t name names as I bad mouth anyone; let’s just assume it was a “user error” and I will simply look elsewhere in the future.

[4] I found this tool and this pastebin snippet while writing this piece, but they’re not as snappy a name as cidrclash! And what’s wrong with a little competition?


This article was originally published on Medium on 04/01/2024

 
 
 

Recent Posts

See All
Mind the Overlap

Dealing with Clashing CIDRs Note — I am not by trade a “networking guy”. However, I’ve seen my fair share of network designs. Take this with a grain of salt, but also ignore this at your own risk. Som

 
 
 

Comments


jacket-smile_edited.jpg

Written by

Robert Glenn

  • X
  • LinkedIn
glennium logo
  • LinkedIn
  • X

310-740-3776

Austin, TX 

Get in touch

 

© 2025 by glennium, LLC. Powered and secured by Wix 

 

bottom of page