Що таке IPV6 для localhost та 0.0.0.0?


101

Як ми всі знаємо, адреса IPv4 для localhostє 127.0.0.1(адреса зворотного зв'язку). Для чого потрібна адреса IPv6 localhostі для чого 0.0.0.0мені потрібно заблокувати деякі хости оголошень.

Відповіді:


120

Як ми всі знаємо, що адреса IPv4 для localhostє 127.0.0.1(адреса зворотного зв'язку).

Насправді, будь-яка адреса IPv4 в 127.0.0.0/8є адресою зворотного зв'язку.

У IPv6 прямим аналогом діапазону зворотного зв'язку є ::1/128. Отже ::1(довга форма 0:0:0:0:0:0:0:1) є єдиною адресою зворотного зв'язку IPv6.


Хоча ім'я хосту localhostзазвичай вирішує 127.0.0.1або ::1, я бачив випадки, коли хтось прив'язував його до IP-адреси, яка не є адресою зворотного зв'язку. Це трохи божевільно ... але іноді люди це роблять.

Я кажу "це божевілля", тому що ви можете порушити припущення щодо програм, роблячи це; наприклад, програма може спробувати виконати зворотний пошук IP-адреси із зворотним зв'язком і не отримати очікуваний результат. У гіршому випадку додаток може в кінцевому підсумку випадково надіслати чутливий трафік через небезпечну мережу ... хоча, ймовірно, вам доведеться зробити й інші помилки, щоб "досягти" цього.


Блокування 0.0.0.0не має сенсу. У IPv4 він ніколи не маршрутизується. Еквівалентом IPv6 є ::адреса (довга форма 0:0:0:0:0:0:0:0) ... яка також ніколи не маршрутизується.

0.0.0.0І ::адреси зарезервовані для позначення «будь-яку адресу». Так, наприклад, програма, яка надає веб-послугу, може прив'язуватися до 0.0.0.0порту 80, щоб приймати з'єднання HTTP через будь-яку адресу IPv4 хосту. Ці адреси не є дійсними як джерела або адреси призначення для IP-пакету.


Нарешті, деякі коментарі запитували про ::/128порівнянні в ::/0порівнянні ::.

Яка ця різниця?

Власне кажучи, перші два - це позначення CIDR, а не адреси IPv6. Вони фактично вказують діапазон IP-адрес. CIDR складається з IP-адреси та додаткового числа, що визначає кількість бітів у мережевій масці. Вони разом визначають діапазон адрес; тобто набір адрес, утворених ігноруванням бітів, замаскованих за даною адресою.

Тому:

  • :: означає лише адресу IPv6 0:0:0:0:0:0:0:0
  • ::/128означає 0:0:0:0:0:0:0:0з маскою мережі, що складається з 128 бітів. Це дає діапазон мережі з точно однією адресою.
  • ::/0означає 0:0:0:0:0:0:0:0з маскою мережі, що складається з 0 бітів. Це дає діапазон мережі з 2 128 адресами; тобто це весь адресний простір IPv6!

Для отримання додаткової інформації прочитайте сторінки Вікіпедії на адреси IPv4 та IPv6 та позначення CIDR:


65

Локальний хост IPv6

::1- адреса зворотного зв'язку в IPv6.

Всередині URL-адрес

Всередині URL-адреси використовуйте квадратні дужки []:

  • http://[::1]/
    За замовчуванням порт 80.
  • http://[::1]:80/
    Вкажіть порт.

Включення літералу IPv6 у квадратні дужки для використання в URL-адресі визначено у RFC 2732 - Формат для буквальних адрес IPv6 у URL-адресах .



4

Лише для повноти: існують IPv4-зіставлені адреси IPv6 , де ви можете вбудувати IPv4-адресу в адресу IPv6 (можливо, не всі пристрої IPv6 підтримують).

Приклад: Я запускаю на своїй машині сервер, до якого можна отримати доступ http://127.0.0.1:19983/solr. Якщо я отримую доступ до нього через IPv4-адресу IPv6-адреси, тоді я отримую доступ до неї через http://[::ffff:127.0.0.1]:19983/solr(яка буде перетворена http://[::ffff:7f00:1]:19983/solr)


2

Для використання в /etc/hostsфайл як просту техніку блокування реклами, яка призводить до того, що домен не вдається вирішити, адреса 0.0.0.0 широко застосовується, оскільки спричиняє негайний збій запиту, навіть не намагаючись, оскільки це недійсна або маршрутизована адреса. Це порівняно з використанням 127.0.0.1 у цьому місці, де він, принаймні, перевірить, чи прослуховує ваш власний комп’ютер на запитуваному порту 80, перш ніж вийде з ладу із повідомленням „з’єднання відмовлено”. Будь-яка з цих адрес, що використовуються у файлі хостів для домену, зупинить спроби будь-яких запитів через фактичну мережу, але 0.0.0.0 отримав прихильність, оскільки з вищевказаної причини є більш оптимальним. IP-адреси "127" намагатимуться потрапити на ваш власний комп'ютер, а будь-який інший IP призведе до надсилання запиту до маршрутизатора для спроби маршрутизації, але для 0.0.0.0 там '

Все сказане, достатньо будь-якого IP-адреси, вказаного у вашому файлі хостів для блокування домену, і вам не потрібно буде або не потрібно вводити адресу ipv6 у файл хостів, якщо - можливо - ви цього не зробите увімкнути ipv4 взагалі. Я б справді здивований, якби це було так. І все-таки, я думаю, якщо хост з'явиться в / etc / hosts з поганою адресою ipv4, коли у вас не ввімкнено ipv4, все одно ви отримаєте той результат, який ви шукаєте, а саме, щоб він провалився, замість того, щоб шукати реальний DNS, скажімо, adserver-example.com і повернення IP-адрес v4 або v6.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.