Яка різниця між 127.0.0.1 і 0.0.0.0?
Більшість з нас чули про "127.0.0.1 і 0.0.0.0", але, ймовірно, не приділили їм особливої уваги, але якщо обидві фактично вказують на одне і те ж місце, то яка ж різниця між ними? Сьогоднішня посада SuperUser Q&A допомагає чітко сформулювати ситуацію для плутаного читача.
Сьогоднішня сесія запитань та відповідей приходить до нас люб'язно SuperUser - підрозділ Stack Exchange, групування веб-сайтів із запитаннями та відповідями на рівні спільноти..
Фото надано Кейт Гардінер (Flickr).
Питання
Читач SuperUser Sagnik Sarkar хоче знати, яка різниця між 127.0.0.1 і 0.0.0.0:
Я розумію, що 127.0.0.1 вказує на localhost і також 0.0.0.0 (виправте мене, якщо я помиляюся). Отже, яка різниця між 127.0.0.1 і 0.0.0.0?
У чому різниця між 127.0.0.1 і 0.0.0.0?
Відповідь
Співробітник SuperUser DavidPostill має відповідь для нас:
Яка різниця між 127.0.0.1 і 0.0.0.0?
- 127.0.0.1 - адреса зворотного зв'язку (також відомий як localhost).
- 0.0.0.0 - це не-маршрутний мета-адреса, який використовується для позначення недійсного, невідомого або непридатного цільового призначення (власник місця "без особливої адреси").
У контексті запису маршруту, це зазвичай означає маршрут за замовчуванням.
У контексті серверів, 0.0.0.0 означає всі адреси IPv4 на локальному комп'ютері. Якщо хост має дві IP-адреси, 192.168.1.1 і 10.1.2.1, а сервер, що працює на хості, слухає 0.0.0.0, він буде доступним для обох цих IP-адрес.
Що таке IP-адреса 127.0.0.1?
127.0.0.1 - це мережевий протокол (IP), який також називається localhost. Адреса використовується для встановлення IP-з'єднання на тій самій машині або комп'ютері, який використовується кінцевим користувачем.
Така ж конвенція визначається для комп'ютерів, які підтримують адресацію IPv6, використовуючи конотацію :: 1. Найбільш поширеною практикою є встановлення з'єднання за адресою 127.0.0.1; однак, використання будь-якої IP-адреси в діапазоні 127… * буде функціонувати таким же або подібним чином. Конструкція loopback дає можливість комп'ютеру або пристрою, здатному до мережі, перевірити чи встановити стек IP на машині.
Джерело: 127.0.0.1 - Які її застосування і чому це важливо?
Спеціальні адреси
Присвоєно номер мережі 127 класу А петля Функція, тобто дейтаграма, надіслана протоколом вищого рівня в мережу 127, повинна повертатися всередину хоста. Немає дейтаграми надісланий до мережі 127 адреса повинна коли-небудь з'являтися в будь-якій мережі.
Джерело: Номери мережі
Якщо це цілий клас А, що є точкою інших довільних значень для останніх трьох октетів?
Метою діапазону циклів є тестування реалізації протоколу TCP / IP на хості. Оскільки нижні шари є короткозамкненими, передача на адресу зворотного зв'язку дозволяє більш високим рівням (IP і вище) ефективно тестуватися без можливості виникнення проблем на нижчих шарах, що проявляються. 127.0.0.1 - найчастіше використовується для тестування адреси.
Джерело: Зарезервовані IP-адреси, Loopback і приватні адреси
Для отримання додаткової інформації див Запитайте Ubuntu Питання: Що таке пристрій Loopback і як його використовувати?
Що таке IP-адреса 0.0.0.0?
0.0.0.0 є дійсним синтаксисом адреси. Таким чином, він повинен розібрати як дійсний скрізь, де очікується IP-адреса в традиційному десятковому форматі. Після розбору і перетворення в робочу числову форму, його значення визначає, що буде далі.
Значення «нульове значення» має особливе значення. Так і є дійсний, але має значення, яке може бути неприйнятним (і, таким чином, вважатися недійсним) для конкретних обставин. В основному це замінник «без особливої адреси». Для таких подій, як прив'язка до адреси мережевих з'єднань, результатом може бути призначення відповідного інтерфейсного адреси для з'єднання. Якщо ви використовуєте його для налаштування інтерфейсу, він може замінити адресу з інтерфейсу. Це залежить від контексту використання, щоб визначити, що насправді не має жодної конкретної адреси.
У контексті запису маршруту, це зазвичай означає маршрут за замовчуванням. Це відбувається в результаті більшої кількості адресної маски, яка вибирає біти для порівняння. Маска 0.0.0.0 не вибирає біт, тому порівняння завжди буде успішним. Тому, коли такий маршрут налаштований, завжди є де-небудь, куди слід перейти (якщо налаштовано з дійсним місцем призначення).
У деяких випадках тільки "0" також працюватиме і матиме той самий ефект. Але це не гарантовано. Форма 0.0.0.0 - це стандартний спосіб сказати "немає конкретної адреси" (тобто в IPv6 є :: 0 або просто ::).
Джерело: Що таке значення IP-адреси 0.0.0.0?
В Internet Protocol version 4 адреса 0.0.0.0 - це не-маршрутний метаадрес, який використовується для позначення неприпустимої, невідомої або непридатної цілі. Надати особливе значення іншим чином недійсним фрагментам даних - це застосування сигналізації в діапазоні.
У контексті серверів, 0.0.0.0 означає всі адреси IPv4 на локальному комп'ютері. Якщо хост має два IP-адреси, 192.168.1.1 і 10.1.2.1, а сервер, що працює на хості, слухає 0.0.0.0, він буде доступним для обох цих IP-адрес (Примітка: Цей текст повторюється згори як частина загальної відповіді).
У контексті маршрутизації 0.0.0.0 зазвичай означає маршрут за замовчуванням, тобто маршрут, який веде до "іншої частини" Інтернету, а не де-небудь в локальній мережі.
Використання включає:
- Адреса хоста претендує як свою власну, коли їй ще не присвоєно адресу. Такі, як при відправці початкового пакета DHCPDISCOVER при використанні DHCP.
- Адреса, яку хост призначає собі, коли запит адреси через DHCP не вдалося, за умови, що IP-стек хоста підтримує це. Це використання замінено на механізм APIPA в сучасних операційних системах.
- Спосіб вказати будь-який IPv4-хост взагалі. Він використовується таким чином, коли вказується маршрут за замовчуванням.
- Спосіб явно вказує, що цільової недоступний. Джерело: 127.0.0.1 - Які її застосування і чому це важливо?
- Спосіб вказати будь-якої адреси IPv4. Він використовується таким чином при налаштуванні серверів (тобто при прив'язуванні прослуховуючих сокетів). Програмістам TCP це відомо як INADDR_ANY. [bind (2) прив'язується до адрес, а не до інтерфейсів.]
В IPv6 адреса all-zeros записується як ::
Джерело: 0.0.0.0 [Вікіпедія]
Виявлення / запит DHCP
Коли клієнт завантажується вперше, він вважається, що він знаходиться в стан ініціалізації, і передає повідомлення DHCPDISCOVER у своїй локальній фізичній підмережі через порт 67 протоколу дейтаграм (UDP) (сервер BootP). Оскільки клієнт не має можливості дізнатися підмережу, до якої він належить, DHCPDISCOVER - це трансляція всіх підмереж (IP-адреса призначення 255.255.255.255), з IP-адресою джерела 0.0.0.0. IP-адреса джерела - 0.0.0.0, оскільки клієнт не має налаштованої IP-адреси.
Якщо DHCP-сервер існує в цій локальній підмережі і налаштований і працює правильно, сервер DHCP почує трансляцію і відповість повідомленням DHCPOFFER. Якщо DHCP-сервер не існує в локальній підмережі, для цього локальної підмережі повинен бути агент DHCP / BootP Relay, щоб переслати повідомлення DHCPDISCOVER до підмережі, яка містить сервер DHCP.
Цей агент ретрансляції може бути або виділеним хостом (наприклад, Microsoft Windows Server), або маршрутизатором (наприклад, маршрутизатор Cisco налаштований з допоміжними операторами рівня інтерфейсу IP).
…
Після того, як клієнт отримає DHCPOFFER, він відповідає повідомленням DHCPREQUEST, вказуючи свій намір прийняти параметри в DHCPOFFER, і переходить до запитуюча держава. Клієнт може приймати декілька повідомлень DHCPOFFER, один з кожного DHCP-сервера, який отримав оригінальне повідомлення DHCPDISCOVER. Клієнт вибирає один DHCPOFFER і відповідає тільки на цей DHCP-сервер, неявно відхиляючи всі інші повідомлення DHCPOFFER. Клієнт ідентифікує вибраний сервер шляхом заповнення Ідентифікатор сервера поле з IP-адресою сервера DHCP.
DHCPREQUEST також є трансляцією, тому всі DHCP-сервери, які надіслали DHCPOFFER, побачать DHCPREQUEST, і кожен буде знати, чи був прийнятий DHCPOFFER або відхилений. Будь-які додаткові параметри конфігурації, які вимагає клієнт, будуть включені в поле параметрів повідомлення DHCPREQUEST. Незважаючи на те, що клієнту була запропонована IP-адреса, вона надішле повідомлення DHCPREQUEST з вихідним IP-адресою 0.0.0.0. У цей час клієнт ще не отримав підтвердження того, що він може використовувати IP-адресу.
…
Розмова клієнт-сервер для клієнта, який отримує адресу DHCP, де клієнт і сервер DHCP знаходяться на одній підмережі:
Джерело: Розуміння та усунення несправностей DHCP у комутаторах Catalyst або мережах підприємств
Стандартний маршрут
Цей документ пояснює, як налаштувати маршрут за промовчанням або шлюз останньої інстанції. Ці команди IP використовуються:
- ip-шлюз за замовчуванням
- ip default-мережа
- ip route 0.0.0.0 0.0.0.0
IP-маршрут 0.0.0.0 0.0.0.0
Створення статичного маршруту до мережі 0.0.0.0 0.0.0.0 - це ще один спосіб встановити шлюз останньої інстанції на маршрутизаторі. Як з ip default-мережа Команда, що використовує статичний маршрут до 0.0.0.0, не залежить від протоколів маршрутизації. Однак маршрутизація IP-адрес повинна бути включена на маршрутизаторі.
Примітка: IGRP не розуміє маршрут до 0.0.0.0. Таким чином, він не може поширювати маршрути за замовчуванням, створені за допомогою ip route 0.0.0.0 0.0.0.0 команду. Використовувати ip default-мережа Команда IGRP поширює маршрут за замовчуванням.
Джерело: Налаштування шлюзу останнього курорту за допомогою команд IP
Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.