2014-10-07 5 views
0

Это была одна из заданий, которые у меня были как домашние задания, которые я просто не могу понять. И моему учителю трудно объяснить это классом. Итак, вот я:Рассчитать маску подсети от диапазона IP

Проблема: Что такое маска подсети следующего диапазона адресов хоста? 99.224.0.1 - 99.239.255.254

Мое решение (или, насколько я) Сначала я записал IP-адреса в двоичном виде:

99.224.0.1 
01100011.11100000.00000000.00000001 
99.239.255.254 
01100011.11101111.11111111.11111110 

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

01100011.11101111.11111111.11111110 
01100011.11100000.00000000.00000001 (diff) 
----------------------------------- 
00000000.00001111.11111111.11111111 

Я проигнорировал последний бит из-за сетевого/широковещательного адреса.

Теперь я могу повернуть его вокруг и маску подсети ?:

11111111.11110000.00000000.00000000 
255.240.0.0 

Мой вопрос: Является ли мой подход правильный? Есть ли более простой способ сделать это (вручную или calc)?

Если я очень далек от правильного способа сделать это, может кто-нибудь помочь мне понять?

Спасибо за любую помощь.

ответ

2

Ваш ответ правильный, за исключением того, что классные адреса больше не существуют. Интернет переехал в Classless Inter-Domain Routing (CIDR) в 1993 году, поэтому ваша терминология немного устарела;)

IP-сети в эти дни работают с префиксами маршрутизации. Префикс представляет собой диапазон IP-адресов, определенных первым адресом в этом диапазоне, и количеством фиксированных битов в начале адреса. Ваш пример показывает это красиво.

Ваш примерный диапазон: 99.224.0.1 - 99.239.255.254. На самом деле это 99.224.0.0 - 99.239.255.255, потому что при использовании в подсети первый и последний адреса зарезервированы (но все еще часть подсети и префикса).

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

01100011.11101111.11111111.11111111 
01100011.11100000.00000000.00000000 
----------------------------------- (xor) 
00000000.00001111.11111111.11111111 
----------------------------------- (not) 
11111111.11110000.00000000.00000000 

Просто посчитайте количество 1 с самого начала: . Таким образом, ваш префикс: 99.224.0.0/12. Этот префикс охватывает все адреса, которые соответствуют 01100011.1110****.********.********.

При написании длины префикса вниз в качестве маски подсети вы действительно получаете 255.240.0.0.


Немного не по теме здесь, потому что речь идет о сети, а не об алгоритме расчета маски подсети, но может быть полезно: пример того, как можно планировать сеть адресации:

Допустим, что для моего офисного здания я получаю IP-адреса 192.0.2.0/24 (то есть 192.0.2.0 - 192.0.2.255, маска подсети 255.255.255.0, 256 адресов).Мне нужно 50 адресов для серверов, 100 адресов для сотрудников и 40 адресов для гостей.

Поскольку адресация работает с префиксами, все, что у вас есть, это сила 2. Если вы используете /24, у вас есть префикс с 256 адресами. Полный адрес 32 бита, первые 24 фиксированы, поэтому у вас осталось 8 бит. 2 = 256. Если вы используете /25 вы иметь префикс 128 адресов, /26 имеет 64 адреса и т.д.

Таким образом, вы можете также разделить префикс. 192.0.2.0/24 можно разделить на 192.0.2.0/25 и 192.0.2.128/25. И они могут быть разделены снова и снова, пока у вас не будет префикса, который охватывает только один адрес: a /32.

возвращение к примеру. Чтобы получить (по крайней мере) 50 адресов для серверов, мне нужно округлить до следующей мощности 2. Это 2 = 64. Для того, чтобы иметь столько адресов, мне нужен префикс /26. Для клиентских устройств мне нужно округлить до 128 (2), поэтому нам нужен /25. Для гостей следующая мощность 2 составляет 64 (2), поэтому /26.

Поэтому нам необходимо разделить /24 на /25 и два /26. Одно из возможных решений:

Client devices: 192.0.2.0/25 
Servers:   192.0.2.128/26 
Guests:   192.0.2.192/26 

После того, как мы настроим эти подсети на наших устройствах первого и последнего адреса каждой подсети становятся специальные (сети и широковещательный адрес), поэтому мы можем использовать эти диапазоны для наших устройств:

Client devices: 192.0.2.1 - 192.0.2.126 
Servers:   192.0.2.129 - 192.0.2.190 
Guests:   192.0.2.193 - 192.0.2.254 
+0

Я очень счастлив, что все правильно. Спасибо также за второй пример! Я слышал о CIDR, но наш учитель хотел начать с основ. –

+0

CIDR * есть * основы. Маски подсети и классные вещи являются устаревшими осложнениями;) –