Ответы:
Преобразуйте десятичное представление маски в точках в двоичное. Затем подсчитайте количество смежных 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.
Широковещательный адрес преобразует все биты хоста в 1 с ...
Помните, что наш 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
Чтобы вычислить широковещательный адрес, мы устанавливаем все биты хоста равными 1 с:
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 хостов; Я выбрал / 24, потому что он находится на границе октета. Обратите внимание, что сетевой адрес для каждой подсети занимает биты хоста из родительского сетевого блока.
Как я узнал, что мне нужна длина маски не менее / 25 для 100 хостов? Рассчитайте префикс, вернувшись назад к числу битов хоста, необходимых для хранения 100 хостов. Нужно 7 битов хоста, чтобы содержать 100 хостов. Официально это рассчитывается с:
Биты хоста = Журнал 2 (Количество хостов) = Журнал 2 (100) = 6,643
Поскольку адреса IPv4 имеют ширину 32 бита, и мы используем биты хоста (т.е. младшие значащие биты), просто вычтите 7 из 32, чтобы вычислить минимальный префикс подсети для каждой подсети ... 32 - 7 = 25.
Поскольку нам нужно всего четыре подсети из всего блока 128.42.0.0/21, мы можем использовать / 23 подсети. Я выбрал / 23, потому что нам нужно 4 подсети ... т.е. дополнительные два бита, добавленные в маску сети.
Это одинаково верный ответ на ограничение, использующий / 23 подсети 128.42.0.0/21 ...
Это то, что мы уже сделали выше ... просто повторно используйте маску хоста из работы, которую мы сделали, когда мы вычислили широковещательный адрес 128.42.5.4/21 ... На этот раз я буду использовать 1с вместо h
, потому что нам нужно снова выполнить логическое И для сетевого адреса.
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
Чтобы найти максимальное количество хостов, посмотрите на количество двоичных битов в номере хоста выше. Самый простой способ сделать это - вычесть длину маски из 32 (количество бит в адресе IPv4). Это дает вам количество бит хоста в адресе. В таком случае...
Максимальное количество хостов = 2 ** (32 - длина маски сети) - 2
Причина, по которой мы вычитаем 2 выше, заключается в том, что номера хостов, состоящие из единиц и всех нулей, зарезервированы. Номер хоста из всех нулей - это номер сети; номер хоста «все единицы» - это широковещательный адрес.
Используя пример подсети 128.42.0.0/21 выше, количество хостов ...
Максимальное количество хостов = 2 ** (32 - 21) - 2 = 2048 - 2 = 2046
Предположим, кто-то дает нам два IP-адреса и ожидает, что мы найдем самую длинную маску сети, которая содержит их оба; например, что если бы у нас было:
Самое простое, что нужно сделать - это преобразовать оба в двоичный файл и найти самую длинную строку битов сети в левой части адреса.
128.42.5.17 in binary: 10000000 00101010 00000101 00010001
128.42.5.67 in binary: 10000000 00101010 00000101 01000011
^ ^ ^
| | |
+--------- Network ---------+Host-+
(All bits are the same) Bits
В этом случае максимальная маска сети (минимальная маска хоста) будет равна / 25
ПРИМЕЧАНИЕ. Если вы попытаетесь начать с правой стороны, не обманывайте себя только потому, что вы нашли один соответствующий битовый столбец; за этими совпадающими битами могут быть несоответствующие биты. Честно говоря, самое безопасное - начать с левой стороны.
Ответ выше отлично врезается в ноготь на голове. Тем не менее, когда я только начинал, мне потребовалось несколько разных примеров из нескольких источников, чтобы по-настоящему завоевать популярность. Поэтому, если вас интересуют другие примеры, я написал несколько постов в блоге на эту тему - http://www.oznetnerd.com/category/subnetting/
Администраторы, если этот пост считается спамом, пожалуйста удалите его.
Изменить: Согласно предложению 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 завершена. Для удобства, вот оно снова:
В качестве ярлыка вы также можете использовать эту формулу. Работает в подсетях любого размера:
Я не хочу ничего отнимать от превосходного ответа Майка Пеннингтона , который я неуклонно продвигал, но я продолжаю видеть вопросы, которые непосредственно не затрагиваются его ответом, и я создал что-то, что изначально было основано на ответе Майка, но я имею больше информации для решения вопросов, которые возникли с течением времени. К сожалению, он слишком большой, и мне пришлось разбить его на два ответа.
Учитывая IPv4-адрес и сетевую маску IPv4 (сетевая маска также может быть получена из длины сетевой маски или маски хоста), вы можете определить много информации о сети IPv4: сетевой адрес, сетевой широковещательный адрес, общее количество адресов хоста, общее количество используемых Адреса хостов, первый используемый адрес хоста и последний используемый адрес хоста.
Я не могу не подчеркнуть, что вы должны делать IPv4 математику в двоичном формате. Я думаю, что каждый сетевой инженер (или потенциальный сетевой инженер) пытался найти способ сделать все это в десятичном формате, как я уверен, что вы будете *. Проблема в том, что 10 (десятичное) не является степенью 2 (двоичное), поэтому десятичное и двоичное не преобразовываются естественным образом между собой так, как шестнадцатеричное (основание 16) естественным образом преобразуется в двоичное и обратно, потому что 16 является степенью 2 ,
Похоже, что использование точечно-десятичной нотации для IPv4 было ранней ошибкой, которую сейчас нельзя исправить, но IPv6 с самого начала перенял шестнадцатеричное использование, и его легко преобразовать в шестнадцатеричное и двоичное.
Если у вас нет IP-калькулятора (вероятно, он не разрешен в экзаменах по сетевому обучению или в сертификационных тестах), полезно составить диаграмму значений битов в октете. Поскольку это двоичный код, каждое значение бита в 2 раза превышает одно и то же значение цифры в следующей младшей цифре. Каждая цифра - это число, умноженное на одно и то же значение цифры в следующей младшей цифре. Это также верно для любой другой числовой базы, включая десятичную (основание 10), где каждое цифровое значение в 10 раз превышает значение того же цифрового значения в следующей позиции менее значимого числа. Для двоичных цифр (бит):
---------------------------------------------------------
| Bit # | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---------------------------------------------------------
| Value | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---------------------------------------------------------
Там, где десятичная дробь - это степени 10, двоичная - это степени 2. Обратите внимание, что для каждого номера бита в приведенной выше таблице соответствующее значение равно 2 степени бита.
For our example IPv4 dotted-decimal address of 198.51.100.223:
1st octet: 198 = 128 + 64 + 0 + 0 + 0 + 4 + 2 + 0 = 11000110
2nd octet: 51 = 0 + 0 + 32 + 16 + 0 + 0 + 2 + 1 = 00110011
3rd octet: 100 = 0 + 64 + 32 + 0 + 0 + 4 + 0 + 0 = 01100100
4th octet: 223 = 128 + 64 + 0 + 16 + 8 + 4 + 2 + 1 = 11011111
For our example IPv4 binary address of 11000110001100110110010011011111:
1st octet: 11000110 = 128 + 64 + 0 + 0 + 0 + 4 + 2 + 0 = 198
2nd octet: 00110011 = 0 + 0 + 32 + 16 + 0 + 0 + 2 + 1 = 51
3rd octet: 01100100 = 0 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 100
4th octet: 11011111 = 128 + 64 + 0 + 16 + 8 + 4 + 2 + 1 = 223
Вам также нужно будет запомнить свои Таблицы правды из школы (в двоичной математике 0 - Ложь, а 1 - Истина):
-----------------------------------------
| False AND False = False | 0 AND 0 = 0 |
-----------------------------------------
| False AND True = False | 0 AND 1 = 0 |
-----------------------------------------
| True AND False = False | 1 AND 0 = 0 |
-----------------------------------------
| True AND True = True | 1 AND 1 = 1 |
-----------------------------------------
-----------------------------------------
| False OR False = False | 0 OR 0 = 0 |
-----------------------------------------
| False OR True = True | 0 OR 1 = 1 |
-----------------------------------------
| True OR False = True | 1 OR 0 = 1 |
-----------------------------------------
| True OR True = True | 1 OR 1 = 1 |
-----------------------------------------
* Если вы выполняете математику IPv4 в течение многих лет, вы можете достичь точки, в которой вы можете выполнять двоичные / десятичные преобразования в своей голове, и тогда вы сможете выполнять математику IPv4 в десятичной форме. Несмотря на то, что я могу сделать это в своей голове, я всегда буду перепроверять с помощью калькулятора IP, или преобразовывать в двоичный файл, выполнять математические вычисления и преобразовывать обратно в десятичную, прежде чем вносить изменения в производственную сеть.
Точечная десятичная запись IPv4, например 198.51.100.223
, предназначена для того, чтобы людям было проще читать адрес IPv4. Четыре отдельных раздела, называемые октетами, действительно не имеют никакого значения для IPv4. Не делайте распространенную ошибку, думая, что октеты имеют особое значение. Адрес IPv4 на самом деле представляет собой 32-разрядное двоичное число, и именно так сетевые устройства видят и используют адрес IPv4.
Наш пример IPv4-адреса 198.51.100.223
на самом деле относится 11000110001100110110010011011111
к устройству в сети, поэтому вы можете видеть, что десятичное представление с точками действительно облегчает людям. Каждый октет представляет собой восемь бит 32-битного адреса (отсюда обычно используется термин «октет»), поэтому существует четыре октета ( 32 address bits / 8 bits per octet = 4 octets
). В нашем примере 32-битный двоичный адрес разделен на четыре октета, затем каждый двоичный октет преобразуется в десятичное число *:
Binary address: 11000110001100110110010011011111
---------------------------------------------
Binary octets: | 11000110 | 00110011 | 01100100 | 11011111 |
Decimal octets: | 198 | 51 | 100 | 223 |
---------------------------------------------
Dotted-decimal: 198.51.100.223
Поскольку каждый октет имеет длину восемь битов, каждый октет будет иметь значение между 0
и 255
(любые значения больше 255
недопустимых). Причина в том, что 2^8 = 256
: 2
(база двоичных чисел) в степени 8
(восемь битов на октет) равна 256
количеству различных значений, которые могут быть выражены восьмибитным октетом. Помните, что первое значение равно 0
, поэтому 256
значение th будет на единицу меньше общего числа значений, которые могут быть выражены ( 256 – 1 = 255
).
Чтобы правильно выполнять математику IPv4, вы должны делать это в двоичном формате, в противном случае вы будете делать ошибки, которые вызовут у вас проблемы и разочарование. Это означает, что вы должны преобразовать десятичную запись с точками в двоичную форму, прежде чем пытаться манипулировать ею:
Dotted-decimal: 198.51.100.223
---------------------------------------------
Decimal octets: | 198 | 51 | 100 | 223 |
Binary octets: | 11000110 | 00110011 | 01100100 | 11011111 |
---------------------------------------------
Binary address: 11000110001100110110010011011111
* Ведущие нули в точечно-десятичном адресе IPv4 могут интерпретироваться некоторыми приложениями и языками программирования как восьмеричные (основание 8), а не десятичные (основание 10), что приводит к ошибкам и следует избегать начальных нулей для представления IPv4 с точками и десятичными точками, но начальные нули необходимы для двоичных октетов IPv4-адресов, поскольку они представляют позиции битов в полном адресе, а пропуск позиции бита приведет к сокращению адреса и изменению двоичного значения.
Маска сети IPv4 используется для разделения адреса IPv4 на две части: сетевую часть и часть хоста. Деление может быть с любым битовым числом, поэтому оно может находиться в пределах октета, а не на границе октета, как многие люди ошибочно полагают, что это всегда происходит. Маска сети IPv4 имеет тот же размер, что и адрес IPv4 (32 бита), и она выражается в десятично-точечной нотации так же, как если бы вы выражали адрес IPv4 в десятично-точечной нотации (четыре восьмибитных октета, разделенных период). Например, 255.255.248.0
.
Маска сети IPv4 состоит из нескольких последовательных 1
битов (представляющих сетевую часть адреса), за которыми следует количество 0
битов (представляющих хост-часть адреса). Общее количество 1
битов и общее количество 0
битов складывается до 32
количества бит в адресе IPv4 или сетевой маске. Для нашего примера маска сети:
Dotted-decimal: 255.255.248.0
------------------------------------------------
Decimal octets: | 255 | 255 | 248 | 0 |
Binary octets: | 11111111 | 11111111 | 11111 | 000 | 00000000 |
------------------------------------------------
| 21 Network bits | 11 Host bits |
------------------------------------------------
Как вы можете видеть, разделение между частями сети и хоста адреса IPv4 с использованием этой конкретной маски находится в пределах октета, а не на границе октета.
Маска сети IPv4 часто представляется количеством последовательных 1
битов в маске. Это по-разному называется длиной маски сети или длиной префикса, и она представлена как /
число последовательных 1
битов в маске сети. В нашем примере подсчитывается количество последовательных 1
битов 21
, которое можно представить как /21
.
Учитывая длину маски, вы можете вычислить точечно-десятичное представление маски. Просто запишите количество 1
битов для длины маски и добавьте достаточно 0
битов в конце к общему количеству 32
битов. Преобразуйте полученное двоичное число в десятичное представление с точками:
Mask length: /21
------------------------------------------------
| 21 Network bits | 11 Host bits |
------------------------------------------------
Binary octets: | 11111111 | 11111111 | 11111 | 000 | 00000000 |
Decimal octets: | 255 | 255 | 248 | 0 |
------------------------------------------------
Dotted-decimal: 255.255.248.0
Пример может быть представлен традиционно как 198.51.100.223
с сетевой маской 255.255.248.0
или может быть представлен как более современный CIDR (бесклассовая междоменная маршрутизация) 198.51.100.223/21
.
Сетевой адрес IPv4 - это адрес IPv4 со всеми установленными битами хоста 0
. Сетевой адрес IPv4 может быть рассчитан по AND
битам соответствующих битов в двоичном представлении адреса IPv4 и маски сети IPv4. Выровняйте биты по обоим адресам и выполните поразрядно AND
для каждой пары соответствующих битов, затем преобразуйте отдельные октеты результата обратно в десятичную.
Для нашего примера IPv4-адрес 198.51.100.223
и маска сети 255.255.248.0
:
Decimal address: 198.51.100.223/21
Binary address octets: 11000110 00110011 01100100 11011111
Binary mask octets: 11111111 11111111 11111000 00000000 AND
-----------------------------------
Binary network octets: 11000110 00110011 01100000 00000000
Decimal network octets: 198 51 96 0
Dotted-decimal network: 198.51.96.0
Как видите, сетевой адрес 198.51.100.223/21
есть 198.51.96.0
. Обратите внимание, что вы не можете полагаться на то, что октеты сообщают вам, какая часть адреса является сетью, а какая часть адреса для хостов.
Вы можете использовать этот метод, чтобы определить, находятся ли два адреса в одной или разных сетях *. Например, если вы хотите узнать, находится ли ваш 198.51.100.223/21
адрес в той же сети IPv4, где хосту назначен 198.51.102.57
адрес, определите свой сетевой адрес IPv4 (как указано выше). Затем определите сетевой адрес IPv4 рассматриваемого хоста, используя маску сети IPv4 (хосты в той же сети используют ту же маску сети, и у вас может не быть маски, только адрес хоста назначения):
Decimal address: 198.51.102.57/21
Binary address octets: 11000110 00110011 01100110 00111001
Binary mask octets: 11111111 11111111 11111000 00000000 AND
-----------------------------------
Binary network octets: 11000110 00110011 01100000 00000000
Decimal network octets: 198 51 96 0
Dotted-decimal network: 198.51.96.0
Сравните полученный сетевой адрес IPv4 с исходным сетевым адресом IPv4 и обратите внимание, что сетевые адреса равны, поэтому адреса узлов находятся в одной сети.
Теперь, давайте посмотрим, если вы находитесь в той же сети, что и 74.125.69.100
адрес Google:
Decimal address: 74.125.69.100/21
Binary address octets: 01001010 01111101 01000101 01100100
Binary mask octets: 11111111 11111111 11111000 00000000 AND
-----------------------------------
Binary network octets: 01001010 01111101 01000000 00000000
Decimal network octets: 74 125 64 0
Dotted-decimal network: 74.125.64.0
Сравните полученный сетевой адрес IPv4 с исходным сетевым адресом IPv4 и обратите внимание, что сетевые адреса разные, поэтому адреса узлов находятся в разных сетях.
* Это метод, используемый исходным хостом для определения, является ли он хостом назначения в той же сети, что и исходный хост.
Одно полезное, часто упускаемое из виду значение, которое полезно при адресации IPv4, - это маска хоста IPv4. Маска хоста IPv4 - это просто обратная маска сети IPv4. Вы можете создать бинарную маску хоста из бинарной маски сети или бинарную маску сети из бинарной маски хоста, просто инвертируя 1
s и 0
s начальной маски:
Dotted-decimal network mask: 255.255.248.0
Decimal network mask octets: 255 255 248 0
Binary network mask octets: 11111111 11111111 11111000 00000000 invert
-----------------------------------
Binary host mask octets: 00000000 00000000 00000111 11111111
Decimal host mask octets: 0 0 7 255
Dotted-decimal host mask: 0.0.7.255
Можно математически создать маску хоста из маски сети или маску сети из маски хоста, вычитая начальную маску из самой длинной маски ( /32
или маски «все единицы»).
Это можно сделать в двоичном виде:
Binary all-ones mask octets: 11111111 11111111 11111111 11111111
Binary network mask octets: 11111111 11111111 11111000 00000000 -
-----------------------------------
Binary host mask octets: 00000000 00000000 00000111 11111111
Decimal host mask octets: 0 0 7 255
Dotted-decimal host mask: 0.0.7.255
Это также может быть выполнено в десятичном формате (это октет «все единицы» 255
), но не забудьте преобразовать его в двоичный файл, прежде чем пытаться использовать его для манипулирования адресами:
Decimal all-ones mask octets: 255 255 255 255
Decimal network mask octets: 255 255 248 0 -
---------------
Decimal host mask octets: 0 0 7 255
Dotted-decimal host mask: 0.0.7.255
Сетевой широковещательный адрес IPv4 - это сетевой адрес IPv4 со всеми установленными битами хоста 1
. Существует несколько способов вычисления широковещательного адреса IPv4.
Для нашего примера IPv4-адрес 198.51.100.223
и маска сети 255.255.248.0
.
Вы можете выполнить побитовую обработку OR
с IPv4-адресом или сетевым адресом с маской хоста:
Decimal address octets: 198 51 100 223
Binary address octets: 11000110 00110011 01100100 11011111
Binary host mask octets: 00000000 00000000 00000111 11111111 OR
-----------------------------------
Binary broadcast octets: 11000110 00110011 01100111 11111111
Decimal broadcast octets: 198 51 103 255
Dotted-decimal broadcast: 198.51.103.255
Вы можете просто добавить значение маски хоста IPv4 к значению сетевого адреса IPv4:
Binary network octets: 11000110 00110011 01100000 00000000
Binary host mask octets: 00000000 00000000 00000111 11111111 +
-----------------------------------
Binary broadcast octets: 11000110 00110011 01100111 11111111
Decimal broadcast octets: 198 51 103 255
Dotted-decimal broadcast: 198.51.103.255
Это также то, что вы можете сделать в десятичном виде:
Decimal network octets: 198 51 96 0
Decimal host mask octets: 0 0 7 255 +
---------------
Decimal broadcast octets: 198 51 103 255
Dotted-decimal broadcast: 198.51.103.255
Общее количество адресов хоста IPv4 для сети зависит 2
от количества бит хоста, которое 32
минус количество бит сети. Для нашего примера /21
сети (маска сети 255.255.248.0
) есть 11
биты хоста ( 32 address bits – 21 network bits = 11 host bits
). Это означает, что 2048
в /21
сети IPv4 имеется общее количество адресов хоста ( 2^11 = 2048
).
За исключением /31
сетей (маска сети 255.255.255.254
) и /32
(маска сети 255.255.255.255
), количество используемых адресов узлов в сети IPv4 равно общему числу адресов узлов сети минус 2
(так как сеть и широковещательные адреса IPv4 непригодны для адресов узлов в сети, вы необходимо вычесть их из числа доступных адресов хоста). Для нашего примера сети /21
( 255.255.248.0
) есть доступные 2046
адреса хоста ( 2^11 - 2 = 2046
).
За исключением /31
сетей (маска сети 255.255.255.254
) и /32
(маска сети 255.255.255.255
), первым используемым адресом сетевого узла IPv4 является сетевой адрес IPv4 плюс 1
(сетевой адрес IPv4 не может использоваться для адреса сетевого узла). В нашем примере сети 198.51.96.0/21
первым используемым адресом сетевого узла является 198.51.96.1
( 198.51.96.0 + 1 = 198.51.96.1
). Просто установите младший бит двоичного сетевого адреса IPv4 на 1
:
Decimal network octets: 198 51 96 0
Binary network octets: 11000110 00110011 01100000 00000000
-----------------------------------
Binary address octets: 11000110 00110011 01100000 00000001
Decimal address octets: 198 51 96 1
Dotted-decimal address: 198.51.96.1
За исключением /31
сетей (маска сети 255.255.255.254
) и /32
(маска сети 255.255.255.255
), последний используемый адрес узла сети IPv4 - это адрес широковещания сети IPv4 минус 1
(адрес широковещания сети IPv4 не может использоваться для адреса узла сети). Для нашего примера сети 198.61.96.0/21
последний используемый адрес узла сети 198.51.103.254
( 198.51.103.255 - 1 = 198.51.103.254
). Просто установите младший бит двоичного сетевого широковещательного адреса IPv4 на 0
:
Decimal broadcast octets: 198 51 103 255
Binary broadcast octets: 11000110 00110011 01100111 11111111
-----------------------------------
Binary address octets: 11000110 00110011 01100111 11111110
Decimal address octets: 198 51 103 254
Dotted-decimal address: 198.51.103.254
Для нашего примера сетевого адреса 198.51.100.223
и маски IPv4 255.255.248.0
(или 198.51.100.223/21
) мы можем вычислить много сетевой информации:
Host address: 198.51.100.223
Network mask: 255.255.248.0
Network mask length: 21
Host mask: 0.0.7.255
Host mask length: 11
*Network address: 198.51.96.0
*First usable network host address: 198.51.100.1
*Last usable network host address: 198.51.103.254
*Network Broadcast address: 198.51.103.255
Total network host addresses: 2048
Usable network host addresses: 2046
* Экзамены по сетевому обучению и сертификационные тесты попросят вас быстро вычислить их для сети IPv4, учитывая адрес хоста и маску (или длину маски). Вы можете использовать подсказки ниже для быстрой проверки ваших ответов:
Вышеприведенные советы не относятся к /31
сетям (маска сети 255.255.255.254
) или /32
(маска сети 255.255.255.255
).
Если у вас достаточно времени на экзамене и проблема с несколькими методами для получения ответа, вам следует использовать несколько методов для двойной проверки ответа.
Продолжение в следующем ответе ...
Продолжение предыдущего ответа ...
Шлюз - это узел в сети, который знает, как пересылать пакеты в другие сети, и ему может быть назначен любой используемый адрес узла сети. Некоторые люди просто случайным образом назначают адреса шлюза любому используемому адресу сетевого узла, некоторые люди всегда назначают шлюз первому используемому адресу сетевого узла, а некоторые всегда назначают последний доступный адрес сетевого узла шлюзу. На самом деле не имеет значения, какой используемый сетевой адрес хоста вы назначаете шлюзу, но вы должны стараться быть последовательными.
/31
(маска сети 255.255.255.254
) СетиПервоначально /31
сети (маска сети 255.255.255.254
) были непригодны, поскольку имеется только один бит узла, что дает вам всего два сетевых адреса узлов, но количество используемых адресов сетевых узлов - это общее количество адресов сетевых узлов минус 2
( 2 total host addresses - 2 = 0 usable host addresses
).
Для двухточечных ссылок требуется только два адреса хоста (по одному для каждого конца ссылки). Традиционный способ назначения сетей IPv4 требовал использования /30
сетей (маски сети 255.255.255.252
) для соединений точка-точка, но это напрасно тратит половину адресов сетевых узлов, поскольку в /30
сети всего четыре сетевых адреса узлов, но только два являются пригодными для использования адресами сетевых узлов. ( 2^2 – 2 = 2
).
В связи с нехваткой критических IPv4-адресов был создан стандарт, позволяющий использовать /31
сети для соединений точка-точка. Это имеет смысл, поскольку нет необходимости в широковещательной передаче в таких сетях: любые пакеты, отправляемые узлом в сети, предназначены для единственного другого узла в сети, эффективно вещающего. В /31
сети сетевой адрес является первым используемым адресом хоста, а широковещательный адрес является последним используемым адресом хоста.
К сожалению, не все поставщики (в частности, Microsoft) поддерживают стандарт использования /31
сетей в двухточечных каналах связи, и вы чаще всего будете видеть двухточечные ссылки, используя /30
сети.
/32
(маска сети 255.255.255.255
) Сети/32
(Сетевая маска 255.255.255.255
) сеть как сеть, без адресов узлов, а также адрес хоста, сам по себе. В сети есть только один адрес, и это сетевой адрес. Поскольку в сети нет других хостов, трафик должен перенаправляться на сетевой адрес и с него.
Эти адреса часто используются на виртуальных сетевых интерфейсах, определенных внутри устройства, которое может маршрутизировать пакеты между его виртуальными и физическими интерфейсами. Примером этого является создание виртуального интерфейса в сетевом устройстве, который будет использоваться в качестве источника или назначения для самого устройства. Виртуальный интерфейс не может быть сброшен из-за физической проблемы, например, из-за отсоединения кабеля, и если устройство имеет несколько путей к нему, другие устройства могут по-прежнему связываться с устройством, используя адрес виртуального интерфейса, когда физический интерфейс устройства по какой-то причине не работает. ,
Подсеть сети создает несколько более длинных сетей из сетевого адреса и маски. Основная идея заключается в том, что вы заимствуете старшие биты из основной части исходной сети. Предположим, вы хотите создать 14 равных по размеру подсетей из нашей исходной 198.51.96.0/21
сети. Поскольку вы заимствуете биты старшего разряда из основной части исходной сети, вы получите число, которое является степенью 2
, но 14
не степенью 2
, поэтому вы должны получить следующую более высокую степень 2
, которая оказывается 16
( 16 = 2^4
). В 2
данном случае мощность 4
- это число битов хоста старшего разряда, которое необходимо заимствовать для количества создаваемых подсетей. Вы также можете использовать математическую формулу для определения необходимого количества бит:Log2(X subnets) = Y borrowed bits
округляется до следующего целого значения:
Log2(14 subnets) = 3.807354922, rounded up = 4 borrowed bits
В нашем примере нам нужно 14 подсетей одинакового размера в исходной 198.51.96.0/21
сети, начиная со всех 0
s * для первой подсети, добавьте 1
в подсеть часть, чтобы получить следующую подсеть:
----------------------------------------------
Original: | 21 network bits | 11 host bits |
----------------------------------------------
Network: | 110001100011001101100 | 0000 | 0000000 | = 198.51.96.0/21
Subnet 1: | 110001100011001101100 | 0000 | 0000000 | = 198.51.96.0/25
Subnet 2: | 110001100011001101100 | 0001 | 0000000 | = 198.51.96.128/25
Subnet 3: | 110001100011001101100 | 0010 | 0000000 | = 198.51.97.0/25
Subnet 4: | 110001100011001101100 | 0011 | 0000000 | = 198.51.97.128/25
Subnet 5: | 110001100011001101100 | 0100 | 0000000 | = 198.51.97.128/25
Subnet 6: | 110001100011001101100 | 0101 | 0000000 | = 198.51.98.128/25
Subnet 7: | 110001100011001101100 | 0110 | 0000000 | = 198.51.99.0/25
Subnet 8: | 110001100011001101100 | 0111 | 0000000 | = 198.51.99.128/25
Subnet 9: | 110001100011001101100 | 1000 | 0000000 | = 198.51.100.0/25
Subnet 10: | 110001100011001101100 | 1001 | 0000000 | = 198.51.100.128/25
Subnet 11: | 110001100011001101100 | 1010 | 0000000 | = 198.51.101.0/25
Subnet 12: | 110001100011001101100 | 1011 | 0000000 | = 198.51.101.128/25
Subnet 13: | 110001100011001101100 | 1100 | 0000000 | = 198.51.102.0/25
Subnet 14: | 110001100011001101100 | 1101 | 0000000 | = 198.51.102.128/25
----------------------------------------------
Subnetted: | 25 network bits | 7 host bits |
----------------------------------------------
----------------------------------------------
Unused: | 110001100011001101100 | 111 | 00000000 | = 198.51.103.0/24
----------------------------------------------
* Существует постоянный миф, что для подсетей, как и для адресов хостов, нельзя использовать все нули и все единицы, но этот миф был явно развеян много лет назад стандартом. К сожалению, этот миф распространяется на некоторые сетевые учебные классы, и правильным ответом для этих (неправильных) классов будет использование 2–15-й подсетей.
Можно разделить сеть на подсети различного размера (каждая сеть IPv4 является подсетью 0.0.0.0/0
сетевого адреса), как в нашем примере выше, где неиспользуемая подсеть является /24
подсетью, но это требует тщательного планирования, чтобы начальные подсети начинались с правильный бит.
Например, предположим, что нам нужна сеть /26
и /27
подсеть a 198.51.96.0/21
. Есть два способа сделать это: начать с /26
подсети или начать с /27
подсети.
Начиная с /26
подсети:
Original: | 110001100011001101100 | 00000000000 | /21
Subnet 1: | 110001100011001101100 | 00000 | 000000 | /26
Добавьте 1
в подсеть часть, чтобы получить начальную позицию следующей подсети:
Subnet 2: | 110001100011001101100 | 00001 | 000000 | /26
Затем расширьте вторую подсеть /27
:
Subnet 2: | 110001100011001101100 | 000010 | 00000 | /27
Обратите внимание, что мы на самом деле подсетим вторую /26
подсеть в /27
подсеть, и это хорошо работает, потому что 27
больше, чем 26
.
Начиная с /27
подсети:
Original: | 110001100011001101100 | 00000000000 | /21
Subnet 1: | 110001100011001101100 | 000000 | 00000 | /27
Добавьте 1
в подсеть часть, чтобы получить начальную позицию следующей подсети:
Subnet 2: | 110001100011001101100 | 000001 | 00000 | /27
Обратите внимание, что в хост-части осталось недостаточно битов (пять битов хоста) для поддержки /26
сети, для которой требуется шесть бит хоста ( 32 address bits – 26 network bits = 6 host bits
). Если мы используем это в качестве начальной позиции для /26
подсети, мы фактически перекрываем предыдущую и следующую /26
сети. Нам нужно оставить пробел в размере /27
сети для начальной позиции /26
сети:
Original: | 110001100011001101100 | 00000000000 | /21
Subnet 1: | 110001100011001101100 | 000000 | 00000 | /27
Unused: | 110001100011001101100 | 000001 | 00000 | /27
Subnet 2: | 110001100011001101100 | 00001 | 000000 | /26
/26
Подсети всегда должна начинаться на /26
границе: каждая вторая /27
граница подсети, каждая четвёртая /28
граница, каждая восьмая /29
граница, и т.д. Это правило для любого размера подсети: подсеть должна начинаться на границе более подсети , которая равна 2
силе более длинного размера подсети минус размер подсети. Например, /23
подсеть должна запускаться в каждой 4-й /25
сети ( 2^(25 - 23) = 2^2 = 4
).
Попытка настроить устройство с сетевым адресом, который начинается с неправильной битовой границы, приведет либо к странным, трудным для устранения проблем проблемам, либо к устройству выдаст ошибку об перекрывающихся сетях. Некоторые люди пытаются сделать это с помощью десятичного числа с точками, и это может привести к ошибкам. Например, 198.51.96.0/27
адреса хоста сети являются 198.51.96.0
сквозными 198.51.96.31
. Если вы знаете это и пытаетесь использовать 198.51.96.32/26
сеть, у вас возникнут проблемы, поскольку эта сеть начинается с неправильной границы бита и перекрывает /27
сеть (проверьте с помощью побитового ввода AND
с адресами и сетевыми масками). Это очевидно в двоичном коде, но не так очевидно в точечно-десятичном. Вы можете узнать, что /26
сети должны начинаться с кратного десятичного числа64
границу, но видя ее в двоичном формате, можно точно сказать, допустили ли вы ошибку.
Обычные экзаменационные вопросы дадут вам сеть и предложат вам создать несколько подсетей различного размера в зависимости от количества хостов для каждой подсети. Если вы можете, вам необходимо уточнить, основано ли количество хостов на общем количестве адресов хостов в сети или на количестве используемых хостов в сети. (Например, если вопрос требует подсети с 256
или 255
хостами, /24
сеть выдаст вам 256
общие адреса хостов, но только 254
адреса хостов, которые можно использовать. Такой вопрос может быть хитрым, и правильный ответ будет зависеть от того, вопрос означает общее количество адресов хоста или используемых адресов хостов.)
Пример вопроса:
Given the 198.51.96.0/21 network, subnet it for the following departments:
Department 1: 500 hosts
Department 2: 100 hosts
Department 3: 200 hosts
Department 4: 1000 hosts
Как мы видели в разделе «Подсети сетей IPv4», самый простой способ сделать это - сначала отсортировать отделы по наибольшему или наименьшему количеству хостов, потому что нам не нужно будет работать с сетевыми пробелами:
Department 4: 1000 hosts
Department 1: 500 hosts
Department 3: 200 hosts
Department 2: 100 hosts
Вы можете округлить каждую до следующей большой степени 2, чтобы получить количество требуемых общих адресов хоста для каждой подсети, а затем вывести количество требуемых битов хоста из показателя степени 2
:
Department 4: 1024 total host addresses = 2^10 = 10 host bits
Department 1: 512 total host addresses = 2^9 = 9 host bits
Department 3: 256 total host addresses = 2^8 = 8 host bits
Department 2: 128 total host addresses = 2^7 = 7 host bits
Вы также можете изменить предыдущую формулу, чтобы найти количество битов, требуемых для определенного числа подсетей одинакового размера, чтобы определить количество битов хоста, требуемых для каждой подсети:, Log2(X hosts) = Y host bits
округленное до следующего целочисленного значения:
Department 4: Log2(1000 hosts) = 9.96578428466209, rounded up = 10 host bits
Department 1: Log2( 500 hosts) = 8.96578428466209, rounded up = 9 host bits
Department 3: Log2( 200 hosts) = 7.64385618977472, rounded up = 8 host bits
Department 2: Log2( 100 hosts) = 6.64385618977473, rounded up = 7 host bits
Когда у вас есть количество битов хоста, необходимых для каждой подсети, выполните двоичную математику, чтобы получить конкретную подсеть для каждого отдела. Не забудьте добавить 1
в подсеть, чтобы получить начальный адрес следующей подсети:
Original: | 110001100011001101100 | 00000000000 | = 198.51.96.0/21
Department 4: | 110001100011001101100 | 0 | 0000000000 | = 198.51.96.0/22
Department 1: | 110001100011001101100 | 10 | 000000000 | = 198.51.100.0/23
Department 3: | 110001100011001101100 | 110 | 00000000 | = 198.51.102.0/24
Department 2: | 110001100011001101100 | 1110 | 0000000 | = 198.51.103.0/25
Unused: | 110001100011001101100 | 1111 | 0000000 | = 198.51.103.128/25
Вас могут попросить предоставить информацию о сети для конкретной подсети данной сети. Например, вас могут попросить предоставить информацию о сети для 23-й /26
подсети 198.51.96.0/21
сети. Поскольку вам нужна 23-я подсеть, вы можете преобразовать 22
(помните, 0
это первая подсеть, поэтому 23-я подсеть будет 22
*) в двоичную систему: Decimal 22
= Binary 10110
. Используйте преобразованное двоичное число в части адреса подсети:
Original: | 110001100011001101100 | 00000000000 | = 198.51.96.0/21
Subnet 23: | 110001100011001101100 | 10110 | 000000 | = 198.51.101.128/26
После того как вы определили 23-й сетевой адрес, 198.51.101.128/26
вы можете рассчитать другую сетевую информацию (как описано в предыдущих разделах):
Network address: 198.51.101.128
Network mask length: 26
Network mask: 255.255.255.192
Host mask length: 6
Host mask: 0.0.0.63
First usable network host address: 198.51.101.1
Last usable network host address: 198.51.101.62
Broadcast address: 198.51.101.63
Total network host addresses: 64
Usable network host addresses: 62
* Существует постоянный миф, что для подсетей, как и для адресов хостов, нельзя использовать все нули и все единицы, но этот миф был явно развеян много лет назад стандартом. К сожалению, этот миф распространяется на некоторые сетевые учебные классы, и правильным ответом для этих (неправильных) классов будет использование 24-й ( 23
десятичной, 10111
двоичной) подсети в нашем примере подсетей одинакового размера, а не фактической 23-й ( 22
десятичной, 10110
бинарная) подсеть.
Вас могут попросить найти адрес хоста для конкретного хоста данной сети. Например, вас могут попросить дать адрес хоста для 923-го хоста 198.51.96.0/21
сети. Так как вам нужен 923-й хост, вы можете преобразовать 923
в двоичный: десятичный 923
= двоичный 1110011011
. Добавьте преобразованное двоичное число в сетевой адрес:
Binary network: | 110001100011001101100 | 00000000000 |
Binary 923: | 000000000000000000000 | 01110011011 | +
-----------------------------------
Host address: | 110001100011001101100 | 01110011011 | = 198.51.99.155
Вам может быть дано два (или более) разных адреса хоста, и вам будет предложено создать самую большую сеть (наименьшее количество хостов), которая содержит оба адреса хоста. Например, найти крупнейшую общую сеть 198.51.100.223
и 198.51.101.76
.
Во-первых, преобразуйте точечные десятичные адреса в двоичные:
198.51.100.223 = 11000110001100110110010011011111
198.51.101.76 = 11000110001100110110010101001100
Затем, начиная с самого старшего (самого левого) бита, сравнивайте двоичные адреса в каждой битовой позиции, пока биты в той же позиции не совпадают:
198.51.100.223 = | 11000110001100110110010 | 011011111 |
198.51.101.76 = | 11000110001100110110010 | 101001100 |
Подсчитайте количество совпадающих битов, 23
в этом случае, чтобы получить длину маски. Затем вы можете взять любой адрес и выполнить побитовую AND
маску сети, чтобы получить общую сеть. Выполнение этого по обоим адресам должно привести к одной и той же сети, и если это не так, то вы либо неправильно сосчитали, либо пропустили непревзойденную битовую позицию.
198.51.100.223 = 11000110001100110110010011011111
/23 mask length = 11111111111111111111111000000000 AND
--------------------------------
Binary network: 11000110001100110110010000000000 = 198.51.100.0/23
198.51.101.76 = 11000110001100110110010111011111
/23 mask length = 11111111111111111111111000000000 AND
--------------------------------
Binary network: 11000110001100110110010000000000 = 198.51.100.0/23
Обратите внимание, что два сетевых адреса совпадают. Это означает, что самой большой общей сетью для двух адресов хоста является 198.51.100.0/23
(нотация CIDR) или (традиционная) 198.51.100.0
с маской 255.255.254.0
.
* Вы можете увидеть, что это называется наименьшей общей сетью (или некоторым вариантом, например, минимальной сетью или маской). На самом деле самая маленькая сеть 0.0.0.0/0
( 0
биты сети) является общей сетью для всех адресов IPv4, поэтому это наименьшая общая сеть среди любых адресов IPv4. Путаница возникает из-за того, что многие люди смотрят на хост-часть адреса и видят его размер как размер сети, а не размер сетевой части адреса.
Сам по себе IPv4 не имеет ни понятия, ни различия между публичной и частной адресацией. Частная адресация IPv4 была выбрана произвольно, и интернет-провайдеры по соглашению не будут пересылать пакеты в общедоступном Интернете, используя адреса в частном адресном пространстве, но сетевые устройства и хосты не имеют представления, является ли адрес общедоступным или частным.
Существует три диапазона адресов, определяемых частной адресацией IPv4:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Первоначально адреса IPv4 были разделены на сетевые классы. Классическая адресация устарела десятилетия назад, и современные сети основаны на CIDR (бесклассовой междоменной маршрутизации), но, к сожалению, многие классы сетевого образования и сертификационные экзамены настаивают на проверке ваших знаний о классовой адресации. Пожалуйста, изучите и ознакомьтесь со всей предыдущей математикой IPv4 в этом документе, прежде чем узнаете о классовой адресации.
Все классы адресов IPv4 основаны на первых битах адреса:
Class Address Starts With Address Range Default Size*
A First one bit = 0 0.0.0.0 to 127.255.255.255 /8
B First two bits = 10 128.0.0.0 to 191.255.255.255 /16
C First three bits = 110 192.0.0.0 to 223.255.255.255 /24
D First four bits = 1110 224.0.0.0 to 239.255.255.255 N/A
E First four bits = 1111 240.0.0.0 to 255.255.255.255 N/A
255.0.0.0
( /8
) и маску хоста по умолчанию 0.255.255.255
, что дает вам 16,777,216
общее количество адресов хостов на сеть.255.255.0.0
( /16
) и маску хоста по умолчанию 0.0.255.255
, что дает вам 65,536
общее количество адресов хостов на сеть.255.255.255.0
( /24
) и маску хоста по умолчанию 0.0.0.255
, что дает вам 256
общее количество адресов хостов на сеть.255.255.255.255
, который является отдельным адресом, который каждый хост в сети будет рассматривать как свой собственный. Это означает, что все отправленные сообщения 255.255.255.255
будут приниматься и обрабатываться каждым хостом в сети.Поскольку каждый класс имеет размер сети по умолчанию, некоторые вопросы предполагают маску по умолчанию для данного адреса, поэтому любые вычисления должны быть сделаны на основе маски сети по умолчанию. Для нашего примера адреса 198.51.100.223
:
Binary: 11000110 00110011 01100100 11011111
Обратите внимание, что первые три адресных бита 110
означают, что это адрес класса C, и при отсутствии какой-либо маски или длины маски, предполагается, что маска сети 255.255.255.0
( /24
) представляет собой сетевой адрес 198.51.100.0
.
* Не делайте распространенную ошибку, думая, что маска сети диктует класс сети, это наоборот. Например, многие люди считают, что любая /24
сеть является сетью класса C, но это даже отдаленно не верно. Например, учитывая 10.11.12.0/24
сеть, многие люди ошибочно называют ее сетью класса C из-за маски сети, хотя первый бит адреса 0
и делает ее сетью класса A, хотя и с более длинной маской сети, чем по умолчанию. Маска сети класса A, означающая, что это подсеть сети класса A, а не сеть класса C.
(В попытке сохранить все ответы на сетевую маску в одном месте, после других превосходных ответов, я добавил этот о визуальном методе.)
Размер подсети в зависимости от количества хостов
Это для общего вопроса «Как вырезать заданный размер сети в п штук позволяя х 1 хостов в сети 1, х 2 хостов в сети 2, и т.д ...?» может быть решена путем проработки методов, описанных в других превосходных ответах.
Однако некоторым людям может понравиться более наглядный метод и несколько общих советов.
Визуальный метод "Стеклорез"
Я часто преподаю визуальное понимание этого следующим методом:
Сначала представьте бумажную гильотину вот так:
( Изображение из Википедии Натана CC BY-SA 3.0)
Свойства этого типа резака заключаются в том, что он режет только прямые линии, всегда режет по всей бумаге и режет перпендикулярно стороне. Наша особая гильотина суетливая: она будет разрезать бумагу только пополам, и мы не сможем сделать разрез ближе 1 см от края.
Вот иллюстрация процесса. Вы видите, что на срезе 1 и 2 возможен только один вид разреза, но на разрезе 3 мы делаем выбор: вырезать маленький кусок (красный) или большой (синий), предоставляя две разные возможности.
Это то, что часто называют проблемой гильотины , которую я узнал как проблему «стеклореза», так как листовое стекло действительно должно быть разрезано по всей длине, и это специфическое можно назвать «бинарным стеклорезом», поскольку оно всегда разрезается пополам.
Когда я на самом деле делаю это в реальной жизни, я мысленно делю пополам, глядя на сетку вот так. Я помню, что / 26 должно начинаться с 0, .64, 128 или .192; Я мог бы знать, что седьмая арендованная линия нуждается в седьмой / 30 в высшей четверти, но я не буду помнить, что это .216.
Очевидно, что сетка также может использоваться для представления третьего октета, и каждый квадрат представляет / 24. Теперь говорится, что / 18 начинается с 0, 0, 64, 128 или 0,12.
Советы по общей технике
Общая процедура:
Пример:
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......