Маска как 0.0.0.0

2219
Anon

Ниже было задано в качестве вопроса на экзамене, который я дал на прошлой неделе:

«Вам предоставляется два хоста с IP-адресами 152.46.69.12 и 152.46.69.105, для обоих из которых установлены маски 255.255.255.0. Как нужно изменить маски, чтобы заставить пинг с хоста 152.46.69.12 пройти через маршрутизатор для достижения хоста 152.46 .69.105 «.

Теперь вы можете установить маски на 255.255.255.192, чтобы убедиться, что это работает таким образом, но у меня есть пара других вопросов:
1) можно ли установить маску на 0.0.0.0, чтобы она работала так, как задан вопрос? Можете ли вы объяснить ваши причины. 2) можно ли установить маску на 255.255.255.64, чтобы она работала так, как задан вопрос? Также возможно, что один из старших битов в маске установлен в 0, а младший бит в маске установлен в 1.

Я просматривал различные форумы, но ничего, что давало ответы на мои вопросы.

Я очень плохо знаком с сетью и изучаю основные вещи в сети. Любые ответы приветствуются. Благодарю.

0

3 ответа на вопрос

4
Dave C
  1. Нет - 0.0.0.0 является эквивалентом / 0, что означает, что все локально, ничто не проходит через маршрутизатор.

  2. Опять же нет - сетевые маски работают в непрерывных блоках от высокого к низкому, установка младших битов с «пробелом», скорее всего, будет отклонена как незаконная в большинстве систем и просто не будет работать в других.

2
WinGuru

Маска подсети является «маской» в том смысле, что она отделяет сетевую часть IP-адреса от части хоста. Это бинарная операция маскирования, поэтому для маски подсети могут быть только определенные значения.

Для примера рассмотрим только один октет. У вас есть 8 бит для IP-адреса, а не 32 бита (4 октета * 8 бит / октет = 32 бита) в адресном пространстве IPv4. Как бы вы сказали системе, какая часть адреса имеет локальную значимость? Вот варианты:

SUBNET SUBNET ДВОЙНОЙ НОМЕР НОМЕРА ПОДНЕТА  ДЛИНА МАСКА ЗНАЧЕНИЕ ПОДНЕТЫ IP'S / SUBNET ГРАНИЦ ------ ------ -------- --------- ----------- ---------- 0 0 00000000 1 (2 ^ 0) 256 (2 ^ 8) Нет (вся подсеть является локальной) 1 128 10000000 2 (2 ^ 1) 128 (2 ^ 7) Каждый кратный 128 (0-127, 128-255) 2 192 11000000 4 (2 ^ 2) 64 (2 ^ 6) Каждое кратное 64 (0-63, 64-127 и т. Д.) 3 224 11100000 8 (2 ^ 3) 32 (2 ^ 5) Каждый кратный 32 (0-31, 32-63 и т. Д.) 4 240 11110000 16 (2 ^ 4) 16 (2 ^ 4) Каждое кратное 16 (0-15, 16-31 и т. Д.) 5 248 11111000 32 (2 ^ 5) 8 (2 ^ 3) Каждое кратное 8 (0-7, 8-15 и т. Д.) 6 252 11111100 64 (2 ^ 6) 4 (2 ^ 2) Каждое кратное 4 (0-3, 4-7 и т. Д.) 7 254 11111110 128 (2 ^ 7) 2 (2 ^ 1) Каждое кратное 2 (0-1, 2-3 и т. Д.) 8 255 11111111 256 (2 ^ 8) 1 (2 ^ 0) Все (каждый хост имеет свою подсеть) 

На практике вы теряете два IP-адреса на подсеть, поскольку первый IP-адрес считается «сетевым» адресом, а последний IP-адрес - «широковещательным» адресом. Это означает, что вы никогда не сможете направить трафик в сеть с маской подсети .254, так как она имеет только два возможных адреса, и оба они уже зарезервированы (нет дополнительного места для адреса шлюза и хоста). Наименьшая возможная маршрутизируемая подсеть использует маску подсети .252, поскольку она дает достаточно места для адресов сети, шлюза, хоста и широковещания.

В вашем примере вы хотите разделить сети между .12 и .105. Вы не можете использовать маску подсети .0, потому что это означает, что они находятся в одной подсети. Вы не можете использовать маску подсети .128, потому что и .12, и .105 в диапазоне .0-127 подсети. Вы можете использовать маску подсети .192, потому что .12 будет в подсети .0-63, а .105 будет в подсети .64-127.

Вы можете использовать маску подсети .224, потому что .12 будет в подсети .0-31, а .105 будет в подсети .96-127. Вы можете использовать маску подсети .240, потому что .12 будет в .0-15, в то время как .105 будет в .96-111. Вы можете использовать .248, потому что .12 будет в .8-15, в то время как .105 будет в .104-111.

Вы не можете использовать маску подсети .252, так как .12 попадает в «сетевую» часть адреса .12-15 подсети. Вы не можете использовать подсеть .254 или .255, так как .252 - это наименьшая возможная маршрутизируемая подсеть.

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

152.46.69.12 10011000.00101110.01000101.00001100 152.46.69.105 10011000.00101110.01000101.01101001 ........ ........ ........ .xxxxxxx Длина подсети: 8 +8 +8 +1 = / 25 Маска подсети: 255 .255 .255 .128 = 255.255.255.128 

Считая подобные биты слева направо, это показывает, что наибольшая возможная длина подсети составляет 25 бит. Выражено в обозначении маски подсети 255.255.255.128 (/ 25 в обозначении CIDR). Любая большая маска подсети (255.255.255.192 или / 26) будет разделять эти хосты.

1
Eryper

Ответ на вопрос 2, я сейчас нахожусь в продвинутой сети. При использовании нотации CIDR вы не можете установить старший бит равным 0, а младший бит равным 1. Нет правильного способа обозначить нотацию CIDR таким образом.

это работает так,

n = бит сети H = бит хоста

скажем, вы используете / 26 это будет выглядеть так

nnnnnnnn.nnnnnnnn.nnnnnnnn.nnHHHHHH

последний октет будет 192, 128 + 64

если он установлен в / 27, он должен быть написан так

nnnnnnnn.nnnnnnnn.nnnnnnnn.nnnHHHHH

и последний октет будет 224, 128 + 64 + 32

в нотации CIDR вы должны двигаться слева направо.