счастье рядом
*UPD: снова нужна помощь, срочно, пожалуйста, в последнем комментарии.
Добрый день! Вопрос не совсем по программированию, но кто-то из присутствующих точно знает такие вещи
Помогите немножко сориентироваться, пожалуйста.
Задача:
Мои мысли
Буду очень благодарна за помощь!
Добрый день! Вопрос не совсем по программированию, но кто-то из присутствующих точно знает такие вещи

Задача:
Организации дан адрес: 130.1.0.0. В случае применения маски 255.255.224.0 определить:
а) максимальное количество подсетей, которое можно при этом организовать
б) максимальное количество хостов, которое можно иметь в каждой из подсетей
в) возможные адреса подсетей #0, #1, #2.
а) максимальное количество подсетей, которое можно при этом организовать
б) максимальное количество хостов, которое можно иметь в каждой из подсетей
в) возможные адреса подсетей #0, #1, #2.
Мои мысли
Буду очень благодарна за помощь!
если имеется ввиду, что 255.255.224.0 - это маска подсетей, т.е. на подсети остается три разряда (224 = 1110 0000), то количество подсетей будет 2 в кубе минус 2 = 8-2 = 6.
максимальное количество хостов в подсетях (на них осталось 13 разрядов) 2 в 13-й минус 2 = 8192-2 = 8190.
возможные адреса подсетей:
0) 130.1.128.0
1) 130.1.64.0
2) 130.4.192.0
насчет последнего: у нас три разряда на адрес подсети. есть два варианта назначения адресов: справа налево и слева направо, при чем второй предпочтительнее. щас попробую показать.
итак, первые три разряда сеть, остальное - хост:
100 0 0000 0000 0001 - первый хост первой сети
010 0 0000 0000 0010 - второй хост второй сети
110 0 0000 0000 0011 - третий хост третьей сети
001 0 0000 0000 0100 - четвертый хост четвертой сети
010 0 0000 0000 0011 - третий хост второй сети.
т.е. они заполняются навстречу друг другу, так проще уследить, что уже выделено, а что еще свободно. Ну, нам препод так сказала
ЗЫ: отзовитесь, что-ли)
максимальное количество хостов в подсетях (на них осталось 13 разрядов) 2 в 13-й минус 2 = 8192-2 = 8190.
Вот, да, фух) А то я прочитала про пять разрядов и растерялась совсем на этом))
количество подсетей будет 2 в кубе минус 2 = 8-2 = 6.
А минус два - это зачем?
Вот нашла какую-то шпаргалку на эту тему, там написано, что количество узлов = 2^x-2, т.е. наши 8190, а количество подсетей = 2^x, т.е. восемь, и ничего отнимать не надо...
итак, первые три разряда сеть, остальное - хост:
100 0 0000 0000 0001 - первый хост первой сети
010 0 0000 0000 0010 - второй хост второй сети
110 0 0000 0000 0011 - третий хост третьей сети
001 0 0000 0000 0100 - четвертый хост четвертой сети
010 0 0000 0000 0011 - третий хост второй сети.
Про такое вообще не знала, интересно) То есть, если нам надо возможные адреса подсетей, то мы берем первый хост каждой сети?
1000 0000 0000 0001 - первый хост первой сети
1000 0000 0000 0010 - первый хост второй сети
1000 0000 0000 0011 - первый хост третьей сети
Так получается? Только я теперь не пойму, как это привести к десятичному виду из первого комментария)
Вы пишите, что 130.1 нельзя трогать, а дальше всплывает 130.4, или это не про то?
Уф, один вопрос решаю, десяток новых появляется, как всегда)
1000 0000 0000 0010 - первый хост второй сети
1000 0000 0000 0011 - первый хост третьей сети
наоборот. первые три разряда - сеть то, что у вас - это первые три хоста первой сети
адрес сети - это адрес нулевого хоста. я вам их написала в первом комментарии. переведите третий байт в двоичный режим и увидите закономерность.
в десятичный вид переводится очень просто. Открываем виндоуз калькулятор в инженерном виде и видим слева вверху галочки "Bin" (двоичный режим) и "Dec" (десятичный). остальные нас не волнуют. Вбиваем 8 разрядов = байт в двоичном режиме и тыкаем кнопочку "десятичный режим". обратно - аналогично.
все нули в разрядах подсети означают адресацию в пределах текущей подсети
все единицы в разрядах подсети означают рассылку на все подсети.
ваша шпаргалка врёт.
130.4 всплыло случайно. сорри
в каждой из шести подсетей будет по 8190 узлов.
в каждой из шести подсетей будет по 8190 узлов.
Получается по 8190 узлов в шести сетях, т.е. 49140 узлов на всю сеть?
наоборот. первые три разряда - сеть то, что у вас - это первые три хоста первой сети
Ой, точно. Тогда так?
1000 0000 0000 0001 - 1 хост 1 сети
0100 0000 0000 0001 - 1 хост 2 сети
1100 0000 0000 0001 - 1 хост 3 сети
Здесь еще непонятно, если маска, к примеру, 255.255.0.0, тогда как считать и сколько подсетей будет?)
Вот это все еще не понимаю
Еще такой вопрос - а если бы у нас ip-адрес изначальный был не с нулями в конце, а какой-нибудь 130.1.16.25 - это бы на что из всего этого повлияло? Закономерность нашла, но там мы получается заменяем третий байт, а если бы не нолики были, тогда бы что изменилось?
вам на эту тему вообще ничего не рассказывали? о_О
маска - это количество разрядов слева, отведённых под сеть. т.е. единички в тех местах, где находится адрес сети. в десятичную систему это всё переводится чисто для компактности. нас интересуют единички.
теперь. есть сеть, есть подсеть (их может быть несколько уровней, но у нас один), есть хост.
сети бывают пяти классов: A, B, C, D, E. Классы определяются по первым пяти битам первого байта. 1-126 = А, 128-191 = В, 192-223 = С и т.д. Сеть класса А имеет маску 255.0.0.0, т.е. на выделение подсетей и хостов нам доступно только три последних байта. Сеть класса В имеет маску 255.255.0.0 - нам доступно два байта, из этого и исходим.
Если бы вам была дана маска 255.255.0.0, вы бы написали, что у вас нет возможности выделить подсеть, потому что нет для этого свободных разрядов.
130.1.16.25 - это адрес сети, который занимает абсолютно все разряды, что тоже делает невозможным выделить подсети и хосты. Количество занятых разрядов в адресе сети должно совпадать с количеством единиц в маске. Повторюсь: нас это всё интересует в двоичном виде.
Закономерность нашла, но там мы получается заменяем третий байт, а если бы не нолики были, тогда бы что изменилось?
мы не заменяем третий байт. мы его заполняем
130.1.16.25/24 - хост номер 25 в сети 130.1.16
все от маски зависит)
<зануда>
> количество подсетей будет 2 в кубе минус 2 = 8-2 = 6.
Зачем вычитать два айпишника?
</зануда>
Я правильно понимаю, что если бы начальный айпишник был, допустим, 130.14.27.0, то ответы а) и б) остались бы теми же, потому что от маски зависят? А для в) мы бы как заполняли тогда?
## Вопрос а
Чтобы получить все адреса сети достаточно в двоичном виде применить конъюнкцию ("Если и в адресе и в маске есть 1, то 1. Иначе 0", смотреть на столбики цифр):
10000010 00000001 00000000 00000000 – Адрес (130.1.0.0)
11111111 11111111 11100000 00000000 – Маска (255.255.224.0)
10000010 00000001 00000000 00000000 – Первый адрес сети (130.1.0.0)
10000010 00000001 00011111 11111111 – Последний адрес сети (130.1.31.255)
Так как количество бит со значением 1 в маске 19, то её так же можно записать как 130.1.0.0/19.
Количество возможных вариаций адресов между стартовым и конечным есть два в степени количество различных бит, т.е. 2^13 = 8192 адреса.
## Вопрос б
Чтобы найти количество подсетей, нужно посмотреть – сколько бит осталось в маске для третьего байта. В данном случае, их три штуки. Значит, у 2^3 = 8 – это есть количество возможных подсетей. Физический смысл таков, что подсети будут иметь адреса:
10000010 00000001 000xxxxx xxxxxxxx
10000010 00000001 001xxxxx xxxxxxxx
10000010 00000001 010xxxxx xxxxxxxx
10000010 00000001 011xxxxx xxxxxxxx
10000010 00000001 100xxxxx xxxxxxxx
10000010 00000001 101xxxxx xxxxxxxx
10000010 00000001 110xxxxx xxxxxxxx
10000010 00000001 111xxxxx xxxxxxxx
Следует обратить внимание на первые биты третьего байта – там просто перебор всех возможных значений с этими тремя битами. Где x – любое значение, а первые два байта – адрес сети.
## Вопрос в
1. Взять любой адрес из ответа б
2. Вместо x подставить любое двоичное значение
3. Ура, получили валидный адрес выбранной подсети
все нули в разрядах подсети означают адресацию в пределах текущей подсети
все единицы в разрядах подсети означают рассылку на все подсети.
подозреваю, сие зависит от вероисповедания преподавателя
Лучик искренности,
Я правильно понимаю, что если бы начальный айпишник был, допустим, 130.14.27.0, то ответы а) и б) остались бы теми же, потому что от маски зависят? А для в) мы бы как заполняли тогда?
нет, неправильно. если у нас первый байт 130, то это сеть класса В, и маска для сети будет /16. а у 130.14.27.0 маска минимум /24, и это либо готовая подсеть, либо хост, подключенный к сети напрямую. Это была бы неправильная постановка задачи.
Назначение: 130.1.0.0
Маска: 255.255.224.0
Шлюз: 123.100.200.42
Тогда он, при получении пакета на 130.1.42.42 он обрабатывает свою таблицу, находит запись, для которой наложение ip из пакета и маски даст его сеть:
10000010 00000001 00101010 00101010 – Адрес из пакета (130.1.42.42)
11111111 11111111 11100000 00000000 – Маска (255.255.224.0)
10000010 00000001 00100000 00000000 – Адрес подсети (130.1.32.0)
А дальше просто отправляет его на нужный шлюз. Коих, при данной маске, может быть аж целых восемь.
> подозреваю, сие зависит от вероисповедания преподавателя
А, это да (: И от того, кому как привычнее считать. Главное, чтобы циферки в итоге сходились.. не как в подсчёте хостов и подсетей.
Количество возможных вариаций адресов между стартовым и конечным есть два в степени количество различных бит, т.е. 2^13 = 8192 адреса.
Получается, это количество хостов во всей сети, так? А нам надо количество хостов в каждой из подсетей же.
## Вопрос б
Да, сейчас гораздо понятнее стало, спасибо)
Количество возможных вариаций адресов между стартовым и конечным есть два в степени количество различных бит, т.е. 2^13 = 8192 адреса.
Ну, то есть, 13 - это грубо говоря количество ноликов в маске, правильно же? Или что тогда значит различных бит?
Если так, то тогда и 2^13 и 2^3 по маске вычисляются, или я все еще что-то упускаю?
ninelya, Скептичный циник
Это была бы неправильная постановка задачи.
А напишите мне, пожалуйста, какой-нибудь другой пример с правильной постановкой задачи, если не трудно) А я попробую решить, опираясь на ваши объяснения.
Ох уж эта азбука!
> Получается, это количество хостов во всей сети, так?
У сети 130.1.0.0 есть восемь подсетей. 8192 – это количество хостов на каждую из этих восьми подсетей. Тотальное количество хостов на всю сеть есть 2^16 = 65536 (16 ибо столько бит в двух последних байтах).
> Ну, то есть, 13 - это грубо говоря количество ноликов в маске, правильно же?
Да, это верно.
> Если так, то тогда и 2^13 и 2^3 по маске вычисляются, или я все еще что-то упускаю?
Не уверен, что правильно понял вопрос, так что поправьте если что.
В целом – да, чтобы определить принадлежит адрес сети или нет, то сначала конъюктируют его с маской (см. коммент), а потом сравнивают с адресом сети (с помощью поразрядного сложения по модулю два). Если сошлось – круто, адрес принадлежит нашей сети.
Неправильность постановки заключалась в том, что исходная сеть и 130.14.27.0 – это сети двух разных классов с разными масками (просто перефразирую ответ ninelya, похоже). Чтобы постановка была правильная, возьмите адрес, удовлетворяющий сети класса B. Например, 130.40.0.0
Ещё задачка.
Вы
у мамы молодецв компании сисадмин. На компанию отдана сеть 131.40.0.0 с маской 255.255.0.0.Открылся новый офис и вам нужно иметь 8100 хостов, а остальное переназначить как адрес сети. Предполагаем, что маршрутизаторы выпущены в XXI веке.
Вопросы:
1. Какова будет маска?
2. Сколько подсетей получится?
3. Какие диапазоны адресов в каждой из подсетей?
Бонусное задание.
К задаче выше добавим роутер на данном узле. В его таблице маршрутизации в качестве шлюза (next hop) используется x.x.x.2 (где x – подсеть), метрика одинаковая.
Определить на шлюзы с какими конкретно адресами будут отправлены следующие пакеты:
1. 131.40.98.31
2. 131.40.31.41
3. 131.40.41.6
Ааа, вот! Я никак не могла связать одно с другим, теперь прояснилось))
Не уверен, что правильно понял вопрос, так что поправьте если что.
Не совсем. Или я не совсем поняла ответ) Я имею в виду, что если у нас есть маска сети 255.255.224.0, то за счет этих 224.0, т.е. 11100000.00000000 мы и находим количество подсетей (по количеству единичек) и количество узлов в подсетях (по количеству ноликов). Независимо от заданного адреса сети. Подозреваю, что я неправа и заданная сеть все же должна играть здесь какую-то роль, так что поправьте, пожалуйста
Задачка.
Бонусное задание.
Ой, нет-нет-нет, я так еще больше запутаюсь сейчас
Мне бы просто другие айпишник и маску для задачи из первого поста, чтобы именно такое научиться решать)
А то вот видите, я себе придумаю что-то, а оно "неправильная постановка задачи")
131.x.x.x - класс a, маски 255.0.0.0 - 255.254.0.0
131.40.x.x - класс b, маски 255.255.0.0 - 255.255.254.0
131.40.27 - класс c, маски 255.255.255.0 - 255.255.255.254
В зависимости от класса (маски) заданной сети мы и ищем единички/нолики для расчёта подсетей/хостов.
> Мне бы просто другие айпишник и маску для задачи из первого поста, чтобы именно такое научиться решать)
Возьмите адрес сети 131.40.0.0 (:
Сети бывают трёх классов, они различаются количеством бит в маске:
131.x.x.x - класс a, маски 255.0.0.0 - 255.254.0.0
131.40.x.x - класс b, маски 255.255.0.0 - 255.255.254.0
131.40.27 - класс c, маски 255.255.255.0 - 255.255.255.254
не совсем так. они еще отличаются первыми пятью битами (по ним и определяются). у класса А 1-126; у класса В 128-191, у класса С 192-223. т.е. у вас должно быть
125.x.x.x - класс a, маски 255.0.0.0 - 255.254.0.0
131.40.x.x - класс b, маски 255.255.0.0 - 255.255.254.0
196.40.27 - класс c, маски 255.255.255.0 - 255.255.255.254
если уж совсем глубоко копать
это ничего не меняет. Возьмите лучше адрес сети 90.0.0.0 (другой класс) и маску 255.254.0.0
Впрочем, если ТС знакома с CIDR, то можно и так, да. И маской обратной тогда уж мозг выносить (привет, wildcard).
А насчёт 90.0.0.0 соглашусь, тут больше разницы. Я предлагал смену в пределах одного класса (2B на 32B).
а определение класса - это разве не азы? как тогда отличить сеть класса В от подсети класса А имея только айпи и маску /16?
вы, кстати, говорите очень много незнакомых мне слов) подозреваю, ТС их тоже не знает
В зависимости от класса (маски) заданной сети мы и ищем единички/нолики для расчёта подсетей/хостов.
По отношению к моему вопросу, я так понимаю, это значит "да"
То есть, подытоживая все написанное выше по этому вопросу, независимо от адреса сети (в рамках одного класса) при одной и той же маске всегда будет одинаковое максимальное количество подсетей и хостов в них, да?
И при все той же маске 255.255.224.0 для вашего айпишника 131.40.0.0 ответы а) и б) будут те же самые 8 и 8190, потому что важна здесь только маска?
А три сети к вопросу в) тогда возможные адреса будут все так же
#0 - 131.40.128.0
#1 - 131.40.64.0
#2 - 131.40.192.0
Да?
Впрочем, если ТС знакома с CIDR, то можно и так, да. И маской обратной тогда уж мозг выносить (привет, wildcard).
Про бесклассовую адресацию и обратные маски слышала, ну могу посчитать, что к маске 255.255.224.0 обратная будет 0.0.31.255, но где и как это применять не знаю и не надо в эти дебри сейчас лезть, с насущным бы разобраться))
ninelya
Классы определяются по первым пяти битам первого байта. 1-126 = А, 128-191 = В, 192-223 = С и т.д. Сеть класса А имеет маску 255.0.0.0, т.е. на выделение подсетей и хостов нам доступно только три последних байта. Сеть класса В имеет маску 255.255.0.0 - нам доступно два байта, из этого и исходим.
Вот про первые биты я знала, а какие где маски - нет.
Возьмите лучше адрес сети 90.0.0.0 (другой класс) и маску 255.254.0.0
О, спасибо)
Адрес сети: 90.0.0.0 = 01011010.00000000.00000000.00000000
Маска: 255.254.0.0 = 11111111.11111110.00000000.00000000
Здесь получается класс А, количество подсетей берем по второму байту, т.е. 2^7 = 128, а количество подсетей у каждой 2^17 = 131072-2=131070. Тогда возможные адреса:
01011010.10000000.00000000.00000000 = 90.128.0.0
01011010.01000000.00000000.00000000 = 90.64.0.0
01011010.11000000.00000000.00000000 = 90.192.0.0
Ну и если не по порядку, то есть куча-куча вариантов, например:
01011010.10111100.00000000.00000000 = 90.188.0.0
01011010.01100010.00000000.00000000 = 90.98.0.0
01011010.11100110.00000000.00000000 = 90.230.0.0
Правильно?
да, всё верно
Скептичный циник, и вам спасибо!
не за что
ninelya,
> а определение класса - это разве не азы?
Нет, это не азы, а история прошлого века, которая сгодится только если хочется блеснуть знанием истории перед кем-нибудь. Классами сетей нигде не оперируют, кроме преподавателей в хреноуниверситетах и давно протухших RFC (привет, RIP1/2). На практике нет никаких классов сетей уже два десятка лет, а длина ведущих единиц маски может быть любой в пределах 32 бит (CIDR), обратной (wildcard) или даже "дырочной" (Juniper и иже с ними, даже RFC на эту тему есть).
Максимум, что стоит помнить отдельно как исключения-конвенции, так это всего три с половиной сети (10/8, 172.16/12, 192.168/16 и 127/8), смысл которых, впрочем, одинаковый – не роутятся наружу. В каком-то RFC (3330, емнип) даже закреплены эти и ещё парочка сетей для нужд RIPE, которые, вроде, в прошлом году уже отдали на растерзание обществом, хотя IANA не обновила RFC (но сейчас не знаю, с прошлой осени не слежу).
Тоже самое касается и вычитания по два адреса. Как давно видели железку, некорректно обрабатывающие данные хосты? А сеть, где на броадкаст отвечал бы хоть кто-то, кроме шлюза? (: Обычно, такими историями пугают преподаватели, строящие в своих задачках сеть с использованием коаксиалки просто потому, что сами не знают как работает оптика.
> как тогда отличить сеть класса В от подсети класса А имея только айпи и маску /16?
А зачем вообще различать классы сетей? Роутинг и делёжка на подсети осуществляется с помощью маски. Именно маска определяет весь возможный набор адресов в подсети. И только она:
– Чтобы определить пакет в стиле "твой/не твой" достаточно только адреса и маски (конъюнкция и сложение по модулю два).
– Чтобы роутить траффик достаточно таблицы маршрутизации, в которой есть только адрес сети, маска, шлюз, интерфейс и метрика.
– Чтобы разбить сеть на подсети достаточно адреса сети (откуда роутить) и маски (дабы не выйти за границы пула адресов).
– Для отправки на BGP достаточно первого октета, а сами они ещё с прошлого века используют CIDR.
> вы, кстати, говорите очень много незнакомых мне слов) подозреваю, ТС их тоже не знает
Судя по комменту выше – знает или слышала (: Но в этих словах ничего сложного от слова совсем.
В классовой системе существуют только 5 масок: /0, /8, /16, /24, /32. Остальные маски, например, та же /19 из сабжа – это уже CIDR, которое носит говорящее название "бесклассовой адресации". В классовую адресацию эта маска не входит и данный адрес вообще должен являться броадкастовым адресом, емнип.
Wildcard – обратная маска, которая состоит из "несколько единиц справа", вместо "несколько единиц слева и нули" (например, 0.0.224.225), которая часто используется во всяких ACL и подобных штуках, где есть дифференциация прав доступа. Основана на чётности/нечётности адресов с такими масками (нечётное число в двоичной системе будет всегда иметь 1 на конце, а чётное 0).
"Дырочная" – это для пакетных фильтров. Либо для адресации сети, но этим заняты мсье, знающие толк. Впрочем, вживую я таких кадров не встречал, только по байкам знакомых знакомых.
мы говорим о получении зачёта или обсуждаем бренность современного высшего образования? Я вот лично не планирую никак и ни в каком виде заниматься сетями на практике, но две недели назад сдавала расчетку как раз по этой теме. Я помогла человеку сдать аналогичную расчетку, не засоряя мозг лишней инфой