понедельник, 16 апреля 2018 г.

Маска подсети

Что такое маска подсети?

На момент написания данной статьи, я сам только начал разбираться со всем этим. IP адрес, MAC адрес, маска подсети, обратная маска и т.д. и т.д. Постепенно, я постараюсь разобраться во всем этом и записать это всё тут простым, человеческим языком.

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


Итак, маска подсети, поехали ...

Наверняка, в сети Enternet можно найти очень много подобных страниц. Чтобы разобраться что такое маска подсети и с чем это "едят" у меня ушел целый день.

Чтобы образно представить всё в уме, представим ситуацию:
Нужно отправить обычное бумажное письмо по почте другу, который живет на другом конце города. Допустим у него адрес: Улица Крапивная, дом 138.
Чтобы письмо дошло нашему другу, обязательно должна быть указана улица и дом. Если мы укажем только дом или только улицу - письмо нашему другу не дойдет.

Представили? Отлично. Теперь вернемся нашим сетям. IP адрес ( так же как и адрес нашего друга) состоит из двух частей: 1) адрес сети; 2) номер компьютера в этой сети.

Для тех кто не разобрался что такое IP адрес, я рекомендую к прочтению вот эту вот статью: Что такое IP адрес?

Вернемся к адресу друга (Ул.Крапивная, дом 138). Адрес так же состоит из двух частей: 1) Улица; 2) Дом.

Дак что же тогда маска подсети? В нашем примере, маской подсети будет являться ЗАПЯТАЯ между улицей и домом. Давайте посмотрим как это всё происходит:

Допустим есть IP 63.165.44.124 c классической маской подсети 255.255.255.0. Переведем IP адрес и маску подсети в двоичный код.  

На своем компьютере я использую Linux Mint 18.3 Sylvia. Как посмотреть информацию о системе в Lunix?. Чтобы быстро перевести IP адрес из десятичной системы в двоичную я использую команду ipcalc. Подробнее про ipcalc.

Вот что в итоге я получил:

IP  (Address):        63.165.44.124 имеет вид 00111111.10100101.00101100.01111100
Маска (Netmask)  255.255.255.0 имеет вид 11111111.11111111.11111111.00000000
Сеть (Network)     63.165.44.0 /24 имеет вид 00111111.10100101.00101100.00000000

А теперь подробнее.
Как перевести числа из 10-ной системы в 2-ную, можно прочитать тут.

Итак, мы имеем:
IP  (Address):        63.165.44.124 имеет вид 00111111.10100101.00101100.01111100
Маска (Netmask)  255.255.255.0 имеет вид 11111111.11111111.11111111.00000000

Чтобы определить адрес сети, нужно перемножить,СООТВЕТСТВЕННО, двоичные системы IP и Маски, пользуясь правилами (1*1=1      1*0=0       0*0=0)

(0*1 0*1 1*1 1*1 1*1 1*1 1*1 1*1 ) получаем 00111111  Это первый октет. 
(1*1 0*1 1*1 0*1 0*1 1*1 0*1 1*1) получаем 10100101 Это второй октет.
(0*1 0*1 1*1 0*1 1*1 1*1 0*1 0*1) получаем 00101100 Это третий октет.
(0*0 1*0 1*0 1*0 1*0 1*0 0*0 0*0) получаем 00000000 это четвертый октет.

Таким образом мы получили 00111111.10100101.00101100.0000000 - Адрес сети

Если мы умножим аналогичным способом наш IP адрес на обратную маску(Wildcard), которая в нашем случае имеет вид 00000000.00000000.00000000.11111111, то мы получим:
00000000.00000000.00000000.01111100 или в 10-ной системе 0.0.0.124. Здесь число 124 означает адрес компьютера.
 Что такое обратная маска?
Что в итоге у нас получилось?
Есть компьютера с IP адресом  63.165.44.124, с маской 255.255.255.0, с адресом сети 63.165.44.0, а 124 - это адрес этого компьютера

Еще раз взглянем на IP и Маску
IP  (Address):          00111111.10100101.00101100.01111100
Маска (Netmask)    11111111.11111111.11111111.00000000
Единицы у маски сети образуют адрес сети , а нули адрес компьютера 

Нужно отметить, что маска подсети может быть не любой. Слева должны располагаться единицы, а справа нули. Например, не существует маски 195.0.195.0   (11000011.00000000.11000011. 00000000)

В сети можно очень часто встретить запись, например,  63.165.44.124 /24
Что это означает? Это означает IP адрес 63.165.44.124 и маску подсети 255.255.255.0
Но что значит число 24?
Переведем маску в 2-ный код: 11111111.11111111.11111111.00000000
Дак вот 24 означает число единиц в маске. В нашем случае их 24

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

Используя маски подсети можно делить крупные подсети на более маленькие.
Возьмем нашу сеть 63.165.44.0. Она может иметь адреса от 63.165.44.0 до 63.165.44.255
Адрес сети не меняется, он постоянный. Меняется лишь четвертый октет.
Может быть (*.00000000) (*.00000001) (*.00000010) (*.00001000) и т.д. Всего таких вариантов может быть 255. То есть, в нашей подсети может быть 255 пользователей (хостов). Так ли это?

Не совсем. 63.165.44.0 - это адрес подсети, 63.165.44.255 - это адрес широковещательной рассылки. Значит мы имеем в свое пользование адреса, начиная с 63.165.44.1 до 63.165.44.254. 
В итоге получается, что наша подсеть может содержать 254 пользователя.

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

11111111.11111111.11111111.00000000

Так как единички у маски сети образуют адрес сети, то запишем в 4 октете вместо нуля - единицу, получим:

11111111.11111111.11111111.10000000

Таким образом, с помощью данной операции, подсеть 63.165.44.0 с маской подсети 255.255.255.0 мы разделили её на две под-подсети:
1) 63.165.44.0 с маской 255.255.255.128
     Здесь 63.165.44.0 - адрес сети, 63.165.44.127 - адрес широковещательной рассылки.
(Имеем 126 пользователей)
2) 63.165.44.128 с маской 255.255.255.128
     Здесь 63.165.44.128 - адрес сети, 63.165.44.255 - адрес широковещательной рассылки.
(Имеем 126 пользователей)

В общей сложности имеем две подсети    63.165.44.0     63.165.44.128
В данных подсетях может быть 126+126 пользователей, т.е 252


Ну вот и всё. Я надеюсь, что в будущем я буду еще поправлять эту стать. Если я где-то ошибся, то буду благодарен, если вы сообщите мне об этом в комментариях, и я сразу же исправлю статью, чтобы не вводить в заблуждение других.

А теперь, для закрепления материала, попробуйте ответить на несколько вопросов. Я буду очень рад увидеть ваши ответы в комментариях.

1) Напишите адрес широковещательной рассылки в сети 134.123.1.0 с маской подсети 255.255.255.0?
2) Сколько пользователей (хостов) может быть в подсети 134.123.1.0 с маской подсети 255.255.255.128?
3) Разделите подсеть 134.134.1.0 с маской подсети 255.255.255.0 на 2 подсети



4 комментария:

  1. 1) 134.123.1.255
    2) 126
    3) Первая подсеть
    134.134.1.0
    Маска - 255.255.255.128
    Широковещательная рассылка - 134.134.1.127

    Вторая подсеть
    134.134.1.128
    Маска - 255.255.255.128
    Широковещательная рассылка - 134.134.1.255

    ОтветитьУдалить
    Ответы
    1. Спасибо, всё правильно)
      А сможете объяснить более подробно для других читателей, почему в ответе на 2 вопрос получилось 126 хостов?

      Удалить
    2. В подсети уходит один хост - это адрес широковещательной рассылки, второй - это адрес сети, а это значит что от числа ip адресов подсети отнимаем два и у нас получается число хостов. А если подсеть разделить допустим на 2 подсети, то и у первой, и у второй будут свои адреса сети, а также свои адреса широковещательной рассылки. В обоих подсетях будет 128 ip адресов, а значит 126 хостов

      Удалить
    3. Спасибо большое, вы абсолютно правы!

      Удалить