Вычисление маски для подсети или диапазона адресов
Материал из Nix.zeya.org
Статья написана на базе этого поста, где пользователь спрашивает о выделении нескольких адресов в один диапазон. Этот же метод используется для "нарезки" подсетей из адреса сети.
По-простому, маска вычисляется путём объединения адресов в одно множество. Для примера, есть адреса 10.30.3.34 и 10.30.5.4: 1. Переводим адреса в бинарный вид:
0000 1010 . 0001 1110 . 0000 0011 . 0010 0010 == 10.30.3.34 0000 1010 . 0001 1110 . 0000 0101 . 0000 0010 == 10.30.5.04
2. Та непрерывная часть обоих адресов, которая не меняется, начиная слева, маркируется единицами (выделено красным):
0000 1010 . 0001 1110 . 0000 0011 . 0010 0010 == 10.30.3.34
0000 1010 . 0001 1110 . 0000 0101 . 0000 0010 == 10.30.5.04
1111 1111 . 1111 1111 . 1111 1000 . 0000 0000
3. Затем подсчитывается кол-во единичек - это и будет маска.
1111 1111 . 1111 1111 . 1111 1000 . 0000 0000 == 21
В итоге, для того чтобы создать диапазон адресов, в который бы входили эти два адреса, нужно применить маску 21, но также следует указать адрес сети. Он вычисляется путём перевода "постоянной составляющей" этих двух адресов в десятичный вид.
0000 1010 . 0001 1110 . 0000 0011 . 0010 0010 == 10.30.3.34
0000 1010 . 0001 1110 . 0000 0101 . 0000 0010 == 10.30.5.04
1111 1111 . 1111 1111 . 1111 1000 . 0000 0000
0000 1010 . 0001 1110 . 0000 0000 . 0000 0000 <-- Динамическая составляющая (выделена зелёным) забивается нулями в этой строке
4. Затем, то что получилось, переводится обратно в десятичный вид:
0000 1010 . 0001 1110 . 0000 0000 . 0000 0000 == 10.30.0.0
Итак, адрес сети будет 10.30.0.0 и маска 21 или 10.30.0.0/21
Смотрите также
- Обсуждение статьи на форуме
- Книга "Практика построения компьютерных сетей". Максим Кульгин. Издательство "Питер".
- Книга "TCP/IP. Для профессионалов". 3-е издание. Тим Паркер (Tim Parker), Каранжит Сиян (Karanjit S. Siyan). Издательство "Питер".