Поиск по сайту:

Общие сведения об IP-адресах, подсетях и нотации CIDR для работы в сети


Введение

Понимание сети является фундаментальной частью настройки сложных сред в Интернете. Это имеет значение при попытках эффективно обмениваться данными между серверами, разработке безопасных сетевых политик и поддержании организованности ваших узлов.

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

В этой статье мы обсудим некоторые более конкретные концепции, связанные с проектированием или взаимодействием с сетевыми компьютерами. В частности, мы рассмотрим сетевые классы, подсети и нотацию CIDR для группировки IP-адресов.

Понимание IP-адресов

Каждое местоположение или устройство в сети должно быть адресуемым. Это означает, что к нему можно обратиться, обратившись к его обозначению в предопределенной системе адресов. В обычной модели сетевого уровня TCP/IP это обрабатывается на нескольких разных уровнях, но обычно, когда мы ссылаемся на адрес в сети, мы говорим об IP-адресе.

IP-адреса позволяют получить доступ к сетевым ресурсам через сетевой интерфейс. Если один компьютер хочет установить связь с другим компьютером, он может адресовать информацию по IP-адресу удаленного компьютера. Если предположить, что два компьютера находятся в одной сети или что разные компьютеры и устройства между ними могут транслировать запросы по сети, компьютеры должны иметь возможность связываться друг с другом и отправлять информацию.

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

Разница между IPv4 и IPv6

Сегодня в системах широко используются две версии протокола IP: IPv4 и IPv6. IPv6 постепенно заменяет IPv4 из-за усовершенствований протокола и ограничений адресного пространства IPv4. Проще говоря, в мире сейчас слишком много подключенных к Интернету устройств для количества адресов, доступных через IPv4.

Адреса IPv4 являются 32-битными адресами. Каждый байт или 8-битный сегмент адреса делится точкой и обычно выражается числом от 0 до 255. Несмотря на то, что эти числа обычно выражаются в десятичном формате для облегчения понимания человеком, каждый сегмент обычно называют октетом, чтобы выразить тот факт, что он представляет собой представление 8 битов.

Типичный адрес IPv4 выглядит примерно так:

192.168.0.5

Наименьшее значение в каждом октете — 0, а наибольшее значение — 255.

Мы также можем выразить это в двоичном формате, чтобы получить лучшее представление о том, как будут выглядеть четыре октета. Мы разделим каждые 4 бита пробелом для удобства чтения и заменим точки тире:

1100 0000 - 1010 1000 - 0000 0000 - 0000 0101

Признание того, что эти два формата представляют одно и то же число, будет важно для понимания концепций позже.

Хотя есть и другие различия в протоколах и фоновых функциях IPv4 и IPv6, наиболее заметным отличием является адресное пространство. IPv6 выражает адреса как 128-битное число. Чтобы представить это в перспективе, это означает, что IPv6 имеет место для более чем 7,9 × 1028 раз больше, чем количество адресов, как IPv4.

Чтобы выразить этот расширенный диапазон адресов, IPv6 обычно записывается в виде восьми сегментов из четырех шестнадцатеричных цифр. Шестнадцатеричные числа представляют числа 0–15 с использованием цифр 0–9, а также чисел a–f для выражения более высоких значений. Типичный адрес IPv6 может выглядеть примерно так:

1203:8fe0:fe80:b897:8990:8a7c:99bf:323d

Вы также можете увидеть эти адреса в компактном формате. Правила IPv6 позволяют удалять начальные нули из каждого октета и заменять один диапазон нулевых групп двойным двоеточием (::).

Например, если у вас есть одна группа в адресе IPv6, которая выглядит так:

...:00bc:...

Вместо этого вы можете просто ввести:

...:bc:...

Чтобы продемонстрировать второй случай, если у вас есть диапазон в адресе IPv6 с несколькими группами в качестве нулей, например:

...:18bc:0000:0000:0000:00ff:...

Вы можете сжать это так (также удалив начальные нули группы, как мы сделали выше):

...:18bc::ff...

Вы можете сделать это только один раз для каждого адреса, иначе полный адрес не удастся восстановить.

Хотя IPv6 становится все более распространенным с каждым днем, в этом руководстве мы будем изучать оставшиеся концепции с использованием адресов IPv4, потому что их легче обсуждать с меньшим адресным пространством.

Классы адресов IPv4 и зарезервированные диапазоны

IP-адреса обычно состоят из двух отдельных компонентов. Первая часть адреса используется для идентификации сети, частью которой является адрес. Часть, которая идет позже, используется для указания конкретного хоста в этой сети.

Где заканчивается спецификация сети и начинается спецификация хоста, зависит от того, как настроена сеть. Мы сейчас обсудим это более подробно.

Адреса IPv4 традиционно делились на пять разных «классов», названных от A до E, предназначенных для различения сегментов доступного адресного пространства IPv4. Они определяются первыми четырьмя битами каждого адреса. Вы можете определить, к какому классу принадлежит IP-адрес. чтобы, глядя на эти биты.

Вот таблица перевода, которая определяет адреса на основе их начальных битов:

  • Класс А
    • 0--- : если первый бит адреса IPv4 равен \0, это означает, что адрес является частью класса A. Это означает, что любой адрес из 0.0 .0.0 до 127.255.255.255 относится к классу A.

    Класс Б

    • 10-- : класс B включает любой адрес от 128.0.0.0 до 191.255.255.255. Это представляет адреса, у которых есть 1 для их первого бита, но нет \1 для их второго бита.

    Класс С

    • 110- : класс C определяется как адреса в диапазоне от 192.0.0.0 до 223.255.255.255. Это представляет все адреса с «1» в первых двух битах, но без «1» в третьем бите.

    Класс D

    • 1110 : этот класс включает адреса, в которых первые три бита имеют \111, а следующий бит равен \0. Этот диапазон адресов включает адреса от 224.0.0.0 до 239.255.255.255.

    Класс Е

    • 1111 : этот класс определяет адреса между 240.0.0.0 и 255.255.255.255. Любой адрес, начинающийся с четырех битов \1, включается в этот класс.

    Адреса класса D зарезервированы для протоколов многоадресной рассылки, которые позволяют отправить пакет группе хостов за одно движение. Адреса класса E зарезервированы для будущего и экспериментального использования и в основном не используются.

    Традиционно каждый из обычных классов (A–C) разделял сетевую и узловую части адреса по-разному, чтобы приспособиться к сетям разного размера. Адреса класса A использовали остаток первого октета для представления сети, а остальную часть адреса — для определения хостов. Это было удобно для определения нескольких сетей с большим количеством хостов в каждой.

    В адресах класса B первые два октета (остаток первого и весь второй) использовались для определения сети, а остальные — для определения хостов в каждой сети. В адресах класса C первые три октета используются для определения сети, а последний октет — для определения хостов в этой сети.

    Разделение больших частей IP-пространства на классы в настоящее время является почти устаревшей концепцией. Первоначально это было реализовано как временное решение проблемы быстрого исчерпания адресов IPv4 (у вас может быть несколько компьютеров с одним и тем же хостом, если они находятся в разных сетях). Это было заменено в основном более поздними схемами, которые мы обсудим ниже.

    Зарезервированные частные диапазоны

    Есть также некоторые части пространства IPv4, которые зарезервированы для определенных целей.

    Одним из наиболее полезных зарезервированных диапазонов является диапазон обратной связи, определяемый адресами от 127.0.0.0 до 127.255.255.255. Этот диапазон используется каждым хостом для тестирования сети с самим собой. Обычно это выражается первым адресом в этом диапазоне: 127.0.0.1.

    Каждый из обычных классов также имеет диапазон внутри них, который используется для обозначения адресов частной сети. Например, для адресов класса A адреса от 10.0.0.0 до 10.255.255.255 зарезервированы для назначения частной сети. Для класса B этот диапазон составляет от 172.16.0.0 до 172.31.255.255. Для класса C диапазон от 192.168.0.0 до 192.168.255.255 зарезервирован для частного использования.

    Любой компьютер, который не подключен к Интернету напрямую (любой компьютер, подключенный к маршрутизатору или другой системе NAT), может использовать эти адреса по своему усмотрению.

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

    Сетевые маски и подсети

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

    Как мы обсуждали выше, каждое адресное пространство разделено на сетевую часть и часть хоста. Объем адреса, который занимает каждый из них, зависит от класса, к которому принадлежит адрес. Например, для адресов класса C первые 3 октета используются для описания сети. Для адреса 192.168.0.15 часть 192.168.0 описывает сеть, а часть 15 описывает хост.

    По умолчанию каждая сеть имеет только одну подсеть, которая содержит все адреса хостов, определенные в ней. Сетевая маска — это в основном спецификация количества битов адреса, которые используются для сетевой части. Маска подсети — это еще одна сетевая маска, используемая для дальнейшего разделения сети.

    Каждый бит адреса, который считается значимым для описания сети, должен быть представлен как «1» в сетевой маске.

    Например, адрес, который мы обсуждали выше, 192.168.0.15, может быть выражен следующим образом в двоичном формате:

    1100 0000 - 1010 1000 - 0000 0000 - 0000 1111
    

    Как мы описали выше, сетевая часть для адресов класса C — это первые 3 октета или первые 24 бита. Поскольку это значимые биты, которые мы хотим сохранить, маска сети будет такой:

    1111 1111 - 1111 1111 - 1111 1111 - 0000 0000
    

    Это можно записать в обычном формате IPv4 как 255.255.255.0. Любой бит, равный «0» в двоичном представлении сетевой маски, считается частью хостовой части адреса и может быть переменным. Биты, равные «1», являются статическими, однако, для сети или подсети, которая обсуждается.

    Мы определяем сетевую часть адреса, применяя побитовую операцию AND между адресом и сетевой маской. Побитовая операция AND сохранит сетевую часть адреса и отбросит часть адреса. Результатом этого в нашем приведенном выше примере, который представляет нашу сеть, является:

    1100 0000 - 1010 1000 - 0000 0000 - 0000 0000
    

    Это можно выразить как 192.168.0.0. Тогда спецификация хоста представляет собой разницу между этим исходным значением и частью хоста. В нашем случае это хост 0000 1111 или 15.

    Идея разбиения на подсети состоит в том, чтобы взять часть адресного пространства хоста и использовать его в качестве дополнительной сетевой спецификации для повторного разделения адресного пространства.

    Например, сетевая маска 255.255.255.0, как мы видели выше, оставляет нам 254 хоста в сети (вы не можете оканчиваться на 0 или 255, потому что они зарезервированы). Если бы мы хотели разделить это на две подсети, мы могли бы использовать один бит обычной части адреса хоста в качестве маски подсети.

    Итак, продолжая наш пример, сетевая часть:

    1100 0000 - 1010 1000 - 0000 0000
    

    Принимающая часть это:

    0000 1111
    

    Мы можем использовать первый бит нашего хоста для обозначения подсети. Мы можем сделать это, настроив маску подсети следующим образом:

    1111 1111 - 1111 1111 - 1111 1111 - 0000 0000
    

    К этому:

    1111 1111 - 1111 1111 - 1111 1111 - 1000 0000
    

    В традиционной нотации IPv4 это будет выглядеть как 192.168.0.128. Что мы сделали здесь, так это обозначили первый бит последнего октета как значимый для сетевой адресации. Это эффективно создает две подсети. Первая подсеть — от 192.168.0.1 до 192.168.0.127. Вторая подсеть содержит хосты от 192.168.0.129 до 192.168.0.255. Традиционно сама подсеть не должна использоваться в качестве адреса.

    Если мы будем использовать больше битов пространства хоста для работы в сети, мы сможем получить все больше и больше подсетей.

    CIDR-нотация

    Система под названием бесклассовая междоменная маршрутизация, или CIDR, была разработана как альтернатива традиционной подсети. Идея состоит в том, что вы можете добавить к самому IP-адресу спецификацию количества значащих битов, составляющих маршрутную или сетевую часть.

    Например, мы могли бы выразить идею о том, что IP-адрес 192.168.0.15 связан с сетевой маской 255.255.255.0, используя нотацию CIDR 192.168.0.15/ 24. Это означает, что первые 24 бита данного IP-адреса считаются значимыми для сетевой маршрутизации.

    Это дает нам некоторые интересные возможности. Мы можем использовать их для ссылки на «суперсети». В этом случае мы имеем в виду более широкий диапазон адресов, который невозможен с традиционной маской подсети. Например, в сети класса C, как указано выше, мы не можем комбинировать адреса. из сетей 192.168.0.0 и 192.168.1.0, поскольку сетевая маска для адресов класса C — 255.255.255.0.

    Однако, используя нотацию CIDR, мы можем объединить эти блоки, сославшись на этот фрагмент как 192.168.0.0/23. Это указывает на то, что для сетевой части, на которую мы ссылаемся, используется 23 бита.

    Таким образом, первая сеть (192.168.0.0) может быть представлена следующим образом в двоичном виде:

    1100 0000 - 1010 1000 - 0000 0000 - 0000 0000
    

    А вторая сеть (192.168.1.0) будет такой:

    1100 0000 - 1010 1000 - 0000 0001 - 0000 0000
    

    Указанный нами адрес CIDR указывает, что первые 23 бита используются для сетевого блока, на который мы ссылаемся. Это эквивалентно сетевой маске 255.255.254.0 или:

    1111 1111 - 1111 1111 - 1111 1110 - 0000 0000
    

    Как видите, в этом блоке 24-й бит может быть либо 0, либо 1, и он все равно будет совпадать, потому что сетевой блок заботится только о первых 23 цифрах.

    CIDR позволяет нам лучше контролировать адресацию непрерывных блоков IP-адресов. Это намного полезнее, чем подсети, о которых мы говорили изначально.

    Заключение

    Надеюсь, к настоящему моменту у вас должно быть рабочее представление о некоторых сетевых последствиях протокола IP. Хотя работа с этим типом сети не всегда интуитивно понятна и иногда с ней может быть сложно работать, важно понимать, что происходит, чтобы правильно настроить программное обеспечение и компоненты.

    В Интернете есть различные калькуляторы и инструменты, которые помогут вам понять некоторые из этих концепций и получить правильные адреса и диапазоны, которые вам нужны, путем ввода определенной информации. CIDR.xyz обеспечивает преобразование десятичных IP-адресов в октеты и позволяет визуализировать различные сетевые маски CIDR.