Рассчитать маску подсети из диапазона IP
Это было одно задание, которое у меня было как домашнее задание, которое я просто не могу понять. И моему учителю трудно объяснить это классу. И вот я здесь:
Проблема: Какова маска подсети следующего диапазона адресов хоста? 99.224.0.1 - 99.239.255.254
Мое решение (или насколько я получил) Сначала я записал IP-адреса в двоичном виде:
99.224.0.1
01100011.11100000.00000000.00000001
99.239.255.254
01100011.11101111.11111111.11111110
Что я знаю, так это сеть класса А. И я подумал, что это как-то связано с разницей в битах, поэтому я начал сравнивать. (самый высокий сначала)
01100011.11101111.11111111.11111110
01100011.11100000.00000000.00000001 (diff)
-----------------------------------
00000000.00001111.11111111.11111111
Я проигнорировал последний бит из-за сетевого / широковещательного адреса.
Теперь я могу перевернуть его и получить маску подсети?:
11111111.11110000.00000000.00000000
255.240.0.0
Мой вопрос: правильный ли мой подход? Есть ли более простой способ сделать это (вручную или вычислить)?
Если я очень далек от правильного способа сделать это, может кто-нибудь помочь мне понять?
Спасибо за любую помощь.
1 ответ
Ваш ответ правильный, за исключением того, что классные адреса больше не существуют. Интернет перешел на бесклассовую междоменную маршрутизацию (CIDR) в 1993 году, поэтому ваша терминология немного устарела;)
В наши дни IP-сеть работает с префиксами маршрутизации. Префикс - это диапазон IP-адресов, определяемых первым адресом в этом диапазоне и количеством фиксированных битов в начале адреса. Ваш пример хорошо показывает это.
Ваш примерный диапазон 99.224.0.1
- 99.239.255.254
, На самом деле это 99.224.0.0
- 99.239.255.255
потому что при использовании в подсети первый и последний адреса зарезервированы (но все же являются частью подсети и префикса).
Первый адрес в префиксе у нас уже есть: 99.224.0.0
, Вы можете увидеть длину префикса из вашего бинарного вычисления (немного изменено):
01100011.11101111.11111111.11111111
01100011.11100000.00000000.00000000
----------------------------------- (xor)
00000000.00001111.11111111.11111111
----------------------------------- (not)
11111111.11110000.00000000.00000000
Просто посчитайте количество 1
в начале: 12. Итак, ваш префикс 99.224.0.0/12
, Этот префикс охватывает все адреса, которые соответствуют 01100011.1110****.********.********
,
При записи длины префикса в качестве маски подсети вы действительно получите 255.240.0.0
,
Немного не по теме здесь, потому что речь идет о сети, а не об алгоритме вычисления маски подсети, но, возможно, полезно: пример того, как вы можете планировать сетевую адресацию:
Допустим, что для моего офисного здания я получаю IP-адреса 192.0.2.0/24
(то есть 192.0.2.0
- 192.0.2.255
, маска подсети 255.255.255.0
256 адресов). Мне нужно 50 адресов для серверов, 100 адресов для устройств сотрудников и 40 адресов для гостей.
Поскольку адресация работает с префиксами, все, что вы получаете, является степенью 2. Если вы используете /24
у вас есть префикс с 256 адресами. Полный адрес составляет 32 бита, первые 24 являются фиксированными, поэтому у вас осталось 8 битов для использования. 28 = 256. Если вы используете /25
у вас есть префикс 128 адресов, /26
имеет 64 адреса и т. д.
Таким образом, вы также можете разделить префикс. 192.0.2.0/24
можно разделить на 192.0.2.0/25
а также 192.0.2.128/25
, И они могут быть разделены снова и снова, пока у вас не будет префикса, который охватывает только один адрес: /32
,
Вернемся к примеру. Чтобы получить (как минимум) 50 адресов для серверов, мне нужно округлить до следующей степени 2. Это 26 = 64. Чтобы иметь столько адресов, мне нужно /26
префикс. Для клиентских устройств мне нужно округлить до 128 (27), поэтому нам нужно /25
, Для гостей следующая степень 2 равна 64 (26), поэтому /26
,
Таким образом, мы должны разделить /24
в /25
и два /26
s. Одним из возможных решений является:
Client devices: 192.0.2.0/25
Servers: 192.0.2.128/26
Guests: 192.0.2.192/26
Как только мы настроим эти подсети на наших устройствах, первый и последний адреса каждой подсети станут особыми (адрес сети и широковещательный адрес), чтобы мы могли использовать эти диапазоны для наших устройств:
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