Так вот, для того чтобы сдать экзамен CCNA нужно уметь рассчитывать подсети. Это занятие, само по себе, трудно назвать увлекательным. Особенно когда не получается. Залог успеха в данном мероприятии - знание степеней 2-ки от 0 до 12. На экзамене больше не понадобится, а в большинстве реальных ситуаций этого будет даже много. Еще нужно знать некоторые закономерности IP - адреса и маски подсети.
Меня с этими закономерностями познакомил один, в прямом смысле этого слова, "бородатый админ", который сопровождал привезенный нам на контору CISCO-роутер. Занося в серверную новую железяку, он застал меня за расчетом подстей. Классика жанра: адреса и маски в бинарной форме, огромное количество изведенной бумаги... В общем, все плохо... Мне было предложено аккуратно все собрать и отправить в урну. После этого мне был показан "мастер-класс" по расчету подсетей и масок. Этот способ позволяет рассчитать подсети в уме...
Прежде чем начать считать сети и маски, нужно хорошо запомнить небольшую таблицу степеней 2-ки (Таблица 1).
Таблица 1
Еще нужно помнить вот такую математику ( Таблица 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.0 / 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.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%, что в третьем октете, в части адреса используемой для адресации узлов, тоже самое. Так что если в вопросе просят указать адреса сетей или широковещательные адреса, и если среди вариантов есть разделенная сеть класса В, то нужно сразу начинать подозревать создателей экзамена в подвохе. Хотя более правильным будет подозревать их в этом с самого начала экзамена, с самого первого вопроса...
В общем все не очень-то сложно. Если нужно просто "нарезать" подсети исходя из выдвигаемых требований к количеству узлов или сетей. Но не нужно расслабляться. Таких вопросов будет не так уж много. Создатели экзамена не упустят возможности подловить нас на чем-нибудь не слишком очевидном. Для того чтобы не попасться на уловки, нужно постараться предусмотреть все или, хотя бы, большую часть возможных каверз.
Первое о чем не стоит забывать это о том, что реальное доступное к использованию количество адресов всегда меньше на 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
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
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 американских монет за возможность сдать экзамен, хотя бы частично контролировать ситуацию на экзамене, а это возможно только в случае готовности ко большинству возможных вариантов развития событий.
36 комментариев:
Спасибо
просто офигительно все расписано, спасибо
>>Т.е. из одной сети класа В 172.16.0.0 / 255.255.0.0 получается 16 подсетей по 4096 адресов
В маске опечатка?
У сетей класса В маска 255.255.0.0 по умолчанию, а дальше написано >> если использовать маску 255.255.240.0 или префикс /20.
Спасибо, очень большое!!!
Огромное спасибо, давно пытался понять как выбирать маски подсетей, и смутно понимал для чего они. Теперь всё предельно ясно и Для чего нужно, и Самое главное как делить сети :)
Молодец! Спасибо за толковое изложение!
непонял зачем мешать в кучу CIDR и классовую адресацию
Это не научная статья описывающая идею CIDR, а небольшое практическое руководство для тех кто собирается сдавать экзамен CCNA и готовится отвечать на вопросы по теме "Subneting". Может быть где-то и не выдержал "чистоту идеи", главное чтобы было понятно...
Молодец, автору 5+. Как раз готовлюсь к сдаче CCNA. Очень помог :)
Прежде всего большое спасибо. Пролило свет на многое. Однако для себя актуальным оставил один вопрос. Как можно проще рассчитывать префикс маски. Ведь изначально обычно дается маска с префиксом. Например 192.168.0.1/24. Как узнать что это 255.255.255.0?
Тут не обойтись без двоичной математики. Маска состоит из 4 октетов. Максимальное десятичное значение 255. Это наши целые октеты. Т.е. пусть префикс будет не 24, а, например 26. В таком случае у нас 3-и октета заполненных единицами (24 бита), а в последнем только 7 и 6 биты (если считать начиная с 0 ) установлены в 1. Это 128(2^7) + 64(2^6) = 192. Вот и вся математика. Значения 2 в степени от 0 до 7 нужно знать наизусть.
А если наоборот из маски префикс, то нужно разложить на слагаемые. Слагаемые могут быть только равны одному из степеней 2, начиная с самого большего 128 ( 128,64,32,16,8,4,2,0). Т.е. если маска, например 255.255.255.248, то получаем 248=128(2^7)+64(2^6)+32(2^5)+16(2^4)+8(2^3). При этом только подряд. После 128, может быть только 64, за ним 32 и т.д. В маске есть логика, биты принимают значение 1 только подряд. От большего к меньшему. Соответственно посчитать какой из битов установлен в 1 можно в уме. Получается 7,6,5,4 и 3 биты установлены в 1. Соответственно получаем префикс (3*8)+ 5 = 29.
Огромнейшее спасибо!!!!!!!
Первый вариант очень даже ничего. Спасибо. Только попривыкнуть к нему надо:)
Гуд объяснил, до этого как то не приходило в голову расчитывать шаг в десятичной) Оказ проще некуда)
спасибо огромное.. все предельно ясно.
Спасибо! Теперь делю сети на раз!!!
парни помогайте поделите мне пожалуйста сеть
15,152,15,0\24 на пять под ситей )))
очень срочно надо я на экзамене )
15.152.15.0 255.255.255.128 и четыре подсети с маской 255.255.255.224 начиная с 15.152.15.128 по 32 адреса.
Привет Dave, очень интересный топик , только это очень всё понятно нужен такой только по IPv6 )) будет интереснее )
Это уж точно. Одна проблема - у меня еще не очень хорошо умещаются в голове эти длинные числа адреса IPv6.
Отличный пример деления на подсети без применения двоичной математике. Намного удобней делить сети в десятичном представлении. Это ближе и понятней.
добрый день, если не трудно добавьте пример с сетями класса А
Сети класса А выходят за пределы чисел, которыми можно оперировать в уме. К тому же, на экзамене вам не придется оперировать префиксами короче 16.
я ваще ни че не понял!
И такое возможно. Эта статья не объясняет зачем и почему, а только объясняет как это сделать проще. В первом абзаце так и написано.
помогите решитъ задачку: дана Сеть класса А 84.0.0.0. с маской 255.0.0.0 , нужно подсчитать сколько субсетей можно из этого сделать?
Ответ зависит от того какой префикс будет выбран для подсетей.
вот именно, но в задании есть только то что я написал, получается что одна? только для префикса 8
блин нужно максимальное количество сетей, задание неправильно перевел на русский
Самая маленькая подсеть, которую можно отрезать - это сеть на четыре адреса. Маска 255.255.255.252, прификс 30. Итого 4194304 сети по 4 адреса, 2 из которыз могут быть назначены хостам. Это где ж такие вопросы задают? Уж точно не на экзамене CCNA, потому как на экзамене нет вычислений которые нельзя проделать в уме.
"Количество адресов в подсети 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 адреса, которые не возможно указать (сеть и broadcast), т.е. получается не 4094, а 4064 (4096 - 2*16) при использовании /20.
разве не так?
зы.сы. очень благодарю за блог!
не правильно понял формулировку - вопрос отпал :)
16 подсетей по 4096 адреов. Всего 4096 адресов в одной подсети, два из которых броадкаст и адрес сети. Т.е в каждом адресном пространстве из 16 будет всего два адеса, которые нельзя использовать по описанной выше причине. 32 неиспользуемых адреса будет в 16 подсетях, но это не касается отдельно взятой подсети, в которой их всего 2.
Спасибо большое - хорошая статья.
Отправить комментарий