Download Article
Multiple ways to find the network and broadcast addresses for an IPv4 address
Download Article
- Using a Network Calculator
- Converting to Binary
- Using Classful Network
- Using CIDR
- Classful Network Examples
- CIDR Examples
- Q&A
- Tips
|
|
|
|
|
|
|
To calculate the network and broadcast address for an IP address, you’ll need the IP address, subnet mask, and CIDR notation. With this information, you can use an online networking calculator to calculate the address, or find it manually. There are multiple ways to manually calculate the addresses, including by converting both the IP address and subnet mask to binary values, using classful addressing, and using CIDR for classless networks. This wikiHow teaches you four different ways to calculate your network address and broadcast address from an IP address, along with helpful examples for any scenario.
Things You Should Know
- To get the network and broadcast addresses without doing math, use a network calculator.
- The easiest way to calculate the broadcast and network addresses manually is to convert to binary and count the bits.
- For a classless network, use the CIDR method to subnet your network.
-
1
Go to http://jodies.de/ipcalc in a web browser. This handy calculator takes the pain out of calculating the network address and broadcast address.
-
2
Enter the IP address and subnet mask. In the field that says Address (Host or network), type or paste the IP address. In the “Netmask” field, enter the subnet mask in CIDR format (e.g., /24 for a class C network).
Advertisement
-
3
Click Calculate. It is the button below the IP address field. The network address will appear next to “Network,” and the broadcast address appears next to “Broadcast.”
Advertisement
-
1
Convert the IP address and subnet mask to binary. To calculate the broadcast and network addresses for an IP address, you’ll need to first to binary values. The easiest way to do this is to use an online IP to binary calculator, such as this one by Code Beautify. But if you’re a networking student or just want to know how to do this by hand, you can check out our guide on converting decimals to binary.
- For example, if the IP address is 192.168.1.3, the binary address is 111000000.10101000.00000001.00000011.
- If the subnet mask is 255.255.224.0, which is /19 in CIDR notation, the binary address would be 11111111.11111111.11100000.00000000.
- We will use the /19 example in this method.
-
2
Count the bits in the subnet mask. In our example, we’re using a /19 network. This means that the first 19 bits of the subnet mask represents the network, and the remaining 13 bits are the host.
- 11111111.11111111.111 (network) 00000.00000000 (host)
- If you were working with a /24 network, you’d count the first 24 bits (digits) instead. For a /8 network, you’d count the first 8 bits, etc.
-
3
Count the bits in the IP address. Now we’ll want to count the first 19 digits of our converted IP address, just as we did with the subnet mask, because we’re working with a /19 network.
- For the binary IP address 11000000.10101000.00000001.00000011, 11000000.10101000.000, the first 19 digits, is the network. The remaining 13 digits, 00001.00000011, represents the host.
-
4
Determine the network address. Now let’s look at the first 19 digits of our converted IP address: 11000000.10101000.000. To find the network address, we’ll simply add a period after the last number, then replace everything that comes after the first 19 bits with the last 13 digits of the converted subnet mask, which, in our example, is 00000.00000000.
- IP address: 11000000.10101000.000000001.00000011
- Subnet mask: 11111111.11111111.11100000.00000000
- Network address: The first 19 bits from the IP address with the last 13 bits of the subnet mask: 11000000.10101000.000.00000.00000000
- Converted: 192.168.0.0
-
5
Determine the broadcast address. Now, instead of replacing the last 13 bits of our IP address with all zeroes (00000.00000000), we’ll convert all of those zeroes to ones to find the broadcast address:
- IP address: 11000000.10101000.00000001.00000011
- Last 13 bits of subnet mask as ones: 11111.11111111
- Broadcast address: 11000000.10101000.000.11111.11111111
- Converted: 192.168.0.31
Advertisement
-
1
Determine the total number of bits used for subnetting. For a classful network total bits is 8. So Total bits = Tb = 8. The total bits used for subnetting (n) is determined by the subnet mask.
- Subnet masks can be 0, 128, 192, 224, 240, 248, 252, 254 and 255.
- The number of bits used for subnetting (n) to their corresponding subnet mask is as follows: 0=0, 128=1, 192=2, 224=3, 240=4, 248=5, 252=6, 254=7, and 255=8.
- Subnet mask 255 is default, so it’ll not be considered for subnet masking.
- For example: Let’s assume the IP address is 210.1.1.100 and Subnet mask is 255.255.255.224. The total bits= Tb = 8. The number of bits used for subnetting for subnet mask 224 is 3.
-
2
Determine the number of bits left to host. The equation to determine the number of bits left to host is (m) = Tb – n. From the previous step, you got the number of bits used for subnetting (n) and you know the total bits used “Tb=8″. then you can get the number of bits left for host by subtracting 8-n.
- Using the example above, n=3. The number of bits left for host is (m) = 8 – 3 = 5. 5 is the number of bits you have left to host.
-
3
Calculate the number of subnets. The number of subnets is 2n. The number of hosts per subnet = 2m – 2.
- In our example, the number of subnets is 2n = 23 = 8. 8 is the total number of subnets.
-
4
Calculate the value of the last bit used for subnet masking. The value of last bit used for subnet masking is (Δ) = 2m.
- In our example, the value of last bit used for subnet masking is Δ = 25 = 32. The value of the last bit used is 32.
-
5
Calculate the number of hosts per subnet. The number of hosts per subnet is represented by the formula 2m – 2.
-
6
Separate the subnets by the value of last bit used for subnet masking. Now you can find previously calculated number of subnets by separating subnets each having value of last bit used for subnet masking or Δ. In our example, Δ=32. So we can separate IP addresses in increments of 32.
- The 8 subnets (as calculated in previous step) are shown above.
- Each of them has 32 addresses.
-
7
Determine the network and broadcast addresses for the IP addresses. The lowest address in a subnet is the network address. The highest address in a subnet is the broadcast address.
-
8
Determine the broadcast address for your IP address. The lowest address of the subnet your IP address falls in is the network address. The highest address in the subnet your IP address falls in is the broadcast address.
- Our example IP address 210.1.1.100 falls in the 210.1.1.96 – 210.1.1.127 subnet (see the previous step table). So 210.1.1.96 is network address and 210.1.1.127 is broadcast address.
Advertisement
-
1
Write the bit-length prefix in bit format. In CIDR, you have a IP address followed by bit-length prefix separated by slash(/). Now you can start to convert bit-length prefix to quad-dotted by separating the bit-length prefix in increments of 8 and adding the final bit number.
- Example: If the bit-length prefix is 27, then write it as 8 + 8 + 8 + 3 .
- Example: If bit-length prefix is 12, then write it as 8 + 4 + 0 + 0 .
- Example: Default bit-length prefix is 32, then write it as 8 + 8 + 8 + 8.
-
2
Convert the bit-length prefix to quad-dotted format. Convert the corresponding bit according to the above table and represent in quad-dotted decimal format. For example, bit-length 27 is represented by 8+8+8+3. This converts to 225.225.225.224.
- Using another example, the IP address is 170.1.0.0/26 . Using above table, you can write the bit-length prefix 26 as 8+8+8+2. Using the chart above, this converts to 225.225.225.192. Now the IP address is 170.1.0.0 and subnet mask in quad-dotted decimal format is 255.255.255.192 .
-
3
Determine the total number of bits. The total number of bits is represented using the following equation: Tb = 8.
-
4
Determine the number of bits used for subnetting. Subnet masks can be 0, 128, 192, 224, 240, 248, 252, 254 and 255. The table above gives you the Number of bits used for subnetting (n) to their corresponding subnet mask.
- For subnet mask 255 is default, so it’ll not consider for subnet masking.
- From the previous step, you got IP address = 170.1.0.0 and Sub-net mask = 255.255.255.192
- Total bits = Tb = 8
- Number of bits used for subnetting = n. As the subnet mask = 192, its corresponding number of bits used for Subnetting is 2 from above table.
-
5
Calculate the number of bits left to host. From the previous step, you got the number of bits used for subnetting (n) and you know the total bits (Tb) = 8. Then you can get number of bits left for host is (m) = Tb – n or Tb = m+n.
- In our example, the number of bits used for subnetting (n) is 2. So the number of bits left for host is m = 8 – 2 = 6. The total bits left for the host is 6.
-
6
Calculate the number of subnets. The Number of subnets is 2n.
- In our example, the number of subnets = 22 = 4. The total number of subnets is 4.
-
7
Calculate the value of last bit used for subnet masking. This is represented with the formula (Δ) = 2m.
- In our example, the value of last bit used for subnet masking = Δ = 26 = 64. The value of the last bit used for subnet masking is 64.
-
8
Calculate the number of hosts per subnet. The number of hosts per subnet is 2m – 2.
-
9
Separate the subnets by the value of the last bit used for subnet masking. Now you can find previously calculated number of subnets by separating subnets each having the value of last bit used for subnet masking or Δ.
- In our example, the last value used for subnet masking is 64. This produces 4 subnets with 64 addresses.
-
10
Find which subnet your IP address is in. Our example IP is 170.1.0.0. This falls in the 170.1.0.0 – 170.1.0.63 subnet.
-
11
Determine your broadcast address. The first address in a subnet is the network address and the last number is the broadcast address.
- Our example IP address is 170.1.0.0. So 170.1.0.0 is network address and 170.1.0.63 is broadcast address.
- See CIDR Examples for more examples.
Advertisement
-
1
IP address = 100.5.150.34 and subnet mask = 255.255.240.0
Total bits = Tb = 8Subnet Mask 0 128 192 224 240 248 252 254 255 No. of bits used for Subnetting (n) 0 1 2 3 4 5 6 7 8 -
2
Number of bits used for subnetting for subnet mask 240 = n1 = 4
(as subnet mask = 240 and its corresponding “No. of bits used for Subnetting” is 4 from above table)
Number of bits used for subnetting for subnet mask 0 = n2 = 0
(as subnet mask = 0 and its corresponding “No. of bits used for Subnetting” is 0 from above table)
Number of bits left for host for subnet mask 240 = m1 = Tb – n1 = 8 – 4 = 4
Number of bits left for host for subnet mask 0 = m2 = Tb – n2 = 8 – 0 = 8
Number of subnets for subnet mask 240 = 2n1 = 24 = 16
Number of subnets for subnet mask 0 = 2n2 = 20 = 1
Value of last bit used for subnet masking for subnet mask 240 = Δ1 = 2m1 = 24 = 16
Value of last bit used for subnet masking for subnet mask 0 = Δ2 = 2m2 = 28 = 256
For subnet mask 240, addresses will be separated by 16 and for subnet mask 0, it’ll be 256. Using Δ1 and Δ2 value, the 16 subnets are given below100.5.0.0 – 100.5.15.255 100.5.16.0 – 100.5.31.255 100.5.32.0 – 100.5.47.255 100.5.48.0 – 100.5.63.255 100.5.64.0 – 100.5.79.255 100.5.80.0 – 100.5.95.255 100.5.96.0 – 100.5.111.255 100.5.112.0 – 100.5.127.255 100.5.128.0 – 100.5.143.255 100.5.144.0 – 100.5.159.255 100.5.160.0 – 100.5.175.255 100.5.176.0 – 100.5.191.255 100.5.192.0 – 100.5.207.255 100.5.208.0 – 100.5.223.255 100.5.224.0 – 100.5.239.255 100.5.240.0 – 100.5.255.255 -
3
IP address 100.5.150.34 comes in 100.5.144.0 – 100.5.159.255. Hence, 100.5.144.0 is the network address and 100.5.159.255 is the broadcast address.
-
4
See Classful Network Examples for more examples.
Advertisement
-
1
IP address in CIDR is 200.222.5.100/9
9 = 8 + 1 + + 0 255 . 128 . 0 . 0 IP address = 200.222.5.100 and subnet mask = 255.128.0.0
Total bits = Tb = 8Subnet Mask 0 128 192 224 240 248 252 254 255 No. of bits used for Subnetting (n) 0 1 2 3 4 5 6 7 8 Number of bits used for subnetting for subnet mask 128 = n1 = 1
(as subnet mask = 128 and its corresponding “No. of bits used for Subnetting” is 1 from above table)Number of bits used for subnetting for subnet mask 0 = n2 = n3 = 0
(as subnet mask = 0 and its corresponding “No. of bits used for Subnetting” is 0 from above table) -
2
Number of bits left for host for subnet mask 128 = m1 = Tb – n1 = 8 – 1 = 7
Number of bits left for host for subnet mask 0 = m2 = m3 = Tb – n2 = Tb – n3 = 8 – 0 = 8
Number of subnets for subnet mask 128 = 2n1 = 21 = 2
Number of subnets for subnet mask 0 = 2n2 = 2n3 = 2 = 1
Value of last bit used for subnet masking for subnet mask 128 = Δ1 = 2m1 = 27 = 128
Number of host per subnet = 2m1 – 2 = 27 – 2 = 126
Value of last bit used for subnet masking for subnet mask 0 = Δ2 = Δ3 = 2m2 = 2m3 = 28 = 256
Number of host per subnet for subnet mask 0 = 2m2 – 2 = 2m3 – 2 = 28 – 2 = 254 -
3
For subnet mask 128, addresses will be separated by 128 and for subnet mask 0, it’ll be 256. Using Δ1, Δ2 and Δ3 value, the 2 subnets are given below
200.0.0.0 – 200.127.255.255 200.128.0.0 – 200.255.255.255 -
4
IP address 200.222.5.100 comes in 200.128.0.0 – 200.255.255.255. Hence, 200.128.0.0 is the network address, and 200.255.255.255 is the broadcast address.
Advertisement
Add New Question
-
Question
How do I find the last address host?
Broadcast address -1. BC – 1 in this way you can find out the last host address.
-
Question
How can I find the network for an IP address?
After you borrow bits find out your block size, it will be the first address of each block. For example, if the block size is 32, 192.1.4.0 is your network IP. 192.1.4.31 is your broadcast.
-
Question
How do I find IP addresses?
Tim Newman
Community Answer
If you’re looking for a public IP address, Googling “ip” should be sufficient to receive an answer.
If you’re looking for your private IP address (stored on the router), open CMD (windows button + R and type in cmd), and type “ipconfig”.
See more answers
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
-
In CIDR, just after you convert the bit-length prefix to quad-dotted decimal format, you can follow the same procedure as for Classful network.
-
This method is only for IPv4, not applicable for IPv6.
Thanks for submitting a tip for review!
Advertisement
About This Article
Article SummaryX
1. Assume the total number of bits used for subnetting is Tb = 8.
2. Find how many bits used for subnetting (n) according to the following subnet masks:0=0, 128=1, 192=2, 224=3, 240=4, 248=5, 252=6, 254=7, and 255=8
3. Use the formula (m) = Tb – n to determine the number of bits left to host.
4. Use the formula 2m – 2 to calculate the number of subnets.
5. Use the formula Δ = 2m to calculate the value of the last bit used for subnet masking.
6. Separate subnets using the value fo teh last bit used for subnet masking.
7. Determine which subnet your IP address fall in.
8. Use the first address in the subnet to determine the network address.
9. Use the last address in the subnet to determine the broadcast address.
Did this summary help you?
Thanks to all authors for creating a page that has been read 736,356 times.
Reader Success Stories
-
“The only subnetting methodology that I have seen which explains simply how to calculate network and broadcast…” more
Is this article up to date?
Загрузить PDF
Загрузить PDF
Если вы собираетесь настраивать сеть, то вам нужно знать, как распределять ее. Для этого необходимо знать сетевой и широковещательный адреса сети. Следуйте шагам ниже, чтобы узнать, как вычислить эти адреса, если у вас есть IP-адрес и маска подсети.
-
1
Для сети с классовой адресацией общее число битов равно 8. Или Tb = 8.
- Маска подсети может быть 0, 128, 192, 224, 240, 248, 252, 254 и255.
- Таблица ниже позволяет определить «число битов, используемое для подсетей» (n) для соответствующей маски подсети.
- Значение маски подсети по умолчанию 255. Оно не используется для разделения подсетей.
- Пример:
Пусть IP-адрес будет равен 210.1.1.100 а маска подсети 255.255.255.224Общее число битов Tb = 8
Число битов используемое для подсетей n = 3(так как маска подсети равна 224, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 3)
- Маска подсети может быть 0, 128, 192, 224, 240, 248, 252, 254 и255.
-
2
Из предыдущего шага у вас есть «число битов используемое для подсетей» (n), и вы знаете Tb. Теперь вы можете найти «число битов оставшееся для хостов» (m) равное Tb – n, так как общее число битов — это сумма битов для подсетей и хостов Tb = m+n.
- Число битов оставшееся для хостов = m = Tb – n = 8 – 3 = 5
- Число битов оставшееся для хостов = m = Tb – n = 8 – 3 = 5
-
3
Теперь вам нужно посчитать «число подсетей», равное 2n, и «значение последнего бита, используемого для маски подсети», которое равно 2m. Число хостов для подсети равно 2m – 2.
- Число подсетей = 2n = 23 = 8
Значение последнего бита, используемого для маски подсети = Δ = 2m = 25 = 32
- Число подсетей = 2n = 23 = 8
-
4
Теперь вы можете найти ранее рассчитанное число подсетей, разделив их по значению «последнего бита, используемого для маски подсетей» или Δ-адресу.
- 8 подсетей (как мы вычислили на предыдущем шаге) показаны выше.
- В каждой из них 32 адреса.
-
5
Теперь вам нужно определить, в какой сети ваш IP-адрес. Первый адрес этой подсети будет адресом сети, а последний — широковещательным адресом.
- Здесь мы выбрали IP-адрес 210.1.1.100. Он находится в подсети 210.1.1.96 — 210.1.1.127 (смотрите предыдущую таблицу). Потому 210.1.1.96 — адрес сети, а 210.1.1.127 широковещательный адрес для выбранного IP-адреса 210.1.1.100.
Реклама
- Здесь мы выбрали IP-адрес 210.1.1.100. Он находится в подсети 210.1.1.96 — 210.1.1.127 (смотрите предыдущую таблицу). Потому 210.1.1.96 — адрес сети, а 210.1.1.127 широковещательный адрес для выбранного IP-адреса 210.1.1.100.
-
1
В сетях CIDR после IP-адреса идет префикс подсети длиной в один бит, отделенный наклонной чертой (/). вам нужно будет преобразовать его в четырехкомпонентный формат с точкой. Следуйте шагам ниже, чтобы проделать это.
- Запишите префикс в формате, указанном ниже.
- Если префикс 27, запишите его как 8 + 8 + 8 + 3 .
- Если он 12, запишите его как 8 + 4 + 0 + 0 .
- По умолчанию он 32, что записывается как 8 + 8 + 8 + 8.
- Преобразуйте соответствующие биты по таблице ниже и запишите значение в четырехкомпонентном формате.
- Пусть наш IP-адрес будет 170.1.0.0/26 . Используя таблицу выше, вы можете записать:
26 = 8 + 8 + 8 + 2 255 . 255 . 255 . 192 Теперь IP-адрес 170.1.0.0, а маска подсети в четырехкомпонентном формате с точкой 255.255.255.192 .
- Запишите префикс в формате, указанном ниже.
-
2
Общее число битов = Tb = 8.
- Маска подсети может быть 0, 128, 192, 224, 240, 248, 252, 254 и 255.
- Таблица ниже позволяет определить «число битов, используемое для подсетей» (n) для соответствующей маски подсети .
- Значение маски подсети по умолчанию 255. Оно не используется для разделения подсетей.
- Из предыдущего шага наш IP-адрес = 170.1.0.0,а маска подсети = 255.255.255.192
Общее число битов = Tb = 8
Число битов используемое для подсетей = n = 2 (так как маска подсети равна 192, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 2).
-
3
Из предыдущего шага у вас есть «число битов используемое для подсетей» (n), и вы знаете Tb. Теперь вы можете найти «число битов оставшееся для хостов» (m) равное Tb – n, так как общее число битов — это сумма битов для подсетей и хостов Tb = m+n.
- Число битов оставшееся для хостов = m = Tb – n = 8 – 2 = 6
-
4
Теперь вам нужно посчитать «число подсетей» равное 2n, и «значение последнего бита, используемого для маски подсети», которое равно 2m. Число хостов для подсети равно 2m – 2.
- Число подсетей = 2n = 22 = 4
Значение последнего бита, используемого для маски подсети = Δ = 2m = 26 = 64
- Число подсетей = 2n = 22 = 4
-
5
Теперь вы можете найти ранее рассчитанное число подсетей, разделив их по значению «последнего бита, используемого для маски подсетей» или Δ-адресу.
- Получаем 4 подсети (как мы вычислили на предыдущем шаге)
- В каждой из них ест 64 адреса.
- Получаем 4 подсети (как мы вычислили на предыдущем шаге)
-
6
Теперь вам нужно определить, в какой сети ваш IP-адрес. Первый адрес этой подсети будет адресом сети, а последний — широковещательным адресом.
- Здесь мы выбрали IP-адрес 170.1.0.0. Он находится в подсети 170.1.0.0 — 170.1.0.63 (смотрите предыдущую таблицу). Потому 170.1.0.0 — адрес сети, а 170.1.0.63 широковещательный адрес для выбранного IP-адреса 170.1.0.0.
Реклама
- Здесь мы выбрали IP-адрес 170.1.0.0. Он находится в подсети 170.1.0.0 — 170.1.0.63 (смотрите предыдущую таблицу). Потому 170.1.0.0 — адрес сети, а 170.1.0.63 широковещательный адрес для выбранного IP-адреса 170.1.0.0.
-
1
Найдите IP-адрес и маску подсети. На компьютере под управлением Windows сделать это можно путем ввода команды «ipconfig» (без кавычек) в командной строке. IP-адрес отобразится напротив IPv4-адреса, а маску подсети можно найти строкой ниже. На Mac найти IP-адрес и маску подсети можно в «Системных настройках» в разделе «Сеть».
-
2
Перейдите по адресу https://ip-calculator.ru/. Можете использовать любой браузер, вне зависимости от того, под управлением какой системы работает ваш компьютер.
-
3
В поле «IP-адрес» введите соответствующие значения. Веб-сайт попытается автоматически определить ваш сетевой адрес. Удостоверьтесь, что значения соответствуют действительности. В противном случае введите верный адрес.
-
4
В поле «Маска» введите маску подсети. Опять же, сайт автоматически попытается вычислить эти значения. Удостоверьтесь, что данные указаны верно. Маску подсети можно ввести как в формате CIDR (24), так и в четырехкомпонентном формате с точкой (255.255.255.0).
-
5
Нажмите Подсчитать. Это синяя кнопка напротив поля «Маска». Сетевой адрес будет указан ниже в разделе «Network», а широковещательный адрес — в разделе «Broadcast».
Реклама
Примеры
- IP-адрес = 100.5.150.34, а маска подсети = 255.255.240.0
Общее число битов = Tb = 8Маска подсети 0 128 192 224 240 248 252 254 255 Число битов, используемое для подсетей (n) 0 1 2 3 4 5 6 7 8 Число битов, используемое для подсетей для маски 240 = n1 = 4
(так как маска подсети равна 240, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 4)Число битов, используемое для подсетей для маски 0 = n1 = 0
(так как маска подсети равна 0, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 0)Число битов оставшееся для хостов для маски 240 = m1 = Tb – n1 = 8 – 4 = 4
Число битов оставшееся для хостов для маски 0 = m2 = Tb – n2 = 8 – 0 = 8Число подсетей для маски 240 = 2n1 = 24 = 16
Число подсетей для маски 0 = 2n2 = 20 = 1Значение последнего бита, используемого для маски подсети для маски 240 = Δ1 = 2m1 = 24 = 16
Значение последнего бита, используемого для маски подсети для маски 0 = Δ2 = 2m2 = 28 = 256Для маски подсети 240, адреса будут разделены по 16, а для маски 0 их будет 256. Используя значения Δ1 и Δ2, получим 16 подсетей ниже
100.5.0.0 – 100.5.15.255 100.5.16.0 – 100.5.31.255 100.5.32.0 – 100.5.47.255 100.5.48.0 – 100.5.63.255 100.5.64.0 – 100.5.79.255 100.5.80.0 – 100.5.95.255 100.5.96.0 – 100.5.111.255 100.5.112.0 – 100.5.127.255 100.5.128.0 – 100.5.143.255 100.5.144.0 – 100.5.159.255 100.5.160.0 – 100.5.175.255 100.5.176.0 – 100.5.191.255 100.5.192.0 – 100.5.207.255 100.5.208.0 – 100.5.223.255 100.5.224.0 – 100.5.239.255 100.5.240.0 – 100.5.255.255 IP-адрес 100.5.150.34 относится к подсети 100.5.144.0 – 100.5.159.255, поэтому 100.5.144.0 — адрес сети, а — 100.5.159.255 широковещательный адрес.
- IP-адрес в сети CIDR = 200.222.5.100/9
9 = 8 + 1 + 0 + 0 255 . 128 . 0 . 0 IP -адрес = 200.222.5.100, а маска подсети = 255.128.0.0
Общее число битов = Tb = 8Маска подсети 0 128 192 224 240 248 252 254 255 Число битов, используемых для подсетей (n) 0 1 2 3 4 5 6 7 8 Число битов, используемое для подсетей для маски 128 = n1 = 1
(так как маска подсети равна 128, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 1)Число битов, используемое для подсетей для маски 0 = n2 = n3 = 0
(так как маска подсети равна 0, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 0)Число битов оставшееся для хостов для маски 128 = m1 = Tb – n1 = 8 – 1 = 7
Число битов оставшееся для хостов для маски 0 = m2 = m3 = Tb – n2 = Tb – n3 = 8 – 0 = 8Число подсетей для маски 128 = 2n1 = 21 = 2
Число подсетей для маски 0 = 2n2 = 2n3 = 20 = 1Значение последнего бита, используемого для маски подсети для маски 128 = Δ1 = 2m1 = 27 = 128
Число хостов на подсеть = 2m1 – 2 = 27 – 2 = 126Значение последнего бита, используемого для маски подсети для маски 0 = Δ2 = Δ3 = 2m2 = 2m3 = 28 = 256
Число хостов на подсеть с маской 0 = 2m2 – 2 = 2m3 – 2 = 28 – 2 = 254Для маски подсети 128, адреса будут разделены по 128, а для маски 0 их будет 256. Используя значения Δ1 и Δ2, получим 2 подсети ниже
200.0.0.0 – 200.127.255.255 200.128.0.0 – 200.255.255.255 IP-адрес 200.222.5.100 относится к подсети 200.128.0.0 – 200.255.255.255, и поэтому 200.128.0.0 — адрес подсети, а 200.255.255.255 — широковещательный адрес.
Советы
- В сетях CIDR сразу после того, как вы перевели префикс в четырехкомпонентный формат, вы можете использовать тот же метод, что и для сетей с классовой адресацией.
- Этот метод работает только для сетей типа IPv4 и не подходит для IPv6.
Реклама
Об этой статье
Эту страницу просматривали 95 665 раз.
Была ли эта статья полезной?
Приветствую вас на очередном выпуске. И сегодня речь пойдет о том, какие бывают IP-адреса, и как ими пользоваться. Что такое маска подсети, как она считается, и для чего она нужна. Как делить сети на подсети и суммировать их. Заинтересовавшихся приглашаю к прочтению.
Начнем, или уже продолжим, с самого популярного, заезженного и больного. Это IP-адреса. На протяжении 4-х статей это понятие встречалось по несколько раз, и скорее всего вы уже либо сами поняли для чего они, либо нагуглили и почитали о них. Но я обязан вам это рассказать, так как без ясного понимания двигаться дальше будет тяжело.
Итак IP-адрес — это адрес, используемый узлом на сетевом уровне. Он имеет иерархическую структуру. Что это значит? Это значит, что каждая цифра в его написании несет определенный смысл. Объясню на очень хорошем примере. Примером будет номер обычного телефона — +74951234567. Первой цифрой идет +7. Это говорит о том, что номер принадлежит зоне РФ. Далее следует 495. Это код Москвы. И последние 7 цифр я взял случайными. Эти цифры закреплены за районной зоной. Как видите здесь наблюдается четкая иерархия. То есть по номеру можно понять какой стране, зоне он принадлежит. IP адреса придерживаются аналогично строгой иерархии. Контролирует их организация IANA(англ. Internet Assigned Numbers Authority). Если на русском, то это «Администрация адресного пространства Интернет». Заметьте, что слово «Интернет» с большой буквы. Мало кто придает этому значение, поэтому объясню разницу. В англоязычной литературе термин «internet» используется для описания нескольких подключённых друг к другу сетей. А термин «Internet» для описания глобальной сети. Так что примите это к сведению.
Несмотря на то, что тема статьи больше теоретическая, нежели практическая, я настоятельно рекомендую отнестись к ней со всей серьезностью, так как от нее зависит понимание дальнейших тем, а особенно маршрутизации. Не для кого, я думаю, не секрет, что мы привыкли воспринимать числовую информацию в десятичном формате (в числах от 0-9). Однако все современные компьютеры воспринимают информацию в двоичном (0 и 1). Не важно при помощи тока или света передается информация. Вся она будет воспринята устройством как есть сигнал (1) или нет (0). Всего 2 значения. Поэтому был придуман алгоритм перевода из двоичной системы в десятичную, и обратно. Начну с простого и расскажу, как выглядят IP адреса в десятичном формате. Вся эта статья посвящена IP адресам версии 4. О версии 6 будет отдельная статья. В предыдущих статьях, лабах, да и вообще в жизни, вы видели что-то вроде этого «193.233.44.12». Это и есть IP адрес в десятичной записи. Состоит он из 4-х чисел, называемых октетами и разделенных между собой точками. Каждое такое число (октет) может принимать значение от 0 до 255. То есть одно из 256 значений. Длина каждого октета равна 8 битам, а суммарная длина IPv4 = 32 битам. Теперь интересный вопрос. Каким образом этот адрес воспримет компьютер, и как будет с ним работать?
Можно конечно набить это в калькулятор, коих навалом в Интернете, и он переведет его в двоичный формат, но я считаю, что переводить вручную должен уметь каждый. Особенно это касается тех, кто планирует сдавать экзамен. У вас не будет под рукой ничего, кроме бумаги и маркера, и полагаться придется только на свои навыки. Поэтому показываю, как это делать вручную. Строится таблица.
Вместо «x» записывается либо 1, либо 0. Таблица разделена на 8 колонок, каждая из которых несет в себе 1 бит (8 колонок = 8 бит = 1 октет). Расположены они по старшинству слева направо. То есть первый (левый) бит — самый старший и имеет номер 128, а последний (правый) — самый младший и имеет номер 1. Теперь объясню, откуда эти числа взялись. Так как система двоичная, и длина октета равна 8-ми битам, то каждое число получается возведением числа 2 в степень от 0 до 7. И каждая из полученных цифр записывается в таблицу от большего к меньшему. То есть слева направо. От 2 в 7-ой степени до 2 в 0-ой степени. Приведу таблицу степеней 2-ки.
Думаю теперь понятно, каким образом строится таблица. Давайте теперь разберем адрес «193.233.44.12» и посмотрим, как он выглядит в двоичном формате. Разберем каждый октет отдельно. Возьмем число 193 и посмотрим, из каких табличных комбинаций оно получается. 128 + 64 + 1 = 193.
Те числа, которые участвовали в формировании комбинации получают 1, а все остальные получают 0.
Берем первый октет 233. 128 + 64 + 32 + 8 + 1.
Для 44 — это 32 + 8 + 4.
И напоследок 12. 8 + 4.
Получается длинная битовая последовательность 11000001.11101001.00101100.00001100. Именно с данным видом работают сетевые устройства. Битовая последовательность обратима. Вы можете так же вставить каждый октет (по 8 символов) в таблицу и получить десятичную запись. Я представлю совершенно случайную последовательность и приведу ее к десятичному виду. Пусть это будет 11010101.10110100.11000001.00000011. Строю таблицу и заношу в нее первый блок.
Получаю 128 + 64 + 16 + 4 + 1 = 213.
Вычисляю второй блок.
Считаю 128 + 32 + 16 + 4 = 180.
Третий блок.
128 + 64 + 1 = 193.
И напоследок четвертый.
2 + 1 = 3
Собираем результаты вычислений и получаем адрес 213.180.193.3. Ничего тяжелого, чистая арифметика. Если тяжело и прям невыносимо трудно, то попрактикуйтесь. Сначала может показаться страшным, так как многие закончили учебу лет 10 назад и многое позабыли. Но уверяю, что как только набьете руку, считать будет гораздо легче. Ну а для закрепления дам вам несколько примеров для самостоятельного расчета (под спойлером будут ответы, но открывайте их только когда прорешаете сами).
Задача №1
1) 10.124.56.220
2) 113.72.101.11
3) 173.143.32.194
4) 200.69.139.217
5) 88.212.236.76
6) 01011101.10111011.01001000.00110000
7) 01001000.10100011.00000100.10100001
8) 00001111.11011001.11101000.11110101
9) 01000101.00010100.00111011.01010000
10) 00101011.11110011.10000010.00111101
Ответы
1) 00001010.01111100.00111000.11011100
2) 01110001.01001000.01100101.00001011
3) 10101101.10001111.00100000.11000010
4) 11001000.01000101.10001011.11011001
5) 01011000.11010100.11101100.01001100
6) 93.187.72.48
7) 72.163.4.161
8) 15.217.232.245
9) 69.20.59.80
10) 43.243.130.61
Теперь IP-адреса не должны быть чем-то страшным, и можно углубиться в их изучение.
Выше мы говорили о структуре телефонных номеров и их иерархии. И вот на заре рождения Интернета в том представлении, в каком мы его привыкли видеть, возник вопрос. Вопрос заключался в том, что IP-адреса нужно как-то сгруппировать и контролировать выдачу. Решением было разделить все пространство IP-адресов на классы. Это решение получило название классовая адресация (от англ. Classful). Она уже давно устарела, но практически в любой книге на нее отводятся целые главы и разделы. Cisco тоже не забывает про это и в своих учебных материалах рассказывает про нее. Поэтому я пробегусь по этой теме и покажу, чем она блистала с 1981 по 1995 год.
Пространство было поделено на 5 классов. Каждому классу был назначен блок адресов.
Начнем с класса A. Если внимательно посмотреть на таблицу, то можно заметить, что этому блоку дан самый большой блок адресов, а если быть точным, то половина всего адресного пространства. Предназначался данный класс для крупных сетей. Структура этого класса выглядит следующим образом.
В чем суть. Первый октет, то есть 8 бит, остаются за адресом сети, а 3 последних октета (то есть оставшиеся 24 бита) назначаются хостам. Вот для того, чтобы показать, какой кусок относится к сети, а какой к хостам, используется маска. По структуре записи она аналогична записи IP-адреса. Отличие маски от IP-адресов в том, что 0 и 1 не могут чередоваться. Сначала идут 1, а потом 0. Таким образом, там где есть единица, значит это участок сети. Чуть ниже, после разбора классов, я покажу, как с ней работать. Сейчас главное знать, что маска класса A — 255.0.0.0. В таблице еще упомянут какой-то первый бит и для класса A он равен 0. Этот бит как раз нужен для того, чтобы сетевое устройство понимало, к какому классу оно принадлежит. Он же еще задает начальный и конечный диапазон адресов. Если в двоичном виде записать на всех октетах единицы, кроме первого бита в первом октете (там всегда 0), то получится 127.255.255.255, что является границей класса A. Например, возьмем адрес 44.58.63.132. Мы знаем, что у класса A первый октет отдается под адрес сети. То есть «44» — это адрес сети, а «58.63.132» — это адрес хоста.
Поговорим про класс B
Этому классу был дан блок поменьше. И адреса из этого блока предназначались для сетей средних масштабов. 2 октета отданы под адрес сети, и 2 — под адрес хостов. Маска у B класса — 255.255.0.0. Первые биты строго 10. А остальные меняются. Перейдем к примеру: 172.16.105.32. Два первых октета под адрес сети — «172.16». А 3-ий и 4-ый под адрес хоста — «105.32».
Класс C
Этот класс обделили адресами и дали ему самый маленький блок. Он был предназначен для мелких сетей. Зато этот класс отдавал целых 3 октета под адрес сети и только 1 октет — под хосты. Маска у него — 255.255.255.0. Первые биты 110. На примере это выглядит так — 192.168.1.5. Адрес сети «192.168.1», а адрес хоста «5».
Классы D и E. Я неcпроста объединил их в один. Адреса из этих блоков зарезервированы и не могут назначаться сетям и хостам. Класс D предназначен для многоадресной рассылки. Аналогию можно привести с телевидением. Телеканал вещает группе лиц свой эфир. И те, кто подключены, могут смотреть телепередачи. То есть в распоряжение администраторов могут попасть только 3 первых класса.
Напомню, что первые биты у класса D — это 1110. Пример адреса — 224.0.0.5.
А первые биты у класса E — это 1111. Поэтому, если вдруг увидите адрес вида 240.0.0.1, смело говорите, что это адрес E класса.
Про классы обмолвились. Теперь озвучу вопрос, который мне недавно задали. Так зачем тогда маски? У нас итак хосты понимают в каком они классе. Но суть вот в чем. Например, у вас есть маленький офис, и вам нужен блок IP-адресов. Никто не будет вам выдавать все адреса класса C. А дадут только его кусок. Например 192.168.1.0 с маской 255.255.255.0. Так вот эта маска и будет определять вашу границу. Мы уже говорили, что октет варьируется в значении от 0 до 255. Вот этот 4 октет полностью в вашем распоряжении. За исключением первого адреса и последнего, то есть 0 и 255 в данном случае. Первый адрес — это адрес сети (в данном случае 192.168.1.0), а последний адрес — широковещательный адрес (192.168.1.255). Напомню, что широковещательный адрес используется в том случае, когда надо передать информацию всем узлам в сети. Поэтому есть правило. Если вам надо узнать номер сети, то все биты относящиеся к хосту обращаете в 0, а если широковещательный, то все биты — в 1. Поэтому, если из 256 адресов забирается 2 адреса, то на назначение хостам остается 254 адреса (256 — 2). На собеседованиях и экзаменах часто любят спрашивать: «Количество IP-адресов в сети?» и «Сколько доступных IP-адресов в сети для назначения хостам?». Два разных вопроса, которые могут поставить в тупик. Ответом на первый будет — все адреса, включая адрес сети и широковещательный адрес, а на второй вопрос — все адреса, кроме адреса сети и широковещательного адреса.
Теперь углубимся в изучении маски.
Я записал адрес класса C 192.168.1.1 с маской 255.255.255.0 в десятичном и двоичном формате. Обратите внимание на то, как выглядит IP-адрес и маска в двоичном формате. Если в IP-адресе 0 и 1 чередуются, то в маске сначала идут 1, а потом 0. Эти биты фиксируют адрес сети и задают размер. По таблице выше можно сделать вывод, что в двоичном виде маска представлена последовательностью 24 единиц подряд. Это говорит о том, что целых 3 октета выделено под сеть, а 4 октет свободен под адресацию для хостов. Здесь ничего необычного. Это стандартная маска класса C.
Но вот в чем загвоздка. Например, в вашем офисе 100 компьютеров, и расширяться вы не планируете. Зачем плодить сеть из 250+ адресов, которые вам не нужны?! На помощь приходит разделение на подсети. Это очень удобная вещь. Объясню принцип на примере того же класса C. Как бы вы не хотели, но трогать 3 октета нельзя. Они фиксированы. Но вот 4 октет свободен под хосты, поэтому его можно трогать. Заимствуя биты из хостового куска, вы дробите сеть на n-ое количество подсетей и, соответственно, уменьшаете в ней количество адресов для хостов.
Попробуем это воплотить в реальность. Меняю маску. Заимствую первый бит из хостовой части(то есть 1-ый бит 4-ого октета выставляю в единицу). Получается следующая маска.
Данная маска делит сеть на 2 части. Если до дробления у сети было 256 адресов(от 0 до 255), то после дробления у каждого куска будет по 128 адресов(от 0 до 127 и от 128 до 255).
Теперь посмотрю, что изменится в целом с адресами.
Красным цветом я показал те биты, которые зафиксированы и не могут изменяться. То есть маска ей задает границу. Соответственно биты помеченные черным цветом определены для адресации хостов. Теперь вычислю эту границу. Чтобы определить начало, надо все свободные биты(помеченные черным цветом) обратить в ноль, а для определения конца обратить в единицы. Приступаю.
То есть в четвертом октете меняются все биты, кроме первого. Он жестко фиксирован в рамках этой сети.
Теперь посмотрим на вторую половину сети и вычислим ее адреса. Деление у нас производилось заимствованием первого бита в 4-ом октете, значит он является делителем. Первая половина сети получалась, когда этот бит принимал значение 0, а значит вторая сеть образуется, когда этот бит примет значение 1. Обращаю этот бит в 1 и посмотрю на границы.
Приведу в десятичный вид.
Соответственно .128 и .255 назначать хостам нельзя. Значит в доступности 128-2=126 адресов.
Вот таким образом можно при помощи маски управлять размером сети. Каждый заимствованный бит делит сеть на 2 части. Если откусить 1 бит от хостовой части, то поделим на 2 части (по 128 адресов), 2 бита = 4 части (по 64 адреса), 3 бита = 8 (по 32 адреса) и так далее.
Если вы рассчитали количество бит, отдаваемые под хосты, то количество доступных IP-адресов можно вычислить по формуле
В книге У. Одома по подготовке к CCNA R&S приведена хорошая формула для расчета битов, отдаваемых на подсеть и хосты:
N + S + H = 32, где N — кол-во битов сети (класс A — 8 бит, B — 16 бит, C — 24 бита), S — кол-во заимствованных битов на подсеть (это то, что мы делали выше, когда заимствовали 1 бит из хостовой части), H — кол-во бит отводимых хостам.
Внесу ясность и объясню, как и где применять эти формулы.
Возьмем пример:
Нам выдали сеть 172.16.0.0 и попросили создать 120 подсетей со 180 хостами и записать маску. Приступим.
В качестве шпаргалки, и для быстроты вычисления, я ниже подготовил таблицу степеней двойки.
Двигаемся дальше. Первое главное условие, при использовании классовой адресации — это то, что должна использоваться одна маска для всех подсетей. То есть, если у вас для одной подсети маска 255.255.255.0, то для другой подсети она не может быть 255.255.255.128.
Теперь смотрим на выданную сеть. Путем логических размышлений понимаем, что это адрес класса B. А значит его N (кол-во битов сети) = 16. Ок. Значит на хосты выделено тоже 16 бит. Вспоминаем условия задачи. Нужно создать 120 подсетей. «Откусывать» биты от сетевой части запрещено, значит кусаем от хостовой части.
Теперь нужно взять такое кол-во бит, чтобы хватило для 120 подсетей, однако оставляло достаточное кол-во под биты для хоста. Смотрим на таблицу выше. Если взять 7 бит, то получим 128. 128>120, следовательно попадаем под условие. Если возьмем 6 бит, то получим 64. 64<128, поэтому не попадаем под условие и отбрасываем этот вариант.
Ок. Выяснили, что S надо выделить не меньше 7 бит. Теперь посмотрим, что осталось под хосты.
Если N + S + H = 32 => H = 32 — (N + S) => H = 32 — (16 + 7) = 9. Смотрим на таблицу выше (или возводим 2 в 9 степень в уме) и получаем число 512. Отнимаем 2 (адрес сети и широковещательный адрес) и получаем 510 адресов. Нам нужно 180, а значит под условие мы попадаем причем с большим запасом. В таких случаях вам предоставляется право выбора. Сделать больше подсетей или хостов на подсеть. Объясняю, что это значит. У нас есть 9 бит на хосты. Если мы возьмем 8 бит, то получим число 256. 256 — 2 = 254 адреса. Этот вариант нам тоже подходит. Возьмем 7 бит. Получаем 128. Даже не отнимая 2 адреса, становится понятно, что это меньше 180 => данный вариант отбрасывается сразу. Итого получаем, что минимальное количество для подсети — 7 бит, а для хостов — 8 бит. Поэтому свободный бит можно отдать либо на подсеть, либо на хосты. Маска получается сложением N и S. В нашем случае получаем, если под подсеть отдаем 7 бит, то получаем 23. В десятичном виде маска будет выглядеть 255.255.254.0. А если отдадим под подсеть 8 бит, то получим 24 (или в десятичном виде 255.255.255.0). Иногда бывает, что под задачу существует всего одна маска. Ну и, конечно, могут быть случаи, когда маска не попадает не под какие условия. В этих случаях нужно брать сеть другого класса или доказывать заказчику, что это невозможно.
Думаю теперь понятно, как работала классовая адресация, и как ее рассчитывали. Возможно с первого раза голова не переварит этого, поэтому перечитывайте еще раз и повнимательнее. Как только начнет что-то проясняться, потренируйтесь на задачках, которые я оставлю.
Задача №2
1) Записать маску для проекта: сеть 172.16.0.0. 250 подсетей и 220 хостов.
2) Записать маску для проекта: сеть 10.0.0.0. 2000 подсетей и 1500 хостов.
3) Записать маску для проекта: сеть 192.168.0.0. 4 подсети и 60 хостов.
Ответы на задачи
1) 24 бита или 255.255.255.0
2) 19 бит (255.255.224.0), 20 бит (255.255.240.0), 21 бит (255.255.248.0)
3) 26 бит или 255.255.255.192
На этом разговор про классовые сети начну закруглять и подведу итоги. Классовая адресация — это зарождение сегодняшнего интернета, и именно с нее все началось. Поэтому плюсов у нее много, и за это создателям спасибо. Но, как вы могли заметить, у нее было жесткая привязка к одной маске. За счет этого IP-адреса использовались не экономно и расточительно. А в связи с бурным ростом Интернета адресов стало не хватать, и срочно нужно было вносить изменения.
Поняли ведущие умы, что использовать классовые сети не удобно и нужно от них отказываться. Это привело к созданию бесклассовой адресации и маскам переменной длины, о чем мы ниже поговорим. Но перед этим пару слов о видах IP-адресов. Несмотря на то, что переход от классовой адресации к бесклассовой предполагал экономию IP-адресов, на деле эта проблема все равно решалась не полностью. Все упиралось в саму технологию IPv4. Объясню почему. Выше я говорил, что длина IP адреса равна 32 бита. Каждый бит может принимать значение 0 или 1, то есть два значения. Соответственно, чтобы вычислить все комбинации, надо возвести 2 в 32-ую степень. Получаем 4294967296 адресов. Если вычесть отсюда зарезервированные для специальных нужд и прочего, то останется примерно 4.2 млрд. адресов, когда на Земле проживает около 7.3 млрд. человек. Поэтому ведущие умы быстро просекли эту фишку и начали искать решение. Они решили выделить некое адресное пространство, которое будет использоваться только в пределах локальной сети и не будет использоваться в Интернете. Это разделило адреса на 2 лагеря: белые или публичные (англ. public) и серые или частные (англ. private).
Привожу диапазон адресов, которые выделены под локальные сети:
1) 10.0.0.0 — 10.255.255.255 с маской 255.0.0.0 (или кратко 10/8).
2) 172.16.0.0 — 172.31.255.255 с маской 255.240.0.0 (или кратко 172.16/12).
3) 192.168.0.0 — 192.168.255.255 (или кратко 192.168/16).
Если честно, я мало где видел применение адресации 172.16.X.X. Обычно в корпоративной среде всегда используется 10.X.X.X, а в домах/квартирах и мелких офисах 192.168.X.X.
Теперь прошу обратить внимание на очень важную вещь, которую многие путают. Не путайте классовую адресацию и диапазон частных адресов. Очень много людей наступают на эти грабли и свято верят, что диапазон частных адресов 10.0.0.0 — 10.255.255.255 — это диапазон A класса.
Разобрались, что такое частные адреса или private адреса. Но это еще не все. Есть еще список зарезервированных адресов, которые не могут светиться в Интернете. По ним написана целая документация на IETF. Привожу ссылку, где можете прочитать оригинал. Я кратко опишу часто встречающиеся.
1) 0.0.0.0/8 — диапазон адресов, используемый хостами для самоидентификации. Обычно это можно увидеть, когда хост пытается получить IP-адрес от DHCP сервера. Так как изначально у него нету IP-адреса, то в поле источника он вставляет адрес из данного диапазона.
2) 127.0.0.0/8 — loopback или localhost адреса. Это IP-адреса, используемые компьютером, чтобы обратиться к самому себе. Очень полезно для проверки работы TCP/IP. Дело в том, что независимо от наличия соединения с Интернетом или локальной сетью, адреса из этого пула должны всегда пинговаться. Если этого не происходит, значит система накрылась или накрывается медным тазом.
3) 169.254.0.0/16 — link-local address или локальные адреса. Автоматически используются хостами при отсутствии DHCP-сервера или его недоступности. Это позволяет быстро организовать локальную сеть и проверить работу узлов. Однако данный пул адресов не маршрутизируется. Следовательно, выйти в Интернет с них не получится.
4) 224.0.0.0/4 — блок адресов, зарезервированный под многоадресную рассылку или multicast. Для тех, кто хочет побольше узнать про multicast, оставляю ссылку.
Бесклассовая адресация (англ. Classless Inter-Domain Routing или CIDR). Описана была в стандарте RFC1519 в 1993 году. Она отказалась от классовых рамок и фиксированной маски. Адреса делятся только на публичные и зарезервированные, о которых написано выше. Если в классовой адресации маска нарезалась единой для всех подсетей, то в бесклассовой — у каждой подсети может быть своя маска. На теории все хорошо и красиво, но нет ничего лучше, чем практика. Поэтому перехожу к ней и объясню, как можно делить на подсети с разным количеством хостов.
В качестве шпаргалки приведу список всех возможных масок.
Представим ситуацию. Вам выдали сеть 192.168.1.0/24 и поставили следующие условия:
1) Подсеть на 10 адресов для гостей.
2) Подсеть на 42 адреса для сотрудников.
3) Подсеть на 2 адреса для соединения 2 маршрутизаторов.
4) Подсеть на 26 адресов для филиала.
Ок. Данная маска показывает, что в нашем распоряжении находятся 256 адресов. По условию эту сеть надо каким-то образом разделить на 4 подсети. Давайте попробуем. 256 очень хорошо делится на 4, давая в ответе 64. Значит один большой блок в 256 адресов можно поделить на 4 равных блока по 64 адреса в каждом. И все было бы прекрасно, но это порождает большое число пустых адресов. Для сотрудников, которым нужно 42 адреса, ладно, может в дальнейшем компания еще наймет. Но вот подсеть для маршрутизаторов, которая требует всего 2 адреса, оставит 60 пустых адресов. Да, вы можете сказать, что это private адреса, и кому дело до них. А теперь представьте, что это публичные адреса, которые маршрутизируются в Интернете. Их и так мало, а тут мы еще будем их отбрасывать. Это не дело, тем более, когда мы можем гибко управлять адресным пространством. Поэтому возвращаемся к примеру и нарежем подсети так, как нам нужно.
Итак, какие подсети должны быть нарезаны, чтобы вместились все адреса, заданные по условию?!
1) Для 10 хостов, наименьшей подсетью будет блок из 16 адресов.
2) Для 42 хостов, наименьшей подсетью будет блок из 64 адресов.
3) Для 2 хостов, наименьшей подсетью будет блок из 4 адресов.
4) Для 26 хостов, наименьшей подсетью будет блок из 32 адресов.
Я понимаю, что не все могут с первого раза в это вникнуть, и в этом нет ничего страшного. Все люди разные и по-разному воспринимают информацию. Для полноты эффекта покажу деление на картинке.
Вот у нас блок, состоящий из 256 адресов.
После деления на 4 части получается следующая картинка.
Выше мы выяснили, что при таком раскладе адреса используются не рационально. Теперь обратите внимание, как стало выглядеть адресное пространство после нарезки подсетей разной длины.
Как видите, в свободном доступе осталось куча адресов, которые мы в дальнейшем сможем использовать. Можно посчитать точную цифру. 256 — (64 + 32 + 16 + 4) = 140 адресов.
Вот столько адресов мы сэкономили. Двигаемся дальше и ответим на следующие вопросы:
— Какими будут сетевые и широковещательные адреса?
— Какие адреса можно будет назначить хостам?
— Как буду выглядеть маски?
Механизм деления на подсети с разной маской получил название VLSM (от англ. Variable Length Subnet Mask) или маска подсети переменной длины. Дам важный совет! Начинайте адресацию с самой большой подсети. Иначе вы можете попасть на то, что адреса начнут перекрываться. Поэтому сначала планируйте сеть на бумаге. Нарисуйте ее, изобразите в виде фигур, просчитайте вручную или на калькуляторе и только потом переходите настройке в боевых условиях.
Итак, самая большая подсеть состоит из 64 адресов. С нее и начнем. Первый пул адресов будет следующий:
Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.63.
Пул адресов для назначения хостам от 192.168.1.1 до 192.168.1.62.
Теперь выбор маски. Тут все просто. Отнимаем от целой сети нужный кусок и полученное число записываем в октет маски. То есть 256 — 64 = 192 => маска 255.255.255.192 или /26.
Дальше идет подсеть поменьше. Состоит она из 32 адресов. Если первая заканчивалась на .63, то эта будет начинаться с .64:
Адрес подсети — 192.168.1.64.
Широковещательный адрес — 192.168.1.95.
Пул адресов для назначения хостам будет от 192.168.1.65 до 192.168.1.94.
Маска: 256 — 32 = 224 => 255.255.255.224 или /27.
3-я подсеть, которая предназначена для филиала, начнет старт с .96:
Адрес подсети — 192.168.1.96.
Широковещательный адрес — 192.168.1.111.
Пул адресов для назначения хостам будет от 192.168.1.97 до 192.168.1.110.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.
Ну и для последней подсети, которая уйдет под интерфейсы, соединяющие роутеры, будет начинаться с .112:
Адрес подсети — 192.168.1.112.
Широковещательный адрес — 192.168.1.115.
Разрешенными адресами будут 192.168.1.113 и 192.168.1.114.
Маска: 256 — 4 = 252 => 255.255.255.252 или /30.
Замечу, что адрес 192.168.1.115 является последним используемым адресом. Начиная с 192.168.1.116 и до .255 свободны.
Вот таким образом, при помощи VLSM или масок переменной длины, мы экономно создали 4 подсети с нужным количеством адресов в каждой. Думаю это стоит закрепить задачкой для самостоятельного решения.
Задача №3
Разделите сеть 192.168.1.0/24 на 3 разные подсети. Найдите и запишите в каждой подсети ее адреса, широковещательный адрес, пул разрешенных к выдаче адресов и маску. Указываю требуемые размеры подсетей:
1) Подсеть на 120 адресов.
2) Подсеть на 12 адресов.
3) Подсеть на 5 адресов.
Ответ
1) Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.127.
Пул адресов для назначения хостам будет от 192.168.1.1 до 192.168.1.126.
Маска: 256 — 128 = 128 => 255.255.255.128 или /25.
2) Адрес подсети — 192.168.1.128.
Широковещательный адрес — 192.168.1.143.
Пул адресов для назначения хостам будет от 192.168.1.129 до 192.168.1.142.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.
3) Адрес подсети — 192.168.1.144.
Широковещательный адрес — 192.168.1.151.
Пул адресов для назначения хостам будет от 192.168.1.145 до 192.168.1.150.
Маска: 256 — 8 = 248 => 255.255.255.248 или /29.
Теперь, когда вы знаете, как делить сети на подсети, самое время научиться собирать подсети в одну общую подсеть. Иначе это называется суммированием или summarization. Суммирование чаще всего используется в маршрутизации. Когда у вас в таблице маршрутизатора несколько соседних подсетей, маршрутизация которых проходит через один и тот же интерфейс или адрес. Скорее всего этот процесс лучше объяснять при разборе маршрутизации, но учитывая то, что тема маршрутизации и так большая, то я объясню процесс суммирования в этой статье. Тем более, что суммирование это сплошная математика, а в этой статье мы ею и занимаемся. Ну что же, приступлю.
Представим, что у меня компания состоящая из главного здания и корпусов. Я работаю в главном здании, а в корпусах коллеги. Хоть у меня и главное здание, но в нем всего 4 подсети:
— 192.168.0.0/24
— 192.168.1.0/24
— 192.168.2.0/24
— 192.168.3.0/24
Тут коллеги с соседнего здания очухались и поняли, что у них слетела конфигурация на маршрутизаторе, а бекапов нет. Наизусть они не помнят, какие в главном здании подсети, но помнят, что они находятся рядом друг с другом, и просят прислать одну суммированную. Теперь у меня возникает задача, как их суммировать. Для начала я переведу все подсети в двоичный вид.
Посмотрите внимательно на таблицу. Как видите, у 4 подсетей первые 22 бита одинаковые. Соответственно, если я возьму 192.168.0.0 с маской /22 или 255.255.252.0, то покрою свои 4 подсети. Но обратите внимание на 5 подсеть, которую я специально ввел. Это подсеть 192.168.4.0. 22-ой бит у нее отличается от предыдущих 4-х, а значит выше выбранное не покроет эту подсеть.
Ок. Теперь я отправлю коллегам суммированную подсеть, и, если они все правильно пропишут, то маршрутизация до моих подсетей будет работать без проблем.
Возьмем тот же пример и немного изменим условия. Нас попросили прислать суммарный маршрут для подсетей 192.168.0.0 и 192.168.1.0. Я не поленюсь и создам еще одну таблицу.
Обратите внимание, что у 2 первых подсетей одинаковые не 22 бита, а 23 бита. Это значит, что их можно просуммировать еще компактнее. В принципе работать будет и так, и так. Но как говорилось в одной рекламе: «Если нет разницы — зачем платить больше?». Поэтому старайтесь суммировать, не задевая при этом соседние подсети.
Таким образом, переводя подсети в двоичный формат и находя одинаковые биты, можно их суммировать.
Вообще суммирование полезно применять, когда надо объединить несколько подсетей, расположенных вблизи друг с другом. Это позволит сэкономить ресурсы маршрутизаторов. Однако это не всегда возможно. Просуммировать, например, подсеть 192.168.1.0 и 192.168.15.0, не захватив при этом соседние подсети, невозможно. Поэтому перед суммированием стоит подумать над ее целесообразностью. Поэтому повторюсь еще раз, что начинать какую-либо революцию надо на бумажке. Ну и для закрепления материала оставлю небольшую задачу.
Задача №4
Даны 4 подсети:
1) 10.3.128.0
2) 10.3.129.0
3) 10.3.130.0
4) 10.3.131.0
Просуммируйте подсети и найдите маску, которая сможет покрыть их, не задевая при этом соседние подсети.
Ответ
Исходя из этого, ответом будет 10.3.128.0/22 (255.255.252.0)
Пришло время закругляться. Статья получилась не очень длинной. Я бы даже сказал наоборот. Но все, что требует знать Cisco про IPv4, мы рассмотрели. Самое главное, что требуется от вас — это научиться работать с адресами и масками и уметь конвертировать их из десятичной в двоичную и обратно. Ну и, конечно, правильно делить на подсети и распределять адресное пространство. Спасибо, что дочитали. А если еще и задачки все сами прорешали, то цены вам нет) А если еще не прорешали, то приятного времяпровождения.
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 8 сентября 2022 года; проверки требуют 6 правок.
Маска подсети — битовая маска для определения по IP-адресу адреса подсети и адреса узла (хоста, компьютера, устройства) этой подсети. В отличие от IP-адреса маска подсети не является частью IP-пакета.
Благодаря маске можно узнать, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети.
Например, узел с IP-адресом 12.34.56.78 и маской подсети 255.255.255.0, с длиной префикса 24 бита (/24), находится в сети 12.34.56.0.
В случае адресации IPv6 адрес 2001:0DB8:1:0:6C1F:A78A:3CB5:1ADD с длиной префикса 32 бита (/32) находится в сети 2001:0DB8::/32.
Другой вариант определения — это определение подсети IP-адресов. Например, с помощью маски подсети можно сказать, что один диапазон IP-адресов будет в одной подсети, а другой диапазон соответственно в другой подсети.
Чтобы получить адрес сети, зная IP-адрес и маску подсети, необходимо применить к ним операцию поразрядной конъюнкции (побитовое И). Например, в случае более сложной маски:
IP-адрес: 11000000 10101000 00000001 00000010 (192.168.1.2) Маска подсети: 11111111 11111111 11111110 00000000 (255.255.254.0) Адрес сети: 11000000 10101000 00000000 00000000 (192.168.0.0)
Легенда:
- часть маски, определяющая адрес сети и состоящая из единиц;
- адрес сети, который определяется маской подсети;
- диапазон адресов устройств в этой сети.
Разбиение одной большой сети на несколько маленьких подсетей позволяет упростить маршрутизацию. Например, пусть таблица маршрутизации некоторого маршрутизатора содержит следующую запись:
Сеть назначения | Маска сети | Адрес шлюза |
---|---|---|
192.168.1.0 | 255.255.255.0 | 10.20.30.1 |
Пусть теперь маршрутизатор получает пакет данных с адресом назначения 192.168.1.2. Обрабатывая построчно таблицу маршрутизации, он обнаруживает, что при наложении (применении операции «побитовое И») на адрес 192.168.1.2 маски 255.255.255.0 получается адрес сети 192.168.1.0. В таблице маршрутизации этой сети соответствует шлюз 10.20.30.1, которому и отправляется пакет.
Битовые операции при расчёте адреса сети в IPv6 выглядят аналогично. Но в IPv6 можно просто рассчитать адрес сети по длине префикса, применив формулу: «длина префикса в битах» / 4 = «кол-во 0xF у адреса сети». Взяв полученное количество 0xF из адреса узла, получаем адрес сети.
Маски при бесклассовой маршрутизации (CIDR)[править | править код]
Маски подсети являются основой метода бесклассовой маршрутизации (англ. CIDR). При этом подходе маску подсети записывают вместе с IP-адресом в формате «IP-адрес/количество единичных бит в маске». Число после знака дроби ( длина префикса сети) означает количество единичных разрядов (бит) в маске подсети.
Рассмотрим пример записи диапазона IP-адресов в виде 10.96.0.0/11. В этом случае маска подсети будет иметь двоичный вид 1111_1111.1110_0000.0000_0000.0000_0000, или то же самое в десятичном виде: 255.224.0.0. 11 разрядов IP-адреса отводятся под адрес сети, а остальной 32-11=21 разряд полного адреса (1111_1111.1110_0000.0000_0000.0000_0000) — под локальный адрес в этой сети. Итого, 10.96.0.0/11 означает диапазон адресов от 10.96.0.0 до 10.127.255.255.
CIDR | Последний IP-адрес в подсети | Маска подсети | Количество адресов в подсети | Количество хостов в подсети | Класс подсети |
---|---|---|---|---|---|
a.b.c.d/32 | 0.0.0.0 | 255.255.255.255 | 1 | 1* | 1/256 C |
a.b.c.d/31 | 0.0.0.1 | 255.255.255.254 | 2 | 2* | 1/128 C |
a.b.c.d/30 | 0.0.0.3 | 255.255.255.252 | 4 | 2 | 1/64 C |
a.b.c.d/29 | 0.0.0.7 | 255.255.255.248 | 8 | 6 | 1/32 C |
a.b.c.d/28 | 0.0.0.15 | 255.255.255.240 | 16 | 14 | 1/16 C |
a.b.c.d/27 | 0.0.0.31 | 255.255.255.224 | 32 | 30 | 1/8 C |
a.b.c.d/26 | 0.0.0.63 | 255.255.255.192 | 64 | 62 | 1/4 C |
a.b.c.d/25 | 0.0.0.127 | 255.255.255.128 | 128 | 126 | 1/2 C |
a.b.c.0/24 | 0.0.0.255 | 255.255.255.000 | 256 | 254 | 1 C |
a.b.c.0/23 | 0.0.1.255 | 255.255.254.000 | 512 | 510 | 2 C |
a.b.c.0/22 | 0.0.3.255 | 255.255.252.000 | 1024 | 1022 | 4 C |
a.b.c.0/21 | 0.0.7.255 | 255.255.248.000 | 2048 | 2046 | 8 C |
a.b.c.0/20 | 0.0.15.255 | 255.255.240.000 | 4096 | 4094 | 16 C |
a.b.c.0/19 | 0.0.31.255 | 255.255.224.000 | 8192 | 8190 | 32 C |
a.b.c.0/18 | 0.0.63.255 | 255.255.192.000 | 16 384 | 16 382 | 64 C |
a.b.c.0/17 | 0.0.127.255 | 255.255.128.000 | 32 768 | 32 766 | 128 C |
a.b.0.0/16 | 0.0.255.255 | 255.255.000.000 | 65 536 | 65 534 | 256 C = 1 B |
a.b.0.0/15 | 0.1.255.255 | 255.254.000.000 | 131 072 | 131 070 | 2 B |
a.b.0.0/14 | 0.3.255.255 | 255.252.000.000 | 262 144 | 262 142 | 4 B |
a.b.0.0/13 | 0.7.255.255 | 255.248.000.000 | 524 288 | 524 286 | 8 B |
a.b.0.0/12 | 0.15.255.255 | 255.240.000.000 | 1 048 576 | 1 048 574 | 16 B |
a.b.0.0/11 | 0.31.255.255 | 255.224.000.000 | 2 097 152 | 2 097 150 | 32 B |
a.b.0.0/10 | 0.63.255.255 | 255.192.000.000 | 4 194 304 | 4 194 302 | 64 B |
a.b.0.0/9 | 0.127.255.255 | 255.128.000.000 | 8 388 608 | 8 388 606 | 128 B |
a.0.0.0/8 | 0.255.255.255 | 255.000.000.000 | 16 777 216 | 16 777 214 | 256 B = 1 A |
a.0.0.0/7 | 1.255.255.255 | 254.000.000.000 | 33 554 432 | 33 554 430 | 2 A |
a.0.0.0/6 | 3.255.255.255 | 252.000.000.000 | 67 108 864 | 67 108 862 | 4 A |
a.0.0.0/5 | 7.255.255.255 | 248.000.000.000 | 134 217 728 | 134 217 726 | 8 A |
a.0.0.0/4 | 15.255.255.255 | 240.000.000.000 | 268 435 456 | 268 435 454 | 16 A |
a.0.0.0/3 | 31.255.255.255 | 224.000.000.000 | 536 870 912 | 536 870 910 | 32 A |
a.0.0.0/2 | 63.255.255.255 | 192.000.000.000 | 1 073 741 824 | 1 073 741 822 | 64 A |
a.0.0.0/1 | 127.255.255.255 | 128.000.000.000 | 2 147 483 648 | 2 147 483 646 | 128 A |
0.0.0.0/0 | 255.255.255.255 | 000.000.000.000 | 4 294 967 296 | 4 294 967 294 | 256 A |
* Чтобы в сетях с такой размерностью маски возможно было разместить хосты, отступают от правил, принятых для работы в остальных сетях.
Возможных узлов подсети меньше количества адресов на два: начальный адрес сети резервируется для идентификации подсети, последний адрес используется в качестве широковещательного адреса (возможны исключения в виде адресации в IPv4 сетей /32 и /31).
Выбор маски для подсети[править | править код]
Если — количество компьютеров в подсети, округлённое до ближайшей большей степени двойки, и (для сетей класса C), то маска подсети вычисляется по следующей формуле: , где двойка вычитается, так как один IP-адрес (первый в задаваемом маской диапазоне) является IP-адресом подсети и ещё один IP-адрес (последний в задаваемом маской диапазоне) является широковещательным адресом (для отправки данных всем узлам подсети). Для будет другая формула.
Пример: в некой подсети класса C есть 30 компьютеров; маска для такой сети вычисляется следующим образом:
28 - 30 - 2 = 224 = E0h; маска: 255.255.255.224 = 0xFF.FF.FF.E0.
См. также[править | править код]
- Бесклассовая адресация
Примечания[править | править код]
Литература[править | править код]
- Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов = Computer Networks. Principles, Technologies and Protocols for Network Design. — 3-е изд. — СПб.: Издательский дом «Питер», 2006. — С. 572—576. — 958 с. — ISBN 5-469-00504-6.
Ссылки[править | править код]
- Ivan Pascal. «Вычисление сетевой маски для подсети». OpenNet.ru (3 июня 2002). Дата обращения: 21 февраля 2011.
- Сергей Верещагин. «Wildcard Mask (шаблонная маска)» (30 мая 2009). Дата обращения: 21 февраля 2011. Архивировано 25 августа 2011 года.
-
Главная
-
Инструкции
-
Сети и безопасность
-
Маска подсети: что такое и как узнать по IP
В статье рассмотрим, что такое и зачем нужна маска подсети. А начнем с того, как устроены IP-адреса, потому что от понимания структуры айпи зависит и понимание назначения маски подсети.
IP можно назвать указателями, которые заключают в себе данные о расположении устройств в сетях, организованным по протоколам TCP/IP, по которым работает большинство хостов (устройств, подключенных к сети). Благодаря этим адресам данные, посылаемые через Интернет или по внутренним сетям, попадают куда нужно.
IP-адрес в формате протокола IPv4 представляет собой 4 числа, разделенные точками. При этом каждое число сетевые устройства воспринимают в виде двоичного кода. Например, 127.0.0.0
— это 01111111.00000000.00000000.00000000
, а 192.168.0.1
— 11000000.10101000.00000000.00000001
.
Интересный факт: люди могут не знать IP компьютера, за которым работают, но если у них дома есть роутер, они прекрасно знают адрес
192.168.0.1
. Именно по нему доступны в сети большинство маршрутизаторов.
Минимально возможное значение для айпи — 0.0.0.0
, максимальное — 255.255.255.255
, потому что протокол IPv4 поддерживает только 32-битные числа или 256 значений на каждую из 4 частей IP-адреса. При этом ряд диапазонов уже зарезервированы: например, диапазон 127.0.0.0
– 127.255.255.255
используется для интерфейсов типа localhost. Адрес 192.168.0.1
— тоже один из примеров зарезервированного IP.
Первые три числа часто представляют собой номер сети, а последнее — номер хоста, конкретного устройства в этой сети. Теперь понятно, что сеть 192.168.0
зарезервирована для внутренних номеров, а последняя единица означает первое устройство (хост) в подобной сети, то есть маршрутизатор. Поэтому-то адрес маршрутизатора вот такой: 192.168.0.1
. А почему не 192.168.0.0
? Дело в том, что 0 используется в качестве адреса сети, поэтому конкретные хосты он обозначать не может.
Что такое и для чего нужна маска подсети
Для настройки интернет-соединения по TCP/IP также требуется указать, помимо IP-адреса, и маску подсети. Все сети подразделяются на несколько классов, которые маркируются литерами A, B, C (есть еще D и E — это специальные сети). Сети класса A (самые крупные) имеют вид «сеть-хост-хост-хост», B — «сеть-сеть-хост-хост» и C — «сеть-сеть-сеть-хост».
Однако системные администраторы, чтобы обеспечить всех достаточным количеством адресов, разбивают сети соответствующего класса на более мелкие структуры — подсети. И для подсети, конечно же, нужно задать границы. Для этого как раз и используется маска подсети.
Обычная запись маски подсети в сетях класса C: 255.255.255.0
. Если не совсем понятно в десятичном виде, давайте преобразуем ее в двоичный код: 11111111.11111111.11111111.00000000
. Первые три октета (октет — группа из 8 бит) — наборы единиц, а последний — нули. В маске подсети единицы идентифицируют сетевую часть, а нули — хосты. Сетевая часть неизменна, а вот с самым правым октетом, заполненным нулями, можно работать.
Нетрудно подсчитать, что здесь у нас поместится 256 устройств, если поставить все возможные комбинации нулей и единиц. Однако на самом деле не 256, а 254, первое (0) и последнее (255) значения зарезервированы. Про 0 мы уже говорили: 0 является адресом сети (в данном случае подсети), а 255 используется в качестве широковещательного адреса.
Таким образом, маска подсети позволяет задать границы подсети, которые будут видеть маршрутизаторы. Понятно, что виды масок подсети зависят от классов сетей, для которых они используются. Например, самый распространенный вариант маски подсети для сетей класса B — 255.255.0.0
, а для класса A — 255.0.0.0
.
Какую маску подсети выбрать
Стандартный вариант маски для сетей класса C: 255.255.255.0
. Но совершенно не обязательно оставлять её такой. Например, если в вашей сети около сотни компьютеров и расширения не планируется, нетрудно подсчитать, что понадобится только половина от доступных IP-адресов. Поэтому можно разделить сеть на две части, просто изменив маску, вот так: 255.255.255.128
. Давайте посмотрим, как это будет выглядеть в двоичном коде: 11111111.11111111.11111111.10000000
. Слева в правом октете появилась единица, то есть работать в этой сети теперь можно уже только со 128, а точнее, со 126 значениями (помним про идентификатор сети и широковещательный адрес).
Если же нам потребуется разделить сеть на 4 подсети, используем маску 255.255.255.192
или 11111111.11111111.11111111.11000000
. Это позволит работать уже с 64 адресами. Для разбивки сетей на 8 подсетей маска уже будет иметь вид 255.255.255.224
или 11111111.11111111.11111111.11100000
. Думаем, принцип вы поняли: отталкиваемся от количества хостов в нашей сети и соответствующим образом выставляем маску, чтобы не плодить лишних айпи.
Маски подсети в IPv6
Понятно, что протокола IPv4 с его 4 миллиардами адресов (точное число: 4 294 967 296 уникальных адресов, но помним про значительные диапазоны зарезервированных) уже не хватает. Поэтому для адресации стали использовать протокол IPv6, который поддерживает уже 128-битные значения (8 чисел в шестнадцатеричной системе счисления). Здесь количество возможных адресов неизмеримо больше, чем у протокола IPv4 (в 1028 раз), что абсолютно точно покроет все потребности человечества даже в не слишком обозримом будущем. Однако, поскольку шестнадцатеричный формат совершенно другой, то и маски подсетей здесь задаются по иным правилам.
Для построения сетей в рамках протокола IPv6 используется бесклассовая адресация, CIDR. Применение CIDR позволяет настраивать подсети значительно более гибко, так как этот метод делает возможным применять больше масок подсетей. В шестнадцатеричном формате каждая позиция может принимать значения от 0 до F (числа 0-9 и буквы A-F как раз дают последовательность из 16 символов). Поэтому, чтобы задать маску, используем F для сетевой части.
Например: ffff:ffff:ffff:ffff:ffff:ffff:ffff:0000
. Такая маска позволит нам работать с 65536 адресами. А если нам нужно сократить количество адресов наполовину, то используем такой вариант: ffff:ffff:ffff:ffff:ffff:ffff:ffff:8000
. Примерным соответствием маски для сети класса C (конечно, это не совсем корректно, так как классы в IPv6 отсутствуют, но сравнить с чем-то нужно для наглядности) здесь будет ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00
. Эта запись позволит выделить 256 IP-адресов в формате IPv6. Почему именно такая запись? Всё просто: свободны два разряда в правой части. В каждом разряде у нас 16 возможных значений, следовательно: 16*16 = 256.
Как узнать адрес сети по IP-адресу и маске подсети
Если вы не знакомы с побитовыми операциями, самое время приступить к освоению этой, в общем-то не самой сложной, части программирования. Итак, давайте для примера попробуем выяснить, к какой сети принадлежит адрес 192.168.1.2
с маской 255.255.254.0
. Переведем их в двоичный вид и будем складывать методом поразрядного сложения (побитовое И). Здесь нужно запомнить одно простое правило: единица на выходе получается только в том случае, если в одинаковых разрядах обоих чисел тоже единицы. Если хотя бы в одном из чисел в этом месте ноль, то и на выходе всегда будет ноль. И вот что у нас вышло:
11000000 10101000 00000001 00000010
11111111 11111111 11111110 00000000
_________________________________
11000000 10101000 00000000 00000000
Приводим получившееся число к десятичному виду (задачу по переводу чисел в разные системы счисления вам облегчит этот калькулятор). Вуаля, вот и искомый адрес сети: 192.168.0.0. Как видите, ничего сложного: нужно только немного привыкнуть к двоичному виду чисел и битовым операциям.
Заключение
Итак, мы узнали о структуре IP-адреса, масках подсети в форматах IPv4 и IPv6 и научились изменять их под потребности своей сети. А еще освоили побитовое сложение для нахождения адреса сети по айпи и маске.