Что такое длина префикса сети? zhitsoboy.ru

Что такое длина префикса сети?

Как найти префикс IPv6?

Адреса IPv4 имеют маску подсети, но вместо ввода типа 255.255.255.0 в IPv6 мы используем длину префикса. Ниже приведен пример префикса IPv6:

Это почти то же самое, что и при использовании длины префикса в IPv4 192.168.1.1/24. Число за / — количество бит, которое мы используем для префикса. В приведенном выше примере это означает, что 2001:1111:2222:3333 является префиксом (64 бит), и все, что находится за ним, может использоваться для узлов.

При подсчете подсети для IPv4 мы можем использовать маску подсети для определения сетевого адреса, а для IPv6 мы можем тоже можем сделать что-то подобное. Для любого заданного IPv6-адреса мы можем рассчитать префикс (найти сетевую часть адреса).

Позвольте мне показать вам, о чем я говорю, вот IPv6-адрес, который может быть назначен узлу:

Какая часть этого IPv6-адреса является префиксом и какая часть идентифицирует узел?

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

Вышеприведенная часть имеет 16 символов. 16 x 4 = 64 бит. Итак, это префикс. Остальная часть адреса IPv6 идентифицирует узел:

Мы выяснили, что «2001:1234:5678:1234» является префиксом, но записывать его прямо так, не будет корректно. Чтобы правильно записать префикс, нам нужно добавить нули в конце этого префикса, чтобы он снова стал 128-битным адресом:

2001:1234:5678:1234:0000:0000:0000:0000/64 является допустимым префиксом, но мы можем его сократить. Эта строка нулей может быть удалена и заменена на «::«».

Это самый короткий способ записать префикс. Давайте посмотрим на другой пример:

Прежде чем мы поймем, что такое префикс, мы должны записать полный адрес, поскольку этот был сокращен (см. ::). Просто добавьте нули, пока у нас не будет полный 128-разрядный адрес:

У нас есть префикс длиной 64 бит. Один шестнадцатеричный символ представляет собой 4 двоичных бита, поэтому первые 16 символов являются префиксом:

Теперь мы можем добавить нули в конце, чтобы снова сделать его 128-битным адресом и вернуть необходимую длину префикса:

Мы привели всё к красивому внешнему виду, но мы можем сделать его еще немного короче:

4 нуля в строке могут быть заменены на один, поэтому «3211:0:0:1234::/64» является самой короткой записью, с помощью который мы можем представить этот префикс.

В зависимости от длины префикса вычисления могут быть очень легкими или (очень) трудными. Только что, в примерах, я показал, что оба префикса имели длину 64. Что, если бы у меня была префиксная длина /53 или что-то в этом духе?

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

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

Если длина префикса не кратна 16 или 4, это означает, что мы должны выполнить некоторые двоичные вычисления. Позвольте мне привести пример!

Это наш IPv6-адрес, и я хотел бы узнать префикс для этого адреса. С чего начать?

Сначала я должен определить, в каком «блоке» находится мой 53бит:

Где-то в синем блоке мы найдем 53бит. Чтобы узнать, что такое префикс, нам нужно будет преобразовать эти шестнадцатеричные символы в двоичный вид:

Теперь у нас есть блок, содержащий 53-й бит, где проходит граница находится между «prefix» и «host»:

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

Верните этот блок на место и установите все остальные биты узла в :

Мы нашли наш префикс! 2001:1234:abcd:5000::/53 — ответ. Не так уж сложно все рассчитать, но вам придется потрудиться с бинарными преобразованиями…

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Маска IP-адреса.

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

Из скольки бит состоит IP-адрес?

Для вас это простой вопрос, на который вы отвечаете не задумываясь? И ответите правильно, даже если вас разбудят среди ночи? Значит, вы профессиональный айтишник — сетевой инженер или, например, администратор. Если вы засомневались, не беда. Дочитав статью до конца, вы наверняка узнаете много интересного.

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

Маска ip адреса общие понятия.

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

Теоретически IPv4-адресов может быть: 2 32 = 2 10 *2 10 *2 10 *2 2 = 1024*1024*1024*4 ≈ 1000*1000*1000*4 = 4 млрд.

Всего 4 миллиарда. Но дальше будет рассмотрено, сколько из них не используется, грубо говоря, съедается.

Как записывается IPv4-адрес? Он состоит из четырёх октетов и записывается в десятичном представлении без начальных нулей, октеты разделяются точками: например, «192.168.11.10».

Если что, октет — это ровно то же самое, что байт. Но если вы скажете «октет» в среде профессионалов, они вас сразу зауважают и вам легче будет сойти за своего.

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

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

Можно повторить, это важно: *маска IP-адреса* НЕ передается в заголовках IP-пакетов.

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

Читать еще:  Dram voltage в БИОСе

Маска подсети — это тоже 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:

Маска ip адреса, адрес подсети.

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

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

Если, наоборот эти же биты превратить в единицы, то получится адрес 192.168.15.255. Такой адрес называется направленным бродкастом (то есть широковещательным) для данной сети. Сейчас особого смысла в нём нет, но когда-то раньше считалось, что все хосты в подсети должны на него откликаться. Сейчас это неактуально, однако этот адрес тоже (обычно) нельзя использовать как адрес хоста.

Получается, из каждой подсети выбрасывается два адреса. Остальные адреса в диапазоне от 192.168.8.1 до 192.168.15.254 включительно — это полноправные адреса хостов внутри подсети 192.168.8.0/21. Их, все без исключения, можно использовать для назначения на компьютерах.

Зрительно адрес как бы делится на две части. Та часть адреса, которой соответствуют единицы в маске, является идентификатором подсети — или адресом подсети. Обычно её называют «префикс».

Вторая часть, которой соответствуют нули в маске — это идентификатор хоста внутри подсети.

Очень часто встречается адрес подсети в таком виде:

Когда маршрутизатор прокладывает в сети маршруты для передачи трафика, он оперирует именно префиксами.

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

Главное: в отрыве от подсети адрес хоста не используется совсем.

Длина маски подсети.

Количество хостов в подсети определяется как 232-N-2, при этом N — длина маски.

Логичный вывод: чем длиннее маска, тем меньше в ней хостов.

Ещё один полезный логический вывод: максимальной длиной маски для подсети с хостами будет N=30.

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

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

А вот *маска IP-адреса* /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-подсетей (больше двух) и маршрутизатор (точнее, файрвол, но сейчас можно считать эти слова синонимами), который маршрутизирует и контролирует трафик между подсетями.

Важный следующий шаг: разбиение подсетей на более мелкие подсети.

Сеть из нашего примера 192.168.8.0/21 можно разбить на две подсети /22, четыре подсети /23, восемь /24 и так далее. Общее правило, как можно догадаться, такое:

при этом K — количество подсетей с длиной маски Y, которые умещаются в подсеть с длиной маски X.

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

Есть такой процесс, называемый агрегацией. Это значит объединение мелких префиксов — с длинной маской подсети, в которых мало хостов — в крупные, с короткой маской подсети, в которых много хостов. Второе название этого же процесса — суммаризация. Запомните, не суммирование!

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

Пример: провайдеры выдают клиентам множество маленьких блоков по типу /29. При этом весь остальной Интернет об этом даже не подозревает. За каждым провайдером закреплены префиксы намного крупнее — от /19 и выше. Благодаря такой системе в Глобальную таблицу Интернет-маршрутизации заносится намного меньше записей: их число сократилось на несколько порядков.

Составление адресного плана.

Мы помним, что *маска IP-адреса* бывает разной длины. Чем больше длина маски, тем меньше хостов может быть в подсети. Одновременно увеличивается доля «съеденных» адресов на адреса подсети, шлюза по умолчанию и направленного бродкаста.

Пример. Подсеть с маской /29 (232-29 = 8 комбинаций). Здесь остаётся всего пять доступных для реального использования адресов, в процентах это будет 62,5%. Легко поставить себя на место провайдера, которому необходимо выдать тысячам корпоративных клиентов блоки /29. Для него грамотная разбивка IP-пространства на подсети жизненно необходима.

Читать еще:  Загрузка Windows с флешки

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

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

Пример. Адреса из блоков частного сектора: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16.

*Маска IP-адреса*: /8, /16, /24 или, соответственно, по-другому 255.0.0.0, 255.255.0.0, 255.255.255.0.

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

Итоги по маске IP-адреса.

Само понятие «классы адресов», о котором нет-нет да и приходится читать/слышать, давно устарело. Уже больше 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 зарезервирован для мультикаста, и так далее. Но конвенции — это не совсем законы в полном юридическом смысле слова. Их цель — сделать проще и легче административное взаимодействие. Конвенции крайне не рекомендуется нарушать, но до поры до времени никем не запрещено использовать любые адреса для любых целей. Ровно до того момента, пока вы не встречаетесь с внешним миром

Как вы вычисляете префикс, сеть, подсеть и номера хостов?

В двоичном формате: 10000000 00101010 00000101 00000100

Как вы можете определить префикс, сеть, подсеть и номера хостов?

Вычисление длины сетевой маски (также называемой префиксом):

Преобразуйте десятичное представление сетевой маски в двоичную. Затем подсчитайте количество смежных 1 бит, начиная с самого значащего бита в первом октете (т. Е. Левая сторона двоичного числа).

Префикс 128.42.5.4 с сетевой маской 255.255.248.0 равен /21.

Вычисление сетевого адреса:

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

Логическая таблица истинности:

Как вы можете видеть, сетевой адрес 128.42.5.4/21 равен 128.42.0.0

Вычисление широковещательного адреса:

Широковещательный адрес преобразует все биты хоста в 1s .

Помните, что наш IP-адрес в десятичном формате:

Это означает, что наши биты хоста — это последние 11 бит IP-адреса, потому что мы находим маску хоста путем инверсии сетевой маски:

Чтобы вычислить широковещательный адрес, мы вынуждаем все биты хоста 1s:

Расчет подсети:

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

Предположим, что мы разделим 128.42.0.0/21 на 4 подсети, которые должны содержать не менее 100 хостов каждый .

В этом примере мы знаем, что вам нужен хотя бы префикс /25, содержащий 100 хостов; Я выбрал a /24, потому что он попадает на границу октета. Обратите внимание, что сетевой адрес для каждой подсети берет биты хоста из родительского сетевого блока.

Поиск требуемой длины маски подсети или сетевой маски:

Как я узнал, что мне нужно, по крайней мере, 25 маску для 100 хостов? Вычислите префикс, обратившись к числу хост-бит, который должен содержать 100 хостов. Нужно 7 хостов, чтобы содержать 100 хостов. Официально это рассчитывается с помощью:

Биты хоста = Журнал 2 (Число хостов) = Журнал 2 (100) = 6.643

Так как адреса IPv4 имеют ширину 32 бита, и мы используем биты хоста (т.е. младшие значащие биты), просто вычитаем 7 из 32 для вычисления минимального префикса подсети для каждой подсети . 32 — 7 = 25.

Ленточный способ разбить 128.42.0.0/21 на четыре равные подсети:

Поскольку нам нужно всего четыре подсети из всего блока 128.42.0.0/21, мы могли бы использовать /23 подсети. Я выбрал /23, потому что нам нужны 4 подсети . т. Е. Добавлены еще два бита в маску сети.

Это равноправный ответ на ограничение, используя /23 подсети из 128.42.0.0/21 .

Вычисление номера хоста:

Это то, что мы уже сделали выше . просто повторно используем маску хозяина из работы, которую мы сделали, когда вычисляли широковещательный адрес 128.42.5.4/21 . На этот раз я буду использовать 1s вместо h, потому что нам нужно снова выполнить логическое И на сетевом адресе.

Вычисление максимально возможного количества хостов в подсети:

Чтобы найти максимальное количествохосты, посмотрите количество бинарных битов в указанном выше номере узла. Самый простой способ сделать это — вычесть длину сетевой маски от 32 (количество бит в адресе IPv4). Это дает вам количество бит хоста в адресе. В этот момент .

Максимальное количество хостов = 2 ** (32 — netmask_length) — 2

Причина, по которой мы вычитаем 2 выше, заключается в том, что зарезервированы номера хостов all-ones и all-zeros. Номер хоста all-zeros — это номер сети; номер хоста all-ones — широковещательный адрес.

Используя пример подсети 128.42.0.0/21 выше, количество хостов .

Максимальное количество хостов = 2 ** (32 — 21) — 2 = 2048 — 2 = 2046

Поиск минимальной сетевой маски, которая содержит два IP-адреса:

Предположим, кто-то дает нам два IP-адреса и ожидает, что мы найдем самую длинную сетевую маску, содержащую их оба; например, что, если бы у нас было:

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

В этом случае минимальная сетевая маска будет /25

ПРИМЕЧАНИЕ. Если вы попытаетесь начать с правой стороны, не обманывайте себя только потому, что вы найдете один соответствующий столбец бит; могут существовать несогласованные биты за пределами этих совпадающих битов. Честно говоря, самым безопасным делом является запуск с левой стороны.

Читать еще:  Из чего состоит оперативная память компьютера?

Ответ выше отлично подходит для ногтей на голове. Однако, когда я впервые начал, мне потребовалось несколько разных примеров из нескольких источников, чтобы он действительно ударил по дому. Поэтому, если вас интересуют другие примеры, я написал несколько сообщений в блогах по этому вопросу — http: //www.oznetnerd. ком /категории /подсеть /

Администраторы, если этот пост считается спамом, не стесняйтесь его удалять.

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

В качестве примера воспользуемся примером 195.70.16.159/30.

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

Теперь, чтобы узнать сетевой адрес, все, что мы делаем, это добавить бит SN, у которых есть 1 под ними вместе. (128 + 16 + 8 + 4 = 156).

Когда вы добавите этот 156 в первые три октета адреса, мы остаемся с Сетевым адресом 195.70.16.156.

Теперь, поскольку мы знаем, что первый полезный адрес всегда является сетевым адресом плюс один, , нам нужно выполнить следующий расчет: (156 + 1 = 157).

Это дает нам первый полезный адрес 195.70.16.157.

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

Это дает нам широковещательный адрес 195.70.16.159.

И, наконец, давайте рассмотрим последний полезный адрес. Этот процесс похож на поиск первого полезного адреса, однако вместо того, чтобы добавлять его к сетевому адресу, мы фактически вычитаем его из широковещательного адреса. (159 — 1 = 158).

Это дает нам Последний полезный адрес 195.70.16.158.

И у нас это есть! Наш temaplte закончен. Для удобства, здесь это снова:

  • Сетевой адрес: 195.70.16.156
  • Первый полезный адрес: 195.70.16.157
  • Последний полезный адрес: 195.70.16.158
  • Адрес широковещания: 195.70.16.159

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

  • Первый полезный адрес = Сетевой адрес + 1
  • Широковещательный адрес = Следующий сетевой адрес — 1
  • Последний полезный адрес = широковещательный адрес — 1

Подсеть — это логическое разделение сети IP. [1]

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

Префикс маршрутизации выражается в нотации CIDR. Он записывается как адрес сети, затем слеш (/) и длина префикса в битах. Например, для сети 192.168.1.0/24 — первые 24 бита зарезервированы под адрес сети, а оставшиеся 8 под хосты. Для протокола IPv6 нотация действует тем же образом, например, в адресе 2001:db8::/32 первые 32 бита — это префикс маршрутизации (адрес сети), а оставшиеся 96 зарезервированы под хосты. Для IPv4 сеть также характеризуется маской подсети, которая является битовой маской. При поразрядной операции И между маской подсети и адресом можно получить префикс маршрутизации.

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

Содержание

Подсети в IPv4

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

Определение префикса сети

Маска подсети в IPv4 состоит из 32 битов, непрерывной последовательности единиц (1), за которой следует непрерывная последовательность нулей (0). В маске подсети не может стоять единица после нуля.

Сетевой префикс (адрес сети) вычисляется побитовой операцией И между IP адресом и маской. И даёт единицу только когда оба операнда равны единице.

Подсчёт количества подсетей

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

В примере выше маска подсети была увеличена на 2 бита, создавая тем самым 4 (2 2 ) возможных подсетей:

Общая формула: N = 2 n > , где N — количество подсетей, а n — маска сети в нотации CIDR делённая по модулю 8 (или просто количество добавленных бит к маске).

Подсчёт количества адресов для хостов в подсети

Количество возможных хостов в сети могут быть легко вычислены по формуле 2 32 − n − 2 -2> , где n — маска сети в нотации CIDR. Биты маски подсети, равные нулю, отведены под адреса хостов. В приведённом выше примере маска подсети состоит из 26 бит, оставшиеся 6 бит могут быть использованы для идентификаторов хостов. Это позволяет создать сеть на 62 хоста (2 6 −2).

Значения из одних нулей и значения из одних единиц зарезервированы для адреса сети и широковещательного адреса соответственно. Или другими словами первый и последний адрес подсети. Поэтому при подсчёте числа хостов надо вычитать 2 из общего числа доступных адресов.

Например, для маски /27 могут использоваться 8 подсетей. Каждый первый IP-адрес в подсети (.0, .32, .64, .224), то есть адрес сети, и каждый последний IP-адрес в подсети (.31, .63, .95, .255), то есть широковещательный адрес, зарезервированы, соответственно для каждой сети доступно только 30 адресов (c .1 по .30, с .33 по .62, с.65 по .94, с .225 по .254).

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

*применимо только для соединений точка-точка

Специальные адреса и подсети

Первая и последняя подсети, полученной путём деления изначально имели особое назначение и применение. [2] Кроме того, в протоколе IPv4 зарезервировано два адреса в каждой сети: первый, использующийся как адрес сети, и последний, для отправки широковещательных пакетов.

Подсети ноль и «все единицы»

У первой подсети все биты адреса сети, следующие после префикса маршрутизации, равны нулю (0). Поэтому её еще называют» нулевой подсетью. [2] Последняя подсеть, соответственно, состояла из единиц и получила название «all-ones», или «все единицы». [2]

IETF изначально отговаривали производителей от использования этих двух подсетей из-за возможной путаницы сети и подсети с тем же адресом. [3] В 1995 году это решение было отменено [rfc:1878 в RFC 1878]. [4]

Протокол IPv6 подсетей

Дизайн адресного пространства протокола IPv6 существенно отличается от IPv4. Основной причиной создания подсети в IPv4 является повышение эффективности использования сравнительно небольшого адресного пространства. Но таковой проблемы в IPv6 не стоит.

В документе RFC 4291 для IPv6 на хосты отведено 64 бита. [5] Следовательно, префикс маршрутизации равен /64 (128−64 = 64 старших бит). Хотя, технически возможно использовать меньшие подсети, [6] они являются непрактичными для локальных сетей на основе технологии Ethernet, потому что 64 бита необходимы автоматической настройки адреса. [7] Инженерный совет Интернета рекомендует использовать /127 подсети для соединений точка-точка (состоящих из двух узлов). [8] [9]

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