LINUX.ORG.RU
ФорумTalks

Не совсем понятно как считать маску подсети

 


0

2

Читал в интернете, но в итоге я ничего не понял. Связана ли она как-то с кол-вом копьютеров в локальной сети?

Пишется вот такое Крайние случаи: /0 и /32. Маска /0 означает все адреса, весь интернет. Маска /32 означает единичный хост. Вот эта строка тоже неясна Запись 192.168.0.0/16 (255.255.0.0) означает, что под адрес сети занято 16 бит. Если адрес перевести в двоичное исчисление, то первые 16 бит это – 192.168. Это и есть адрес сети: 192.168.0.0

★★★★★

Последнее исправление: maxcom (всего исправлений: 1)

Ответ на: комментарий от Black_Shadow

Что значит «битовая маска, определяющая, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети»?

w1nner ★★★★★
() автор топика

Это просто побитовое И между IP и маской. Количество адресов в подсети - 2^n. Вычитаешь адрес подсети, и, если нужно бродкаст протоколу, последний адрес.

Если упростить + отбросить прочие применения, то основной смысл в том, чтобы понять какие адреса доступны в локальной подсети (на конкретном порту, в общем L2 домене).

CaptainFarrell
()
Ответ на: комментарий от CaptainFarrell

Для описания того, где проходит эта граница используется сетевой префикс. Он записывается обычно после адреса в виде десятичного числа через слеш, например 10.0.0.0/8 или 192.168.10.123/19 (8 и 19 – префиксы). Префикс обозначает, сколько бит в приведённом адресе хранят информацию о сети. Например, если префикс /24, это означает, что в адресе из 32-х бит 24 бита хранят информацию о сети, а оставшиеся 8 – информацию о хосте.

Предположим, что имеется такая задача: найти широковещательный адрес для адреса 172.20.35.123/20. Запишем адрес в двоичном виде 10101100.00010100.00100011.01111011, как мы помним из определения, чтобы получить широковещательный адрес, надо взять ту часть адреса, где хранится информация о хосте и заполнить её единицами. Так как префикс 20 – отсчитываем первые 20 бит и оставляем их без изменений (виде 10101100.00010100.0010), оставшиеся 12 бит заполняем единицами, так как там хранится хостовая часть адреса (1111.11111111), получится адрес 10101100.00010100.00101111.11111111, в десятичной системе это выглядит как 172.20.47.255.

w1nner ★★★★★
() автор топика
Последнее исправление: w1nner (всего исправлений: 1)
Ответ на: комментарий от w1nner

в уме не умею переводить dec->bin

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

imul ★★★★★
()
Ответ на: комментарий от w1nner

блин, ну возьми лист бумаги да визуализируй пару примеров. Там же всё элементарно. И это блин простые непрерывные маски.

targitaj ★★★★★
()
Ответ на: комментарий от imul

Ничего не понял. Для примера возьмем адрес 10.254.239.0 и сетевой префикс 27(что он означает для меня хз) Далее переводим его в двоичный вид: 1010.11111110.11101111.0 всего должно быть 32. Значит 32-27 получается 5 бит на адрес компьютера в сети? 5 бит заполняем единицами (5 шт единиц?) отсчитываем 27 цифр (у меня 21 цифра только) где остальные 6 чтоб дописать 5 единиц? короче ничего не ясно как считается это

w1nner ★★★★★
() автор топика
Ответ на: комментарий от w1nner

В двоичной цифр не десять, а две т.е. каждый разряд умножает число не на 10, а на 2.

CaptainFarrell
()
Ответ на: комментарий от w1nner

Маска определяет, сколько бит IP адреса используется под адрес сети. Когда комп отправляет пакет, ОС сравнивает IP адрес получателя с IP адресом отправителя. Если адреса сети одинаковые, пакет отправляется напрямую. Если адреса сети разные, то пакет отправляется на шлюз, указанный в таблице маршрутизации для этой сети, либо на шлюз по умолчанию.

Black_Shadow ★★★★★
()
Ответ на: комментарий от w1nner

у меня 21 цифра только
1010.11111110.11101111.0

Дописываем опущенные незначащие нули в каждом октете
0001010.11111110.11101111.00000000
Получается 32 цифры
Пересчитывай

imul ★★★★★
()
Ответ на: комментарий от imul

если в каждом «октете» по 8 цифр то выходит что 00001010.11111110.11101111.00000000 первый нолик пропустил))

w1nner ★★★★★
() автор топика
Ответ на: комментарий от targitaj

И это блин простые непрерывные маски.

Да дырявые, в общем-то, не сильно сложнее. Только я не уверен, что любая техника дырявые маски понимает.
Надо будет дома попробовать с ненужным длинком поиграться, поставить ему маску 0.255.255.255 на сеть. :) И как будет работать агрегация тоже не знаю. Проверить ни разу не довелось.

imul ★★★★★
()
Последнее исправление: imul (всего исправлений: 1)
Ответ на: комментарий от w1nner

первый нолик пропустил))

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

imul ★★★★★
()
Ответ на: комментарий от imul

Угу, теперь многое стало проясняться, а то я дуб дубом в этом деле, а мне тут задали вопрос на онлайн собеседовании, я понял что из меня админ как из боксера балерина ))

w1nner ★★★★★
() автор топика
Ответ на: комментарий от w1nner

вот нашел значит двоичный вид широковещательного адреса (тоже хз для чего он нужен) вот такой 00001010.11111110.11101111.00011111 в десятичном виде получилось 10.254.239.31 Далее в интернете нашел таблицу масок подсети. Как я понял Префикс маски - это короткая запись сетевой маски, определяет количество бит порции сети. т.е. префикс и маска это одно и тоже, только выглядят по-разному Ну вот и все. Кажется. Разобрался, фууух.

w1nner ★★★★★
() автор топика
Ответ на: комментарий от w1nner

для начала изучи, что такое битовая маска вообще

cvs-255 ★★★★★
()
Ответ на: комментарий от w1nner

ты суть пойми - без маски нет разницы адрес это сети или хоста. Без маски это понять невозможно.

targitaj ★★★★★
()

ТС, почитай книжку умную (того же Стивенса). От того, что тебя здесь научат считать маску, ты все равно сути происходящего понимать не будешь.

kernelpanic ★★★★★
()
Ответ на: комментарий от w1nner

Нет, /24 это 255.255.255.0 то есть 11111111.11111111.11111111.00000000
А .234 в последнем октете это
11111111.11111111.11111111.11101010

https://litl-admin.ru/knigi/otlichnoe-posobie-icnd-1-tom-1.html Вот книжка, достаточно простая. https://litl-admin.ru/knigi/book-knigi-po-setevym-texnologiyam-ot-cisco.html Вот эти у меня бумажные есть. Тоже неплохо.

imul ★★★★★
()
Последнее исправление: imul (всего исправлений: 2)

Считаешь, сколько тебе аддрессов надо в подсети (допустим 42), находишь ближайшую большую степень двойки (64 или 2 в 6й). Вычитаешь 32-6=26. Вычитаешь 256-64=192 получаешь маску подсети: 255.255.255.192

invy ★★★★★
()
Ответ на: комментарий от w1nner

что тогда 255.255.255.234

это дырявая маска 11111111.11111111.11111111.11101010
у дырявых масок 0 и 1 идут вперемешку и префикс указать не получится, он только для непрерывных масок, у которых 1 и 0 не перемешиваются
не обращай внимания и не забивай голову

imul ★★★★★
()
Ответ на: комментарий от w1nner

Ну маски и надо считать, чтобы экономно в на подсети выданный тебе диапазон айпи разбить.

invy ★★★★★
()
Ответ на: комментарий от w1nner

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

Вычитаешь 32-6=26.

32 - всего может быть чисел в маске
6 - степень двойки, 2 в 6-й степени первое такое число больше чем 42
Соответственно для 42 хостов тебе достаточно подсети с префиксом /26
Или 11111111.11111111.11111111.11000000, или 255.255.255.192

Читни всё-таки книжиц, там это пожёвано до атомарного состояния.

imul ★★★★★
()
Ответ на: комментарий от w1nner

10.254.239.0 и сетевой префикс 27

$ ipcalc 10.254.239.0/27
Address:   10.254.239.0         00001010.11111110.11101111.000 00000
Netmask:   255.255.255.224 = 27 11111111.11111111.11111111.111 00000
Wildcard:  0.0.0.31             00000000.00000000.00000000.000 11111
=>
Network:   10.254.239.0/27      00001010.11111110.11101111.000 00000
HostMin:   10.254.239.1         00001010.11111110.11101111.000 00001
HostMax:   10.254.239.30        00001010.11111110.11101111.000 11110
Broadcast: 10.254.239.31        00001010.11111110.11101111.000 11111
Hosts/Net: 30                    Class A, Private Internet
bormant ★★★★★
()
Ответ на: комментарий от w1nner

Ничего не понял.

Ты википедию хоть открывал? Там шикарный пример:

IP-адрес:       11000000 10101000 00000001 00000010 (192.168.1.2)
Маска подсети:  11111111 11111111 11111110 00000000 (255.255.254.0)
Адрес сети:     11000000 10101000 00000000 00000000 (192.168.0.0)

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

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от w1nner

Открою тебе маленький секрет, админы используют ipcalc почти все поголовно.

Конечно если ты на сетевика идешь, тогда да, маски подсетей не знать не простительно.

Murg ★★★
()
Ответ на: комментарий от dormeur86

/usr/bin/ipcalc
Хотя не очень понятно зачем. Зачастую используются маски кратные 8 при которых граница адреса сети совпадает с границей октета, моментально запоминаешь что 10.0.0.0/8 это 10.*.*.*, 10.0.0.0/16 это 10.0.*.*, а 10.0.0.0/24 это 10.0.0.*

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Хотя не очень понятно зачем

Поделите в уме 134.1.12.45 на 3 подсетки по 10, 20, 20 хостов.
Или преобразуйте диапазон адресов в набор адрес-маска.

В основном для этого. А веселые картинки — так, побочный эффект.

bormant ★★★★★
()
Ответ на: комментарий от bormant

У ТСа вроде вопрос на понимание, калькуляторы тут не особо полезны.
Хотя ХЗ, может от двоичной визуализации масок вдруг наступит просветление.

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

может от двоичной визуализации масок вдруг наступит просветление

именно. Все объяснения сводятся именно к этим веселым картинкам.

bormant ★★★★★
()

Гугли cisco magic numbers от dans на youtube. Потом попробуй поиграть в cisco binary game (нужен флеш вроде). Пару раз достаточно посчитать несколько задач и становится окей. Потом со временем конечно опять забывается, но достаточно увидеть принцип.

anonymous_sama ★★★★★
()
Ответ на: комментарий от cvs-255

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

imul ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.