Задача №12. Адресация в интернете. Восстановление IP- адресов, определение адреса сети, определение количества адресов и номера компьютера в сети. Сколько цифр в ip адресе


Пример расчета количества хостов и подсетей на основе IP-адреса и маски – Keenetic

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

Содержание:

Знакомство с IP-адресамиМаски подсетиФормирование подсетейПример расчета количества подсетей и хостов в подсети на основе IP-адреса и маски подсети

 

Знакомство с IP-адресамиОдна часть IP-адреса представляет собой номер сети, другая – идентификатор хоста. Точно так же, как у разных домов на одной улице в адресе присутствует одно и то же название улицы, у хостов в сети в адресе имеется общий номер сети. И точно так же, как у различных домов имеется собственный номер дома, у каждого хоста в сети имеется собственный уникальный идентификационный номер – идентификатор хоста. Номер сети используется маршрутизаторами (роутерами, интернет-центрами) для передачи пакетов в нужные сети, тогда как идентификатор хоста определяет конкретное устройство в этой сети, которому должны быть доставлены пакеты.

Структура IP-адрес состоит из четырех частей, записанных в виде десятичных чисел с точками (например, 192.168.1.1). Каждую из этих четырех частей называют октетом. Октет представляет собой восемь двоичных цифр (например, 11000000, или 192 в десятичном виде).Таким образом, каждый октет может принимать в двоичном виде значения от 00000000 до 11111111, или от 0 до 255 в десятичном виде.На следующем рисунке показан пример IP-адреса, в котором первые три октета (192.168.1) представляют собой номер сети, а четвертый октет (16) – идентификатор хоста.

Рисунок 1. Номер сети и идентификатор хоста

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

help.keenetic.com

Структура IP-адреса: как узнать номер сети и номер узла?

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать основы работы компьютерных сетей, в этой теме я предлагаю разобраться со структурой IP-адреса и откуда вообще берутся какие-то номера сети и номера узлов, ведь IP-адрес с виду цельная и неделимая сущность. Также в этой записи мы коротко поговорим о маске подсети и зачем она нужна, увидим, что когда-то было всё плохо и сети были классовыми, а сейчас всё стало хорошо благодаря CIDR и VLSM и сети стали бесклассовые и в завершении посмотрим на формы записи IP-адресов в протоколе IPv4.

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

Оглавление первой части: «Основы взаимодействия в компьютерных сетях».

Оглавление четвертой части: «Сетевой уровень: протокол IP и его версия IPv4».

4.2.1 Введение

Содержание статьи:

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

4.2.2 Структура IP-адреса и маска подсети

В протоколе IP есть две очень важные вещи, которые сделали его вездесущим. Первое – это заголовок IP-пакета, который определяет функционал протокола, а второе – это IP-адрес, который, следует заметить, является частью заголовка, но о нем стоит поговорить отдельно, чем мы сейчас и займемся. Я более чем уверен, что вы уже видели IP-адреса и более того, работали с ними, но если нет, то вот вам пример: 192.168.1.0. Для человека IP-адреса в протоколе IPv4 чаще всего представлены вот в таком виде.

Тут ничего сложного нет. Для нас IP-адрес разбит на четыре кусочка, разделителем между кусочками служат точки, каждый такой кусочек представляет собой один байт или один октет, следовательно, максимально возможное число, которое можно записать равно 255, а минимальное число ноль. Получается, что чисто теоретически можно использовать адреса от 0.0.0.0 до 255.255.255.255. Правда часть из этих адресов зарезервирована под специальные нужды, это мы обсудим в отдельной теме. Сейчас же будем считать, что нам доступно два в тридцать второй степени IP-адресов или 4 294 967 296, которых уже катастрофически не хватает, поэтому происходить плавное внедрение протокола IPv6.

На самом деле IP-адрес – это не просто четыре числа, разделенных точками, а более интересная и сложная сущность. Во-первых, следует заметить, что маршрутизаторы не знают десятичной системы счисления, так же, как и абонентские узлы, для них IP-адрес представлен набором нулей и единиц в нашем случае (192.168.1.0), IP-адрес для машины выглядит как-то так: 11000000 (192) 10101000 (168) 00000001 (1) 00000000 (0). Октеты в данном случае я разделил пробелами, думаю, тут всё очевидно: каждый байт – это восемь двоичных значений (0 или 1), а всего у нас для IP-адреса выделено четыре байта, то есть 32 бита, отсюда вытекает и два в тридцать второй степени IP-адресов.

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

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

Рисунок 4.2.1 Номера октетов и битов в IP-адресе

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

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

4.2.3 Классовые сети

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

Классовая адресация, как ясно из названия, делит всё пространство IP-адресов на классы, всего этих классов пять: A, B, C, D, E. Как понять к какому классу принадлежит IP-адрес? Да очень просто! Посмотреть на его первые биты. Приведу небольшой список, чтобы было понятно, к какому классу какой IP-адрес относится:

  • сети класса А определяются значением первого бита, если первый бит IP-адреса нулевой, то это означает, что он относится к сети класса А, во всех остальных случаях – это другой класс;
  • сети класса B определяются по значениям первых двух бит IP-адреса, IP-адрес относится к сети класса B в том случае, если первый бит имеет значение 1, а второй 0;
  • IP-адрес будет принадлежать к сети класса C, если первый бит адреса будет равен 1, второй бит тоже 1, а третий будет 0;
  • сети класса D определяются по первым четырем битам IP-адреса, при этом первый бит 1, второй бит 1, третий бит 1, а четвертый 0, стоит добавить, что сети класса D использовались для многоадресной рассылки или иначе multicast;
  • и наконец сети класса E были зарезервированы и их нельзя было использовать простым смертным, определялись они первыми четырьмя битами, каждый из которых должен был иметь значение 1.

Для ясности давайте посмотрим на примере IP-адресов для каждого класса:

  1. Сеть класса А. IP-адрес в десятичном виде: 10.10.0.1. IP-адрес в двоичном виде: 00001010 00001010 00000000 00000001. Обратите внимание на то, что первый бит равен нулю, он как раз и определяет, что данный IP-адрес принадлежит к сети класса A.
  2. Сеть класса B. IP-адрес в десятичном виде: 130.25.25.12. IP-адрес в двоичном виде: 1000 0010 00011001 00011001 000011000. Принадлежность к данному классу определяют первых два бита: 10.
  3. Сеть класса C. IP-адрес в десятичном виде: 192.168.1.0. IP-адрес в двоичном виде: 11000000 10101000 00000001 00000000. Значение первых трех бит определяют принадлежность этого адреса к классу C.
  4. Сеть класса D. IP-адрес в десятичном виде: 224.0.0.6. IP-адрес в двоичном виде: 11100000 00000000 00000000 00000110. Значение первых четырех бит выделены жирным.
  5. Сеть класса E. IP-адрес в десятичном виде: 240.10.10.10. IP-адрес в двоичном виде: 11110000 00001010 00001010 00001010.

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

4.2.4 Бесклассовые сети (CIDR) и маска подсети переменной длины (VLSM)

Бесклассовая адресация или CIDR – это механизм разделения сети на подсети в современных сетях передачи данных, этот механизм позволил существенно экономить адреса и не тратить лишнего. CIDR тесно связан с понятием VLSM (variable length subnet mask) или маска подсети переменной длинны, можно просто маска подсети или маска, на данный момент вас поймут верно. Становится понятно, что здесь уже нет жестких рамок классов, поскольку и самих классов нет. Теперь для того чтобы понять к какой подсети относится IP-адрес, самого IP-адреса недостаточно, нужна еще и маска подсети, которая, следует сказать, не передается по сети, она указывается только на конечных узлах и маршрутизаторах (а, например, L2 коммутаторы и хабы вообще ничего не знают про IP-адреса, первые работают на канальном уровне, а вторые реализуют механизмы физического уровня модели OSI 7, про разницу между хабами, коммутаторами и роутерами читайте здесь), и для нее нет отдельного поля в IP-пакете.

Как выглядит маска подсети? Да на самом деле, как IP-адрес, вот несколько примеров маски: 255.255.255.0, 255.255.254.0, 255.248.0.0. Заметили, здесь общего? Ну, кроме того, что во всех примерах первый октет 255. Общая составляющая будет заметна, если написать все эти маски в двоичном виде:

  • 255.255.255.0: 11111111 11111111 11111111 00000000;
  • 255.255.254.0: 11111111 11111111 11111110 00000000;
  • 255.248.0.0: 11111111 11111000 00000000 00000000.

Обратите внимание: у каждой маски вначале идут только единицы, затем идут только нули, чередоваться нули и единицы в маске подсети не могут. Например, не может быть вот такой маски: 255.254.255.0 или в двоичной системе: 11111111 11111110 11111111 00000000. И это очень важно, поскольку именно на границе нулей и единиц маски подсети находится граница между номером сети и номером узла в IP-адресе.

На примере будет все немного яснее, давайте возьмем следующий IP-адрес и маску: 192.168.1.25/24, иначе это можно было бы записать так: 192.168.1.25 с маской 255.255.255.0, число 24 означает количество единиц в маске. Если вам просто дать этот IP-адрес без маски, то вы не сможете сказать: какие биты этого IP-адреса отданы под номер сети, а какие под номер узла, с маской же все становится понятно. Чтобы понять где здесь номер сети, а где номер узла, нужно перевести и маску, и IP-адрес в двоичную систему счисления. Давайте сделаем всё это в виде таблицы.

Рисунок 4.2.2 Переводим IP-адрес и маску подсети в двоичный вид

Сразу отметим, что те биты IP-адреса, напротив которых в маске подсети стоят единицы, будут относиться к номеру сети, а те биты адреса, напротив которых у маски нули, относятся к номеру хоста. Чтобы узнать номер узла и номер сети нужно выполнить операцию «логическое И» между соответствующими битами IP-адреса и маски. Операция «логическое И» в двоичной системе счисления эквивалентна операции умножения в десятичной: 1×1=1, 1×0=0, 0×0=0. Вы уже понимаете, что номер сети в IP-адресе при использовании CIDR и VLSM определяется маской, а именно единичными битами маски, то есть для нашего случая номер сети это: 192.168.1.0, а под номера узлов у нас остается диапазон с 192.168.1.1 по 192.168.1.254, заметьте, что есть еще 192.168.1.255 — это широковещательный IP-адрес для данной сети и его нельзя назначить узлу или интерфейсу маршрутизатора.

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

4.2.5 Форма записи IP-адреса и сокращения

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

Форма записи октетов, разделенных точками, просто удобна для человека: 127.0.0.1. Но для машины IP-адрес число, которое может находиться в диапазоне от 00000000 00000000 00000000 00000000 до 11111111 11111111 11111111 11111111 или в десятичной системе счисления: от 0 до 4 294 967 295. И вы понимаете, что IP-адрес 127.0.0.1 — это не число 127001, это вот такое число 01111111 00000000 00000000 00000001 или в десятичной системе: 2 130 706 433. Более того, если вы запустите командую строку или эмулятор терминала в своей операционной системе, то сможете пропинговать IP-адрес 127.0.0.1, используя число выше, если не верите, то смотрите листинг ниже.

Microsoft Windows [Version 10.0.17134.228] (c) Корпорация Майкрософт (Microsoft Corporation), 2018. Все права защищены. C:\Users\Dell>ping 2130706433 Обмен пакетами с 127.0.0.1 по с 32 байтами данных: Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Статистика Ping для 127.0.0.1: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек C:\Users\Dell>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Microsoft Windows [Version 10.0.17134.228]

(c) Корпорация Майкрософт (Microsoft Corporation), 2018. Все права защищены.

 

C:\Users\Dell>ping 2130706433

 

Обмен пакетами с 127.0.0.1 по с 32 байтами данных:

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

 

Статистика Ping для 127.0.0.1:

Пакетов: отправлено = 4, получено = 4, потеряно = 0

(0% потерь)

Приблизительное время приема-передачи в мс:

Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

 

C:\Users\Dell>

Эстетами или проще говоря тем, кому хочется понтанутся, было придумано еще два способа записи IP-адресов в десятичном виде, эти способы идут к нам из стека BSD и функции inet_aton (). Первый способ записи выглядит так: 8bit.24bit. Вот так будет выглядеть IP-адрес в 127.0.0.1: 127.1, в двоичном виде он будет выглядеть так: 01111111.000000000000000000000001. То есть под первое число выделено 8 бит, а под второе 24.  Windows вполне себе понимает такую форму записи.

C:\Users\Dell>ping 127.1 Обмен пакетами с 127.0.0.1 по с 32 байтами данных: Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Статистика Ping для 127.0.0.1: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

C:\Users\Dell>ping 127.1

 

Обмен пакетами с 127.0.0.1 по с 32 байтами данных:

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

 

Статистика Ping для 127.0.0.1:

Пакетов: отправлено = 4, получено = 4, потеряно = 0

(0% потерь)

Приблизительное время приема-передачи в мс:

Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

Чтобы было понятнее, приведу еще один пример: 127.267894, чтобы понять, что это за IP, вам нужно будет перевести его в двоичный вид, разбить на октеты и восстановить его в том виде, к которому мы привыкли или просто попробовать пропинговать адрес:

C:\Users\Dell>ping 127.267894 Обмен пакетами с 127.4.22.118 по с 32 байтами данных: Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128 Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128 Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128 Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128 Статистика Ping для 127.4.22.118: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

C:\Users\Dell>ping 127.267894

 

Обмен пакетами с 127.4.22.118 по с 32 байтами данных:

Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128

Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128

Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128

Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128

 

Статистика Ping для 127.4.22.118:

Пакетов: отправлено = 4, получено = 4, потеряно = 0

(0% потерь)

Приблизительное время приема-передачи в мс:

Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

Вторая сокращенная форма записи IP-адреса выглядит так: 8bit.8bit.16bit. Адрес 127.0.0.1 в этой форме можно записать так: 127.0.1. Винда понимает и эту форму:

C:\Users\Dell>ping 127.0.1 Обмен пакетами с 127.0.0.1 по с 32 байтами данных: Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Статистика Ping для 127.0.0.1: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

C:\Users\Dell>ping 127.0.1

 

Обмен пакетами с 127.0.0.1 по с 32 байтами данных:

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

 

Статистика Ping для 127.0.0.1:

Пакетов: отправлено = 4, получено = 4, потеряно = 0

(0% потерь)

Приблизительное время приема-передачи в мс:

Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

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

C:\Users\Dell>ping 127.99.259 Обмен пакетами с 127.99.1.3 по с 32 байтами данных: Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128 Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128 Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128 Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128 Статистика Ping для 127.99.1.3: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

C:\Users\Dell>ping 127.99.259

 

Обмен пакетами с 127.99.1.3 по с 32 байтами данных:

Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128

Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128

Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128

Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128

 

Статистика Ping для 127.99.1.3:

Пакетов: отправлено = 4, получено = 4, потеряно = 0

(0% потерь)

Приблизительное время приема-передачи в мс:

Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

Нормальный человек никогда не будет вам рекомендовать использовать для записи IP-адреса обычные числа или формы 8bit.24bit, 8bit.8bit.16bit. Дело в том, что эти формы записи IP-адресов настолько непривычны, что не всем удобно и понятно с ними работать, вас могут просто банально не понять, если вместо IP-адреса вы напишите огромное число или сокращенную форму записи. Второй момент заключается в том, что не всё оборудование и не каждая программа сможет работать с такими формами записи IP-адресов, нет никакой гарантии того, что разработчик софта вообще знал о том, что такие формы допустимы в протоколе IP.

4.2.6 Выводы

Итак, какие выводы можно сделать по IP-адресам в протоколе IPv4 и их структуре? IP-адрес состоит из двух частей: номера сети и номера узла. Для отделения мух от котлет у нас есть два механизма: классовая адресация, которая уже не используется из-за неэкономного расходования ограниченного ресурса IP-адресов, а также механизмы VLSM и CIDR, которые позволяют очень гибко делить сети на подсети. Оба этих механизма мы рассмотрим более подробно, сейчас же был просто поверхностный взгляд.

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

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

zametkinapolyah.ru

Классы ip-адресов

IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме и разделенных точками, например, 128.10.2.30 - традиционная десятичная форма представления адреса, а 10000000 00001010 00000010 00011110 - двоичная форма представления этого же адреса.

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

На рис. 5.9 показана структура IP-адреса разных классов.

Рис. 5.9. Структура IP-адреса

Если адрес начинается с 0, то сеть относят к классу А и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей, о чем будет сказано ниже.) Сетей класса А немного, зато количество узлов в них может достигать 224, то есть 16 777 216 узлов.

Если первые два бита адреса равны 10, то сеть относится к классу В. В сетях класса В под номер сети и под номер узла отводится по 16 бит, то есть по 2 байта. Таким образом, сеть класса В является сетью средних размеров с максимальным числом узлов 216, что составляет 65 536 узлов.

Если адрес начинается с последовательности 110, то это сеть класса С. В этом случае под номер сети отводится 24 бита, а под номер узла - 8 бит. Сети этого класса наиболее распространены, число узлов в них ограничено 28, то есть 256 узлами.

Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес - multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес.

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

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

Таблица 5.4. Характеристики адресов разного класса

Большие сети получают адреса класса А, средние - класса В, а маленькие класса С.

Особые ip-адреса

В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов.

  • Если весь IP-адрес состоит только из двоичных нулей, то он обозначает адрес того узла, который сгенерировал этот пакет; этот режим используется только в некоторых сообщениях ICMP.

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

  • Если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным. сообщением (limited broadcast).

  • Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, пакет с адресом 192.190.21.255 доставляется всем узлам сети 192.190.21.0. Такая рассылка называется широковещательным сообщением (broadcast).

При адресации необходимо учитывать те ограничения, которые вносятся особым назначением некоторых IP-адресов. Так, ни номер сети, ни номер узла не может состоять только из одних двоичных единиц или только из одних двоичных нулей. Отсюда следует, что максимальное количество узлов, приведенное в таблице для сетей каждого класса, на практике должно быть уменьшено на 2. Например, в сетях класса С под номер узла отводится 8 бит, которые позволяют задавать 256 номеров: от 0 до 255. Однако на практике максимальное число узлов в сети класса С не может превышать 254, так как адреса 0 и 255 имеют специальное назначение. Из этих же соображений следует, что конечный узел не может иметь адрес типа 98.255.255.255, поскольку номер узла в этом адресе класса А состоит из одних двоичных единиц.

Особый смысл имеет IP-адрес, первый октет которого равен 127. Он используется для тестирования программ и взаимодействия процессов в пределах одной машины. Когда программа посылает данные по IP-адресу 127.0.0.1, то образуется как бы «петля». Данные не передаются по сети, а возвращаются модулям верхнего уровня как только что принятые. Поэтому в IP-сети запрещается присваивать машинам IP-адреса, начинающиеся со 127. Этот адрес имеет название loopback. Можно отнести адрес 127.0.0.0 ко внутренней сети модуля маршрутизации узла, а адрес 127.0.0.1 - к адресу этого модуля на внутренней сети. На самом деле любой адрес сети 127.0.0.0 служит для обозначения своего модуля маршрутизации, а не только 127.0.0.1, например 127.0.0.3.

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

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

Основное назначение multicast-адресов - распространение информации по схеме «один-ко-многим». Хост, который хочет передавать одну и ту же информацию многим абонентам, с помощью специального протокола IGMP (Internet Group Management Protocol) сообщает о создании в сети новой мультивещательной группы с определенным адресом. Машрутизаторы, поддерживающие мультивещательность, распространяют информацию о создании новой группы в сетях, подключенных к портам этого маршрутизатора. Хосты, которые хотят присоединиться к вновь создаваемой мультивещательной группе, сообщают об этом своим локальным маршрутизаторам и те передают эту информацию хосту, инициатору создания новой группы.

Чтобы маршрутизаторы могли автоматически распространять пакеты с адресом multicast по составной сети, необходимо использовать в конечных маршрутизаторах модифицированные протоколы обмена маршрутной информацией, такие как, например, MOSPF (Multicast OSPF, аналог OSPF).

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

studfiles.net

Основы компьютерных сетей. Тема №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 битам. Теперь интересный вопрос. Каким образом этот адрес воспримет компьютер, и как будет с ним работать?

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

128 64 32 16 8 4 2 1
x x x x x x x x
Вместо «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.

128 64 32 16 8 4 2 1
1 1 0 0 0 0 0 1
Те числа, которые участвовали в формировании комбинации получают 1, а все остальные получают 0.

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

128 64 32 16 8 4 2 1
1 1 1 0 1 0 0 1
Для 44 — это 32 + 8 + 4.128 64 32 16 8 4 2 1
0 0 1 0 1 1 0 0
И напоследок 12. 8 + 4.128 64 32 16 8 4 2 1
0 0 0 0 1 1 0 0
Получается длинная битовая последовательность 11000001.11101001.00101100.00001100. Именно с данным видом работают сетевые устройства. Битовая последовательность обратима. Вы можете так же вставить каждый октет (по 8 символов) в таблицу и получить десятичную запись. Я представлю совершенно случайную последовательность и приведу ее к десятичному виду. Пусть это будет 11010101.10110100.11000001.00000011. Строю таблицу и заношу в нее первый блок.128 64 32 16 8 4 2 1
1 1 0 1 0 1 0 1
Получаю 128 + 64 + 16 + 4 + 1 = 213.

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

128 64 32 16 8 4 2 1
1 0 1 1 0 1 0 0
Считаю 128 + 32 + 16 + 4 = 180.

Третий блок.

128 64 32 16 8 4 2 1
1 1 0 0 0 0 0 1
128 + 64 + 1 = 193.

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

128 64 32 16 8 4 2 1
0 0 0 0 0 0 1 1
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

Адресация в IP-сетях

Классы IP-адресов

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

IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме и разделенных точками, например, 128.10.2.30 — традиционная десятичная форма представления адреса, а 10000000 00001010 00000010 00011110 - двоичная форма представления этого же адреса (байты разделены пробелами). Иногда вместо термина байт используют термин октет.

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

На рис. … показана структура IP-адреса разных классов.

Класс А. Если адрес начинается с 0, то сеть относят к классу А и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126, чтобы было понятно почему, представим этот диапазон в двоичном виде, от 00000001 до 01111110. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей, о чем будет сказано ниже.) Сетей класса А немного (точнее 126), зато количество узлов в них может достигать 224, то есть 16 777 216 узлов.

Класс В. Если первые два бита адреса равны 10, то сеть относится к классу В. В сетях класса В под номер сети и под номер узла отводится по 16 бит, то есть по 2 байта. Таким образом, сеть класса В является сетью средних размеров с максимальным числом узлов 216, что составляет 65 536 узлов. Номера сетей для класса В лежат в диапазоне от 128.0 до 191.255 (от 10000000 00000000 до 10111111 11111111).

Класс С. Если адрес начинается с последовательности 110, то это сеть класса С. В этом случае под номер сети отводится 24 бита, а под номер узла — 8 бит. Сети этого класса наиболее распространены, число узлов в них ограничено 28, то есть 256 узлами. Номера сетей для класса С лежат в диапазоне от 192.0.0 до 223.255.255 (от 11000000 00000000 00000000 до 11011111 11111111 11111111).

Класс D. Если адрес начинается с последовательности 1110, то он является адресом класса. D и обозначает особый, групповой адрес — multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес, поэтому говорить о числе сетей и узлов бессмысленно. Всего адресов класса D будет 228. К адресам этого класса относятся адреса от 224.0.0.0 до 239.255.255.255 (от 11100000 00000000 00000000 00000000 до 11101111 11111111 11111111 11111111).

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

Один и тот же узел может входить в несколько групп. Члены какой-либо группы multicast не обязательно должны принадлежать одной сети. В общем случае они могут распределяться по совершенно различным сетям.

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

Класс Е. Если адрес начинается с последовательности 11110, то это значит, что данный адрес относится к классу Е. Адреса этого класса зарезервированы для будущих применений.

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

 

Класс Первые биты Наименьший номер сети Наибольший номер сети Максимальное число узлов в сети
A 1.0.0.0 126.0.0.0 224
B 128.0.0.0 191.255.0.0 216
C 192.0.1.0 223.255.255.0 28
D 224.0.0.0 239.255.255.255 Multicast
E 240.0.0.0 247.255.255.255 Зарезервирован

 

Большие сети получают адреса класса А, средние — класса В, а маленькие — класса С.

Особые IP-адреса

В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов.

· Если весь IP-адрес состоит только из двоичных нулей, то он обозначает адрес того узла, который сгенерировал этот пакет; этот режим используется только в некоторых сообщениях ICMP.

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

· Если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast).

· Если в поле номера узла назначения стоят только единицы, то пакет, имеющие такой адрес, рассылается всем узлам сети с заданным номером сети. Например, пакет с адресом 192.190.21.255 доставляется всем узлам сети 192.190.21.0. Такая рассылка называется широковещательным сообщением (broadcast).

При адресации необходимо учитывать те ограничения, которые вносятся особым назначением некоторых IP-адресов. Так, ни номер сети, ни номер узла не может состоять только из одних двоичных единиц или только из одних двоичных нулей. Отсюда следует, что максимальное количество узлов, приведенное в таблице для сетей каждого класса, на практике должно быть уменьшено на 2. Например, в сетях класса С под номер узла отводится 8 бит, которые позволяют задавать 256 номеров: от 0 до 255. Однако на практике максимальное число узлов в сети класса С не может превышать 254, так как адреса 0 и 255 имеют специальное назначение.

Особый смысл имеет IP-адрес, первый октет которого равен 127 (01111111). Он используется для тестирования программ и взаимодействия процессов в пределах одной машины. Когда программа посылает данные по IP-адресу 127.0.0.1, то образуется как бы «петля». Данные не передаются по сети, а возвращаются модулям верхнего уровня как только что принятые. Поэтому в IP-сети запрещается присваивать машинам IP-адреса, начинающиеся со 127. Этот адрес имеет название loopback. Любой адрес сети 127.0.0.0 служит для обозначения своего узла, а не только 127.0.0.1, например 127.0.0.3.

Если некоторая IP-сеть создана для работы в «автономном режиме», без связи с Internet, тогда администратор этой сети волен назначить ей произвольно выбранный номер. Но и в этой ситуации для того, чтобы избежать каких-либо коллизий, в стандартах Internet определено несколько диапазонов адресов, рекомендуемых для локального использования. Эти адреса не обрабатываются маршрутизаторами Internet ни при каких условиях. Адреса, зарезервированные для локальных целей, выбраны из разных классов: в классе А — это сеть 10.0.0.0, в классе В — это диапазон из 16 номеров сетей 172.16.0.0-172.31.0.0, в классе С — это диапазон из 255 сетей - 192.168.0.0-192.168.255.0.

Похожие статьи:

poznayka.org

Расчет маски подсети | Небольшой Блог Системного Администратора

Сложно ли рассчитать маску сети? Как по сетевой масске рассчитать количество адресов? Это очень просто. Для этого достаточно знать действия первого класса обычной школы и знать степени числа 2. Сетевой адрес состоит из двух частей: адреса сети и адреса хоста в этой сети. А маска сети как раз и является той разделительной чертой, которая разделяет эти адреса.

Теория: маска сети определяет, сколько бит в IP адресе идентифицирует сеть.  Рассмотрим частные адреса  (RFC1918) из сети класса  «С»: они занимают диапазон 192.168.0.0 — 192.168.255.255. Маска этого сегмента 192.168.0.0/16.

Как рассчитать, сколько это адресов?

Запись 192.168.0.0/16 (255.255.0.0) означает, что под адрес сети занято 16 бит. Если адрес перевести в двоичное исчисление, то первые 16 бит это – 192.168. Это и есть адрес сети: 192.168.0.0.

IP-адрес из сети: 11000000 10101000 00001010 00100010 (192.168.10.34) Маска подсети:    11111111 11111111 00000000 00000000 (255.255.0.0) Адрес сети:       11000000 10101000 00000000 00000000 (192.168.0.0) IP-адрес из сети: 11000000 10101000 00001010 00100010 (192.168.10.34) Маска подсети: 11111111 11111111 00000000 00000000 (255.255.0.0) Адрес сети: 11000000 10101000 00000000 00000000 (192.168.0.0)

Практика: адрес сети это первый адрес, данного сегмента. Этот адрес нельзя назначить никакому хосту. Если сеть задана в таком виде, то адреса типа : 192.168.1.0, 192.168.1.255 это просто адреса хостов, при такой маске их можно  назначать компьютерам. Но если задать сеть как 192.168.1.0/24, то оба вышеуказанных адреса назначить каким-либо устройствам не удастся. В этом случае,  первый адрес является адресом сети, а второй broadcast адресом для этой сети.

Broadcast адрес это второй служебный адрес для каждой сети. Он нужен для рассылки всем адресам сети. Если послать сетевой пакет на этот адрес, то он придет на все адреса своего сегмента сети.  Broadcast адрес всегда последний адрес сети.  Поэтому назначить адресов в любой сети можно всегда на два адреса меньше. В случае всего сегмента частых адресов класса «С» это адреса: 192.168.0.0 и 192.168.255.255.

Теперь как посчитать, сколько же адресов может быть  в сети. Важное замечание: адресов в любой сети всегда четное! Более того, оно всегда кратно степени двойки. То есть число адресов – это число, равное два в степени: число бит, оставшееся от вычитания количества бит под адрес сети из полного числа бит. Всего в адресе 32 бита, в нашем случае под адрес сети выделено 16 бит, под адреса остается тоже 16. Это значит, чтобы узнать количество адресов в данной сети надо два возвести в 16 степень. Это будет 65536 адресов. Сеть такого масштаба вряд ли кому то нужна. Чаще бывают более мелкие сети. Например, маска /30 означает, что под адреса остается только 2 бита. Соответственно, два во второй степени будет четыре. Сколько же адресов можно использовать в такой сети для назначения устройствам? Правильный ответ: всего один! Потому что, как выяснили ранее, два адреса в каждой сети служебные. Остается два адреса. Но если мы хотим подключить компьютер с адресом с такой маской в сеть, то нам нужно будет ещё выделить адрес в этой сети для маршрутизатора, через который можно будет попасть в другие сети, поскольку в данной сети других адресов нет.

Крайние случаи: /0 и /32. Маска /0 означает все адреса, весь интернет. Маска /32 означает единичный хост. Такие адреса провайдеры выделяют для экономии. Соединение в таком случае возможно только точка-точка. То есть используется протокол PPP.

Расчет маски  в нотации 255.255.255.0 довольно просто в случае, если первые 3 октета 255. В противном случае надо переводить десятичное число в двоичное и выяснять количество бит, которое оно означает. Либо вычитать это число из 256 и определить в какую степень нужно возвести двойку, чтобы получить это число. Степень и будет равна числу бит. В случае, если маска определяется только последним октетом, можно посчитать следующим образом. Максимальное число адресов в данной ситуации 256, нумерация начинается с нуля! Если последний октет 255 – это соответствует маске /32 и означает единичный хост. Если последний октет ноль, то этот случай соответствует маске /24 и адресов в данной сети – 256. промежуточные варианты определяются также,  как я описал чуть выше.  Например, последний октет 240. Вычитаем это число из 256, получаем 16. В сети с такой маской может быть 16 адресов и соответственно можно включить 14 компьютеров. А если такую сеть выделил провайдер, то только 13, так как один адрес придется использовать под маршрутизатор.  Как видите все просто. Теперь как перевести из одного представления маски в другое. Возьмем опять маску 255.255.255.240. В такой сети может быть 16 адресов. 16 – это два в четвертой степени. Следовательно, под адреса выделено 4 бита. Значит под сеть – 28. Маска по CIDR будет /28. Теперь обратно. Возьмем маску для разнообразия /26. 32-26=6. 6 бит под адреса. Адресов в этом случае будет: два в шестой степени = 64. Соответственно: 256-64=192. Маска будет: 255.255.255.192. Вот так легко рассчитываются адреса и маски.

В заключение ещё один момент. Адреса сети имеют определенные значения. От маски сети зависит, какие значения они могут принимать. Для простоты возьмем сеть  192.168.1.0/24. в этой сети только один адрес сети: 192.168.1.0. Меняем маску на 25. В этом случае адресов в сети может только 128. наша сеть разбивается на две: 192.168.1.0/25 и 192.168.1.128/25. Если передадим ещё один бит маске сети — /26, то сетей будет уже 4 по 64 адреса: 192.168.1.0/26, 192.168.1.64/26, 192.168.1.128/26 и 192.168.1.192/26 и так далее.  Думаю, что теперь каждый сможет определить,  сколько адресов, какой адрес сети и какой адрес broadcast для сети 196.68.1.120/27.

Пример деления сети на меньшие подсети из блога компании Selectel:

Материалы:

  • Статья «Система учета IP-адресов» от Selectel
  • Маска подсети — wikipedia
  • help.keenetic.net — Пример расчета количества хостов и подсетей на основе IP-адреса и маски
  • VN:F [1.9.22_1171]

    Рейтинг: 9.0/10 (27 голоса(ов))

    Расчет маски подсети, 9.0 out of 10 based on 27 ratings

    proadminz.ru

    Задание №12 - материалы для подготовки к ЕГЭ по Информатике

    Автор материалов - Лада Борисовна Есакова.

    Адрес документа в Интернете состоит из следующих частей:

    Протокол ( чаще всего http или ftp), последовательность символов «://» , доменное имя сайта, каталог на сервере, где находится файл, имя файла. Каталоги разделяются символом «/».

    Например: http://www.hs.ru/files/user/olga/filenew.zip

    IP-адрес компьютера имеет длину 4 байта. Для удобства IP-адрес записывают в виде четырех чисел, разделенных точками. Числа принимают значения от 0 до 255 (т.к. 255 - 8 единиц в двоичной системе – наибольшее число, которое можно записать в один байт).

    IP-адрес состоит из двух частей: адреса сети и номера компьютера в этой сети. Для деления адреса на части используют маску. Маска – это 32-битное число, в двоичной записи которого сначала стоят единицы, а потом – нули. Единицы определяют часть адреса, относящуюся к адресу сети, а нули – часть адреса, относящуюся к номеру компьютера в сети.

    Адрес файла в интернете

    Пример 1.

    A .net
    Б ftp
    В ://
    Г http
    Д /
    Е .org
    Ж txt

    Доступ к файлу ftp.net , находящемуся на сервере txt.org, осуществляется по протоколу http. В таблице фрагменты адреса файла закодированы буквами от А до Ж. Запишите последовательность этих букв, кодирующую адрес указанного файла в сети Интернет.

    Решение:

    При записи адреса файла в интернете сначала указывается протокол, затем ставится последовательность символов ://, затем имя сервера, затем символ /, и лишь потом имя файла: http://txt.org/ftp.net.

    Ответ: ГВЖЕДБА

     

    Восстановление IP-адресов

    Пример 2.

    Петя за­пи­сал IP-адрес школь­но­го сер­ве­ра на лист­ке бу­ма­ги и по­ло­жил его в кар­ман куртки. Пе­ти­на мама слу­чай­но по­сти­ра­ла курт­ку вме­сте с за­пис­кой. После стир­ки Петя обнаружил в кар­ма­не че­ты­ре об­рыв­ка с фраг­мен­та­ми IP-ад­ре­са. Эти

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

     

     

     

    Решение:

    IP-адрес пред­став­ля­ет собой 4 числа, разделенные точ­ка­ми, при­чем эти числа не боль­ше 255.

    По­смот­рим вни­ма­тель­нее на дан­ные фраг­мен­ты: под бук­вой Г мы видим «.42». Так как числа в IP-ад­ре­се не могут быть боль­ше 255, мы не можем ничего дописать к этому числу, а фраг­мен­тов, на­чи­на­ю­щих­ся с точки, боль­ше нет, сле­до­ва­тель­но, этот фраг­мент – по­след­ний.

    На фрагменте под буквой Б число без точек, зна­чит, это либо по­след­ний фраг­мент, либо пер­вый. Место по­след­не­го фраг­мен­та уже за­ня­то, зна­чит фраг­мент Б первый.

    В конце фраг­мен­та А - число 212, от­де­лен­ное точ­кой, значит за фраг­мен­том А дол­жен сле­до­вать фраг­мент, на­чи­на­ю­щий­ся с точки. Зна­чит, фраг­мент А идет перед фраг­мен­том Г.

    Ответ: БВАГ

     

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

    Пример 3.

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

    По за­дан­ным IP-ад­ре­су узла и маске опре­де­ли­те адрес сети.

    IP-адрес узла: 218.137.218.137

    Маска: 255.255.248.0

    При за­пи­си от­ве­та вы­бе­ри­те из при­ведённых в таб­ли­це чисел че­ты­ре эле­мен­та IP-ад­ре­са и за­пи­ши­те в нуж­ном по­ряд­ке со­от­вет­ству­ю­щие им буквы без ис­поль­зо­ва­ния точек.

     

    При за­пи­си от­ве­та вы­бе­ри­те из при­ве­ден­ных в таб­ли­це чисел 4 фраг­мен­та че­ты­ре эле­мен­та IP-ад­ре­са и за­пи­ши­те в нуж­ном по­ряд­ке со­от­вет­ству­ю­щие им буквы без точек.

    A

    B

    C

    D

    E

    F

    G

    H

    255

    249

    218

    216

    137

    32

    8

    0

     

     

     

     

     

    При­мер. Пусть ис­ко­мый адрес сети 192.168.128.0 и дана таб­ли­ца

    A

    B

    C

    D

    E

    F

    G

    H

    128

    168

    255

    8

    127

    0

    17

    192

     

     

     

     

    В этом слу­чае пра­виль­ный ответ будет HBAF.

     

    Решение:

    Адрес сети по­лу­ча­ет­ся в ре­зуль­та­те по­раз­ряд­ной конъ­юнк­ции чисел маски и чисел ад­ре­са узла (в дво­ич­ном коде). Конъ­юнк­ция 0 с любым числом все­гда равна 0, а конъюнкция 25510 (8 единиц в двоичной системе) с любым числом равна этому числу.

    IP-адрес узла:           218.137.218.137

    Маска:                        255.255.248.0

    Значит, первые два числа адреса сети останутся такими же, как у IP-адрес узла, а последнее число будет 0. Нам осталось провести поразрядную конъюнкцию двоичной записи чисел 218 и 248.

    24810 = 111110002

    21810 = 110110102

    Ре­зуль­та­том конъ­юнк­ции яв­ля­ет­ся число 110110002 = 216.

    Со­по­ста­вим ва­ри­ан­ты от­ве­та по­лу­чив­шим­ся чис­лам: 218, 137, 216, 0.

    Ответ: CEDH

     

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

    Пример 4.

    В терминологии сетей TCP/IP маской сети называется двоичное число,

    определяющее, какая часть IP-адреса узла сети относится к адресу сети,

    а какая – к адресу самого узла в этой сети. Обычно маска записывается

    по тем же правилам, что и IP-адрес, – в виде четырёх байтов, причём каждый

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

    (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули.

    Адрес сети получается в результате применения поразрядной конъюнкции

    к заданному IP-адресу узла и маске.

    Например, если IP-адрес узла равен 231.32.255.131, а маска равна

    255.255.240.0, то адрес сети равен 231.32.240.0.

    Для узла с IP-адресом 111.81.208.27 адрес сети равен 111.81.192.0. Чему

    равно наименьшее возможное значение третьего слева байта маски? Ответ

    запишите в виде десятичного числа.

    Решение:

    Поскольку нас интересует только третий байт маски, запишем тре­тий байт IP-ад­ре­са и ад­ре­са сети в дво­ич­ной си­сте­ме счис­ле­ния:

    20810 = 110100002

    19210 = 110000002

    С каким числом нужно произвести конъюнкцию 110100002 , чтобы получить 110000002 ? Очевидно, что первые две цифры должны быть единицами, а 4-я нулем.

    Это или 11000000, или 11100000. По условию задачи требуется найти наименьшее значение – это 11000000.

    110000002 = 19210

    Ответ: 192

     

    Подсчет количества адресов

    Пример 5.

    В тер­ми­но­ло­гии сетей TCP/IP мас­кой под­се­ти на­зы­ва­ет­ся 32-раз­ряд­ное дво­ич­ное число, опре­де­ля­ю­щее, какие имен­но раз­ря­ды IP-ад­ре­са ком­пью­те­ра яв­ля­ют­ся об­щи­ми для всей под­се­ти – в этих раз­ря­дах маски стоит 1. Обыч­но маски за­пи­сы­ва­ют­ся в виде чет­вер­ки де­ся­тич­ных чисел - по тем же пра­ви­лам, что и IP-ад­ре­са. Для не­ко­то­рой под­се­ти ис­поль­зу­ет­ся маска 255.255.254.0. Сколь­ко раз­лич­ных ад­ре­сов ком­пью­те­ров тео­ре­ти­че­ски до­пус­ка­ет эта маска, если два ад­ре­са (адрес сети и ши­ро­ко­ве­ща­тель­ный) не ис­поль­зу­ют?

     

    Решение:

    За адрес компьютера в маске отвечают разряды, содержащие нули. В маске 255.255.254.0. первые два числа состоят полностью из единиц, т.е.  определяют адрес сети. Запишем третье число маски в двоичном виде: 254 = 111111102 .

    Четвертое число маски в двоичном представлении состоит из 8 нулей.

    Т.е. маска выглядит следующим образом:

    11111111 11111111 11111110 00000000

    Т.е. под адрес компьютера выделено 9 разрядов, значит туда можно записать 29 = 512 адресов, но, так как два ад­ре­са не ис­поль­зу­ют­ся, по­лу­ча­ем 512 – 2 = 510.

    Ответ: 510

     

    Определение номера компьютера в сети

    Пример 6.

    Мас­кой под­се­ти на­зы­ва­ет­ся 32-раз­ряд­ное дво­ич­ное число, ко­то­рое опре­де­ля­ет, какая часть IP-ад­ре­са ком­пью­те­ра от­но­сит­ся к ад­ре­су сети, а какая часть IP-ад­ре­са опре­де­ля­ет адрес ком­пью­те­ра в под­се­ти. В маске под­се­ти стар­шие биты, от­ве­ден­ные в IP-ад­ре­се ком­пью­те­ра для ад­ре­са сети, имеют зна­че­ние 1; млад­шие биты, от­ве­ден­ные в IP-ад­ре­се ком­пью­те­ра для ад­ре­са ком­пью­те­ра в под­се­ти, имеют зна­че­ние 0.

    Если маска под­се­ти 255.255.224.0 и IP-адрес ком­пью­те­ра в сети 206.158.124.67, то номер ком­пью­те­ра в сети равен_____

     

    Решение:

    Пер­вые два числа маски равны 255 (в двоичной записи состоят полностью из единиц). Третье число маски 22410 = 111000002. Четвертое число маски состоит из 8 нулей. Т.е. маска выглядит следующим образом:

    11111111 11111111 11100000 00000000

    Т.е. под адрес компьютера отведено 13 разрядов.

    За­пи­шем по­след­ние два числа IP-ад­ре­са ком­пью­те­ра в сети: 12410 = 11111002

    6710 = 10000112

    Т.е. по­след­ние два числа IP-ад­ре­са ком­пью­те­ра в сети за­пи­сы­ва­ют­ся так:

    01111100 01000011. Нам нужны только последние 13 разрядов (подчеркнутая часть), переведем её в де­ся­тич­ную си­сте­му счис­ле­ния: 11100010000112 = 723510

    Ответ: 7235

    Ты нашел то, что искал? Поделись с друзьями!

    Звоните нам: 8 (800) 775-06-82 (бесплатный звонок по России)                        +7 (495) 984-09-27 (бесплатный звонок по Москве)

    Или нажмите на кнопку «Узнать больше», чтобы заполнить контактную форму. Мы обязательно Вам перезвоним.

    ege-study.ru