|
|
(не показаны 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
| |
− |
| |
− | Признаться ни разу в жизни не приходилось встречаться с последним сценарием применения. Это какие-то жутко специфические должны
| |