Group isp dns

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

Работа с DNS


Описание:

group isp_dns

Модуль предоставляет инструменты для работы с системой доменных имен (DNS). В базовой реализации поддерживается возможность работы с разделенными горизонтами видимости сущностей DNS (split-horizon DNS), для представления понятия горизонта видимости используется термин "view". Также поддерживается возможность работы с относительными доменными именами. Часть доменного имени, подставляемая (слева) к относительному для получения полного доменного имени обозначается термином "origin". RFC1035 (http://www.ietf.org/rfc/rfc1035.txt) page 33 ($ORIGIN)

Классы

struct isp_dns::DnssecParam
struct isp_dns::DnskeyRecordInfo
struct isp_dns::DsRecordInfo
struct isp_dns::DnssecKeyInfo
struct isp_dns::DnssecBannerInfo
struct isp_dns::DnssecInfo
struct isp_dns::DnssecData
class isp_dns::Record
class isp_dns::RecordSmartPtr

Представление ресурсной записи DNS.


class isp_dns::Zone

Представление зоны DNS.


class isp_dns::View

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


class isp_dns::Connection

Представление подключения к DNS-серверу


struct isp_dns::ConnectionParams

Представление параметров подключения к DNS-серверу


class isp_dns::RegisterDriver

Функция регистрации драйвера СУБД


namespace isp_dns::dns_test

Данный namespace содержит функции для проверки значений, принимаемых системой доменных имен (DNS).

Открытые типы (кратко)

typedef string( UserNameSpaceCallback )(const isp_api::Authen &)

Получить имя горизонта видимости по имени пользователя


typedef std::shared_ptr<Record> RecordPtr
typedef std::shared_ptr<View> ViewPtr
typedef std::shared_ptr<Zone> ZonePtr
typedef std::shared_ptr<Connection> ConnectionPtr
typedef ConnectionPtr(* DriverEntry )(const ConnectionParams &params)

Перечисления (кратко)

Перечисление DnskeyType { KSK , ZSK , }

Базовое представление ресурсной записи DNS.

Перечисление SlaveStatus { ssOk = 0, ssRun = 1, ssErr = 2, ssErrSoa = 3, }

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

bool HaveAlgorithmSize ( const int alg_num )

Требует ли алгоритм шифорования DNSSEC указания длины ключа


bool HaveAlgorithmSize ( const string &algorithm )

Требует ли алгоритм шифорования DNSSEC указания длины ключа


LIBDNS_API ConnectionPtr Connect ( const ConnectionParams &params )

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


LIBDNS_API ConnectionPtr Connect ( const string &params = "" )

Функция подключения к DNS-серверу


string LIBDNS_API toFQDN ( const string &val , const string &origin )

Возвращает FQDN (полное доменное имя) по переданному доменному имени (полному или относительному) и origin.


string LIBDNS_API fromFQDN ( const string &val , const string &origin )

Возвращает доменное имя (относительное) по переданному FQDN (полному доменному имени) и origin.


bool LIBDNS_API HasLastDot ( const string &domain )

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


string LIBDNS_API AppendLastDot ( const string &domain )

Возвращает доменное имя с точкой на конце по переданному доменному имени


string LIBDNS_API DeleteLastDot ( const string &domain )

Возвращает доменное без точки на конце по переданному доменному имени


string LIBDNS_API GetDefaultTTL ()

Возвращает значение времени жизни ресурсных записей (MinimumTTL SOA-записей зон) по умолчанию


string LIBDNS_API GetDefaultSerial ()

Возвращает значение серийного номера SOA-записи зон по умолчанию


string LIBDNS_API GetHostName ()

Возвращает MNAME (RFC 1035). По умолчанию - имя сервера, может быть изменено через параметр DNS_HOSTNAME.


bool LIBDNS_API IsSubDomainOf ( const string &sub , const string &domain )

Перечисления (подробно)

DnskeyType

Базовое представление ресурсной записи DNS.

Каждая реализация конкретного DNS-сервера ответственна за создание своего набора записей. Как минимум должны существовать следующие типы записей: A, AAAA, NS, MX, SOA, CNAME, DNAME, TXT, SRV, PTR

со следующими полями и валидаторами:

Warning: Имена записей обязаны принадлежать доменной зоне, в которой они находятся!
  • Awww A 192.168.1.1

Имя поля Валидатор или значение Пример name RecordName()www type "A" - addr Const(Ip4)192.168.1.1

  • AAAAwww AAAA A1::0

Имя поля Валидатор или значение Пример name RecordName()www type "AAAA" - addr Const(Ip6)A1::0

  • NStest.com. NS ns1.test.com.

Имя поля Валидатор или значение Пример name RecordName()test.com. type "NS" - addr SubDomain() && Const(!Ip)ns1.test.com.

  • MXtest.com. MX 10 mail

Имя поля Валидатор или значение Пример name RecordName()test.com. type "MX" - prio Numeric()10 addr SubDomain() && Const(!Ip)mail

  • TXTtest.com. TXT "v=spf1 ip4:82.146.37.191 a mx ~all"

Имя поля Валидатор или значение Пример name RecordName()test.com. type "TXT" - addr TXTdata()v=spf1 ip4:82.146.37.191 a mx ~all data "<addr>" "v=spf1 ip4:82.146.37.191 a mx ~all" валидатор addr должен убирать кавычки, data - добавлять их

  • SOAtest.com. SOA ns1.test.com. root.test.com. (2011082400 10800 3600 604800 86400)

Имя поля Валидатор или значение Пример name RecordName()test.com. type "SOA" - mname SubDomain()ns1.test.com. addr SubDomain()root.test.com. serial Numeric()2011082400 data <mname> + <addr> + <serial> + ... 2011082400 10800 3600 604800 86400

  • SRVtest.com. SRV 10 20 30 srv.test.com

Имя поля Валидатор или значение Пример name RecordName()test.com. type "SRV" - prio Numeric()10 wght Numeric()20 port Numeric()30 addr Domain() && Const(!Ip)_sip._tcp.test.com. data <prio> + <wght> + <port> + <addr> 10 20 30 _sip._tcp.test.com.

  • CNAME

addname CNAME test1.com.

Имя поля Валидатор или значение Пример name RecordName()addname type "CNAME" - addr SubDomain() && Const(!Ip)test1.com.

  • DNAME

addname DNAME test1.com.

Имя поля Валидатор или значение Пример name RecordName()addname type "DNAME" - addr SubDomain() && Const(!Ip)test1.com.

  • PTR

2 PTR test.com.

Имя поля Валидатор или значение Пример name RecordName()2 type "PTR" - addr SubDomain()test.com.

  • KSK
  • ZSK

SlaveStatus

  • ssOk= 0
  • ssRun= 1
  • ssErr= 2
  • ssErrSoa= 3

Функции

bool HaveAlgorithmSize ( const int alg_num )

Требует ли алгоритм шифорования DNSSEC указания длины ключа

bool HaveAlgorithmSize ( const string &algorithm )

Требует ли алгоритм шифорования DNSSEC указания длины ключа

LIBDNS_API ConnectionPtr Connect ( const ConnectionParams &params )

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

LIBDNS_API ConnectionPtr Connect ( const string &params = "" )

Функция подключения к DNS-серверу

Выполняет подключение к DNS-серверу с автоматически сформированной строкой подключения.

See also: mgr_dns::ConnectionParams Тип DNS-сервера указывается в конфигурационном файле панели управления (параметр DNS) Переданная строка подключения дополняется в соответствии с параметрами, указанными в конфигурационном файле панели управления

string LIBDNS_API toFQDN ( const string &val , const string &origin )

Возвращает FQDN (полное доменное имя) по переданному доменному имени (полному или относительному) и origin.

string LIBDNS_API fromFQDN ( const string &val , const string &origin )

Возвращает доменное имя (относительное) по переданному FQDN (полному доменному имени) и origin.

bool LIBDNS_API HasLastDot ( const string &domain )

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

string LIBDNS_API AppendLastDot ( const string &domain )

Возвращает доменное имя с точкой на конце по переданному доменному имени

string LIBDNS_API DeleteLastDot ( const string &domain )

Возвращает доменное без точки на конце по переданному доменному имени

string LIBDNS_API GetDefaultTTL ()

Возвращает значение времени жизни ресурсных записей (MinimumTTL SOA-записей зон) по умолчанию

string LIBDNS_API GetDefaultSerial ()

Возвращает значение серийного номера SOA-записи зон по умолчанию

string LIBDNS_API GetHostName ()

Возвращает MNAME (RFC 1035). По умолчанию - имя сервера, может быть изменено через параметр DNS_HOSTNAME.

bool LIBDNS_API IsSubDomainOf ( const string &sub , const string &domain )

Последовательность sub является поддоменом последовательности domain

Типы

typedef string( UserNameSpaceCallback )(const isp_api::Authen &)

Получить имя горизонта видимости по имени пользователя

GetUserNameSpace возвращает имя горизонта видимости по умолчанию. Это поведение может быть переопределено при помощи функции, зарегистрированной при помощи RegisterUserNameSpaceCallback

typedef std::shared_ptr<Record> RecordPtr

typedef std::shared_ptr<View> ViewPtr

typedef std::shared_ptr<Zone> ZonePtr

typedef std::shared_ptr<Connection> ConnectionPtr

typedef ConnectionPtr(* DriverEntry )(const ConnectionParams &params)