Skip to content

Pass the CIDR Mystery Cache

This cache has been archived.

nelson crew: Say goodnight, Gracie.

More
Hidden : 9/17/2008
Difficulty:
4 out of 5
Terrain:
2 out of 5

Size: Size:   micro (micro)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:

These coordinates are bogus.

As you are working through this puzzle, I urge you to remember the following: There are 10 kinds of people in this world - those who understand binary, and those who don't.

The Internet runs on a protocol called IP; go figure, this stands for Internet Protocol.

IP is a delivery mechanism. Additional protocols run on top of IP to accomplish various objectives. For verified transmissions, Transmission Control Protocol (TCP) is used. Unverified transmissions use User Datagram Protocol (UDP).

Internet transmissions use the appropriate protocol. For example, Web and email traffic use TCP/IP as it is important to verify that the entire transmission was received. UDP/IP is used for streaming media as it is less important that the entire transmissions is received, and a lot of bandwidth can by saved by cutting out the transmission verification process.

IP has been around for a long time, and there are a few versions of it. The iteration in use by today's Internet is v4.

IPv4 expresses (in human-readable form) it's addresses in a 4-byte notation. This is 4 bytes separated by a dot, 192.168.0.1 is a common example.

Each byte contains eight bits which, when expressed in binary form (as the computer reads it) can allow for a number from 0 to 255, referred to as an octet. This number is arrived at by the binary position of each of the 8 bits in the byte.

A bit is either on or off, and this is expressed by 1 and 0. Taking the 8 bits from the left to the right, the values are 128, 64, 32, 16, 8, 4, 2 and 1. For each bit that is turned on, that number value is added to the whole. Thus, 165 expressed in binary is 10100101. We take the "on" bits and add the appropriate numeric value, and end up with 128+32+4+1 = 165.

This version of IP is pretty good - it's stable and provides a lot of available addresses. But as the consumer Internet we now know grows, we are finding that the given address limit of IPv4 - 4,294,967,296 - is actually not going to be enough. It's not just computers that need IP addresses now. Cell phones need one when grabbing email. Those smart fridges you keep hearing about that will order milk when you run out? Guess what - they'll need an IP address, too.

There are further limitations to the number of usable addresses, such as reserved ranges (127.0.0.1, for example, always points back to the local network adapter) that are not Internet-routable.

The long-term answer is to switch to IPv6, which has such a high number of available IP addresses that experts seem to think we won't run out. The short-term answer is two-fold: NAT and CIDR.

We won't cover NAT in this section except to say that it is a means for multiple computers to share a single Internet IP address.

CIDR is a different beast, more about managing the available addresses.

As designed, IP addresses come in different classes, A-E (but classes D and E aren't usable). The class determines the number of available addresses. Class A networks have an 8-bit mask, allowing for one large network with 16777214 hosts. Class B networks have a 16-bit mask, allowing for 65534 hosts, Class C networks have a 24-bit mask, allowing for 254 hosts. When trying to manage a finite number of addresses, this bulk assigning of addresses resulted in a lot of waste (and extremely cumbersome routing tables). So CIDR - Classless Inter-Domain Routing - was born.

Using subnets, CIDR allows for IP addresses to be divvied into smaller chunks, and thus allocated with much less waste.

This is accomplished with subnet masks. A subnetwork is created via masking, hence the term subnet mask. Those of you who have looked at settings on your computers at home or at work have likely seen the standard 24-bit class C subnet mask of 255.255.255.0.

Now, in decimal form, subnet masks are basically meaningless. The magic happens in binary form.

What happens is that the subnet mask is basically a line of ones starting from the left. These "mask" the corresponding bits in the IP address to define the subnetwork (or subnet). In a class C network, the last octet would have been used exclusively to define host addresses. In CIDR, bits are borrowed from the last octet to define the subnet.

Let's take the standard class C address of 192.168.0.1 as an example.

In binary form, the address 192.168.0.1 with a subnet of 255.255.255.0 (expressed in CIDR notation as 192.168.0.1/24 because the 255.255.255.0 blocks 24 bits of data) looks like this:

192.168.0.1 11000000.10101000.00000000.00000001
255.255.255.0 11111111.11111111.11111111.00000000


Using the "on" subnet mask bits, we have now limited the scope of this network to 8 bits, or 256 addresses, 0 - 255.

For those fact-checking, not all of these are usable. There is the network address of 192.168.0.0 and the broadcast address of 192.168.0.255. As you can infer, the first address is taken for the network address, and the last for the broadcast address. Any network loses the first and last available address to these functions, leaving a usable range of, in this example, 192.168.0.1 - 192.168.0.254.

So, we can see that with CIDR the subnet mask is now drastically important.

Thus, with these rules in place, we can take any CIDR-notated IP address and calculate the network and broadcast addresses.

Let's take the previous example address, 192.168.0.1, and shave the network down. Let's make it a 30-bit address. 6 bits will be "borrowed" from the last octet to define the subnet. This means the subnet mask will be 255.255.255.252 (11111100 = 128+64+32+16+8+4 = 252), and the CIDR notation 192.168.0.1/30. Converting to binary we get:

192.168.0.1 11000000.10101000.00000000.00000001
255.255.255.252 11111111.11111111.11111111.11111100


All but the last two bits are "masked", so our range of addresses is 192.168.0.0 - 192.168.0.3. How do we know this? Those 6 "masked" bits are borrowed to define the subnet, meaning each subnetwork can only contain 4 hosts (2 bits remaining leaves only 00 to 11, a range of four numbers). And our availble 256 addresses divided into 4-hosts chunks leaves 64 available subnets in this range. Extending this, the first address is used for the network address - 192.168.0.0, and the last is used for the broadcast address - 192.168.0.3. This leaves 2 useable host addresses, 192.168.0.1 and 192.168.0.2.

Which brings us to the puzzle. (Geez, finally.)

First take the CIDR-notated address of 65.103.156.20/29 and determine the network and broadcast addresses and the subnet mask. Then use the addresses to solve the following:

N47 AB.C W117 D.E

Answer Key:
  • A) Take the number of bits in the last octet only of the subnet and subtract 1
  • B) Convert the following to decimal: 0000100
  • C) Add the octets of the network address and subtract 105
  • D) Take the last octet of the broadcast address and add 5
  • E) Add up all octets for both the network and broadcast addresses and then multiply by .72 - drop the decimals and keep the whole number


I don't know if this will help you or not, but here's a visual description of what's going on.

You can verify your results: Pass the CIDR Coords Verification

Additional Hints (Decrypt)

[Cache:] Rq fnlf crbcyr arire ybbx hc [Puzzle:] Whfg nfx naq V jvyy fraq lbh n pyhr. Vg'f n irel tbbq pyhr.

Decryption Key

A|B|C|D|E|F|G|H|I|J|K|L|M
-------------------------
N|O|P|Q|R|S|T|U|V|W|X|Y|Z

(letter above equals below, and vice versa)