Расчет маски подсети. Пошаговая инструкция.

Условие:В терминологии сетей TCP/IP маской сети  называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес.  Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

По заданным  IP-адресу узла и маске  определите адрес сети.

IP –адрес узла:          217.233.232.3

Маска:                        255.255.252.0

При записи ответа выберите из приведенных в таблице чисел четыре элемента IP-адреса и запишите в нужном порядке соответствующие им буквы. Точки писать не нужно.

A B C D E F G H
3 217 233 232 244 252 255

Пример.   Пусть искомый IP-адрес  192.168.128.0, и дана таблица

A B C D E F G H
168 255 8 127 17 192

В этом случае правильный ответ будет записан в виде: HBAF

Решение 1:Как сказано в условии задачи, чтобы найти адрес сети, нужно записать адрес узла сети и маску подсети в виде двоичных чисел и применить поразрядную конъюнкцию:

Адрес узла сети:         217.233.232.3 = 11011001.11101001.11101000.00000011

Маска подсети:           255.255.252.0 = 11111111.11111111.11111100.00000000

Поразрядная конъюнкция даст единицу при совпадении единиц и ноль в трех остальных случаях. Таким образом, применив её, получаем

Адрес узла сети:         217.233.232.0  = 11011001.11101001.11101000.00000000

Остается записать буквы вместо значений октетов: CDEA

Ответ:CDEA

Решение 2Вычислим поразрядную конъюнкцию IP-адреса узда сети и маски с учетом сказанного в п.4 раздела «Краткие теоретические сведения»:

IP–адрес узла (A) 217 233 232 3
Маска (B) 255 255 252
Адрес сети (A & B) 217 233 232 & 252

Значения 3-х из четырех байтов находятся легко.

Поразрядную конъюнкцию 232 & 252 придется вычислить

23210= 128 + 64 + 32 + 8 = 27+26+ 25+23= 1110 10002

25210= 128 + 64 + 32 + 16 + 8 + 4 = 27+26+ 25+ 24+23+22= 1111 11002

232 1 1 1 1
252 1 1 1 1 1 1
232 & 252 1 1 1 1

Итак, 232 & 252 = 111010002= 27+26+ 25+23= 232

Искомый адрес сети : 217.233.232.0

Замечание.Результат можно было бы получить сразу после перевода чисел в двоичную систему, заметив, что 6 единиц подряд в 111111002сохраняют 6 левых разрядов в 111010002.

Осталось  только записать ответ в нужном виде. Выбираем из таблицы нужные  значения С=217, D=233, E = 232, A=0.

Ответ: CDEA.

Решение 3 (другой вариант записи решения 2) Адрес сети имеет вид 217.233.X.0, где X получается обнулением двух младших двоичных  разрядов в числе 232 (потому, что в числе 252 = 255-3 два нулевых разряда). Но число 232 делится на 22= 4. Поэтому два младших разряда в двоичной записи числа 232 и так равны 0. Следовательно, X = 232.

Адрес узла сети:         217.233.232.0

Остается записать буквы вместо значений октетов: CDEA

Ответ:CDEA

Решение 2(см. п.4 в разделе «Краткие теоретические сведения»):  Адрес сети имеет вид 217.233.X.0, где X получается обнулением двух младших двоичных  разрядов в числе 232. Но число 232 делится на 22= 4. Поэтому два младших разряда в двоичной записи числа 232 и так равны 0. Следовательно, X = 232.

Адрес узла сети:         217.233.232.0

Остается записать буквы вместо значений октетов: CDEA

Ответ:CDEA

Наряду с терминами IPи MACадрес, очень часто, в повседневной речи сетевиков проскакивает термин сетевая маска или маска подсети. Маска подсети является не менее важным параметром, который указывается при конфигурации самых различных сетей, поэтому важно знать и понимать ее смысл, а также способы ее использования. Для начала отвлечемся от сетевых технологий и приведем следующий, пример из жизни. Все мы с вами живем в домах, кто то в больших, кто то в маленьких, но суть в том, что у каждого дома есть свой адрес, состоящий из  названия улицы и номера дома. Как легко заметить этот адрес состоит их двух частей. Первая часть адреса помогает определить улицу, на которой мы живем, а вторая уточняет полученную информацию и указывает на дом.  Каждая из частей адреса в отдельности не позволяет обнаружить наше место жительства, и только их сочетание позволяет нас найти. На письме части адреса разделяются между собой с помощью запятой (например, улица Ленина, дом 23).Теперь вернемся в тему сетевых технологий. Точно также как и наш реальный географический адрес, IPадреса компьютера состоят из двух частей: адреса сети и адреса компьютера в данной сети. Роль разделяющей запятой в географическом адресе, в мире сетевых технологий выполняет маска подсети. Рассмотрим, как  это происходит. Пусть у нас есть IPадрес 172.20.20.20 и классическая маска подсети 255.255.255.0, переведем наш IPадрес и маску подсети в двоичный вид, получим IPадрес 10101100.00010100.00010100.00010100 и маску подсети 11111111.11111111.11111111.00000000, теперь последовательно умножим каждый разряд IPадреса на каждый разряд маски подсети (при этом помним, что 1*1=1, 1*0=0,0*1=0,0*0=0), в итоге получим10101100.00010100.00010100.00000000, переведем его в десятичный вид и получим 172.20.20.0 . Полученной адрес будет являться адресом сети. Если же мы умножим наш IPадрес компьютера на инвертированную сетевую маску 00000000.00000000.00000000.11111111 (поменяйте все знаки в исходной маске наоборот), то грубо говоря вы получите 20 – это число будет являться адресом компьютера в данной сети. Итого мы получили, что у компьютера с IPадресом 172.20.20.20 и маской 255.255.255.0, 172.20.20.0 – адрес сети, а 20 – адрес компьютера.

networkmask1.png
Использование маски подсети

Если сказать более простыми словами, то каждый символ двоичного представления IPадреса сопоставляется соответствующему символу двоичного представления маске подсети, те символы адреса, которые сопоставляются единицам маски подсети, образуют адрес сети, символы IPадреса сопоставляемые нулям маски подсети образуют адрес компьютера в сети.Стоит отметить, что маска подсети может иметь не любой вид. В левой части маски должны быть собраны все единицы, а в правой все нули. Этот принцип проиллюстрирован на рисунке.

subnetmask.png
Разрешенные и запрещенные сетевые маски

Очень часто маску подсети записывают в сокращенной форме. Например, вместо ip адреса 172.20.20.20 cмаской подсети 255.255.255.0, записывают 172.20.20.20/24, в этой записи 24 обозначает количество единиц в двоичном виде маски подсети.Используя маски подсети можно выполнять деление крупных подсетей на более мелкие. Пусть, например,  у нас есть подсеть 172.20.20.0 с маской 255.255.255.0. Такая сеть может содержать в себе адреса начиная с 172.20.20.0 до 172.20.20.255 (адрес сети не меняется, меняется только адрес компьютера, хоста. Он может изменяться только в интервале от 0 до 255, так как маска 255.255.255.0 отводит под адрес хоста 8 двоичных разрядов, см. первый рисунок статьи). Причем из этих адресов 172.20.20.0 – является адресом подсети, 172.20.20.255 – является адресом широковещательной рассылки, и только адреса с 172.20.20.1 по 172.20.20.254 могут быть присвоены хостам (здесь использованное ранее слово компьютер, заменено на слово хост, так как клиентом в сети может быть не только компьютер но и множество других сетевых устройств, далее везде будем использовать именно термин хост). Как видно, такая подсеть может содержать 254 хоста. А что если нам не нужна такая подсеть? Вдруг мы хотим поделить ее на две подсети. В таком случае необходимо в двоичной форме записи увеличить количество бит отводимых под адрес сети, тоесть увеличить количество единичек в маске подсети на 1 штучку. Соответственно количество разрядов под IPадрес уменьшится на 1, и станет равно 7, и будет позволять организовать только  128 адресов. Данный принцип изображен на рисунке, красным цветом отмечен бит, перешедший из адреса хоста в адрес сети.

mask.png
Деление на подсети с помощью сетевых масок

С помощью данной операции, подсеть 172.20.20.0 с маской 255.255.255.0 была разделена на две подсети: 172.20.20.0 с маской 255.255.255.128 и 172.20.20.128 с маской 255.255.255.128. В первой подсети адрес 172.20.20.0 является адресом подсети, 172.20.20.127 адресом широковещательной рассылки, адреса с 172.20.20.1 по 172.20.20.126 адресами хостов. Во второй подсети адрес 172.20.20.128 является адресом подсети, 172.20.20.255 адресом широковещательной рассылки, адреса с 172.20.20.129 по 172.20.20.254 отводятся под хосты.При первом прочтении это может показаться довольно сложным для понимания, поэтому рекомендую для закрепления ответить на следующие вопросы:

  1. Какой IPадрес является адресом широковещательной рассылки в сети 192.168.1.0 с маской 255.255.255.0?
  2. Сколько хостов может быть в подсети 192.168.0.0 с маской 255.255.255.192?
  3. Разбейте подсеть 192.168.0.0 с маской 255.255.255.0 на две подсети.

Буду рад видеть ваши ответы в комментариях.

Системному администратору в рамках исполнения профессиональных обязанностей иногда приходится выезжать на дальние объекты, где не работает ни мобильная, ни какая другая связь, и единственная возможность связаться со штаб-квартирой — это настроить интернет-подключение, для чего нужно знать необходимый IP-адрес, маску подсети и шлюз. Представим себе ситуацию, что провайдер оставил нам только адрес шлюза и маску подсети. Как определить IP-адрес, чтобы гарантировано попасть в нужный диапазон? Или разрешено использовать только небольшой пул адресов при этом нужно выбрать адрес, последний в пуле. Как его определить?Другая ситуация: нужно разбить сеть на части, чтобы прогонять трафик через виртуальные сети (VLAN) при этом необходимо использовать пулы адресов разного размера по числу оборудования в каждом сегменте. Как выбрать необходимую длину подсети? Ответить на эти вопросы может IP-арифметика [https://habr.com/ru/post/129664/ , https://help.keenetic.com/hc/ru/articles/213965829-пример-расчета-количества-хостов-и-подсетей-на-основе-IP-адреса-и-маски , https://www.cisco.com/c/en/us/support/docs/ip/routing-information-protocol-rip/13788-3.html]. Мы специально приведём бумажный вариант иллюстраций, потому что пока не подключена сеть, многие вещи будут недоступны. В этом случае карандаш и листок бумаги — это единственные «вычислительные» приспособления.

Про классовую адресацию

IP-адреса разделяются на глобальные и локальные, классовые (Classful) и бесклассовые (CIDR — Classless Interdomain Routing). В глобальных сетях IP-адреса повторяться не могут, а в локальных сетях уникальности нет.

Глобальная классовая адресация имеет следующие диапазоны адресов:

  • класс А: 1.0.0.0 – 126.255.255.255;
  • класс В: 128.0.0.0 – 191.255.255.255;
  • класс С: 192.0.0.0 – 223.255.255.255;
  • класс D: 224.0.0.0 — 239.255.255.255 – диапазон IP-адресов для групповыхмногоадресных рассылок;
  • класс E: 240.0.0.0 – 255.255.255.255 – диапазон выделен для экспериментов.

Здесь же имеются и специфическиезарезервированные диапазоны адресов:

  • 0.0.0.0 – 0.255.255.255 – выделяются для маршрута по умолчанию, то есть назначается в качестве IP-адреса источника при отсутствии связи хоста с DHCP-сервером;
  • 127.0.0.0 – 127.255.255.255 – адреса обратной связи (loopback), то есть для передачи данных самому себе в качестве тестирования, зачастую 127.0.0.1 – является локальным адресом хоста (localhost);
  • 169.254.0.0 – 169.254.255.255 – присваивается хосту в случае, когда DHCP-сервер недоступен.

Неотъемлемой частью IP-адресации является маска, которая необходима для разделения зарезервированной части IP-адреса сети от свободной, а свободная часть как раз и будет задействована под распределение адресов для устройств. В классовой адресации маска соответствует длине октета, то есть /8, /16, /24, в чём и состоит основная нерациональность распределения IP-адресов. С маской /8 количество IP-адресов составит 16 777 214, с маской /16 — 65 534, а с маской /24 IP-адресами будут обеспечены 254 хоста.

Формула расчёта количества IP-адресов выглядит так: 2n – 2. Здесь “-2” означает, что всегда есть 2 IP-адреса, которые нельзя назначать устройствам, первый – всегда является адресом сети, а последний – широковещательный.

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

  • 10.0.0.0 – 10.255.255.255.255 – назначаются хостам в крупных компаниях;
  • 172.16.0.0 – 172.31.255.255 – применяется в организациях средних масштабов;
  • 192.168.0.0 – 192.168.255.255 – задействуется в фирмах мелких и средних масштабов.

Перевод в двоичную систему исчисления

Как раз смысл IP-арифметики и заключается в преобразовании адресов из 10й системы исчисления в 2ю, применении маски, высчитывании количества адресов для хостов и перевода обратно в 10е представление.

В 2й системе исчисления применяются только “0” и “1”. Возьмём для примера сеть 192.168.0.0 с маской /24. Первый способ перевода чисел в 2ю систему из 10й – это деление на 2. Для нас это менее удобно, поэтому подробнее остановимся на втором, который состоит из 4х шагов:

1. каждая цифра IP-адреса представляет собой октет в 2й системе исчисления и состоит из 8 бит. Для удобства сначала представим числа в виде всех единиц, то есть 11111111.11111111.11111111.11111111 (можно и всеми 0, но из 1 в 0 удобнее исправлять и меньше чёркать на листке). Здесь нужно знать, что максимальное значение в одном октете – 256, которое получается при возведении 2 в степень 8 (8 бит). Однако, задействованы в качестве IP-адресов для устройств могут быть только 254, так как первый (заканчивается на 0) – это сеть, а последний (все единицы) – броадкаст;

2. в каждом октете, начиная справа, напишем числа, возведя 2 последовательно в каждую степень (2 в 0, 2 в 1,…. 2 в 7), получится такой ряд чисел: 128 64 32 16 8 4 2 1. Если их сложить, то получится максимальное значение октета;

3. установим “0” вместо “1” там, где будет соответствие числа IP-адреса с числом октета. В нашем случае первый октет IP-адреса сети будет выглядеть так: 11000000 (128+64), второй – 10101000 (128+32+8), третий – 00000000 (0), четвёртый – 00000000 (0);

4. переведём маску в 2ое представление — 11111111.11111111.11111111.00000000. Здесь видно, что под IP-адреса устройств отведён полностью последний октет – изменяться могут справа налево 0 пока не встретится 1. 3й октет – зарезервирован под подсети, а 1й и 2й – указывают на сеть. Также становится понятным, почему маска пишется как “/24” (24 бита отведено), а в 10й системе исчисления она выглядит как 255.255.255.0 (см. рис. 1).

img_d9n8dynbi8t293f5k4na477.jpg

Рисунок 1. Расчёт IP-адресов в классовой адресации.

В рассмотренной сети будет 254 IP-адреса для сетевых устройств. IP-адрес 192.168.ххх.255 назначить нельзя, так как это последний адрес, который является широковещательным (broadcast). Если какой-то адрес хоста нужно представить в 2м виде, то делается это аналогичным образом (см. рис. 1).         

Приведём пример. В каждом городе 3х соседних областей открывается сеть фаст-фуд из 100 бургерных, в каждой из которой будет 3 устройства: 2 ПК и 1 Wi-Fi роутер. В этом случае 3й октет в двоичной системе будет 01100100. Сеть будет расширяться дальше, и расчёт будет понятен до 254 филиала – 11111110. А на 255м объекте и дальше — классовая адресация не подходит.

Бесклассовая адресация

В бесклассовой адресации выделение IP-адресов происходит более рационально, нежели в классовой.

В бесклассовой адресации задействуются по максимуму все биты адресного пространства. Здесь применяется маска переменной длины (VLSM — Variable Length Subnet Mask), которая позволяет регулировать количество IP-адресов хостов и количество подсетей в большую или меньшую сторону. В ней используется не фиксированное число октетов (1, 2 или 3), а любое число бит IP-адреса [https://ru.wikipedia.org/wiki/Бесклассовая_адресация]. Например, применяя маску /13 количество IP-адресов будет 524 286, с маской /27 – 30, с маской /6 будут обеспечены IP-адресами 67 108 862 хостов.

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

Возьмём тот же пример из классовой адресации, но увеличим количество бургерных до 300. В этом случае правильным будет сеть 192.168.0.0 разбить на большое количество подсетей с малым количеством IP-адресов, а значит увеличить маску с /24 до /29. Маска получится 11111111.11111111.11111111.11111000 (29 единиц), а в 1-й системе исчисления – 255.255.255.248, то есть из последнего октета мы забираем 5 бит.Полезно будет написать больше информации по поставленной задаче, а именно: начальный и конечный адреса в каждой подсети, широковещательный адрес, количество IP-адресов (см. рис. 2).

img_n654z9z273dftehkn33att3.jpg

Рисунок 2. Расчёт IP-адресов в бесклассовой адресации.

То есть в бесклассовой “арифметике” не так уж легко сразу сказать номер подсети для 50 или 150 филиала, так как нужно произвести манипуляции с цифрами. Здесь изначально берётся 8 IP-адресов (это 3 бита, так как в 2х битах не помещается 3 адреса для выделенных устройств) для первого филиала, следующие 8 за ними – для 2го, и так далее 0я подсеть будет соответствовать для первых 32х объектов. С 33го по 64й – 1я подсеть, с 65го до 96го – 2я подсеть, от 289го по 320й филиал будет 9я подсеть.

Некоторые системные администраторы учат наборы CIDR наизусть, типа /26 — 255.255.255.192 — 62 (количество хостов в подсети), как таблицу умножения, чтобы не заморачиваться с расчётами. Это не сильно труднее заучить, чем «бело-оранжевый, оранжевый, бело-зелёный, синий, бело-синий…».

Обратная маска

Обратную маску (Wildcardmask) [http://telecombook.ru/routing-and-switching/view/wildcard-mask , https://habr.com/ru/post/131712/] удобно применять при создании списков доступа для целых подсетей.

Например, для 63го филиала, нужно всем пользователям запретить пинги и доступ в интернет, где IP-адрес подсети 192.168.1.240/29. Обратная маска в этом случае будет 0.0.0.7. В 10м представлении её можно получить путём вычитания существующей маски 255.255.255.248 из полной – 255.255.255.255; в 2й системе исчисления такое вычитание выглядит как инверсия свободных бит (см. рис. 3). Обратная маска не имеет короткой записи, как прямая маска.

img_byt6sah4_khy9bbb4e9f_td.jpg

Рисунок 3. Расчёт обратной маски.

Художества на бумаге

Завершающим действием может быть хотя бы примерный рисунок сети. Это будет почти готовое решение, которое перенесётся в продакшн. 

Самый простой вариант отобразить сеть наглядно – нанести её на листке бумаги. Здесь придираться не к чему, так как схема всё равно будет дорабатываться: будут меняться соединения, именаназначения серверов, добавляться оборудование. Свой вариант художеств предоставлен на рисунке 4, где R – маршрутизатор, S – свитч, SRV – сервер. Здесь же на рисунке можно или даже желательно разделить трафик на части – на VLAN-ы, что даст больше понимания в правильности действий.

img_a2zdrb6ey_3asteby9y8538.jpg

Рисунок 4. Сеть на бумаге.

Используемые источники:

  • http://ege-go.ru/zadania/grb/b11/b11-demo/
  • http://www.netza.ru/2012/09/blog-post_6748.html
  • https://corpadmin.pp.ua/blog/internet/post/162-raschet-setey-vruchnuyu

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации