IP-адреса и маски — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
(Новая страница: «Маска и обратная маска Обычная сеть на 256 адресов: 192.168.0.0/24 IP-адрес. Десятичная запись …»)
 
 
(не показано 20 промежуточных версий этого же участника)
Строка 1: Строка 1:
Маска и обратная маска
+
'''Частные сети'''
 +
 
 +
10.0.0.0/8        10.0.0.0 - 10.255.255.255
 +
172.16.0.0/12    172.16.0.0 - 172.31.255.255
 +
192.168.0.0/16    192.168.0.0 - 192.168.255.255
 +
 
 +
 
 +
'''Маска'''
 +
 
 +
Существующая маска для IP адреса выросла из классового деления адресов, на заре эпохи IP:
 +
Класс A: 8 бит для номера сети 24 бита для номера хоста
 +
Класс B: 16 бит на сеть и 16 бит на хост
 +
Класс C: 24 бита на сеть и 8 бит на хост
  
  
Строка 5: Строка 17:
 
  IP-адрес. Десятичная запись        192        168        0          0
 
  IP-адрес. Десятичная запись        192        168        0          0
 
  IP-адрес. Двоичная запись          11000000  10101000    00000000  00000000
 
  IP-адрес. Двоичная запись          11000000  10101000    00000000  00000000
  Маска подсети. Двоичная запись      1111111    111111111  11111111  00000000
+
  Маска подсети. Двоичная запись      11111111  111111111  11111111  00000000
 
  Маска подсети. Десятичная запись    255        255        255        0
 
  Маска подсети. Десятичная запись    255        255        255        0
  
 +
IP-адрес состоит из 32 бит, поделенных на 4 части по 8 бит в каждой.<br/>
 +
Маска подсети также имеет длину 32 бита - она фактически шаблон, по которому определяется принадлежность адреса подсети. Там, где в маске стоят единицы, значение меняться не может, то есть часть 172.16.5 совершенно неизменна и она будет одинакова для всех хостов этой подсети, а та, где нули — варьируется.<br/>
 +
 +
То есть в примере выше 172.16.5.0/24 - это адрес сети, а хосты будут 172.16.5.1-172.16.5.254 (последний 255 — широковещательный), потому что 00000001 — это 1, а 11111110 — 254 (речь о последнем октете адреса).
 +
/24 означает, что длина маски 24 бита, то есть у нас идёт 24 единицы — неизменная часть и 8 нулей.<br/>
 +
 +
 +
Другой случай, когда маска у нас, например, 30 бит, а не 24.
  
IP-адрес состоит из 32 бит, поделенных на 4 части по 8 бит в каждой.
+
Наример есть сеть 172.16.2.4/30<br/>
Маска подсети также имеет длину 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 нулей.
+
IP-адрес. Десятичная запись       172         16         2           4
Другой случай, когда маска у нас, например, 30 бит, а не 24.
+
IP-адрес. Двоичная запись         10101100   00010000   00000010   00000100
К примеру 172.16.2.4/30. Распишем это так: IP-адрес. Десятичная запись 172 16 2 4
+
Маска подсети. Двоичная запись     11111111   11111111   11111111   11111100
IP-адрес. Двоичная запись 10101100 00010000 00000010 00000100
+
Маска подсети. Десятичная запись   255         255         255         252
Маска подсети. Двоичная запись 11111111 11111111 11111111 11111100
 
Маска подсети. Десятичная запись 255 255 255 252
 
  
  
Как видите, для этой подсети могут меняться только последние два бита. Последний октет может принимать следующие 4 значения:
+
Как видно, для этой подсети могут меняться только последние два бита. Последний октет может принимать следующие 4 значения:
 
  00000100 — адрес подсети (4 в десятичной системе)
 
  00000100 — адрес подсети (4 в десятичной системе)
 
  00000101 — адрес узла (5)
 
  00000101 — адрес узла (5)
 
  00000110 — адрес узла (6)
 
  00000110 — адрес узла (6)
 
  00000111 — широковещательный (7)
 
  00000111 — широковещательный (7)
Всё, что за пределами этого — уже другая подсеть
+
Всё, что за пределами этого — уже другая подсеть
 +
 
 +
 
 +
То есть теперь ясно, что маска подсети — это последовательность 32-х бит, где сначала идут единицы, означающие адрес подсети, потом идут нули, означающие адрес хоста. При этом чередоваться нули и единицы в маске не могут. То есть маска 11111111.11100000.11110111.00000000 невозможна
  
То есть теперь вам должно быть чуть-чуть понятно, что маска подсети — это последовательность 32-х бит, где сначала идут единицы, означающие адрес подсети, потом идут нули, означающие адрес хоста. При этом чередоваться нули и единицы в маске не могут чередоваться. То есть маска 11111111.11100000.11110111.00000000 невозможна
 
  
А что же такое обратная маска (wildcard)?
+
'''Обратная маска (wildcard)'''
Для подавляющего большинства админов и некоторых инженеров — это не более, чем инверсия обычной маски. То есть нули вначале задают адрес части, которая должна совпадать обязательно, а единицы наоборот свободную часть.
 
То есть на взятом нами первом примере, если вы хотите отфильтровать все хосты из подсети 172.16.5.0/24, то вы зададите правило в Access-листе:
 
…. 172.16.5.0 0.0.0.255
 
Потому что обратная маска будет выглядеть так:
 
  
 +
Для подавляющего большинства админов, обратная маска - это не более, чем инверсия обычной маски. То есть нули в начале задают адрес части, которая должна совпадать обязательно, а единицы наоборот свободную часть.<br/>
 +
То есть в вверхнем примере, если хотим отфильтровать все хосты из подсети 172.16.5.0/24, то в access-list задаём
 +
172.16.5.0 0.0.0.255
 +
Потому что обратная маска будет выглядеть так:
 
  00000000.00000000.00000000.11111111
 
  00000000.00000000.00000000.11111111
  
Во втором примере с сетью 172.16.2.4/30 обратная маска будет выглядеть так: 30 нулей и две единицы:
 
Обратная маска. Двоичная запись 00000000 00000000 00000000 00000011
 
Обратная маска. Десятичная запись 0 0 0 3
 
  
 +
Во втором примере с сетью 172.16.2.4/30 обратная маска будет выглядеть так - 30 нулей и две единицы:
 +
Обратная маска. Двоичная запись        00000000    00000000    00000000    00000011
 +
Обратная маска. Десятичная запись      0          0          0          3
 +
 +
Соответственно параметр в access-листе будет выглядеть так:
 +
172.16.2.4 0.0.0.3
  
Соответственно параметр в access-листе будет выглядеть так:
 
…. 172.16.2.4 0.0.0.3
 
Позже, когда вы съедите собаку на просчётах масок и обратных масок, вы запомните самые употребляемые цифры, количество хостов в той или иной маске, поймёте, что в описанных ситуациях последний октет обратной маски получается вычитанием из 255 цифры последнего октета обычной маски (255-252=3) и т.д. А пока нужно много трудиться и считать)
 
  
Но на самом деле обратная маска это несколько более богатый инструмент, здесь вы можете объединять адреса внутри одной подсети или даже объединять подсети, но самое главное отличие, вы можете чередовать нули и единицы. Это позволяет вам, например, отфильтровать определённый узел (или группу) в нескольких подсетях одной строкой.  
+
В описанных ситуациях последний октет обратной маски получается вычитанием из 255 цифры последнего октета обычной маски (255-252=3) и т.д.
 +
 
 +
Но на самом деле обратная маска - это несколько более богатый инструмент, им можно объединять адреса внутри одной подсети или даже объединять подсети, но самое главное отличие, можно чередовать нули и единицы. Это позволяет, например, отфильтровать определённый узел (или группу) в нескольких подсетях одной строкой.
 +
 
  
 
Пример 1
 
Пример 1
Дано: сеть 172.16.16.0/24
+
Дано: сеть 172.16.16.0/24
Надо: отфильтровать первые 64 адреса (172.16.16.0-172.16.16.63)
+
Надо: отфильтровать первые 64 адреса (172.16.16.0-172.16.16.63)
Решение: 172.16.16.0 0.0.0.63
+
Решение: 172.16.16.0 0.0.0.63
  
 
Пример 2
 
Пример 2
Дано: сети 172.16.16.0/24 и 172.16.17.0/24
+
Дано: сети 172.16.16.0/24 и 172.16.17.0/24
Надо: отфильтровать адреса из обеих сетей
+
Надо: отфильтровать адреса из обеих сетей
Решение: 172.16.16.0 0.0.1.255
+
Решение: 172.16.16.0 0.0.1.255
 +
 
 +
 
 +
Пара таблиц для понимания<br>
  
Пример 3
+
{| class="wikitable"
Дано: Сети 172.16.0.0-172.16.255.0
+
|-
Надо: отфильтровать хост с адресом 4 из всех подсетей
+
! CIDR !! SUBNET MASK !! WILDCARD MASK !! # OF IP ADDRESSES !! # OF USABLE IP ADDRESSES
Решение: 172.16.16.0 0.0.255.4
+
|-
 +
| /32 || 255.255.255.255 || 0.0.0.0 || 1 || 1
 +
|-
 +
| /31 || 255.255.255.254 || 0.0.0.1 || 2 || 2*
 +
|-
 +
| /30 || 255.255.255.252 || 0.0.0.3 || 4 || 2
 +
|-
 +
| /29 || 255.255.255.248 || 0.0.0.7 || 8 || 6
 +
|-
 +
| /28 || 255.255.255.240 || 0.0.0.15 || 16 || 14
 +
|-
 +
| /27 || 255.255.255.224 || 0.0.0.31 || 32 || 30
 +
|-
 +
| /26 || 255.255.255.192 || 0.0.0.63 || 64 || 62
 +
|-
 +
| /25 || 255.255.255.128 || 0.0.0.127 || 128 || 126
 +
|-
 +
| /24 || 255.255.255.0 || 0.0.0.255 || 256 || 254
 +
|-
 +
| /23 || 255.255.254.0 || 0.0.1.255 || 512 || 510
 +
|-
 +
| /22 || 255.255.252.0 || 0.0.3.255 || 1,024 || 1,022
 +
|-
 +
| /21 || 255.255.248.0 || 0.0.7.255 || 2,048 || 2,046
 +
|-
 +
| /20 || 255.255.240.0 || 0.0.15.255 || 4,096 || 4,094
 +
|-
 +
| /19 || 255.255.224.0 || 0.0.31.255 || 8,192 || 8,190
 +
|-
 +
| /18 || 255.255.192.0 || 0.0.63.255 || 16,384 || 16,382
 +
|-
 +
| /17 || 255.255.128.0 || 0.0.127.255 || 32,768 || 32,766
 +
|-
 +
| /16  || 255.255.0.0 || 0.0.255.255 || 65,536 || 65,534
 +
|-
 +
| /15 || 255.254.0.0 || 0.1.255.255 || 131,072 || 131,070
 +
|-
 +
| /14 || 255.252.0.0 || 0.3.255.255 || 262,144 || 262,142
 +
|-
 +
| /13 || 255.248.0.0 || 0.7.255.255 || 524,288 || 524,286
 +
|-
 +
| /12 || 255.240.0.0 || 0.15.255.255 || 1,048,576 || 1,048,574
 +
|-
 +
| /11 || 255.224.0.0 || 0.31.255.255 || 2,097,152 || 2,097,150
 +
|-
 +
| /10 || 255.192.0.0 || 0.63.255.255 || 4,194,304 || 4,194,302
 +
|-
 +
| /9 || 255.128.0.0 || 0.127.255.255 || 8,388,608 || 8,388,606
 +
|-
 +
| /8 || 255.0.0.0 || 0.255.255.255 || 16,777,216 || 16,777,214
 +
|-
 +
| /7 || 254.0.0.0 || 1.255.255.255 || 33,554,432 || 33,554,430
 +
|-
 +
| /6 || 252.0.0.0 || 3.255.255.255 || 67,108,864 || 67,108,862
 +
|-
 +
| /5 || 248.0.0.0 || 7.255.255.255 || 134,217,728 || 134,217,726
 +
|-
 +
| /4 || 240.0.0.0 || 15.255.255.255 || 268,435,456 || 268,435,454
 +
|-
 +
| /3 || 224.0.0.0 || 31.255.255.255 || 536,870,912 || 536,870,910
 +
|-
 +
| /2 || 192.0.0.0 || 63.255.255.255 || 1,073,741,824 || 1,073,741,822
 +
|-
 +
| /1 || 128.0.0.0 || 127.255.255.255 || 2,147,483,648 || 2,147,483,646
 +
|-
 +
| /0 || 0.0.0.0 || 255.255.255.255 || 4,294,967,296 || 4,294,967,294
 +
|}
 +
* /31 — это особый случай, описанный в RFC 3021, когда сети с этим типом маски подсети могут назначать два IP-адреса для соединения "точка-точка"
  
  Признаться ни разу в жизни не приходилось встречаться с последним сценарием применения. Это какие-то жутко специфические должны
+
{| class="wikitable"
 +
|-
 +
! !! SUBNET MASK !!  !! WILDCARD
 +
|-
 +
| 0 || 00000000 || 255 || 11111111
 +
|-
 +
| 128 || 10000000 || 127 || 01111111
 +
|-
 +
| 192 || 11000000 || 63 || 00111111
 +
|-
 +
| 224 || 11100000 || 31 || 00011111
 +
|-
 +
| 240 || 11110000 || 15 || 00001111
 +
|-
 +
| 248 || 11111000 || 7 || 00000111
 +
|-
 +
| 252 || 11111100 || 3 || 00000011
 +
|-
 +
| 254 || 11111110 || 1 || 00000001
 +
|-
 +
| 255 || 11111111 || 0 || 00000000
 +
|}

Текущая версия на 00:45, 16 марта 2024

Частные сети

10.0.0.0/8        10.0.0.0 - 10.255.255.255
172.16.0.0/12     172.16.0.0 - 172.31.255.255
192.168.0.0/16    192.168.0.0 - 192.168.255.255


Маска

Существующая маска для IP адреса выросла из классового деления адресов, на заре эпохи IP:

Класс A: 8 бит для номера сети 24 бита для номера хоста
Класс B: 16 бит на сеть и 16 бит на хост
Класс C: 24 бита на сеть и 8 бит на хост


Обычная сеть на 256 адресов: 192.168.0.0/24

IP-адрес. Десятичная запись         192        168         0          0
IP-адрес. Двоичная запись           11000000   10101000    00000000   00000000
Маска подсети. Двоичная запись      11111111   111111111   11111111   00000000
Маска подсети. Десятичная запись    255        255         255        0

IP-адрес состоит из 32 бит, поделенных на 4 части по 8 бит в каждой.
Маска подсети также имеет длину 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-list задаём

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


Пара таблиц для понимания

CIDR SUBNET MASK WILDCARD MASK # OF IP ADDRESSES # OF USABLE IP ADDRESSES
/32 255.255.255.255 0.0.0.0 1 1
/31 255.255.255.254 0.0.0.1 2 2*
/30 255.255.255.252 0.0.0.3 4 2
/29 255.255.255.248 0.0.0.7 8 6
/28 255.255.255.240 0.0.0.15 16 14
/27 255.255.255.224 0.0.0.31 32 30
/26 255.255.255.192 0.0.0.63 64 62
/25 255.255.255.128 0.0.0.127 128 126
/24 255.255.255.0 0.0.0.255 256 254
/23 255.255.254.0 0.0.1.255 512 510
/22 255.255.252.0 0.0.3.255 1,024 1,022
/21 255.255.248.0 0.0.7.255 2,048 2,046
/20 255.255.240.0 0.0.15.255 4,096 4,094
/19 255.255.224.0 0.0.31.255 8,192 8,190
/18 255.255.192.0 0.0.63.255 16,384 16,382
/17 255.255.128.0 0.0.127.255 32,768 32,766
/16 255.255.0.0 0.0.255.255 65,536 65,534
/15 255.254.0.0 0.1.255.255 131,072 131,070
/14 255.252.0.0 0.3.255.255 262,144 262,142
/13 255.248.0.0 0.7.255.255 524,288 524,286
/12 255.240.0.0 0.15.255.255 1,048,576 1,048,574
/11 255.224.0.0 0.31.255.255 2,097,152 2,097,150
/10 255.192.0.0 0.63.255.255 4,194,304 4,194,302
/9 255.128.0.0 0.127.255.255 8,388,608 8,388,606
/8 255.0.0.0 0.255.255.255 16,777,216 16,777,214
/7 254.0.0.0 1.255.255.255 33,554,432 33,554,430
/6 252.0.0.0 3.255.255.255 67,108,864 67,108,862
/5 248.0.0.0 7.255.255.255 134,217,728 134,217,726
/4 240.0.0.0 15.255.255.255 268,435,456 268,435,454
/3 224.0.0.0 31.255.255.255 536,870,912 536,870,910
/2 192.0.0.0 63.255.255.255 1,073,741,824 1,073,741,822
/1 128.0.0.0 127.255.255.255 2,147,483,648 2,147,483,646
/0 0.0.0.0 255.255.255.255 4,294,967,296 4,294,967,294
  • /31 — это особый случай, описанный в RFC 3021, когда сети с этим типом маски подсети могут назначать два IP-адреса для соединения "точка-точка"
SUBNET MASK WILDCARD
0 00000000 255 11111111
128 10000000 127 01111111
192 11000000 63 00111111
224 11100000 31 00011111
240 11110000 15 00001111
248 11111000 7 00000111
252 11111100 3 00000011
254 11111110 1 00000001
255 11111111 0 00000000