пятница, 6 марта 2009 г.

Linux, Сетевые маски

Вротмненоги!
Кажется я более менее разобрался в сетевых масках. Осталось понять с чем их едят =)

Поэтому сейчас вас ожидает курс молодого бойца по предмету "Сетевые маски" для тех, кто еще не понял как их высчитывать.
Многабуков - запаситесь чаем ;)

Значит сетевая маска (netmask) это такая штука, которая позволяет разделить сеть на подсети для более эффективного их использования.

Начнем с простой и популярной маски для сети класса С:
Сеть \ Маска
192.168.0.0
255.255.255.0

Итак, это сеть компов с адресами от 192.168.0.0 до 192.168.0.255, как несложно догадаться. Сеть, в которой 192.168.0.0 это адрес сети (network), а 192.168.0.255 широковещательный адрес (broadcast). Пример простой, повсеместно использующийся, потому всем понятный.

Усложним задачу:
Сеть \ Маска
192.168.0.0
255.255.255.128

Ага! А вот это уже ДВЕ подсети:
от 192.168.0.0 (network1) до 192.168.0.127 (broadcast1) первая,
и от 192.168.0.128 (network2) до 192.168.0.255 (broadcast2) вторая.

При этом адреса сети и широковещательный - зарезервированы и не подлежат использованию.

Еще усложним задачу:
Сеть \ Маска
192.168.0.0
255.255.255.192

Это четыре подсети:
от 192.168.0.0 (network1) до 192.168.0.63 (broadcast1) первая,
от 192.168.0.64 (network2) до 192.168.0.127 (broadcast2) вторая.
от 192.168.0.128 (network3) до 192.168.0.191 (broadcast3) третья,
и от 192.168.0.192 (network4) до 192.168.0.255 (broadcast4) четвертая.

Как так получается и как узнать кол-во подсетей по маске? Очень просто - надо отнять размер маски от 256 и вы получите размер одной подсети (кол-во подсетей при этом надо считать в голове).

Маска \ размер подсети:
255.255.255.0 -- 256-0 = 256 компов
255.255.255.128 -- 256-128 = 128 компов
255.255.255.192 -- 256-192 = 64 компа
255.255.255.224 -- 256-224 = 32 компов
255.255.255.240 -- 256-240 = 16 компов
255.255.255.248 -- 256-248 = 8 компов
255.255.255.252 -- 256-252 = 4 компа
255.255.255.254 -- 256-254 = 2 компа
255.255.255.255 -- 256-255 = 1 комп
(вроде нигде не ошибся =/)

Маска, как видите, меньше 128 не бывает, потому что кол-во подсетей должно быть кратным 256. Т.е. маска 192.168.0.64 обозначала бы 192 компа, а 256 ровно на 192 че-то как-то не делится :)

Запишем те же маски в том же порядке, но в виде двоичной записи:
255.255.255.0 -- 11111111.11111111.11111111.00000000
255.255.255.128 -- 11111111.11111111.11111111.10000000
255.255.255.192 -- 11111111.11111111.11111111.11000000
255.255.255.224 -- 11111111.11111111.11111111.11100000
255.255.255.240 -- 11111111.11111111.11111111.11110000
255.255.255.248 -- 11111111.11111111.11111111.11111000
255.255.255.252 -- 11111111.11111111.11111111.11111100
255.255.255.254 -- 11111111.11111111.11111111.11111110
255.255.255.255 -- 11111111.11111111.11111111.11111111

Видали фишку? Единички прибавляются по одной слева-направо. А теперь самое интересное, что будет если их посчитать:
255.255.255.0 -- 24
255.255.255.128 -- 25
255.255.255.192 -- 26
255.255.255.224 -- 27
255.255.255.240 -- 28
255.255.255.248 -- 29
255.255.255.252 -- 30
255.255.255.254 -- 31
255.255.255.255 -- 32

Получатся числа, которые часто можно встретить в записях адресов. И значат эти числа простую вещь - кол-во единичек слева направо в маске.
Т.е. зная это число и умея преобразовывать в уме двоичные записи в десятичные - можно вычислить маску. Вот примеры:
8 -- 255.0.0.0
13 -- 255.248.0.0
15 -- 255.254.0.0
18 -- 255.255.192.0

т.е. самый первый пример можно записать как, сеть \ маска:
192.168.0.0 \ 24

где 24 это: 11111111.11111111.11111111.00000000 или 255.255.255.0

Вот такая арифметика ^_^

Ах, да, вот два нюанса:

1) Такие маски как 255.255.192.128 или 255.128.224.0 не допускаются. Т.е. если какое-то число в маске не равно 255., то все остальные числа в маске за ним должны быть равны 0. Т.е. касательно этих двух примеров возможны лишь маски: 255.255.192.0 и 255.128.0.0 соответственно

2) Использовать маску 255.255.255.254 смысла нет, так как это 2 компа, и оба адреса зарезервированы, один под сеть, второй как широковещательный. По крайней мере я так понял

Если вам помогла эта статья - оставьте комментарий! Они доступны даже не зарегистрированным пользователям.

1 комментарий:

Евгений Медведев комментирует...

Trenar ты писал:
Маска \ размер подсети:
255.255.255.0 -- 256-0 = 256 компов
255.255.255.128 -- 256-128 = 128 компов
255.255.255.192 -- 256-192 = 64 компа
255.255.255.224 -- 256-224 = 32 компов
255.255.255.240 -- 256-240 = 16 компов
255.255.255.248 -- 256-248 = 8 компов
255.255.255.252 -- 256-252 = 4 компа
255.255.255.254 -- 256-254 = 2 компа
255.255.255.255 -- 256-255 = 1 комп
(вроде нигде не ошибся =/)

Отвечаю, что ты не совсем прав.
255.255.255.255 - 1 хост
255.255.255.254 - 2 хоста
255.255.255.252 - 2 хоста
255.255.255.248 - 6 хостов
255.255.255.240 - 14 хостов
255.255.255.224 - 30 хостов
255.255.255.192 - 62 хоста
255.255.255.128 - 126 хостов
255.255.255.0 - 254 хоста

Происходит это от того что 1 адрес из сабнета отдается на адрес самого сабнета, и 1 адрес - широковещательный адрес для данного сабнета. Поэтому реально из диапазона остается на 2 адреса меньше, которое могут быть назначены компам. :)
Подробнее на cisco.com