The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"проясните по wildcard bits"
Отправлено Nailer, 15-Дек-05 21:11 
>>>Привет!
>>>Как при помощи wildcard можно указать диапазон адресов, а не подсеть.
>>>Например 10.0.0.7 - 10.0.0.9
>>>Если с помощью wildcard  можно указывать только подсети, то в чем
>>>смысл wildcard и в чем отличие от обычной маски подсети?
>>
>>
>>10.0.0.7 0.0.0.2
>
>задал диапазон как вы указали, в результате адрес начала диапазона изменился на
>10.0.0.5,вот так:
>
>rs-12.vl1(config)#ip access-list extended 123
>rs-12.vl1(config-ext-nacl)#permit ip 10.0.0.7 0.0.0.2 any
>rs-12.vl1(config-ext-nacl)#^Z
>rs-12.vl1#sh ip access-lists 123
>Extended IP access list 123
>    10 permit ip 10.0.0.5 0.0.0.2 any
>rs-12.vl1#


Гм. У меня то же самое :-)

Придется вспоминать бинарную арифметику и размышлять вместе..
wildcard mask обозначает биты IP-адреса, которые должны быть проанализированы. 0 - анализируется, 1 - нет.

IP 10.0.0.7 в бинарном виде выглядит так
00001010.00000000.00000000.00000111

Если мы хотим адресовать сеть /24, то есть задать все IP из сети 10.0.0.0/24, то Wildcard mask будет выглядеть как 0.0.0.255, то есть в бинарном виде:

00001010.00000000.00000000.00000111
00000000.00000000.00000000.11111111

То есть в приходящем пакете проверяются биты адреса, которые стоят над нулями. Те, что над еденичками, не проверяются.

В чем сила wildcard mask - в том, что биты могут идти не подряд. Например, wildcard mask может выглядеть как:
00000000.00000000.00001001.10110011

Сетевая маска так выглядеть не может, так как она означает, какая часть адреса является адресом сети, какая адресом хоста. Она обязна быть непрерывной.

Теперь давайте подумаем, почему не получается задать ваш диапазон.

10.0.0.7 выглядит в бинарном виде как:
00001010.00000000.00000000.00000111

10.0.0.9 выглядит так:
00001010.00000000.00000000.00001001

С wildcard mask 0.0.0.2, которая в бинарном виде выглядит как

00000000.00000000.00000000.00000010, получается, что не надо анализировать только один бит. В получившийся диапазон попадают адреса

00001010.00000000.00000000.000001x1, то есть оканчивающиеся на 5 (101) или на 7 (111). Вот поэтому рутер и заменил 7 на 5, так как диапазон начинается на 5, это нагляднее выглядит.

Теперь подумаем, как адресовать адреса с 7 по 9.

7 в бинарном виде 0111, 9 - 1001. Соответственно, не нужно анализировать первые три бита, то есть маска будет выглядеть 1110. Но под такую маску попадут любые адреса, оканчивающиеся на xxx1, то есть:

1 (0001)
3 (0011)
5 (0101)
7 (0111)
9 (1001)
11 (1011)
13 (1101)
15 (1111)

Так что это не выход :-( Увы, придется писать две строчки..
А wildcard mask - мощный инструмент, надо только хорошо понимать принцип его работы..

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру