Маски подсети — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
(Новая страница: «Маска и обратная маска До сих пор мы без объяснения давали странный параметр вида 0.0.255.255,…»)
 
(Полностью удалено содержимое страницы)
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
Маска и обратная маска
 
До сих пор мы без объяснения давали странный параметр вида 0.0.255.255, подозрительно напоминающий маску подсети.
 
Немного сложная для понимания, но именно она — обратная маска — используется для определения хостов, которые подпадут под правило.
 
Чтобы понять что такое обратная маска, вы должны знать, что такое обычная.Начнём с самого простого примера.
 
  
Обычная сеть на 256 адресов: 172.16.5.0/24, например. Что означает эта запись?
 
А означает она ровно следующее
 
IP-адрес. Десятичная запись 172 16 5 0
 
IP-адрес. Двоичная запись 10101100 00010000 00000101 00000000
 
Маска подсети. Двоичная запись 11111111 11111111 11111111 00000000
 
Маска подсети. Десятичная запись 255 255 255 0
 
 
 
IP-адрес — это параметр длиною 32 бита, поделенный на 4 части, который вы привыкли видеть в десятичной форме.
 
Маска подсети также имеет длину 32 бита — она фактически шаблон, трафарет, по которому определяется принадлежность адреса подсети. Там, где в маске стоят единицы, значение меняться не может, то есть часть 172.16.5 совершенно неизменна и она будет одинакова для всех хостов этой подсети, а вот та, где нули — варьируется.
 
То есть во взятом нами примере 172.16.5.0/24 — это адрес сети, а хосты будут 172.16.5.1-172.16.5.254 (последний 255 — широковещательный), потому что 00000001 — это 1, а 11111110 — 254 (речь о последнем октете адреса). /24 означает, что длина маски 24 бита, то есть у нас идёт 24 единицы — неизменная часть и 8 нулей.
 
Другой случай, когда маска у нас, например, 30 бит, а не 24.
 
К примеру 172.16.2.4/30. Распишем это так: IP-адрес. Десятичная запись 172 16 2 4
 
IP-адрес. Двоичная запись 10101100 00010000 00000010 00000100
 
Маска подсети. Двоичная запись 11111111 11111111 11111111 11111100
 
Маска подсети. Десятичная запись 255 255 255 252
 
 
 
Как видите, для этой подсети могут меняться только последние два бита. Последний октет может принимать следующие 4 значения:
 
00000100 — адрес подсети (4 в десятичной системе)
 
00000101 — адрес узла (5)
 
00000110 — адрес узла (6)
 
00000111 — широковещательный (7)
 
Всё, что за пределами этого — уже другая подсеть
 
 
То есть теперь вам должно быть чуть-чуть понятно, что маска подсети — это последовательность 32-х бит, где сначала идут единицы, означающие адрес подсети, потом идут нули, означающие адрес хоста. При этом чередоваться нули и единицы в маске не могут чередоваться. То есть маска 11111111.11100000.11110111.00000000 невозможна
 
 
А что же такое обратная маска (wildcard)?
 
Для подавляющего большинства админов и некоторых инженеров — это не более, чем инверсия обычной маски. То есть нули вначале задают адрес части, которая должна совпадать обязательно, а единицы наоборот свободную часть.
 
То есть на взятом нами первом примере, если вы хотите отфильтровать все хосты из подсети 172.16.5.0/24, то вы зададите правило в Access-листе:
 
…. 172.16.5.0 0.0.0.255
 
Потому что обратная маска будет выглядеть так:
 
 
00000000.00000000.00000000.11111111
 
 
Во втором примере с сетью 172.16.2.4/30 обратная маска будет выглядеть так: 30 нулей и две единицы:
 
Обратная маска. Двоичная запись 00000000 00000000 00000000 00000011
 
Обратная маска. Десятичная запись 0 0 0 3
 
 
 
Соответственно параметр в access-листе будет выглядеть так:
 
…. 172.16.2.4 0.0.0.3
 
Позже, когда вы съедите собаку на просчётах масок и обратных масок, вы запомните самые употребляемые цифры, количество хостов в той или иной маске, поймёте, что в описанных ситуациях последний октет обратной маски получается вычитанием из 255 цифры последнего октета обычной маски (255-252=3) и т.д. А пока нужно много трудиться и считать)
 
 
Но на самом деле обратная маска — это несколько более богатый инструмент, здесь вы можете объединять адреса внутри одной подсети или даже объединять подсети, но самое главное отличие, вы можете чередовать нули и единицы. Это позволяет вам, например, отфильтровать определённый узел (или группу) в нескольких подсетях одной строкой.
 
 
Пример 1
 
Дано: сеть 172.16.16.0/24
 
Надо: отфильтровать первые 64 адреса (172.16.16.0-172.16.16.63)
 
Решение: 172.16.16.0 0.0.0.63
 
 
Пример 2
 
Дано: сети 172.16.16.0/24 и 172.16.17.0/24
 
Надо: отфильтровать адреса из обеих сетей
 
Решение: 172.16.16.0 0.0.1.255
 
 
Пример 3
 
Дано: Сети 172.16.0.0-172.16.255.0
 
Надо: отфильтровать хост с адресом 4 из всех подсетей
 
Решение: 172.16.16.0 0.0.255.4
 
 
Признаться ни разу в жизни не приходилось встречаться с последним сценарием применения. Это какие-то жутко специфические должны
 

Текущая версия на 19:00, 16 апреля 2014