Groundwork, Phase 2: Sensible IP Addresses
Note from future self; Although this setup guide is now superseded by cloud-based tools, certain elements are still useful simply as good practice, such as the "groundwork" in the early stages of this guide. As such, this article has been spared the chop
This is Part 2 of my Ultimate Ubuntu Build Server Guide.
First things first. If you're running a development network on a 192.168.x.y network, you're going to want to change that, stat. Why? Because you simply don't (or won't) have enough numbers to go around.
Yes, you're going to hit your very own IPv4 address exhaustion crisis. Maybe not today, maybe not tomorrow, but consider the proliferation of WiFi-enabled devices and virtualised machines in the last few years. If you've only got 250-odd addresses, minus servers (real and virtualised), minus workstations (real and virtualised), minus bits of networking equipment, and each developer has at least one WiFi device in her pocket, you're probably going to have to start getting pretty creative to fit everyone in. And I haven't even mentioned the possibility of being a mobile shop and having a cupboard full of test devices!
To me, it makes much more sense to move to the wide open spaces of the 10.a.b.c local network range. Then not only will you have practically-unlimited room for expansion, but you can also start encoding useful information into machine addresses. Allow me to demonstrate with a possible use of the bits in the a digit:
7 6 5 4 3 2 1 0 | | | | | | | \- "static IP" | | \--- "wired" | \----- "local resource access OK" \------- "firewalled from internet"
Which leads to addresses like:
|Address||Meaning||Example Machine Type|
|10.240.b.c||fully-trusted, wired, static-IP||Dev Servers|
|10.224.b.c||fully-trusted, wired, DHCP||Dev Workstations|
|10.192.b.c||fully-trusted, WiFi, DHCP||Known Wireless Devices|
|10.128.b.c||partly trusted WiFi DHCP||Visitor Laptops etc|
|10.48.b.c||untrusted wired static-IP||DMZ|
You've still got scads of room to create further subdivisions (dev/test/staging for example in the servers group) and access-control is as simple as applying a suitable netmask.
In the above case, sensitive resources could require a /10 (trusted, firewalled) IP address. Really private stuff might require access from a wired network - i.e. a /11. Basically, the more secure the resource, the more bits you need in your a octet.
It might be a bit painful switching over from your old /24 network but I think in the long term it'll be well worth it.
Next time, we'll look at how to name all these machines.