Subnetting. Всё что вы хотели знать о масках подсети ;) Но боялись ;)

Jun 08, 2009 18:28

По материалам форума http://www.sadikhov.com. Перевёл и дополнил. Решил, что на листочках этому не место, и оцифровал ;)
Пишу для себя, но кто хочет понять как считается "маска сети" может заглянуть


Для начала, посмотрим, что такое "маска сети".

Состоит она из четырёх октетов, по 8 бит, разделённых точкой.

255.255.255.128

Если перевести каждый октет в двоичную систему (можно столбиком но мы будем на калькуляторе)

то из нашей маски получится

11111111.11111111.11111111.10000000
                                   |________| - 7 нулей

чую, в глазах уже зарябило ;) но это ничего старшного, сложнее не будет.

Допустим, вам надо узнать, сколько свободных адресов будет в сети ограниченной этой маской. Нет ничего проще.
Считаем кол-во нулей с конца. Их тут 7 штук.

Возводим 2 в седьмую степень:
2^7=128
Получается 128 адресов, из которых надо вычесть адрес сети, броадкаст адрес, и адрес шлюза. Всего выходит 125 свободных адресов.

Пример:

Какой маской ограничивать сеть на 400 адресов?

Начинаем возводить 2 в степень пока результат не превысит требуемое кол-во даресов.

2^7=128 -мало
2^8=256 -мало
2^9=512 -достаточно

Теперь напишем маску:

11111111.11111111.11111110.00000000
                                  |__________| - 9 нулей

Теперь вооружившись калькулятором придадим этому всему привычный вид:
11111111=255
11111111=255
11111110=254
00000000=0

Итого, нужная нам маска - 255.255.254.0

Ещё пример:

Посчитать кол-во адресов для маски 255.255.224.0

11111111.11111111.11100000.00000000 -- 13 нулей

2^13=8192 адреса (если свободных адресов, то опять вычитаються броадкаст, шлюз и адрес сети)

Запись маски через слэш.

На большом кол-ве оборудования можно встретить записи типа 192.168.1.5/24
В ней содержаться сразу и ip адрес оборудования, и маска ограничивающая сеть. Расшифровываеться такая запись просто.
Если записать маску в двоичном виде, то 24 тут - кол-во единиц с её левой стороны. То есть:

/24=11111111.11111111.11111111.00000000=255.255.255.0
/25=11111111.11111111.11111111.10000000=255.255.255.128
/26=11111111.11111111.11111111.11000000=255.255.255.192

Как видите это не сложно. ;)

Наверно нужно сказать пару слов про перевод из двоичной системы в десятичную. Это пригодиться дальше. По началу не очень понятно, но если прочитать пару раз и посчитать несколько примеров ручкой, то вопросы должны рассосаться.

Итак:
чтобы перевести число из двоичной в десятичную систему исчисления, нужно представить двоичное число, как сумму степеней двойки с коэффицентами - числами.
Пример сейчас всё пояснит а я, сразу, хочу обратить внимание, что для удобства начинаю перевод с последнего числа, так как в масках последние числа - нули.
11110000=0*2^0+0*2^1+0*2^2+0*2^3+1*2^4+1*2^5+1*2^6+1*2^7=       жирным здесь отмечены, как видите, цифры из двоичного числа
=0+0+0+0+16+32+64+128=240

Ну, это чтоб вы понимали механнику процесса ;) На самом деле, для использования с масками достаточно запомнить такую последовательность:

128 64 32 16 8 4 2 1

Теперь смотрим октет который нужно переводить.

Например
11000000=128+64+0+0+0+0+0+0=192
11111110=128+64+32+16+8+4+2+0=254
11111100=128+64+32+16+8+0+0+0=248

Думаю, по примеру вполне ясно как происходит перевод в таком случае ;)

Нужно, опять же, для подсчёта кол-ва адресов в сети, и расчёта броадкаст адреса для неё.

Кол-во адресов считается так:

255.255.240.0

на конце у нас 0
0=00000000 - это 256 адресов.

Смотрим, какая единица у нас последняя в третьем октете, и вспоминаем какому числу она соответствует из указанной выше последовательности.

240 = 11110000

Четвёртая единица соответствует 16ти

Соответственно, кол-во адресов в этой сети будет 16*256=4096. (Уверяю, если проверить другим способом, результат сойдётся ;)

Пример расчёта броадкаст адреса:

Есть сеть 172.16.64.0/20. Необходимо вычислить для неё броадкаст адрес.

1. /20 = 11111111.11111111.11110000.00000000=255.255.240.0
2. Последняя единица в третьем октете соответствует 16ти.
3. Значит сеть делится на отрезки по 16 в третьем октете.
172.16.64.0       (64+16=80)
соответственно следуящая сеть будет 172.16.80.0 и последний (броадкаст) адрес в предыдущей сети будет 172.16.79.255

Расчёт первого и последнего свободного ip адреса в сети:

Найти первый и последний свободные ip адреса в сети 192.168.20.32/27. Шлюз занимает первый адрес в сети.

1. /27=11111111.11111111.11111111.11100000
2. Последняя единица соответствует 32ум следоватьельно, в сети по 32 адреса.

192.168.20.32 - адрес сети, адрес следующей сети будет 192.168.20.64

3. 192.168.20.63 - занят под броадкаст, 192.168.20.33 - под шлюз. Соответственно диапазон свободных Ip - 192.168.20.34-62

Обратная маска (wildcard)

Используеться в аксесс листах и других OSPFах ;)

Тут будет сразу пример ;)

Запретить доступ для сети 192.168.32.0/28

1. /28 это 11111111.11111111.11111111.11110000
2. Так как маска - обратная, здесь мы считаем не единицы, а нули ;) Всё по той же последовательности ;)
четыре последние нуля это 1+2+4+8=15 в остальных октетах нулей нет, так что и складывать нечего. результат - 0.0.0.15

Теперь конфигурируем ;)

access-list 1 deny 192.168.32.0 0.0.0.15
access-list 1 permit ip any any

и на интерфейсе роутера добавляем

ip access-group 1 out

;) Как то так ;)

networking

Previous post Next post
Up