RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > > Ну и ладненько... Игорь выложил в коллекцию REXX-скриптов мой простенький калькулятор подсетей. Может быть будет полезен. Ссылка на главной в новостях. > > > > Спасибо. > > Вопрос только кто такой "Игорь" и где живет эта коллекция(вроде раньше видел, но сейчас что-то не ищется), ну и калькулятор у меня вроде бы есть из набора GNU. > > "Игорь", он же "Игорь Васьков", он же "Igor Vaskov", он же главный тут, на RU/2 :)) > Коллекция REXX-скриптов - тут же, на RU/2 ;) > > > Посчитать подсеть может и не проблема, проблема в понимании по какой маске это все брать... > > Вот ты там понасчитал на полстраницы, я так и не понял из чего ты исходил в том или ином случае... > > Попробую, но, прости, уж совсем человеческим голосом молвить не получится :) > Маска подсети определяет размеры подсети, маскируя постоянную часть адреса единичками в битовом представлении. Постоянная часть адреса всегда слева в битовом представлении, а переменная всегда справа, соответственно в маске все единички всегда расположены последовательно в старших разрядах, а нули - в младших. Поэтому удобнее записывать подсетку следующим образом, например, 172.16.0.0/16, где /16 обозначает, что старшие 16 бит маски содержат единички, остальные - нули. > > Возьмем твой случай: > > подсетка из которой надо вырезать две входящие в нее подсетки имеет адрес 172.16.0.0 маска 255.255.0.0, т.е. 172.16.0.0/16 > > 172.16.0.0 - адрес в десятичном виде (AC.10.00.00 - в HEX) > 10101100.00010000.00000000.00000000 - в двоичном виде > > 255.255.0.0 - маска в десятичном виде (FF.FF.00.00 - в HEX) > 11111111.11111111.00000000.00000000 - в двоичном виде > > 10101100.00010000.11111111.11111111 - старший адрес в двоичном виде > 172.16.255.255 - в десятичном виде (AC.10.FF.FF - в HEX) > > Первая вырезаемая подсетка 172.16.144.0 маска 255.255.248.0 (ее получили по dhcp), т.е. 172.16.144.0/21: > > 172.16.144.0 - адрес в десятичном виде (AC.10.90.00 - в HEX) > 10101100.00010000.10010000.00000000 - в двоичном виде > > 255.255.248.0 - маска в десятичном виде (FF.FF.00.00 - в HEX) > 11111111.11111111.11111000.00000000 - в двоичном виде > > 10101100.00010000.10010111.11111111 - старший адрес в двоичном виде > 172.16.151.255 - в десятичном виде (AC.10.97.FF - в HEX) > > А теперь диапазон адресов 172.16.0.0-172.16.143.255 надо представить в виде набора подсеток. > Старший адрес первой оставляемой подсети можно рассчитать таким манером: > > 10101100.00010000.10010000.00000000 - 172.16.144.0 (уже вырезаемая) > 10101100.00010000.01111111.11111111 - 172.16.127.255 (старший адрес оставляемой) > следовательно маска для этой оставляемой подсети > 11111111.11111111.10000000.00000000 - 255.255.128.0 (/17) > следовательно эта оставляемая подсетка будет > 10101100.00010000.00000000.00000000 - 172.16.0.0/17 > > Остается представить в виде подсеток диапазон 172.16.128.0-172.16.143.255: > > 10101100.00010000.10010000.00000000 - 172.16.144.0 (уже вырезаемая) > 10101100.00010000.10001111.11111111 - 172.16.143.255 (старший адрес оставляемой) > следовательно маска для этой оставляемой подсети > 11111111.11111111.11110000.00000000 - 255.255.240.0 (/20) > следовательно эта оставляемая подсетка будет > 10101100.00010000.10000000.00000000 - 172.16.128.0/20 > > Ну и так далее для оставшихся диапазонов адресов... > > С другой стороны, если не экономить записи в таблице маршрутизации, можно было просто наделать кучу записей: > route add -net 172.16.0.0 172.16.144.1 -netmask 255.255.255.0 -hopcount 1 > route add -net 172.16.1.0 172.16.144.1 -netmask 255.255.255.0 -hopcount 1 > route add -net 172.16.2.0 172.16.144.1 -netmask 255.255.255.0 -hopcount 1 > route add -net 172.16.3.0 172.16.144.1 -netmask 255.255.255.0 -hopcount 1 > ... > route add -net 172.16.143.0 172.16.144.1 -netmask 255.255.255.0 -hopcount 1 > ... > > пропустив вырезаемые подсетки. > что тоже будет работать :)
_, _, _, _, _ _ _,_
(_ | / \ |\ | | |_/
, ) | , \ / | \| | | \
~ ~~~ ~ ~ ~ ~ ~ ~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.