Первый и последний IP-адрес сети 192.168.176.0/23 (подсеть 23)
Давайте иметь следующий адрес сети: 192.168.176.0/23. Каковы первый и последний IP-адреса этой сети?
После этого ответа /questions/286545/nahozhdenie-pervogo-i-poslednego-adresa-bloka-ip-adresov-s-maskoj-podseti/286547#286547 я предполагаю, что:
/ 23 означает 23 бита для подсети. При 8 битах на байт мы получаем 16 бит для первых двух байтов, а затем семь (7) для третьего => 1111 1111. 1111 1111. 1111 1110. 0000 0000, верно?
Это означает, что наши последние два байта будут иметь вид (nnnn nnnH. HHHH HHHH), где n - бит подсети, а H - бит хоста.
Таким образом, сетевой адрес (nnnn nnn|0 0000 0000) -> .0, трансляция: (nnnn nnn|1 1111 1111) -> 2^9 транслируется? Невозможно. Здесь я что-то упускаю, что-то простое. Так какой будет первый и последний IP? Это то, что я не получаю после ответа, упомянутого в ссылке выше (от b0fh).
Первый 192.168.176.1, последний 192.168. 177,204?
2 ответа
Вас смущает то, что вы пытаетесь преобразовать хост-часть в десятичное значение и суммировать его с сетевым адресом, в то время как хост-часть разделяется на два октета.
Ваша сеть:
11000000.10101000.10110000.00000000
Ваша маска сети:
11111111.11111111.11111110.00000000
Ваша маска шаблона (часть, которая изменится):
00000000.00000000.00000001.11111111
Как правило, когда вы говорите 2^9 = 512
широковещательно, вы просто забываете, что один бит части хоста находится в последнем бите третьего октета. Так что, как он меняется, вы получите либо это:
11000000.10101000.10110000.<something>
Или это:
11000000.10101000.10110001.<something>
Так вот твой512
"десятичная форма на самом деле 0.0.1.255
(всегда должен быть в десятичной форме, чтобы вы не делали эту ошибку). Несетевая часть будет идти от 192.168.176.0
в 192.168.176.0 + 0.0.1.255
, Последний адрес, являющийся широковещательным адресом, вы узнаете, что это 192.168.177.255
,
Вы также можете получить его, добавив маску подстановки к вашему сетевому адресу:
11000000.10101000.10110000.00000000
+ 00000000.00000000.00000001.11111111
= 11000000.10101000.10110001.11111111
Который 192.168.177.255
,
Я попытаюсь уточнить, что я истолковываю как источник вашей путаницы:
Адрес IPv4 - это одно 32-разрядное целое число, но он обычно не форматируется таким образом, когда мы записываем адрес.
Как я уверен, что вы знаете, норма заключается в том, чтобы написать адрес как [first eight bits in decimal].[next eight bits in decimal].[next eight bits in decimal].[last eight bits in decimal]
но важно понимать, что на самом деле это просто другой способ форматирования этого единственного, потенциально очень большого числа.
Когда вы указываете маску сети CIDR (/n
), который говорит, сколько битов из 32-битного адреса образуют идентификатор сети, остальные биты образуют идентификатор хоста.
В вашем примере 192.168.176.0/23
первые 23 бита являются префиксом сети, оставляя 9 битов для идентификатора хоста, что означает, что идентификатор хоста пересекает границу последнего октета. Идентификатор хоста повлияет на последние два сегмента a.b.c.d
-форматированный адрес.
Чтобы проиллюстрировать это, я включу sipcalc
вывод, показывающий оба адреса в виде необработанных битов (действительно более актуальных для понимания математики), а также a.b.c.d
адреса в формате
$ sipcalc -b 192.168.176.0/23
-[ipv4 : 192.168.176.0/23] - 0
[CIDR bitmaps]
Host address - 11000000.10101000.10110000.00000000
Network address - 11000000.10101000.10110000.00000000
Network mask - 11111111.11111111.11111110.00000000
Broadcast address - 11000000.10101000.10110001.11111111
Cisco wildcard - 00000000.00000000.00000001.11111111
Network range - 11000000.10101000.10110000.00000000 -
11000000.10101000.10110001.11111111
Usable range - 11000000.10101000.10110000.00000001 -
11000000.10101000.10110001.11111110
-
$
$ sipcalc 192.168.176.0/23
-[ipv4 : 192.168.176.0/23] - 0
[CIDR]
Host address - 192.168.176.0
Host address (decimal) - 3232280576
Host address (hex) - C0A8B000
Network address - 192.168.176.0
Network mask - 255.255.254.0
Network mask (bits) - 23
Network mask (hex) - FFFFFE00
Broadcast address - 192.168.177.255
Cisco wildcard - 0.0.1.255
Addresses in network - 512
Network range - 192.168.176.0 - 192.168.177.255
Usable range - 192.168.176.1 - 192.168.177.254
-
$