Я не могу создать зону с помощью моего PowerDNSAdmin, я увидел ошибку HTTP 400.

Вопрос или проблема

[2023-08-28 14:35:33,070] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "POST /domain/add HTTP/1.1" 400 -
[2023-08-28 14:35:33,095] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/assets/css/style.css HTTP/1.1" 304 -
[2023-08-28 14:35:33,106] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/assets/css/source_sans_pro.css HTTP/1.1" 304 -
[2023-08-28 14:35:33,111] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/generated/main.css?aa4c2493 HTTP/1.1" 304 -
[2023-08-28 14:35:33,113] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/assets/css/roboto_mono.css HTTP/1.1" 304 -
[2023-08-28 14:35:33,137] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/img/favicon.png HTTP/1.1" 304 -
[2023-08-28 14:35:33,138] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /static/generated/main.js?a2786bcc HTTP/1.1" 304 -
[2023-08-28 14:35:33,141] [_internal.py:224] INFO - 192.168.220.1 - - [28/Aug/2023 14:35:33] "GET /user/image?username=cem HTTP/1.1" 304 -

это мой лог я использую mysql-сервер

это мой запрос

CREATE TABLE domains (
  id                    INT AUTO_INCREMENT,
  name                  VARCHAR(255) NOT NULL,
  master                VARCHAR(128) DEFAULT NULL,
  last_check            INT DEFAULT NULL,
  type                  VARCHAR(8) NOT NULL,
  notified_serial       INT UNSIGNED DEFAULT NULL,
  account               VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
  options               VARCHAR(64000) DEFAULT NULL,
  catalog               VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';

CREATE UNIQUE INDEX name_index ON domains(name);
CREATE INDEX catalog_idx ON domains(catalog);


CREATE TABLE records (
  id                    BIGINT AUTO_INCREMENT,
  domain_id             INT DEFAULT NULL,
  name                  VARCHAR(255) DEFAULT NULL,
  type                  VARCHAR(10) DEFAULT NULL,
  content               VARCHAR(64000) DEFAULT NULL,
  ttl                   INT DEFAULT NULL,
  prio                  INT DEFAULT NULL,
  disabled              TINYINT(1) DEFAULT 0,
  ordername             VARCHAR(255) BINARY DEFAULT NULL,
  auth                  TINYINT(1) DEFAULT 1,
  PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';

CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX ordername ON records (ordername);


CREATE TABLE supermasters (
  ip                    VARCHAR(64) NOT NULL,
  nameserver            VARCHAR(255) NOT NULL,
  account               VARCHAR(40) CHARACTER SET 'utf8' NOT NULL,
  PRIMARY KEY (ip, nameserver)
) Engine=InnoDB CHARACTER SET 'latin1';


CREATE TABLE comments (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  name                  VARCHAR(255) NOT NULL,
  type                  VARCHAR(10) NOT NULL,
  modified_at           INT NOT NULL,
  account               VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
  comment               TEXT CHARACTER SET 'utf8' NOT NULL,
  PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';

CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);


CREATE TABLE domainmetadata (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  kind                  VARCHAR(32),
  content               TEXT,
  PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';

CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);


CREATE TABLE cryptokeys (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  flags                 INT NOT NULL,
  active                BOOL,
  published             BOOL DEFAULT 1,
  content               TEXT,
  PRIMARY KEY(id)
) Engine=InnoDB CHARACTER SET 'latin1';

CREATE INDEX domainidindex ON cryptokeys(domain_id);


CREATE TABLE tsigkeys (
  id                    INT AUTO_INCREMENT,
  name                  VARCHAR(255),
  algorithm             VARCHAR(50),
  secret                VARCHAR(255),
  PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';

CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);

это мой ввод dig

; <<>> DiG 9.18.12-0ubuntu0.22.04.2-Ubuntu <<>> @127.0.0.1
; (1 сервер найден)
;; глобальные параметры: +cmd
;; Получен ответ:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 25775
;; флаги: qr rd; ЗАПРОС: 1, ОТВЕТ: 0, АВТОРИТЕТ: 0, ДОПОЛНИТЕЛЬНЫЙ: 1
;; ПРЕДУПРЕЖДЕНИЕ: рекурсия запрошена, но недоступна

;; OPT PSEUDOSECTION:
; EDNS: версия: 0, флаги:; udp: 1232
;; QUESTION SECTION:
;.                              IN      NS

;; Время запроса: 0 мс
;; СЕРВЕР: 127.0.0.1#53(127.0.0.1) (UDP)
;; ВРЕМЯ: Пн Авг 28 14:40:34 UTC 2023
;; РАЗМЕР СООБЩ.  получен: 28

powerdns и pdnsadmin работают, но я не могу создать зону

это мой код статуса pdns

goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 13:59:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:04:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:09:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:14:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:19:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:24:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:29:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:34:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.
Авг 28 14:39:55 goktug pdns_server[21185]: WARNING: MYSQL_OPT_RECONNECT устарел и будет удален в будущем.

вы нашли решение? Если да, можете поделиться? Я получаю ту же ошибку.

Ответ или решение

Ошибка HTTP 400 при создании зоны через интерфейс PowerDNS Admin может возникать по нескольким причинам. Давайте рассмотрим возможные причины и предложим пути их решения.

Возможные причины:

  1. Ошибки в SQL-запросах:

    • Проверьте, правильно ли написаны SQL-запросы для создания таблиц и индексов. Например, убедитесь, что названия полей таблиц интегрированы правильно и соответствуют требованиям вашей версии PowerDNS.
  2. Некорректный формат данных:

    • Возможно, что данные, которые вы пытаетесь отправить для создания зоны (например, имя домена), не соответствуют требованиям PowerDNS (например, длина названия домена не должна превышать 255 символов).
  3. Отсутствие необходимых прав доступа в базе данных MySQL:

    • Убедитесь, что пользователь MySQL, используемый для подключения PowerDNS, имеет все необходимые права для выполнения операций по добавлению данных в таблицы баз данных. Проверьте наличие прав на выполнение операций INSERT, UPDATE и SELECT.
  4. Настройки PowerDNS:

    • Проверьте конфигурационный файл PowerDNS (обычно pdns.conf) на предмет корректности настроек, таких как маршрут к базе данных и драйвер базы данных. Убедитесь, что используется правильный драйвер MySQL.
  5. Зависимости и версии библиотек:

    • Убедитесь, что у вас установлены все необходимые зависимости, включая библиотеки MySQL. Также проверьте версию PowerDNS и библиотек, может быть, вам нужно обновить их до более свежей, чтобы избежать ошибок совместимости (первичная проверка).

Пошаговые действия по устранению:

  1. Проверка журнала ошибок:

    • Изучите журналы ошибок PowerDNS для получения более подробной информации о том, что именно вызвало ошибку 400. Ваша запись логов показывает запрос, получающий код состояния 400, но нам необходимо больше информации о самой ошибке.
  2. Тестирование соединения с базой данных:

    • Попробуйте подключиться к вашей базе данных MySQL с помощью командной строки MySQL, используя учетные данные, которые PowerDNS использует для подключения. Убедитесь, что вы можете выполнять операции QUERY на таблицах domains и records.
  3. Проверка структуры таблиц:

    • Убедитесь, что таблицы, особенно domains и records, созданы корректно и имеют правильные типы данных. Попробуйте выполнить встроенные SQL-инструкции для проверки и устранения проблем с синтаксисом.
  4. Настройки прав пользователя:

    • Проверьте и при необходимости обновите права доступа пользователя MySQL, который используется для связывания PowerDNS с базой данных:
      GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_user'@'localhost';
      FLUSH PRIVILEGES;
  5. Тестирование интеграции:

    • Если все настройки правильные, попробуйте создать зону заново через консоль управления. Пробуйте использовать короткие имена и стандартные типы записей, чтобы исключить возможность оформления.

Заключение

После проведения всех этих исследований и исправлений вы должны иметь возможность создать зону через PowerDNS Admin. Если ошибка продолжает появляться, имеет смысл обратиться к официальной документации PowerDNS или на специализированные форумы для получения дополнительной поддержки. Система DNS может быть сложной, особенно с учетом различных версий и конфигураций, поэтому внимательно следите за обновлениями и исправлениями.

Если у вас есть дополнительные вопросы или нужна помощь, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...