Подсети
Последней темой, которую мы хотели разобрать перед тем, как перейдем к практическим примерам, является разделение сетей на подсети. Как мы уже упомянули выше, делается это с расчетом на масштабируемость, удобство администрирования и обеспечения безопасности.
Любую сеть, как классовую так и сеть меньшего размера (к примеру сеть 192.168.1.1 из диапазона частных адресом), можно разделить на несколько сетей. При этом, каждая из получившихся сетей должна будет иметь свой адрес. Если бы этого не было, то маршрутизаторы не смогли бы отправлять трафик в эту сеть, ведь они просто напросто бы не знали по какому адресу ее найти.
Логично предположить, что подсеть ip адресов будет брать за основу адрес, который лежит в диапазоне основной сети. Возьмем для примера нашу сеть 192.168.1.1 — и разделим ее на две подсети. В итоге мы получим две самостоятельные сети с такими адресами:
192.168.1.1192.168.1.128
Соответственно, чтобы отправить трафик в каждую из них, нужно настроить маршрутизацию на соответствующий адрес.
Формирование подсетей
С помощью подсетей одну сеть можно разделить на несколько. В приведенном ниже примере администратор сети создает две подсети, чтобы изолировать группу серверов от остальных устройств в целях безопасности.
В этом примере сеть компании имеет адрес 192.168.1.0. Первые три октета адреса (192.168.1) представляют собой адрес сети, а оставшийся октет — адрес хоста, что позволяет использовать в сети максимум 28 — 2 = 254 хостов.
Чтобы разделить сеть 192.168.1.0 на две отдельные подсети, нужно «позаимствовать» один бит из адреса хоста. В этом случае маска подсети станет 25-битной (255.255.255.128 или /25). «Одолженный» бит адреса хоста может быть либо нулем, либо единицей, что дает нам две подсети: 192.168.1.0/25 и 192.168.1.128/25.
Сеть A | Сеть B | |
---|---|---|
IP-адрес подсети | 192.168.1.0/25 | 192.168.1.128/25 |
Маска подсети | 255.255.255.128 | 255.255.255.128 |
Широковещательный адрес | 192.168.1.127 | 192.168.1.255 |
Минимальный IP-адрес хоста | 192.168.1.1 | 192.168.1.129 |
Максимальный IP-адрес хоста | 192.168.1.126 | 192.168.1.254 |
Четыре подсети
В предыдущем примере было показано использование 25-битной маски подсети для разделения 24-битного адреса на две подсети. Аналогичным образом для разделения 24-битного адреса на четыре подсети потребуется «одолжить» два бита идентификатора хоста, чтобы получить четыре возможные комбинации (00, 01, 10 и 11). Маска подсети состоит из 26 бит (11111111.11111111.11111111.11000000), то есть 255.255.255.192.
Каждая подсеть содержит 6 битов адреса хоста, что в сумме дает 26 — 2 = 62 хоста для каждой подсети (адрес хоста из всех нулей — это сама подсеть, а из всех единиц — широковещательный адрес для подсети).
Первая подсеть | Вторая подсеть | Третья подсеть | Четвертая подсеть | |
---|---|---|---|---|
IP-адрес подсети | 192.168.1.0/26 | 192.168.1.64/26 | 192.168.1.128/26 | 192.168.1.192/26 |
Маска подсети | 255.255.255.192 | 255.255.255.192 | 255.255.255.192 | 255.255.255.192 |
Широковещательный адрес | 192.168.1.63 | 192.168.1.127 | 192.168.1.191 | 192.168.1.255 |
Минимальный IP-адрес хоста | 192.168.1.1 | 192.168.1.65 | 192.168.1.129 | 192.168.1.193 |
Максимальный IP-адрес хоста | 192.168.1.62 | 192.168.1.126 | 192.168.1.190 | 192.168.1.254 |
Подсеть 169.254.0.0/16 используется для автоматического назначения IP операционной системой в случае, если настроено получение адреса по DHCP, но ни один сервер не отвечает.
IPv4-адрес и протокол IP
Давайте начнем с самого начала, IP-адрес с десятичным числовым набором, который логически, однозначно и однозначно идентифицирует сетевой интерфейс в соответствии с иерархией . Адреса IPv4 создаются с использованием 32-битного адреса (32 единицы и нули в двоичном формате), расположенных в 4 октета (группы по 8 бит), разделенных точками . Для более удобного представления мы всегда используем десятичную запись, это непосредственно то, что мы видим в хостах и сетевом оборудовании.
IP-адрес обслуживает систему адресации в соответствии с IP или Интернет-протоколом . Протокол IP работает на сетевом уровне модели OSI и является протоколом, не ориентированным на установление соединения, поэтому обмен данными может осуществляться без предварительного согласования между приемником и передатчиком. Это означает, что пакет данных будет искать самый быстрый путь в сети, пока не достигнет пункта назначения, переключаясь с маршрутизатора на маршрутизатор.
Этот протокол был реализован в 1981 году, в нем кадр или пакет данных имеет заголовок, называемый IP-заголовком . В нем, помимо прочего, хранятся IP-адреса пункта назначения и источника, так что маршрутизатор знает, куда отправлять пакеты в каждом случае. Но кроме того, IP-адреса хранят информацию об идентификации сети, в которой они работают, и даже о ее размере и различии между различными сетями. Это делается благодаря маске сети и IP-адресу сети .
Примеры расчета сетей
Деление сети осуществляется присвоением битов из порции адреса хоста к порции адреса сети. Тем самым мы увеличиваем возможное количество подсетей, но уменьшаем количество хостов в подсетях. Чтобы узнать, сколько получается подсетей из присвоенных битов надо воспользоваться cisco формулой расчета сетей: 2n, где n является количеством присвоенных бит.
Пример расчета сети на 2 подсети.
У нас есть адрес сети 192.168.1.0/24, нам надо разделить имеющуюся сеть на 2 подсети. Попробуем забрать от порции хоста 1 бит и воспользоваться формулой: 21=2, это значит, что если мы заберём один бит от части хоста, то мы получим 2 подсети. Присвоение одного бита из порции хоста увеличит префикс на один бит: /25. Теперь надо выписать 2 одинаковых IP адреса сети в двоичном виде изменив только присвоенный бит (у первой подсети присвоенный бит будет равен 0, а у второй подсети = 1). Захваченный бит я выделю более жирным шрифтом красного цвета.
2 подсети (захваченный бит я выделю более жирным шрифтом красного цвета):
1) 11000000.10101000.00000001.0000000
2) 11000000.10101000.00000001.10000000
Теперь запишем рядом с двоичным видом десятичный, и добавим новый префикс. Красным пометил порцию подсети, а синим – порцию хоста.
1) 11000000.10101000.00000001.00000000 = 192.168.1.0/25
2) 11000000.10101000.00000001.10000000 = 192.168.1.128/25
Всё, сеть разделена на 2 подсети. Как мы видим выше, порция хоста теперь составляет 7 бит.
Чтобы высчитать, сколько адресов хостов можно получить используя 7 бит, необходимо воспользоваться cisco формулой расчёта хостов: 2n-2, где n = количество бит в порции хоста.
27 — 2 = 126 хостов. В начале статьи было сказано, что вычитаемая цифра 2 является двумя адресами, которые нельзя присвоить хосту: адрес сети и широковещательный адрес.
Адрес сети, это когда в порции хоста все нули, а широковещательный адрес, это когда в порции хоста все единицы. Выпишем эти адреса для каждой подсети в двоичном и десятичном виде:
11000000.10101000.00000001.00000000 = 192.168.1.0/25 (адрес сети первой подсети)
11000000.10101000.00000001.01111111 = 192.168.1.127/25 (широковещательный адрес первой подсети)
11000000.10101000.00000001.10000000 = 192.168.1.128/25 (адрес сети второй подсети)
11000000.10101000.00000001.11111111 = 192.168.1.255/25 (широковещательный адрес второй подсети)
Пример расчета сети на 4 подсети.
Этот пример делается абсолютно по тому же алгоритму, что и предыдущий, поэтому я запишу текст немного короче. Адрес я буду использовать тот же, чтобы вы видели отличия. Если нужны подробности, пишите на почту [email protected].
У нас есть адрес сети 192.168.1.0/24, надо разделить сеть на 4 подсети. Высчитываем по формуле, сколько нам надо занять бит от хоста: 22 = 4. Префикс изменяется на /26.
4 подсети (захваченный бит я выделю более жирным шрифтом красного цвета):
1) 11000000.10101000.00000001.00000000
2) 11000000.10101000.00000001.01000000
3) 11000000.10101000.00000001.10000000
4) 11000000.10101000.00000001.11000000
Красным пометил порцию подсети, а синим – порцию хоста:
1) 11000000.10101000.00000001.00000000 = 192.168.1.0/26
2) 11000000.10101000.00000001.01000000 = 192.168.1.64/26
3) 11000000.10101000.00000001.10000000 = 192.168.1.128/26
4) 11000000.10101000.00000001.11000000 = 192.168.1.192/26
Всё, сеть разделена на 4 подсети. Порция хоста теперь составляет 6 бит.
26 — 2 = 62 хостов.
11000000.10101000.00000001.00000000 = 192.168.1.0/26 (адрес сети первой подсети)
11000000.10101000.00000001.00111111 = 192.168.1.63/26 (широковещательный адрес первой подсети)
11000000.10101000.00000001.01000000 = 192.168.1.64/26 (адрес сети второй подсети)
11000000.10101000.00000001.01111111 = 192.168.1.127/26 (широковещательный адрес второй подсети)
11000000.10101000.00000001.10000000 = 192.168.1.128/26 (адрес сети третьей подсети)
11000000.10101000.00000001.10111111 = 192.168.1.191/26 (широковещательный адрес третьей подсети)
11000000.10101000.00000001.11000000 = 192.168.1.192/26 (адрес сети четвёртой подсети)
11000000.10101000.00000001.11111111 = 192.168.1.255/26 (широковещательный адрес четвёртой подсети)
IPv6 и IPv4
Первым широко используемым протоколом семейства TCP/IP стал IPv4. Для идентификации сетевых интерфейсов он стал использовать 32-битные адреса по четыре октета (восемь позиций под ноль или единицу). IP-адрес присваивается каждому сетевому интерфейсу сети, каждой сетевой карте любого компьютера. Именно по IP-адресу, прикрепленному к пакету данных, сеть понимает, откуда этот пакет пришел и куда его следует переслать. Использовать длинные адреса с нулями и единицами общим числом 32 штуки — неудобно, поэтому IP-адрес принято записывать в десятичной системе. Выглядит IP-адрес, как четыре числа, разделенные точками, например 192.168.33.34. Каждое число в IP-адресе может принимать значение от 0 до 255. Таким образом, полный диапазон IP-адресации — это адреса от 0.0.0.0 до 255.255.255.255.
Почему 255 — понять нетрудно. Максимально возможное число в любом октете составляет 11111111, что в переводе из двоичной в десятичную систему и означает 255. При таком подходе адресное пространство всех доступных IP-адресов протокола IPv4 ограничено 4 294 967 296 (232) адресами. Более продвинутая версия протокола IPv6 лишена этого недостатка. Она содержит ряд принципиальных изменений и использует длину адреса в 128 бит. Возникает вполне логичный вопрос — что произойдет, когда в диапазоне адресов IPv4 не останется свободных? А ничего и не произойдет, просто стеки протоколов IPv6 и IPv4 будут использоваться одновременно.
Представление и ассортимент
IP-адрес будет иметь такую номенклатуру:
Поскольку каждый октет имеет двоичное число из 8 нулей и единиц, переводя его в десятичную запись, мы можем создавать числа в диапазоне от 0 до 255 .
Мы не будем объяснять в этой статье, как преобразовать из десятичной в двоичную и наоборот, вы найдете это здесь:
Полное руководство о том, как сделать преобразования между системами нумерации
Тогда у нас никогда не будет IP-адреса с номерами меньше 0 или больше 255. Когда будет достигнуто 255, следующее число снова будет равно 0, а следующий октет будет одной цифрой, увеличивающей счет. Это как минутная стрелка часов.
Версии IP-адресов
5.1. IPv4
IPv4 представляет собой протокол Интернета 4 версии. Хоть это и четверное поколение, IPv4 является стандартной версией протокола. Она наиболее распространена для функционирования большей части сети Интернет.
Согласно протоколу IPv4, каждый адрес состоит из двоичной системы чисел (нули и единицы). Обычно они записываются в качестве десятичных чисел. Они разделяются с помощью точек. Это необходимо, дабы облегчить и читаемость, сделав адрес более запоминающимся.
Версия протокола IPv4 применяет адресное пространство в 32 бита. Его размер составляет 4 байта. Всего их составляет около 4,3 миллиарда адресов.
Пример IPv4 адреса
5.2. IPv6
IPv6 представляет собой более современную и улучшенную альтернативу адресов версии IPv4. У последнего стремительное заканчивается адресное пространство. Их количество составляет 4.3 миллиарда — это большое число, однако такое количество IP недостаточно для удовлетворения спроса пользователей. Люди используют для подключения к Интернету все большее количество устройств: мобильные телефоны, планшеты, лэптопы и т.д. Число абонентов стремительно растет.
Поэтому и был разработан протокол более новой версии — IPv6. Он использует 128-битное дисковое пространство. Число адресов составляет 2 в 128 степени (достаточно для удовлетворения нужд пользователей в ближайшие несколько десятилетий или даже столетие).
Адрес, размер которого составляет 128 бит, сильно отличается от протокола IPv4. Все группы чисел разделяются с помощью двоеточия (вместо стандартной точки).
Пример IPv6 адреса
Рассмотрим основные отличия IPv6 от классического IPv4.
Отличительные особенности IPv6:
- Большее место для адреса;
- Возможность расширяемости;
- Встроенная система безопасности;
- Новый формат заголовка;
- Наличие нового протокола, необходимого для взаимодействия соседних узлов;
- Иерархичная и высокоэффективная система маршрутизации;
- Высококлассная поддержка QoS;
- Конфигурация адресов с помощью DHCP или без нее;
Как рассчитать маску подсети. Побитный сдвиг
Разбираемся дальше. Маска подсети помогает разбивать крупные сети на более мелкие. Первым делом предопределяется, на какое количество подсетей нужно разбить сеть и сколько максимально хостов в них должно быть.
Предположим, требуется разбить сеть 192.1.1.0 на 6 подсетей, в самой большой планируется разместить максимум 20 узлов. Исходя из этого, производится расчёт.
Алгоритм:
-
Определить класс разбиваемой сети. Для примера предложена сеть класса С, маска, используемая по умолчанию 255.255.255.0 или /24.
-
Выяснить, какое количество бит требуется для шести подсетей. Для этого число сетей округляется до ближайшей степени двойки, это 8. Получается, что требуется 3 бита, так как 8 = 2^3.
-
Представить маску по умолчанию в двоичный вид для наглядности:
-
Для создания 6 подсетей требуется забрать 3 бита из октета адреса хоста. К 24 битам адреса сети прибавляется еще 3. В итоге 24+3 = 27.
-
Остаётся перевести маску в десятичный вид. Последний октет 11100000 — это 224. Получается, маска имеет вид
Либо, обращаясь к CIDR, посчитать количество битов по единицам — 27, и посмотреть значение префикса.
-
Пользуясь тремя битами и с помощью маски разбиваем подсети. В последнем октете проставляем единицы. Для наглядности это можно сделать в двоичном виде:
Посчитать адреса подсетей можно и без двоичного представления, здесь сделано для наглядного отображения того, почему получаются именно эти адреса, а не другие.
Таким образом можно создать 8 подсетей, но в задании требуется только 6, поэтому остановимся на них.
Времена, когда подобные расчёты проводились вручную, далеко позади. Информация о том, как узнать маску подсети, преподаётся в ВУЗах и на различных курсах. Как правило, её старательно пытаются изучить студенты и профессионалы, которые хотят пройти сертификацию.
Сегодня для облегчения работы системных администраторов и сетевых инженеров существует множество различных калькуляторов. Эти системы могут провести любой расчёт за несколько секунд. Однако прибегать к помощи программ при небольшом объёме данных неинтересно. Иногда проще и быстрее разбить сеть в уме, чем искать нужный ресурс.
Понимание того, как производится расчёт маски подсети, необходимо специалисту, даже если он никогда на практике не будет его применять.
Немного о сетевой адресации
В настоящее время все существующие сети разделены на три класса: A, B и C. И имеют следующие характеристики
Сети класса A:
- Диапазон значений первого октета 1-126
- Допустимые адреса сетей 1.0.0.0 — 126.0.0.0
- Количество сетей в классе 2^7-2
- Количество узлов в сети 2^24-2
Сети класса B:
- Диапазон значений первого октета 128-191
- Допустимые адреса сетей 128.0.0.0 — 191.225.0.0
- Количество сетей в классе 2^14
- Количество узлов в сети 2^16-2
Сети класса C:
- Диапазон значений первого октета 192-223
- Допустимые адреса сетей 192.0.0.0 — 223.225.225.0
- Количество сетей в классе 2^21
- Количество узлов в сети 2^8-2
На картинке ниже представлены ip адреса, каждый из которых относится к своему типу классовой сети. В скобках указаны количества байт, которые отведены для обозначения адреса сети и узла соответственно.
В том случае, если отсутствует разбиение на подсети, для каждого класса используется стандартная маска:
Класс A — 255.0.0.0Класс B — 255.255.0.0Класс C — 255.255.255.0
Частные и зарегистрированные адреса
Как вы уже поняли, каждое устройство в сети интернет, должно иметь свой уникальный адрес. Но в таком случае количество доступных адресов быстро бы закончилось. Отчасти эта проблема была решена введение зарезервированных адресов. Их разрешили использовать для частных сетей, которые не публиковались бы в глобальной сети.
Частные сети:
Класс A — 10.0.0.0Класс B — 172.16.0.0 по 172.31.0.0Класс С — 192.168.0.0 по 192.168.255.0
Зарезервированные адреса из этих диапазонов можно использовать при построении домашней сети, или сети предприятия. И все будет нормально работать.
У вас может возникнуть логичный вопрос — а как в таком случае подключаться к Интернет? Здесь ситуация разрешается с использованием одного или нескольких публичных ip адреса, которые выдает провайдер при подключении к сети. И все компьютеры частной сети используют его при подключении к Интернет. Это реализуется благодаря технологии NAT (трансляция сетевых адресов).
Функциональность
Маска сети представляет собой комбинацию из 0 и 1, которая используется для экранирования части IP-адреса, содержащей сетевой код, что гарантирует, что единственной видимой частью будет адрес хоста. Первая часть, содержащая единицы, превратит часть IP адреса, содержащую идентификатор сети, в ‘0’. Следующие двоичные ‘0’ позволят идентификатору хоста остаться. Часто используемая маска сети — 255.255.255.255.0. (Это десятичный эквивалент двоичной строки для восьми.) Маска подсети обычно представляет собой метод создания небольшой подсети из широкого диапазона IP-адресов. Как правило, длина маски подсети определяется в 24-битном формате для всех типов IP-классов. В зависимости от класса IP-адреса, который будет использоваться вместе с доступными сетевыми масками, разделение сетей производится следующим образом:
- 255.0.0.0.0 — класс A (8-битная маска сети)
- 255.255.0.0 — класс B (16-битная маска сети)
- 255.255.255.0 — класс А (24-битная маска сети)
При этом можно предположить, что чем длиннее маска сети, тем больше сетей она может вместить. Таким образом, количество хостов уменьшается с класса А до класса С, а количество доступных систем или подсетей увеличивается.
- Для класса A маска подсети определяет диапазон IP-адресов, в котором первые три цифры раздела совпадают, но на остальных частях может содержать любое число, которое находится в диапазоне от 0 до 255.
- Для класса B адреса имеют одинаковые первые две секции; однако, набор цифр во втором наборе из двух секций может быть разным.
- Для класса С адреса имеют одинаковые первые три секции, и только последняя из них может иметь разные номера. Таким образом, диапазон IP-адресов класса С может содержать до 256 адресов.
Более того, обычно маска сети представляет собой 32-битное значение, которое обычно используется для разделения сегментов IP-адресов. Хотя маска сети класса С часто пишется как «255.255.255.255.0», ее также можно определить как 11111111.1111111111.111111.11111111.00000000. Это двоичное представление показывает 32 бита, которые составляют маску сети. Это также видно по тому, как маска подсети маскирует IP-адреса, которые она содержит. Секция, в которой есть все ‘1’, предопределена, и ее нельзя изменить, с другой стороны, деталь со всеми ‘0’ может быть произвольным числом от 0 до 255.