Каковы последствия неправильной настройки маски сети?

каковы последствия неправильной настройки маски сети? У меня есть приложение C++, которое устанавливает сетевую маску устройства. Если сетевая маска установлена неправильно, tftp, похоже, работает неправильно. Почему это произошло? Какие еще проблемы возникают, когда маска сети неправильно установлена для устройства/ПК?

4 ответов


хотя этот вопрос, вероятно, больше касается IP-сетей, чем программирования, это сложная тема для многих разработчиков.

маска сети разделяет адрес хоста (ваш компьютер или сервер) и сетевой адрес (часть инфраструктуры логической сети, в которой живет ваша система). Эти две части используются для доставки пакета данных на правильное устройство. Сетевой адрес получается путем сопоставления сетевой маски с IP-адресом. Рассмотреть следующее сценарий:

IP Address: 10.0.1.1
Netmask: 255.255.0.0

часть адреса хоста IP-адреса для нашего ПК-1.1, поэтому ПК знает, что любые адреса хостов начинаются с 10.0. местные к нему. Любые адреса, которые затем запускают 10.1 и т. д., не являются "локальными" и должны быть перенаправлены на маршрутизатор. Если у вас есть другое устройство, предназначенное для работы в той же сети, что и:

IP Address: 10.0.2.1
Netmask: 255.255.255.0

здесь сетевая маска неверна для нашей настройки примера, это устройство теперь будет видеть сетевой адрес как 10.0.2 и хост адрес как 1, если он попытается связаться с 10.0.1.1, он увидит сетевой адрес 10.0.1! Не локальный и поэтому будет ссылаться на маршрутизатор по умолчанию для пересылки. Если сетевая маска была правильно установлена (т. е. такая же, как в первом примере, предполагая, что это правильная настройка для вашей сети), то второе устройство увидит первое как локальное, т. е. в сети 10.0 и не будет пытаться переслать пакет маршрутизатору.

многие протоколы с радостью справятся с этим, но tftp предназначен для работы в пределах одной сети и поэтому потерпит неудачу, поскольку есть ощущение, что цель находится в другой сети.

Это может не описать вашу точную ситуацию, но я надеюсь, что пример демонстрирует важный принцип, что конфигурация имеет значение, вы не можете иметь неточно настроенную среду и ожидать, что она будет работать.


маска сети определяет, какие IP-адреса являются локальными (не маршрутизируемыми); IP-адреса вне этого диапазона проходят через маршрутизатор. Если маска сети неверна, программа пытается напрямую получить доступ к сайтам, где она должна пройти через маршрутизатор, или наоборот.


маска сети определяет, какая часть IP-адреса используется в качестве адреса сети и какая часть используется для рабочих станций.

Первый Пример:

IP1: 192.168.20.4
IP2: 192.168.192.4
NM:  255.255.0.0

оба IPs находятся в одной сети. Они могут общаться друг с другом без использования маршрутизатора. Это потому, что IP-адреса приведут к одной и той же битовой маске, когда вы или она с сетевой маской.

Второй Пример:

IP1: 192.168.20.4
IP2: 192.168.192.4
NM:  255.255.128.0

теперь оба IPs находятся в разных сетях, потому что когда вы или IP-адреса с сетевой маской, результирующая битовая маска будет отличаться, и они не смогут общаться друг с другом без маршрутизатора, который маршрутизирует между двумя сетями.

Вы можете проверить это сами с определить IP-адрес.


объясняются возможные последствия несоответствия сетевой маски здесь. Короче:

  1. хост, вероятно, построит таблицу маршрутизации неправильно.
  2. хост пропустит некоторые широковещательные пакеты и не отправит трансляции должным образом.

Mis-функция TFTP почти наверняка вызвана первой причиной. Это влияет на любой другой протокол IP таким же образом.

другие ответы упоминают только первую проблему (что нормально, поскольку второй довольно маргинальный). Обратите внимание, что не маска сети самого интерфейса определяет, как будут маршрутизироваться IP - пакеты-это подсистема маршрутизации хоста; но маска сети обычно используется для построения таблицы маршрутизации.