Структура ip адрес – Сетевая адресация. Понятие IP-адреса и маски сети. Структура IP-адреса.Типы IP-адресов. Публичные и частные IP-адреса

Содержание

Структура 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-адресе

Рисунок 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-адрес и маску подсети в двоичный вид

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

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

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


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

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

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

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


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

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


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

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


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

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

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

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

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


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

Третий блок.


128 + 64 + 1 = 193.

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


2 + 1 = 3

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

Задача №1

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

Ответы

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


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

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

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

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

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

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

Класс C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

Задача №2

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задача №3

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

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

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

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

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


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

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

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

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


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

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


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

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

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

Задача №4

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

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

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

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

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

Всё об IP адресах и о том, как с ними работать / Habr

Доброго времени суток, уважаемые читатели Хабра!

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

В самой статье я не стал править эту ошибку, так как убрав её будет бессмысленна вся наша дискуссия в 2 дня, но решил исправить её в отдельной статье с указание проблем и пояснением всей темы.

Для начала, стоит сказать о том, что такое IP адрес.

IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной на основе стека протоколов TCP/IP (TCP/IP – это набор интернет-протоколов, о котором мы поговорим в дальнейших статьях). IP-адрес представляет собой серию из 32 двоичных бит (единиц и нулей). Так как человек невосприимчив к большому однородному ряду чисел, такому как этот 11100010101000100010101110011110 (здесь, к слову, 32 бита информации, так как 32 числа в двоичной системе), было решено разделить ряд на четыре 8-битных байта и получилась следующая последовательность: 11100010.10100010.00101011.10011110. Это не сильно облегчило жизнь и было решение перевести данную последовательность в, привычную нам, последовательность из четырёх чисел в десятичной системе, то есть 226.162.43.158. 4 разряда также называются октетами. Данный IP адрес определяется протоколом IPv4. По такой схеме адресации можно создать более 4 миллиардов IP-адресов.

Максимальным возможным числом в любом октете будет 255 (так как в двоичной системе это 8 единиц), а минимальным – 0.

Далее давайте разберёмся с тем, что называется классом IP (именно в этом моменте в лабораторной работе была неточность).

IP-адреса делятся на 5 классов (A, B, C, D, E). A, B и C — это классы коммерческой адресации. D – для многоадресных рассылок, а класс E – для экспериментов.

Класс А: 1.0.0.0 — 126.0.0.0, маска 255.0.0.0
Класс В: 128.0.0.0 — 191.255.0.0, маска 255.255.0.0
Класс С: 192.0.0.0 — 223.255.255.0, маска 255.255.255.0
Класс D: 224.0.0.0 — 239.255.255.255, маска 255.255.255.255
Класс Е: 240.0.0.0 — 247.255.255.255, маска 255.255.255.255

Теперь о «цвете» IP. IP бывают белые и серые (или публичные и частные). Публичным IP адресом называется IP адрес, который используется для выхода в Интернет. Адреса, используемые в локальных сетях, относят к частным. Частные IP не маршрутизируются в Интренете.

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

Допустим, Вы молодой сетевой инженер и хотите дать доступ к своему серверу всем пользователям Интернета. Для этого Вам нужно получить публичный IP адрес. Чтобы его получить Вы обращаетесь к своему интернет провайдеру, и он выдаёт Вам публичный IP адрес, но из рукава он его взять не может, поэтому он обращается к локальному Интернет регистратору (LIR – Local Internet Registry), который выдаёт пачку IP адресов Вашему провайдеру, а провайдер из этой пачки выдаёт Вам один адрес. Локальный Интернет регистратор не может выдать пачку адресов из неоткуда, поэтому он обращается к региональному Интернет регистратору (RIR – Regional Internet Registry). В свою очередь региональный Интернет регистратор обращается к международной некоммерческой организации IANA (Internet Assigned Numbers Authority). Контролирует действие организации IANA компания ICANN (Internet Corporation for Assigned Names and Numbers). Такой сложный процесс необходим для того, чтобы не было путаницы в публичных IP адресах.

Поскольку мы занимаемся созданием локальных вычислительных сетей (LAN — Local Area Network), мы будем пользоваться именно частными IP адресами. Для работы с ними необходимо понимать какие адреса частные, а какие нет. В таблице ниже приведены частные IP адреса, которыми мы и будем пользоваться при построении сетей.

Из вышесказанного делаем вывод, что пользоваться при создании локальной сеть следует адресами из диапазона в таблице. При использовании любых других адресов сетей, как например, 20.*.*.* или 30.*.*.* (для примера взял именно эти адреса, так как они использовались в лабе), будут большие проблемы с настройкой реальной сети.

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

У всех IP адресов есть две части сеть и узел.
Сеть – это та часть IP, которая не меняется во всей сети и все адреса устройств начинаются именно с номера сети.
Узел – это изменяющаяся часть IP. Каждое устройство имеет свой уникальный адрес в сети, он называется узлом.

Маску принято записывать двумя способами: префиксным и десятичным. Например, маска частной подсети A выглядит в десятичной записи как 255.0.0.0, но не всегда удобно пользоваться десятичной записью при составлении схемы сети. Легче записать маску как префикс, то есть /8.

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

Таблица масок подсети

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

172.16.13.0 – адрес сети
172.16.13.1 – адрес первого устройства в сети
172.16.13.254 – адрес последнего устройства в сети
172.16.13.255 – широковещательный IP адрес
172.16.14.0 – адрес следующей сети

Итого 254 устройства в сети

Теперь вычислим сколько устройств может быть в сети, где у одного компьютера адрес 172.16.13.98 /16.

172.16.0.0 – адрес сети
172.16.0.1 – адрес первого устройства в сети
172.16.255.254 – адрес последнего устройства в сети
172.16.255.255 – широковещательный IP адрес
172.17.0.0 – адрес следующей сети

Итого 65534 устройства в сети

В первом случае у нас получилось 254 устройства, во втором 65534, а мы заменили только номер маски.

Посмотреть различные варианты работы с масками вы можете в любом калькуляторе IP. Я рекомендую этот.

До того, как была придумана технология масок подсетей (VLSM – Variable Langhe Subnet Mask), использовались классовые сети, о которых мы говорили ранее.

Теперь стоит сказать о таких IP адресах, которые задействованы под определённые нужды.

Адрес 127.0.0.0 – 127.255.255.255 (loopback – петля на себя). Данная сеть нужна для диагностики.
169.254.0.0 – 169.254.255.255 (APIPA – Automatic Private IP Addressing). Механизм «придумывания» IP адреса. Служба APIPA генерирует IP адреса для начала работы с сетью.

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

Ссылка на лабу

Структура IPv4 адреса, сети и подсети, разделение сети на подсети

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

IP-адрес представляет собой число размером 32 бита (или 4 байта), которое может быть записано в любой системе счисления (тут речь про адрес протокола IP version 4, в IPv6 он имеет размер 128 бит).

Например, адрес в десятичной системе 127.0.0.1 можно записать так:

01111111.00000000.00000000.00000001

Адрес делится на 4 октета, по 8 бит каждый, которые могут иметь значение от 0 (00000000) до 255 (11111111):

IP-адрес содержит в себе две основных части — адрес сети и адрес хоста в этой сети.

К примеру, адрес 77.120.120.20 представляет собой сеть 77.120.120.0, в которой находится хост с адресом 20.

Сети и маска сети

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

Рассмотрим адрес 77.120.120.20 с маской 255.255.255.0.

В двоичном представлении этот адрес можно записать так:

адрес:

01001101.01111000.01111000.00010100

маска:

11111111.11111111.11111111.00000000

Для первых трёх октетов в IP-адресе установлен (или «включён«) «бит маски» (иначе — «битовая маска«), следовательно — первые три октета адреса являются адресом сети, а последние 8 бит — адресом хоста.

Таким образом, адрес 77.120.120.20 с маской 255.255.255.0 является в сетью 77.120.120.0, которая является классом С (которая, в свою очередь, является подсетью сети 77.120.0.0 класса В, которая является подсетью сети 77.0.0.0, которая является сетью верхнего уровня — А, хотя с появлением CIDR (см. ниже) понятие «классы сети» фактически потеряло актуальность).

Что бы сократить запись о сети  77.120.120.0 с маской 255.255.255.0 — можно использовать сокращённую форму: 77.120.120.0/24.

«/24» называется «префикс сети«, и указывает на количество «битов маски«. Таким образом, из 32 бит адреса 24 указаны как адрес сети, а 8 — остаются для адресов хостов в этой сети.

Если взять, к примеру, сеть 77.120.120.0/28 — мы получим только 4 бита, выделенных для адресов, т.е. маска сети будет выглядеть как 11111111.11111111.11111111.11110000, или 255.255.255.240.

Такое описание сетей и подсетей называется «бесклассовой классификацией» (Classless Inter-Domain Routing — CIDR).

Использование CIDR даёт возможность отказаться от традиционного разбиения на сети различных классов (А, B, C и т.д.) , и создавать подсети необходимого размера.

К примеру, подсеть 77.120.120.0/28 (которую можно перевести в маску сети 11111111.11111111.11111111.11110000 в двоичном виде (4 последних бита «сброшены»)или 255.255.255.240 в десятичном) содержит 4 бита адресов хостов. В 4 бита можно «вместить» 24 адресов — 16. Из этих 16 стоит вычесть первый (сам адрес 77.120.120.0, так он является адресом самой сети) и последний (77.120.120.255, так как он является широковещательным, или broadcast, адресом сети, на который в теории должны отвечать все хосты сети), таким образом — из 16 адресов сети для хостов остаётся 14 адресов.

Маска подсетиАльтернативный
формат записи
Последний октет
(в двоичном виде)
Последний октет
(в десятичном виде)
255.255.255.0/240000 00000
255.255.255.128/251000 0000128
255.255.255.192/261100 0000192
255.255.255.224/271110 0000224
255.255.255.240/281111 0000240
255.255.255.248/291111 1000248
255.255.255.252/301111 1100252

 

Маска подсетиРазмер идентификатора хоста Максимальное
количество хостов
8 бит255.0.0.024 бит224 – 216777214
16 бит255.255.0.016 бит216 – 265534
24 бит255.255.255.08 бит28 – 2254
29 бит255.255.255.2483 бит23 – 26

Более полные таблицы сетей можно найти в статье Сети, подсети, классы подсетей. Таблица подсетей.

Разделение сети на подсети

Допустим, имеется сеть 77.120.120.0/24, или сеть 77.120.120.0 с маской 255.255.255.0 — из которой необходимо выделить две различные сети. Сеть 77.120.120.0/24 включает в себя адреса от 77.120.120.0 до 77.120.120.255.

Представим эту сеть и её маску в двоичном виде:

адрес сети:

1001101.1111000.1111000.00000000

маска:

11111111.11111111.11111111.00000000

Займём на один бит больше в последнем октете маски сети — 11111111.11111111.11111111.10000000 (или 255.255.255.128 в десятичном виде). У нас осталось (32 бита IP-адреса — 7 бит под адреса хостов) = 25 бит — под маску. Следовательно, первая сеть в десятичном виде будет выглядеть как 77.120.120.0/25, и включает в себя адреса от 77.120.120.0 до 77.120.120.127 (7 бит под адреса: 27 = 128 адресов, включая первый адрес 0 — получаем 127 всего), а вторая сеть получит адреса от 77.120.120.128 до 77.120.120.255, или 77.120.120.128/25.

Ещё один способ рассчитать максимальное значение (последний адрес для сети): в 25-ти битной маске мы имеем 7 бит под адреса; следовательно — адрес первой сети в двоичном виде будет выглядеть так: 1001101.1111000.1111000.00000000 — где жирным выделен адрес сети, а курсивом — «свободные» биты под адреса хостов. Максимальное значение, которое можно вместить в семь бит — 01111111 = 127.

Для второй сети мы имеем вид 77.120.120.128, или 1001101.1111000.1111000.10000000, а максимальное значение последнего октета будет 11111111 = 255.

Ссылки по теме

http://www.adminsub.net

http://www.shunsoft.net

https://en.wikipedia.org

http://habrahabr.ru

http://planetcalc.ru

http://zyxel.ua


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

IP-адрес представляет собой серию из 32 двоичных бит (единиц и нулей).

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

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

Структура 32-битного IP-адреса определяется межсетевым протоколом 4-ой версии (IPv4). На данный момент это один из самых распространенных в Интернете типов IP-адресов. По 32-битной схеме адресации можно создать более 4 миллиардов IP-адресов.

Получая IP-адрес, узел просматривает все 32 бита по мере поступления на сетевой адаптер. Напротив, людям приходится преобразовывать эти 32 бита в десятичные эквиваленты, то есть в четыре октета. Каждый октет состоит из 8 бит, каждый бит имеет значение. У четырех групп из 8 бит есть один и тот же набор значений. Значение крайнего правого бита в октете – 1, значения остальных, слева направо – 2, 4, 8, 16, 32, 64 и 128.

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

  • Нулевые позиции в сложении не участвуют.

  • Если все 8 бит имеют значение 0, 00000000, то значение октета равно 0.

  • Если все 8 бит имеют значение 1, 11111111, значение октета – 255 (128+64+32+16+8+4+2+1).

  • Если значения 8 бит отличаются, например, 00100111, значение октета – 39 (32+4+2+1).

Таким образом, значение каждого из четырех октетов находится в диапазоне от 0 до 255.

Далее: Роль протоколов при взаимодействии между клиентом и сервером

что это такое, как расшифровывается и как выглядит уникальный адрес в интернете

IP-адрес (Internet Protocol Address) – это уникальный сетевой идентификатор, присваивающийся каждому участнику локальной или глобальной компьютерной сети. Это может быть как Всемирная паутина, так и частная сеть предприятия. Главное – она должна быть основана на протоколе TCP/IP.

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

Форматы IP-адресов

До недавнего времени человечество использовало один общепринятый формат записи IP-адреса – 32-битный IPv4. Это четвертая версия интернет-протокола. До нее существовали версии IPv3, IPv2, но именно v4 стала широко использоваться по всему миру.

32-битный IP-адрес имеет следующий вид:

Он состоит из четырех числовых значений от 0 до 255, разделенных точками.

Минус данного формата – малый охват. С ростом популярности интернета выросло и число уникальных узлов (пользователей). Уникальные IP-адреса просто заканчивались. Поэтому в 1996 году был создан IPv6.

Шестая версия интернет-протокола представляет собой 128-битную запись, состоящую из 8 буквенно-цифровых блоков, разделенных двоеточиями.

Как выглядит IP-адрес в 128-битной версии:

  • 2001:0db8:85a3:0000:0000:8a2e:0370:7334

Нулевые группы можно сокращать (вместо «0000» – «0»). Несколько нулевых групп, стоящих друг за другом, можно сократить двойным двоеточием (вместо «fe80:0:0:0:0:df00:0:1» – «fe80::df00:0:1»). Использование более одного двойного двоеточия не допускается.

До 2012 года данный формат айпи-адресов практически не использовался. Только на конец 2012 года доля сетевого трафика, использующего IPv6, составила 1 %. К концу 2013-го – 3 %, а в 2018-м (по данным статистики Google) – около 25 %.

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

Виды IP-адресов

Все IP-адреса классифицируются по нескольким критериям.

По способу использования:

  • внешние. Используются в глобальных сетях. Именно данный тип айпи-адресов позволяет владельцам сайтов отслеживать статистику посещений, определять характеристики посетителей, выполнять аналитику;

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

Из-за ограниченности количества внешних IP-адресов зачастую применяют технологию NAT (Network Address Translation), которая преобразует внутренние идентификаторы во внешние.

По способу определения:

  • статические (постоянные). Каждому узлу присваивается свой идентификатор на неограниченное время. Один адрес используется только на одном устройстве. Отследить такого пользователя легко;

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

Зачем использовать статические IP

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

  • для доступа к некоторым сервисам требуется именно статический адрес;

  • он позволяет применять защищенные каналы передачи данных;

  • пользователь привязывается к конкретной сети;

  • так оптимизируется работа с сетевыми серверами.

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

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

Каждый IP-адрес в сети состоит из двух частей:

  • номер сети;

  • номер узла.

Для определения номера сети и узла необходимо использовать так называемые маски подсети, позволяющие узнать, какая именно часть идентификатора обозначает сеть, а какая – узел, соединение, устройство. Используемый метод – побитовое наложение.

Пример IP-адреса: 192.168.1.2. Пример маски подсети: 255.255.254.0.

Для определения номера сети переводим адрес в двоичную систему счисления. Получаем следующую картину:


Применив метод поразрядной конъюнкции (побитового «И»), получаем адрес сети – 192.168.0.0.

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

Далее, используя таблицу маршрутизации, можно вычислить адрес шлюза.

Этот метод применяется к IPv6-протоколам аналогичным образом.

(Голосов: 14, Рейтинг: 3.93)

IP адресация, классы IP адресов и значение маски подсети

Адресация в компьютерных сетях бывает двух видов: физическая адресация (на основе MAC-адреса) и логическая (на основе IP-адреса). Логическая адресация реализована на 3-ем уровне эталонной модели OSI. Далее более подробно рассматривается IP-адресация и пять классов IP-адресов, а также подсети, маски подсетей и их роль в схемах IP-адресации. Кроме того, обсуждаются отличия между публичными и частными адресами, IPv4-и IPv6-адресацией, а также одноадресными и широковещательными сообщениями.

Для чего нужны IP адреса?

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

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

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

——————————————

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

IP-адрес представляет собой серию из 32 двоичных бит (единиц и нулей). Человеку прочесть двоичный IP-адрес очень сложно. Поэтому 32 бита группируются по четыре 8-битных байта, в так называемые октеты. Читать, записывать и запоминать IP-адреса в таком формате людям сложно. Чтобы облегчить понимание, каждый октет IP-адреса представлен в виде своего десятичного значения. Октеты разделяются десятичной точкой или запятой. Это называется точечно-десятичной нотацией.

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

Структура 32-битного IP-адреса определяется межсетевым протоколом 4-ой версии (IPv4). На данный момент это один из самых распространенных в Интернете типов IP-адресов. По 32-битной схеме адресации можно создать более 4 миллиардов IP-адресов.

Получая IP-адрес, узел просматривает все 32 бита по мере поступления на сетевой адаптер. Напротив, людям приходится преобразовывать эти 32 бита в десятичные эквиваленты, то есть в четыре октета. Каждый октет состоит из 8 бит, каждый бит имеет значение. У четырех групп из 8 бит есть один и тот же набор значений. Значение крайнего правого бита в октете – 1, значения остальных, слева направо – 2, 4, 8, 16, 32, 64 и 128.

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

  • Нулевые позиции в сложении не участвуют.
  • Если все 8 бит имеют значение 0, 00000000, то значение октета равно 0.
  • Если все 8 бит имеют значение 1, 11111111, значение октета – 255 (128+64+32+16+8+4+2+1).
  • Если значения 8 бит отличаются, например, 00100111, значение октета – 39 (32+4+2+1).

Таким образом, значение каждого из четырех октетов находится в диапазоне от 0 до 255.

Формат IP-адреса

——————————-

Разделение IP адреса на сетевую и узловую части

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

Например, если IP-адрес узла – 192.168.18.57, то первые три октета (192.168.18) представляют собой сетевую часть адреса, а последний октет (.57) является идентификатором узла. Такая система называется иерархической адресацией, поскольку сетевая часть идентифицирует сеть, в которой находятся все уникальные адреса узлов. Маршрутизаторам нужно знать только путь к каждой сети, а не расположение отдельных узлов.

Иерархическая структура IP-адресов

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

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

Сетевая и узловая части IP адреса

Классы IP адресов и маски подсети по умолчанию

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

IP-адреса делятся на 5 классов. К классам A, B и C относятся коммерческие адреса, присваиваемые узлам. Класс D зарезервирован для многоадресных рассылок, а класс E – для экспериментов.

IP-адреса класса D

IP-адреса класса E

В адресах класса C сетевая часть состоит из трех октетов, а адрес узла – из одного. Выбранная по умолчанию маска подсети состоит из 24 бит (255.255.255.0). Адреса класса C обычно присваиваются небольшим сетям.

IP-адреса класса C

В адресах класса B сетевая часть и адрес узла состоят из двух октетов. Выбранная по умолчанию маска подсети состоит из 16 бит (255.255.0.0). Обычно эти адреса используются в сетях среднего размера.

IP-адреса класса B

В адресах класса A сетевая часть состоит всего из одного октета, остальные отведены узлам. Выбранная по умолчанию маска подсети состоит из 8 бит (255.0.0.0). Обычно такие адреса присваиваются крупным организациям.

IP-адреса класса A

Класс адреса можно определить по значению первого октета. Например, если значение первого октета IP-адреса находится в диапазоне от 192 до 223, то это адрес класса C. Например, адрес 200.14.193.67 относится к классу С.

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

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

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

Бесклассовая IP адресация (Classless Inter-Domain Routing — CIDR) — это метод IP-адресации, который позволяет рационально управлять пространством IP адресов. В бесклассовом методе адресации используются маски подсети переменной длины (variable length subnet mask VLSM).

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

Всего адресов битов Префикс Класс Десятичная маска
1 0 /32 255.255.255.255
2 1 /31 255.255.255.254
4 2 /30 255.255.255.252
8 3 /29 255.255.255.248
16 4 /28 255.255.255.240
32 5 /27 255.255.255.224
64 6 /26 255.255.255.192
128 7 /25 255.255.255.128
256 8 /24 1C 255.255.255.0
512 9 /23 2C 255.255.254.0
1024 10 /22 4C 255.255.252.0
2048 11 /21 8C 255.255.248.0
4096 12 /20 16C 255.255.240.0
8192 13 /19 32C 255.255.224.0
16384 14 /18 64C 255.255.192.0
32768 15 /17 128C 255.255.128.0
65536 16 /16 1B 255.255.0.0
131072 17 /15 2B 255.254.0.0
262144 18 /14 4B 255.252.0.0
524288 19 /13 8B 255.248.0.0
1048576 20 /12 16B 255.240.0.0
2097152 21 /11 32B 255.224.0.0
4194304 22 /10 64B 255.192.0.0
8388608 23 /9 128B 255.128.0.0
16777216 24 /8 1A 255.0.0.0
33554432 25 /7 2A 254.0.0.0
67108864 26 /6 4A 252.0.0.0
134217728 27 /5 8A 248.0.0.0
268435456 28 /4 16A 240.0.0.0
536870912 29 /3 32A 224.0.0.0
1073741824 30 /2 64A 192.0.0.0
2147483648 31 /1 128A 128.0.0.0
4294967296 32 /0 256A 0.0.0.0

Назначение маски подсети

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

При настройке IP узлу присваивается не только IP-адрес, но и маска подсети. Как и IP-адрес, маска состоит из 32 бит. Она определяет, какая часть IP-адреса относится к сети, а какая – к узлу.

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

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

————————————

В домашних офисах и небольших компаниях чаще всего встречаются следующие маски подсети: 255.0.0.0 (8 бит), 255.255.0.0 (16 бит) и 255.255.255.0 (24 бита). В маске подсети 255.255.255.0 (десятичный вариант), или 11111111.11111111.1111111.00000000 (двоичный вариант) 24 бита идентифицируют сеть, а 8 — узлы в сети.

Чтобы вычислить количество возможных сетевых узлов, нужно взять число два (2) в степени количества отведенных для них бит (2 ^ 8 = 256). Из полученного результата необходимо вычесть 2 (256-2). Дело в том, что состоящая из одних единиц (1) отведенная узлам часть IP-адреса предназначена для адреса широковещательной рассылки и не может принадлежать одному узлу. Часть, состоящая только из нулей, является идентификатором сети и тоже не может быть присвоена конкретному узлу. Возвести число 2 в степень без труда можно с помощью калькулятора, который есть в любой операционной системе Windows.

Иначе допустимое количество узлов можно определить, сложив значения доступных бит (128+64+32+16+8+4+2+1 = 255). Из полученного значения необходимо вычесть 1 (255-1 = 254), поскольку значение всех бит отведенной для узлов части не может равняться 1. 2 вычитать не нужно, поскольку сумма нулей равна нулю и в сложении не участвует.

В 16-битной маске для адресов узлов отводится 16 бит (два октета), и в одном из них все значения могут быть равны 1 (255). Это может быть и адрес широковещательной рассылки, но если другой октет не состоит из одних единиц, адрес можно использовать для узла. Не забывайте, что узел проверяет значения всех бит, а не значения одного октета.

Адреса подсетей

Взаимодействие IP-адреса и маски подсети

Публичные и частные IP-адреса

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

В соответствии со стандартом RFC 1918 было зарезервировано несколько диапазонов адресов класса A, B и C. Как видно из таблицы, в диапазон частных адресов входит одна сеть класса A, 16 сетей класса B и 256 сетей класса C. Таким образом, сетевые администраторы получили определенную степень свободы в плане предоставления внутренних адресов.

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

В сетях среднего размера можно использовать частную сеть класса B с более чем 65 000 адресов.

В домашних и небольших коммерческих сетях обычно используется один частный адрес класса C, рассчитанный на 254 узла.

Одну сеть класса A, 16 сетей класса B или 256 сетей класса C могут использовать организации любого размера. Многие организации пользуются частной сетью класса A.

Частные IP-адреса

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

При подключении сети предприятия, в которой используются частные адреса, к сети Internet необходимо обеспечить преобразование частных адресов в открытые. Такой процесс называется трансляцией сетевых адресов (Network Address Translation — NAT) и обычно выполняется маршрутизатором.

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

Кроме того, существуют частные адреса для диагностики устройств. Они называются адресами обратной связи. Для таких адресов зарезервирована сеть 127.0.0.0 класса А.

—————————————-

Адреса одноадресных, широковещательных и многоадресных рассылок

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

Одноадресная рассылка

Адрес одноадресной рассылки чаще всего встречается в сети IP. Пакет с одноадресным назначением предназначен конкретному узлу. Пример: узел с IP-адресом 192.168.1.5 (источник) запрашивает веб-страницу с сервера с IP-адресом 192.168.1.200 (адресат).

Для отправки и приема одноадресного пакета в заголовке IP-пакета должен указываться IP-адрес назначения. Кроме того, в заголовке кадра Ethernet должен быть MAC-адрес назначения. IP-адрес и MAC-адрес — это данные для доставки пакета одному узлу.

Одноадресная рассылка

Широковещательная рассылка

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

В сети класса C 192.168.1.0 с маской подсети по умолчанию 255.255.255.0 используется адрес широковещательной рассылки 192.168.1.255. Узловая часть – 255 или двоичное 11111111 (все единицы).

В сети класса B 172.16.0.0 с маской подсети по умолчанию 255.255.0.0 используется адрес широковещательной рассылки 172.16.255.255.

В сети класса A 10.0.0.0 с маской подсети по умолчанию 255.0.0.0 используется адрес широковещательной рассылки 10.255.255.255.

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

Широковещательная рассылка

Многоадресная рассылка

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

Устройства, относящиеся к многоадресной группе, получают ее IP-адрес. Диапазон таких адресов — от 224.0.0.0 до 239.255.255.255. Поскольку адреса многоадресных рассылок соответствуют группам адресов (которые иногда называются группами узлов), они используются только как адресаты пакета. У источника всегда одноадресный адрес.

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

Как и одноадресным или широковещательным адресам, IP-адресам многоадресной рассылки нужен соответствующий MAC-адрес, позволяющий доставлять кадры в локальной сети. MAC-адрес многоадресной рассылки — это особое значение, которое в шестнадцатеричном формате начинается с 01-00-5E. Нижние 23 бита IP-адреса многоадресной группы преобразуются в остальные 6 шестнадцатеричных символов адреса Ethernet. Пример (см. рисунок) — шестнадцатеричное значение 01-00-5E-0F-64-C5. Каждому шестнадцатеричному символу соответствует 4 двоичных бита.

Многоадресная рассылка

Сравнение протоколов IP версии 4 (IPv4) и IP версии 6 (IPv6)

Когда в 1980 году был утвержден стандарт TCP/IP, он основывался на схеме двухуровневой адресации, которая в то время давала необходимую масштабируемость. К сожалению, создатели TCP/IP не могли предположить, что их протокол станет основой для глобальной сети обмена информацией, сети развлечений и коммерции. Более двадцати лет назад в протоколе IP версии 4 (IPv4) была предложена стратегия адресации, которая, будучи вполне подходящей для того времени, привела к неэффективному распределению адресов.

Как показано на рис. ниже, адреса классов А и В покрывают 75% всего адресного пространства IPv4, но относительное число организаций, которые могли бы использовать сети этих классов, не превышает 17000. Сетей класса С значительно больше, чем сетей классов А и В, но количество доступных IP-адресов ограничивается всего 12,5% от их общего числа, равного 4 млрд.

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

Распределение адресов IPv4

Еще в 1992 году проблемная группа проектирования Internet (IETF) обнаружила две специфические проблемы:

  • остаток нераспределенных адресов сетей IPv4 близок к исчерпанию. В то время адреса класса В были практически израсходованы;
  • наблюдается быстрое и постоянное увеличение размеров таблиц маршрутизации сети Internet в связи с ее ростом. Появление новых подключенных к структуре Internet сетей класса С порождает поток информации, способный привести к тому, что маршрутизаторы сети Internet перестанут эффективно справляться со своими задачами.

За последние два десятилетия был разработан ряд технологий, расширяющих IPv4 и направленных для модернизации существующей 32-битовой схемы адресации. Две наиболее значительные из них — это маски подсетей и маршрутизация CIDR (Classless InterDomain Routing — бесклассовая междоменная маршрутизация).

Приблизительно в то же время была разработана и одобрена еще более расширяемая и масштабируемая версия технологии IP — IP версии 6 (IPv6). Протокол IPv6 использует для адресации 128 битов вместо 32-х битов в IPv4 (см. рис. ниже). В стандарте IPv6 используется шестнадцатеричная запись числа для представления 128-битовых адресов, и он позволяет использовать 16 млрд. IP-адресов. Эта версия протокола IP должна обеспечить необходимое количество адресов как на текущий момент, так и в будущем.

Для представления 128-битового адреса в протоколе IPv6 используется запись из восьми шестнадцатибитовых чисел, представляемых в виде четырех шестнадцатеричных цифр, как это показано на рис. ниже. Группы из четырех шестнадцатеричных цифр разделены двоеточиями, нули в старших позициях могут быть опущены.

Сравнение IPv4 и IPv6

Разработка и планирование технологии заняли годы, прежде чем протокол IPv6 постепенно начал использоваться в отдельных сетях. В перспективе стандарт IPv6 должен заменить IPv4 в качестве доминирующего протокола в сети Internet.

 

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

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

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