Локалхост

Материал из wikixw
Перейти к навигации Перейти к поиску

"127.0.0.1" перенаправляет сюда. Об использовании этого адреса в Википедии см. User:127.0.0.1.

В компьютерных сетях localhost - это имя хоста, которое относится к текущему устройству, используемому для доступа к нему. Он используется для доступа к сетевым службам, работающим на хосте, через сетевой интерфейс loopback. Использование интерфейса loopback обходит любое оборудование интерфейса локальной сети.

Loopback[править]

Механизм локальной обратной связи может использоваться для запуска сетевой службы на хосте без необходимости физического сетевого интерфейса или без доступа к службе из сетей, к которым может быть подключен компьютер. Например, локально установленный веб-сайт может быть доступен из веб-браузера по URL -адресу http://localhost чтобы отобразить его домашнюю страницу.

Имя localhost обычно преобразуется в адрес обратной связи IPv4 127.0.0.1 и адрес обратной связи IPv6 ::1.

Разрешение имен[править]

Стандарты сети IPv4 резервируют весь блок адресов 127.0.0.0/8 (более 16 миллионов адресов) для целей loopback. Это означает, что любой пакет, отправленный на любой из этих адресов, возвращается обратно. Адрес 127.0.0.1 является стандартным адресом для петлевого трафика IPv4; остальные поддерживаются не всеми операционными системами. Однако они могут использоваться для настройки нескольких серверных приложений на хосте, все прослушивающие один и тот же номер порта. Стандарт IPv6 назначает только один адрес для loopback: ::1.

Разрешение имени localhost на один или несколько IP-адресов обычно настраивается следующими строками в файле hosts операционной системы:

127.0.0.1 localhost

1 localhost

Имя также может быть разрешено серверами Системы доменных имен (DNS), но запросы на это имя должны разрешаться локально и не должны пересылаться на удаленные серверы имен.

В дополнение к отображению localhost на адреса loopback (127.0.0.1 и ::1), localhost также может быть отображен на другие адреса IPv4 (loopback), а также можно назначить другие или дополнительные имена любому адресу loopback. Сопоставление localhost с адресами, отличными от указанного диапазона адресов loopback в файле hosts или в DNS, не гарантирует желаемого эффекта, поскольку приложения могут отображать имя внутри.

В Системе доменных имен имя localhost зарезервировано как доменное имя верхнего уровня , первоначально отложенное, чтобы избежать путаницы с именем хоста, используемым для целей обратной связи.[3] Стандарты IETF запрещают регистраторам доменных имен присваивать имя localhost.

Стандарты IETF[править]

Имя localhost зарезервировано для целей loopback в соответствии с RFC 6761 (Доменные имена специального назначения), который достиг предложенного стандартного уровня зрелости в феврале 2013 года. Стандарт устанавливает ряд особых соображений, регулирующих использование имени в Системе доменных имен:

  • Запрос адреса IPv4 или IPv6 для имени localhost всегда должен разрешаться на соответствующий адрес обратной связи, который указан в отдельном стандарте.
  • Приложения могут сами преобразовывать имя в петлевой адрес или передавать его механизмам локального распознавателя имен.
  • Когда распознаватель имен получает запрос адреса (A или AAAA) для localhost, он должен возвращать соответствующие адреса обратной связи и отрицательные ответы для любых других запрошенных типов записей. Запросы для localhost не следует отправлять на кэширующие серверы имен.
  • Чтобы не обременять корневые серверы Системы доменных имен трафиком, кэширующие серверы имен никогда не должны запрашивать записи сервера имен для localhost или пересылать разрешение авторитетным серверам имен.
  • DNS-регистраторам запрещено делегировать доменные имена в домене верхнего уровня localhost.
  • Когда авторитетные серверы имен получают запросы на "localhost", несмотря на упомянутые положения, разрешите их соответствующим образом.

Адреса loopback IPv4 зарезервированы в адресном пространстве IPv4 стандартом IETF "Special Use IPv4 Addresses" (RFC 5735). Резервирование можно проследить до стандарта 1986 года "Assigned Numbers" (RFC 990).

Напротив, стандарт IETF "IP Version 6 Addressing Architecture" (RFC 4291) резервирует один адрес обратной связи IPv6 ::1 в адресном пространстве IPv6. Стандарт исключает назначение этого адреса любому физическому интерфейсу, а также его использование в качестве адреса источника или назначения в любом пакете, отправленном удаленным хостам. Любой такой пакет, который передается ошибочно, не должен быть маршрутизирован и должен быть отброшен всеми маршрутизаторами или хостами, которые его получают.

Обработка пакетов[править]

Обработка любого пакета, отправленного на петлевой адрес, реализуется в канальном уровне стека TCP/IP. Такие пакеты никогда не передаются какому-либо контроллеру сетевого интерфейса (NIC) или драйверу аппаратного устройства и не должны появляться вне вычислительной системы или маршрутизироваться каким-либо маршрутизатором. Это позволяет тестировать программное обеспечение и локальные службы при отсутствии каких-либо аппаратных сетевых интерфейсов.

Циклические пакеты отличаются от любых других пакетов, пересекающих стек TCP/IP, только специальным IP-адресом, на который они были адресованы. Таким образом, службы, которые в конечном итоге получают их, отвечают в соответствии с указанным назначением. Например, HTTP-служба может маршрутизировать пакеты, адресованные 127.0.0.99:80 и 127.0.0.100:80, на разные веб-серверы или на один сервер, который возвращает разные веб-страницы. Чтобы упростить такое тестирование, файл hosts может быть сконфигурирован так, чтобы для каждого адреса были указаны соответствующие имена.

Пакеты, полученные на интерфейсе без обратной связи с обратным адресом источника или назначения, должны быть отброшены. Такие пакеты иногда называют марсианскими пакетами. Как и любые другие фиктивные пакеты, они могут быть вредоносными, и любые проблемы, которые они могут вызвать, можно избежать, применив фильтрацию Богона.

Особые случаи[править]

Выпуски базы данных MySQL различают использование имени хоста localhost и использование адресов 127.0.0.1 и ::1.[7] При использовании localhost в качестве места назначения в интерфейсе клиентского соединителя приложения интерфейс прикладного программирования MySQL подключается к базе данных с помощью сокета домена Unix, в то время какTCP-соединение через интерфейс loopback требует прямого использования явного адреса.

Одним из заметных исключений из использования адресов 127.0.0.0 / 8 является их использование в обнаружении ошибок traceroute Multiprotocol Label Switching (MPLS), в котором их свойство не маршрутизируемости обеспечивает удобное средство для предотвращения доставки неисправных пакетов конечным пользователям.

См. Также[править]

RFC[править]

/datatracker.ietf.org/doc/html/rfc4291#section-2.5.3

Пруф[править]

.catb.org/~esr/jargon/html/M/martian.html