как определить класс ip адреса
Всё об IP адресах и о том, как с ними работать
Доброго времени суток, уважаемые читатели Хабра!
Не так давно я написал свою первую статью на Хабр. В моей статье была одна неприятная шероховатость, которую моментально обнаружили, понимающие в сетевом администрировании, пользователи. Шероховатость заключается в том, что я указал неверные 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, становиться ясно почему сеть, представленная в лабе, не будет работать без проблем. Этого стоит избежать, поэтому исправьте ошибки исходя из информации в этой статье.
Сетевые технологии: IP-адреса, подсети и бесклассовая адресация CIDR
Понимание сетевых технологий крайне необходимо для настройки сложных сред, эффективного обмена информацией между серверами, управления нодами, а также при разработке безопасных сетевых политик.
Данная статья ознакомит вас с методами проектирования сетей и взаимодействия с компьютерами, которые подключены к сети. В частности здесь рассматриваются сетевые классы, подсети и CIDR-нотация для группирования IP-адресов.
Что такое IP-адрес?
Каждое устройство или место в сети должно иметь свой адрес – некоторое обозначение в рамках предопределенной системы адресов, по которому к этому устройству/месту можно получить доступ. В стандартной модели TCP/IP адресация обрабатывается на нескольких сетевых уровнях. Обычно в контексте сетевых технологий под сетевым адресом подразумевают IP-адрес.
IP-адреса позволяют получать сетевые ресурсы через сетевой интерфейс. Если один компьютер хочет установить связь с другим компьютером, он может передать информацию на IP-адрес удаленного компьютера. Если два компьютера находятся в одной сети и если компьютеры и устройства между ними могут преобразовывать сетевые запросы, компьютеры должны иметь возможность установить соединение и отправлять информацию.
Каждый IP-адрес должен быть уникальным в рамках своей сети. Сети можно изолировать, а можно соединить их между собой и преобразовать, чтобы обеспечить доступ к различным сетям. Преобразование сетевых адресов – это система, которая позволяет переписывать адреса пакетов, достигнувших границы сети, и передать их в указанное место назначения. Таким образом, один IP-адрес можно использовать в нескольких изолированных средах.
Разница между IPv4 и IPv6
Сегодня существует две версии протокола IP, которые широко применяются в системах. IPv4, четвёртая версия протокола, поддерживается большинством систем. Более новая версия, IPv6, набирает популярность благодаря улучшениям возможностей протокола и из-за нехватки доступных адресов IPv4 (проще говоря, сегодня в мире столько подключенных к сети устройств, что адресов IPv4 не хватает на всех).
Адреса IPv4 – 32-битные. Каждый байт, или 8-битовый сегмент адреса отделяется точкой и выражается числом в диапазоне 0-255. Несмотря на то, что эти числа обычно выражаются десятичным числом (чтобы упростить их восприятие), каждый сегмент называют октетом, чтобы выразить тот факт, что он представляет собой 8 бит.
Типичный адрес IPv4 выглядит примерно так:
Самым низким значением в октете является 0, а самым высоким – 255.
Также можно выразить этот адрес в двоичном коде, чтобы лучше понять строение адреса (в примере каждые 4 бита для удобочитаемости заменены пробелом, а точки пунктиром):
Оба приведённые выше формата выражают один и тот же адрес.
Несмотря на некоторые отличия в функциональности IPv4 и IPv6, наиболее заметным их отличием является адресное пространство. IPv6 выражает адреса как 128-битное число. Это означает, что IPv6 имеет в 7,9×1028 раз больше адресов, чем IPv4.
Чтобы выразить этот расширенный диапазон адресов, IPv6 обычно записывается как восемь сегментов из четырех шестнадцатеричных чисел. Шестнадцатеричные числа выражаются числами от 0 до 15, а также числами a-f (для более высоких значений). Типичный адрес IPv6 может выглядеть примерно так:
Этот адрес можно записать в компактном формате. Правила IPv6 позволяют удалять любые ведущие нули из каждого октета и заменять диапазоны обнуленных групп двойным двоеточием (: :).
К примеру, если в IPv6 есть такая группа:
Вы можете ввести просто:
Диапазон IPv6 с несколькими группами нулей:
можно сократить до:
Сокращение можно применять только один раз для каждого адреса, иначе полный адрес будет невозможно восстановить.
Сегодня всё чаще используется IPv6, но в остальных примерах статьи будут использоваться адреса IPv4, потому что с меньшим адресным пространством проще работать.
Классы и зарезервированные диапазоны IPv4
Обычно IP-адреса состоят из двух компонентов. Первая часть адреса определяет сеть, частью которой является адрес. Вторая часть используется для указания хоста в этой сети.
Граница между первым и вторым компонентом адреса определяется настройками сети.
Адреса IPv4 делятся на пять классов, предназначенных для дифференциации сегментов доступного адресного пространства IPv4. Они определяются первыми четырьмя битами каждого адреса. Вы можете определить, к какому классу принадлежит IP-адрес, просмотрев эти биты.
Адреса класса D зарезервированы для многоадресных протоколов, которые позволяют отправлять пакет группе нод в одной транзакции. Адреса класса E зарезервированы для будущих или экспериментальных целей и в основном не используются.
Классы А-С по-разному разделяют компонент сети и компонент хоста.
Адреса класса A использовали оставшуюся часть первого октета для представления сети, а остальная часть адреса использовалась для определения хостов. Такой адрес было удобно использовать для определения нескольких сетей с большим количеством хостов.
Адреса класса B использовали первые два октета (остаток от первого и весь второй) для определения сети, а остальные – для определения хостов в каждой сети. Адреса класса C использовали первые три октета для определения сети, а последний октет – для определения хостов в этой сети.
Изначально разделение IP-пространства на классы применялось как решение проблемы быстрого исчерпания адресов IPv4 (вы можете иметь несколько компьютеров с одним и тем же хостом, если они находятся в разных сетях). Сегодня существуют более современные решения.
Зарезервированные частные диапазоны
Некоторые части пространства IPv4 зарезервированы для конкретных целей.
Один из самых полезных зарезервированных диапазонов – это диапазон кольцевой проверки, определяемый адресами от 127.0.0.0 до 127.255.255.255. Этот диапазон используется каждым хостом для тестирования сети. Обычно он выражается первым адресом в этом диапазоне: 127.0.0.1.
Каждый обычный класс также имеет диапазон, который используется для обозначения адресов частной сети. Например, для класса A это адреса от 10.0.0.0 до 10.255.255.255. Для класса B этот диапазон составляет 172.16.0.0 – 172.31.255.255. Для класса C это диапазон от 192.168.0.0 до 192.168.255.255.
Любой компьютер, не подключенный к Интернету напрямую (т. е. компьютер, который проходит через маршрутизатор или другую систему NAT), может использовать эти адреса по своему усмотрению.
Больше о зарезервированных адресах можно узнать в Википедии.
Сетевые маски и подсети
Подсети – это сети, которые получаются в результате процесса деления сети на более мелкие сетевые разделы. Подсети используются для различных целей и помогают изолировать группы хостов и управлять ними.
Как говорилось выше, каждое адресное пространство делится на сетевую часть и часть хоста. Часть адреса, которую каждый из них занимает, зависит от класса, которому принадлежит адрес.
Например, для адресов класса C первые 3 октета используются для описания сети: в адресе 192.168.0.15 часть 192.168.0 описывает сеть, а 15 – хост.
По умолчанию каждая сеть имеет только одну подсеть, которая содержит все адреса нод.
Сетевая маска – это спецификация количества адресных битов, которые используются для части сети. Маска подсети – это еще одна сетевая маска, используемая для дальнейшего разделения сети.
Каждый бит адреса, который считается значимым для описания сети, должен быть представлен в сетевой маске как 1.
Например, адрес 192.168.0.15 можно выразить в бинарном коде:
Идентификатор сети в адресах класса C – это первые 3 октета, или первые 24 бита. Поскольку эти биты важны и их нужно сохранить, сетевая маска будет выглядеть следующим образом:
В обычном формате IPv4 это будет выглядеть так:
Каждый бит, отмеченный в бинарном представлении сетевой маски нулём, считается идентификатором хоста и может изменяться. Биты, отмеченные единицей, постоянны (хотя в сети или подсети это не всегда так).
Определить сетевую часть адреса можно с помощью поразрядной операции AND между адресом и сетевой маской. Поразрядная операция AND сохраняет сетевую часть адреса и отбрасывает часть хоста. В результате рассматриваемый нами адрес будет выглядеть так:
Его можно выразить как 192.168.0.0. Спецификация хоста является отличием между этим исходным значением и частью хоста. В данном случае это «0000 1111» или 15.
Подсети берут часть пространства хоста адреса и использует его как дополнительную сетевую спецификацию для дальнейшего разделения адресного пространства.
Например, сетевая маска 255.255.255.0 оставляет 254 хоста в сети (0 и 255 использовать нельзя – они зарезервированы). Чтобы разделить это пространство на две подсети, можно использовать один бит части хоста адреса в качестве маски подсети.
Продолжим работать с предыдущим примером. Часть сети:
Первый бит хоста можно использовать для обозначения подсети. Для этого нужно настроить маску подсети, вместо:
В традиционной нотации IPv4 это будет выглядеть так:
Теперь первый бит последнего октета отмечен как важный для адресации в сети. Это создает две подсети. Первая подсеть будет в диапазоне от 192.168.0.1 до 192.168.0.127. Вторая подсеть содержит хосты 192.168.0.129 до 192.168.0.255. Традиционно сама подсеть не должна использоваться в качестве адреса.
Бесклассовая адресация CIDR
Система CIDR (Classless Inter-Domain Routing) была разработана в качестве альтернативы традиционным подсетям. С помощью CIDR вы можете добавить спецификацию самого IP-адреса в число значимых битов, составляющих часть маршрутизации или сети.
Например, выразить связь IP-адреса 192.168.0.15 с сетевой маской 255.255.255.0 можно с помощью CIDR-нотации 192.168.0.15/24. Это означает, что первые 24 бита указанного IP-адреса считаются значимыми для сетевой маршрутизации.
CIDR можно использовать для обозначения «суперсетей». В этом случае имеется в виду более широкий диапазон адресов, что невозможно при использовании традиционной маски подсети. Например, в сети класса C (в предыдущем примере) объединять адреса из сетей 192.168.0.0 и 192.168.1.0 нельзя, потому что сетевая маска для адресов класса C – 255.255.255.0.
CIDR-нотация позволяет объединить эти блоки, определив этот блок как 192.168.0.0/23. Это значит, что 23 бита используются для части сети.
Таким образом, первая сеть (192.168.0.0) может быть представлена в двоичном коде так:
А вторая сеть (192.168.1.0) – так:
CIDR-адрес значит, что 23 бита используются в адресной части сети. Это эквивалентно сетевой маске 255.255.254.0, или:
Как видите, в этом блоке 24-й бит может быть 0 или 1, и такой адрес все равно подойдёт, так как ля сетевой части важны только первые 23 бита.
В целом, CIDR позволяет контролировать адресацию непрерывных блоков IP-адресов. Это намного удобнее, чем подсеть.
Заключение
Теперь вы знакомы с некоторыми механизмами адресации и основами протокола IP. Понимание сетевых технологий поможет правильно настроить программное обеспечение и его компоненты.
Существует много полезных онлайн-инструментов, которыми вы можете пользоваться при работе с сетями:
Классы IP-адресов
В этом руководстве объясняются классы IP-адресов или классовые сети, их классификация и их использование.
IP-адрес — это 32-битное уникальное двоичное число, используемое для идентификации сетей и устройств или хостов, результат преобразования двоичного числа в десятичное — это то, что мы называем IP-адресом.
В десятичном формате этот адрес состоит из 4 чисел от 0 до 255, разделенных точкой. Например: 240.34.87.22 — это IP-адрес (в двоичном формате: 11110000.00100010.01010111.00010110 ).
Каждое из этих чисел, разделенных точками, называется октетом. В предыдущем примере 240 — октет, 34 — другой октет, 87 — третий октет и 22 — четвертый октет. Каждый октет состоит из 8 бит. Некоторые биты используются для идентификации сети, а остальные используются для идентификации хостов в сети.
Раньше IP-адреса классифицировались по классам, которые использовались для определения битов октетов, октетов, принадлежащих сети, и октетов, принадлежащих хостам.
Существует 5 классов IP-адресов, каждый из которых определяется буквой: A, B, C, D и E и классифицируется в зависимости от диапазона первого октета.
Например, класс A включает все IP-адреса от 0.0.0.0 до 127.255.255.255, поэтому IP-адрес, первый октет которого находится между 0 и 127, является IP-адресом класса A.
В таблице ниже показаны диапазоны классов IP.
КЛАСС IP-АДРЕСА | НАЧАЛО ДИАПАЗОНА IP | КОНЕЦ ДИАПАЗОНА IP |
А | 0.0.0.0 | 127.255.255.255 |
B | 128.0.0.0 | 191.255.255.255 |
C | 192.0.0.0 | 223.255.255.255 |
D | 224.0.0.0 | 239.255.255.255 |
E | 240.0.0.0 | 255.255.255.255 |
Таким образом, например, IP-адрес 122.34.56.22 является IP-адресом класса A, потому что первый октет (122) находится между 0 и 127. IP 150.45.22.5 является IP-адресом класса B, потому что первый октет находится между 128 и 191. 192.168.0.1 — это IP-адрес класса C, 226.33.44.22 принадлежит классу D, а 245.65.22.15 — IP-адрес класса E.
Обычно реализуются только классы A, B и C, в то время как класс D предназначен для многоадресной рассылки, а класс E предназначен для экспериментального использования.
Примечание. Важно уточнить, что IP-адреса, начинающиеся со 127, считаются петлевыми.
IP-адреса класса A
В IP-адресах, принадлежащих к классу A, первый октет идентифицирует сеть, а остальные 3 октета идентифицируют хосты. Как было сказано ранее, этот класс IP-адресов состоит из первого октета от 0 до 127. В двоичном формате первый бит IP-адреса класса A должен быть равен 0. Класс A был реализован для больших сетей, поддерживая 16 миллионов хостов на каждом из 127 сетей. В следующей таблице показан IP-адрес класса A, включая двоичный формат. Первый октет, отмеченный синим цветом, идентифицирует сеть, а остальные используются для идентификации хоста.
122 | 34 | 56 | 22 |
01111010 | 00100010 | 00111000 | 00010110 |
NETWORK | HOST | HOST | HOST |
---|
IP-адреса класса B
IP-адреса класса B используют два первых октета для идентификации сети и последние два октета для идентификации хостов. Как было сказано ранее, IP-адреса класса B состоят из первого октета между 128.0.0.0 и 191.255.255.255. В двоичном формате IP-адреса класса B первый бит должен иметь значение 1, а второй — 0, как показано в следующей таблице. Класс B использовался для сетей среднего размера, поддерживая 65 000 хостов в каждой из 16 000 сетей.
150 | 45 | 22 | 5 |
10010110 | 00101101 | 00010110 | 00000101 |
NETWORK | NETWORK | HOST | HOST |
---|
IP-адреса класса C
IP-адреса класса C используют первые 3 октета для идентификации сети, а последний — для идентификации хостов. Как было сказано ранее, IP-адреса класса C состоят из первого октета между 192 и 223. В двоичном формате адреса класса C имеют первые два бита 1, а третий бит равен 0, как показано на рисунке ниже. Этот класс поддерживает до 254 хостов в каждой из 2 миллионов сетей.
192 | 168 | 1 | 54 |
11000000 | 01000100 | 00000001 | 00110110 |
NETWORK | NETWORK | NETWORK | HOST |
---|
IP-адреса класса D
В отличие от предыдущих классов, класс D используется не для идентификации хостов, а для идентификации групп хостов или групп многоадресной рассылки. Как объяснялось ранее, IP-адреса класса D состоят из первого октета между 224 и 239. В двоичном формате IP-адреса класса D имеют первые 3 бита 1 и четвертый бит 0.
IP-адреса класса E
IP-адреса класса E используются в экспериментальных или исследовательских целях. Этот класс IP-адресов включает первый диапазон октетов от 240 до 255. В двоичном формате первые 4 бита IP-адреса E-класса равны 1.
Заключение
Прежде всего, важно разъяснить читателям, что классификация классов IP-адресов устарела. Тем не менее, студенты, изучающие информатику, должны понимать этот старый стандарт сетевых технологий, который может сбивать с толку, но, как видите, очень прост. Еще одно важное уточнение: классы IP-адресов применялись только к протоколу IPv4 без включения протокола IPv6.
В 1993 году метод классов IP-адресов был заменен бесклассовой междоменной маршрутизацией (CIDR), что позволило более эффективно использовать IPv4-адреса. Вместо использования октетов для классификации IP-адресов CIDR использует метод VLSM (маска подсети переменной длины), определяя сетевые биты с префиксом в конце IP-адреса.
Например, IP-адрес класса B может быть выражен как 192.168.0.3/16, где / 16 определяет количество битов, принадлежащих сети (первые два октета), а остальные биты принадлежат хостам. Адрес класса AC может быть выражен как 220.43.56.7/24, где 24 определяет количество битов для идентификации сетей (поскольку каждый октет имеет размер восемь бит, три первых октета составляют 24 бита).