пятница, 7 февраля 2014 г.

Сетевая математика. Деление на подсети.

С самого начала хочу обратить внимание на тот факт, что данное статья не является теоретическим материалом по VLSM, это всего лишь более простой способ расчета. Прежде чем   знакомиться с ним, нужно понимать теорию по данному вопросу и быть готовым в любой момент проверить полученный результат в двоичной форме.
Так вот, для того чтобы сдать экзамен CCNA нужно уметь рассчитывать подсети. Это занятие, само по себе, трудно назвать увлекательным. Особенно когда не получается. Залог успеха в данном  мероприятии - знание степеней 2-ки от 0 до 12. На экзамене больше не понадобится, а в большинстве реальных ситуаций этого будет даже много. Еще нужно знать некоторые закономерности IP - адреса и маски подсети.

Меня с этими закономерностями познакомил один, в прямом смысле этого слова, "бородатый админ", который сопровождал привезенный нам на контору CISCO-роутер. Занося в серверную новую железяку, он застал меня за расчетом подстей. Классика жанра: адреса  и маски в бинарной форме, огромное количество изведенной бумаги... В общем, все плохо... Мне было предложено аккуратно все собрать и отправить в урну. После этого мне был показан "мастер-класс" по расчету подсетей и масок. Этот способ позволяет рассчитать подсети в уме... 

Прежде чем начать считать сети и маски, нужно хорошо запомнить небольшую таблицу степеней 2-ки (Таблица 1). 
Таблица 1
Еще нужно помнить вот такую математику ( Таблица 2 и Таблица 3). Это в общем-то и посчитать можно, но лучше если это помнить... Это может сэкономить время на экзамене.
Таблица 2
Таблица 3
Кроме того, нужно помнить что маска сети, с значением отличным от 0 или 255 указывает на разделяемый октет, а ее значение указывает "шаг", с которым будут меняться адреса подсетей в данном октете. Т.е. нет необходимости переводить маску в двоичную систему исчисления, для того чтобы вычислить количество заимствованных бит для адресации подсетей и количество оставшихся бит для адресации узлов. Достаточно просто вычесть из 256 значение маски.
Пример:
Есть адрес сети класса С 192.168.5.0 / 255.255.255.0 деленной на подсети с маской 255.255.255.224
Для того чтобы рассчитать "шаг" адресации нужно из 256 вычесть 224

256 - 224 = 32

Это и есть "шаг" и, в тоже время, количество адресов в данной подсети. Необходимо помнить что количество адресов, которые могут быть назначены узлам в данной подсети меньше на 2.  Один из которых - это адрес подсети, а второй - широковещательный адрес. К тому же, рассчитанный "шаг" указывает на количество бит используемых для адресации в пределах подсети. В данном случае 32 = 2^5.  Т.е. в четвертом октете заимствованы 3 бита для адресов подсетей и 5 бит остается для адресации узлов. Имея такую информацию можно легко рассчитать префикс сети.

Вот так будут выглядеть адреса подстетей, рассчитанные с использование значения "шага" равным 32
192.168.5./ 255.255.255.224  -    192.168.5.31 / 255.255.255.224  
192.168.5.32 / 255.255.255.224 -   192.168.5.63 / 255.255.255.224
192.168.5.64 / 255.255.255.224 -   192.168.5.95 / 255.255.255.224
192.168.5.96 / 255.255.255.224 -   192.168.5.127 / 255.255.255.224
192.168.5.128 / 255.255.255.224 - 192.168.5.159 / 255.255.255.224
192.168.5.160 / 255.255.255.224 - 192.168.5.191 / 255.255.255.224
192.168.5.192 / 255.255.255.224 - 192.168.5.223 / 255.255.255.224
192.168.5.224 / 255.255.255.224 - 192.168.5.255 / 255.255.255.224

Так как адресация начинается с 0, то инкрементируя адрес с использованием значения "шага" получаем следующий адрес сети.
Для того чтобы зная "шаг" вычислить сколько получится подсетей, необходимо 256 разделить на "шаг"

256 / 32 = 8

Если вместо маски указан префикс, то все еще проще. В случае с маской 255.255.255.224 префикс выглядел бы как /27.  В это случае придется вооружится знанием степеней 2-ки.
Стандартное количество бит в префиксе для сети класса С - /24, максимальное количество бит в маске 32.
Количество адресов в подсети 2 ^(32 - 27) = 2 ^5 = 32
Количество подсетей 2 ^(27 - 24) = 2 ^3 = 8

Т.е. из одной сети класа С 192.168.5.0/255.255.255.0  получается 8 подсетей по 32 адреса ( 30  из которых можно назначить узлам) если использовать маску 255.255.255.224 или префикс /27.

Немного иначе обстоят дела с сетью класса В. Общие принципы расчета остаются прежними.  В тоже время, когда речь ведется о расчете подсетей в пределах сети класса В, нужно быть предельно внимательным, так как именно в этом случае может возникнуть возможность для "вопроса с подвохом". По крайней мере, две таких возможности:
1. 4-й октет адреса равный 0 не всегда указывает на адрес подсети;
2. 4-й октет адреса равный 255 не всегда указывает на широковещательный адрес;
Это обусловлено тем, что адрес узла начинается в третьем октете, и если в четвертом октете 0 (все биты 4-го октета установлены в 0 ) или 255 (все биты 4-го октета установлены в 1 ), то это не означает на 100%,  что в третьем октете, в части адреса используемой для адресации узлов,  тоже самое.  Так что если в вопросе просят указать адреса сетей или широковещательные адреса, и если среди вариантов есть разделенная сеть класса В, то нужно сразу начинать подозревать создателей экзамена в подвохе. Хотя более правильным будет подозревать их в этом с самого начала экзамена, с самого первого вопроса...

Пример:
Есть адрес сети класса В 172.16.0.0 деленная на подсети с маской 255.255.240.0
Для того чтобы рассчитать "шаг" адресации нужно из 256 вычесть 240

256 - 240 = 16

Это и есть "шаг", но в отличии от предыдущего примера с сетью класса С , это значение не является количеством адресов в данной подсети. Это обусловлено тем, что разделение происходит в третьем октете, и еще есть четвертый октет, значения которого может меняться от 0 до 255 (всего 256 возможных вариантов). Для того, чтобы рассчитать количество  адресов в подсети, нужно "шаг" ( в нашем случае 16 ) умножить на 256. Звучит угрожающе, и кажется, что не обойтись без калькулятора, но в действительности это всего-лишь 4 раза по 1024, что уже не так уж страшно.

256*16 = 1024 * 4 = 4096

Не забываем о том, что количество адресов, которые могут быть назначены узлам в данной подсети меньше на 2.  Один из которых - это адрес подсети, а второй - широковещательный адрес. К тому же, рассчитанный "шаг" указывает на количество бит данного октета, используемых для адресации в пределах подсети. В данном случае 16 = 2^4.  Т.е. в третьем октете заимствованы 4 бита для адресов подсетей и 4 бита третьего октета для адресации узлов В данном случае, это не полное количество бит, используемое для адресации внутри подсети,  так как есть еще и четвертый октет с его 8-и битами.

Вот так будут выглядеть адреса подстетей, рассчитанные с использование значения "шага" равным 16

172.16.0.0 / 255.255.240.0  -    172.16.15.255 / 255.255.240.0
172.16.16.0 / 255.255.240.0 -   172.16.31.255 / 255.255.240.0  
172.16.32.0 / 255.255.240.0 -   172.16.47.255 / 255.255.240.0  
172.16.48.0 / 255.255.240.0 -   172.16.63.255 / 255.255.240.0  
172.16.64.0 / 255.255.240.0 -   172.16.79.255 / 255.255.240.0  
172.16.80.0 / 255.255.240.0 -   172.16.95.255 / 255.255.240.0  
172.16.96.0 / 255.255.240.0 -   172.16.111.255 / 255.255.240.0   
172.16.112.0 / 255.255.240.0 - 172.16.127.255 / 255.255.240.0    
172.16.128.0 / 255.255.240.0 - 172.16.143.255 / 255.255.240.0
172.16.144.0 / 255.255.240.0 - 172.16.159.255 / 255.255.240.0
172.16.160.0 / 255.255.240.0 - 172.16.175.255 / 255.255.240.0
172.16.176.0 / 255.255.240.0 - 172.16.191.255 / 255.255.240.0
172.16.192.0 / 255.255.240.0 - 172.16.207.255 / 255.255.240.0
172.16.208.0 / 255.255.240.0 - 172.16.223.255 / 255.255.240.0
172.16.224.0 / 255.255.240.0 - 172.16.239.255 / 255.255.240.0
172.16.240.0 / 255.255.240.0 - 172.16.255.255 / 255.255.240.0    

Тоже самое, но  с использованием префикса. В случае с маской 255.255.240.0 префикс выглядел бы как /20.  Снова вооружаемся знанием степеней 2-ки.
Стандартное количество бит в префиксе для сети класса В - /16, максимальное количество бит в маске 32.

Количество адресов в подсети 2 ^(32 - 20) = 2 ^12 = 4096
Количество подсетей 2 ^(20 - 16) = 2 ^4 = 16

Т.е. из одной сети класа В 172.16.0.0 / 255.255.0.0  получается 16 подсетей по 4096 адресов ( 4094 из которых можно назначить узлам) если использовать маску 255.255.240.0 или префикс /20.

В общем все не очень-то сложно. Если нужно просто "нарезать" подсети исходя из выдвигаемых требований к количеству узлов или сетей.  Но не нужно расслабляться. Таких вопросов будет не так уж много. Создатели экзамена не упустят возможности подловить нас на чем-нибудь не слишком очевидном. Для того чтобы не попасться на уловки, нужно постараться предусмотреть все или, хотя бы, большую часть возможных каверз.

Первое  о чем не стоит забывать это о том, что реальное доступное к использованию количество адресов всегда меньше на 2 от числа отсекаемого маской или префиксом. Адрес сети и широковещательный адрес нельзя назначать узлам сети.

Второе о  чем следует помнить - это наличие в CISCO CLI команды "ip subnet-zero", которая позволяет использовать первую и последнюю подсети. Как правило, в таких случаях использование данной команды явно указывается в  тексте вопроса. Но все равно не стоит об этом забывать.

Третье что можно предположить - это более короткие префиксы ( маски меньшего размера ) в цепочке сетей, которую нужно продолжить. Т.е. нужно выбрать адресацию для новой сети. Для примера приведены несколько сетей с префиксом, например, /28, а последняя префиксом, например, /27. В заданий будет требоваться выбрать адресацию для следующей сети.  Как правило в таких случаях на автомате выбирается вариант ответа который не учитывает размер последней сети из примера.
Пример того как может выглядеть последовательность сетей на схеме

192.168.104.0/28
192.168.104.16/28
192.168.104.32/28
192.168.104.48/28
192.168.104.64/27

Возможный варианты ответов,  два из которых могут выглядеть примерно так

192.168.104.80/28
192.168.104.96/28

В таком случае, если не обратить внимание на префикс последней сети, логичным будет выбрать 192.168.104.80/28, но из-за более короткого префикса 192.168.104.64/27, получается что адреса накладываются, что неприемлемо. В таком случае правильный ответ 192.168.104.96/28.

Последним предполагаемым каверзным вариантом может оказаться адреса подсетей  и широковещательные адреса для сетей класса В, разделенных в 3-и октете.  В задании может требоваться указать широковещательные адреса, и приведены варианты ответов часть из которых легко распознается как широковещательные адреса, а также два адреса которые могут выглядеть так: 

192.168.5.159 / 27

172.16.94.255 / 20

Так и тянет выбрать 172.16.94.255 / 20 в качестве широковещательного адреса, а это адрес узла. Из этих двух вариантов  192.168.5.159 / 27 является широковещательным адресом. 

Тоже самое, но вместо широковещательных адресов - адреса сети. Варианты ответов, часть из которых легко узнаются как адреса сети, а также два адреса которые могут выглядеть так: 

192.168.5.48 / 29

172.16.94.0 / 20

Опять хочется выбрать 172.16.94.0 / 20 в качестве адреса сети, а это опять адрес узла. Из этих двух вариантов  только 192.168.5.48 / 29 является адресом сети. 
Других вариантов пока не вижу. Буду очень признателен за идеи в данном направлении. Очень хочется, отдавая 250 американских монет за возможность сдать экзамен, хотя бы частично контролировать ситуацию на экзамене, а это возможно только в случае готовности ко большинству возможных вариантов развития событий.

Статья взята с отличного блога для будущих цисководов http://ccnastepbystep.blogspot.com
Не поленитесь, прочитайте. Очень полезно!

Комментариев нет:

Отправить комментарий