Часто спрашивают как перевести запись IP адреса с бесклассовой маршрутизацией типа 192.168.1.0/24 в адрес сети с маской 255.255.255.0. Еще чаще спрашивают как определить количество хостов в сети, зная ее маску. А очень просто :) Но сначала немного теории:
Во-первых формат типа 192.168.1.0/24RFC 1517.
Во-вторых все будем считать в двоичном формате, так что людям, незнакомым с двоичной логикой настоятельно рекомендую почитать какую-нибудь теорию во переводу чисел из десятичной в двоичну систуму и наоборот.
Пара значений IP адреса и маски собственно и определяет подсеть. Рассмотрим на примере:
Пусть имеется IP адрес 192.168.1.0 и маска подсети 255.255.255.0. В двоичном формате это выглядит так: называется CIDR (Classless Internet Domain Routing) или "Бесклассовая маршрутизация" и позволяет гибко управлять пространством IP-адресов, не используя жёсткие рамки классовой адресации. Спецификация описывается в документе
IP адрес: 11000000.10101000.00000001.Суть маски в том чтобы закрыть (поэтому и маска) ту часть адреса, которая неизменна и определяет подсеть. Закрывают неизменную часть единичные биты. То есть, если посмотреть на наши адреса, то получается, что может меняться только последний разряд, а первые 3 определеяют подсеть. А что из этого следует? А то, что в нашей только что определенной подсети "помещается" 254 хоста (уникальных адреса): 192.168.1.1 - первый, 192.168.1.254 - последний; 192.168.1.0 - определяет сеть, а 192.168.1.255 - Broadcast (широковещательный) адрес.00000000
маска : 11111111.11111111.11111111.00000000
С CIDR-ом еще проще: в 192.168.1.0/24 число 24 определяет количество единичных битов в маске, если считать слева направо. Посмотрим в двоичной с/с:
11111111.11111111.11111111.000что есть собственно 255.255.255.0 :) Как видите все просто - количество хостов можно посчитать очень быстро:00000
k=2(32-24)-2=254где 32 - всего битов в маске (4 разряда по 8 в каждом), 24 - понятно что. а 2 отнимается за счет бродкаст адреса и идентификатора сети.
Кстати, еще есть так называемая "обратная маска" - Wildcard mask, которая используется в списках доступа (ACL) сетевого оборудования Cisco. Но здесь мы ее рассматривать не будем :)

No comments:
Post a Comment