Длина префикса сети что это – Что такое префикс сети

Что такое префикс сети

Вступление

Каждое устройство, подключённое к интернету, требует цифровой идентификатор. IP-адрес является цифровым кодом, используемым для определения различного оборудования, подключённого к Всемирной паутине. На сегодняшний день существует две версии IP: IPv4 и IPv6. Протокол версии 4 является все ещё основным, но количество доступных ресурсов исчерпалось, поэтому постепенно начинает использоваться 6 версия, позволяющая использовать гораздо большее количество ресурсов. Каждый идентификатор содержит информацию о конкретном соединении, а также о подключённом оборудовании. Префикс указывает, какие значения используются для обозначения сети, а какие — для обозначения устройства. Давайте детальнее рассмотрим, что такое сетевой префикс, и как он поможет расшифровать IP-адрес.

Любое устройство гарантированно получает свой уникальный идентификатор

Структура IP-адреса

Обычно IP-адрес записывается следующим образом: 192.168.10.100. Каждая секция представляет собой 8 бит или 1 байт информации. Сервер видит эти цифры как набор единиц и нулей, для нашего удобства они записываются в обычной десятичной системе. Максимальная её длина — 3 знака, а минимальная — 1. Суммарно вся запись занимает 32 бита и теоретически может быть 232 или 4.294.967.296 ресурсов.

Весь цифровой код делится на две части: адрес провайдера и хост. Первый из них определяет провайдера, через который вы работаете, а второй обозначает идентификатор конкретного устройства, как, например, ноутбук или планшет Андроид, в локальном подключении. Для того чтобы узнать, сколько бит обозначает каждый из показателей, записывается префикс сети через слеш. Тогда запись выглядит как 192.168.10.100/24. В нашем случае 24 обозначает, что первых 3 секции (3*8=24), а именно 192.168.10 является адресом соединения. Оставшиеся 8 бит, а именно 100 — это идентификатор оборудования (максимум 28 = 256 адресов). При 192.168.10.100/16 локальный ресурс будет 192.168, а хост — 10.100 (216 = 65536).

Часто для определения адреса используется маска подсети. Её длина не отличается. Это, по сути, то же самое, что и префикс сети, только немножко по-другому организовано. Вы, наверное, обращали внимание, что провайдер указывает этот параметр при подключении к интернету. Она также показывает, какая часть IP относится к провайдеру, а какая — к хосту. Она записывается также в виде четырёх 8-битных секций. Единственное отличие, что в двоичном исчислении сначала должны идти только единицы. Если перевести двоичные 11111111 в десятичное исчисление, получится 255. Поэтому маска обязательно будет начинаться с 255.

Рассмотрим пример. Возьмём наш адрес 192.168.10.100 и маску 255.255.255.0. Соответственно, первых три раздела записи будут идентификатором LAN, а последняя — идентификатором компьютера. Если маска — 255.255.0.0, то сеть будет 192.168, а хост — 10.100.

Также маска лучше поможет определить, относятся ли два IP-ресурса к одному подключению. Возьмём, к примеру, 213.111.125.17 и 213.111.176.3. Если маска — 255.255.0.0, то оба адреса расположены в одной сети, если она 255.255.255.0, то в разной, так как 125 и 176 отличаются.

Префикс сети позволит определить её подмаску. Например, у нас есть запись 176.172.7.132/22. Как мы помним, 22 показывает количество бит, отвечающие за провайдера. В двоичной системе на самом начале запишем 22 единицы и дополним их 10 нулями, чтобы суммарно получилось 32 бита, и разделим точками секции по 8 бит — 11111111.11111111.11111100.00000000. Теперь переведём результат в десятичное исчисление, итоговым результатом у нас получится 255.255.252.0.

Для обратного расчёта возьмём адрес 176.172.7.132 и маску 255.255.128.0. Переводим её в двоичную систему, получим 11111111.11111111.10000000.00000000. Единиц в нашем случае 17, это и есть наш префикс сети. В десятичном виде запишем его как 255.255.128.0/17.

Заключение

После прочтения статьи вас не будут пугать длина цифровых записей при настройке подключения и термины «префикс сети» и другие. Если вы обычный пользователь системы Андроид, информации из статьи вам будет вполне достаточно. Если вы хотите вручную настроить домашнее подключение, возможно, придётся провести более глубокое исследование.

Считаете ли вы этот материал полезным? Будем благодарны за оставленные комментарии.

nastroyvse.ru

Таблица сетевых масок, префиксы маски. Короткая запись маски. Шпаргалка.

Префикс маски — это короткая запись сетевой маски, определяет количество бит порции сети.

Маска подсетиПрефикс маскиДвоичная запись маски
0.0.0.0/000000000.00000000.00000000.00000000
128.0.0.0/110000000.00000000.00000000.00000000
192.0.0.0/211000000.00000000.00000000.00000000
224.0.0.0/311100000.00000000.00000000.00000000
240.0.0.0/411110000.00000000.00000000.00000000
248.0.0.0/511111000.00000000.00000000.00000000
252.0.0.0/611111100.00000000.00000000.00000000
254.0.0.0/711111110.00000000.00000000.00000000
255.0.0.0/811111111.00000000.00000000.00000000
255.128.0.0/911111111.10000000.00000000.00000000
255.192.0.0/1011111111.11000000.00000000.00000000
255.224.0.0/1111111111.11100000.00000000.00000000
255.240.0.0/1211111111.11110000.00000000.00000000
255.248.0.0/1311111111.11111000.00000000.00000000
255.252.0.0/1411111111.11111100.00000000.00000000
255.254.0.0/1511111111.11111110.00000000.00000000
255.255.0.0/1611111111.11111111.00000000.00000000
255.255.128.0/1711111111.11111111.10000000.00000000
255.255.192.0/1811111111.11111111.11000000.00000000
255.255.224.0
/19
11111111.11111111.11100000.00000000
255.255.240.0/2011111111.11111111.11110000.00000000
255.255.248.0/2111111111.11111111.11111000.00000000
255.255.252.0/2211111111.11111111.11111100.00000000
255.255.254.0/2311111111.11111111.11111110.00000000
255.255.255.0/2411111111.11111111.11111111.00000000
255.255.255.128/2511111111.11111111.11111111.10000000
255.255.255.192/2611111111.11111111.11111111.11000000
255.255.255.224/2711111111.11111111.11111111.11100000
255.255.255.240/2811111111.11111111.11111111.11110000
255.255.255.248/2911111111.11111111.11111111.11111000
255.255.255.252/3011111111.11111111.11111111.11111100
255.255.255.254/3111111111.11111111.11111111.11111110
255.255.255.255/3211111111.11111111.11111111.11111111

Использование маски подсети

Благодаря маске подсети, можно узнать какая часть ip адреса принадлежит сети, а какая – хосту.

Для примера возьмем ip адрес компьютера 192.168.105.21/24 и с помощью маски подсети высчитаем адрес сети, адрес хоста и широковещательный адрес.

Как мы видим, адрес компьютера состоит из ip адреса и префикса, воспользовавшись таблицей выше, мы без труда узнали, что префикс 24 является маской 255.255.255.0.

Дальше переведём ip адрес и маску из десятичного представления данных в двоичное представление.

IP адрес (десятичное, decimal, dec)192.168.105.21
IP адрес (двоичное, binary, bin )11000000.10101000.01101001.00010101
Маска подсети (dec)255.255.255.0
Маска подсети (bin)11111111.11111111.11111111.00000000

Затем над двоичными ip адресом и маской выполним логическую операцию AND. Операцию AND можно представить обычным умножением: 1 * 1 = 1, 1 * 0 = 0, 0 * 1 = 0, 0 * 0 = 0.

IP адрес (dec)192.168.105.21
IP адрес (bin)11000000.10101000.01101001.00010101
Маска подсети (bin)11111111.11111111.11111111.00000000
Адрес сети (bin)11000000.10101000.01101001.00000000
Адрес сети (dec)192.168.105.0

Теперь давайте высчитаем широковещательный адрес. Основное отличие широковещательного (broadcast) адреса от адреса сети заключается в том, что в адресе сети, в порции хоста находятся только нули (0), а в широковещательном адресе, в порции хоста – только единицы (1).

Адрес сети (dec)192.168.105.0
Адрес сети (bin)11000000.10101000.01101001.00000000
Маска подсети (bin)11111111.11111111.11111111.00000000
Широковещательный адрес (bin)11000000.10101000.01101001.11111111
Широковещательный адрес (dec)192.168.105.255

Теперь вы знает для чего нужна маска подсети!

infocisco.ru

Длина префикса сети в маске подсети — КиберПедия

Поскольку биты идентификатора сети всегда идут последовательно и начинаются с са­мого левого, самый простой способ показать маску подсети — это указать количество битов идентификатора сети в виде

префикса сети. Таким образом, маска подсети выра­жается в виде «IP-адрес/префикс сети». Например, IP-адрес I31.107.16.200 и маску под­сети 255.255.0.0 можно записать в виде 131.107.16.200/16. Число 16 после слеша обозна­чает количество единичных битов в маске подсети. Точно так же, /24 обозначает маску подсети 255.255.255.0 для адреса класса С, например 206.73.118.23/24.

Примечание Нотация с префиксом сети также известна как бесклассовая междоменная маршрутизация (Classless Interdomain Routing, C1DR).

Основной шлюз

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

основной шлюз— это IP-адрес маршрутизатора, сконфигурированного не пересылку IP-трафика в другие сети.

Пытаясь передать информацию другому узлу IP-сети, компьютер определяет тип узла (локальный или удаленный) по маске подсети. Если узел-получатель располо­жен в локальном сегменте сети, пакет направляется в локальную сеть по методу ши­роковещания. В противном случае компьютер пересылает пакет в основной шлюз, определенный в параметрах TCP/IP. Обязанность дальнейшей пересылки пакета е нужную сеть возлагается на маршрутизатор, адрес которого указан в качестве основ­ного шлюза.

 

7.5. Разбиение на подсети

Очень редко в локальную вычислительную сеть входит более 100-200 узлов: даже если взять сеть с большим количеством узлов, многие сетевые среды накладывают ограничения, например, в 1024 узла. Исходя из этого, целесообразность использования сетей класса А и В весьма сомнительна. Да и использование класса С для сетей, состоящих из 20-30 узлов, тоже является расточительством.

Для решения этих проблем в двухуровневую иерархию IP-адресов (сеть — узел) была введена новая составляющая — подсеть. Идея заключается в «заимствовании» нескольких битов из узловой части адреса для определения подсети.

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



    Сетевой префикс подсеть узел
IP адрес 144.144.19.22
Маска 255.255.255.0
    Расширенный сетевой префикс  

 

Маски подсети помогают определить, как IP-адрес разбивается на идентификаторы сети и узла. В адресах классов А, В и С применяются стандартные маски подсети, занимаю­щие соответственно первые 8, 6 и 24 бита 32-битового адреса. Подсетью называется логическая сеть, определяемая маской подсети.

Стандартные маски годятся для сетей, которые не предполагается разбивать. Напри­мер, в сети из 100 компьютеров, соединенных с помощью карт гигабитного Ethernet, кабелей и коммутаторов, все узлы могут обмениваться информацией по локальной сети. Сеть не нуждается в маршрутизаторах для защиты от чрезмерного широковещания или для связи с узлами, расположенными в отдельных физических сегментах. В таком про­стом случае вполне достаточно идентификатора сети класса С.

 

7.6. Механизм разбиения на подсети

Разбиение на подсети (subnetting) — это логическое разделение адресного пространства сети путем установки в 1 дополнительных битов маски подсети. Такое расширение по­зволяет создавать многие подсети в адресном пространстве сети.

Например, если маска подсети по умолчанию 255.255.0.0 используется для узлов сети класса В 131.107.0.0, IP-адреса 131.107.1.11 и 131.107.2.11 находятся водной подсети и поддерживают взаимодействие посредством широковещания. Но если расширить маску подсети до 255255255.0, то эти адреса окажутся в разных подсетях и для обмена данны­ми соответствующим узлам придется пересылать пакеты на основной шлюз, который перенаправит дейтаграммы в нужную подсеть. Внешние по отношению к сети узлы по-прежнему используют маску подсети по умолчанию для взаимодействия с узлами внут­ри сети. Обе версии показаны на рис. 2-7 и 2-8.



 

Рис. 2-7. Не разбитое на подсети адресное пространство класса В

Показанное на рис. 2-7 исходное адресное пространство класса В, состоящее из един­ственной подсети, может содержать максимум 65 534 узлов, а новая маска подсети (рис. 2-8) позволяет разделить адресное пространство на 256 подсетей, в каждой из ко­торых можно разместить до 254 узлов.

7.6.1. Преимущества разбиения на подсети

 
 

Разбиение на подсети часто используют для обеспечения соответствия физической и логической топологии сети или Для ограничения широковешательного трафика. Дру­гие несомненные преимущества: более высокий уровень защиты (благодаря ограниче­нию неавторизованного трафика маршрутизаторами) и упрощение администрирова­ния (благодаря передачеуправления подсетями другим отделам или администраторам).

Рис. 2-8. Разбитое на подсети адресное пространство класса В

Соответствие физической топологии.Допустим, вам поручили спроектировать уни­верситетскую сеть, состоящую из 200 узлов, распределенных в четырех зданиях — Voter Hall, Twilight Hall, Monroe Hall и Sunderland Hall. В каждом здании планируется разме­стить по 50 узлов. Если интернет-провайдер выделил адрес 208.147.66.0 класса С, вам доступны адреса 208.147.66—208.147.66.254. Однако из-за размещения в четырех физи­чески отделенных зданиях, узлы не могут обмениваться данными по локальной сети. Расширив маску подсети на 2 бита (т. е. позаимствовав их у идентификатора узла), сеть» разбивают на четыре логические подсети, а для связи устанавливается маршрутизатор (рис. 2-9).

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

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

 

7.6.2. Определение максимального количества узлов в сети

Зная сетевой адрес, определить максимальное количество узлов в сети просто: надо воз­вести 2 в степень, равную количеству битов в идентификаторе узла и вычесть 2. Напри­мер, в сетевом адресе 192.168.0.0/24 под идентификатор узла отведено 8 бит, поэтому возможное максимальное число узлов 25 — 2 = 254.

Количество узлов в подсети.Количество идентификаторов узлов в подсети опре­деляется также, как и узлов в сети — оно равно Т — 2, где х — количество бит в иден­тификаторе узла. Например, в адресе 172.16.0.0/24 резервируется 8 бит под иденти­фикатор узла, поэтому число узлов в подсети равно 2 — 2, т. е. 254. Дня вычисления количества узлов во всей сети умножают полученный результат на количество под­сетей. В нашем примере адресное пространство 172.16.0.0/24 даст 254 сетей х 256 узлов = 65 024.

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

 

7.6.3. Определение диапазонов адресов подсети

Десятично-точечная форма маски подсети позволяет определить диапазоны IP-адресов в каждой подсети простым вычитанием из 256 числа в соответствующем октете маски. Например, в сети класса С с адресом 207.209.68.0 с маской подсети 255.255.255.192 вы­читание 192 из 256 даст 64. Таким образом, новый диапазон начинается после каждого 64 адреса: 207.209.68.0-207.209.68.63, 207.209.68.64-207.209.68.127 и т.д. В сети клас­са В 131.107.0.0 с маской подсети 255.255.240.0 вычитание 240 из 256 дает 16. Следова­тельно, диапазоны адресов подсетей группируются по 16 в третьем октете, а четвертый октет принимает значения из диапазона 0—255: 131.107.0.0—131.107.15.255, 131.107.16.0— 131.107.31.255 и т.д.

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

7.7. Проблемы классической схемы

В середине 80-х годов Internet впервые столкнулся с проблемой переполнения таблиц магистральных маршрутизаторов. Решение, однако, было быстро найдено — подсети устранили проблему на несколько лет. Но уже в начале 90-х к проблеме большого количества маршрутов прибавилась нехватка адресного пространства. Ограничение в 4 миллиарда адресов, заложенное в протокол и казавшееся недосягаемой величиной, стало весьма ощутимым.

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

Долгосрочное решение — это протокол IP следующей версии. Он обозначается, как IPv6, или IPng (Internet Protocol next generation). В этой реализации протокола длина адреса увеличена до 16-ти байтов (128 бит!), исключены некоторые элементы действующего протокола, которые оказались неиспользуемыми.

 

7.7.1. Маска подсети переменной длины VLSM
(Variable Length Subnet Mask)

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

Однако поддержка масок подсети переменной длины (variable-length subnet mask, VLSM) позволяет маршрутизаторам обслуживать разные маски. Чаше всего VLSM применяют для разбиения на подсети самих подсетей.

 

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

Кроме того, технология VLSM, путем скрытия части подсетей, позволяет уменьшить объем данных, передаваемых маршрутизаторами. Так, если сеть 12/8 конфигурируется с расширенным сетевым префиксом /16, после чего сети 12.1/16 и 12.2/16 разбиваются на подсети /20, то маршрутизатору в сети 12.1 незачем знать о подсетях 12.2 с префиксом /20, ему достаточно знать маршрут на сеть 12.1/16.

Табл. 2-5. Параметры маски подсети класса С (статические)

 

Сетевой адрес Число подсетей Число узлов в подсети
208.147.66.0/24
208.147.66.0/25
208.147.66.0/26
208.147.66.0/27
208.147.66.0/28
208.147.66.0/29
      

При разбиении на подсети различного размера нужно использовать специальный шаблон с завершающими нулями; сеть класса С поддерживает до семи подсетей. Завер­шающие нули нужны для предотвращения пересечения адресных пространств подсетей. Если идентификатор подсети с маской переменной длины соответствует шаблону из табл. 2-6, подсети не пересекутся и адреса будут интерпретироваться однозначно.

 

На рис. 2-17 показано, как с помощью VLSM построить 3 сети с 100, 50 и 20 узлами

соответственно.

 

7.7.2. Бесклассовая междоменная маршрутизация CIDR
(Classless Inter-Domain Routing)

Появление этой технологии было вызвано резким увеличением объема трафика в Internet и, как следствие, увеличением количества маршрутов на магистральных маршрутизаторах. Так, если в 1994 году, до развертывания CIDR, таблицы маршрутизаторов содержали до 70 000 маршрутов, то после внедрения их количество сократилось до 30 000. На сентябрь 2002, количество маршрутов перевалило за отметку 110 000! Можете себе представить, сколько маршрутов нужно было бы держать в таблицах сегодня, если бы не было CIDR!


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

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

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

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

 

7.7.3. Сложение маршрутов путем создания надсетей

Итак.чтобы предотвратить истощение доступных идентификаторов сетей старших классов, организации, ответственные за адресацию в Интернете, предложили схему, называемую созданием надсетей (supernetting), согласно которой несколько сетей (маршрутов) мож­но объединить (или стожить) в единую более крупную сеть. Надсети позволяют эффек­тивнее управлять выделением участков адресного пространства.

 

Как работают надсети

Надсети отличаются от подсетей тем, что заимствуют биты идентификатора сети и мас­кируют их как идентификатор узла. Допустим, интернет-провайдер выделил блок из 8 адресов сети: 207.46.168.0—207.46.175.0. Если определить на маршрутизаторах провайде­ра и всех узлов сети маску подсети /21 (вместо /24 по умолчанию), все сети будут ка­заться единственной сетью из-за того, что их идентификаторы (урезанные до 21 бита) будут выглядеть одинаково (рис. 2-15).

 

cyberpedia.su

Маска подсети — Википедия

Материал из Википедии — свободной энциклопедии

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 24 марта 2018; проверки требуют 22 правки. Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 24 марта 2018; проверки требуют 22 правки.

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

Благодаря маске можно узнать, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети.

Например, узел с IP-адресом 11.34.56.78 и маской подсети 255.255.255.0 находится в сети 11.34.56.0 с длиной префикса 24 бита. В случае адресации IPv6 адрес 2001:0DB8:1:0:6C1F:A78A:3CB5:1ADD с длиной префикса 32 бита (/32) находится в сети 2001:0DB8::/32.

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

Чтобы получить адрес сети, зная IP-адрес и маску подсети, необходимо применить к ним операцию поразрядной конъюнкции (побитовое И). Например, в случае более сложной маски (битовые операции в IPv6 выглядят аналогично):

IP-адрес:       11000000 10101000 00000001 00000010 (192.168.1.2)
Маска подсети:  11111111 11111111 11111110 00000000 (255.255.254.0)
Адрес сети:     11000000 10101000 00000000 00000000 (192.168.0.0)

Легенда:

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

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

Сеть назначенияМаска сетиАдрес шлюза
192.168.1.0255.255.255.010.20.30.1

Пусть теперь маршрутизатор получает пакет данных с адресом назначения 192.168.1.2. Обрабатывая построчно таблицу маршрутизации, он обнаруживает, что при наложении (применении операции «побитовое И») на адрес 192.168.1.2 маски 255.255.255.0 получается адрес сети 192.168.1.0. В таблице маршрутизации этой сети соответствует шлюз 10.20.30.1, которому и отправляется пакет.

Маски при бесклассовой маршрутизации (CIDR)[править | править код]

Маски подсети являются основой метода бесклассовой маршрутизации (англ. CIDR). При этом подходе маску подсети записывают вместе с IP-адресом в формате «IP-адрес/количество единичных бит в маске». Число после знака дроби ( длина префикса сети) означает количество единичных разрядов (бит) в маске подсети.

Рассмотрим пример записи диапазона IP-адресов в виде 10.96.0.0/11. В этом случае маска подсети будет иметь двоичный вид 1111_1111.1110_0000.0000_0000.0000_0000, или то же самое в десятичном виде: 255.224.0.0. 11 разрядов IP-адреса отводятся под адрес сети, а остальной 32-11=21 разряд полного адреса (1111_1111.1110_0000.0000_0000.0000_0000) — под локальный адрес в этой сети. Итого, 10.96.0.0/11 означает диапазон адресов от 10.96.0.0 до 10.127.255.255.

IPv4 CIDR
CIDRПоследний IP-адрес в подсетиМаска подсетиКоличество адресов в подсетиКоличество хостов в подсетиКласс подсети
a.b.c.d/320.0.0.0255.255.255.25511*1/256 C
a.b.c.d/310.0.0.1255.255.255.25422*1/128 C
a.b.c.d/300.0.0.3255.255.255.252421/64 C
a.b.c.d/290.0.0.7255.255.255.248861/32 C
a.b.c.d/280.0.0.15255.255.255.24016141/16 C
a.b.c.d/270.0.0.31255.255.255.22432301/8 C
a.b.c.d/260.0.0.63255.255.255.19264621/4 C
a.b.c.d/250.0.0.127255.255.255.1281281261/2 C
a.b.c.0/240.0.0.255255.255.255.0002562541 C
a.b.c.0/230.0.1.255255.255.254.0005125102 C
a.b.c.0/220.0.3.255255.255.252.000102410224 C
a.b.c.0/210.0.7.255255.255.248.000204820468 C
a.b.c.0/200.0.15.255255.255.240.0004096409416 C
a.b.c.0/190.0.31.255255.255.224.0008192819032 C
a.b.c.0/180.0.63.255255.255.192.00016 38416 38264 C
a.b.c.0/170.0.127.255255.255.128.00032 76832 766128 C
a.b.0.0/160.0.255.255255.255.000.00065 53665 534256 C = 1 B
a.b.0.0/150.1.255.255255.254.000.000131 072131 0702 B
a.b.0.0/140.3.255.255255.252.000.000262 144262 1424 B
a.b.0.0/130.7.255.255255.248.000.000524 288524 2868 B
a.b.0.0/120.15.255.255255.240.000.0001 048 5761 048 57416 B
a.b.0.0/110.31.255.255255.224.000.0002 097 1522 097 15032 B
a.b.0.0/100.63.255.255255.192.000.0004 194 3044 194 30264 B
a.b.0.0/90.127.255.255255.128.000.0008 388 6088 388 606128 B
a.0.0.0/80.255.255.255255.000.000.00016 777 21616 777 214256 B = 1 A
a.0.0.0/71.255.255.255254.000.000.00033 554 43233 554 4302 A
a.0.0.0/63.255.255.255252.000.000.00067 108 86467 108 8624 A
a.0.0.0/57.255.255.255248.000.000.000134 217 728134 217 7268 A
a.0.0.0/415.255.255.255240.000.000.000268 435 456268 435 45416 A
a.0.0.0/331.255.255.255224.000.000.000536 870 912536 870 91032 A
a.0.0.0/263.255.255.255192.000.000.0001 073 741 8241 073 741 82264 A
a.0.0.0/1127.255.255.255128.000.000.0002 147 483 6482 147 483 646128 A
0.0.0.0/0255.255.255.255000.000.000.0004 294 967 2964 294 967 294256 A

* Чтобы в сетях с такой размерностью маски возможно было разместить хосты, отступают от правил, принятых для работы в остальных сетях.

Возможных узлов подсети меньше количества адресов на два: начальный адрес сети резервируется для идентификации подсети, последний адрес используется в качестве широковещательного адреса (возможны исключения в виде адресации в IPv4 сетей /32 и /31).

Если n{\displaystyle n} — количество компьютеров в подсети, округлённое до ближайшей большей степени двойки, и n⩽254{\displaystyle n\leqslant 254} (для сетей класса C), то маска подсети вычисляется по следующей формуле: 28−n−2{\displaystyle 2^{8}-n-2}, где двойка вычитается, так как один IP-адрес (первый в задаваемом маской диапазоне) является IP-адресом подсети и ещё один IP-адрес (последний в задаваемом маской диапазоне) является широковещательным адресом (для отправки данных всем узлам подсети). Для n>254{\displaystyle n>254} будет другая формула.

Пример: в некой подсети класса C есть 30 компьютеров; маска для такой сети вычисляется следующим образом:

28 - 30 - 2 = 224 = E0h;
маска: 255.255.255.224 = 0xFF.FF.FF.E0.
  1. Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов = Computer Networks. Principles, Technologies and Protocols for Network Design. — 3-е изд. — СПб.: Издательский дом «Питер», 2006. — С. 572-576. — 958 с. — ISBN 5-469-00504-6.
  • VLSM — сетевые маски переменной длины.

ru.wikipedia.org

Еще раз про IP-адреса, маски подсетей и вообще / Habr

Чуточку ликбеза. Навеяно предшествующими копипастами разной чепухи на данную тему. Уж простите, носинг персонал.

IP-адрес (v4) состоит из 32-бит. Любой уважающий себя админ, да и вообще айтишник (про сетевых инженеров молчу) должен уметь, будучи разбуженным среди ночи или находясь в состоянии сильного алкогольного опьянения, правильно отвечать на вопрос «из скольки бит состоит IP-адрес». Желательно вообще-то и про IPv6 тоже: 128 бит.

Обстоятельство первое. Всего теоретически IPv4-адресов может быть:
232 = 210*210*210*22 = 1024*1024*1024*4 ≈ 1000*1000*1000*4 = 4 млрд.
Ниже мы увидим, что довольно много из них «съедается» под всякую фигню.

Записывают IPv4-адрес, думаю, все знают, как. Четыре октета (то же, что байта, но если вы хотите блеснуть, то говорите «октет» — сразу сойдете за своего) в десятичном представлении без начальных нулей, разделенные точками: «192.168.11.10».

В заголовке IP-пакета есть поля source IP и destination IP: адреса источника (кто посылает) и назначения (кому). Как на почтовом конверте. Внутри пакетов у IP-адресов нет никаких масок. Разделителей между октетами тоже нет. Просто 32-бита на адрес назначения и еще 32 на адрес источника.

Однако, когда IP-адрес присваивается интерфейсу (сетевому адаптеру или как там его еще называют) компьютера или маршрутизатора, то кроме самого адреса данного устройства ему назначают еще и маску подсети. Еще раз: маска не передается в заголовках IP-пакетов.

Компьютерам маска подсети нужна для определения границ — ни за что не угадаете чего — подсети. Чтоб каждый мог определить, кто находится с ним в одной [под]сети, а кто — за ее пределами. (Вообще-то можно говорить просто «сети», часто этот термин используют именно в значении «IP-подсеть».) Дело в том, что внутри одной сети компьютеры обмениваются пакетами «напрямую», а когда нужно послать пакет в другую сеть — шлют их шлюзу по умолчанию (третий настраиваемый в сетевых свойствах параметр, если вы помните). Разберемся, как это происходит.

Маска подсети — это тоже 32-бита. Но в отличии от IP-адреса, нули и единицы в ней не могут чередоваться. Всегда сначала идет сколько-то единиц, потом сколько-то нулей. Не может быть маски

120.22.123.12=01111000.00010110.01111011.00001100.

Но может быть маска

255.255.248.0=11111111.11111111.11111000.00000000.

Сначала N единиц, потом 32-N нулей. Несложно догадаться, что такая форма записи является избыточной. Вполне достаточно числа N, называемого длиной маски. Так и делают: пишут 192.168.11.10/21 вместо 192.168.11.10 255.255.248.0. Обе формы несут один и тот же смысл, но первая заметно удобнее.

Чтобы определить границы подсети, компьютер делает побитовое умножение (логическое И) между IP-адресом и маской, получая на выходе адрес с обнуленными битами в позициях нулей маски. Рассмотрим пример 192.168.11.10/21:

11000000.10101000.00001011.00001010
11111111.11111111.11111000.00000000
----------------------------------------------
11000000.10101000.00001000.00000000 = 192.168.8.0

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

Адрес 192.168.8.0, со всеми обнуленными битами на позициях, соответствующих нулям в маске, называется адресом подсети. Его (обычно) нельзя использовать в качестве адреса для интерфейса того или иного хоста. Если же эти биты наоборот, установить в единицы, то получится адрес 192.168.15.255. Этот адрес называется направленным бродкастом (широковещательным) для данной сети. Смысл его по нынешним временам весьма невелик: когда-то было поверье, что все хосты в подсети должны на него откликаться, но это было давно и неправда. Тем не менее этот адрес также нельзя (обычно) использовать в качестве адреса хоста. Итого два адреса в каждой подсети — на помойку. Все остальные адреса в диапазоне от 192.168.8.1 до 192.168.15.254 включительно являются полноправными адресами хостов внутри подсети 192.168.8.0/21, их можно использовать для назначения на компьютерах.

Таким образом, та часть адреса, которой соответствуют единицы в маске, является адресом (идентификатором) подсети. Ее еще часто называют словом префикс. А часть, которой соответствуют нули в маске, — идентификатором хоста внутри подсети. Адрес подсети в виде 192.168.8.0/21 или 192.168.8.0 255.255.248.0 можно встретить довольно часто. Именно префиксами оперируют маршрутизаторы, прокладывая маршруты передачи трафика по сети. Про местонахождение хостов внутри подсетей знает только шлюз по умолчанию данной подсети (посредством той или иной технологии канального уровня), но не транзитные маршрутизаторы. А вот адрес хоста в отрыве от подсети не употребляется совсем.

Обстоятельство третье. Количество хостов в подсети определяется как 232-N-2, где N — длина маски. Чем длиннее маска, тем меньше в ней хостов.

Из данного обстоятельства в частности следует, что максимальной длиной маски для подсети с хостами является N=30. Именно сети /30 чаще всего используются для адресации на point-to-point-линках между маршрутизаторами.

И хотя большинство современных маршрутизаторов отлично работают и с масками /31, используя адрес подсети (нуль в однобитовой хоствой части) и бродкаст (единица) в качестве адресов интерфейсов, администраторы и сетевые инженеры часто попросту боятся такого подхода, предпочитая руководствоваться принципом «мало ли что».

А вот маска /32 используется достаточно часто. Во-первых, для всяких служебных надобностей при адресации т. н. loopback-интерфейсов, во-вторых, от криворукости: /32 — это подсеть, состоящая из одного хоста, то есть никакая и не сеть, в сущности. Чем чаще администратор сети оперирует не с группами хостов, а с индивидуальными машинами, тем менее сеть масштабируема, тем больше в ней соплей, бардака и никому непонятных правил. Исключением, пожалуй, является написание файрвольных правил для серверов, где специфичность — хорошее дело. А вот с пользователями лучше обращаться не индивидуально, а скопом, целыми подсетями, иначе сеть быстро станет неуправляемой.

Интерфейс, на котором настроен IP-адрес, иногда называют IP-интерфейсом или L3-интерфейсом («эл-три», см. Модель OSI).

Прежде чем посылать IP-пакет, компьютер определяет, попадает ли адрес назначения в «свою» подсеть. Если попадает, то шлет пакет «напрямую», если же нет — отсылает его шлюзу по умолчанию (маршрутизатору). Как правило, хотя это вовсе необязательно, шлюзу по умолчанию назначают первый адрес хоста в подсети: в нашем случае 192.168.8.1 — для красоты.

Обстоятельство четвертое. Из сказанного в частности следует, что маршрутизатор (шлюз и маршрутизатор — это одно и то же) с адресом интерфейса 192.168.8.1 ничего не знает о трафике, передаваемом между, например, хостами 192.168.8.5 и 192.168.8.7. Очень частой ошибкой начинающих администраторов является желание заблокировать или как-то еще контролировать с помощью шлюза трафик между хостами в рамках одной подсети. Чтобы трафик проходил через маршрутизатор, адресат и отправитель должны находиться в разных подсетях.

Таким образом в сети (даже самого маленького предприятия) обычно должно быть несколько IP-подсетей (2+) и маршрутизатор (точнее файрвол, но в данном контексте можно считать эти слова синонимами), маршрутизирующий и контролирующий трафик между подсетями.

Следующий шаг — разбиение подсетей на более мелкие подсети. Полюбившуюся нам сеть 192.168.8.0/21 можно разбить на 2 подсети /22, четыре подсети /23, восемь /24 и т. д. Общее правило, как не сложно догадаться, такое: K=2X-Y, где K — количество подсетей с длиной маски Y, умещающихся в подсеть с длиной маски X.

Обстоятельство пятое. Как и любому приличному IT-шнику, администратору сети, если только он получает зарплату не за красивые глаза, положено знать наизусть степени двойки от 0 до 16.

Процесс объединения мелких префиксов (с длинной маской, в которых мало хостов) в крупные (с короткой маской, в которых много хостов) называется агрегацией или суммаризацией (вот не суммированием!). Это очень важный процесс, позволяющий минимизировать количество информации, необходимой маршрутизатору для поиска пути передачи в сети. Так, скажем, провайдеры выдают клиентам тысячи маленьких блоков типа /29, но весь интернет даже не знает об их существовании. Вместо этого за каждым провайдером закрепляются крупные префиксы типа /19 и крупнее. Это позволяет на порядки сократить количество записей в глобальной таблице интернет-маршрутизации.

Обстоятельство шестое. Чем больше длина маски, тем меньше в подсети может быть хостов, и тем большую долю занимает «съедение» адресов на адреса подсети, направленного бродкаста и шлюза по умолчанию. В частности в подсети с маской /29 (232-29 = 8 комбинаций) останется всего 5 доступных для реального использования адресов (62,5%). Теперь представьте, что вы провайдер, выдающий корпоративным клиентам тысячи блоков /29. Таким образом, грамотное разбиение IP-пространства на подсети (составление адресного плана) — это целая маленькая наука, включающая поиск компромиссов между разными сложными факторами.

При наличии достаточно большого диапазона адресов, как правило из блоков для частного использования 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16, конечно, удобно использовать маски, совпадающие по длине с границами октетов: /8, /16, /24 или, соответственно, 255.0.0.0, 255.255.0.0 и 255.255.255.0. При их использовании можно облегчить работу мозгу и калькулятору, избавившись от необходимости работать с двоичной системой и битами. Это правильный подход, но не стоит забывать, что злоупотребление расслабухой редко доводит до добра.

И последнее. Пресловутые классы адресов. Дорогие товарищи, забудьте это слово вообще! Совсем. Вот уже скоро 20 лет (!), как нет никаких классов. Ровно с тех пор, как стало понятно, что длина префикса может быть любой, а если раздавать адреса блоками по /8, то никакого интернета не получится.

Иногда «матерые специалисты» любят блеснуть словами «сеть класса такого-то» по отношению к подсети с той или иной длиной маски. Скажем, часто можно услышать слово «сеть класса C» про что-нибудь вроде 10.1.2.0/24. Класс сети (когда он был) не имел никакого отношения к длине маски и определялся совсем другими факторами (комбинациями битов в адресе). В свою очередь классовая адресация обязывала иметь маски только предписанной для данного класса длины. Поэтому указанная подсеть 10.1.2.0/24 никогда не принадлежала и не будет принадлежать к классу C.

Но обо всем этом лучше и не вспоминать. Единственное, что нужно знать — что существуют разные глобальные конвенции, собранные под одной крышей в RFC3330, о специальных значениях тех или иных блоков адресов. Так, например, упомянутые блоки 10/8, 172.16/12 и 192.168/16 (да, можно и так записывать префиксы, полностью откидывая хостовую часть) определены как диапазоны для частного использования, запрещенные к маршрутизации в интернете. Каждый может использовать их в частных целях по своему усмотрению. Блок 224.0.0.0/4 зарезервирован для мультикаста и т. д. Но все это лишь конвенции, призванные облегчить административное взаимодействие. И хотя лично я крайне не рекомендую вам их нарушать (за исключением надежно изолированных лабораторных тестов), технически никто не запрещает использовать любые адреса для любых целей, покуда вы не стыкуетесь с внешним миром.

habr.com

Длина префикса сети в маске подсети

Поскольку биты идентификатора сети всегда идут последовательно и начинаются с са­мого левого, самый простой способ показать маску подсети — это указать количество битов идентификатора сети в виде префикса сети. Таким образом, маска подсети выра­жается в виде «IP-адрес/префикс сети». Например, IP-адрес I31.107.16.200 и маску под­сети 255.255.0.0 можно записать в виде 131.107.16.200/16. Число 16 после слеша обозна­чает количество единичных битов в маске подсети. Точно так же, /24 обозначает маску подсети 255.255.255.0 для адреса класса С, например 206.73.118.23/24.

Примечание Нотация с префиксом сети также известна как бесклассовая междоменная маршрутизация (Classless Interdomain Routing, C1DR).

Основной шлюз

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

Пытаясь передать информацию другому узлу IP-сети, компьютер определяет тип узла (локальный или удаленный) по маске подсети. Если узел-получатель располо­жен в локальном сегменте сети, пакет направляется в локальную сеть по методу ши­роковещания. В противном случае компьютер пересылает пакет в основной шлюз, определенный в параметрах TCP/IP. Обязанность дальнейшей пересылки пакета е нужную сеть возлагается на маршрутизатор, адрес которого указан в качестве основ­ного шлюза.

 

7.5. Разбиение на подсети

Очень редко в локальную вычислительную сеть входит более 100-200 узлов: даже если взять сеть с большим количеством узлов, многие сетевые среды накладывают ограничения, например, в 1024 узла. Исходя из этого, целесообразность использования сетей класса А и В весьма сомнительна. Да и использование класса С для сетей, состоящих из 20-30 узлов, тоже является расточительством.



Для решения этих проблем в двухуровневую иерархию IP-адресов (сеть — узел) была введена новая составляющая — подсеть. Идея заключается в «заимствовании» нескольких битов из узловой части адреса для определения подсети.

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

    Сетевой префикс подсеть узел
IP адрес 144.144.19.22
Маска 255.255.255.0
    Расширенный сетевой префикс  

 

Маски подсети помогают определить, как IP-адрес разбивается на идентификаторы сети и узла. В адресах классов А, В и С применяются стандартные маски подсети, занимаю­щие соответственно первые 8, 6 и 24 бита 32-битового адреса. Подсетью называется логическая сеть, определяемая маской подсети.

Стандартные маски годятся для сетей, которые не предполагается разбивать. Напри­мер, в сети из 100 компьютеров, соединенных с помощью карт гигабитного Ethernet, кабелей и коммутаторов, все узлы могут обмениваться информацией по локальной сети. Сеть не нуждается в маршрутизаторах для защиты от чрезмерного широковещания или для связи с узлами, расположенными в отдельных физических сегментах. В таком про­стом случае вполне достаточно идентификатора сети класса С.

 

7.6. Механизм разбиения на подсети

Разбиение на подсети (subnetting) — это логическое разделение адресного пространства сети путем установки в 1 дополнительных битов маски подсети. Такое расширение по­зволяет создавать многие подсети в адресном пространстве сети.

Например, если маска подсети по умолчанию 255.255.0.0 используется для узлов сети класса В 131.107.0.0, IP-адреса 131.107.1.11 и 131.107.2.11 находятся водной подсети и поддерживают взаимодействие посредством широковещания. Но если расширить маску подсети до 255255255.0, то эти адреса окажутся в разных подсетях и для обмена данны­ми соответствующим узлам придется пересылать пакеты на основной шлюз, который перенаправит дейтаграммы в нужную подсеть. Внешние по отношению к сети узлы по-прежнему используют маску подсети по умолчанию для взаимодействия с узлами внут­ри сети. Обе версии показаны на рис. 2-7 и 2-8.

 

Рис. 2-7. Не разбитое на подсети адресное пространство класса В

Показанное на рис. 2-7 исходное адресное пространство класса В, состоящее из един­ственной подсети, может содержать максимум 65 534 узлов, а новая маска подсети (рис. 2-8) позволяет разделить адресное пространство на 256 подсетей, в каждой из ко­торых можно разместить до 254 узлов.

7.6.1. Преимущества разбиения на подсети

 
 

Разбиение на подсети часто используют для обеспечения соответствия физической и логической топологии сети или Для ограничения широковешательного трафика. Дру­гие несомненные преимущества: более высокий уровень защиты (благодаря ограниче­нию неавторизованного трафика маршрутизаторами) и упрощение администрирова­ния (благодаря передачеуправления подсетями другим отделам или администраторам).

Рис. 2-8. Разбитое на подсети адресное пространство класса В

Соответствие физической топологии.Допустим, вам поручили спроектировать уни­верситетскую сеть, состоящую из 200 узлов, распределенных в четырех зданиях — Voter Hall, Twilight Hall, Monroe Hall и Sunderland Hall. В каждом здании планируется разме­стить по 50 узлов. Если интернет-провайдер выделил адрес 208.147.66.0 класса С, вам доступны адреса 208.147.66—208.147.66.254. Однако из-за размещения в четырех физи­чески отделенных зданиях, узлы не могут обмениваться данными по локальной сети. Расширив маску подсети на 2 бита (т. е. позаимствовав их у идентификатора узла), сеть» разбивают на четыре логические подсети, а для связи устанавливается маршрутизатор (рис. 2-9).

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

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

 

7.6.2. Определение максимального количества узлов в сети

Зная сетевой адрес, определить максимальное количество узлов в сети просто: надо воз­вести 2 в степень, равную количеству битов в идентификаторе узла и вычесть 2. Напри­мер, в сетевом адресе 192.168.0.0/24 под идентификатор узла отведено 8 бит, поэтому возможное максимальное число узлов 25 — 2 = 254.

Количество узлов в подсети.Количество идентификаторов узлов в подсети опре­деляется также, как и узлов в сети — оно равно Т — 2, где х — количество бит в иден­тификаторе узла. Например, в адресе 172.16.0.0/24 резервируется 8 бит под иденти­фикатор узла, поэтому число узлов в подсети равно 2 — 2, т. е. 254. Дня вычисления количества узлов во всей сети умножают полученный результат на количество под­сетей. В нашем примере адресное пространство 172.16.0.0/24 даст 254 сетей х 256 узлов = 65 024.

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

 

7.6.3. Определение диапазонов адресов подсети

Десятично-точечная форма маски подсети позволяет определить диапазоны IP-адресов в каждой подсети простым вычитанием из 256 числа в соответствующем октете маски. Например, в сети класса С с адресом 207.209.68.0 с маской подсети 255.255.255.192 вы­читание 192 из 256 даст 64. Таким образом, новый диапазон начинается после каждого 64 адреса: 207.209.68.0-207.209.68.63, 207.209.68.64-207.209.68.127 и т.д. В сети клас­са В 131.107.0.0 с маской подсети 255.255.240.0 вычитание 240 из 256 дает 16. Следова­тельно, диапазоны адресов подсетей группируются по 16 в третьем октете, а четвертый октет принимает значения из диапазона 0—255: 131.107.0.0—131.107.15.255, 131.107.16.0— 131.107.31.255 и т.д.

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

7.7. Проблемы классической схемы

В середине 80-х годов Internet впервые столкнулся с проблемой переполнения таблиц магистральных маршрутизаторов. Решение, однако, было быстро найдено — подсети устранили проблему на несколько лет. Но уже в начале 90-х к проблеме большого количества маршрутов прибавилась нехватка адресного пространства. Ограничение в 4 миллиарда адресов, заложенное в протокол и казавшееся недосягаемой величиной, стало весьма ощутимым.

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

Долгосрочное решение — это протокол IP следующей версии. Он обозначается, как IPv6, или IPng (Internet Protocol next generation). В этой реализации протокола длина адреса увеличена до 16-ти байтов (128 бит!), исключены некоторые элементы действующего протокола, которые оказались неиспользуемыми.

 

7.7.1. Маска подсети переменной длины VLSM
(Variable Length Subnet Mask)

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

Однако поддержка масок подсети переменной длины (variable-length subnet mask, VLSM) позволяет маршрутизаторам обслуживать разные маски. Чаше всего VLSM применяют для разбиения на подсети самих подсетей.

 

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

Кроме того, технология VLSM, путем скрытия части подсетей, позволяет уменьшить объем данных, передаваемых маршрутизаторами. Так, если сеть 12/8 конфигурируется с расширенным сетевым префиксом /16, после чего сети 12.1/16 и 12.2/16 разбиваются на подсети /20, то маршрутизатору в сети 12.1 незачем знать о подсетях 12.2 с префиксом /20, ему достаточно знать маршрут на сеть 12.1/16.

Табл. 2-5. Параметры маски подсети класса С (статические)

 

Сетевой адрес Число подсетей Число узлов в подсети
208.147.66.0/24
208.147.66.0/25
208.147.66.0/26
208.147.66.0/27
208.147.66.0/28
208.147.66.0/29
      

При разбиении на подсети различного размера нужно использовать специальный шаблон с завершающими нулями; сеть класса С поддерживает до семи подсетей. Завер­шающие нули нужны для предотвращения пересечения адресных пространств подсетей. Если идентификатор подсети с маской переменной длины соответствует шаблону из табл. 2-6, подсети не пересекутся и адреса будут интерпретироваться однозначно.

 

На рис. 2-17 показано, как с помощью VLSM построить 3 сети с 100, 50 и 20 узлами

соответственно.

 

7.7.2. Бесклассовая междоменная маршрутизация CIDR
(Classless Inter-Domain Routing)

Появление этой технологии было вызвано резким увеличением объема трафика в Internet и, как следствие, увеличением количества маршрутов на магистральных маршрутизаторах. Так, если в 1994 году, до развертывания CIDR, таблицы маршрутизаторов содержали до 70 000 маршрутов, то после внедрения их количество сократилось до 30 000. На сентябрь 2002, количество маршрутов перевалило за отметку 110 000! Можете себе представить, сколько маршрутов нужно было бы держать в таблицах сегодня, если бы не было CIDR!


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

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

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

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

 

7.7.3. Сложение маршрутов путем создания надсетей

Итак.чтобы предотвратить истощение доступных идентификаторов сетей старших классов, организации, ответственные за адресацию в Интернете, предложили схему, называемую созданием надсетей (supernetting), согласно которой несколько сетей (маршрутов) мож­но объединить (или стожить) в единую более крупную сеть. Надсети позволяют эффек­тивнее управлять выделением участков адресного пространства.

 



Дата добавления: 2018-03-20; просмотров: 2805;


znatock.org

Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет

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


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

Итак IP-адрес — это адрес, используемый узлом на сетевом уровне. Он имеет иерархическую структуру. Что это значит? Это значит, что каждая цифра в его написании несет определенный смысл. Объясню на очень хорошем примере. Примером будет номер обычного телефона — +74951234567. Первой цифрой идет +7. Это говорит о том, что номер принадлежит зоне РФ. Далее следует 495. Это код Москвы. И последние 7 цифр я взял случайными. Эти цифры закреплены за районной зоной. Как видите здесь наблюдается четкая иерархия. То есть по номеру можно понять какой стране, зоне он принадлежит. IP адреса придерживаются аналогично строгой иерархии. Контролирует их организация IANA(англ. Internet Assigned Numbers Authority). Если на русском, то это «Администрация адресного пространства Интернет». Заметьте, что слово «Интернет» с большой буквы. Мало кто придает этому значение, поэтому объясню разницу. В англоязычной литературе термин «internet» используется для описания нескольких подключённых друг к другу сетей. А термин «Internet» для описания глобальной сети. Так что примите это к сведению.

Несмотря на то, что тема статьи больше теоретическая, нежели практическая, я настоятельно рекомендую отнестись к ней со всей серьезностью, так как от нее зависит понимание дальнейших тем, а особенно маршрутизации. Не для кого, я думаю, не секрет, что мы привыкли воспринимать числовую информацию в десятичном формате (в числах от 0-9). Однако все современные компьютеры воспринимают информацию в двоичном (0 и 1). Не важно при помощи тока или света передается информация. Вся она будет воспринята устройством как есть сигнал (1) или нет (0). Всего 2 значения. Поэтому был придуман алгоритм перевода из двоичной системы в десятичную, и обратно. Начну с простого и расскажу, как выглядят IP адреса в десятичном формате. Вся эта статья посвящена IP адресам версии 4. О версии 6 будет отдельная статья. В предыдущих статьях, лабах, да и вообще в жизни, вы видели что-то вроде этого «193.233.44.12». Это и есть IP адрес в десятичной записи. Состоит он из 4-х чисел, называемых октетами и разделенных между собой точками. Каждое такое число (октет) может принимать значение от 0 до 255. То есть одно из 256 значений. Длина каждого октета равна 8 битам, а суммарная длина IPv4 = 32 битам. Теперь интересный вопрос. Каким образом этот адрес воспримет компьютер, и как будет с ним работать?

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


Вместо «x» записывается либо 1, либо 0. Таблица разделена на 8 колонок, каждая из которых несет в себе 1 бит (8 колонок = 8 бит = 1 октет). Расположены они по старшинству слева направо. То есть первый (левый) бит — самый старший и имеет номер 128, а последний (правый) — самый младший и имеет номер 1. Теперь объясню, откуда эти числа взялись. Так как система двоичная, и длина октета равна 8-ми битам, то каждое число получается возведением числа 2 в степень от 0 до 7. И каждая из полученных цифр записывается в таблицу от большего к меньшему. То есть слева направо. От 2 в 7-ой степени до 2 в 0-ой степени. Приведу таблицу степеней 2-ки.

Думаю теперь понятно, каким образом строится таблица. Давайте теперь разберем адрес «193.233.44.12» и посмотрим, как он выглядит в двоичном формате. Разберем каждый октет отдельно. Возьмем число 193 и посмотрим, из каких табличных комбинаций оно получается. 128 + 64 + 1 = 193.


Те числа, которые участвовали в формировании комбинации получают 1, а все остальные получают 0.

Берем первый октет 233. 128 + 64 + 32 + 8 + 1.


Для 44 — это 32 + 8 + 4.

И напоследок 12. 8 + 4.

Получается длинная битовая последовательность 11000001.11101001.00101100.00001100. Именно с данным видом работают сетевые устройства. Битовая последовательность обратима. Вы можете так же вставить каждый октет (по 8 символов) в таблицу и получить десятичную запись. Я представлю совершенно случайную последовательность и приведу ее к десятичному виду. Пусть это будет 11010101.10110100.11000001.00000011. Строю таблицу и заношу в нее первый блок.

Получаю 128 + 64 + 16 + 4 + 1 = 213.

Вычисляю второй блок.


Считаю 128 + 32 + 16 + 4 = 180.

Третий блок.


128 + 64 + 1 = 193.

И напоследок четвертый.


2 + 1 = 3

Собираем результаты вычислений и получаем адрес 213.180.193.3. Ничего тяжелого, чистая арифметика. Если тяжело и прям невыносимо трудно, то попрактикуйтесь. Сначала может показаться страшным, так как многие закончили учебу лет 10 назад и многое позабыли. Но уверяю, что как только набьете руку, считать будет гораздо легче. Ну а для закрепления дам вам несколько примеров для самостоятельного расчета (под спойлером будут ответы, но открывайте их только когда прорешаете сами).

Задача №1

1) 10.124.56.220
2) 113.72.101.11
3) 173.143.32.194
4) 200.69.139.217
5) 88.212.236.76
6) 01011101.10111011.01001000.00110000
7) 01001000.10100011.00000100.10100001
8) 00001111.11011001.11101000.11110101
9) 01000101.00010100.00111011.01010000
10) 00101011.11110011.10000010.00111101

Ответы

1) 00001010.01111100.00111000.11011100
2) 01110001.01001000.01100101.00001011
3) 10101101.10001111.00100000.11000010
4) 11001000.01000101.10001011.11011001
5) 01011000.11010100.11101100.01001100
6) 93.187.72.48
7) 72.163.4.161
8) 15.217.232.245
9) 69.20.59.80
10) 43.243.130.61


Теперь IP-адреса не должны быть чем-то страшным, и можно углубиться в их изучение.
Выше мы говорили о структуре телефонных номеров и их иерархии. И вот на заре рождения Интернета в том представлении, в каком мы его привыкли видеть, возник вопрос. Вопрос заключался в том, что IP-адреса нужно как-то сгруппировать и контролировать выдачу. Решением было разделить все пространство IP-адресов на классы. Это решение получило название классовая адресация (от англ. Classful). Она уже давно устарела, но практически в любой книге на нее отводятся целые главы и разделы. Cisco тоже не забывает про это и в своих учебных материалах рассказывает про нее. Поэтому я пробегусь по этой теме и покажу, чем она блистала с 1981 по 1995 год.

Пространство было поделено на 5 классов. Каждому классу был назначен блок адресов.

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

В чем суть. Первый октет, то есть 8 бит, остаются за адресом сети, а 3 последних октета (то есть оставшиеся 24 бита) назначаются хостам. Вот для того, чтобы показать, какой кусок относится к сети, а какой к хостам, используется маска. По структуре записи она аналогична записи IP-адреса. Отличие маски от IP-адресов в том, что 0 и 1 не могут чередоваться. Сначала идут 1, а потом 0. Таким образом, там где есть единица, значит это участок сети. Чуть ниже, после разбора классов, я покажу, как с ней работать. Сейчас главное знать, что маска класса A — 255.0.0.0. В таблице еще упомянут какой-то первый бит и для класса A он равен 0. Этот бит как раз нужен для того, чтобы сетевое устройство понимало, к какому классу оно принадлежит. Он же еще задает начальный и конечный диапазон адресов. Если в двоичном виде записать на всех октетах единицы, кроме первого бита в первом октете (там всегда 0), то получится 127.255.255.255, что является границей класса A. Например, возьмем адрес 44.58.63.132. Мы знаем, что у класса A первый октет отдается под адрес сети. То есть «44» — это адрес сети, а «58.63.132» — это адрес хоста.

Поговорим про класс B

Этому классу был дан блок поменьше. И адреса из этого блока предназначались для сетей средних масштабов. 2 октета отданы под адрес сети, и 2 — под адрес хостов. Маска у B класса — 255.255.0.0. Первые биты строго 10. А остальные меняются. Перейдем к примеру: 172.16.105.32. Два первых октета под адрес сети — «172.16». А 3-ий и 4-ый под адрес хоста — «105.32».

Класс C

Этот класс обделили адресами и дали ему самый маленький блок. Он был предназначен для мелких сетей. Зато этот класс отдавал целых 3 октета под адрес сети и только 1 октет — под хосты. Маска у него — 255.255.255.0. Первые биты 110. На примере это выглядит так — 192.168.1.5. Адрес сети «192.168.1», а адрес хоста «5».

Классы D и E. Я неcпроста объединил их в один. Адреса из этих блоков зарезервированы и не могут назначаться сетям и хостам. Класс D предназначен для многоадресной рассылки. Аналогию можно привести с телевидением. Телеканал вещает группе лиц свой эфир. И те, кто подключены, могут смотреть телепередачи. То есть в распоряжение администраторов могут попасть только 3 первых класса.

Напомню, что первые биты у класса D — это 1110. Пример адреса — 224.0.0.5.

А первые биты у класса E — это 1111. Поэтому, если вдруг увидите адрес вида 240.0.0.1, смело говорите, что это адрес E класса.

Про классы обмолвились. Теперь озвучу вопрос, который мне недавно задали. Так зачем тогда маски? У нас итак хосты понимают в каком они классе. Но суть вот в чем. Например, у вас есть маленький офис, и вам нужен блок IP-адресов. Никто не будет вам выдавать все адреса класса C. А дадут только его кусок. Например 192.168.1.0 с маской 255.255.255.0. Так вот эта маска и будет определять вашу границу. Мы уже говорили, что октет варьируется в значении от 0 до 255. Вот этот 4 октет полностью в вашем распоряжении. За исключением первого адреса и последнего, то есть 0 и 255 в данном случае. Первый адрес — это адрес сети (в данном случае 192.168.1.0), а последний адрес — широковещательный адрес (192.168.1.255). Напомню, что широковещательный адрес используется в том случае, когда надо передать информацию всем узлам в сети. Поэтому есть правило. Если вам надо узнать номер сети, то все биты относящиеся к хосту обращаете в 0, а если широковещательный, то все биты — в 1. Поэтому, если из 256 адресов забирается 2 адреса, то на назначение хостам остается 254 адреса (256 — 2). На собеседованиях и экзаменах часто любят спрашивать: «Количество IP-адресов в сети?» и «Сколько доступных IP-адресов в сети для назначения хостам?». Два разных вопроса, которые могут поставить в тупик. Ответом на первый будет — все адреса, включая адрес сети и широковещательный адрес, а на второй вопрос — все адреса, кроме адреса сети и широковещательного адреса.

Теперь углубимся в изучении маски.

Я записал адрес класса C 192.168.1.1 с маской 255.255.255.0 в десятичном и двоичном формате. Обратите внимание на то, как выглядит IP-адрес и маска в двоичном формате. Если в IP-адресе 0 и 1 чередуются, то в маске сначала идут 1, а потом 0. Эти биты фиксируют адрес сети и задают размер. По таблице выше можно сделать вывод, что в двоичном виде маска представлена последовательностью 24 единиц подряд. Это говорит о том, что целых 3 октета выделено под сеть, а 4 октет свободен под адресацию для хостов. Здесь ничего необычного. Это стандартная маска класса C.

Но вот в чем загвоздка. Например, в вашем офисе 100 компьютеров, и расширяться вы не планируете. Зачем плодить сеть из 250+ адресов, которые вам не нужны?! На помощь приходит разделение на подсети. Это очень удобная вещь. Объясню принцип на примере того же класса C. Как бы вы не хотели, но трогать 3 октета нельзя. Они фиксированы. Но вот 4 октет свободен под хосты, поэтому его можно трогать. Заимствуя биты из хостового куска, вы дробите сеть на n-ое количество подсетей и, соответственно, уменьшаете в ней количество адресов для хостов.

Попробуем это воплотить в реальность. Меняю маску. Заимствую первый бит из хостовой части(то есть 1-ый бит 4-ого октета выставляю в единицу). Получается следующая маска.

Данная маска делит сеть на 2 части. Если до дробления у сети было 256 адресов(от 0 до 255), то после дробления у каждого куска будет по 128 адресов(от 0 до 127 и от 128 до 255).
Теперь посмотрю, что изменится в целом с адресами.

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

То есть в четвертом октете меняются все биты, кроме первого. Он жестко фиксирован в рамках этой сети.

Теперь посмотрим на вторую половину сети и вычислим ее адреса. Деление у нас производилось заимствованием первого бита в 4-ом октете, значит он является делителем. Первая половина сети получалась, когда этот бит принимал значение 0, а значит вторая сеть образуется, когда этот бит примет значение 1. Обращаю этот бит в 1 и посмотрю на границы.

Приведу в десятичный вид.

Соответственно .128 и .255 назначать хостам нельзя. Значит в доступности 128-2=126 адресов.
Вот таким образом можно при помощи маски управлять размером сети. Каждый заимствованный бит делит сеть на 2 части. Если откусить 1 бит от хостовой части, то поделим на 2 части (по 128 адресов), 2 бита = 4 части (по 64 адреса), 3 бита = 8 (по 32 адреса) и так далее.

Если вы рассчитали количество бит, отдаваемые под хосты, то количество доступных IP-адресов можно вычислить по формуле

В книге У. Одома по подготовке к CCNA R&S приведена хорошая формула для расчета битов, отдаваемых на подсеть и хосты:

N + S + H = 32, где N — кол-во битов сети (класс A — 8 бит, B — 16 бит, C — 24 бита), S — кол-во заимствованных битов на подсеть (это то, что мы делали выше, когда заимствовали 1 бит из хостовой части), H — кол-во бит отводимых хостам.

Внесу ясность и объясню, как и где применять эти формулы.

Возьмем пример:

Нам выдали сеть 172.16.0.0 и попросили создать 120 подсетей со 180 хостами и записать маску. Приступим.

В качестве шпаргалки, и для быстроты вычисления, я ниже подготовил таблицу степеней двойки.


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

Теперь смотрим на выданную сеть. Путем логических размышлений понимаем, что это адрес класса B. А значит его N (кол-во битов сети) = 16. Ок. Значит на хосты выделено тоже 16 бит. Вспоминаем условия задачи. Нужно создать 120 подсетей. «Откусывать» биты от сетевой части запрещено, значит кусаем от хостовой части.

Теперь нужно взять такое кол-во бит, чтобы хватило для 120 подсетей, однако оставляло достаточное кол-во под биты для хоста. Смотрим на таблицу выше. Если взять 7 бит, то получим 128. 128>120, следовательно попадаем под условие. Если возьмем 6 бит, то получим 64. 64<128, поэтому не попадаем под условие и отбрасываем этот вариант.

Ок. Выяснили, что S надо выделить не меньше 7 бит. Теперь посмотрим, что осталось под хосты.
Если N + S + H = 32 => H = 32 — (N + S) => H = 32 — (16 + 7) = 9. Смотрим на таблицу выше (или возводим 2 в 9 степень в уме) и получаем число 512. Отнимаем 2 (адрес сети и широковещательный адрес) и получаем 510 адресов. Нам нужно 180, а значит под условие мы попадаем причем с большим запасом. В таких случаях вам предоставляется право выбора. Сделать больше подсетей или хостов на подсеть. Объясняю, что это значит. У нас есть 9 бит на хосты. Если мы возьмем 8 бит, то получим число 256. 256 — 2 = 254 адреса. Этот вариант нам тоже подходит. Возьмем 7 бит. Получаем 128. Даже не отнимая 2 адреса, становится понятно, что это меньше 180 => данный вариант отбрасывается сразу. Итого получаем, что минимальное количество для подсети — 7 бит, а для хостов — 8 бит. Поэтому свободный бит можно отдать либо на подсеть, либо на хосты. Маска получается сложением N и S. В нашем случае получаем, если под подсеть отдаем 7 бит, то получаем 23. В десятичном виде маска будет выглядеть 255.255.254.0. А если отдадим под подсеть 8 бит, то получим 24 (или в десятичном виде 255.255.255.0). Иногда бывает, что под задачу существует всего одна маска. Ну и, конечно, могут быть случаи, когда маска не попадает не под какие условия. В этих случаях нужно брать сеть другого класса или доказывать заказчику, что это невозможно.

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

Задача №2

1) Записать маску для проекта: сеть 172.16.0.0. 250 подсетей и 220 хостов.
2) Записать маску для проекта: сеть 10.0.0.0. 2000 подсетей и 1500 хостов.
3) Записать маску для проекта: сеть 192.168.0.0. 4 подсети и 60 хостов.

Ответы на задачи

1) 24 бита или 255.255.255.0
2) 19 бит (255.255.224.0), 20 бит (255.255.240.0), 21 бит (255.255.248.0)
3) 26 бит или 255.255.255.192


На этом разговор про классовые сети начну закруглять и подведу итоги. Классовая адресация — это зарождение сегодняшнего интернета, и именно с нее все началось. Поэтому плюсов у нее много, и за это создателям спасибо. Но, как вы могли заметить, у нее было жесткая привязка к одной маске. За счет этого IP-адреса использовались не экономно и расточительно. А в связи с бурным ростом Интернета адресов стало не хватать, и срочно нужно было вносить изменения.

Поняли ведущие умы, что использовать классовые сети не удобно и нужно от них отказываться. Это привело к созданию бесклассовой адресации и маскам переменной длины, о чем мы ниже поговорим. Но перед этим пару слов о видах IP-адресов. Несмотря на то, что переход от классовой адресации к бесклассовой предполагал экономию IP-адресов, на деле эта проблема все равно решалась не полностью. Все упиралось в саму технологию IPv4. Объясню почему. Выше я говорил, что длина IP адреса равна 32 бита. Каждый бит может принимать значение 0 или 1, то есть два значения. Соответственно, чтобы вычислить все комбинации, надо возвести 2 в 32-ую степень. Получаем 4294967296 адресов. Если вычесть отсюда зарезервированные для специальных нужд и прочего, то останется примерно 4.2 млрд. адресов, когда на Земле проживает около 7.3 млрд. человек. Поэтому ведущие умы быстро просекли эту фишку и начали искать решение. Они решили выделить некое адресное пространство, которое будет использоваться только в пределах локальной сети и не будет использоваться в Интернете. Это разделило адреса на 2 лагеря: белые или публичные (англ. public) и серые или частные (англ. private).

Привожу диапазон адресов, которые выделены под локальные сети:

1) 10.0.0.0 — 10.255.255.255 с маской 255.0.0.0 (или кратко 10/8).
2) 172.16.0.0 — 172.31.255.255 с маской 255.240.0.0 (или кратко 172.16/12).
3) 192.168.0.0 — 192.168.255.255 (или кратко 192.168/16).

Если честно, я мало где видел применение адресации 172.16.X.X. Обычно в корпоративной среде всегда используется 10.X.X.X, а в домах/квартирах и мелких офисах 192.168.X.X.

Теперь прошу обратить внимание на очень важную вещь, которую многие путают. Не путайте классовую адресацию и диапазон частных адресов. Очень много людей наступают на эти грабли и свято верят, что диапазон частных адресов 10.0.0.0 — 10.255.255.255 — это диапазон A класса.
Разобрались, что такое частные адреса или private адреса. Но это еще не все. Есть еще список зарезервированных адресов, которые не могут светиться в Интернете. По ним написана целая документация на IETF. Привожу ссылку, где можете прочитать оригинал. Я кратко опишу часто встречающиеся.

1) 0.0.0.0/8 — диапазон адресов, используемый хостами для самоидентификации. Обычно это можно увидеть, когда хост пытается получить IP-адрес от DHCP сервера. Так как изначально у него нету IP-адреса, то в поле источника он вставляет адрес из данного диапазона.

2) 127.0.0.0/8 — loopback или localhost адреса. Это IP-адреса, используемые компьютером, чтобы обратиться к самому себе. Очень полезно для проверки работы TCP/IP. Дело в том, что независимо от наличия соединения с Интернетом или локальной сетью, адреса из этого пула должны всегда пинговаться. Если этого не происходит, значит система накрылась или накрывается медным тазом.

3) 169.254.0.0/16 — link-local address или локальные адреса. Автоматически используются хостами при отсутствии DHCP-сервера или его недоступности. Это позволяет быстро организовать локальную сеть и проверить работу узлов. Однако данный пул адресов не маршрутизируется. Следовательно, выйти в Интернет с них не получится.

4) 224.0.0.0/4 — блок адресов, зарезервированный под многоадресную рассылку или multicast. Для тех, кто хочет побольше узнать про multicast, оставляю ссылку.

Бесклассовая адресация (англ. Classless Inter-Domain Routing или CIDR). Описана была в стандарте RFC1519 в 1993 году. Она отказалась от классовых рамок и фиксированной маски. Адреса делятся только на публичные и зарезервированные, о которых написано выше. Если в классовой адресации маска нарезалась единой для всех подсетей, то в бесклассовой — у каждой подсети может быть своя маска. На теории все хорошо и красиво, но нет ничего лучше, чем практика. Поэтому перехожу к ней и объясню, как можно делить на подсети с разным количеством хостов.

В качестве шпаргалки приведу список всех возможных масок.


Представим ситуацию. Вам выдали сеть 192.168.1.0/24 и поставили следующие условия:

1) Подсеть на 10 адресов для гостей.
2) Подсеть на 42 адреса для сотрудников.
3) Подсеть на 2 адреса для соединения 2 маршрутизаторов.
4) Подсеть на 26 адресов для филиала.

Ок. Данная маска показывает, что в нашем распоряжении находятся 256 адресов. По условию эту сеть надо каким-то образом разделить на 4 подсети. Давайте попробуем. 256 очень хорошо делится на 4, давая в ответе 64. Значит один большой блок в 256 адресов можно поделить на 4 равных блока по 64 адреса в каждом. И все было бы прекрасно, но это порождает большое число пустых адресов. Для сотрудников, которым нужно 42 адреса, ладно, может в дальнейшем компания еще наймет. Но вот подсеть для маршрутизаторов, которая требует всего 2 адреса, оставит 60 пустых адресов. Да, вы можете сказать, что это private адреса, и кому дело до них. А теперь представьте, что это публичные адреса, которые маршрутизируются в Интернете. Их и так мало, а тут мы еще будем их отбрасывать. Это не дело, тем более, когда мы можем гибко управлять адресным пространством. Поэтому возвращаемся к примеру и нарежем подсети так, как нам нужно.

Итак, какие подсети должны быть нарезаны, чтобы вместились все адреса, заданные по условию?!

1) Для 10 хостов, наименьшей подсетью будет блок из 16 адресов.
2) Для 42 хостов, наименьшей подсетью будет блок из 64 адресов.
3) Для 2 хостов, наименьшей подсетью будет блок из 4 адресов.
4) Для 26 хостов, наименьшей подсетью будет блок из 32 адресов.

Я понимаю, что не все могут с первого раза в это вникнуть, и в этом нет ничего страшного. Все люди разные и по-разному воспринимают информацию. Для полноты эффекта покажу деление на картинке.

Вот у нас блок, состоящий из 256 адресов.


После деления на 4 части получается следующая картинка.
Выше мы выяснили, что при таком раскладе адреса используются не рационально. Теперь обратите внимание, как стало выглядеть адресное пространство после нарезки подсетей разной длины.
Как видите, в свободном доступе осталось куча адресов, которые мы в дальнейшем сможем использовать. Можно посчитать точную цифру. 256 — (64 + 32 + 16 + 4) = 140 адресов.

Вот столько адресов мы сэкономили. Двигаемся дальше и ответим на следующие вопросы:

— Какими будут сетевые и широковещательные адреса?
— Какие адреса можно будет назначить хостам?
— Как буду выглядеть маски?

Механизм деления на подсети с разной маской получил название VLSM (от англ. Variable Length Subnet Mask) или маска подсети переменной длины. Дам важный совет! Начинайте адресацию с самой большой подсети. Иначе вы можете попасть на то, что адреса начнут перекрываться. Поэтому сначала планируйте сеть на бумаге. Нарисуйте ее, изобразите в виде фигур, просчитайте вручную или на калькуляторе и только потом переходите настройке в боевых условиях.

Итак, самая большая подсеть состоит из 64 адресов. С нее и начнем. Первый пул адресов будет следующий:

Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.63.
Пул адресов для назначения хостам от 192.168.1.1 до 192.168.1.62.
Теперь выбор маски. Тут все просто. Отнимаем от целой сети нужный кусок и полученное число записываем в октет маски. То есть 256 — 64 = 192 => маска 255.255.255.192 или /26.

Дальше идет подсеть поменьше. Состоит она из 32 адресов. Если первая заканчивалась на .63, то эта будет начинаться с .64:

Адрес подсети — 192.168.1.64.
Широковещательный адрес — 192.168.1.95.
Пул адресов для назначения хостам будет от 192.168.1.65 до 192.168.1.94.
Маска: 256 — 32 = 224 => 255.255.255.224 или /27.

3-я подсеть, которая предназначена для филиала, начнет старт с .96:

Адрес подсети — 192.168.1.96.
Широковещательный адрес — 192.168.1.111.
Пул адресов для назначения хостам будет от 192.168.1.97 до 192.168.1.110.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.

Ну и для последней подсети, которая уйдет под интерфейсы, соединяющие роутеры, будет начинаться с .112:

Адрес подсети — 192.168.1.112.
Широковещательный адрес — 192.168.1.115.
Разрешенными адресами будут 192.168.1.113 и 192.168.1.114.
Маска: 256 — 4 = 252 => 255.255.255.252 или /30.

Замечу, что адрес 192.168.1.115 является последним используемым адресом. Начиная с 192.168.1.116 и до .255 свободны.

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

Задача №3

Разделите сеть 192.168.1.0/24 на 3 разные подсети. Найдите и запишите в каждой подсети ее адреса, широковещательный адрес, пул разрешенных к выдаче адресов и маску. Указываю требуемые размеры подсетей:

1) Подсеть на 120 адресов.
2) Подсеть на 12 адресов.
3) Подсеть на 5 адресов.

Ответ1) Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.127.
Пул адресов для назначения хостам будет от 192.168.1.1 до 192.168.1.126.
Маска: 256 — 128 = 128 => 255.255.255.128 или /25.

2) Адрес подсети — 192.168.1.128.
Широковещательный адрес — 192.168.1.143.
Пул адресов для назначения хостам будет от 192.168.1.129 до 192.168.1.142.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.

3) Адрес подсети — 192.168.1.144.
Широковещательный адрес — 192.168.1.151.
Пул адресов для назначения хостам будет от 192.168.1.145 до 192.168.1.150.
Маска: 256 — 8 = 248 => 255.255.255.248 или /29.


Теперь, когда вы знаете, как делить сети на подсети, самое время научиться собирать подсети в одну общую подсеть. Иначе это называется суммированием или summarization. Суммирование чаще всего используется в маршрутизации. Когда у вас в таблице маршрутизатора несколько соседних подсетей, маршрутизация которых проходит через один и тот же интерфейс или адрес. Скорее всего этот процесс лучше объяснять при разборе маршрутизации, но учитывая то, что тема маршрутизации и так большая, то я объясню процесс суммирования в этой статье. Тем более, что суммирование это сплошная математика, а в этой статье мы ею и занимаемся. Ну что же, приступлю.

Представим, что у меня компания состоящая из главного здания и корпусов. Я работаю в главном здании, а в корпусах коллеги. Хоть у меня и главное здание, но в нем всего 4 подсети:

— 192.168.0.0/24
— 192.168.1.0/24
— 192.168.2.0/24
— 192.168.3.0/24

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


Посмотрите внимательно на таблицу. Как видите, у 4 подсетей первые 22 бита одинаковые. Соответственно, если я возьму 192.168.0.0 с маской /22 или 255.255.252.0, то покрою свои 4 подсети. Но обратите внимание на 5 подсеть, которую я специально ввел. Это подсеть 192.168.4.0. 22-ой бит у нее отличается от предыдущих 4-х, а значит выше выбранное не покроет эту подсеть.
Ок. Теперь я отправлю коллегам суммированную подсеть, и, если они все правильно пропишут, то маршрутизация до моих подсетей будет работать без проблем.

Возьмем тот же пример и немного изменим условия. Нас попросили прислать суммарный маршрут для подсетей 192.168.0.0 и 192.168.1.0. Я не поленюсь и создам еще одну таблицу.


Обратите внимание, что у 2 первых подсетей одинаковые не 22 бита, а 23 бита. Это значит, что их можно просуммировать еще компактнее. В принципе работать будет и так, и так. Но как говорилось в одной рекламе: «Если нет разницы — зачем платить больше?». Поэтому старайтесь суммировать, не задевая при этом соседние подсети.

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

Вообще суммирование полезно применять, когда надо объединить несколько подсетей, расположенных вблизи друг с другом. Это позволит сэкономить ресурсы маршрутизаторов. Однако это не всегда возможно. Просуммировать, например, подсеть 192.168.1.0 и 192.168.15.0, не захватив при этом соседние подсети, невозможно. Поэтому перед суммированием стоит подумать над ее целесообразностью. Поэтому повторюсь еще раз, что начинать какую-либо революцию надо на бумажке. Ну и для закрепления материала оставлю небольшую задачу.

Задача №4

Даны 4 подсети:

1) 10.3.128.0
2) 10.3.129.0
3) 10.3.130.0
4) 10.3.131.0

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

Ответ
Исходя из этого, ответом будет 10.3.128.0/22 (255.255.252.0)

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

habr.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *