Как вы вычисляете префикс, сеть, подсеть и номера хостов?
Пример:
IP: 128.42.5.4
В двоичном формате: 10000000 00101010 00000101 00000100
Подсеть: 255.255.248.0
Как вы можете определить префикс, сеть, подсеть и номера хостов?
3 ответа
Вычисление длины сетевой маски (также называемой префиксом):
Преобразуйте десятичное представление сетевой маски в двоичную. Затем подсчитайте количество смежных 1 бит, начиная с самого значащего бита в первом октете (т. Е. Левая сторона двоичного числа).
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
-----------------------------------
I counted twenty-one 1s -------> /21
Префикс 128.42.5.4 с сетевой маской 255.255.248.0 равен /21.
Вычисление сетевого адреса:
Сетевой адрес является логическим И соответствующих битов в двоичном представлении IP-адреса и сетевой маски. Выровняйте биты в обоих адресах и выполните логическое И на каждой паре соответствующих битов. Затем преобразуйте отдельные октеты результата обратно в десятичную.
Логическая таблица истинности:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
----------------------------------- [Logical AND]
10000000 00101010 00000000 00000000 ------> 128.42.0.0
Как вы можете видеть, сетевой адрес 128.42.5.4/21 равен 128.42.0.0
Вычисление широковещательного адреса:
Широковещательный адрес преобразует все биты хоста в 1s ...
Помните, что наш IP-адрес в десятичном формате:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Маска сети:
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
Это означает, что наши биты хоста - это последние 11 бит IP-адреса, потому что мы находим маску хоста путем инверсии сетевой маски:
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
Чтобы вычислить широковещательный адрес, мы вынуждаем все биты хоста 1s:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
----------------------------------- [Force host bits]
10000000 00101010 00000111 11111111 ----> 128.42.7.255
Расчет подсети:
Вы не указали достаточно информации для подсчета подсети для этой сети; как правило, вы создаете подсети путем перераспределения некоторых битов хоста в виде сетевых битов для каждой подсети. Много раз нет ни одного правильного способа подсети блока ... в зависимости от ваших ограничений может существовать несколько допустимых способов подсети блока адресов.
Предположим, что мы разделим 128.42.0.0/21 на 4 подсети, которые должны содержать не менее 100 хостов каждый ...
В этом примере мы знаем, что вам нужен хотя бы префикс /25, содержащий 100 хостов; Я выбрал a /24, потому что он попадает на границу октета. Обратите внимание, что сетевой адрес для каждой подсети берет биты хоста из родительского сетевого блока.
Поиск требуемой длины маски подсети или сетевой маски:
Как я узнал, что мне нужно, по крайней мере, 25 маску для 100 хостов? Вычислите префикс, обратившись к числу хост-бит, который должен содержать 100 хостов. Нужно 7 хостов, чтобы содержать 100 хостов. Официально это рассчитывается с помощью:
Биты хоста = Журнал 2 (Число хостов) = Журнал 2 (100) = 6.643
Так как адреса IPv4 имеют ширину 32 бита, и мы используем биты хоста (т.е. младшие значащие биты), просто вычитаем 7 из 32 для вычисления минимального префикса подсети для каждой подсети ... 32 - 7 = 25.
Ленточный способ разбить 128.42.0.0/21 на четыре равные подсети:
Поскольку нам нужно всего четыре подсети из всего блока 128.42.0.0/21, мы могли бы использовать /23 подсети. Я выбрал /23, потому что нам нужны 4 подсети ... т. Е. Добавлены еще два бита в маску сети.
Это равноправный ответ на ограничение, используя /23 подсети из 128.42.0.0/21 ...
Вычисление номера хоста:
Это то, что мы уже сделали выше ... просто повторно используем маску хозяина из работы, которую мы сделали, когда вычисляли широковещательный адрес 128.42.5.4/21 ... На этот раз я буду использовать 1s вместо h, потому что нам нужно снова выполнить логическое И на сетевом адресе.
h
Вычисление максимально возможного количества хостов в подсети:
Чтобы найти максимальное количествохосты, посмотрите количество бинарных битов в указанном выше номере узла. Самый простой способ сделать это - вычесть длину сетевой маски от 32 (количество бит в адресе IPv4). Это дает вам количество бит хоста в адресе. В этот момент ...
Максимальное количество хостов = 2 ** (32 - netmask_length) - 2
Причина, по которой мы вычитаем 2 выше, заключается в том, что зарезервированы номера хостов all-ones и all-zeros. Номер хоста all-zeros - это номер сети; номер хоста all-ones - широковещательный адрес.
Используя пример подсети 128.42.0.0/21 выше, количество хостов ...
Максимальное количество хостов = 2 ** (32 - 21) - 2 = 2048 - 2 = 2046
Поиск минимальной сетевой маски, которая содержит два IP-адреса:
Предположим, кто-то дает нам два IP-адреса и ожидает, что мы найдем самую длинную сетевую маску, содержащую их оба; например, что, если бы у нас было:
- 128.42.5.17
- 128.42.5.67
Проще всего сделать, чтобы преобразовать оба в двоичный файл и найти самую длинную строку сетевых битов из левой части адреса.
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000111 11111111
----------------------------------- [Logical AND]
00000000 00000000 00000101 00000100 -----> 0.0.5.4
В этом случае минимальная сетевая маска будет /25
ПРИМЕЧАНИЕ. Если вы попытаетесь начать с правой стороны, не обманывайте себя только потому, что вы найдете один соответствующий столбец бит; могут существовать несогласованные биты за пределами этих совпадающих битов. Честно говоря, самым безопасным делом является запуск с левой стороны.
Ответ выше отлично подходит для ногтей на голове. Однако, когда я впервые начал, мне потребовалось несколько разных примеров из нескольких источников, чтобы он действительно ударил по дому. Поэтому, если вас интересуют другие примеры, я написал несколько сообщений в блогах по этому вопросу - http: //www.oznetnerd. ком /категории /подсеть /
Администраторы, если этот пост считается спамом, не стесняйтесь его удалять.
Изменить: согласно предложению YLearn, я попытаюсь захватить соответствующие части из первой части моей серии, не вставив сюда всю запись.
В качестве примера воспользуемся примером 195.70.16.159/30.
Поскольку это /30, мы знаем, что часть хоста будет находиться в четвертом октете. Давайте преобразуем это в двоичный:
128 64 32 16 8 4 2 1
SN SN SN SN SN SN H H
1 0 0 1 1 1 1 1
Теперь, чтобы узнать сетевой адрес, все, что мы делаем, это добавить бит SN, у которых есть 1 под ними вместе. (128 + 16 + 8 + 4 = 156).
Когда вы добавите этот 156 в первые три октета адреса, мы остаемся с Сетевым адресом 195.70.16.156.
Теперь, поскольку мы знаем, что первый полезный адрес всегда является сетевым адресом плюс один, , нам нужно выполнить следующий расчет: (156 + 1 = 157).
Это дает нам первый полезный адрес 195.70.16.157.
Теперь давайте пропустим последний полезный адрес и найдите широковещательный адрес. Чтобы узнать, что это такое, нам нужно всего лишь добавить все H-бит (независимо от того, являются ли они 1 или 0), а затем добавить этот номер в сетевой адрес. (2 + 1 + 156 = 159).
Это дает нам широковещательный адрес 195.70.16.159.
И, наконец, давайте рассмотрим последний полезный адрес. Этот процесс похож на поиск первого полезного адреса, однако вместо того, чтобы добавлять его к сетевому адресу, мы фактически вычитаем его из широковещательного адреса. (159 - 1 = 158).
Это дает нам Последний полезный адрес 195.70.16.158.
И у нас это есть! Наш temaplte закончен. Для удобства, здесь это снова:
- Сетевой адрес: 195.70.16.156
- Первый полезный адрес: 195.70.16.157
- Последний полезный адрес: 195.70.16.158
- Адрес широковещания: 195.70.16.159
В качестве ярлыка вы также можете использовать эту формулу. Он работает на подсетях любого размера:
- Первый полезный адрес = Сетевой адрес + 1
- Широковещательный адрес = Следующий сетевой адрес - 1
- Последний полезный адрес = широковещательный адрес - 1
Пример:
IP: 128.42.5.4
В двоичном формате: 10000000 00101010 00000101 00000100
Подсеть: 255.255.248.0
Как вы можете определить префикс, сеть, подсеть и номера хостов?
32768 16384 8192 4096 2048 1024 512 256 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/17 /18 /19 /20 /21 /22 /23 /24 ----> CIDR
32766 16382 8190 3094 2046 1022 510 254 ----> Host
128 64 32 16 8 4 2 1 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/25 /26 /27 /28 /29 /30 /31 /32 ----> CIDR
126 62 30 14 6 2 * - ----> Host
128 64 32 16 8 4 2 1
10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001
Example
Network=192.168.1.0 /24;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.0
Ip address range 192.168.1.0----192.168.1.255
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.254;
Broadcast address = 192.168.1.255;
254 Host
Network=192.168.1.0 /25;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.128
Ip address range 192.168.1.0----192.168.1.128
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.126;
Broadcast address = 192.168.1.127;
126 Hosts
When the CIDR increased ex. /24. /25. the network will divided by the
binary number.
/25 increase network 0-128| 128- 256 | you will have 2 Networks
/26 increase network 0-64 | 64 - 128 | 128-192 | 192-256 you will have 4 Networks
.
.
.
/32......