Foreversoft.ru

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

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

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

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

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

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

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

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

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

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

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

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

Адреса 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. Если поставите звездочку, буду благодарен, но только, если я ее заслужил :))

Что такое CIDR?

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

Для чего нужна адресация в IP-сетях?

В целом адресное пространство в IP-сетях конечно. Например, в IPv4 сетях (это основной протокол на сегодняшний день для глобальной сети Интернет), длина каждого отдельного IP-адреса равна 32 битам, что в совокупности дает адресное пространство количеством 2 32 = 4 294 967 296 всех возможных адресов (чуть более 4 миллиардов адресов). В то же время новый стандарт IPv6 определяет IP-адреса длиной в 128 бит, что существенно увеличивает адресное пространство до числа примерно равному 3.4×10 38 адресов. Это в 79 228 162 514 264 337 593 543 950 336 раз больше, чем адресное пространство IPv4. Примерно 79 септиллионов! Если каждому из 7 миллиардов жителей выделить по пространству адресов, равному IPv4 из пространства адресов IPv6, то каждый из нас получит примерно по 11 318 308 930 609 191 085, то есть примерно по 11.3 квадриллиона IPv4 адресных пространств. Но хотя эти числа и столь огромны, они все равно конечны.

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

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

CIDR по своей сути и является таким специальным методом выделения некоторых блоков адресов отдельным сетям.

Как это работает?

Давайте рассмотрим принципы CIDR на примере адресного пространства IPv4, поскольку более мелкие цифры будут смотреться на этой странице более наглядно. В целом, основные принципы будут также применимы и к пространству IPv6.

Итак, первым делом вспомним, как выглядит IPv4 адрес, например — 198.51.100.15, то есть это 4 блока десятичных чисел от 0 до 255, разделенных символом точка.

В целом же, по своей природе, это просто целое число длинной 32 бита. Бит — это минимальная единица информации, которой оперирует компьютер. Большинство наших компьютеров оперируют двоичными битами, то есть такими, которые могут принимать два состояния и описаны числами 0 и 1. Это значит, если представить IPv4 адрес в двоичном представлении из единиц и нулей (то, как видит его компьютер), то получиться цепочка из единиц и нулей длинной в 32 символа (разряда). Например, минимальный адрес IPv4 будет выглядеть так:

а максимальный — так:

Поскольку большинство современных компьютеров оперируют байтом информации равном 8 битам, можно разделить эти 32 бита на 4 октета, и записать их через точку в виде (давайте возьмем теперь адрес из нашего примера):

Если перевести эту переписать в десятичное представление (что нам людям более привычно для восприятия), то мы и получим IP-адрес в привычном для нас виде — 198.51.100.15

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

Чтобы при маршрутизации пакетов компьютер мог определить начальный адрес сети (а это необходимо для реализации маршрутизации пакетов) применяют понятие битовой маски подсети. В CIDR применяются сетевые маски переменной длинны (VLSM — variable length subnet mask). При таком подходе маску определяют как количество единичных старших бит в маске и записывают через символ «/» сразу после IP-адреса. Допустим маска нашей подсети — это 24 старших единичных бита, то есть для компьютера она выглядит так:

То в этом случае CIDR запись c маской для нашего адреса будет выглядеть так (в десятичном представлении):

При помощи маски компьютер легко вычисляет начальный адрес сети для любого адреса применяя побитовое логическое И к адресу и маске подсети, то есть

Или в десятичном виде:

Количество нулей в младших битах маски определяют максимальное количество возможных адресов в сети. Их подсчитать достаточно просто. Считаем количество нулей. Если у нас из 32 бит 24 определены единицами, то нулей будет 32 — 24 = 8. То есть — это 8 разрядов, свободных для адресов сети. Так как каждый разряд может принимать 2 значения (0 или 1) то всего у нас получается 2 8 возможных комбинаций, что равно 256, это в свою очередь равно ряду чисел от 0 до 255. Таким образом последний адрес в нашей подсети будет 198.51.100.255 (он же — широковещательный). То есть знание адреса и его маски подсети дает возможность определить и начальный и конечный адреса сети, и количество реальных возможных узлов внутри сети. В нашем примере, CIDR запись вида 198.51.100.15/24 подробно описывает следующую информацию:

адрес узла — 198.51.100.15

маска его подсети — 255.255.255.0

количество возможных узлов в подсети — 256

начальный адрес сети — 198.51.100.0

широковещательный адрес сети — 198.51.100.255

  • количество реальных возможных узлов (хостов) сети — 254
  • Другими словами, блок адресов с маской /24 позволяет создать подсеть, например, из 254 одновременно подключенных к сети компьютеров (узлов или хостов).

    Таблица масок переменной длинны

    Основываясь на описанных выше правилах CIDR адресации можно построить следующую таблицу VLSM, которая может стать хорошим подспорьем в работе любого системного администратора сети.

    CIDRМаскаКол-во
    адресов
    Кол-во
    узлов
    Класс
    A.B.C.D/32255.255.255.255111/256 C
    A.B.C.D/31255.255.255.254221/128 C
    A.B.C.D/30255.255.255.252421/64 C
    A.B.C.D/29255.255.255.248861/32 C
    A.B.C.D/28255.255.255.24016141/16 C
    A.B.C.D/27255.255.255.22432301/8 C
    A.B.C.D/26255.255.255.19264621/4 C
    A.B.C.D/25255.255.255.1281281261/2 C
    A.B.C.0/24255.255.255.000256254C
    A.B.C.0/23255.255.254.0005125102 C
    A.B.C.0/22255.255.252.0001 0241 0224 C
    A.B.C.0/21255.255.248.0002 0482 0468 C
    A.B.C.0/20255.255.240.0004 0964 09416 C
    A.B.C.0/19255.255.224.0008 1928 19032 C
    A.B.C.0/18255.255.192.00016 38416 38264 C
    A.B.C.0/17255.255.128.00032 76832 766128 C
    A.B.0.0/16255.255.000.00065 53665 534B
    A.B.0.0/15255.254.000.000131 072131 0702 B
    A.B.0.0/14255.252.000.000262 144262 1424 B
    A.B.0.0/13255.248.000.000524 288524 2868 B
    A.B.0.0/12255.240.000.0001 048 5761 048 57416 B
    A.B.0.0/11255.224.000.0002 097 1522 097 15032 B
    A.B.0.0/10255.192.000.0004 194 3044 194 30264 B
    A.B.0.0/9255.128.000.0008 388 6088 388 606128 B
    A.0.0.0/8255.000.000.00016 777 21616 777 214A
    A.0.0.0/7254.000.000.00033 554 43233 554 4302 A
    A.0.0.0/6252.000.000.00067 108 86467 108 8624 A
    A.0.0.0/5248.000.000.000134 217 728134 217 7268 A
    A.0.0.0/4240.000.000.000268 435 456268 435 45416 A
    A.0.0.0/3224.000.000.000536 870 912536 870 91032 A
    A.0.0.0/2192.000.000.0001 073 741 8241 073 741 82264 A
    A.0.0.0/1128.000.000.0002 147 483 6482 147 483 646128 A
    0.0.0.0/0000.000.000.0004 294 967 2964 294 967 294256 A
    Читать еще:  Процессор pentium шина адреса

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

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

    Бесклассовая адресация CIDR и маски переменной длины VLSM

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

    К сожалению, архитекторы TCP/IP не могли предсказать экспоненциального роста Интернет, и в настоящее время остро стоит проблема распределения адресов.

    Когда в 80-х годах внедрялся TCP/IP, он базировался на двухуровневой адресной схеме. Старшая часть 32-битового IP адреса определяла номер (адрес) сети, а младшая — номер хоста. Адрес сети необходим для взаимодействия сетей. Маршрутизаторы используют сетевую часть адреса для организации связи между хостами из различных сетей.

    Для удобства человеческого восприятия IP адрес записывается в виде четырёх десятичных чисел, разделённых точками. 32-битовый адрес делится на четыре группы по восемь бит, называемых октетами. Каждый октет записывается в десятичном виде и разделяется точками. Например

    10101100000111101000000000010001 10101100 00011110 10000000 00010001

    172 30 128 17 172.30.128.17

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

    Если первый бит в первом октете равен нулю, то это адрес класса А. Адреса класса В начинаются с бинарных 10. Адреса класса С начинаются с бинарных 110.

    В адресах класса А адрес сети располагается в первом октете. В классе В для адресации сети используется первый и второй октеты. В классе С для адресации сети используется первый, второй и третий октеты. Использование классов D и E специфично и здесь не рассматривается.

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

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

    111111111111111100000000000000 11111111 1111111 0000000 0000000

    255 255 0 0 255.255.0.0

    Маска подсети является необходимым дополнением к IP адресу. Если бит в IP адресе соответствует единичному биту в маске, то этот бит в IP адресе представляет номер сети, а если бит в IP адресе соответствует нулевому биту в маске, то этот бит в IP адресе представляет номер хоста. Так для маски 255.255.0.0 и адреса 172.24.100.45 номер сети будет 172.24.0.0, а для маски 255.255.255.0 номер сети будет 172.24.100.0.

    Другая форма записи маски — /N, где N – число единиц в маске. Эта форма используется только в сочетании с IP адресом. Например, для маски 255.255.0.0 и адреса 172.24.100.45 пишут 172.24.100.45/16.

    Все адреса класса А имеют маску 255.0.0.0, адреса класса В имеют маску 255.255.0.0, а адреса класса С имеют маску 255. 255. 255.0. Обратное утверждение неправомерно, так как при определении класса используются первые биты в первом октете адреса.

    Если организация располагает сетью класса В (маска 255.255.0.0), то она может разбить эту сеть на подсети, используя маску 255.255.255.0. Например, если адрес 172.24.100.45 принадлежит организации, то номером сети класса В будет 172.24.0.0, а номер внутрикорпоративной подсети будет равен 172.24.100.0. Заметим, что полученные подсети не будут являться сетями класса С.

    Если число нулей в маске равно M, то число доступных адресов хостов в подсети равно 2M-2. То есть два адреса в подсети использовать не рекомендуется. Один из этих адресов, у которого последние М бит равны нулю, называется адресом подсети, а второй из этих адресов у которого последние М бит равны единице называется широковещательным адресом. Так для адреса 172.24.100.45/24 адрес подсети равен 172.24.100.0, а широковещательным адрес равен 172.24.100.255. Число адресов в подсети равно 2 8 -2 =254.

    Адреса класса А и В составляют около 75 процентов адресного пространства. Количество сетей классов А и В приблизительно равно 17000. Приобретение сети класса B, а тем более класса А в настоящее время весьма проблематично. Адреса класса С составляют около 12.5 процентов адресного пространства. Количество сетей класса С приблизительно равно 2.1 миллиона. К сожалению сеть класса С ограничена 254 адресами, что не отвечает нуждам больших организаций, которые не могут приобрести адреса класса А или В.

    Классовая IP адресация, даже с использованием подсетей, не может удовлетворить требование по масштабируемости для Интернет сообщества.

    Уже в начале 90-х годов почти все сети класса В были распределены. Добавление в Интернет новых сетей класса С приводило к значительному росту таблиц маршрутов и перегрузке маршрутизаторов. Использование бесклассовой адресации позволило в значительной мере решить возникшие проблемы.

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

    CIDR значительно улучшает масштабируемость и эффективность IP по следующим пунктам:

    — экономичное использование адресов в выделенном диапазоне;

    — улучшенная агрегация маршрутов;

    — Supernetting — комбинация непрерывных сетевых адресов в новый адрес надсети, определяемый маской.

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

    Без CIDR и агрегации маршрутов маршрутизатор должен содержать индивидуальную информацию для всех подсетей.

    Рассмотрим сеть класса А 44.0.0.0/8, в которой рассматривается 8 подсетей

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