почему петлевой IP-адрес от 127.0.0.1 до 127.255.255.254?

34

Я знаю, что 127.0.0.1 ~ 127.255.255.254 - это петлевые IP-адреса для большинства современных операционных систем, и мы могли бы использовать эти IP-адреса для обозначения нашего собственного компьютера. Но не достаточно 127.0.0.1?!?! почему широкий ассортимент? почему с 127.0.0.1 до 127.255.255.254?


источник

Ответы:

42

Сеть 127/8 может использоваться для разных целей.

1) Моделирование большого количества разных компьютеров в быстрой сети (просто подключите больше интерфейсов и привязайте к ним службы) без использования виртуальных машин. Это может быть полезно, если вы по какой-то причине хотели, чтобы несколько разных веб-серверов работали локально на порту 80.

2) Разрешение большего количества локально запущенных сервисов, чем было бы разрешено 64k TCP (хотя кажется маловероятным, что вы достигнете этого предела рационально)

3) Играть в игры с людьми, которые не знакомы с этим фактом; «Эй, ты неудачливый хакер, держу пари, ты даже не можешь взломать меня. Давай, попробуй; я на 127.45.209.66»

Возможно, и другие вещи.

Слартибартфаст
источник
4
Я могу засвидетельствовать, что нашел # 1 полезным в чем-то, над чем я сейчас работаю, когда я делаю другие частные серверы на локальном хосте через SSH-туннелирование.
Jeteon
Но это не так в IPv6?
Ограниченное искупление
IPv6 имеет локальную адресацию. Не то же самое, но применимо. serverfault.com/a/754287/178
Писквор
12

http://www.ietf.org/rfc/rfc1700.txt

Когда-то IP-адреса считались обильными: целые блоки / 8 и / 16 были отданы тому, кто их запрашивал.

Напоминаем, что хотя 127/8 зарезервировано, RFC заявляет, что следует использовать только 127.0.0.1/32 ( http://www.ietf.org/rfc/rfc3330.txt ).

Марк Хендерсон
источник
так что .. нет других IP-адресов в этом диапазоне, кроме 127/32 ????
он используется для traceroute в MPLS, но они могут выбрать другой диапазон IP.
радиус
@ Farseeker - 127/32? Вы имели в виду 127.0.0.1/32?
Стив Фолли
23
RFC 3330 не утверждает, что следует использовать только 127.0.0.1/32. Это делает замечание , что она обычно реализуется с использованием только 127.0.0.1/32. Весь блок 127.0.0.0/8 все еще зарезервирован для обратной связи.
Джулиано
2
RFC 5735 устарел RFC 3330
Клаус се
1

Когда был разработан этот стандарт, вероятно, имело смысл иметь столько битов в петлевой подсети, сколько наибольшей возможной классовой подсети, которая составляет 24 бита. Конечно, мы больше не заботимся о классовых подсетях. Вот почему IPv6 просто выделяет один адрес для этой цели.

LawrenceC
источник
9
Это идет глубже, чем это; поскольку 127/8 является сетевым адресом, который начинается с 0-бит и содержит все 1-бит в остальной части первого октета, то есть ВСЕ, с которым должен обращаться RFC-совместимый сетевой стек, чтобы определить, куда направлять трафик. Тот факт, что этого не происходит ни в одном другом адресе, использовался как оптимизация, а не потому, что они думали, что имеет смысл зарезервировать 16 миллионов адресов обратной связи (этого не было и до сих пор нет).
Адаптер
1
Не следуя @TomTom - 127.0.0.1 будет оценивать двоичный код 0111 1111 0000 0000 0000 0000 0000 0001, который все еще положителен (это MSB, который является битом знака) - теперь, 128.0.0.1 (1000 0000 0000 0000 0000 0000) 0000 0001) является отрицательным.
LawrenceC
ой, ты прав. Удален мой комментарий.
TomTom