Class isp dns::View

Материал из ISPWiki
Перейти к: навигация, поиск

Работа с DNS

Класс isp_dns::View

Данный класс является абстрактным

Представление горизонта видимости DNS (view)

#include <ispdns.h> 

Описание:

class isp_dns::View

Предоставляет методы для работы с view, при этом также является контейнером для представлений зон DNS

Содержание

Открытые члены (кратко)

virtual string Name () const =0

Возвращает имя зоны (для IDN имя будет представлено в punycode)


virtual string Type () const =0

Возвращает тип зоны ("master" — для основной зоны, "slave" — для дополнительной зоны)


virtual mgr_date::DateTime LastRefresh () const

Получить время последнего обновления текущей зоны (для master зон всегда текущее)


virtual ZonePtr GetZone ()=0

Возвращает текущее представление DNS-зоны


ZonePtr GetZone ( const string &domain )

Возвращает текущее представление DNS-зоны (аналогично Assert(domain)...GetZone())


bool CheckDnssecRollback ()

Метод используется во время отката доменной зоны при ошибке подписания зоны DNSSEC, чтобы не вызывать LongTask 'sbin/ispdns_zonesigner'.


bool isUsingDnssec ( bool has_queue = false )

Используется ли DNSSEC для домена. Перед вызовом не забудте выполнить Assert(domain).


void SetDnssecStatus ( const string &status , const string &user = "" )

Устанавливает статус подписания DNS-зоны в DNSSEC. Перед вызовом не забудте выполнить Assert(domain).


string GetDnssecStatus ()

Возвращает статус подписания DNS-зоны в DNSSEC. Перед вызовом не забудте выполнить Assert(domain).


virtual void FixZone ()=0

Чинит DNS-зону, если её не удалось подписать DNSSEC. Перед вызовом не забудте выполнить Assert(domain).


virtual void SignZone ( const string &domain , const string &owner )

Подписывает DNS-зону для DNSSEC.


virtual void ReSignZone ( const string &domain , const StringMap &record_param )

Переподписывает DNS-зону. На вход принимается имя домена и параметры записи, из-за которой зона переподписывается


virtual void UnSignZone ( const string &domain , bool force = false )

Удаляет подпись зоны, параметр force при значении true игнорируе ошибки


void GetDnssecInfo ( const string &domain , DnssecInfo &info )

Если зона подписана в DNSSEC, возвращает информацию о параметрах DNSSEC.


void GetDnssecData ( DnssecData &data )

Если зона подписана в DNSSEC, возвращает все данные параметров и ключей DNSSEC.


void SetDnssecData ( const StringMap &data )

Сохраняет данные DNSSEC по типу, который указан в параметре elid - params, key, record, banner.


void DeleteDnssecDomain ()

Удаление всей инфрмации об DNSSEC для домена из БД


void PublishDnssecDomain ( const string &domain )

Сообщаем доменной зоне, что все DS Записи опубликованы


bool CheckARecord ( const string &domain )

Проверка ведет ли A-запись домена на ip адрес нашего DNS-сервера


void CheckDsRecords ( const string &domain , const string &username )

Проверка DS-записей у родительского домена (у регистратора)


bool HasPublishedKeys ( const string &domain )

Возвращает, есть ли опубликованные DS-записи KSK ключей


string RecordDig ( const string &domain , const string &type )

dig записей заданного типа для домена


void Delete ()

Удаляет текущую зону и осуществляет переход к следующей зоне


virtual void Reconfig () const =0

Выполняет обновление данных о зонах (перечитывает информацию из настроек конкретной реализации DNS)


virtual bool Refresh () const =0

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


virtual  ~View ()

Деструктор

Методы навигации по списку зон

Данные методы обеспечивают навигацию по списку зон

Warning: Связь между функциями обхода списка зон (First, Next, Eof) и перехода к зоне (Assert, Find) не гарантируется Это значит, например, что вызов Next после Find не гарантирует, что текущая зона будет следующей после найденной

virtual bool First ()=0

Осуществляет переход к первой зоне. Возвращает true в случае успеха, false в противном случае


virtual bool Next ()=0

Осуществляет переход к следующей зоне. Возвращает true в случае успеха, false в противном случае


virtual bool Eof ()=0

Возвращает true, если достигнут конец списка зон


void Assert ( const string &domain )

Осуществляет переход к зоне с указанным доменным именем. Если зона не найдена, генерирует исключение


virtual bool Find ( const string &domain )

Осуществляет переход к зоне с указанным доменным именем. Если зона найдена, возвращает true.

Методы работы со списоком IP-адресов основных DNS-серверов для дополнительных зон

Данные методы обеспечивают работу со списоком IP-адресов серверов DNS, которые являются источником данных для дополнительных зон

Warning: Использование данных методов для основных зон является ошибкой программирования

virtual string MasterIP () const =0

Возвращает список IP-адресов основных DNS-серверов для текущей зоны в виде строки с разделителем " " (пробел)


void SetMasterIP ( const string &masterip )

Устанавливает список IP-адресов основных DNS-серверов для текущей зоны. Список передается в виде строки с разделителем " " (пробел)

Методы создания зон

Данные методы обеспечивают создание основных и дополнительных зон

ZonePtr CreateMaster ( const string &domain , const string &hostmaster , const string &origin = "" )

Создает основную зону


void CreateSlave ( const string &domain , const string &masterip )

Создает дополнительную зону

Защищённые члены (кратко)

Приватные члены (кратко)

Конструкторы

virtual ~View ()

Деструктор

Методы

virtual bool First ()=0

Осуществляет переход к первой зоне. Возвращает true в случае успеха, false в противном случае

virtual bool Next ()=0

Осуществляет переход к следующей зоне. Возвращает true в случае успеха, false в противном случае

virtual bool Eof ()=0

Возвращает true, если достигнут конец списка зон

void Assert ( const string &domain )

Осуществляет переход к зоне с указанным доменным именем. Если зона не найдена, генерирует исключение

virtual bool Find ( const string &domain )

Осуществляет переход к зоне с указанным доменным именем. Если зона найдена, возвращает true.

virtual string MasterIP () const =0

Возвращает список IP-адресов основных DNS-серверов для текущей зоны в виде строки с разделителем " " (пробел)

void SetMasterIP ( const string &masterip )

Устанавливает список IP-адресов основных DNS-серверов для текущей зоны. Список передается в виде строки с разделителем " " (пробел)

ZonePtr CreateMaster ( const string &domain , const string &hostmaster , const string &origin = "" )

Создает основную зону

Вызовает RealCreateMaster для создания зоны,затем создает ее на ведомых серверах

Аргументы:
[in] - domain Доменное имя зоны. Не обязательно должно указываться в punycode, функция преобразует значение в punycode, нижний регистр и удалит завершающую точку
[in] - hostmaster Адрес ответственного лица. Напоминаем, что символ "@" в таких адресах не используется. Замените его на "." (точку)
[in] - origin Необязательный параметр, используется для указания origin
Returned: представление DNS-зоны

void CreateSlave ( const string &domain , const string &masterip )

Создает дополнительную зону

Аргументы:
[in] - domain Доменное имя зоны. Не обязательно должен указываться в punycode, функция преобразует значение в punycode, нижний регистр и удалит завершающую точку
[in] - masterip Список IP-адресов основных DNS-серверов. Список передается в виде строки с разделителем " " (пробел)

virtual string Name () const =0

Возвращает имя зоны (для IDN имя будет представлено в punycode)

virtual string Type () const =0

Возвращает тип зоны ("master" — для основной зоны, "slave" — для дополнительной зоны)

virtual mgr_date::DateTime LastRefresh () const

Получить время последнего обновления текущей зоны (для master зон всегда текущее)

virtual ZonePtr GetZone ()=0

Возвращает текущее представление DNS-зоны

ZonePtr GetZone ( const string &domain )

Возвращает текущее представление DNS-зоны (аналогично Assert(domain)...GetZone())

bool CheckDnssecRollback ()

Метод используется во время отката доменной зоны при ошибке подписания зоны DNSSEC, чтобы не вызывать LongTask 'sbin/ispdns_zonesigner'.

bool isUsingDnssec ( bool has_queue = false )

Используется ли DNSSEC для домена. Перед вызовом не забудте выполнить Assert(domain).

void SetDnssecStatus ( const string &status , const string &user = "" )

Устанавливает статус подписания DNS-зоны в DNSSEC. Перед вызовом не забудте выполнить Assert(domain).

string GetDnssecStatus ()

Возвращает статус подписания DNS-зоны в DNSSEC. Перед вызовом не забудте выполнить Assert(domain).

virtual void FixZone ()=0

Чинит DNS-зону, если её не удалось подписать DNSSEC. Перед вызовом не забудте выполнить Assert(domain).

virtual void SignZone ( const string &domain , const string &owner )

Подписывает DNS-зону для DNSSEC.

virtual void ReSignZone ( const string &domain , const StringMap &record_param )

Переподписывает DNS-зону. На вход принимается имя домена и параметры записи, из-за которой зона переподписывается

virtual void UnSignZone ( const string &domain , bool force = false )

Удаляет подпись зоны, параметр force при значении true игнорируе ошибки

void GetDnssecInfo ( const string &domain , DnssecInfo &info )

Если зона подписана в DNSSEC, возвращает информацию о параметрах DNSSEC.

void GetDnssecData ( DnssecData &data )

Если зона подписана в DNSSEC, возвращает все данные параметров и ключей DNSSEC.

void SetDnssecData ( const StringMap &data )

Сохраняет данные DNSSEC по типу, который указан в параметре elid - params, key, record, banner.

void DeleteDnssecDomain ()

Удаление всей инфрмации об DNSSEC для домена из БД

void PublishDnssecDomain ( const string &domain )

Сообщаем доменной зоне, что все DS Записи опубликованы

bool CheckARecord ( const string &domain )

Проверка ведет ли A-запись домена на ip адрес нашего DNS-сервера

void CheckDsRecords ( const string &domain , const string &username )

Проверка DS-записей у родительского домена (у регистратора)

bool HasPublishedKeys ( const string &domain )

Возвращает, есть ли опубликованные DS-записи KSK ключей

string RecordDig ( const string &domain , const string &type )

dig записей заданного типа для домена

void Delete ()

Удаляет текущую зону и осуществляет переход к следующей зоне

Delete удаляет зону на ведомых серверах, если они есть и вызывает RealDelete, чтобы удалить ее локально

virtual void Reconfig () const =0

Выполняет обновление данных о зонах (перечитывает информацию из настроек конкретной реализации DNS)

virtual bool Refresh () const =0

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