Открыть сервис

31-битная адресация

31-битная адресация — это схема адресации в компьютерных сетях и телекоммуникационных системах, в которой для идентификации узла или канала используется 31 бит вместо стандартных 32. Данная техника применялась в некоторых версиях протокола IP (в частности, в IPv4) и в цифровых телефонных сетях (ISDN) для оптимизации использования адресного пространства, обычно в контексте двухточечных соединений.

История

Понятие 31-битной адресации возникло в конце 1980-х — начале 1990-х годов, когда стало очевидно, что адресное пространство IPv4 (ограниченное примерно 4,3 миллиардами адресов) используется неэффективно. В частности, в локальных сетях с маршрутизацией, где не требовалась поддержка широковещательных запросов (broadcast), традиционные 32-битные подсети часто приводили к пустой трате ресурсов.

Изначально считалось, что для всех точек входа и выхода из сети (интерфейсов) необходимо использовать как минимум 32-битные адреса с сетевым префиксом и идентификатором хоста. Однако для соединений «точка-точка» (point-to-point) характерна ситуация, когда два маршрутизатора или коммутатора соединены напрямую, и им для общения нужен только один логический канал. Сохранять для такого канала пул из нескольких адресов (например, целую подсеть) было расточительно.

В 1993 году предложение по использованию 31-битной адресации для IPv4 было закреплено в стандарте RFC 3021 (под названием «Using 31-Bit Prefixes on IPv4 Point-to-Point Links»). Этот стандарт разрешил применять маски подсети 255.255.255.254 (или /31), что позволяло выделять только два адреса в подсети. Ранее, до принятия RFC 3021, маска /31 часто считалась запрещённой, так как якобы нарушала логику широковещательных доменов.

Техническая реализация

Суть метода

В традиционной IPv4-адресации (32-битной) адрес сети и адрес хоста жёстко разделены через маску подсети. Для соединения «точка-точка» обычно выделяют подсеть с маской /30, которая даёт 4 адреса: адрес сети, два используемых адреса (для каждого конца канала) и один широковещательный адрес. Из-за этого один канал занимает 4 адреса, хотя фактически используются только 2.

31-битная адресация (маска /31) использует только 1 бит для идентификации хостов, что даёт 2 возможных значения (0 и 1). В таком случае понятие «широковещательного адреса» в классическом смысле теряется — все биты хостовой части (кроме адреса сети) трактуются как уникальные идентификаторы интерфейсов. Конфликта не происходит, поскольку в канале «точка-точка» нет возможности для широковещательных рассылок между несколькими хостами — в сети всего два узла.

Формат адреса

При маске /31 из 32 бит IPv4-адреса 31 бит считается сетевой частью, а 1 младший бит — идентификатором хоста. Таким образом, для каждого интерфейса выделяется либо чётный, либо нечётный адрес (если сетевой префикс заканчивается на 0 или 1). Например:

Адрес 10.0.0.0 формально является адресом сети, а 10.0.0.1 — «широковещательным» адресом по старой терминологии, но в контексте /31 они оба — полностью легитимные адреса узлов. Маршрутизаторы, поддерживающие RFC 3021, умеют обрабатывать эти адреса без ограничений.

Поддержка в оборудовании

Технически поддержка 31-битной адресации реализована в большинстве современных маршрутизаторов и сетевых операционных систем (Cisco IOS, Juniper JunOS, Linux, Windows Server), но требует явного включения или корректной настройки. В некоторых старых системах использование маски /31 на интерфейсе считалось ошибкой, поэтому для обратной совместимости чаще применяли маску /30.

Применение

В сетях IPv4

Основная область применения 31-битной адресации — это двухточечные каналы между маршрутизаторами в крупных сетях (уровень доступа, агрегации, ядра). Она позволяет:

Особенно это актуально для провайдеров, управляющих тысячами каналов связи (например, в сетях с протоколами OSPF или BGP). Например, магистральный канал между Москвой и Санкт-Петербургом может быть настроен как подсеть 10.0.0.0/31.

В цифровых телефонных сетях (ISDN)

В сетях ISDN применяется понятие 31-битной адресации в контексте каналов D (сигнализация) и B (данные). Традиционно в ISDN-канале (BRI или PRI) используется 30 или 31 информационный канал для передачи данных, но для адресации самих оборудований (TEI — Terminal Endpoint Identifier) может применяться 31-битный идентификатор, который кодирует до 2 миллиардов теоретических оконечных точек. Однако на практике используется 7–8-битная адресация для TEI. Понятие «31-битная адресация» в ISDN чаще встречается в старых спецификациях и не является основным способом идентификации.

Преимущества и недостатки

Преимущества

Недостатки

Пример конфигурации

На маршрутизаторе Cisco IOS настройка интерфейса с 31-битной адресацией выглядит следующим образом:

`` interface GigabitEthernet0/0 ip address 10.0.0.0 255.255.255.254 no ip redirects no ip unreachables ! ``

Для второго конца канала:

`` interface GigabitEthernet0/0 ip address 10.0.0.1 255.255.255.254 no ip redirects no ip unreachables ! ``

На обоих концах канала должен быть разрешён приём пакетов на адрес, который формально является широковещательным. В Cisco IOS для этого используется команда ip local-proxy-arp (если требуется ARP) или явное разрешение.

Связь с IPv6

В протоколе IPv6 (128-битная адресация) проблема неэффективного использования адресов менее актуальна. Однако для двухточечных каналов в IPv6 также существует аналог — использование префиксов /64, /127 или /126. Стандарт RFC 6166 (2008) рекомендует использовать для каналов «точка-точка» префиксы /127, что концептуально близко к 31-битной адресации IPv4. В IPv6 также нет широковещательных адресов, а multicast-запросы заменяют broadcast.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →