С самого начала хочу обратить внимание на тот факт, что данное статья не является теоретическим материалом по VLSM, это всего лишь более простой способ расчета. Прежде чем знакомиться с ним, нужно понимать теорию по данному вопросу и быть готовым в любой момент проверить полученный результат в двоичной форме.
Так вот, для того чтобы сдать экзамен CCNA нужно уметь рассчитывать подсети. Это занятие, само по себе, трудно назвать увлекательным. Особенно когда не получается. Залог успеха в данном мероприятии — знание степеней 2-ки от 0 до 12. На экзамене больше не понадобится, а в большинстве реальных ситуаций этого будет даже много. Еще нужно знать некоторые закономерности IP — адреса и маски подсети.
Меня с этими закономерностями познакомил один, в прямом смысле этого слова, «бородатый админ», который сопровождал привезенный нам на контору CISCO-роутер. Занося в серверную новую железяку, он застал меня за расчетом подстей. Классика жанра: адреса и маски в бинарной форме, огромное количество изведенной бумаги… В общем, все плохо… Мне было предложено аккуратно все собрать и отправить в урну. После этого мне был показан «мастер-класс» по расчету подсетей и масок. Этот способ позволяет рассчитать подсети в уме…
Прежде чем начать считать сети и маски, нужно хорошо запомнить небольшую таблицу степеней 2-ки (Таблица 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.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.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
Это и есть «шаг», но в отличии от предыдущего примера с сетью класса С , это значение не является количеством адресов в данной подсети.
Это обусловлено тем, что разделение происходит в третьем октете, и еще есть четвертый октет, значения которого может меняться от 0 до 255 (всего 256 возможных вариантов). Для того, чтобы рассчитать количество адресов в подсети, нужно «шаг» ( в нашем случае 16 ) умножить на 256.
Звучит угрожающе, и кажется, что не обойтись без калькулятора, но в действительности это всего-лишь 4 раза по 1024, что уже не так уж страшно.
256*16 = 1024 * 4 = 4096
Не забываем о том, что количество адресов, которые могут быть назначены узлам в данной подсети меньше на 2. Один из которых — это адрес подсети, а второй — широковещательный адрес.
К тому же, рассчитанный «шаг» указывает на количество бит данного октета, используемых для адресации в пределах подсети. В данном случае 16 = 2^4. Т.е.
в третьем октете заимствованы 4 бита для адресов подсетей и 4 бита третьего октета для адресации узлов В данном случае, это не полное количество бит, используемое для адресации внутри подсети, так как есть еще и четвертый октет с его 8-и битами.
Вот так будут выглядеть адреса подстетей, рассчитанные с использование значения «шага» равным 16
172.16..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 американских монет за возможность сдать экзамен, хотя бы частично контролировать ситуацию на экзамене, а это возможно только в случае готовности ко большинству возможных вариантов развития событий.
Самая полная и лучшая шпаргалка по делениям сетей на подсети. В ней есть всё
В эту шпаргалку Я постарался внести всё, что может потребоваться при делении сети: таблица масок подсети, префиксы масок, количество возможных адресов, часто встречающиеся комбинации двоичных чисел с переводом в десятичные, степени двойки, формулу количества хостов и сети, пример, как считать ip-адрес, таблица «классовая адресация», зарезервированные диапазоны ip-адресов, специальные ip-адреса, vlsm и cidr.
- Шпаргалка сделана в виде PDF файла (241 КБ), внутри которого 2 странички с цветными табличками.
- А теперь шпаргалка из PDF переведена в HTML!
- А теперь шпаргалка из PDF переведена в HTML (в двух частях)!
Процесс деления сети на подсети проще объяснить на конкретном примере.
Представим, что у нас есть сеть из трех маршрутизаторов, трех коммутаторов и нескольких компьютеров, которую требуется разделить на 6 подсетей. Схема сети показана на рисунке ниже.
На всю сеть нам выделили один IP-адрес 192.168.0.0/24, который нам и требуется разделить на 6 подсетей. В двоичном виде этот IP-адрес выглядит так (порцию сети я выделю более жирным шрифтом): 11000000.10101000.00000000.00000000 .
- Требуемое количество узлов (хостов, в данном случае компьютеров) в каждой подсети:
- Подсеть A — 100 узлов
- Подсеть B — 50 узлов
- Подсеть C — 20 узлов
- Подсеть D — 2 узла
- Подсеть E — 2 узла
- Подсеть F — 2 узла
Запомните, начинать делить сеть требуется с сети с максимальным количеством узлов.
«/24» — это префикс маски подсети (краткая запись маски). Полная запись маски подсети 255.255.255.0. В двоичном отображении маска подсети выглядит так: 11111111.11111111.11111111.00000000 — это значит, что нам доступно 8 бит для деления сети.
Воспользуемся шпаргалкой выше (а именно таблицей «BIN to DEC»). Первой подсети A нам требуется выделить IP-адреса для 100 узлов.
В таблице «BIN to DEC» мы видим, что заняв в маске один бит из восьми, мы получим 1 бит к порции сети (а это 2 подсети) и 7 битов в порции адреса (01111111 = 127).
127 вместе с нулем по количеству равен 128, это полное количество адресов, что удовлетворяет требованиям (и даже остается несколько адресов про запас).
И так, меняем маску с «/24» на «25» (в двоичном формате будет 11111111.11111111.11111111.10000000). Применим новую маску к нашей сети и получим 2 подсети (порцию сети я выделю более жирным шрифтом):
1 — 11000000.10101000.00000000.00000000 (сеть 192.168.0.0/25)
2 — 11000000.10101000.00000000.10000000 (сеть 192.168.0.128/25)
В новых двух сетях порция сети составляет 7 битов. По формуле (которая есть в шпаргалке) проверим, хватит ли нам 7 битов для сети со 100 узлами. 2^7-2=128-2=126, это значит что 7 битов даёт нам 126 адресов для узлов. (Напомню формулу: 2^X-2=количество адресов для узлов, где X равен количеству нулей, а «-2» — это под специальные адреса, которые нельзя назначать узлам.)
Осталась у нас одна сеть 192.168.0.128/25, и требуется для подсети B 50 адресов для узлов. Как и в предыдущий раз, мы видим в таблице «BIN to DEC» 00111111 = 63, это больше 50, а значит удовлетворяет требованиям. Занимаем еще один бит у порции адреса, остается 6 (2^6-2=62).
Маска становится на единицу больше /26, применяем её к нашей сети и получаем две новых подсети (порцию сети я выделю более жирным шрифтом):
1 — 11000000.10101000.00000000.10000000 (сеть 192.168.0.128/26)
2 — 11000000.10101000.00000000.11000000 (сеть 192.168.0.
192/26)
Таким же образом отделяем еще 1 бит от порции адреса узла (00011111 = 31, что больше 20, и следовательно нам подходит), маска уже /27. Снова две сети:
1 — 11000000.10101000.00000000.11000000 (сеть 192.168.0.192/27)
2 — 11000000.10101000.00000000.11100000 (сеть 192.168.0.224/27)
Осталось нам выделить 3 подсети по 2 адреса для узлов. По таблице видим, что нам достаточно для порции адреса узла всего двух битов (00000011 = 3), 2^2-2=2 адреса для двух узлов.
В свою очередь для трех, одинаковых по размеру, подсетей достаточно тоже двух битов (2^2=4, формула из шпаргалки). Всего в IP-адресе 32 бита, вычитаем требующиеся нам 2 и получаем 30, следовательно используем маску /30. Для нашей оставшейся сети это выглядит так (порцию сети я выделю более жирным шрифтом): 11000000.10101000.00000000.11100000 (сеть 192.168.0.224/30) .
Делим нашу новую сеть на 3 подсети:
1 — 11000000.10101000.00000000.11100000 (сеть 192.168.0.224/30) .
2 — 11000000.10101000.00000000.11100100 (сеть 192.168.0.228/30) .
3 — 11000000.10101000.00000000.11101000 (сеть 192.168.0.232/30) .
- Готово, задача выполнена:
- Подсеть A — 192.168.0.0/25
- Подсеть B — 192.168.0.128/26
- Подсеть C — 192.168.0.192/27
- Подсеть D — 192.168.0.224/30
- Подсеть E — 192.168.0.228/30
- Подсеть F — 192.168.0.232/30
Это не простой пример деления сети на подсети, поэтому если Вам требуется попроще пример для понимания — пишите письма на eaneav@gmail.com.
Протокол TCP/IP, служба DNS
Каждый сетевой адаптер имеет свой уникальный физический адрес (или MAC-адрес). За отображение IP-адресов адаптеров на их физические адреса отвечает протокол ARP (Address Resolution Protocol).
Необходимость протокола ARP продиктована тем обстоятельством, что IP-адреса устройств в сети назначаются независимо от их физических адресов. Поэтому для доставки сообщений по сети необходимо определить соответствие между физическим адресом устройства и его IP-адресом — это называется разрешением адресов.
В большинстве случаев прикладные программы используют именно IP-адреса. А так как схемы физической адресации устройств весьма разнообразны, то необходим специальный, универсальный протокол.
Протокол разрешения адресов ARP был разработан таким образом, чтобы его можно было использовать для разрешения адресов в различных сетях. Фактически ARP можно использовать с произвольными физическими адресами и сетевыми протоколами.
Протокол ARP предполагает, что каждое устройство знает как свой IP-адрес, так и свой физический адрес. ARP динамически связывает их и заносит в специальную таблицу, где хранятся пары «IP-адрес — физический адрес» (обычно каждая запись в ARP-таблице имеет время жизни 10 мин.). Эта таблица хранится в памяти компьютера и называется кэш протокола ARP (ARP-cache).
Работа протокола ARP заключается в отправке сообщений между сетевыми узлами:
- ARP Request (запрос ARP) — широковещательный запрос, отправляемый на физическом уровне модели TCP/IP, для определения MAC-адреса узла, имеющего конкретный IP-адрес;
- ARP Reply (ответ ARP) — узел, IP-адрес которого содержится в ARP-запросе, отправляет узлу, пославшему ARP-запрос, информацию о своем MAC-адресе;
- RARP Request, или Reverse ARP Request (обратный ARP-запрос) — запрос на определение IP-адреса по известному MAC-адресу;
- RARP Reply, или Reverse ARP Reply (обратный ARP-ответ) — ответ узла на обратный ARP-запрос.
Для более эффективного использования пространства адресов IP-сети с помощью маски подсети могут быть разбиты на более мелкие подсети (subnetting) или объединены в более крупные сети (supernetting).
Рассмотрим на примере разбиение сети 192.168.1.0/24 (сеть класса C) на более мелкие подсети. В исходной сети в IP-адресе 24 бита относятся к идентификатору сети и 8 бит — к идентификатору узла. Используем маску подсети из 27 бит, или, в десятичном обозначении, — 255.255.255.224, в двоичном обозначении — 11111111 11111111 11111111 11100000. Получим следующее разбиение на подсети:
192.168.1.0/27 | 192.168.1.1–192.168.1.30 | 192.168.1.31 |
192.168.1.32/27 | 192.168.1.33–192.168.1.62 | 192.168.1.63 |
192.168.1.64/27 | 192.168.1.65–192.168.1.94 | 192.168.1.95 |
192.168.1.96/27 | 192.168.1.97–192.168.1.126 | 192.168.1.127 |
192.168.1.128/27 | 192.168.1.129–192.168.1.158 | 192.168.1.159 |
192.168.1.160/27 | 192.168.1.161–192.168.1.190 | 192.168.1.191 |
192.168.1.192/27 | 192.168.1.193–192.168.1.222 | 192.168.1.223 |
192.168.1.224/27 | 192.168.1.225–192.168.1.254 | 192.168.1.255 |
Таким образом, мы получили 8 подсетей, в каждой из которых может быть до 30 узлов. Напомним, что идентификатор узла, состоящий из нулей, обозначает всю подсеть, а идентификатор узла, состоящий из одних единиц, означает широковещательный адрес (пакет, отправленный на такой адрес, будет доставлен всем узлам подсети).
IP-адреса в данных подсетях будут иметь структуру:
Отметим очень важный момент. С использованием такой маски узлы с такими, например, IP-адресами, как 192.168.1.48 и 192.168.1.72, находятся в различных подсетях, и для взаимодействия данных узлов необходимы маршрутизаторы, пересылающие пакеты между подсетями 192.168.1.32/27 и 192.168.1.64/27.
Примечание. Согласно стандартам протокола TCP/IP для данного примера не должно существовать подсетей 192.168.1.0/27 и 192.168.1.224/27 (т.е. первая и последняя подсети). На практике большинство операционных систем (в т.ч. системы семейства Microsoft Windows) и маршрутизаторов поддерживают работу с такими сетями.
Аналогично, можно с помощью маски подсети объединить мелкие сети в более крупные.
Например, IP-адреса сети 192.168.0.0/21 будут иметь следующую структуру:
Диапазон IP-адресов данной сети: 192.168.0.1–192.168.7.254 (всего — 2046 узлов), широковещательный адрес подсети — 192.168.7.255.
Преимущества подсетей внутри частной сети:
- разбиение больших IP-сетей на подсети (subnetting) позволяет снизить объем широковещательного трафика (маршрутизаторы не пропускают широковещательные пакеты);
- объединение небольших сетей в более крупные сети (supernetting) позволяет увеличить адресное пространство с помощью сетей более низкого класса;
- изменение топологии частной сети не влияет на таблицы маршрутизации в сети Интернет (хранят только маршрут с общим номером сети);
- размер глобальных таблиц маршрутизации в сети Интернет не растет;
- администратор может создавать новые подсети без необходимости получения новых номеров сетей.
Старшие биты IP-адреса используются рабочими станциями и маршрутизаторами для определения класса адреса. После того как класс определен, устройство может однозначно вычислить границу между битами, использующимися для идентификации номера сети, и битами номера устройства в этой сети.
Однако при разбиении сетей на подсети или при объединении сетей для определения границ битов, идентифицирующих номер подсети, такая схема не подходит. Для этого как раз и используется 32-битная маска подсети, которая помогает однозначно определить требуемую границу.
Напомним, что для стандартных классов сетей маски имеют следующие значения:
- 255.0.0.0 – маска для сети класса А;
- 255.255.0.0 — маска для сети класса В;
- 255.255.255.0 — маска для сети класса С.
Для администратора сети чрезвычайно важно знать четкие ответы на следующие вопросы:
- Сколько подсетей требуется организации сегодня?
- Сколько подсетей может потребоваться организации в будущем?
- Сколько устройств в наибольшей подсети организации сегодня?
- Сколько устройств будет в самой большой подсети организации в будущем?
Отказ от использования только стандартных классов IP-сетей (A, B, и C) называется бесклассовой междоменной маршрутизацией (Classless Inter-Domain Routing, CIDR).
Курс по основам компьютерных сетей на базе оборудования Cisco. Этот курс поможет вам подготовиться к экзаменам CCENT/CCNA, так как за его основу взят курс Cisco ICND1
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать основы работы компьютерных сетей и протокол сетевого уровня IP, а если быть более точным, то его версию IPv4.
В бесклассовых IP сетях используется маска подсети/сети переменной длины и работает два механизма: CIDR и VLSM.
Бесклассовые сети являются прямой линией развития от классовых сетей, их преимущество заключается в том, что они позволяют экономнее расходовать пул IPv4 адресов. О том за счет чего это происходит, мы поговорим в этой теме.
- Если тема компьютерных сетей вам интересна, то можете ознакомиться с другими записями курса.
- Оглавление первой части: «Основы взаимодействия в компьютерных сетях».
- Оглавление четвертой части: «Сетевой уровень: протокол IP и его версия IPv4».
4.6.1 Введение
Понимание принципа работы механизмов CIDR и VLSM, а также выбор и расчет маски подсети переменной длины — это ключевой момент в современных IPv4 сетях, без понимания которого будет трудно и неприятно работать, работа всегда неприятна, если она не понятна. Поэтому давайте избавимся от все неприятных моментов и детально разберемся с этим вопросом. Тема очень большая и для ее понимания рекомендую, как минимум, повторять примеры самостоятельно.
4.6.2 CIDR или механизм бесклассовых IP сетей
CIDR (Classless Inter-Domain Routing) – это гибкий метод IP-адресации в компьютерных сетях, который позволяет экономить адресное пространство, данный метод снимает ограничение классовых сетей, которое заключалось в том, что конкретный IP-адрес принадлежал конкретному классу, а это означало, что этому IP-адресу соответствовала маска фиксированной длины, строго закрепленная за классом.
В общем, мы поумничали, теперь давайте разбираться, ибо много умничать – плохо. В чем была проблема классовых сетей, да в том, что они не позволяли создавать маленькие сети.
Давайте посмотрим на примере: у нас есть локальная сеть из 6 компьютеров, подключенных к коммутатору, нам нужно, чтобы эти компьютеры могли взаимодействовать между собой. Как нам быть, если используется классовая адресация.
Всё просто: нужно взять одну любую сеть из класса C и раздать IP-адреса из этой сети нашим компьютерам, это наглядно продемонстрировано на Рисунке 4.6.1.
Рисунок 4.6.1 Сеть из шести узлов, в которой используется классовая адресация
Почему сеть класса C? Да потому что это самый маленький диапазон IP-адресов, который возможен в классовых сетях, но, постойте, зачем нам сеть, в которой 256 IP-адресов, ведь она дает возможность включить 254 узла (ведь один IP-адрес уйдет на номер сети, а другой будет широковещательным и их нельзя выдавать узлам), а у нас их всего шесть! А вдруг за эти IP-адреса нужно будет кому-то платить, а зачем нам платить за 256 адресов, когда нам нужно 6 адресов? Правильно, не зачем, мы маленькая российская компания, которая никогда не вырастет, нам не нужно столько адресов, у нас нет столько денег! А если взглянуть на ситуацию немного иначе. Допустим, в мире нет никаких частных IP-адресов, все адреса являются публичными, мы маленькая компания, сотрудник которой приходит к окошку, в котором сидит тетенька, выдающая IP-адреса по справкам с 14:00 до 15:00 только по средам и пятницам. А в мире до сих пор используются классовые сети. Мы приходим со справкой, в которой написано: нужно 6 IP-адресов. Тетенька читает эту справку и говорит: нет, не дам я вам IP-адреса, потому что их и так мало, да и выдать я могу вам только 256 адресов, и вообще у меня в инструкции написано: выдавать IP-адреса только тем, у кого в сети больше 200 узлов, а то на всех не хватит.
То есть не экономность классовых сетей весьма ощутима, даже если в нашей сети два узла, мы в любом случае вынуждены использовать сеть, которая, как минимум, рассчитана на 254 узла.
Не забываем, что классы у нас фиксированные и маски в этих классах так же фиксированные. Получается, что нужно отказываться от классов и фиксированных масок.
И это действительно произошло, появились бесклассовые сети или CIDR, принцип работы, которых основан на масках переменной длины или VLSM (variable length subnet mask).
А это уже гибкий механизм, который позволяет выделять пулы IP-адресов почти такого размера, как нам хочется. Давайте посмотрим на Рисунок ниже, допустим наша компания каким-то чудом расширилась и появился седьмой сотрудник, его надо обеспечить рабочим местом.
4.6.2 Сеть из семи узлов, в которой используется маска переменной длины
Заметили? Мы используем IP-адрес из сети класса А, но почему-то у нас какая-то странная маска: 255.255.255.240. А это всё благодаря CIDR и VLSM
TCP/IP: Структура IPv4 адреса, сети и подсети, разделение сети на подсети
IP-адрес представляет собой число размером 32 бита (или 4 байта), которое может быть записано в любой системе счисления (тут речь про адрес протокола IP version 4, в IPv6 он имеет размер 128 бит).
Например, адрес в десятичной системе 127.0.0.1 можно записать так:
01111111.00000000.00000000.00000001
- Адрес делится на 4 октета, по 8 бит каждый, которые могут иметь значение от 0 (00000000) до 255 (11111111):
- IP-адрес содержит в себе две основных части – адрес сети и адрес хоста в этой сети.
К примеру, адрес 77.120.120.20 представляет собой сеть 77.120.120.0, в которой находится хост с адресом 20.
Сети и маска сети
Помимо указания самого IP-адреса, на сетевом интерфейсе так же указывается его маска сети.
Маска не передаётся в заголовках TCP/IP пакетов, но используется сетевой картой для определения дальнейшего маршрута пакета – если адрес назначения находится в одной сети с адресом отправителя – он будет отправлен напрямую, если же в отдельной сети – пакет будет передан маршрутизатору, согласно таблице маршрутизации пакетов.
Рассмотрим адрес 77.120.120.20 с маской 255.255.255.0.
В двоичном представлении этот адрес можно записать так:
адрес:
01001101.01111000.01111000.00010100
маска:
11111111.11111111.11111111.00000000
Для первых трёх октетов в IP-адресе установлен (или “включён“) “бит маски” (иначе – “битовая маска“), следовательно – первые три октета адреса являются адресом сети, а последние 8 бит – адресом хоста.
Таким образом, адрес 77.120.120.20 с маской 255.255.255.0 является в сетью 77.120.120.0, которая является классом С (которая, в свою очередь, является подсетью сети 77.120.0.
0 класса В, которая является подсетью сети 77.0.0.0, которая является сетью верхнего уровня – А, хотя с появлением CIDR (см.
ниже) понятие “классы сети” фактически потеряло актуальность).
Что бы сократить запись о сети 77.120.120.0 с маской 255.255.255.0 – можно использовать сокращённую форму: 77.120.120.0/24.
“/24” называется “префикс сети“, и указывает на количество “битов маски“. Таким образом, из 32 бит адреса 24 указаны как адрес сети, а 8 – остаются для адресов хостов в этой сети.
Если взять, к примеру, сеть 77.120.120.0/28 – мы получим только 4 бита, выделенных для адресов, т.е. маска сети будет выглядеть как 11111111.11111111.11111111.11110000, или 255.255.255.240.
Такое описание сетей и подсетей называется “бесклассовой классификацией” (Classless Inter-Domain Routing – CIDR).
Использование CIDR даёт возможность отказаться от традиционного разбиения на сети различных классов (А, B, C и т.д.) , и создавать подсети необходимого размера.
К примеру, подсеть 77.120.120.0/28 (которую можно перевести в маску сети 11111111.11111111.11111111.11110000 в двоичном виде (4 последних бита “сброшены”)или 255.255.255.240 в десятичном) содержит 4 бита адресов хостов. В 4 бита можно “вместить” 24 адресов – 16.
Из этих 16 стоит вычесть первый (сам адрес 77.120.120.0, так он является адресом самой сети) и последний (77.120.120.
255, так как он является широковещательным, или broadcast, адресом сети, на который в теории должны отвечать все хосты сети), таким образом – из 16 адресов сети для хостов остаётся 14 адресов.
Маска подсети | Альтернативный формат записи |
Последний октет (в двоичном виде) |
Последний октет (в десятичном виде) |
255.255.255.0 | /24 | 0000 0000 | |
255.255.255.128 | /25 | 1000 0000 | 128 |
255.255.255.192 | /26 | 1100 0000 | 192 |
255.255.255.224 | /27 | 1110 0000 | 224 |
255.255.255.240 | /28 | 1111 0000 | 240 |
255.255.255.248 | /29 | 1111 1000 | 248 |
255.255.255.252 | /30 | 1111 1100 | 252 |
Маска подсети | Размер идентификатора хоста | Максимальное количество хостов |
||
8 бит | 255.0.0.0 | 24 бит | 224 – 2 | 16777214 |
16 бит | 255.255.0.0 | 16 бит | 216 – 2 | 65534 |
24 бит | 255.255.255.0 | 8 бит | 28 – 2 | 254 |
29 бит | 255.255.255.248 | 3 бит | 23 – 2 | 6 |
Более полные таблицы сетей можно найти в статье Сети, подсети, классы подсетей. Таблица подсетей.
Разделение сети на подсети
Допустим, имеется сеть 77.120.120.0/24, или сеть 77.120.120.0 с маской 255.255.255.0 – из которой необходимо выделить две различные сети. Сеть 77.120.120.0/24 включает в себя адреса от 77.120.120.0 до 77.120.120.255.
Представим эту сеть и её маску в двоичном виде:
адрес сети:
1001101.1111000.1111000.00000000
маска:
11111111.11111111.11111111.00000000
Займём на один бит больше в последнем октете маски сети – 11111111.11111111.11111111.10000000 (или 255.255.255.128 в десятичном виде). У нас осталось (32 бита IP-адреса – 7 бит под адреса хостов) = 25 бит – под маску.
Следовательно, первая сеть в десятичном виде будет выглядеть как 77.120.120.0/25, и включает в себя адреса от 77.120.120.0 до 77.120.120.127 (7 бит под адреса: 27 = 128 адресов, включая первый адрес 0 – получаем 127 всего), а вторая сеть получит адреса от 77.120.120.128 до 77.120.120.
255, или 77.120.120.128/25.
Ещё один способ рассчитать максимальное значение (последний адрес для сети): в 25-ти битной маске мы имеем 7 бит под адреса; следовательно – адрес первой сети в двоичном виде будет выглядеть так: 1001101.1111000.1111000.00000000 – где жирным выделен адрес сети, а курсивом – “свободные” биты под адреса хостов. Максимальное значение, которое можно вместить в семь бит – 01111111 = 127.
Для второй сети мы имеем вид 77.120.120.128, или 1001101.1111000.1111000.10000000, а максимальное значение последнего октета будет 11111111 = 255.
Ссылки по теме
http://www.adminsub.net
http://www.shunsoft.net
https://en.wikipedia.org
- http://habrahabr.ru
- http://planetcalc.ru
- http://zyxel.ua
Тонкое искусство разбиения вашей сети на подсети
Компьютерные сети это то, что можно встретить сейчас в любом доме, в любой организации. Более того, это одна из основных составляющих успешной деятельности современного предприятия.
И чем крупнее организация, тем шире в ней компьютерная сеть. В этом случае для удобства организации работы имеет смысл разделить единую сеть на подсети.
В этой статье мы рассмотрим, как правильно и без ошибок наладить работу с подсетями в рамках одной локальной сети.
Безоп
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Начни обучение бесплатно
p>
Прежде всего, стоит понимать, а нужно ли вообще разбивать сеть? Если фирма небольшая, на 3-4 сотрудника в одном офисе, то в такой разбивке нет необходимости. Однако, если сотрудники компаний занимают несколько кабинетов, или же отделы находятся в различных зданиях — в этом случае без сегментации на подсети не обойтись.
Вообще, интернет-провайдер рассматривает любую организацию как одну сеть, в идеале, имеющую один IP-адрес. На деле так получается далеко не всегда.
Если организация крупная, то в ней по факту может быть несколько локальных подсетей, объединенных в одну сеть, которую и будет «видеть» провайдер.
Эти подсети могут быть территориально удалены друг от друга, поэтому нужно правильно наладить их соединение, чтобы избежать ошибок в обмене данными.
Конечно, самым очевидным решением будет присвоение каждому устройству своего IP-адреса. Но если в сети есть несколько маршрутизаторов, такой вариант будет неприемлемым или исключительно сложным в реализации.
Что же делать в случае, если сеть организована через связанные между собой маршрутизаторы? В этом случае нужно присвоить IP-подсетям разные адреса.
Задачка: из пункта А в пункт Б выехал поезд…Упс, нет, не та задача. Пусть в организации есть несколько отделов. Чтобы понять, какое количество IP-адресов выдать на подсеть, необходимо знать потребности каждого отдела.
Иными словами, знать максимальное количество компьютеров и сетевых устройств, которое планируется ставить в каждом отделе. Для каждого компьютера (и любого другого сетевого девайса) в рамках подсети будет установлен свой индивидуальный IP-адрес.
Также нужны IP-адреса для виртуальных серверов, если таковые используются в организации. Не лишним будет создать запас IP-адресов на случай расширения отдела и установки новых рабочих станций.
Есть два варианта разделения сети. Это вариант с подсетями равного размера и вариант с подсетями разного размера. Рассмотрим первый случай:
Если вы на хотите заморачиваться с самостоятельным расчетом подсетей, то мы сделали все за вас ????. Воспользуйтесь нашим готовым калькулятором подсетей
Вариант 1: Разделение сети на подсети одинакового размера:
Вообще, в сети, устроенной по протоколу IPv4 можно, как правило размещают 254 устройства (2^8-2 – два в восьмой степени минус 2. Минус два, так как один адрес широковещательный а другой сетевой, так называемый нулевой).
Из адресного пространства узла (последние 8 бит) для адресации подсетей потребуется занять несколько бит. Если занять 1 бит получится 2 подсети, 2 бита 4 подсети, 3 бита 8 подсетей и так далее.
Маска подсети будет увеличиваться на +1 за каждый занятый для разбивки бит.
Таким образом, определив нужное количество подсетей, мы можем начинать разбивку. Стоит помнить, что чем больше подсетей, тем меньше в них будет адресов.
Например, если подсетей нужно сделать 7, то для адресации в адресном пространстве узла мы возьмем 3 бита, и еще 5 у нас останется для присвоения IP-адресов.
Таким образом, в каждой подсети можно будет установить (2^5-2 – два в пятой степени минус два) = 30 устройств. Общая вместимость сети в данном случае составит (30*8) =240 устройств.
Диапазоны устройств в подсетях найти также несложно. Они будут распределены от 0 до 254, при этом адреса подсети уже будут зарезервированы (, 32, 64, 96, 128, 160, 192, 224)
Пример:
- 1-я подсеть