CIDR Address Selection - networking

I understand the general concept of CIDR and how the prefix and suffix bits work, and I generally understand that you can take an address say:
73.132.68.12/24
There are 24 prefix and 8 suffix bits. The network address corresponding to this would be:
73.132.68.0 as the suffix is all zeros.
Going further, you can break this address down into more subnets by extending the network/prefix a little further. This is where I get a little confused though.
If I extended the prefix by 4, then only the last 4 bits would have to be 0 for the network address of any of the subnets. Does this mean that I have to use the first 4 bits in the last byte to identify the subnets? Here's what I mean in example...
73.132.68.16 --> subnet 1 with final byte as 0001 0000
73.132.68.32 --> subnet 2 with final byte as 0010 0000
73.132.68.48 --> subnet 3 with final byte as 0011 0000
etc.
Would this be an appropriate way to subnet the address ?
Is there a better way?

Yes, that's how it works in general, in your example you would have networks 73.132.68.0/28, 73.132.68.16/28, etc. The subnets are identified by the whole network prefix (28 bits in your example) so you should not consider only the last byte. Byte boundaries don't hold any special meaning, apart from having common C/B/A class names.

Related

What are the correct addresses for these subnets?

Assume that the 160.5.132.224/27 network is split into 2 subnets, with equal number of IP addresses. What are the correct addresses for these subnets
Basically, I am trying to find a fool proof method to calculate the network address for any subnet. The answer options are :
160.5.132.224/28
160.5.132.192/26
160.5.132.240/28
160.5.132.192/27
160.5.132.208/28
160.5.132.192/28
Can someone tell me which one is the correct one and demonstrate their working out.
The specified address is a 32 bit number, and the subnet mask specifies the number of bits to hold constant in the subnet. The notation 160.5.132.224/27 means to use the first 27 bits from the speicified address as the subnet and vary the last 5 bits as addresses in the subnet.
To split the subnet you would add a bit to the subnet, i.e. /28, and specify additional bits in the addresses by adding a 1 to one address and a 0 to the other.
In this case, the last eight bits in the specified address are provided by 224, which is 11100000. You should change the last eight bits of one subnet to 11110000 (an extra one) which is 240. The other subnet will specify an extra zero, but it will remain 1110000 (which is still 224). Then you end up with 160.5.132.224/28 and 160.5.132.240/28.

ip range and subnet mask

I have:
ip range,
subnet mask.
I need to assign ip addresses for devices in subnets (there are five of them and they are with different number of hosts in each of them).
So for instance ip range is 192.168.244.0 - 192.168.245.555 and mask /27.
Is first value of the given range(192.168.244.0) is network ip or i need to find it in another way? Because if i take 192.168.244.0/27 there are not enough space for all hosts. Also task says to use given mask for all the five subnets, so i do not understand if 27 is the network mask or mask of subnets. Thanks!
The range 192.168.244.0 - 192.168.245.2(?)55 has got a /23 mask.
They begin to differ in the third octet in the least significant bit. 8 bits in each of the first two octets plus 7 in the third is 23. The network address is 192.168.244.0/23 (all host bits zero).
Check this great answer on NESE for subnet calculations.

taking an ip and getting the subnet mask, & cidr

I have found this website calculator that explains the ip class's (A,B,C,D,E ) and also how to get the subnet mask, he was not very clear about how to configure the number of nodes (formula for figuring out the number of 'host' bits), he says 'Since you know the number of nodes, you need to find 'n'.' to get 2^6 - /26. I don't understand how he knows to use 64 nodes.
subnet calculator
First depict the ip address in binary. Take 61.246.19.18 and convert to binary:
ip address: 00111101.11110110.00010011.00010010
First we determine what class of address it is:
If the first bit is 0 it is a Class A address If the first two bits are 10 it is a Class B address If the first three bits are 110 it is a Class C address If the first four bits are 1110 it is a Class D multicast address If the first four bits are 1111 it is a Class E experimental address
Your example is a Class A address. The default subnet mask for a Class A address is:
subnet mask: 11111111.00000000.00000000.00000000
The formula for figuring out the number of 'host' bits in a subnet mask is
2^n=(number of nodes ) (2^n means '2' to the power of 'n')
Since you know the number of nodes, you need to find 'n'.
Because you want 64 node(s), you want to leave 6 - '0' bits in the subnet mask since 64 = 2 ^ 6.
This will give you the following subnet mask:
subnet mask: 11111111.11111111.11111111.11000000
Which is referred to as /26 or in dotted decimal notation as 255.255.255.192
Most of the topics here i have searched say this cannot be done to find the /cidr range from a given ip address, but this webpage subnet calculator does create the range from a given ip. I understand how to convert ip to binary and also get the class subnet mask, but he did not use these to get his 64 host bits result, I think he skipped how to configure the hosts bits after he converted the class subnet mask.
also alot of the online calculators also require you to manually put the cidr range, to get the ip's range, etc. this seems to be the only calculator example i can find that will create the ip information with only the given ip address.
I need to collect the ip range from just the given ip to block a user from my website from registering, if they have already been banned for chargeback reasons. So I would like to create a php script to compare a new user ip to the banned ip's list ranges. which would determine if they are ban evading by creating new accounts.
Thanks for any help.
From Networking point of view:
/26 means 26 Network bits and 6 hosts bits.
For simplification you can use this formula
Network Bits (NB) + Host Bits (HB) = 32
/26 represents netmask or we can say NB= 26, which means HB = 32-26 = 6
Which means you will have 64 nodes (2^HB => 2^6 = 64) in single subnet.
This simple CIDR Tutorial can be helpful.
You can also identify smallest possible network size from given IPs.
Convert those IP to binary.Then calculate the common bits in IPs, that will be the network bits, based on which you can find subnet mask.
For example
Let's say we have 2 IPs
192.168.24.12 and 192.168.24.76
192.168.24.12 in binary 11000000 10101000 00011000 00001100
192.168.24.76 in binary 11000000 10101000 00011000 01001100
Here first 25 bits are common bits. Which means these IPs can be from /25 subnet.
In this example, the number of nodes is your own input. This is you saying, I have 64 machines and I need to find enough IPs for them all on my given network. Then you use this calculation method to determine the subnet mask and IP allocation.
The article does a poor job explaining this, though.

Calculate Subnetmask from IP range

This was one task I had as homework I just can't seem to understand. And my teacher is having a hard time explaining it to class. So here I am:
The problem:
What is the subnet mask of following host-address range? 99.224.0.1 - 99.239.255.254
My solution (or as far as I got)
First i wrote down the IPs in binary:
99.224.0.1
01100011.11100000.00000000.00000001
99.239.255.254
01100011.11101111.11111111.11111110
What I know is this is a A class network. And I thought it must have something to do with the difference in the bits, so I started to compare. (highest first)
01100011.11101111.11111111.11111110
01100011.11100000.00000000.00000001 (diff)
-----------------------------------
00000000.00001111.11111111.11111111
I ignored the last bit, because of the network / broadcast address.
Now I can turn it around and have my subnet mask?:
11111111.11110000.00000000.00000000
255.240.0.0
My question is: Is my approach correct? Is there an easier way to do it (by hand, or calc)?
If I'm very far from the correct way to do it, could someone help me understand?
Thanks for any help.
Your answer is correct, except that classful addresses don't exist anymore. The internet moved to Classless Inter-Domain Routing (CIDR) in 1993 so your terminology is a bit outdated ;)
IP networking these days works with routing prefixes. A prefix is a range of IP addresses defined by the first address in that range and the number of fixed bits at the start of the address. Your example shows this nicely.
Your example range is 99.224.0.1 - 99.239.255.254. Actually it is 99.224.0.0 - 99.239.255.255 because when used on a subnet the first and last addresses are reserved (but still part of the subnet and prefix).
The first address in the prefix we already have: 99.224.0.0. You can see the prefix length from your binary calculation (slightly modified):
01100011.11101111.11111111.11111111
01100011.11100000.00000000.00000000
----------------------------------- (xor)
00000000.00001111.11111111.11111111
----------------------------------- (not)
11111111.11110000.00000000.00000000
Just count the number of 1s at the beginning: 12. So your prefix is 99.224.0.0/12. This prefix covers all addresses that match 01100011.1110****.********.********.
When writing the prefix length down as a subnet mask you indeed get 255.240.0.0.
A little off-topic here because it is about networking and not about the algorithm to calculate the subnet mask, but maybe helpful: an example of how you can plan network addressing:
Lets say that for my office building I get IP addresses 192.0.2.0/24 (that is 192.0.2.0 - 192.0.2.255, subnet mask 255.255.255.0, 256 addresses). I need 50 addresses for servers, 100 addresses for employee devices and 40 addresses for guests.
Because addressing works with prefixes everything you get is a power of 2. If you use a /24 you have a prefix with 256 addresses. The full address is 32 bits, the first 24 are fixed so you have 8 bits left to use. 28 = 256. If you use a /25 you have a prefix 128 addresses, a /26 has 64 addresses etc.
That way you can also split up a prefix. 192.0.2.0/24 can be split up into 192.0.2.0/25 and 192.0.2.128/25. And those can be split again and again until you have a prefix that covers only a single address: a /32.
back to the example. To get (at least) 50 addresses for the servers I need to round up to the next power of 2. That is 26 = 64. To have that many addresses I need a /26 prefix. For the client devices I need to round up to 128 (27) so we need a /25. For the guests the next power of 2 is 64 (26) so a /26.
So we need to split up out /24 into a /25 and two /26s. One possible solution is:
Client devices: 192.0.2.0/25
Servers: 192.0.2.128/26
Guests: 192.0.2.192/26
Once we configure these subnets on our devices the first and last address of each subnet become special (the network and broadcast address) so we can use these ranges for our devices:
Client devices: 192.0.2.1 - 192.0.2.126
Servers: 192.0.2.129 - 192.0.2.190
Guests: 192.0.2.193 - 192.0.2.254

Using a non conventional subnet mask

A normal mask for example; 255.255.255.0
this gives us 1111 1111.1111 1111.1111 1111.0000 0000 binary where ones represent network id, and zeroes represent host id.
Would it be possible to use a layout which doesn't have all ones to the left and zeroes to the right?
example: 170.170.170.170
or 10101010.10101010.10101010.10101010 in binary.
Maybe just one additional bit at the end?
11111111.11111111.11111111.00000001 or 255.255.255.1
Maybe reverse the whole mask?
0.255.255.255
Of course you would have to use the specified id-type for the (by the mask) specified place.
As far as I know, subnetting is defined in RFC 950, which says the following:
Since the bits that identify the subnet are specified by a bitmask, they need not be adjacent in the address. However, we recommend that the subnet bits be contiguous and located as the most significant bits of the local address.
Using the most significant bits to identify the subnet is mostly a practical choice to simplify everyday operations—such as figuring out a network or host address—without having to make complex calculations.
That said, just because the RFC says that you could use non-contiguous masks, that doesn't necessarily mean that there are devices out there that support it.

Resources