Разделение сети на подсети

Разделение сети на подсети

Мне очень сложно понять IP-подсети.

То, что я уже умею делать: Зная IP-адрес и маску подсети, я могу найти все IP-адреса в подсети. Зная IP-адрес типа 145.244.0.0/14, я могу найти маску подсети.

То, что я не знаю, как сделать, это упражнение типа этого: Разделение сети, скажем, 192.168.0/24 на подсети. Каждая подсеть должна содержать не менее 10 хостов. Каковы первые семь подсетей?

Как бы я нашел решение для такого упражнения? Мне нужно найти адрес подсети, маску подсети, первый IP-адрес хоста, последний IP-адрес хоста и широковещательный адрес.

Обратите внимание, что это не какое-то домашнее задание, решение есть в моей книге, но я не знаю, откуда оно взялось.

Спасибо, что помогли мне.

решение1

В таком случае вы начинаете с выяснения того, сколько бит вам нужно для покрытия такого количества хостов:

10 хостов 2^4 = 16(минус 2 для идентификатора и широковещательной рассылки), 32-4 = 28поэтому вы собираетесь использовать подсеть /28.

Используя свои знания о том, как найти IP-адреса в подсети, вы можете работать в обратном направлении отсюда. Вы также можете перечислить все подсети, добавив 16, или работая в обратном направлении от IP-адресов снова:

192.168.0/24 (given supernet)
  192.168.0/28
  192.168.16/28
  192.168.32/28
  192.168.48/28
  192.168.64/28
  ...

Предостережение: большинство этих учебных упражнений считают первую и последнюю подсети непригодными для использования, а также первый и последний IP в каждой подсети. Однако есть немногонестандартный методразрешая их использование.

решение2

Разделение сети, скажем, 192.168.0/24 на подсети. Каждая подсеть должна содержать не менее 10 хостов. Каковы первые семь подсетей?

Сначала выберите размер подсети, который позволит создать подсети, достаточно большие для 12 адресов (сеть + 10 хостов + широковещательная рассылка), но достаточно маленькие, чтобы вместить 7 подсетей в ваш текущий префикс /24.

  • Для 12 адресов хостов вам понадобится не менее 4 бит (2 · 3 = 8 < 12, но 2 · 4 = 16 > 12).
  • Для 7 подсетей вам понадобится не менее 3 бит (2 ·2 = 4 < 7, но 2 ·3 = 8 > 7).

Поскольку у вас есть /24, то есть осталось 8 бит (из 32), у вас есть только два варианта:

  • 3 бита подсети + 5 бит хоста
  • 4 бита подсети + 4 бита хоста

Эти параметры означают /(24 + 3) = /27 и /(24 + 4) = /28 подсетей соответственно.

Обычно я бы выбрал /28 длянемногоболее простые вычисления, поскольку он делит последний октет ровно пополам. (Это не имеет большого значения в IPv4, но немного упрощает жизнь в IPv6, где адреса записываются в виде 4-битных шестнадцатеричных цифр.)


Теперь перечислите все подсети /27 (или /28) в заданной сети /24. Если у вас есть 3 бита подсети и 5 бит хоста, продолжайте увеличивать адрес на 2 5 , так что 4-й октет будет:

  • 000x хххх → 0000 0000 → 0 → 192.168.0.0/27
  • 001x хххх → 0010 0000 → 32 → 192.168.0.32/27
  • 010x хххх → 0100 0000 → 64 → 192.168.0.64/27
  • 111x хххх → 1110 0000 → 224 → 192.168.0.224/27

Это адреса (под)сетей.

решение3

Хотя предыдущие ответы все точны, я подумал, что стоит указать на неявное предположение, которое мы здесь делаем. Оба ответа Grawity и BowlesCR предполагают маску подсети фиксированной длины, что не обязательно должно быть правдой. Например, следующее расположение подсетей также будет соответствовать вашим требованиям:

192.168.0.0/28   <-- NOT /27
192.168.0.16/27
192.168.0.48/27
192.168.0.80/27
192.168.0.112/27
192.168.0.144/27
192.168.0.176/27

Вот еще:

192.168.0.0/28
192.168.0.16/28
192.168.0.32/28
192.168.0.48/26   <-- Oops, /26?!
192.168.0.112/27  <-- How about 27 instead...
192.168.0.144/28
192.168.0.160/28

Они, как правило, гораздо более запутанны и сложны для вычисления, поэтому мы, как и следовало ожидать, предпочитаем использовать везде одну и ту же маску подсети. Чтобы сделать это еще проще, мы можем просто придерживаться границ октетов и считать это днем. Например, разделяем 10.0.0.0/8 на 7 подсетей:

10.0.1.0/24
10.0.2.0/24
10.0.3.0/24
10.0.4.0/24
10.0.5.0/24
10.0.6.0/24
10.0.7.0/24

И наконец, еще один фактор, который следует учитывать, — ищем ли мы НАИМЕНЬШУЮ или НАИБОЛЬШУЮ маску подсети, содержащую указанное количество хостов. Ответ grawity намекает на это (/27 против /28).

Связанный контент