Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

Классовая модель IPv4-адресации оказалась нерациональной с точки зрения эффективного использования адресного пространства. Например, для сети из 1 000 устройств назначается диапазон адресов класса В, в котором 65 534 адресов. При этом 1 000 адресов используются, а оставшиеся 64 534 – не используются.

В случае классовой адресации сеть можно было разбить только на подсети одинакового размера. При этом если выбранная маска подсети обеспечивает нужное количество подсетей, возможно, что допустимого количества узлов для каждой подсети будет недостаточно или, наоборт, большая часть адресов не будет использована. Например, большое количество узлов является избыточным для подсети, которая связывает два маршрутизатора по схеме «точка-точка». В этом случае необходимо всего два IPv4-адреса для адресации интерфейсов соседних маршрутизаторов. Таким образом, разбиение сети на подсети разного размера позволило бы рационально использовать адресное пространство.

Постепенно с ростом интернета произошел отказ от классовой схемы, и была принята бесклассовая модель IPv4-адресации, в которой отсутствует привязка к классу сети и маске подсети по умолчанию. Бесклассовая адресация использует маски подсети переменной длины (Variable Length Subnet Mask, VLSM) и технологию бесклассовой междоменной маршрутизации (Classless Inter Domain Routing, CIDR). Термин «маска переменной длины» означает, что сеть может быть разбита на подсети с различными масками подсети. Основная идея применения VLSM заключается в том, что можно разбить сеть на подсеть, потом подсеть разбить еще на подсети точно таким же образом, как была разбита первоначальная сеть. То есть сеть может быть разбита на подсети разных размеров, с разными масками. Маски подсети являются основой метода бесклассовой маршрутизации и записываются в виде нотации «IP-адрес/длина префикса». Число после «/» означает количество единичных разрядов в маске подсети. Например, сетевой адрес 192.168.1.8 с маской подсети 255.255.255.248 также может быть записан, как 192.168.1.8/29. Число 29 указывает, что в маске подсети 255.255.255.248 29 единичных бит.

Деление сети на подсети с использованием масок переменной длины аналогично традиционному делению на подсети. Рассмотрим пример, показанный на рис.6.17.

Рис. 6.17. Пример разбиения сети 192.168.1.0/24 на подсети при помощи VLSM

Допустим организации выделена сеть класса С 192.168.1.0/24. Требуется разделить ее на 6 подсетей. В подсетях 1, 2, 3 и 4 должно быть 10 узлов, в 5-й подсети – 50 узлов, в 6-й подсети – 100. Теоретически для сети 192.168.1.0/24 допустимое количество узлов равно 254, и разбить такую сеть на подсети с требуемым количеством узлов без использования VLSM невозможно.

Сначала необходимо разделить сеть 192.168.1.0/24 на две подсети. Для этого из 4-го октета необходимо занять 1 бит для идентификатора подсети, таким образом, для идентификации узлов останется 7 бит. В итоге получается две подсети 192.168.1.0/25 и 192.168.1.128/25, в каждой из которых может быть по 126 (27 – 2) узлов. Первую из них

оставим, так как требуется, чтобы в 6-й подсети было 100 узлов, а вторую разделим еще на две подсети. Для этого возьмем 1 бит из оставшихся 7 бит, отведенных под идентификатор узла. Таким образом, получается две подсети 192.168.1.128/26 и 192.168.1.192/26, в каждой из которых допустимое количество узлов равно 62 (26 – 2). Первую подсеть необходимо

оставить для 5-й подсети, в которой должно быть 50 узлов, а из второй подсети сформировать еще четыре подсети. Для этого займем еще 2 бита из оставшихся 6 бит, отведенных под идентификатор узла. В результате получим четыре подсети с 14 (24– 2) узлами в каждой, что позволит адресовать требуемое количество узлов, необходимых для подсетей 1, 2, 3 и 4.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Для студента самое главное не сдать экзамен, а вовремя вспомнить про него. 10618 — | 7809 — или читать все.

Предложение от 8host.com

Сетевые технологии: IP-адреса, подсети и бесклассовая адресация CIDR

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

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

Что такое IP-адрес?

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

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

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

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

Сегодня существует две версии протокола IP, которые широко применяются в системах. IPv4, четвёртая версия протокола, поддерживается большинством систем. Более новая версия, IPv6, набирает популярность благодаря улучшениям возможностей протокола и из-за нехватки доступных адресов IPv4 (проще говоря, сегодня в мире столько подключенных к сети устройств, что адресов IPv4 не хватает на всех).

Читать еще:  Преобразовать текст в word

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

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

Самым низким значением в октете является 0, а самым высоким — 255.

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

1100 0000 — 1010 1000 — 0000 0000 — 0000 0101

Оба приведённые выше формата выражают один и тот же адрес.

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

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

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

К примеру, если в IPv6 есть такая группа:

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

Диапазон IPv6 с несколькими группами нулей:

можно сократить до:

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

Сегодня всё чаще используется IPv6, но в остальных примерах статьи будут использоваться адреса IPv4, потому что с меньшим адресным пространством проще работать.

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

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

Граница между первым и вторым компонентом адреса определяется настройками сети.

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

  1. Класс А: 0—. Если первый бит в адресе – 0, значит, адрес относится к диапазону А (это адреса от 0.0.0.0 до 127.255.255.255).
  2. Класс B: 10—. К этому классу относятся все адреса от 128.0.0.0 до 191.255.255.255. Это адреса, первый бит которых представлен единицей, а второй – нет.
  3. Класс C: 110-. Это адреса от 192.0.0.0 до 223.255.255.255. Их первые два бита представлены единицей, а третий – нет.
  4. Класс D: 1110. Первые три бита этого класса представлены единицей. Это адреса в диапазоне от 224.0.0.0 до 239.255.255.255.
  5. Класс Е: 1111. Это адреса в диапазоне от 224.0.0.0 до 239.255.255.255. Этот класс включает в себя все адреса, которые начинаются с 1111.

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

Классы А-С по-разному разделяют компонент сети и компонент хоста.

Адреса класса 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 это будет выглядеть так:

Каждый бит, отмеченный в бинарном представлении сетевой маски нулём, считается идентификатором хоста и может изменяться. Биты, отмеченные единицей, постоянны (хотя в сети или подсети это не всегда так).

Определить сетевую часть адреса можно с помощью поразрядной операции 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

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

1111 1111 — 1111 1111 — 1111 1111 — 0000 0000

1111 1111 — 1111 1111 — 1111 1111 — 1000 0000

В традиционной нотации IPv4 это будет выглядеть так:

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

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

Система CIDR (Classless Inter-Domain Routing) была разработана в качестве альтернативы традиционным подсетям. С помощью CIDR вы можете добавить спецификацию самого IP-адреса в число значимых битов, составляющих часть маршрутизации или сети.

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

CIDR можно использовать для обозначения «суперсетей». В этом случае имеется в виду более широкий диапазон адресов, что невозможно при использовании традиционной маски подсети. Например, в сети класса 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. Понимание сетевых технологий поможет правильно настроить программное обеспечение и его компоненты.

Существует много полезных онлайн-инструментов, которыми вы можете пользоваться при работе с сетями:

Конвертируем диапазон IP в бесклассовую адресацию (CIDR) и обратно в Go

При прохождения очередного собеседования мне задали небольшое тестовое задание, написать на Go сетевой сканер открытых портов. Задание в принципе не сложное, но одним из условий было, что в качестве параметра может быть передан как IP-адрес, так и диапазон сетевых адресов в виде сетевой маски: 192.168.8.0/21.

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

Немного теории, но тем, кто уже знаком с терминами можно пропустить и сразу перейти к алгоритму.

И так, что такое IP я думаю всем понятно и пояснять не нужно. Теперь что такое CIDR (или сетевая маска). Представим, что у нас есть IP: «192.168.11.10». На самом деле это 8-битовые значения разделенные точками, и каждая отдельная часть это так называемый октет. Понятно, что IP можно представить в виде 32-битового числа.

Именно такое число и передается в IP-пакете. Теперь давайте представим, что у нас есть подсеть состоящая из 8 хостов — 192.168.11.0 до 192.168.11.7 (Note: 192.168.11.0 нельзя использовать в качестве адреса какого-либо сетевого интерфейса, так как этот адрес используется как идентификатор подсети, поэтому фактически адресов будет 7, но для нашего пример это пока не имеет значения.)
Понятно, что подсетей может быть несколько в рамках одном большой сети и отправлять пакет внутри своей подсети нужно напрямую, а скажем если пакет нужно направить в другую подсеть допусти на IP: 192.168.11.22, то его нужно направить сетевому маршрутизатору, который перенаправить этот пакет в другую подсеть. Хранить на хосте отправителе все адреса своей подсети накладно и бессмысленно, поэтому мы просто храним сетевую маску и для выше обозначенной сети из 8 хостов она будет равна — 255.255.255.248. Теперь если разложить сетевую маску на биты — получим 29 единиц и 3 нулей.

Читать еще:  Читательский адрес издания это

Маска подсети никогда не может перемешивать “1” и “0”, поэтому всегда сначала идет последовательность “1”, а потом последовательность “0”. Теперь диапазон выше обозначенных адресов 192.168.11.0 до 192.168.11.7, можно представить как / , т.e. 192.168.11.0/29. Это и есть бесклассовая адресация или Classless Inter-Domain Routing (CIDR) и в этой компактной форме можно представить любой диапазон IP адресов. Относительно правильного разбиения на подсети и маршрутизации имеет смысл обратиться к специализированной литературе и не является целью данной статьи — я надеюсь меня простят сетевые администраторы.

И так сам алгоритм c комментариями приведен ниже. Сразу скажу, что для диапазона 216.58.192.12 — 216.58.192.206, нет возможности разбить на одну подсеть и алгоритм сразу разобьет диапазон на несколько подсетей:
<
«216.58.192.12/30»,
«216.58.192.16/28»,
«216.58.192.32/27»,
«216.58.192.64/26»,
«216.58.192.128/26»,
«216.58.192.192/29»,
«216.58.192.200/30»,
«216.58.192.204/31»,
«216.58.192.206/32”
>

Теперь что касается обратного алгоритма, когда нужно перевести такой же диапазон бесклассовой адресации обратно в IP. Лично в моем тестовом задании этот алгоритм не понадобился и возможно кто-то из сетевых администраторов прокомментирует, насколько он нужен в реальной жизни, но я решил написать сразу и тот и другой. Алгоритм до элементарного прост, вы должны в начальному IP подсети прибавить ее размерность.

Note: только для Go разработчиков: алгоритм можно сделать еще более производительным, если возвращать данные в формате — (IP, *IPNet, error), но для универсальности я возвращаю данные как string.

Код сетевого сканера лежит тут: GitHub. Если поставите звездочку, буду благодарен, но только, если я ее заслужил :))

Классовая и безклассовая адресация сетей

Эта публикация является продолжением статьи Белые и серые IP адреса Ipv4 и описывает маску сети, второй по важности параметр сетевого устройства после адреса IPv4.

Что такое маска подсети

Маска подсети определяет диапазон адресов которые входят в сеть. Является битовой непрерывной последовательностью единиц и нулей (единицы и нули не могут быть вперемешку).

В качестве примера, классическая маска для сетей класса С в двоичном представлении выглядит так: 11111111.11111111.11111111.00000000 или привычно в десятичном так: 255.255.255.0.

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

Разберем на примере: пусть у устройства в сети (компьютера) есть сетевой адрес 192.168.15.23, при этом маска сети равна 255.255.255.0. В таком случае 192.168.15 — это адрес сети, 23 — адрес устройства в этой сети. При этом, согласно указанной маске, количество устройств в сети составляет 254 штук.

Количество устройств в сети

Как вы успели заметить количество устройств в сети всегда меньше на 2 (два). Связано это с тем, что первый адрес является адресом самой сети и используется в таблицах маршрутизации, а последний является широковещательным адресом, пакеты отправленные на этот адрес принимаются всеми участниками сети. Эти адреса зарезервированы и в абсолютном большинстве случаев не могут быть использованы в качестве адресов для устройств в сети.

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

Классовая адресация

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

В классовой адресации использовались маски фиксированные по октетам, например 255.255.255.0 или 255.255.0.0.

Сети класса A, B и C имеют маски по умолчанию, также известные как естественные маски:
Class A: 255.0.0.0
Class B: 255.255.0.0
Class C: 255.255.255.0

Сейчас когда говорят, что используется сеть класса С, то скорее всего имеется ввиду, что используется маска 255.255.255.0.

Windows и маска по-умолчанию

Если в ручную задаете адрес сетевой карте в компьютере под управлением операционной системы Windows, то для сети 192.168.X.X вам автоматически предлагается маска 255.255.255.0

Вы думаете Windows ничего не знает о безклассовой адресации? Нет, Windows отлично работает с безклассовой адресацией, просто ей надо вам предложить какую-нибудь маску, вот она и предлагает самый популярный вариант для этой сети. Для сети 172.16.X.X будет предложена маска 255.255.0.0, а для 10.X.X.X — 255.0.0.0

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

В безклассовой адресации используется плавающая маска, то есть граница между единицами и нулями не зафиксирована по октетам. Например, если вам нужно в сети 192.168.14.0 организовать подсеть из 510 устройств, то вы используете маску 255.255.254.0 и битовая последовательность у вас будет выглядеть так: 11111111.11111111.11111110.00000000.

Сеть:192.168.14.0/2311000000.10101000.00001110.00000000
Сетевая маска:255.255.254.0 = 2311111111.11111111.11111110.00000000
Минимальный IP:192.168.14.111000000.10101000.00001110.00000001
Максимальный IP:192.168.15.25411000000.10101000.00001111.11111110
Broadcast:192.168.15.25511000000.10101000.00001111.11111111
Число хостов:510

Благодарности

При написании статьи были использованы следующие источники:

Ссылка на основную публикацию
Adblock
detector