#сеть
Помогите осознать значение /16. Или вот пример из книги: fe80::f00 = fe80:0000:0000:0000:0000:0000:0000:0f00 fe80::f00/64 = fe80:0000:0000:0000:****:****:****:**** = fe80::/64
Ответы
Ответ 1
Это записи так называемых бесклассовых сетей. 192.168.0.0 - это понятная для людей запись четырехбайтовых адресов протокола Internet версии 4. /16 - означает первые 16 бит = 2 байта в этой записи - маска подсети. Другие два байта описывают адрес конкретного узла в этой подсети (от 0.1 до 254.254). 192.168.0.0/24 уже значило бы подсеть 192.168.0 с адресами внутри нее от единицы до 254. fe80::f00 = fe80:0000:0000:0000:0000:0000:0000:0f00 fe80::f00/64 = fe80:0000:0000:0000:****:****:****:**** = fe80::/64 Приведенный выше пример показывает краткую нотацию адресов протокола Internet версии 6. Как видно их принято записывать в виде шестнадцатеричных октетов разделенных двоеточиями. Два идущих подряд двоеточия означают большую последовательность нулевых октетов (байтов). /64 означает то же самое что и в версии 4 - маску подсети.Ответ 2
Основывается эта радость на VLSM. Различают сеть (network, адрес сети), хост (host, адрес хоста) и маску сети (network mask), это разные три понятия. Маска по большому счету определяет границу между адресом сети и адресом хоста в этой сети. /16 это лишь длина маски, т.е. количество единичных бит слева (в скобках система счисления): /0 = 00000000.00000000.00000000.00000000(2) = 0.0.0.0(10) /1 = 10000000.00000000.00000000.00000000(2) = 128.0.0.0(10) ... /8 = 11111111.00000000.00000000.00000000(2) = 255.0.0.0(10) ... /16 = 11111111.11111111.00000000.00000000(2) = 255.255.0.0(10) ... /24 = 11111111.11111111.11111111.00000000(2) = 255.255.255.0(10) ... /32 = 11111111.11111111.11111111.11111111(2) = 255.255.255.255(10) В процессе наложения (битовое "и") маски на адрес (будь то сеть или хост) вы получаете адрес сети (именно сети). Т.е. в вашем случае, вы берете адрес 192.168.55.25 и маску 16-битной длины через битовое "и", получаете = 192.168.0.0 (ваша сеть). В десятичной системе: 192.168.55.25 & 255.255.0.0 = 192.168.0.0 В двоичной системе: 11000000.10101000.00110111.00011001 & 11111111.11111111.00000000.00000000 = 11000000.10101000.00000000.00000000 Вот как это работает. И используется это не в nmap для упрощения, а, например, в CIDR, не говоря уже о различных подсчетах и алгоритмах распределения адресного пространства. Что касается fe80::f00 = fe80:0000:0000:0000:0000:0000:0000:0f00 fe80::f00/64 = fe80:0000:0000:0000:****:****:****:**** = fe80::/64 Это действительно адрес в нотации IPv6. fe80 - это Link Local т.е. IP-адрес который может взаимодействовать только внутри локальной сети. /64 это также нотация CIDR аналогичная нотации в IPv4, которую я описал выше, только она несколько больше, так как IPv6 адрес = 128битам. Для Link-local: Минимальная длина маски - 10 (т.е. 10 неизменных бит с начала (слева)) fe80::/10 это диапазон fe80:0000:0000:0000:0000:0000:0000:0000 - febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff Для вашего случая: Т.е. для /64 первые 64 бита будут неизменными: fe80::/64 это диапазон fe80:0000:0000:0000:0000:0000:0000:0000 - fe80:0000:0000:0000:ffff:ffff:ffff:ffff Вот как-то так.
Комментариев нет:
Отправить комментарий