Подсеть , или субсеть , представляет собой логическое подразделение IP - сети . [1] : 1, 16 Практика разделения сети на две или более сетей называется подсетями .
Компьютеры, принадлежащие к одной подсети, адресуются с помощью идентичной группы наиболее значимых битов их IP-адресов . Это приводит к логическому разделению IP-адреса на два поля: номер сети или префикс маршрутизации и оставшееся поле или идентификатор хоста . Оставшееся поле представляет собой идентификатор определенного хоста или сетевого интерфейса.
Префикс маршрутизации может быть выражен как первый адрес сети, записанный в нотации бесклассовой междоменной маршрутизации (CIDR), за которым следует символ косой черты ( / ) и заканчивающийся битовой длиной префикса. Например, 198.51.100.0 / 24 — это префикс сети Интернет-протокола версии 4 , начинающийся с указанного адреса, имеющий 24 бита, выделенных для префикса сети, и оставшиеся 8 бит, зарезервированных для адресации хоста. Адреса в диапазоне от 198.51.100.0 до 198.51.100.255 принадлежат этой сети, причем 198.51.100.255 является широковещательным адресом подсети . Спецификация адреса IPv6 2001:db8:: / 32 — это большой блок адресов с 2 96 адресами, имеющий 32-битный префикс маршрутизации.
Для IPv4 сеть также может быть охарактеризована маской подсети или сетевой маской , которая является битовой маской , которая при применении побитовой операции И к любому IP-адресу в сети дает префикс маршрутизации. Маски подсети также выражаются в десятичной нотации с точками, как и IP-адрес. Например, префикс 198.51.100.0 / 24 будет иметь маску подсети 255.255.255.0 .
Обмен трафиком между подсетями осуществляется через маршрутизаторы , когда префиксы маршрутизации исходного адреса и адреса назначения различаются. Маршрутизатор служит логической или физической границей между подсетями.
Преимущества подсетей существующей сети различаются в зависимости от сценария развертывания. В архитектуре распределения адресов Интернета с использованием CIDR и в крупных организациях необходимо эффективное распределение адресного пространства. Подсети также могут повышать эффективность маршрутизации или иметь преимущества в управлении сетью, когда подсети административно контролируются различными субъектами в более крупной организации. Подсети могут быть организованы логически в иерархической архитектуре, разделяя сетевое адресное пространство организации на древовидную структуру маршрутизации или другие структуры, такие как сетки.
Компьютеры, участвующие в IP-сети, имеют по крайней мере один сетевой адрес . Обычно этот адрес уникален для каждого устройства и может быть настроен автоматически сетевой службой с протоколом динамической конфигурации хоста (DHCP), вручную администратором или автоматически операционной системой с помощью автоконфигурации адреса без сохранения состояния .
Адрес выполняет функции идентификации хоста и его нахождения в сети при маршрутизации назначения. Наиболее распространенной архитектурой сетевой адресации является протокол Интернета версии 4 (IPv4), но его преемник, IPv6 , все чаще развертывается примерно с 2006 года. Адрес IPv4 состоит из 32 бит. Адрес IPv6 состоит из 128 бит. В обеих архитектурах IP-адрес делится на две логические части: сетевой префикс и идентификатор хоста . Все хосты в подсети имеют одинаковый сетевой префикс. Этот префикс занимает самые старшие биты адреса. Количество бит, выделенных в сети для префикса, может различаться между подсетями в зависимости от сетевой архитектуры. Идентификатор хоста является уникальной локальной идентификацией и представляет собой либо номер хоста в локальной сети, либо идентификатор интерфейса.
Эта структура адресации позволяет осуществлять выборочную маршрутизацию IP-пакетов через несколько сетей через специальные шлюзовые компьютеры, называемые маршрутизаторами , к хосту назначения, если сетевые префиксы исходного и конечного хостов различаются, или отправлять их напрямую на целевой хост в локальной сети, если они одинаковы. Маршрутизаторы образуют логические или физические границы между подсетями и управляют трафиком между ними. Каждая подсеть обслуживается назначенным маршрутизатором по умолчанию, но может состоять внутри из нескольких физических сегментов Ethernet, соединенных между собой сетевыми коммутаторами .
Префикс маршрутизации адреса определяется маской подсети , записанной в той же форме, что и для IP-адресов. Например, маска подсети для префикса маршрутизации, состоящего из наиболее значимых 24 бит адреса IPv4, записывается как 255.255.255.0 .
Современная стандартная форма спецификации сетевого префикса — это нотация CIDR, используемая как для IPv4, так и для IPv6. Она подсчитывает количество бит в префиксе и добавляет это число к адресу после разделителя в виде слеша (/). Эта нотация была введена с Classless Inter-Domain Routing (CIDR). [2] В IPv6 это единственная стандартная форма для обозначения сетевых или маршрутных префиксов.
Например, сеть IPv4 192.0.2.0 с маской подсети 255.255.255.0 записывается как 192.0.2.0 / 24 , а запись IPv6 2001:db8:: / 32 обозначает адрес 2001:db8:: и его сетевой префикс, состоящий из старших 32 бит.
В классовых сетях в IPv4 до внедрения CIDR сетевой префикс можно было получить напрямую из IP-адреса на основе его последовательности битов наивысшего порядка. Это определяло класс (A, B, C) адреса и, следовательно, маску подсети. Однако с момента внедрения CIDR назначение IP-адреса сетевому интерфейсу требует двух параметров: адреса и маски подсети.
Учитывая адрес источника IPv4, связанную с ним маску подсети и адрес назначения, маршрутизатор может определить, находится ли пункт назначения в локально подключенной сети или удаленной сети. Маска подсети пункта назначения не требуется и, как правило, не известна маршрутизатору. [3] Однако для IPv6 определение on-link отличается в деталях и требует протокола Neighbor Discovery Protocol (NDP). [4] [5] Назначение адреса IPv6 интерфейсу не требует соответствующего префикса on-link и наоборот, за исключением адресов link-local .
Поскольку каждая локально подключенная подсеть должна быть представлена отдельной записью в таблицах маршрутизации каждого подключенного маршрутизатора, подсетирование увеличивает сложность маршрутизации. Однако, путем тщательного проектирования сети, маршруты к наборам более удаленных подсетей в ветвях древовидной иерархии могут быть объединены в суперсеть и представлены отдельными маршрутами.
Маска подсети IPv4 состоит из 32 бит; это последовательность единиц ( 1 ), за которой следует блок нулей ( 0 ). Единицы указывают биты в адресе, используемые для сетевого префикса, а завершающий блок нулей обозначает эту часть как идентификатор хоста.
В следующем примере показано разделение сетевого префикса и идентификатора хоста из адреса ( 192.0.2.130 ) и его связанной маски подсети / 24 ( 255.255.255.0 ). Операция визуализируется в таблице с использованием двоичных форматов адресов.
Результатом побитовой операции И IP-адреса и маски подсети является сетевой префикс 192.0.2.0 . Часть хоста, которая равна 130 , получается побитовой операцией И адреса и дополнением маски подсети до единиц.
Подсетирование — это процесс назначения некоторых старших битов из хостовой части как части сетевого префикса и соответствующей корректировки маски подсети. Это делит сеть на меньшие подсети. Следующая диаграмма изменяет приведенный выше пример, перемещая 2 бита из хостовой части в сетевой префикс, чтобы сформировать четыре меньшие подсети, каждая из которых имеет четверть предыдущего размера.
IPv4 использует специально обозначенные форматы адресов для облегчения распознавания специальных функциональных возможностей адресов. Первая и последняя подсети, полученные путем разбиения на подсети более крупной сети, традиционно имели специальное обозначение и, на раннем этапе, особые последствия использования. [6] Кроме того, IPv4 использует адрес хоста «все единицы» , т. е. последний адрес в сети, для широковещательной передачи всем хостам на линии связи.
Первая подсеть, полученная в результате разбиения на подсети более крупной сети, имеет все биты в битовой группе подсети, установленные на ноль. Поэтому она называется нулевой подсетью . [7] Последняя подсеть, полученная в результате разбиения на подсети более крупной сети, имеет все биты в битовой группе подсети, установленные на единицу. Поэтому она называется подсетью со всеми единицами . [8]
Первоначально IETF не одобряла использование этих двух подсетей в производстве. Когда длина префикса недоступна, большая сеть и первая подсеть имеют один и тот же адрес, что может привести к путанице. Подобная путаница возможна с широковещательным адресом в конце последней подсети. Поэтому было рекомендовано резервировать значения подсети, состоящие из одних нулей и одних единиц в общедоступном Интернете, [9] уменьшая количество доступных подсетей на две для каждой подсети. Эта неэффективность была устранена, и практика была объявлена устаревшей в 1995 году и актуальна только при работе с устаревшим оборудованием. [10]
Хотя значения хоста "все нули" и "все единицы" зарезервированы для сетевого адреса подсети и ее широковещательного адреса соответственно, в системах, использующих CIDR, все подсети доступны в разделенной сети. Например, сеть / 24 можно разделить на шестнадцать используемых сетей / 28. Каждый широковещательный адрес, т. е. *.15 , *.31 , …, *.255 , уменьшает только количество хостов в каждой подсети.
Количество доступных подсетей и количество возможных хостов в сети можно легко вычислить. Например, сеть 192.168.5.0 / 24 можно разделить на следующие четыре / 26 подсети. Выделенные два бита адреса становятся частью номера сети в этом процессе.
Оставшиеся биты после битов подсети используются для адресации хостов внутри подсети. В приведенном выше примере маска подсети состоит из 26 бит, что делает ее 255.255.255.192, оставляя 6 бит для идентификатора хоста. Это позволяет использовать 62 комбинации хостов (2 6 −2).
В общем случае количество доступных хостов в подсети равно 2 h −2, где h — количество бит, используемых для хостовой части адреса. Количество доступных подсетей равно 2 n , где n — количество бит, используемых для сетевой части адреса.
Исключение из этого правила есть для 31-битных масок подсети, [11] что означает, что идентификатор хоста имеет длину всего один бит для двух допустимых адресов. В таких сетях, обычно это соединения точка-точка , могут быть подключены только два хоста (конечные точки), и спецификация сетевых и широковещательных адресов не требуется.
Проектирование адресного пространства IPv6 существенно отличается от IPv4. Основной причиной подсетей в IPv4 является повышение эффективности использования относительно небольшого доступного адресного пространства, особенно для предприятий. В IPv6 таких ограничений не существует, поскольку большое доступное адресное пространство, даже для конечных пользователей, не является ограничивающим фактором.
Как и в IPv4, подсети в IPv6 основаны на концепциях маскировки подсетей переменной длины (VLSM) и методологии бесклассовой междоменной маршрутизации . Она используется для маршрутизации трафика между глобальными пространствами распределения и внутри сетей клиентов между подсетями и Интернетом в целом.
Совместимая подсеть IPv6 всегда использует адреса с 64 битами в идентификаторе хоста. [12] Учитывая размер адреса в 128 бит, он, следовательно, имеет префикс маршрутизации /64. Хотя технически возможно использовать меньшие подсети, [13] они непрактичны для локальных сетей на основе технологии Ethernet, поскольку для автоконфигурации адреса без сохранения состояния требуются 64 бита . [14] Internet Engineering Task Force рекомендует использовать подсети / 127 для соединений точка-точка, которые имеют только два хоста. [15] [16]
IPv6 не реализует специальные форматы адресов для широковещательного трафика или сетевых номеров, [17] и, таким образом, все адреса в подсети приемлемы для адресации хоста. Адрес из всех нулей зарезервирован как адрес anycast маршрутизатора подсети. [18] Адрес anycast маршрутизатора подсети является самым низким адресом в подсети, поэтому он выглядит как «сетевой адрес». Если маршрутизатор имеет несколько подсетей на одном и том же канале, то он имеет несколько адресов anycast маршрутизатора подсети на этом канале. [19] Первый и последний адрес в любой сети или подсети не могут быть назначены какому-либо отдельному хосту.
В прошлом рекомендуемым распределением для клиентского сайта IPv6 было адресное пространство с 48-битным префиксом ( / 48 ). [20] Однако эта рекомендация была пересмотрена, чтобы поощрять меньшие блоки, например, с использованием 56-битных префиксов. [21] Другой распространенный размер распределения для сетей частных клиентов имеет 64-битный префикс.
Традиционно настоятельно рекомендовалось не использовать подсеть ноль и подсеть "все единицы" для адресации. [...] Сегодня использование подсети ноль и подсети "все единицы" является общепринятым, и большинство поставщиков поддерживают их использование.
первая [...] подсеть[...], известная как подсеть zero
[...] последняя подсеть [...], известная как [...] подсеть all-ones
Полезно сохранять и расширять интерпретацию этих специальных адресов в сетях с подсетями. Это означает, что значения всех нулей и всех единиц в поле подсети не должны назначаться фактическим (физическим) подсетям.
Эта практика устарела! Современное программное обеспечение сможет использовать все определяемые сети.(Информационный RFC, понижен до категории «Исторический» )
Для всех одноадресных адресов, за исключением тех, которые начинаются с двоичного значения 000, идентификаторы интерфейсов должны быть длиной 64 бита и быть построены в модифицированном формате EUI-64.(Обновлено RFC 5952, RFC 6052, RFC 7136, RFC 7346, RFC 7371, RFC 8064.)
Системный администратор несет ответственность за обеспечение соответствия длины префиксов, содержащихся в объявлениях маршрутизатора, длине идентификаторов интерфейсов для данного типа связи. [...] реализация не должна предполагать определенную константу. Вместо этого она должна ожидать любую длину идентификаторов интерфейсов.(Обновлено RFC 7527.)
Идентификатор интерфейса [AARCH] для интерфейса Ethernet основан на идентификаторе EUI-64 [EUI64], полученном из встроенного 48-битного адреса IEEE 802 интерфейса. [...] Префикс адреса IPv6, используемый для автоконфигурации без сохранения состояния [ACONF] интерфейса Ethernet, должен иметь длину 64 бита.(Обновлено RFC 6085, RFC 8064.)
В межмаршрутизаторных соединениях типа «точка-точка» полезно использовать 127-битные префиксы IPv6 из соображений безопасности и по другим причинам.
Этот документ переводит «Использование длины префикса /127 между маршрутизаторами, считающимися вредными» (RFC 3627) в статус «История», чтобы отразить обновленные рекомендации, содержащиеся в «Использовании 127-битных префиксов IPv6 на межмаршрутизаторных соединениях» (RFC 6164).
В IPv6 нет широковещательных адресов, их функция заменена многоадресными адресами. [...] В IPv6 все нули и все единицы являются допустимыми значениями для любого поля, если явно не исключено иное.
Этот адрес произвольной рассылки синтаксически совпадает с адресом индивидуальной рассылки для интерфейса на канале с идентификатором интерфейса, установленным на ноль.
Все клиенты получают один /48, если только они не могут доказать, что им нужно более 65 тыс. подсетей. [...] Если у вас много клиентов-потребителей, вы можете назначить /56 частным резиденциям.
APNIC, ARIN и RIPE пересмотрели политику назначения конечных сайтов, чтобы поощрять назначение конечным сайтам меньших (например, /56) блоков.