Как рассчитать подсеть

  • Автор темы Автор темы Dragokas
  • Дата начала Дата начала

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
8,030
Решения
13
Реакции
6,805
Подготовил: Alex Dragokas.
Лучшие благодарности за мое обучение
администратору LAMM_-*-_VURDALAK​

Для тех, кто проникся основами подсетей из этой статьи,
теперь кратко расскажу, как их рассчитывать.

Позабавляемся.
В целом, поиграться с готовыми калькуляторами и увидеть как все работает
Вы можете через он-лайн формы, например, здесь и здесь (побитно).

ip-калькулятор.webp


Кто не понимает о чем речь.
Весь интернет (который IPv4) делится на блоки IP-адресов.
У каждого провайдера по нескольку таких блоков.

Блок состоит из начального IP-адреса (First IP) и последнего IP-адреса (Last IP) (диапазон адресов).
Кол-во IP, которые входят в диапазон зависят от маски подсети (Subnet Mask).

Формула такая:
Кол-во IP = 2 ^ (32 - Маска) - 2

-2 это с учетом того, что:
x.x.x.0 - сеть
x.x.x.1 - шлюз
x.x.x.255 - широковещательный адрес

(.0 и .255 в счет не включаем).

Т.е. чем меньше битов маски, тем больше IP входят в подсеть.

___________________________
Что мы будем считать ? (спросите Вы)

Наша задача:

Берем произвольный IP, например, 1.1.134.1 и маску в 21 бит.

1.1.134.1 /21

Вопрос такой: к какому диапазону IP-адресов относится данный IP.

Решение:

Требования:
1. Нам понадобится знать о побитовых операциях НЕ, И, ИЛИ. Можно почитать здесь.
2. И еще уметь переводить из 10-чной системы счисления в 2-чную и обратно.
По-первой хватит калькулятора Windows: Win + R -> calc.exe -> Вид -> Программист.

calc.webp


Записываем IP и Subnet Mask в виде битов, применяем операцию AND:

00000001.00000001.10000110.00000001 - IP (1.1.134.1)
11111111.11111111.11111000.00000000 - SM (255.255.248.0 - 21 бит)
--------------------------------------------------- - операция AND
00000001.00000001.10000000.00000000 - FIRST IP (1.1.128.0)

Получили первый IP этого блока.
Инвертируем маску (операция NOT).

11111111.11111111.11111000.00000000 - SM
00000000.00000000.00000111.11111111 - INVERT SM

Применяем к исходному IP операцию OR

00000001.00000001.10000110.00000001 - IP
00000000.00000000.00000111.11111111 - INVERT SM
--------------------------------------------------- - операция OR
00000001.00000001.10000111.11111111 - LAST IP (1.1.135.255)

Задача решена:
IP-адрес 1.1.134.1 /21
входит в подсеть с диапазоном адресов от 1.1.128.0 до 1.1.135.255.

Спасибо за внимание.
 
Последнее редактирование:
Назад
Сверху Снизу