![]() |
Как по маске определить конкретный ip адрес
Доброго времени суток.
Был на собеседовании.. дали такую задачку... ниже пишу дословно. Всё голову себе выжег. "Пусть имеется подсеть 192.168.35.0/24. Написать маску (или множество) масок, выделяющее из этой сети один единственный адрес 192.168.35.150. Решить задачу таким образом, чтобы множество имело минимум записей." В последствии выяснилось - что там именно ряд масок. Использовавшихся в своё время в этой организации при настройке RRAS. Для задачи ограничения доступа ко всей 35 подсети, кроме 192.168.35.150 Почему нельзя было ограничить по ip незнаю. Задание звучало именно так как я написал. |
Вопрос поставлен некорректно как минимум...
Я так понимаю, оно должно звучать так: "разбить сеть на подсети таким образом, чтобы в одной из подсетей оказался единственный адрес XXX.XXX.XXX.XXX и количество подсетей при этом было минимальным"? Тогда вспоминаем, что маска подсети (как и IP-адрес) - двоичные числа, соответственно увеличение длины маски на 1 делит сеть на пару подсетей. (Вообще рекомендую поискать инфу по теме хотя б в Википедии - в двоичном виде оно просто нагляднее). Для данного конкретного случая: 192.168.35.0/24=192.168.35.0/25+192.168.35.128/25 (т.е. диапазон 0-255 делится на поддиапазоны 0-127 и 128-255). В первую подсеть искомый адрес не попал - соответственно её мы оставляем в покое. Вторую делим ещё напополам: 192.168.35.128/26 и 192.168.35.192/26 (соответственно диапазоны последней группы адреса 128-191 и 192-255). Искомого адреса во втором диапазоне второго этапа разбиения нет, посему оставляем подсеть 192.168.35.192/26 в покое, а 192.168.35.128/26 снова бьём напополам. И так далее, пока в результате последнего шага алгоритма не получим одну из подсетей 192.168.35.150/32 В качестве результата предъявляем список "отброшенных" сетей + обе с последнего шага алгоритма. При помощи спец. программ типа IP Calculator задача решается быстрее, но алгоритм в конечном итоге именно таков... |
Похоже на правду?
192.168.35.0/25 192.168.35.128/28 192.168.35.144/30 192.168.35.148/31 192.168.35.150/32 |
Цитата:
Где /26,/27,/29 и вторая /32? Без них список неполный (в смысле, неполностью перекрывается исходная 192.168.35.0/24). |
У меня получилось 9 "записей" (подсетей):
192.168.35.0/25 (192.168.35.0-192.168.35.127) 192.168.35.192/26 (192.168.35.192-192.168.35.255) 192.168.35.160/27 (192.168.35.160-192.168.35.191) 192.168.35.128/28 (192.168.35.128-192.168.35.143) 192.168.35.152/29 (192.168.35.152-192.168.35.159) 192.168.35.144/30 (192.168.35.144-192.168.35.147) 192.168.35.148/31 (192.168.35.148-192.168.35.149) 192.168.35.150/32 192.168.35.151/32 Или, в порядке расположения их в исходном адресном пространстве: 192.168.35.0/25 (192.168.35.0-192.168.35.127) 192.168.35.128/28 (192.168.35.128-192.168.35.143) 192.168.35.144/30 (192.168.35.144-192.168.35.147) 192.168.35.148/31 (192.168.35.148-192.168.35.149) 192.168.35.150/32 192.168.35.151/32 192.168.35.152/29 (192.168.35.152-192.168.35.159) 192.168.35.160/27 (192.168.35.160-192.168.35.191) 192.168.35.192/26 (192.168.35.192-192.168.35.255) Метод дихотомии в действии. Возможно, будет понятнее, если нарисовать картинку... |
эти цифры мне выдал http://ipcalc.dewil.ru/
когда Адрес1 был 192.168.35.0 а адрес2 192.168.35.150 может это и не очень корректно... когда расписал на бумажке, получил такие данные: 192.168.35.0/25 192.168.35.128/26 192.168.35.128/27 192.168.35.128/28 192.168.35.144/29 192.168.35.144/30 192.168.35.148/31 192.168.35.150/32 добавлено через 3 минуты Вот у меня реально мозг разрушается... почему так??? 192.168.35.0/25 (192.168.35.0-192.168.35.127) 192.168.35.128/28 (192.168.35.128-192.168.35.143) 192.168.35.144/30 (192.168.35.144-192.168.35.147) 192.168.35.148/31 (192.168.35.148-192.168.35.149) 192.168.35.150/32 192.168.35.151/32 192.168.35.152/29 (192.168.35.152-192.168.35.159) 192.168.35.160/27 (192.168.35.160-192.168.35.191) 192.168.35.192/26 (192.168.35.192-192.168.35.255) диапозоны которые написаны у меня: 192.168.35.0/25 192.168.35.128/26 192.168.35.128/27 192.168.35.128/28 192.168.35.144/29 а если конкретнее 192.168.35.128/26 192.168.35.128/27 192.168.35.128/28 они какбы объединяются? почему их нет в вашем списке??? Или почему "недостающие" подсети у вас в конце... 192.168.35.0/25 (192.168.35.0-192.168.35.127) 192.168.35.128/28 (192.168.35.128-192.168.35.143) 192.168.35.144/30 (192.168.35.144-192.168.35.147) 192.168.35.148/31 (192.168.35.148-192.168.35.149) 192.168.35.150/32 192.168.35.151/32 192.168.35.152/29 (192.168.35.152-192.168.35.159) 192.168.35.160/27 (192.168.35.160-192.168.35.191) 192.168.35.192/26 (192.168.35.192-192.168.35.255) не очень понимаю теорию... то что написал я вроде бы правильно.. хотя опять таки. в том что написаля есть ньюанс - а что делать с теми частями которые я отбрасывал, что делать со вторыми половинками? может быть их тоже нужно вносить? |
Цитата:
Картинку нарисуйте... Цитата:
В моём списке, (если его изобразить :biggrin:) подсети не пересекаются, все принадлежат сети /24 и занимают её полностью. |
вот мои расчеты на бумажке...
какой итоговый диапозон все же мой ответ на поставленную мне задачу. 0-127 128-255 /25 128-191 192-255 /26 128-159 160-191 /27 128-143 144-159 /28 144-151 152-159 /29 144-147 148-151 /30 148-149 150-151 /31 150/32 вот такие у меня расчёты получились.. но почему Вы сделали выборку именно таким способом? |
Цитата:
|
а по поводу моих расчётов. приведенных сообщением выше?
|
Цитата:
Извините, с хренового ГПРС искать справочники проблематично... Иначе чем напополам любая сеть не делится. Обратите внимание на количество и размеры кусков, из которых сложен любой "недвоичный" диапазон... в рассмотренном случае это куски размером от 1/2 до 1/256 (маска соответственно от /25 до /32) от исходного диапазона из 256 адресов (маска /24). |
Цитата:
Ответом на Вашу задачу (если я её правильно понял) является приведённый мной список из 9 подсетей, полученный последовательным распополамливанием исходной сети на полусети. При этом исходный диапазон IP-адресов используется полностью (это не совсем так, но сейчас неважно), а искомый IP выделен в отдельную подсеть. |
Цитата:
выделение одного единственного адреса это 32 маска, но если адрес нужно выделить для канала точка-точка то, по классическому варианту будет 30 маска, ну и еще 31 маска не может использовать в жизни Сама задача странна и в общем некорректна подозреваю, что умышленно |
Цитата:
Цитата:
Но в данном случае ни о каком канале речи нет. |
не сомневаюсь, что в курсе ;) канал точка-точка, это не только канал, но и выделенная машина, что в общем по-моему все же коррелирует со статусом выделенного адреса.
Вообще, повторюсь, что впечатление от вопроса такое, что хотели услышать не набор масок в ответ.. ЗЫ а можно расширить про "отходы производства", а то как-то в голову сходу ничего не приходит.. |
Цитата:
Цитата:
Цитата:
Собственно, это следствие двоичности масок. На самом деле, сетей каждого уровня в сети предыдущего уровня всегда две. Ну рисовать не хотите - хоть представьте себе эту хрень графически... О! или в дробях. Принимаем за 1 сеть /24 (256 адресов). нам нужно разбить её на минимальное количество частей так, чтобы одна из частей была 1/256 (одиночный адрес). Имеем: 1=1/2+1/4+1/8+1/16+1/32+1/64+1/128+1/256+1/256 Т.е. одиночных адресов будет 2. |
Цитата:
Цитата:
|
| Часовой пояс GMT +4, время: 15:25. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.