IP-адресация
Адресация является важнейшей функцией протоколов сетевого уровня. Адресация обеспечивает обмен данными между узлами — независимо от того, находятся ли они в одной сети или в разных сетях. Протоколы IPv4 иIPv6 осуществляют иерархическую адресацию пакетов данных.
Проектирование, внедрение и управление эффективным планом IP-адресации обеспечивают надежность и эффективность работы сетей.
В этой главе подробно рассматриваются структура адресов и их применение в создании и тестировании IP-сетей и подсетей.
IPv4-адреса
Двоичная система счисления состоит из цифр 0 и 1, называемых битами. Десятичная система счисления состоит из 10 цифр: от 0 до 9.
Понимание двоичной системы важно для нас, поскольку узлы, серверы и сетевые устройства используют именно двоичную адресацию. В частности, для идентификации друг друга они используют двоичные IPv4-адреса (как показано на рис. 1).
Каждый адрес представляет собой строку из 32 бит, разделенную на 4 части, называемые октетами. Каждый октет содержит 8 бит (или 1 байт), разделенные точкой. Например, узлу PC1 на рисунке назначен IPv4-адрес 11000000.10101000.00001010.00001010. Адресом его шлюза по умолчанию будет соответствующий адрес интерфейса Gigabit Ethernet interface маршрутизатора R1: 11000000.10101000.00001010.00000001.
Работа с двоичными числами — не такая легкая задача. Для простоты использования IPv4-адреса обычно выражаются в десятичном формате с точкой-разделителем, как показано на рис. 2. Узлу PC1 назначен IPv4-адрес 192.168.10.10; адрес шлюза по умолчанию — 192.168.10.1.
На рис. 3 сопоставляется адрес в десятичном формате с точкой-разделителем и 32-битный двоичный адрес узла PC1.
Для четкого понимания адресации сети необходимо знать принципы двоичной адресации и получить практические навыки преобразования IPv4-адресов из двоичной системы счисления в десятичную с точкой разделителем.
В этом разделе вы узнаете, как переводить числа из двоичной в десятичную систему счисления.
Позиционная система счисления
Чтобы переводить числа из двоичной в десятичную систему счисления, нужно понимать позиционную систему счисления. Принцип позиционной системы счисления заключается в том, что значение цифры определяется ее «позицией» в последовательности цифр. Вам уже знакома наиболее распространенная система счисления — десятичная (с основанием 10).
На рис. 1 показана суть десятичной системы счисления с точкой-разделителем. Чтобы получить описание каждой строки, нажмите на ее заголовок. Чтобы воспользоваться позиционной системой, сопоставьте заданное число с его позиционным значением. В примере на рис. 2 показана позиционная запись десятичного числа 1234.
Позиционная запись двоичных чисел показана на рис. 3. Чтобы получить описание каждой строки, нажмите на ее заголовок.
В примере на рис. 4 показано соответствие двоичного числа 11000000 десятичному числу 192. Если бы двоичное число составляло 10101000, то ему бы соответствовало десятичное число 168.
Преобразование двоичных чисел в десятичный формат
Для преобразования двоичного IPv4-адреса в десятичный эквивалент с точкой-разделителем разделите IPv4-адрес на четыре 8-битных октета. Затем занесите двоичное позиционное значение в качестве двоичного числа первого октета и выполните соответствующее вычисление.
Например, предположим, что IPv4-адрес узла — 11000000.10101000.00001011.00001010. Для преобразования двоичного адреса в десятичный формат, начните с первого октета, как показано на рис. 1. Введите 8-битное двоичное число в качестве позиционного значения строки 1, а затем выполните вычисление, результатом которого будет десятичное число 192. Это число составит первый октет десятичной записи с точкой-разделителем.
Затем преобразуйте второй октет, как показано на рис. 2. Итоговое десятичное значение — 168; это будет второй октет.
Преобразуйте третий октет, как показано на рис. 4, и последний четвертый октет IP-адреса, как показано на рис. 5. Результат: 192.168.11.10.
Преобразование десятичных чисел в двоичный формат
Необходимо также понимать, как преобразовывать IPv4-адреса в десятичном формате с точкой-разделителем в двоичный формат. Полезным инструментом является таблица двоичных позиционных значений. Ниже показано, как использовать таблицу для преобразования десятичных чисел в двоичный формат:
На рис. 1 задается вопрос: больше ли или равно десятичное число в октете (n) самому старшему биту (128). Если нет, введите двоичный 0 в качестве позиционного значения числа 128. Если да, введите двоичную 1 в качестве позиционного значения числа 128 и вычтите 128 из десятичного числа.
На рис. 2 задается вопрос: больше ли или равен остаток (n) следующему по старшинству биту (64). Если нет, введите двоичный 0 в качестве позиционного значения числа 64; в противном случае введите двоичную 1 и вычтите 64 из десятичного числа.
На рис. 3 задается вопрос: больше ли или равен остаток (n) следующему по старшинству биту (32). Если нет, введите двоичный 0 в качестве позиционного значения числа 32; в противном случае введите двоичную 1 и вычтите 32 из десятичного числа.
И так далее продолжается вычисление десятичных значений до ввода всех позиционных значений для получения эквивалента в двоичном формате(рис.4).
Сетевая и узловая части
Понимание двоичной системы счисления необходимо, чтобы установить, находятся ли два узла в одной и той же сети. Как вы помните, IPv4-адрес является иерархическим адресом, который состоит из двух частей: сетевой и узловой. Определяя ту или иную часть, необходимо обращать внимание не на десятичное значение, а на 32-битный поток. Как показано на рисунке, в 32-битном потоке одна часть битов определяет сеть, а другая — узел.
Биты в сетевой части адреса должны быть одинаковыми у всех устройств, находящихся в одной сети. Биты в узловой части адреса должны быть уникальными для каждого узла в сети. Если два узла имеют одну битовую комбинацию в определенной сетевой части 32-битного потока, то эти два узла находятся в одной и той же сети.
Но как узлы определяют, какая из частей 32-битного потока является сетевой, а какая — узловой? Для этого используется маска подсети.
Маска подсети
Как показано на рис. 1, в ходе настройки IPv4-конфигурации узла необходимо задать три IPv4-адреса в десятичном формате с точкой-разделителем.
IPv4-адрес — уникальный IPv4-адрес узла.
Маска подсети используется для определения сетевой и узловой частей IPv4-адреса.
Шлюз по умолчанию — локальный шлюз (т.е. IPv4-адрес интерфейса локального маршрутизатора), используемый для обращения к удаленным сетям.
При назначении устройству IPv4-адреса для определения адреса сети, к которому относится данное устройство, используется маска подсети. Сетевой адрес представляет все устройства в одной сети.
На рис. 2 показан адрес в десятичном формате с точкой-разделителем и 32-битная маска подсети. Обратите внимание, что маска подсети — это, по сути, последовательность битов 1, за которой следует последовательность битов 0.
Для идентификации сетевой и узловой части IPv4-адреса маска подсети побитово сравнивается с IPv4-адресом слева направо, как показано на рис. 3. Единицы в маске подсети определяют сетевую часть, а нули — узловую часть. Обратите внимание, что маска подсети на самом деле не содержит сетевой или узловой части IPv4-адреса; она лишь указывает компьютеру, где искать эти части в конкретном IPv4-адресе.
Сам процесс, используемый для определения сетевой и узловой частей адреса, называется логической операцией И (AND).
Логическая операция И
Логическая операция И — одна из трех основных двоичных операций, используемых в дискретной логике. Двумя другими операциями являются ИЛИ (OR) и НЕ (NOT). При том, что все три операции используются в сетях передачи данных, для определения сетевого адреса применяется только операция И. Поэтому в этом разделе мы будем говорить только об операции И.
Логическое И — это сравнение двух битов, результаты которого показаны на рис. 1. Обратите внимание, что 1 И 1 = 1.
Чтобы определить сетевой адрес IPv4-узла, к IPv4-адресу и маске подсети побитово применяется логическая операция И. Применение логической операции И к адресу и маске подсети в результате дает сетевой адрес.
Для демонстрации использования операции И для определения сетевого адреса рассмотрим узел с IPv4-адресом 192.168.10.10 и маской подсети 255.255.255.0. На рис. 2 показан IPv4-адрес узла и его двоичный эквивалент. Двоичный адрес маски подсети узла показан на рис. 3.
Фрагменты, выделенные желтым на рис. 4, определяют биты И, дающие двоичную единицу в строке результатов операции И. Остальные сравнения битов дали двоичные нули. Обратите внимание, что в последнем октете больше нет битов с двоичной 1.
Наконец, на рис. 5 показан полученный сетевой адрес: 192.168.10.0 255.255.255.0. Таким образом, узел 192.168.10.10 находится в сети 192.168.10.0 255.255.255.0.
Длина префикса
Представление сетевых адресов и адресов узлов путем в виде маски подсети в десятичном формате с точкой-разделителем может быть очень громоздким. К счастью, существует альтернативный, более простой, способ определения маски подсети, называемый длиной префикса.
Длина префикса означает количество бит, установленных на единицу (1) в маске подсети. Она обозначается наклонной чертой вправо («/»), после которой идет набор единиц. Следовательно, нужно подсчитать число битов в маске подсети и поставить перед этим значением косую черту.
Например, см. таблицу на рисунке. В первом столбце перечислены различные маски подсети, которые могут использоваться с адресом узла. Во втором столбце указан полученный 32-битный двоичный адрес. В последнем столбце указана полученная длина префикса.
Об использовании различных типов длины префикса вы узнаете позже. Сейчас же мы будем говорить о маске подсети /24 (т.е. 255.255.255.0).
Сетевой адрес, адрес узла и широковещательный адрес
Каждый сетевой адрес содержит (или определяет) адреса узлов и широковещательный адрес, как описано на рис. 1.
На рис. 2 перечислены и описаны конкретные адреса в сети 192.168.10.0 /24.
Другие примеры приведены на рис. 3–7. На этих рисунках обратите внимание, что сетевая часть адреса остается неизменной, а меняется только узловая часть.
На рис. 3 показан сетевой адрес 10.1.1.0 /24. Биты узла — все нули.
На рис. 4 показан IPv4-адрес узла 10.1.1.10. Биты узла представляют собой сочетание нулей и единиц.
На рис. 5 показан IPv4-адрес первого узла 10.1.1.1. Биты узла — все нули и одна единица. Обратите внимание, что он назначен интерфейсу маршрутизатора и поэтому станет шлюзом по умолчанию для всех узлов в этой сети.
На рис. 6 показан IPv4-адрес последнего узла 10.1.1.254. Биты узла — все единицы и один ноль.
На рис. 7 показан широковещательный адрес 10.1.1.255. Биты узла — все единицы.
Понятия, обсуждаемые в рамках этой темы, формируют основу для понимания IPv4-адресации. Вы должны четко понимать, как в сетевом адресе определены сетевая и узловая части с помощью маски подсети или длины префикса и логической операции И. Также обратите внимание на различные типы сетевых адресов в сети.
Присвоение узлу статического IPv4-адреса
Устройствам могут назначаться как статические, так и динамические IP-адреса.
Некоторые устройства в пределах сети требуют назначения фиксированного IP-адреса. Например, принтерам, серверам и сетевым устройствам нужен постоянный IP-адрес. По этой причине указанным устройствам, как правило, назначаются статические IP-адреса.
Узлу также можно назначить статический IPv4-адрес, как показано на рисунке Назначение узлам статических адресов приемлемо в небольших сетях. В крупной же сети назначение статического адреса каждому узлу займет очень много времени. При этом очень важно вести точный учет назначенных статических IP-адресов.
Присвоение узлу динамического IPv4-адреса
В большинстве сетей передачи данных наибольшая по численности группа узлов — это компьютеры, планшеты, смартфоны, принтеры и IP-телефоны. Кроме того, нередки случаи, когда количество пользователей и их устройств часто меняются. Назначение статического IPv4-адреса каждому устройству непрактично. Поэтому IPv4-адреса назначаются устройствам динамически, с помощью протокола динамической настройки узла (Dynamic Host Configuration, DHCP).
Как показано на рисунке, узел может получать IPv4-адрес автоматически. Узел — это DHCP-клиент, и он запрашивает IPv4-адрес у DHCP-сервера. DHCP-сервер предоставляет IPv4-адрес, маску подсети, шлюз по умолчанию и другие параметры конфигурации.
DHCP — это наиболее распространенный способ присвоения IPv4-адресов узлам в крупных сетях. Другое преимущества DHCP состоит в том, что адреса присваиваются узлам временно, как бы «сдается в аренду» на определенный период. Если узел выключается или уходит из сети, его адрес возвращается в пул для повторного использования. Это особенно полезно для мобильных пользователей, которые используют сеть не постоянно.
Передача данных в IPv4-сети
Узел, успешно подключенный к сети, может обмениваться данными с другими устройствами одним из трех способов.
Одноадресная рассылка — процесс отправки пакета с одного узла на другой конкретный узел.
Широковещательная рассылка — процесс отправки пакета с одного узла на все узлы в сети.
Многоадресная рассылка — процесс отправки пакета с одного узла выбранной группе узлов, возможно, в различных сетях,.
Эти три типа связи используются в сетях передачи данных для различных целей. Во всех трех типах IPv4-адрес узла источника размещен в заголовке пакета в качестве адреса источника.
Одноадресная рассылка
Одноадресная рассылка используется для обычного обмена данными между узлами как в сети типа «клиент/сервер», так и в одноранговой сети. Для одноадресной рассылки пакетов в качестве адреса назначения используются адреса устройства назначения. Пакеты могут быть направлены через объединенную сеть.