на главную    
     
 
  Кэширование | Содержание | Алгоритм добавления и выполнения задачи  
   
 

Практическая часть.
Проект

В рамках данной курсовой работы было решено выполнить лишь основополагающие части поставленной задачи. Полная разработка будет выполнена в будущем в качестве дипломной работы.

Мы будем рассматривать ip-адреса только из двух RIR – APNIC и RIPE. БД этих регистратур идентичны, за некоторыми исключениями. Для того чтобы определить к, какой регистратуре относится ip адрес, используется таблица ianamap. Эта таблица содержит данные о том, какие диапазоны принадлежат тому или иному RIR. Однако, в связи с тем, что адресное пространство регистратур постоянно меняется (Добавляются новые сети, удаляются старые; Диапазоны переносятся от одной регистратуры к другой и пр.), эту таблицу необходимо постоянно обновлять. Обновления можно производить при помощи статистической информации, которую выкладывают регистратуры на своих ftp-серверах. Динамическое обновление также будет выполнено позднее. В данной работе таблица ianamap будет статичной. Будем считать, что она содержит корректную информацию.

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

Кэш представляет собой две таблицы, которые содержат информацию об объектах inetnum и person(role) соответственно. Описание таблиц – см. приложение. Информация в кэш будет поступать после выполнения задач, вне зависимости от того, каким образом она поступила в очередь (описание очереди будет дано ниже).

В курсовой работе Т. Глюковой "Отображение IP-пространства на политическую карту мира" были описаны различные пересечения диапазонов. Они были представлены, как некоторые ошибки на whois-серверах. Однако, это не совсем так.

Как уже говорилось выше, диапазоны могут иметь различный статус (атрибут status:)

  1. ASSIGNED PA: Это пространство адресов было назначено конечному пользователю для пользования услугами, предоставляемыми выдающей LIR. Оно не может быть сохранено после завершения использования услуг, предоставляемых этой LIR.
  2. ASSIGNED PI: Это пространство адресов было назначено конечному пользователю и может сохраняться за ним сколь угодно долго, пока исходный критерий назначения действителен.

Создание объекта inetnum со статусом "ASSIGNED PA" или "ASSIGNED PI" возможно, только если не существует меньшего или большего по размерам пересекающегося по пространству адресов (специфичного) объекта inetnum со статусом "ASSIGNED".

Т.е. если в КЭШе содержится диапазон (в который входит искомый ip) со статусом ASSIGNED, то совершенно точно, что не существует никакого другого диапазона со статусом ASSIGNED, в котором также содержится данный ip. Если же в КЭШе минимальный диапазон (в который входит искомый ip) имеет какой-либо другой статус, то может возникнуть следующая ситуация:

В КЭШе есть диапазон *.*.150.0-*.*160.255 со статусом, отличным от ASSIGNED и не имеющем в нашем КЭШе вложений.

Поступает запрос на разрешение ip=*.*.155.10

Так как статус диапазона не ASSIGNED, то в нём могут содержаться другие диапазоны. Выяснить, содержатся они там или нет, мы можем, только сделав запрос к whois. Таким образом, запрос к whois делается всегда, когда диапазон, в который входит искомый ip и который содержится в КЭШе, имеет статус отличный от "ASSIGNED PA" или "ASSIGNED PI".

Диапазоны, которые имеют статус "ASSIGNED", назначены конечному пользователю, в отличие от всех других диапазонов. В текущей разработке разрешение будет существовать только для диапазонов со статусом "ASSIGNED".

В дальнейшем я планирую создать кэш по объекту inetnum в виде дерева. У каждого объекта будет существовать поле "отец", которое будет ссылаться на минимальный (по количеству хостов) объект inetnum из тех, которые содержат данный. Корнем дерева будет являться объект, содержащий весь Интернет-диапазон. В таком случае возрастает вероятность того, что мы дадим хоть какой-то ответ. Т.е. даже если ip-адрес не принадлежит ни какому диапазону со статусом "ASSIGNED", то мы будет искать минимальный ip-диапазон с любым статусом, в который входит этот ip, и дадим его в качестве ответа. Однако, как и прежде, запрос к whois-серверу будет выполняться.

 
     
  Кэширование | Содержание | Алгоритм добавления и выполнения задачи