Адрес интернет-протокола ( IP-адрес ) — это числовая метка, например 192.0.2.1 , которая назначается устройству, подключенному к компьютерной сети , использующей интернет-протокол для связи. [1] [2] IP-адреса выполняют две основные функции: идентификацию сетевого интерфейса и адресацию местоположения .
Интернет-протокол версии 4 (IPv4) был первой автономной спецификацией для IP-адреса и используется с 1983 года. [2] Адреса IPv4 определяются как 32-битное число, которое стало слишком маленьким, чтобы обеспечить достаточное количество адресов по мере роста Интернета, что привело к исчерпанию адресов IPv4 в 2010-х годах. Его назначенный преемник, IPv6 , использует 128 бит для IP-адреса, что дает ему большее адресное пространство . [3] [4] [5] Хотя развертывание IPv6 продолжается с середины 2000-х годов, как IPv4, так и IPv6 по-прежнему используются бок о бок по состоянию на 2024 год.
Адреса IPv4 обычно отображаются в удобной для восприятия человеком форме, но системы могут использовать их в различных форматах компьютерных чисел . Нотация CIDR также может использоваться для обозначения того, какая часть адреса должна рассматриваться как префикс маршрутизации. Например, 192.0.2.1 / 24 указывает, что 24 значимых бита адреса являются префиксом, а оставшиеся 8 бит используются для адресации хоста. Это эквивалентно исторически используемой маске подсети (в данном случае 255.255.255.0 ).
Пространство IP-адресов управляется глобально Управлением по распределению номеров Интернета (IANA) и пятью региональными интернет-регистраторами (RIR). IANA назначает блоки IP-адресов RIR, которые отвечают за их распространение среди локальных интернет-регистраторов в своем регионе, таких как поставщики интернет-услуг (ISP) и крупные учреждения. Некоторые адреса зарезервированы для частных сетей и не являются глобально уникальными.
В сети администратор сети назначает IP-адрес каждому устройству. Такие назначения могут быть на статической (фиксированной или постоянной) или динамической основе, в зависимости от сетевой практики и функций программного обеспечения. Некоторые юрисдикции считают IP-адреса персональными данными .
IP-адрес выполняет две основные функции: он идентифицирует хост или, точнее, его сетевой интерфейс , и он обеспечивает местоположение хоста в сети, и, таким образом, возможность установления пути к этому хосту. Его роль была охарактеризована следующим образом: «Имя указывает на то, что мы ищем. Адрес указывает, где это находится. Маршрут указывает, как туда попасть». [2] Заголовок каждого IP - пакета содержит IP-адрес отправляющего хоста и IP-адрес хоста назначения.
Сегодня в Интернете широко используются две версии Интернет-протокола . Первоначальная версия Интернет-протокола, впервые развернутая в 1983 году в ARPANET , предшественнике Интернета, — это Интернет-протокол версии 4 (IPv4).
К началу 1990-х годов быстрое исчерпание адресного пространства IPv4, доступного для назначения поставщикам интернет-услуг и организациям конечных пользователей, побудило Internet Engineering Task Force (IETF) исследовать новые технологии для расширения возможностей адресации в Интернете. Результатом стала переработка интернет-протокола, который в конечном итоге стал известен как интернет-протокол версии 6 (IPv6) в 1995 году. [3] [4] [5] Технология IPv6 находилась на различных стадиях тестирования до середины 2000-х годов, когда началось коммерческое развертывание производства.
Сегодня эти две версии интернет-протокола используются одновременно. Помимо прочих технических изменений, каждая версия определяет формат адресов по-разному. Из-за исторической распространенности IPv4 общий термин IP-адрес обычно по-прежнему относится к адресам, определенным IPv4. Разрыв в последовательности версий между IPv4 и IPv6 возник из-за назначения версии 5 экспериментальному протоколу Internet Stream Protocol в 1979 году, который, однако, никогда не назывался IPv5.
Были определены и другие версии v1–v9, но только v4 и v6 получили широкое распространение. v1 и v2 были названиями протоколов TCP в 1974 и 1977 годах, поскольку в то время не было отдельной спецификации IP. v3 была определена в 1978 году, а v3.1 — первая версия, в которой TCP отделен от IP. v6 — это синтез нескольких предложенных версий: v6 Simple Internet Protocol , v7 TP/IX: The Next Internet , v8 PIP — The P Internet Protocol и v9 TUBA — Tcp & Udp with Big Addresses . [6]
IP-сети могут быть разделены на подсети как в IPv4 , так и в IPv6 . Для этой цели IP-адрес распознается как состоящий из двух частей: сетевого префикса в старших битах и оставшихся битов, называемых оставшимся полем , идентификатором хоста или идентификатором интерфейса (IPv6), используемых для нумерации хостов в сети. [1] Маска подсети или нотация CIDR определяет, как IP-адрес делится на сетевую и хостовую части.
Термин маска подсети используется только в IPv4. Однако обе версии IP используют концепцию и нотацию CIDR. В этом случае за IP-адресом следует косая черта и число (в десятичной системе) бит, используемых для сетевой части, также называемое префиксом маршрутизации . Например, адрес IPv4 и его маска подсети могут быть 192.0.2.1 и 255.255.255.0 соответственно. Нотация CIDR для того же IP-адреса и подсети — 192.0.2.1 / 24 , поскольку первые 24 бита IP-адреса указывают сеть и подсеть.
Адрес IPv4 имеет размер 32 бита, что ограничивает адресное пространство до 4 294 967 296 (2 32 ) адресов. Из этого числа некоторые адреса зарезервированы для специальных целей, таких как частные сети (≈18 миллионов адресов) и многоадресная адресация (≈270 миллионов адресов).
Адреса IPv4 обычно представлены в точечно-десятичном представлении , состоящем из четырех десятичных чисел, каждое из которых находится в диапазоне от 0 до 255 и разделенных точками, например, 192.0.2.1 . Каждая часть представляет собой группу из 8 бит ( октет ) адреса. [7] В некоторых случаях технического письма [ указать ] адреса IPv4 могут быть представлены в различных шестнадцатеричных , восьмеричных или двоичных представлениях.
На ранних стадиях разработки Интернет-протокола номер сети всегда был октетом наивысшего порядка (старшие восемь бит). Поскольку этот метод допускал только 256 сетей, он вскоре оказался неадекватным, поскольку развивались дополнительные сети, независимые от существующих сетей, уже обозначенных сетевым номером. В 1981 году спецификация адресации была пересмотрена с введением архитектуры классовых сетей . [2]
Классовая структура сети допускала большее количество индивидуальных сетевых назначений и мелкозернистую структуру подсети. Первые три бита самого значимого октета IP-адреса были определены как класс адреса. Для универсальной одноадресной адресации были определены три класса ( A , B и C ) . В зависимости от полученного класса идентификация сети основывалась на сегментах границ октетов всего адреса. Каждый класс последовательно использовал дополнительные октеты в идентификаторе сети, тем самым уменьшая возможное количество хостов в классах более высокого порядка ( B и C ). В следующей таблице дается обзор этой теперь уже устаревшей системы.
Классовая архитектура сети выполнила свою задачу на этапе запуска Интернета, но ей не хватало масштабируемости в условиях быстрого расширения сетей в 1990-х годах. Система классов адресного пространства была заменена на бесклассовую междоменную маршрутизацию (CIDR) в 1993 году. CIDR основана на маске подсетей переменной длины (VLSM), что позволяет распределять и маршрутизировать на основе префиксов произвольной длины. Сегодня остатки концепций классовой сети функционируют только в ограниченной области как параметры конфигурации по умолчанию некоторых сетевых программных и аппаратных компонентов (например, сетевой маски) и в техническом жаргоне, используемом в обсуждениях сетевых администраторов.
Ранний дизайн сети, когда предполагалось глобальное сквозное соединение для связи со всеми хостами Интернета, подразумевал, что IP-адреса будут глобально уникальными. Однако было обнаружено, что это не всегда было необходимо, поскольку развивались частные сети, и требовалось сохранять публичное адресное пространство.
Компьютеры, не подключенные к Интернету, такие как заводские машины, которые общаются только друг с другом через TCP/IP , не должны иметь глобально уникальные IP-адреса. Сегодня такие частные сети широко используются и обычно подключаются к Интернету с помощью трансляции сетевых адресов (NAT), когда это необходимо.
Зарезервированы три неперекрывающихся диапазона адресов IPv4 для частных сетей. [8] Эти адреса не маршрутизируются в Интернете, и поэтому их использование не нужно координировать с реестром IP-адресов. Любой пользователь может использовать любой из зарезервированных блоков. Обычно сетевой администратор делит блок на подсети; например, многие домашние маршрутизаторы автоматически используют диапазон адресов по умолчанию от 192.168.0.0 до 192.168.0.255 ( 192.168.0.0 / 24 ).
В IPv6 размер адреса был увеличен с 32 бит в IPv4 до 128 бит, что обеспечивает до 2 128 (приблизительно3,403 × 10 38 ) адресов. Этого считается достаточно для обозримого будущего.
Целью нового дизайна было не просто предоставить достаточное количество адресов, но и перепроектировать маршрутизацию в Интернете, обеспечив более эффективную агрегацию префиксов маршрутизации подсетей. Это привело к более медленному росту таблиц маршрутизации в маршрутизаторах. Наименьшим возможным индивидуальным распределением является подсеть для 2 64 хостов, что является квадратом размера всего Интернета IPv4. На этих уровнях фактические коэффициенты использования адресов будут небольшими в любом сегменте сети IPv6. Новый дизайн также предоставляет возможность отделить инфраструктуру адресации сегмента сети, т. е. локальное администрирование доступного пространства сегмента, от префикса адресации, используемого для маршрутизации трафика во внешние сети и из них. IPv6 имеет средства, которые автоматически изменяют префикс маршрутизации целых сетей, если глобальная связность или политика маршрутизации изменятся, без необходимости внутренней перепроектировки или ручной перенумерации.
Большое количество адресов IPv6 позволяет назначать большие блоки для определенных целей и, где это уместно, объединять их для эффективной маршрутизации. При большом адресном пространстве нет необходимости в сложных методах сохранения адресов, используемых в CIDR.
Все современные операционные системы для настольных ПК и корпоративных серверов включают встроенную поддержку IPv6 , но он пока не получил широкого распространения в других устройствах, таких как домашние сетевые маршрутизаторы, оборудование для передачи голоса по IP (VoIP) и мультимедийное оборудование, а также некоторое сетевое оборудование .
Так же, как IPv4 резервирует адреса для частных сетей, блоки адресов отводятся в IPv6. В IPv6 они называются уникальными локальными адресами (ULA). Префикс маршрутизации fc00:: / 7 зарезервирован для этого блока, [9] который разделен на два блока / 8 с различными подразумеваемыми политиками. Адреса включают 40-битное псевдослучайное число , которое минимизирует риск коллизий адресов в случае объединения сайтов или неправильной маршрутизации пакетов.
Ранние практики использовали другой блок для этой цели ( fec0:: ), дублированный site-local addresss. [10] Однако определение того, что представляет собой site, оставалось неясным, а плохо определенная политика адресации создавала неоднозначности для маршрутизации. Этот тип адреса был заброшен и не должен использоваться в новых системах. [11]
Адреса, начинающиеся с fe80:: , называемые адресами link-local , назначаются интерфейсам для связи по присоединенному каналу. Адреса автоматически генерируются операционной системой для каждого сетевого интерфейса. Это обеспечивает мгновенную и автоматическую связь между всеми хостами IPv6 на канале. Эта функция используется на нижних уровнях администрирования сети IPv6, например, для протокола Neighbor Discovery Protocol .
Префиксы частных и локальных адресов не могут маршрутизироваться в общедоступном Интернете.
IP-адреса назначаются хосту либо динамически, когда он присоединяется к сети, либо постоянно с помощью конфигурации оборудования или программного обеспечения хоста. Постоянная конфигурация также известна как использование статического IP-адреса . Напротив, когда IP-адрес компьютера назначается каждый раз при его перезагрузке, это известно как использование динамического IP-адреса .
Динамические IP-адреса назначаются сетью с помощью протокола динамической конфигурации хоста (DHCP). [12] DHCP — наиболее часто используемая технология назначения адресов. Она позволяет избежать административной нагрузки, связанной с назначением определенных статических адресов каждому устройству в сети. Она также позволяет устройствам совместно использовать ограниченное адресное пространство в сети, если только некоторые из них находятся в сети в определенное время. Обычно динамическая конфигурация IP включена по умолчанию в современных настольных операционных системах.
Адрес, назначенный DHCP, связан с арендой и обычно имеет срок действия. Если аренда не будет возобновлена хостом до истечения срока, адрес может быть назначен другому устройству. Некоторые реализации DHCP пытаются повторно назначить тот же IP-адрес хосту на основе его MAC-адреса каждый раз, когда он подключается к сети. Сетевой администратор может настроить DHCP, выделяя определенные IP-адреса на основе MAC-адреса.
DHCP — не единственная технология, используемая для динамического назначения IP-адресов. Bootstrap Protocol — похожий протокол и предшественник DHCP. Коммутируемые и некоторые широкополосные сети используют динамические функции адресации протокола Point-to-Point .
Компьютеры и оборудование, используемые для сетевой инфраструктуры, такие как маршрутизаторы и почтовые серверы, обычно настроены на статическую адресацию.
При отсутствии или сбое статических или динамических конфигураций адресов операционная система может назначить хосту локальный адрес ссылки, используя автоконфигурацию адреса без сохранения состояния.
Sticky — неформальный термин, используемый для описания динамически назначаемого IP-адреса, который редко меняется. [13] Например, адреса IPv4 обычно назначаются с помощью DHCP, и служба DHCP может использовать правила, которые максимизируют вероятность назначения одного и того же адреса каждый раз, когда клиент запрашивает назначение. В IPv6 делегирование префикса может обрабатываться аналогичным образом, чтобы сделать изменения настолько редкими, насколько это возможно. В типичной домашней или небольшой офисной настройке единственный маршрутизатор является единственным устройством, видимым для интернет-провайдера (ISP), и интернет-провайдер может попытаться предоставить конфигурацию, которая является настолько стабильной, насколько это возможно, т. е. sticky . В локальной сети дома или офиса локальный DHCP-сервер может быть разработан для предоставления sticky конфигураций IPv4, а интернет-провайдер может предоставить sticky делегирование префикса IPv6, предоставляя клиентам возможность использовать sticky IPv6-адреса. Sticky не следует путать со static ; sticky конфигурации не гарантируют стабильности, в то время как статические конфигурации используются неограниченно долго и изменяются только намеренно.
Блок адресов 169.254.0.0 / 16 определен для специального использования локальной адресации для сетей IPv4. [14] В IPv6 каждый интерфейс, независимо от того, использует ли он статические или динамические адреса, также автоматически получает локальный адрес в блоке fe80:: / 10 . [14] Эти адреса действительны только на канале, например, сегменте локальной сети или соединении точка-точка, к которому подключен хост. Эти адреса не маршрутизируются и, как и частные адреса, не могут быть источником или пунктом назначения пакетов, проходящих через Интернет.
Когда блок адресов IPv4 локального канала был зарезервирован, не существовало стандартов для механизмов автоконфигурации адресов. Заполняя пустоту, Microsoft разработала протокол под названием Automatic Private IP Addressing (APIPA), первая публичная реализация которого появилась в Windows 98. [ 15] APIPA был развернут на миллионах машин и стал фактическим стандартом в отрасли. В мае 2005 года IETF определила для него формальный стандарт. [16]
Конфликт IP-адресов возникает, когда два устройства в одной и той же локальной физической или беспроводной сети заявляют, что имеют один и тот же IP-адрес. Второе назначение адреса обычно останавливает функциональность IP одного или обоих устройств. Многие современные операционные системы уведомляют администратора о конфликтах IP-адресов. [17] [18] Когда IP-адреса назначаются несколькими людьми и системами разными методами, любой из них может быть виноват. [19] [20] [21] [22] [23] Если одно из устройств, вовлеченных в конфликт, является шлюзом по умолчанию для доступа за пределы локальной сети для всех устройств в локальной сети, все устройства могут быть повреждены.
IP-адреса подразделяются на несколько классов по эксплуатационным характеристикам: одноадресная, многоадресная, произвольной и широковещательная адресация.
Наиболее распространенная концепция IP-адреса — это адресация unicast , доступная как в IPv4, так и в IPv6. Обычно она относится к одному отправителю или одному получателю и может использоваться как для отправки, так и для получения. Обычно адрес unicast связан с одним устройством или хостом, но устройство или хост может иметь более одного адреса unicast. Отправка одних и тех же данных на несколько адресов unicast требует от отправителя отправки всех данных много раз, по одному разу для каждого получателя.
Широковещательная передача — это метод адресации, доступный в IPv4 для адресации данных всем возможным адресатам в сети за одну операцию передачи в виде широковещательной передачи всем хостам . Все получатели захватывают сетевой пакет. Адрес 255.255.255.255 используется для широковещательной передачи по сети. Кроме того, более ограниченная направленная широковещательная передача использует адрес хоста «все единицы» с сетевым префиксом. Например, адрес назначения, используемый для направленной широковещательной передачи на устройства в сети 192.0.2.0 / 24, — 192.0.2.255 . [24]
IPv6 не реализует широковещательную адресацию и заменяет ее многоадресной рассылкой по специально определенному адресу многоадресной рассылки для всех узлов.
Многоадресный адрес связан с группой заинтересованных получателей. В IPv4 адреса от 224.0.0.0 до 239.255.255.255 (бывшие адреса класса D ) обозначены как многоадресные адреса. [25] IPv6 использует блок адресов с префиксом ff00:: / 8 для многоадресной рассылки. В любом случае отправитель отправляет одну датаграмму со своего одноадресного адреса на адрес многоадресной группы, а промежуточные маршрутизаторы заботятся о создании копий и отправке их всем заинтересованным получателям (тем, кто присоединился к соответствующей многоадресной группе).
Подобно широковещательной и многоадресной рассылке, anycast представляет собой топологию маршрутизации «один ко многим». Однако поток данных передается не всем получателям, а только тому, который маршрутизатор считает ближайшим в сети. Адресация anycast является встроенной функцией IPv6. [26] [27] В IPv4 адресация anycast реализована с помощью протокола Border Gateway Protocol, использующего метрику кратчайшего пути для выбора пунктов назначения. Методы anycast полезны для глобальной балансировки нагрузки и обычно используются в распределенных системах DNS .
Хост может использовать геолокацию для определения географического положения своего коммуникационного узла. [28] [29] Обычно это делается путем извлечения геолокационной информации об IP-адресе другого узла из базы данных. [30]
Публичный IP-адрес — это глобально маршрутизируемый одноадресный IP-адрес, что означает, что адрес не является адресом, зарезервированным для использования в частных сетях , например, зарезервированным RFC 1918, или различными форматами адресов IPv6 локальной области или локальной области сайта, например, для локальной адресации. Публичные IP-адреса могут использоваться для связи между хостами в глобальном Интернете. В домашней ситуации публичный IP-адрес — это IP-адрес, назначенный домашней сети интернет-провайдером . В этом случае он также виден локально, если войти в конфигурацию маршрутизатора. [31]
Большинство публичных IP-адресов меняются, и относительно часто. Любой тип IP-адреса, который меняется, называется динамическим IP-адресом. В домашних сетях интернет-провайдер обычно назначает динамический IP-адрес. Если интернет-провайдер предоставил домашней сети неизменный адрес, он с большей вероятностью будет использован клиентами, которые размещают веб-сайты из дома, или хакерами , которые могут пробовать один и тот же IP-адрес снова и снова, пока не взломают сеть. [31]
Несколько клиентских устройств могут отображатьсясовместно используют IP-адрес, либо потому что они являются частью общей среды веб-хостинга , либо потому что сетевой транслятор адресов IPv4 (NAT) или прокси-сервер действует как посредник от имени клиента, в этом случае реальный исходный IP-адрес маскируется от сервера, получающего запрос. Распространенной практикой является наличие маски NAT для многих устройств в частной сети. Только публичный интерфейс(ы) NAT должен иметь маршрутизируемый в Интернете адрес. [32]
Устройство NAT сопоставляет различные IP-адреса в частной сети с различными номерами портов TCP или UDP в публичной сети. В жилых сетях функции NAT обычно реализуются в жилом шлюзе . В этом сценарии компьютеры, подключенные к маршрутизатору, имеют частные IP-адреса, а маршрутизатор имеет публичный адрес на своем внешнем интерфейсе для связи в Интернете. Внутренние компьютеры, по-видимому, имеют один общий публичный IP-адрес.
В марте 2024 года Верховный суд Канады постановил, что IP-адреса являются защищенной частной информацией в соответствии с Канадской хартией прав и свобод , и для их получения требуется ордер на обыск. [33] IP-адреса считаются персональными данными Европейской комиссией и защищены Общим регламентом по защите данных . [34]
Операционные системы компьютеров предоставляют различные диагностические инструменты для проверки сетевых интерфейсов и конфигурации адресов. Microsoft Windows предоставляет инструменты интерфейса командной строки ipconfig [35] и netsh , а пользователи Unix-подобных систем могут использовать утилиты ifconfig , netstat , route , lanstat, fstat и iproute2 для выполнения этой задачи. [36]
Адрес IPv4 имеет следующий формат: x . x . x . x где x называется октетом и должен быть десятичным значением от 0 до 255. Октеты разделяются точками. Адрес IPv4 должен содержать три точки и четыре октета. Следующие примеры являются допустимыми адресами IPv4:
1 . 2 . 3 . 4
01 . 102 . 103 . 104