Насколько я понимаю, «сетевой адрес» как специальный адрес является артефактом из классных IP-сетей прошлого. Сегодня мы используем бесклассовую междоменную маршрутизацию ( CIDR ) в Интернете, которая не имеет понятия сетевого адреса (если вы посмотрите на ссылку RFC 4632, приведенную выше, вы увидите, что в ней перечислены 256 возможных IP-адресов на унаследованную версию). Блок «C», например, нет зарезервированных адресов ни для сети, ни для широковещательного адреса (хотя широковещательные рассылки определены как важные в других RFC).
При этом вам все равно не следует назначать сетевой адрес какому-либо конкретному хосту в сети: сетевой адрес необходим для маршрутизации. Эта концепция широко используется в RFC ( RFC 1812 ). Просто посмотрите на таблицы маршрутизации ( route
команда), вы увидите, как ваш локальный сетевой адрес используется для отделения трафика локальной сети от того, что должно проходить через маршрутизатор. Что если этот локальный сетевой адрес был назначен какому-либо узлу?
Еще хуже: лучше не назначать IP-адреса, оканчивающиеся на ноль, даже если этот адрес не является сетевым адресом. Например, если ваша сеть 10.10.0.0/255.255.0.0, IP-адрес 10.10.5.0 не является вашим сетевым адресом, но вам лучше не назначать такой IP-адрес, даже если он полностью действителен даже в классных IP-сетях. Некоторые устаревшие программные / IP-стеки могут иметь проблемы с этим.
ОБНОВЛЕНИЕ: гоблинлордом
Согласно RFC 1812 (раздел 5.3.5.2) то, что мы называем сетевым адресом, первоначально использовалось для «направленных широковещательных рассылок », которые отправляли широковещательный пакет в нужную сеть. Эта функция устарела из-за SMURF-атак. Функция была официально изменена в RFC 2644 . Впоследствии, дальнейшие реализации должны молча отбрасывать пакеты с адресом источника, как описано (сетевой адрес). Хотя это то, что должно произойти, мне любопытно, сколько реализаций на самом деле делают это.
Это дополнительно добавляется в RFC 3021, когда была решена подсеть / 31.
Таким образом, практический ответ: это действительно зависит. Это зависит от:
Я не сталкивался с какими-либо проблемами при доступе к сайтам при тестировании этого; кажется, что в конечном итоге все зависит от капризов сетевых администраторов. Обычно вышестоящее устройство не может определить, является ли адрес частью сети или широковещательным адресом, или нет, поскольку это просто адрес в большем блоке для них ... Так что никакие интернет-провайдеры не будут блокировать вас от назначения и используя ваш сетевой адрес, если они не назначены вам, а администратор сети явно не заблокировал его.
Я уверен, что есть аналитики и хакеры по безопасности, которые имеют безумно подробную статистику о том, сколько именно вариантов реализации стека TCP-IP существует и что делать, а что не разрешать и не разрешать, и как именно и где они пропускают свой след. ,
На самом деле, я просматриваю и публикую это с моего сетевого адреса.
Не называйте меня плохим интернетом, если у вас нет лучшего решения починить этот карточный домик: реальность такова, что, если это возможно, это случится. Реальность такова, что никто по-настоящему умный не сел и не продумал все это во всех возможных итерациях, чтобы придумать абсолютно надежный дизайн, прежде чем люди начнут его использовать - как и в большинстве случаев в жизни. Результат? Стандарты, в которых многие вещи не суммируются и / или теряются в переводе.
Добро пожаловать в реальный мир. Не позволяйте этому отговаривать вас от погони за неуловимыми оптимальными идеалами ... Просто не ждите поддержки от «официальных» каналов или форумов, если вы не хотите запачкать руки и посвятить этому свое время и жизнь, создавая необходимый консенсус и навигация по политике вокруг этого.
Итак, я думаю, что другие авторы пытались сказать: если вы хотите сделать эту официальную политику и использовать ее в производстве, вы сами по себе. (Но разве не так ли?) Может, нам повезет, и компьютерный интеллект разработает для нас IPv8, который обратно совместим с IPv4 и IPv6 и всеми их испорченными реализациями.
источник
Я новичок в сети, но я также дам свои 2 цента.
Если у меня есть подсеть / 28 из xxx0 - xxx15 Согласно предопределенным правилам, у нас будет 14 используемых хостов и 2 оставшихся. остальные для сети и широковещания.
Позволяет вместо того, чтобы следовать правилу выше, фактически использовать все 16 хостов. Тогда в этом случае все будет хорошо, никаких проблем. Но если бы коммуникация была необходима вне сети, это было бы невозможно из-за нехватки ресурсов для отправки или получения информации.
Я не очень хорош в объяснении, но, говоря иначе.
Если бы я жил в доме на улице, а на улице содержалось 14 домов. Въезд и выезд для доступа к главной дороге.
Мой почтовый адрес будет варьироваться от 1-14 Personal Street, Off Network Road.
Это не будет проблемой для почтальона. Теперь предположим, что разработчики стали жадными, добавили еще 2 дома и избавились от переулков.
Тогда мой новый почтовый адрес будет варьироваться от 1-16 Personal Street
В этом случае почтальон будет в беде.
Это предположение, дайте мне знать, если я говорю на быка.
источник
Сетевой адрес позволяет создавать таблицы маршрутов с целевым столбцом фиксированного размера (4 байта IPv4) и двоичными операциями фиксированного размера, так что маршрутизация хоста и сетевая маршрутизация фактически являются одним и тем же.
Представьте себе таблицу маршрутизации, подобную этой: (этот ПК имеет параллельное соединение с другим ПК и сетевой картой)
AND между IP-адресом и маской сети дает именно то, что вам нужно, 4-байтовое число, которое можно сравнить с каждой строкой без дальнейших вычислений.
Таким образом, нулевой номер хоста является особым в том смысле, что после операции AND его адрес, естественно, представляет всю сеть.
Если вы решили использовать номер сети в качестве номера хоста, это приведет к появлению такой таблицы:
Это кажется законным, поэтому я предполагаю, что понятие сетевого адреса используется для целей маршрутизации, и поэтому было решено произвольно пометить его как специальный адрес и запретить его использование в качестве адреса хоста.
Ну ... на самом деле все не так просто. Я решил попробовать (!!!):
В настоящее время сетевые программы не позволяют мне использовать номер сети в качестве обычного адреса.
источник
В поисках ответа на этот вопрос я наткнулся на эту статью от Cisco. Следующая цитата из этой статьи хорошо подытоживает, я думаю.
Избежать путаницы - это достаточно веская причина для меня.
источник
RFC 1122 («Требования к интернет-хостам - коммуникационные уровни») запрещает это:
источник
Сетевой адрес не считается адресом хоста, это всего лишь число. В областях с ограниченным адресом, таких как двухточечные сети, маска / 30 часто используется, но все еще использует адреса хоста. Менее практичным, но достигающим того же принципа, является использование маски / 31 и использование одного конца в качестве сетевого адреса, а другого - в качестве широковещательной передачи.
Ex.
источник