Как правильно разбить сеть на подсети.Продолжение Начало здесь.
Итак я думал что сказал в прошлой статье все про то как разбить сети на подсети но это оказалось не совсем так. Я забыл показать как при делении сети рассчитать адреса бордкастов ( broadcast) или широковещательной рассылки. Под широковещательной рассылкой следует понимать что по данному адресу (адресу broadcast) все компы данной подсети получат сообщение. То есть это такой адрес который принимается всеми компами в в данной сети или подсети. Давайте опираясь на получены знания из прошлой прошлой статьи и рассчитаем и поделим сеть на подсети, а так же рассчитаем бродкасты (broadcast) или адреса широковещательной рассылки для каждой подсети.
Пусть у нас есть сеть класса С с адресом 192.168.1.0/24. Что значит эта цифра 24 после слэша (/)(косой черты) вы должны знать, прочитав прошлую статью. Но я напомню. Это число указывают число единиц в маски подсети. Это гораздо удобнее, чем писать значение маски.
Если написать это с прямым указанием маски подсети то у нас будет такая запись:
IP - адрес = 192.168. 1.0 Маска сети = 255.255.255.0
В двоичном представлении это выглядит так:
IP - адрес = 11000000.10101000.00000001.00000000 Маска сети = 11111111.11111111.11111111.00000000
Если на основе этих данных построить сеть то диапазон адресов сети будет:
192.168.1.1 - 192.168.1.254
Первый адрес как мы знаем это базовый адрес сети (192.168.1.0) и не используется а последний (192.168.1.255) это бордкаст (broadcast) или адрес широковещательной рассылки для данной сети, и тоже не используется для того что бы прописать или раздать какому либо компу в нашей сети или подсети.
Теперь представим что мы хотим поделить нашу эту большую сеть на две подсети. Как уже было описано в прошлой статье мы берем (одалживаем) у адреса хоста (из 4-го октета) одо знакоместо и указываем это в маске сети. Почему одно
значение?... потому что это знакоместо в четвертом октете будет
принимать всего два значения- или 0 или 1 (другое не возможно) для обозначения этих двух
сетей из нашего примера Основываясь на те знания которые были получены ранее в прошлой статье.
Было Маска сети = 11000000.10101000.00000001.00000000 Стало Маска сети = 11000000.10101000.00000001.10000000
Теперь маска сети у нас будет 11111111.11111111.11111111.10000000 или (если последний октет представить в десятичном представлении) 255.255.255.128
То есть у нас после того как отобрали один бит из последнего октета который предназначался для адресации хостов для разделения сети на подсети (subnet) остались 7 битов для адресации хостов. Как мы уже знаем из предыдущей статьи, высчитываем сколько хостов мы можем адресовать при помощи 7 бит. Для этого 2^7=128. То есть мы можем адресовать 128 хостов. Но мы так же знаем что первый (базовый адрес сети или подсети) и последний адрес (адрес бродкаста) нельзя использовать. Тогда из 128 высчитываем 2 адреса. 128 - 2= 126 хостов. То есть при таком делении сети у нас в свободном распоряжении есть 126 IP-адреса которые мы можем присвоить или раздать хостам в нашей подсети. На практике лучше вычитывать из количества свободных адресов цифру 3 так как всегда в сети будет необходим адрес шлюза, но имея столько свободных адресов можно шлюзу присвоить из этого диапазона любой адрес.
Чтобы понять эти базовые понятия покрутимся еще здесь. То есть когда у нас была сеть с такими параметрами 192.168.1.0/24 или 192.168.1.0 и маской сети 255.255.255.0 то у нас было такое пространство адресов.
192.168.1.0 - базовый адрес сети (не используется при адресации хостов, указывает только на сеть, т.е. адрес сети) 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 ... ... ... 192.168.1.252 192.168.1.253 192.168.1.254 192.168.1.255 - адрес бродкаста (не используется при адресации хостов (это адрес широковещательной рассылки в данной сети).
При разбиение этой сети на две подсети как было описано в данной статье выше пространство адресов у нас будет такое две подсети с маской сети 255.255.255.128 или две подсети 192.168.1.0/25 и 192.168.1.128/25:
192.168.1.0 - базовый адрес п/сети (не используется при адресации хостов, указывает только на подсеть, т.е. адрес подсети) 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 ... ... ... 192.168.1.124 192.168.1.125 192.168.1.126 192.168.1.127 - адрес бродкаста (не используется при адресации хостов (это адрес широковещательной рассылки в данной подсети).
То есть в данной подсети (subnet) у нас будет такой диапазон адресов которыми мы можем воспользоваться, это
192.166.1.1 - 192.168.1.126 И вторая подсеть
192.168.1.128 - базовый адрес п/сети (не используется при адресации хостов, указывает только на подсеть, т.е. адрес подсети) 192.168.1.129 192.168.1.130 192.168.1.131 192.168.1.132 ... ... ... 192.168.1.252 192.168.1.253 192.168.1.254 192.168.1.255 - адрес бродкаста (не используется при адресации хостов (это адрес широковещательной рассылки в данной подсети).
Во второй подсети (subnet) у нас будет такой диапазон адресов которыми мы можем воспользоваться, это
192.166.1.129 - 192.168.1.254
Как видим и было отмечено в прошлой статье - любая сеть или подсеть имеет два IP адреса, которые не могут использоваться для сетевых интерфейсов внутри этой сети (непосредственно это адрес самой сети и адрес широковещательной рассылки, broadcast). После создания нескольких подсетей, каждая подсеть требует (имеет) своего собственного, уникального IP адреса сети и broadcast адреса - и это должны быть реальные адреса из пространства IP - адресов сети, которая разбивается на подсети. Так что, если разделить одну сеть на две отдельные подсети, появятся два адреса сетей и два broadcast адреса - увеличится число адресов, которые не могут использоваться для конкретных компьютеров в сети. Создание 4-х подсетей создаст 8 неиспользуемых адресов и так далее. Для 8 сетей 16 неиспользуемых адреса. То есть они используются но мы не можем ими воспользоваться так как они, скажем так зарезервированы для других целей а не для присвоения их сетевым интерфейсам.
Теперь давайте посмотрим почему у нас или как у нас получаются базовые адреса сети или подсети и бордкасты.
Расчет базовых адресов подсетей адресов широковещательной рассылки (broadcast)
Если возьмем нашу сеть до того как ее разделили то есть 192.168.1.0/24 и посмотри что у нас получается... При такой сети первый адрес или базовый адрес сети будет 192.168.1.0. Если его перевести в двоичный код получим 11000000.10101000.00000001.00000000. Учитывая маску сети которая у нас имеет значение 255.255.255.0 то мы можем сказать что для адресации хостов в нашей сети используются полностью весь последний октет.
То есть, при такой сети как в нашем случае (192.168.1.0/24) базовый адрес сети 192.168.1.0 содержит в битах адреса хоста одни нули. Запомним это.
Рассмотрим случай когда наша сеть поделена на две подсети 192.168.1.0/25 и 192.168.1.128/25 . С учетом значения маски, для адресации хостов в этих подсетях используются 7 последних бит. Как и в первом случае когда сеть не разделена на подсети проанализируем базовые адреса этих подсетей. Базовый адрес первой подсети у нас будет 192.168.1.0 и с учетом маски сети которая у нас имеет значение /25 или в двоичном представлении, IP адрес = 11000000.10101000.00000001.00000000 и маской подсети = 1111 1111.1111 1111.1111 1111.1000 0000. И как и в первом случае базовый адрес сети содержит нули в битах которые предназначены для адресации хостов (биты для адресации хостов отмечены зеленным).
Теперь надо это запомнить. Базовый адрес сетей и подсетей всегда содержит нули в тех битах которые предназначены для адресации хостов.
Теперь рассмотрим вторую подсеть 192.168.1.128/25. Базовый адрес этой подсети будет 192.168.1.128, в двоичном представлении 11000000.10101000.00000001.10000000. Как мы видим и тут биты которые предназначены для адресации хостов (отмечены зеленым) в базовом адресе сети или подсети имеют значение ноль.
Давайте посмотрим на адреса бродкастов (broadcast) и проанализируем их. Вы заметили что первая подсеть имеет в нашем случае диапазон адресов от 192.168.1.1 до 192.168.1.126. рассмотрим последний адрес или максимальный адрес нашей подсети 192.168.1.0/25.
Максимальный (доступный т.е. который мы, как системные администраторы можем его использовать) адрес это адрес 192.168.1.126 или в двоичном представлении 11000000.10101000.00000001.01111110. То есть если мы добавим еще одну единицу или скажем так, если мы хотим добавить еще один адрес то есть 127-й адрес то когда посмотрим на двоичное представление данного адреса, у нас получится такая картина. 192.168.1.126 - 11000000.10101000.00000001.01111110 (Максимальный адрес подсети) 192.168.1.127 - 11000000.10101000.00000001.01111111 (Адрес бродкаста или широковещательной рассылки в данной подсети)
Как мы можем заметить что все пространство битов предназначенные для адресации хостов (отмечены зеленым и определяется маской сети или подсети) стали равны единице. То есть нам уже некуда добавлять адреса, пространство бит предназначенные для адресации хостов (при такой маске которая у нас указана) заполнена. Ну кончились у нас доступные адреса при такой маске и все! И тогда с учетом нашей маски если нам нужны еще IP - адреса то мы должны перейти на адресацию в другую подсеть так как в этой подсети адреса кончились физически.
Если рассмотрим максимальный адрес второй подсети и адрес бродкаста (broadcast) то они будет такими:
192.168.1.254 - 11000000.10101000.00000001.11111110 (Максимальный адрес подсети) 192.168.1.255 - 11000000.10101000.00000001.11111111 (Адрес бродкаста или широковещательной рассылки в данной подсети)
Так вот, в том случае когда все пространство адресов предназначенное для адресации заполнено единицами мы говорим что это адрес бродкаста (broadcast) данной сети или подсети.
Из рассмотренных примеров видно что после максимального адрес подсети следует адрес бродкаста (broadcast) и в случае разделения сетей на подсети это есть "граничный" адрес между подсетями.
Давайте попытаемся вычислить бродкаст (broadcast) при различных значениях маски сети или подсети.
Напоминаю - маска сети показывает сколько разрядов будут использоваться в адресе для адресации в данной сети или подсети хостов. Зная сколько разрядов у нас есть для адресации можно подсчитать количество хостов путем поднятия количества разрядов в степень 2, и минус 2 адреса которые не используются для адресации хостов а именно, базовый адрес сети или подсети и адрес бродкаста ( broadcast) или адрес массовой рассылки данной сети или подсети. Если мы видим такое обозначение "/24" после адреса сети, это надо понимать так - используется 24 бита, выставленных в "1", с слева направо. пример: /16 = 255.255.0.0 = 11111111.11111111.00000000.00000000 /20 = 255.255.240.0 = 11111111.11111111.11110000.00000000/26 = 255.255.255.192 = 11111111.11111111.11111111.11000000
Допустим у нас есть подсеть 172.16.0.0/20. Требуется найти broadcast адрес.
Первое что мы делаем это определяемся с маской. Надпись "/20" после адреса подсети говорит нам что маска сети будет иметь двадцать "1" слева - направо, то есть у нее с учетом октетов будет такой вид: 11111111.11111111.11110000.00000000
Если перевести третий октет в 10-й вид то у нас получится число 240. Маска сети в 10-ой записи будет выглядеть так 255.255.240.0
Но нас больше интересует двоичная запись, и именно третьего, конечного октета 11110000 (число 240 в десятичной записи). Последний значащий бит если смотреть справа налево это 5-й бит в маске (отмечен зеленным). Если теперь возьмем значение этого октета но только от последнего значащего бита (от последней единицы если слева -направо, или первой если с право-налево) то есть значение 10000 и преобразуем в 10-ый вид и как показано в таблице 3 прошлой темы и это значение будет число 16 в 10-ом представлении. Вот это значение и будет "прыжок маски" или "network-jumps". Это и будет наш шаг изменения маски а именно:
172.16.0.0 - 172.16.15.255 - весь доступный диапазон адресов подсети, Количество хостов =4094 (2^12=4096, минус два адреса (-2)). 172.16.1.0 - 172.16.15.254 - доступные адреса подсети с учетом вычета базового адреса подсети 172.16.0.0 и адреса бродкаста 172.16.15.255.
Первый минимальный адрес которым мы можем воспользоваться в нашей подсети будет 172.16.0.1 а максимальный 172.16.15.254
Теперь к базовому адресу добавим "прыжок маски" или шаг сети и мы получим следующий адрес подсети
172.16.0.0 (+ 16 добавлено к третьему октету) = 172.16.16.0
Так как адрес следующей подсети находится сразу после адреса бродкаста то в нашем случае адрес бродкаста первой подсети будет равен 172.16.15.255
Адрес следующей подсети будет
172.16.16.0 (+ 16 добавлено к третьему октету) = 172.16.32.0
Тогда адрес бродкаста предыдущей подсети будет 172.16.31.255 так как он рядом.
Следующая сеть
172.16.32.0 (+ 16 добавлено к третьему октету) = 172.16.48.0
Значит бродкаст предыдущей подсети будет 172.16.47.255
Следующая подсеть будет 172.16.64.0. Тогда broadcast адрес предыдущей подсети будет 172.16.63.255
И так далее. Как вы понимайте последняя доступная подсеть с учетом этой маски будет иметь в третьем октете число 240 или
11110000 (все доступное биты для выбора подсети заняты единицами) и мы вынуждены будем поменять маску сети так как больше доступных подсетей нет при данной маске.
Тут уместно вас спросить - а сколько пдосетей мы можем создать используя такую маску как в нашем примере? Если вы не знайте.... ответа мне слегка грустно...и не знаю на что сетовать...на то что не смог объяснить или на ваше невнимательное чтение...Ну ладно пошли дальше.
Возьмем еще пример. Пусть будет сеть 172.16.64.0/27 Значит маска сети у нас будет 11111111.11111111.11111111.11100000 или (смотрим и запоминаем таблицу 3 из прошлой статьи) 255.255.255.224.
Вычисляем шаг сети. У нас он будет 100000 (отмечен зеленым). Переворачиваем его в 10-ый формат, и получим цифру 32. Это и будет наш шаг сети
Вычисляем следующую подсеть
172.16.64.0 (+ 32 добавлено к третьему октету) = 172.16.64.32
Адрес бродкаста для нашей подсети будет 172.16.64.31
Для подсети 172.16.64.32 адрес бродкаста будет 172.16.64.32 + (шаг сети) 32 и минус 1 = 63 или полный адрес бродкаста будет 172.16.64.63 Ну и так далее.
Часто использованные сетевые
маски (класс С) показаны на рисунке 1.
Рисунок 1. Для проверки ваших знаний пройдите тест по данной теме который находится здесь.
|