По материалам форума
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
;) Как то так ;)