Перейти к основному содержимому

Описание базы данных

Ниже приводится схема и описание таблиц базы данных, созданных для стандартного использования HBF-Server.

HBF-Server поддерживает PostgreSQL версии 14.8

Поскольку HBF-Server взаимодействует с этой базой данных самостоятельно, конечному пользователю не нужно беспокоиться о ее структуре и о том как хранятся данные.

Схема базы данных

На диаграмме ниже представлен визуальный обзор базы данных HBF-Server и связей между таблицами. В приведенном ниже Обзоре Таблиц, содержатся дополнительные сведения о таблицах и столбцах базы данных.

Обзор таблиц (сущности)

В этом разделе представлен обзор всех таблиц, созданных для стандартного использования HBF-Server. С последующим детальным описанием, что находится в каждой таблице.

Название таблицыОписаниеСоответствующие области взаимодействия интерфейса (API)
tbl_network

таблица tbl_network хранит информацию о IP Subnets c уникальным названием, CIDR и ссылкой на SG к сети которой она принадлежит

tbl_sg

таблица tbl_sg хранит информацию о Security Groups (SG) с уникальным названием, правилом применяемым для входящих или исходящих пакетов, также возможностью включить логирование

tbl_ie_sg_sg_rule

таблица tbl_ie_sg_sg_rule хранит информацию SG-SG правил для входящего и исходящего траффика с сетевым транспортным протоколами и диапазоном портов

tbl_ie_sg_sg_icmp_rule

таблица tbl_ie_sg_sg_icmp_rule хранит информацию SG-SG правил для входящего и исходящего траффика через сетевой протокол ICMP

tbl_cidr_sg_rule

таблица tbl_cidr_sg_rule хранит информацию CIDR-SG правил для входящего и исходящего траффика с сетевым транспортным протоколом, бесклассовой междоменной маршрутизацией (CIDR) и диапазоном портов

tbl_cidr_sg_icmp_rule

таблица tbl_cidr_sg_icmp_rule хранит информацию CIDR-SG правил для входящего и исходящего траффика с сетевым протоколом ICMP, бесклассовой междоменной маршрутизацией (CIDR)

tbl_fqdn_rule

таблица tbl_fqdn_rule хранит информацию SG-to-FQDN правил с сетевым транспортным протоколом и диапазоном портов

tbl_sg_icmp_ruleтаблица tbl_sg_icmp_rule хранит информацию SG:ICMP правил
tbl_sg_rule

таблица tbl_sg_rules хранит информацию о правилах виртуального файрволла который можно настраивать для того чтобы контролировать входящий и выходящий трафик

tbl_sg_sg_icmp_ruleтаблица tbl_sg_sg_icmp_rule хранит информацию SG-SG:ICMP правил
tbl_sync_status

в таблице tbl_sync_status хранится информация об изменениях внесенных пользователем (дата последнего успешного изменения и кол-во изменённых строк)

Подробное описание таблиц

Ниже приведены конкретные поля в каждой из таблиц, созданных для стандартного использования HBF-Server

tbl_network

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
sgint(8)YESFKвнешний ключ к таблице tbl_sg.id
namecnameALT
  • длина значения не должна превышать 256 символов
  • значения должно начинаться и заканчиваться символами без пробелов
  • значение должно быть уникальным
networkcidr
  • значение от 7 до 19 байт пример 192.168.100.128/25
  • сетевые интервалы не должны пересекаться

Ключи

Имя ключаТипПоля
Alternative keySimple Keycname

tbl_sg

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
namecnameALT
  • длина значения не должна превышать 256 символов
  • значения должно начинаться и заканчиваться символами без пробелов
  • значение должно быть уникальным
logsboolfalse
traceboolfalse
default_actionchain_default_action‘DROP’::chain_default_action

одно из двух значений:

  • ACCEPT
  • DROP

Ключи

Имя ключаТипПоля
Alternative keySimple Keycname

tbl_ie_sg_sg_rule

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
protoprotoALT

одно из двух значений:

  • tcp
  • udp
sgint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
sg_localint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
traffictrafficALT

одно из двух значений:

  • ingress
  • egress
portssg_rule_ports[]YES
  • должно быть указано значение порта исходящего либо входящего трафика
  • значение должно находиться в интервале от 1 до 65535
  • интервалы введённых значений портов для исходящего трафика не должны пересекаться

logsbool
tracebool
actionrule_action

одно из двух значений:

  • ACCEPT
  • DROP
prioritysmallint0
  • значения должны находиться в интервале от -32768 до 32767
  • чем ниже значение приоритета, тем выше приоритет имеет правило
  • необязательное поле для заполнения, если значение не указать будет использоваться значение по умолчанию

Ключи

Имя ключаТипПоля
Alternative keyCompound Key
  • proto
  • sg
  • sg_local
  • traffic

tbl_ie_sg_sg_icmp_rule

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
sgint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
sg_localint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
traffictrafficALTодно из двух значений "ingress" или "egress"
ip_vip_familyALTодно из двух значений "IPv6" или "IPv4"
typesicmp_typesмассив из smallint[] кодов типа ICMP
logsBooleanfalse
traceBooleanfalse
actionrule_action

одно из двух значений:

  • ACCEPT
  • DROP
prioritysmallint0
  • значения должны находиться в интервале от -32768 до 32767
  • чем ниже значение приоритета, тем выше приоритет имеет правило
  • необязательное поле для заполнения, если значение не указать будет использоваться значение по умолчанию

Ключи

Имя ключаТипПоля
Alternative keyCompound Key
  • sg
  • sg_local
  • traffic
  • ip_v

tbl_cidr_sg_rule

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
protoprotoALT

одно из двух значений:

  • tcp
  • udp
cidrcidrALT

значение cidr (диапазон ip адресов) в рамках одного правила (proto, sg, traffic) не должны пересекаться

sgint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
traffictrafficALT
  • ingress
  • egress
portssg_rule_ports[]YES
  • должно быть указано значение порта исходящего либо входящего трафика
  • значение должно находиться в интервале от 1 до 65535
  • интервалы введённых значений портов для исходящего трафика не должны пересекаться

logsbool
tracebool
actionrule_action

одно из двух значений:

  • ACCEPT
  • DROP
prioritysmallint0
  • значения должны находиться в интервале от -32768 до 32767
  • чем ниже значение приоритета, тем выше приоритет имеет правило
  • необязательное поле для заполнения, если значение не указать будет использоваться значение по умолчанию

Ключи

Имя ключаТипПоля
Alternative keyCompound Key
  • proto
  • cidr
  • sg
  • traffic

tbl_cidr_sg_icmp_rule

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
cidrcidrALT

значение cidr (диапазон ip адресов) в рамках одного правила (ip_v, sg, traffic) не должны пересекаться

sgint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
traffictrafficALT
  • ingress
  • egress
ip_vip_familyALT

одно из двух значений:

  • IPv6
  • IPv4
typesicmp_types

массив из smallint[] кодов типа ICMP

logsbool
tracebool
actionrule_action

одно из двух значений:

  • ACCEPT
  • DROP
prioritysmallint0
  • значения должны находиться в интервале от -32768 до 32767
  • чем ниже значение приоритета, тем выше приоритет имеет правило
  • необязательное поле для заполнения, если значение не указать будет использоваться значение по умолчанию

Ключи

Имя ключаТипПоля
Alternative keyCompound Key
  • ip_v
  • cidr
  • sg
  • traffic

tbl_fqdn_rule

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
sg_fromint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
fqdn_tofqdnALT
  • длина значения не должна превышать 256 символов
  • значение начинается со строки, которая содержит один или более символов, являющихся буквами нижнего регистра, цифрами, символом . или символами _ и - (кроме первого символа, который не может быть - или _), и должна быть длиной от 1 до 62 символов

  • затем может следовать любое количество строк, начинающихся с символа ., за которым идет один символ, являющийся буквой нижнего регистра, цифрой, символом _ или символом -, и длина строки от 0 до 62 символов

protoprotoALT

одно из двух значений:

  • tcp
  • udp
portssg_rule_ports[]YES
  • должно быть указано значение порта исходящего либо входящего трафика
  • значение должно находиться в интервале от 1 до 65535
  • интервалы введённых значений портов для исходящего трафика не должны пересекаться

logsboolfalse
ndpi_protocolscitext
  • количество элементов в массиве (наименований протоколов) не должно превышать 255

  • значение элемента (наименование протокола) не должно начинаться или заканчиваться пробелом и не должно быть пустым

actionrule_action

одно из двух значений:

  • ACCEPT
  • DROP
prioritysmallint0
  • значения должны находиться в интервале от -32768 до 32767
  • чем ниже значение приоритета, тем выше приоритет имеет правило
  • необязательное поле для заполнения, если значение не указать будет использоваться значение по умолчанию

Ключи

Имя ключаТипПоля
Alternative keyCompound Key
  • sg_from
  • fqdn_to
  • proto

tbl_sg_icmp_rule

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
ip_vip_familyALT

одно из двух значений:

  • IPv6
  • IPv4
typesicmp_typesмассив из smallint[] кодов типа ICMP
sgint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
logsbool
tracebool
actionrule_action

одно из двух значений:

  • ACCEPT
  • DROP

Ключи

Имя ключаТипПоля
Alternative keyCompound Key
  • ip_v
  • sg

tbl_sg_rule

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
sg_fromint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
sg_toint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
protoprotoALT

одно из двух значений:

  • tcp
  • udp
portssg_rule_ports[]YES
  • должно быть указано значение порта исходящего либо входящего трафика
  • значение должно находиться в интервале от 1 до 65535
  • интервалы введённых значений портов для исходящего трафика не должны пересекаться

logsboolfalse
actionrule_action

одно из двух значений:

  • ACCEPT
  • DROP
prioritysmallint0
  • значения должны находиться в интервале от -32768 до 32767
  • чем ниже значение приоритета, тем выше приоритет имеет правило
  • необязательное поле для заполнения, если значение не указать будет использоваться значение по умолчанию

Ключи

Имя ключаТипПоля
Alternative keyCompound Key
  • sg_from
  • sg_to
  • proto

tbl_sg_sg_icmp_rule

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
ip_vip_familyALT

одно из двух значений:

  • IPv6
  • IPv4
typesicmp_typesмассив из smallint[] кодов типа ICMP
sg_fromint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
sg_toint(8)FK/ALTвнешний ключ к таблице tbl_sg.id
logsbool
tracebool
actionrule_action

одно из двух значений:

  • ACCEPT
  • DROP
prioritysmallint0
  • значения должны находиться в интервале от -32768 до 32767
  • чем ниже значение приоритета, тем выше приоритет имеет правило
  • необязательное поле для заполнения, если значение не указать будет использоваться значение по умолчанию

Ключи

Имя ключаТипПоля
Alternative keyCompound Key
  • ip_v
  • sg_from
  • sg_to

tbl_sync_status

ПолеТипNullКлючПо умолчаниюДополнительно
idint(8)PRIauto_increment
total_affected_rowsint(8)

при любой процедуре (удаление/добавление/редактирование) данных в таблицах, tbl_network, tbl_sg, tbl_fqdn_rule, tbl_sg_rule, tbl_sg_icmp_rule, tbl_sg_sg_icmp_rule, будет учтена сумма всех изменённых строк

updated_attimstamptzYESдата изменения