Linux mini-HOWTO

Вычисление сетевой маски и сетевых адресов


Сетевая маска позволяет разделить сеть на несколько подсетей.

Сетевая маска для сети, не разделенной на подсети - это просто четверка чисел, которая имеет все биты в полях сети, установленные в '1' и все биты машины, установленные в '0'.

Таким образом, для трех классов сетей стандартные сетевые маски выглядят следующим образом:

  • Класс A (8 сетевых битов) : 255.0.0.0

  • Класс B (16 сетевых бита): 255.255.0.0

  • Класс C (24 сетевых бита): 255.255.255.0

Способ организации подсетей заимствует один или более из доступных битов номера хоста и заставляет интерпретировать эти заимствованные биты, как часть сетевых битов. Таким образом, чтобы получить возможность использовать, вместо одного номера подсети, два, мы должны заимствовать один бит машины, установив его (крайний левый) в сетевой маске в '1'.

Для адресов сети класса C это привело бы к маске вида 11111111.11111111.11111111.10000000 или 255.255.255.128

Для нашей сети класса C с сетевым номером 192.168.1.0, есть несколько случаев:

Число Число машин подсетей на сеть Сетевая маска 2 126 255.255.255.128 (11111111.11111111.11111111.10000000) 4 62 255.255.255.192 (11111111.11111111.11111111.11000000) 8 30 255.255.255.224 (11111111.11111111.11111111.11100000) 16 14 255.255.255.240 (11111111.11111111.11111111.11110000) 32 6 255.255.255.248 (11111111.11111111.11111111.11111000) 64 2 255.255.255.252 (11111111.11111111.11111111.11111100)

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

Выбрав подходящую сетевую маску, вы должны определить сетевые, широковещательные адреса и диапазоны адресов, для получившихся сетей. Снова, рассматриваем только сетевые номера класса C и печатаем только заключительную часть адреса, мы имеем:



Содержание раздела