Каждое устройство, подключенное к сети — компьютер, планшет, камера и т. д. — нуждается в уникальном идентификаторе, чтобы другие устройства знали, как к нему обратиться. В мире TCP/IP сетей этим идентификатором является IP-адрес.
Вы, вероятно, сталкивались с IP-адресами — числовыми последовательностями, которые выглядят примерно как 192.168.0.1. Большую часть времени пользователям не приходится иметь дело с ними напрямую, поскольку устройства и сети работают с ними кулисами. Когда нам приходится иметь дело с ними, мы часто просто следуем инструкциям о том, какие цифры ставить и где. Но если Вы когда-нибудь хотели немного углубиться в смысл этих цифр, эта статья для Вас.
Понимание того, как работают IP-адреса, важно, если Вы когда-нибудь захотите выяснить, почему Ваша сеть работает неправильно или почему конкретное устройство не подключается так, как Вы этого ожидаете. И, если Вам когда-нибудь понадобится настроить что-то более продвинутое — например, хостинг игрового сервера или медиа-сервера, к которому могут подключиться друзья из Интернета, Вам нужно будет кое-что узнать об IP-адресации. Плюс, это довольно увлекательно.
Примечание: в этой статье мы расскажем об основах IP-адресации. Мы не собираемся рассказывать о более продвинутых или профессиональных вещах, таких как классы IP, бесклассовая маршрутизация и пользовательские подсети, но мы укажем некоторые источники для дальнейшего чтения.
Что такое IP-адрес
IP-адрес уникально идентифицирует устройство в сети. Вы видели эти адреса раньше, они выглядят как 192.168.1.34.
IP-адрес — это набор из четырех чисел. Каждое число может находиться в диапазоне от 0 до 255. Таким образом, полный диапазон IP-адресов варьируется от 0.0.0.0 до 255.255.255.255.
Причина, по которой каждое число может достигать только 255, состоит в том, что каждое из них на самом деле представляет собой восьмизначное двоичное число (иногда называемое октетом). В октете нулевое число будет 00000000, а 255 будет 11111111, максимальное число, которое может достигнуть октет. Тот IP-адрес, который мы упоминали ранее (192.168.1.34) в двоичном виде, будет выглядеть следующим образом: 11000000.10101000.00000001.00100010.
Компьютеры работают с двоичным форматом, но нам, людям, гораздо проще работать с десятичным форматом. Однако знание того, что адреса на самом деле являются двоичными числами, поможет нам понять, почему некоторые вещи, связанные с IP-адресами, работают так, а не иначе.
Две части IP-адреса
IP-адрес устройства фактически состоит из двух отдельных частей:
- Идентификатор сети: Идентификатор сети является частью IP-адреса, начинающегося слева, который идентифицирует конкретную сеть, в которой находится устройство. В типичной домашней сети, где устройство имеет IP-адрес 192.168.1.34, часть адреса 192.168.1 будет идентификатором сети. Пропущенную заключительную часть принято заполнять нулем, поэтому можно сказать, что сетевой идентификатор устройства — 192.168.1.0.
- Идентификатор хоста: Идентификатор хоста является частью IP-адреса, не занятого идентификатором сети. Он идентифицирует конкретное устройство (в мире TCP/IP мы называем устройства «хостами») в этой сети. Продолжая наш пример IP-адреса 192.168.1.34, идентификатор хоста будет 34 — уникальный идентификатор хоста в сети 192.168.1.0.
В Вашей домашней сети Вы можете увидеть несколько устройств с IP-адресами, такими как 192.168.1.1, 192.168.1.2, 192.168.1.30 и 192.168.1.34. Все это уникальные устройства (с идентификаторами хостов 1, 2, 30 и 34 в данном случае) в одной сети (с идентификатором сети 192.168.1.0).
Чтобы представить все это немного лучше, давайте обратимся к аналогии. Это очень похоже на то, как работают уличные адреса в городе. Возьмите адрес, например, ул. Гагарина 108. Название улицы похоже на идентификатор сети, а номер дома — на идентификатор хоста. В пределах города никакие две улицы не будут названы одинаково, точно так же, как никакие два идентификатора сети в одной и той же сети не будут названы одинаково. На определенной улице каждый номер дома уникален, точно так же как все идентификаторы хоста в пределах определенного идентификатора сети уникальны.
Маска подсети
Итак, как Ваше устройство определяет, какая часть IP-адреса является идентификатором сети, а какая — идентификатором хоста? Для этого они используют второй номер, который Вы всегда увидите в связи с IP-адресом. Этот номер называется маской подсети.
В большинстве простых сетей (например, в домах или на небольших предприятиях) Вы увидите маски подсетей, такие как 255.255.255.0, где все четыре числа — либо 255, либо 0. Положение изменений от 255 до 0 указывает на разделение между идентификатор сети и хоста. 255 «маскируют» идентификатор сети.
Примечание: Базовые маски подсетей, которые мы здесь описываем, известны как маски подсетей по умолчанию. Люди часто используют пользовательские маски подсетей (где позиция разрыва между нулями и единицами смещается в пределах октета) для создания нескольких подсетей в одной сети. Это немного выходит за рамки этой статьи, но если вам интересно, у Cisco есть довольно хорошее руководство по подсетям.
В дополнение к самому IP-адресу и соответствующей маске подсети Вы также увидите в списке адрес шлюза по умолчанию и информацию об IP-адресации. В зависимости от платформы, которую Вы используете, этот адрес может называться как-то иначе. Иногда его называют «маршрутизатор», «адрес маршрутизатора», «маршрут по умолчанию» или просто «шлюз». Это одно и то же. Это IP-адрес по умолчанию, на который устройство отправляет сетевые данные, когда эти данные предназначены для передачи в другую сеть (с другим идентификатором сети), чем та, на которой включено устройство.
Простейший пример этого можно найти в типичной домашней сети.
Если у Вас есть домашняя сеть с несколькими устройствами, скорее всего, у Вас есть маршрутизатор, который подключен к Интернету через модем. Этот маршрутизатор может быть отдельным устройством или частью комбинированного устройства модем/маршрутизатор, предоставленного Вашим интернет-провайдером. Маршрутизатор находится между компьютерами и устройствами в Вашей сети и общедоступными устройствами в Интернете, передавая (или маршрутизируя) трафик туда и обратно.
Допустим, Вы запустили свой браузер и отправились на guidepc.ru. Ваш компьютер отправляет запрос на IP-адрес нашего сайта. Поскольку наши серверы находятся в Интернете, а не в Вашей домашней сети, этот трафик отправляется с Вашего ПК на Ваш маршрутизатор (шлюз), и Ваш маршрутизатор направляет запрос на наш сервер. Сервер отправляет нужную информацию обратно на Ваш маршрутизатор, который затем направляет информацию обратно на устройство, которое ее запросило, и Вы видите наш сайт, открывшийся в Вашем браузере.
Как правило, маршрутизаторы по умолчанию настроены на использование своего частного IP-адреса (своего адреса в локальной сети) в качестве первого идентификатора хоста. Так, например, в домашней сети, которая использует 192.168.1.0 для идентификатора сети, адрес маршрутизатора обычно будет 192.168.1.1. Конечно, как и большинство вещей, Вы можете настроить его по-другому, если хотите.
DNS-серверы
Есть еще одна информация, которую Вы увидите назначенной вместе с IP-адресом устройства, маской подсети и адресом шлюза по умолчанию: адреса одного или двух серверов DNS по умолчанию. Мы, люди, работаем намного лучше с именами, чем с числовыми адресами. Ввести guidepc.ru в адресную строку Вашего браузера гораздо проще, чем запомнить и ввести IP-адрес нашего сайта.
DNS работает как телефонная книга, ищет удобочитаемые вещи, такие как имена веб-сайтов, и конвертирует их в IP-адреса. DNS делает это, сохраняя всю эту информацию в системе связанных DNS-серверов через Интернет. Вашим устройствам необходимо знать адреса DNS-серверов, на которые следует отправлять свои запросы.
В типичной небольшой или домашней сети IP-адреса DNS-сервера часто совпадают с адресами шлюза по умолчанию. Устройства отправляют свои DNS-запросы Вашему маршрутизатору, который затем перенаправляет запросы на DNS-серверы, на которые маршрутизатор настроен для использования. По умолчанию это обычно те DNS-серверы, которые предоставляет Ваш интернет-провайдер, но Вы можете изменить их на другие DNS-серверы, если хотите. Иногда Вы можете добиться большего успеха, используя DNS-серверы, предоставляемые третьими сторонами, такими как Google или OpenDNS.
В чем разница между IPv4 и IPv6
Вы также, возможно, заметили, просматривая настройки другой типа IP-адреса, называемого IPv6-адресом. Типы IP-адресов, о которых мы говорили до сих пор, — это адреса, используемые в IP версии 4 (IPv4) — протоколе, разработанном в конце 70-х годов. Они используют 32 двоичных разряда, о которых мы говорили (в четырех октетах), чтобы обеспечить в общей сложности 4,29 миллиарда возможных уникальных адресов. Хотя это звучит как много, все общедоступные адреса давно были зарезервированы для бизнеса. Многие из них не используются, но они зарезервированы и недоступны для общего пользования.
В середине 90-х, обеспокоенная потенциальной нехваткой IP-адресов, Инженерная рабочая группа по Интернету (IETF) разработала IPv6. IPv6 использует 128-битный адрес вместо 32-битного адреса IPv4, поэтому общее количество уникальных адресов измеряется в миллиардах — это число достаточно велико, и все адреса вряд ли когда-нибудь закончатся.
В отличие от десятичной записи, используемой в IPv4, адреса IPv6 выражаются в виде восьми числовых групп, разделенных двоеточиями. Каждая группа имеет четыре шестнадцатеричные цифры. Типичный адрес IPv6 может выглядеть примерно так:
Дело в том, что нехватка адресов IPv4, которая вызвала опасения, в конечном итоге была в значительной степени уменьшена за счет более широкого использования частных IP-адресов за маршрутизаторами. Все больше и больше людей создают свои собственные частные сети, используя те частные IP-адреса, которые не предоставляются публично.
Таким образом, даже несмотря на то, что переход на IPv6 по-прежнему будет происходить, он никогда не происходил так быстро, как прогнозировалось — по крайней мере, пока. Если Вы заинтересованы в получении дополнительной информации, ознакомьтесь с этой историей и временной шкалой IPv6.
Как устройство получает свой IP-адрес
Теперь, когда Вы знаете основы работы IP-адресов, давайте сначала поговорим о том, как устройства получают свои IP-адреса. На самом деле существует два типа назначений IP: динамический и статический.
Динамический IP-адрес назначается автоматически при подключении устройства к сети. Для этого в подавляющем большинстве современных сетей (включая Вашу домашнюю сеть) используется протокол динамической конфигурации хоста (DHCP). DHCP встроен в Ваш роутер. Когда устройство подключается к сети, оно отправляет широковещательное сообщение с запросом IP-адреса. DHCP перехватывает это сообщение, а затем назначает IP-адрес этому устройству из пула доступных IP-адресов.
Для этой цели существуют определенные диапазоны частных IP-адресов. То, что используется, зависит от того, кто сделал Ваш роутер, или как Вы настроили его самостоятельно.
Дело в том, что динамические адреса иногда меняются. DHCP-серверы сдают в аренду IP-адреса устройствам, и когда срок аренды истекает, устройства должны возобновлять аренду. Иногда устройства получают другой IP-адрес из пула адресов, которые может назначить сервер.
В большинстве случаев это не имеет большого значения, и все будет «просто работать». Однако иногда Вам может потребоваться присвоить устройству IP-адрес, который не изменяется. Например, возможно, у Вас есть устройство, к которому Вам нужно получить доступ вручную, и Вам легче запомнить IP-адрес, чем имя. Или, может быть, у Вас есть определенные приложения, которые могут подключаться только к сетевым устройствам, используя их IP-адрес.
В этих случаях Вы можете назначить статический IP-адрес этим устройствам. Есть несколько способов сделать это. Вы можете вручную настроить устройство со статическим IP-адресом, хотя иногда это может быть затруднительным. Другое, более элегантное решение — настроить маршрутизатор для назначения статических IP-адресов определенным устройствам во время динамического назначением DHCP-сервером. Таким образом, IP-адрес никогда не меняется, но Вы не прерываете процесс DHCP, который обеспечивает бесперебойную работу.