Как легко посчитать количество хостов в сети
При каждом убавлении бита из маски вычитается 1, потом 1 + 1 = 2, далее 2 + 2 = 4 и т.д.
Т.е. первый бит заберет 1, все остальные будут забирать предыдущее число помноженное на два x = x*2
32 бита — маска 255.255.255.255
31 бит — маска 255.255.255.254
30 бит — маска 255.255.255.252
29 бит — маска 255.255.255.248
Теперь надо понять, сколько хостов, мы вычли из 32 бит в общей сложности 3 бита, чтоб получить нужную маску
Это значит, что хостов будет 2 в степени 3 и из результата вычесть 2 (адрес сети и широковещательный)
Т.е. получится 2 * 2 * 2 — 2 = 6
Т.е. адрес сети 192.168.0.0, хосты с 192.168.0.1 по 192.168.0.6, широковещательный 192.168.0.7
Cisco формула расчёта сетей
Количество хостов в подсети = 2 n -2 , где n – это количество свободных бит (нулей) в порции хоста, а «-2» — это вычет адреса сети (в порции хоста все нули) и широковещательного адреса (в порции хоста все единицы).
Объяснение формул расчета сетей
IP адрес
IP адрес состоит из 32 битов, которые поделены на 4 части по 8 бит соответственно (эти части называются октетами). В жизни используется запись IP адреса в десятичном виде.
Примеры IP адресов:
172.16.2.15 = 10101100.00010000.00000010.00001111
178.68.128.168 = 10110010.01000100.10000000.10101000
217.20.147.94 = 11011001.00010100.10010011.01011110
Из этих 32 битов часть относится к адресу хоста, которому принадлежит этот IP адрес, а другая часть относится к адресу сети, в которой находится этот хост. Первая часть (слева направо) IP адреса обозначает адрес сети, а вторая часть (оставшиеся биты) – адрес хоста. Чтобы узнать, сколько битов относится к адресу сети, надо воспользоваться маской сети.
Маска сети
Маска сети тоже состоит из 32 битов, но в отличие от IP адреса, в маске единицы и нолики не могут перемешиваться. В жизни используется запись сетевой маски в десятичном виде.
Примеры масок сети:
255.255.255.0 = 11111111.11111111.11111111.00000000
255.0.0.0 = 11111111.00000000.00000000.00000000
255.255.240.0 = 11111111.11111111.11110000.00000000
255.255.255.128 = 11111111.11111111.11111111.10000000
Префикс маски
Еще чаще, маска сети записывается в виде короткого префикса маски. Число в префиксе обозначает количество бит относящихся к адресу сети.
/16 = 11111111.11111111.00000000.00000000 = 255.255.0.0
/24 = 11111111.11111111.11111111.00000000 = 255.255.255.0
/26 = 11111111.11111111.11111111.11000000 = 255.255.255.192
IP адрес и маска сети
Чтобы узнать, какая часть IP адреса относится к порции сети, необходимо выполнить бинарную логическую операцию AND (И).
Бинарная логическая операция AND (И)
Смысл операции заключается в сравнении двух битов, причем только в одном случае бинарная операция даёт единицу на выходе – в случае сравнения двух единиц. В остальных случаях логическая операция AND даёт на выходе 0.
Результаты сравнения логической операцией AND двух битов:
1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0
Операция AND над IP адресом и маской
Представим, что у нас есть IP адрес 192.168.1.31 с маской сети в виде префикса /24, наша задача вычислить адрес сети, порцию сети, порцию хоста.
Сначала надо перевести IP адрес из десятичной системы счисления в двоичную систему. Затем перевести префикс в двоичный вид и нормальный вид маски сети (десятичный). Далее останется только сложить IP адрес с маской с помощью логической операции AND.
192.168.1.31/24
192.168.1.31 = 11000000.10101000.00000001.00011111
/24 = 11111111.11111111.11111111.00000000 = 255.255.255.0
11000000.10101000.00000001.00011111 (IP)
AND
11111111.11111111.11111111.00000000 (Mask)
=
11000000.10101000.00000001.00000000 (Адрес сети в двоичном виде)
192.168.1.0/24 (Адрес сети в десятичном виде с сетевым префиксом)
Вот мы и узнали адрес сети. Единички в маске указывают на длину порции адреса сети (11000000.10101000.00000001.), а нолики – на порцию адреса хоста (.00011111).
Примеры расчета сетей
Деление сети осуществляется присвоением битов из порции адреса хоста к порции адреса сети. Тем самым мы увеличиваем возможное количество подсетей, но уменьшаем количество хостов в подсетях. Чтобы узнать, сколько получается подсетей из присвоенных битов надо воспользоваться cisco формулой расчета сетей: 2 n , где n является количеством присвоенных бит.
Пример расчета сети на 2 подсети.
У нас есть адрес сети 192.168.1.0/24, нам надо разделить имеющуюся сеть на 2 подсети. Попробуем забрать от порции хоста 1 бит и воспользоваться формулой: 2 1 =2, это значит, что если мы заберём один бит от части хоста, то мы получим 2 подсети. Присвоение одного бита из порции хоста увеличит префикс на один бит: /25. Теперь надо выписать 2 одинаковых IP адреса сети в двоичном виде изменив только присвоенный бит (у первой подсети присвоенный бит будет равен 0, а у второй подсети = 1). Захваченный бит я выделю более жирным шрифтом красного цвета.
2 подсети (захваченный бит я выделю более жирным шрифтом красного цвета):
1) 11000000.10101000.00000001. 0 0000000
2) 11000000.10101000.00000001. 1 0000000
Теперь запишем рядом с двоичным видом десятичный, и добавим новый префикс. Красным пометил порцию подсети, а синим – порцию хоста.
1) 11000000.10101000.00000001.0 0000000 = 192.168.1.0/25
2) 11000000.10101000.00000001.1 0000000 = 192.168.1.128/25
Всё, сеть разделена на 2 подсети. Как мы видим выше, порция хоста теперь составляет 7 бит.
Чтобы высчитать, сколько адресов хостов можно получить используя 7 бит, необходимо воспользоваться cisco формулой расчёта хостов: 2 n -2, где n = количество бит в порции хоста.
2 7 — 2 = 126 хостов. В начале статьи было сказано, что вычитаемая цифра 2 является двумя адресами, которые нельзя присвоить хосту: адрес сети и широковещательный адрес.
Адрес сети, это когда в порции хоста все нули, а широковещательный адрес, это когда в порции хоста все единицы. Выпишем эти адреса для каждой подсети в двоичном и десятичном виде:
11000000.10101000.00000001.0 0000000 = 192.168.1.0/25 (адрес сети первой подсети)
11000000.10101000.00000001.0 1111111 = 192.168.1.127/25 (широковещательный адрес первой подсети)
11000000.10101000.00000001.1 0000000 = 192.168.1.128/25 (адрес сети второй подсети)
11000000.10101000.00000001.1 1111111 = 192.168.1.255/25 (широковещательный адрес второй подсети)
Пример расчета сети на 4 подсети.
Этот пример делается абсолютно по тому же алгоритму, что и предыдущий, поэтому я запишу текст немного короче. Адрес я буду использовать тот же, чтобы вы видели отличия. Если нужны подробности, пишите на почту eaneav@gmail.com.
У нас есть адрес сети 192.168.1.0/24, надо разделить сеть на 4 подсети. Высчитываем по формуле, сколько нам надо занять бит от хоста: 2 2 = 4. Префикс изменяется на /26.
4 подсети (захваченный бит я выделю более жирным шрифтом красного цвета):
1) 11000000.10101000.00000001. 00 000000
2) 11000000.10101000.00000001. 01 000000
3) 11000000.10101000.00000001. 10 000000
4) 11000000.10101000.00000001. 11 000000
Красным пометил порцию подсети, а синим – порцию хоста:
1) 11000000.10101000.00000001.00 000000 = 192.168.1.0/26
2) 11000000.10101000.00000001.01 000000 = 192.168.1.64/26
3) 11000000.10101000.00000001.10 000000 = 192.168.1.128/26
4) 11000000.10101000.00000001.11 000000 = 192.168.1.192/26
Всё, сеть разделена на 4 подсети. Порция хоста теперь составляет 6 бит.
2 6 — 2 = 62 хостов.
11000000.10101000.00000001.00 000000 = 192.168.1.0/26 (адрес сети первой подсети)
11000000.10101000.00000001.00 111111 = 192.168.1.63/26 (широковещательный адрес первой подсети)
11000000.10101000.00000001.01 000000 = 192.168.1.64/26 (адрес сети второй подсети)
11000000.10101000.00000001.01 111111 = 192.168.1.127/26 (широковещательный адрес второй подсети)
11000000.10101000.00000001.10 000000 = 192.168.1.128/26 (адрес сети третьей подсети)
11000000.10101000.00000001.10 111111 = 192.168.1.191/26 (широковещательный адрес третьей подсети)
11000000.10101000.00000001.11 000000 = 192.168.1.192/26 (адрес сети четвёртой подсети)
11000000.10101000.00000001.11 111111 = 192.168.1.255/26 (широковещательный адрес четвёртой подсети)
Заключение
Таким способом можно разделить любую сеть на подсети, а cisco формулы расчета сетей и хостов помогут вам в этом деле.
IPv4 калькулятор подсетей
IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет протокола (IP). Первая широко используемая версия. Протокол описан в RFC 791 (сентябрь 1981 года), заменившем RFC 760 (январь 1980 года).
IPv4 использует 32-битные (четырёхбайтные) адреса, ограничивающие адресное пространство 4 294 967 296 (2 32 ) возможными уникальными адресами.
Традиционной формой записи IPv4 адреса является запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками. Через дробь указывается длина маски подсети.
IP-адрес состоит из двух частей: номера сети и номера узла. В случае изолированной сети её адрес может быть выбран администратором из специально зарезервированных для таких сетей блоков адресов (10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16), так же согласно RFC 6598 для использования в качестве адресов для CGN (Carrier-Grade NAT) рекомендована подсеть 100.64.0.0/10. Если же сеть должна работать как составная часть Интернета, то адрес сети выдаётся провайдером либо региональным интернет-регистратором (Regional Internet Registry, RIR). Согласно данным на сайте IANA, существует пять RIR: ARIN, обслуживающий Северную Америку, а также Багамы, Пуэрто-Рико и Ямайку; APNIC, обслуживающий страны Южной, Восточной и Юго-Восточной Азии, а также Австралии и Океании; AfriNIC, обслуживающий страны Африки; LACNIC, обслуживающий страны Южной Америки и бассейна Карибского моря; и RIPE NCC, обслуживающий Европу, Центральную Азию, Ближний Восток. Региональные регистраторы получают номера автономных систем и большие блоки адресов у IANA, а затем выдают номера автономных систем и блоки адресов меньшего размера локальным интернет-регистраторам (Local Internet Registries, LIR), обычно являющимся крупными провайдерами. Номер узла в протоколе IP назначается независимо от локального адреса узла. Маршрутизатор по определению входит сразу в несколько сетей. Поэтому каждый порт маршрутизатора имеет собственный IP-адрес. Конечный узел также может входить в несколько IP-сетей. В этом случае компьютер должен иметь несколько IP-адресов, по числу сетевых связей. Таким образом, IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.
Есть два способа определения того, сколько бит отводится на маску подсети, а сколько — на IP-адрес. Изначально использовалась классовая адресация (INET), но со второй половины 90-х годов XX века она была вытеснена бесклассовой адресацией (CIDR), при которой количество адресов в сети определяется маской подсети.
- адрес сети = IP.любого_компьютера_этой_сети AND MASK (адрес сети позволяет определить, что компьютеры в одной сети)
- широковещательный адрес сети = IP.любого_компьютера_этой_сети OR NOT(MASK) (широковещательный адрес сети воспринимается всеми компьютерами сети как дополнительный свой адрес, то есть пакет на этот адрес получат все хосты сети как адресованные лично им. Если на сетевой интерфейс хоста, который не является маршрутизатором пакетов, попадёт пакет, адресованный не ему, то он будет отброшен).
Запись IP-адресов с указанием через слэш маски подсети переменной длины также называют CIDR-адресом в противоположность обычной записи без указания маски, в операционных системах типа UNIX также именуемой INET-адресом.
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов: если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast). Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, в сети 192.168.5.0 с маской 255.255.255.0 пакет с адресом 192.168.5.255 доставляется всем узлам этой сети. Такая рассылка называется широковещательным сообщением (direct broadcast).
IP-адрес называют статическим (постоянным, неизменяемым), если он назначается пользователем в настройках устройства, либо назначается автоматически при подключении устройства к сети и не может быть присвоен другому устройству.
IP-адрес называют динамическим (непостоянным, изменяемым), если он назначается автоматически при подключении устройства к сети и используется в течение ограниченного промежутка времени, указанного в сервисе назначавшего IP-адрес (DHCP).
- DHCP (RFC 2131) — наиболее распространённый протокол настройки сетевых параметров.
- BOOTP (RFC 951) — простой протокол настройки сетевого адреса, обычно используется для бездисковых станций.
- IPCP (RFC 1332) в рамках протокола PPP (RFC 1661).
- Zeroconf (RFC 3927) — протокол настройки сетевого адреса, определения имени, поиск служб.
- RARP (RFC 903) Устаревший протокол, использующий обратную логику (из аппаратного адреса — в логический) популярного и поныне в широковещательных сетях протокола ARP. Не поддерживает распространения информации о длине маски (не поддерживает VLSM).
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
- 127.0.0.0/8 — используется для коммуникаций внутри хоста.
- 169.254.0.0/16 — используется для автоматической настройки сетевого интерфейса в случае отсутствия DHCP (за исключением первой и последней /24 подсети).
IP калькулятор
Калькулятор производит расчет адреса сети IPv4, широковещательного адреса, ip-адрес первого узла, ip-адрес последнего узла, количество узлов в заданной сети, маску подсети и инверсию маски (wildcard mask).
Данные представлены в десятичной и двоичных системах исчисления.
При построении сети, классы подсетей выбираются исходя из предполагаемого количества узлов в компьютерной сети. Если изначально выбрана подсеть вмещающая малое количество узлов (например, класс С c маской 255.255.255.0), при большом росте компьютерной сети часто приходится менять подсеть и маску подсети, чтобы не усложнять адресацию.
И наоборот, если изначально выбрана подсеть включающая в себя огромное количество хостов (например, класса А с маской 255.0.0.0), то при возникновении в компании филиальной сети, приходится сжимать подсети чтобы выделять подсети под филиалы.
Для того, чтобы рассчитать сетевые параметры, укажите IP-адрес хоста и маску подсети.
Справочная информация для IPv4:
Адреса зарезервированные для особых целей:
Подсеть | Назначение |
---|---|
0.0.0.0/8 | Адреса источников пакетов «этой» («своей») сети, предназначены для локального использования на хосте при создании сокетов IP. Адрес 0.0.0.0/32 используется для указания адреса источника самого хоста. |
10.0.0.0/8 | Для использования в частных сетях. |
127.0.0.0/8 | Подсеть для коммуникаций внутри хоста. |
169.254.0.0/16 | Канальные адреса; подсеть используется для автоматического конфигурирования адресов IP в случает отсутствия сервера DHCP. |
172.16.0.0/12 | Для использования в частных сетях. |
100.64.0.0/10 | Для использования в сетях сервис-провайдера. |
192.0.0.0/24 | Регистрация адресов специального назначения. |
192.0.2.0/24 | Для примеров в документации. |
192.168.0.0/16 | Для использования в частных сетях. |
198.51.100.0/24 | Для примеров в документации. |
198.18.0.0/15 | Для стендов тестирования производительности. |
203.0.113.0/24 | Для примеров в документации. |
240.0.0.0/4 | Зарезервировано для использования в будущем. |
255.255.255.255 | Ограниченный широковещательный адрес. |
Зарезервированные адреса, которые маршрутизируются глобально.
Подсеть | Назначение |
---|---|
192.88.99.0/24 | Используются для рассылки ближайшему узлу. Адрес 192.88.99.0/32 применяется в качестве ретранслятора при инкапсуляции IPv6 в IPv4 (6to4) |
224.0.0.0/4 | Используются для многоадресной рассылки. |
Маски и размеры подсетей
Маска подсети | Префикс, бит | Количество подсетей | Количество хостов | Количество адресов | Класс подсети |
---|---|---|---|---|---|
128.0.0.0 | /1 | 2147483646 | 2147483648 | А | |
192.0.0.0 | /2 | 1073741822 | 1073741824 | А | |
224.0.0.0 | /3 | 536870910 | 536870912 | А | |
240.0.0.0 | /4 | 268435454 | 268435456 | А | |
248.0.0.0 | /5 | 134217726 | 134217728 | А | |
252.0.0.0 | /6 | 67108862 | 67108864 | А | |
254.0.0.0 | /7 | 33554430 | 33554432 | А | |
255.0.0.0 | /8 | 16777214 | 16777216 | А | |
255.128.0.0 | /9 | 8388606 | 8388608 | B | |
255.192.0.0 | /10 | 4194302 | 4194304 | B | |
255.224.0.0 | /11 | 2097150 | 2097152 | B | |
255.240.0.0 | /12 | 1048574 | 1048576 | B | |
255.248.0.0 | /13 | 524286 | 524288 | B | |
255.252.0.0 | /14 | 262142 | 262144 | B | |
255.254.0.0 | /15 | 131070 | 131072 | B | |
255.255.0.0 | /16 | 65534 | 65536 | B | |
255.255.128.0 | /17 | 2 | 32766 | 32768 | C |
255.255.192.0 | /18 | 4 | 16382 | 16384 | C |
255.255.224.0 | /19 | 8 | 8190 | 8192 | C |
255.255.240.0 | /20 | 16 | 4094 | 4096 | C |
255.255.248.0 | /21 | 32 | 2046 | 2048 | C |
255.255.252.0 | /22 | 64 | 1022 | 1024 | C |
255.255.254.0 | /23 | 128 | 510 | 512 | C |
255.255.255.0 | /24 | 256 | 254 | 256 | C |
255.255.255.128 | /25 | 2 | 126 | 128 | C |
255.255.255.192 | /26 | 4 | 62 | 64 | C |
255.255.255.224 | /27 | 8 | 30 | 32 | C |
255.255.255.240 | /28 | 16 | 14 | 16 | C |
255.255.255.248 | /29 | 32 | 6 | 8 | C |
255.255.255.252 | /30 | 64 | 2 | 4 | C |
255.255.255.254 | /31 | 2* | 2 | C | |
255.255.255.255 | /32 | 1* | 1 | C |