Назад | Перейти на главную страницу

Почему 0.0.0.0 разрешается в устройство обратной петли?

Почему 0.0.0.0 разрешается в устройство обратной петли?

$ curl --verbose 0.0.0.0
* Rebuilt URL to: 0.0.0.0/
* Hostname was NOT found in DNS cache
*   Trying 0.0.0.0...
* Connected to 0.0.0.0 (127.0.0.1) port 80 (#0)

Это следует из требования RFC. RFC 5735 говорит:

  1. Глобальные и другие специализированные адресные блоки

    0.0.0.0/8 - Адреса в этом блоке относятся к исходным хостам в «этой» сети. Адрес 0.0.0.0/32 может использоваться как исходный адрес для этого хоста в этой сети.; другие адреса в пределах 0.0.0.0/8 могут использоваться для ссылки на указанные хосты в этой сети

Учитывая это, единственное рациональное решение 0.0.0.0 как пункт назначения - относиться к нему так же. Вы не можете направить его куда-либо еще, потому что возвратные пакеты нарушили бы RFC; нельзя сказать, что он недействителен, потому что он не используется в качестве источника; единственная разумная вещь, которую можно сделать с ним, когда он используется в качестве пункта назначения, - это сопоставить его с localhost также.

Один из моих старых коллег использовал telnet 0 22 как реальная экономия времени для telnet localhost 22.