Установлен ли в качестве получателя IP-адреса IP-адрес подсети?
Да. Это действительный IP-адрес, поэтому его можно использовать.
Если да, то в каких случаях и почему?
Это просто один из 255 используемых IP-адресов в / 24
Если нет, то почему бы не освободить этот адрес для использования любым хостом?
Если у вас устаревшее оборудование, вам нужно проверить, использует ли оно первый или последний адрес в качестве сетевого адреса. (.0 или .255 для сетей с маской FF.FF.FF.00)
Это делает хорошей привычкой пропускать этот IP. И привычки, усвоенные давно, трудно игнорировать.
И люди, которые не знают фон, не используют его, «потому что другие тоже не используют его, поэтому его использование должно быть неправильным» или потому, что они не понимают, что «0» может быть первым числом.
[Редактировать] Grezzo только что протестировал его в Windows XP, где графический интерфейс Windows Network 'услужливо' предотвратил эту настройку. Windows 7 имеет такое же поведение. Я тогда попробовал это на хосте не-Windows, где это только работает. Если вы используете Windows, вам, возможно, придется настроить сеть вручную через IPconfig, чтобы установить для нее все нули.
[Редактировать 2]
Чем дольше я работаю с этим, тем больше путаюсь.
Rfc4632 - Бесклассовая междоменная маршрутизация
, по-видимому, не запрещает это, но и явно не допускает.
В этом посте ServerFault упоминается: «По историческим причинам многие операционные системы рассматривают первый адрес как широковещательный. Например, пинг xxx0 из OS X, Linux и Solaris в моей локальной (/ 24) сети получает ответы. Windows не позволяет вам пинговать первый адрес по умолчанию, но вы можете включить его с помощью метода SetIPUseZeroBroadcast WMI. Интересно, можете ли вы использовать .0 в качестве адреса хоста в сети, работающей под управлением Windows? " ,
Это тот же вопрос, но не ответ.
Сетевой адрес также используется в таблицах маршрутизации. Но я не понимаю, почему это не сработает из-за этого. Те же обозначения в таблицах маршрутизации будут направлены в нужную сеть. Оказавшись в нужной сети, он достигнет ПК с IP 0.
(Все это для 192.168.1 / 24.
Если вы используете 192.168.0 / 23, то 192.168.1.0 будет допустимым и безопасным значением в середине диапазона)
[Редактировать 3]
Еще одна ссылка на тот же вопрос. Похоже, что-то популярное в обмене стека:
/superuser/379451/why-can-a-network-address-not-be-a-valid-host-address
И одна мысль:
Destination_IP вероятно И эды с сетевой мачтой (быстрая операция в аппаратных средств) перед тем , как по сравнению с записями в таблицах маршрутизации. Но:
(Полуслучайный IP) 192.168.0.42 И 255.255.255.0 дадут 192.168.0.0,
но 192.168.0.0 И 255.255.255.0 также дадут 192.168.0.0
[Изменить 4 - Задолго после того, как этот ответ был написан - возможно, мне придется переписать весь пост из-за этой новой информации ]
RFC923 утверждает на странице 3, что:
In certain contexts, it is useful to have fixed addresses with
functional significance rather than as identifiers of specific
hosts. When such usage is called for, the address zero is to be
interpreted as meaning "this", as in "this network". The address
of all ones are to be interpreted as meaning "all", as in "all
hosts". For example, the address 128.9.255.255 could be
interpreted as meaning all hosts on the network 128.9. Or, the
address 0.0.0.37 could be interpreted as meaning host 37 on this
network.
Цитирование @ylearn на нашем сайте сетевой инженерии
Я полагаю, что первая документация этого поступает из RFC950, который ссылается на RFC943 (который устарел RFC923 выше, но использует тот же язык для специальных адресов):
It is useful to preserve and extend the interpretation of these
special addresses in subnetted networks. This means the values
of all zeros and all ones in the subnet field should not be
assigned to actual (physical) subnets.
ifconfig
не жалуется, когда вы устанавливаете адрес хоста 24-сети на 0 или 255. Просто попробуйте его использовать.