Я написал это на Yahoo Ответах несколько лет назад, и у меня было бесчисленное множество людей по электронной почте / спасибо мне за это объяснение. Поскольку у вас есть понимание подсетей, прочитайте это и посмотрите, сможете ли вы выяснить свой вопрос. Если разберетесь, оставьте ответ в комментарии. Если вы озадачены, задайте вопрос в комментарии. Это хорошая практика, и единственный способ научиться подсетям!
Итак, вам даны ваши сети, и вам предлагается разбить их на более мелкие сети. Я начну с вопроса А.
Вопрос А говорит, что у нас есть сеть 172.18.0.0 /16
, и мы хотим разбить ее на более мелкие сети. Для этого нам нужно позаимствовать некоторые биты хоста из данной сети. Прямо сейчас наши биты сети - это 172.18
октета, а биты нашего хоста - в 0.0
октета. В двоичном коде это будет набор из 1 и 0, но чтобы помочь вам визуально увидеть это, я собираюсь использовать N для сети и H для битов хоста.
Мы бы имели nnnnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhh
. Чтобы сделать нашу сеть меньше, нам нужно взять некоторые из этих "h"
битов и сделать их "n"
битами. Формула для этого 2^n
. Тогда это скажет вам, сколько сетей вы можете сделать. Поэтому, если мы просто заимствуем один бит "h"
, мы бы взяли 2^1=2
. Итак, теперь наши октеты будут выглядеть как nnnnnnnn.nnnnnnnn.nhhhhhhh.hhhhhhhh
. Поскольку битовые значения октетов идут 128 64 32 16 8 4 2 1
, наш новый сетевой бит использует .128
. Таким образом, наши сети будут 172.18.0.0 /17
и 172.18.128.0 /17
.
Поскольку ваши вопросы требуют разбить его на 8 небольших сетей, нам просто нужно найти 2^n = 8
. Поскольку 2^3 = 8
мы собираемся заимствовать три хост-бита. Так что теперь наши биты будут выглядеть как nnnnnnnn.nnnnnnnn.nnnhhhhh.hhhhhhhh
. Так как наш бит сети теперь использует 32 бита, наши сети будут работать на 32
. Таким образом, ваши четыре сети будут 172.18.0.0 /19
, 172.18.32.0 /19
, 172.18.64.0 /19
и так далее, пока вы не доберетесь до своей последней сети 172.18.224.0/19
.
Что касается вопроса B, он хочет, чтобы мы разбили 10.0.0.0 /8
на четыре подсети. Опять же, наши биты будут выглядеть как nnnnnnnn.hhhhhhhh.hhhhhhhh.hhhhhhhh
. Теперь нам нужно выяснить 2^n = 4
. Поскольку 2^2 = 4
, мы заимствуем два хост-бита и используем их в качестве сетевых битов. Таким образом, наш октет теперь будет выглядеть как nnnnnnnn.nnhhhhhh.hhhhhhhh.hhhhhhhh
. И наши сети будут 10.0.0.0 /10
и 10.64.0.0 /10
.
Теперь, когда мы знаем наши сетевые адреса, найти широковещательный адрес и количество узлов в подсети очень просто. Например, наша первая сеть 172.18.0.0
- это 172.18.0.0 /17
а следующая сеть будет 172.18.32.0 /17
. Широковещательный адрес всегда является последним адресом подсети, поэтому для сети 172.18.0.0
это будет 172.18.31.255
. Для сети 172.18.32.0
это будет 172.18.63.255
.
Чтобы узнать количество узлов, длинный / трудный путь - это 2^h
. H количество битов хостов, которые у вас есть. Итак, для сети 172.18.0.0 /17
у нас есть 15 битов хоста, поэтому мы бы взяли 2^15 = 32768
.
Извините, это очень долго. Я не уверен, насколько вам удобно работать с подсетями в целом, но вот несколько ярлыков. Если вы хотите узнать количество подсетей, просто возьмите битовое значение 128 64 32 16 8 4 2 1 and divide it by 256
. Так, например, для вопроса А нам понадобилось восемь подсетей. Все, что вам нужно сделать, это взять 256/32 = 8. Тогда вы будете считать свои сети на 32, так как вы используете 32-значный бит.
Чтобы узнать количество узлов в сети, вы просто начинаете удваивать числа. A /30 может иметь 4 хоста, 2 из них могут быть использованы. /29 имеет 8, /28 имеет 16 и так далее. Последний октет действительно идет по битовым значениям, поэтому он просто идет 128 64 32 16 8 4 2 1
. Это общее количество хостов, если вы минус 2, это будет количество используемых хостов.
Затем, как только вы доберетесь до /23
, вы начнете удваиваться. A /24 is 256
, /23 is 512
, /22 1024
. Затем просто удваивайте каждый раз, когда вы увеличиваете значение на один бит