пятница, 2 декабря 2011 г.

Миграция с Bind на PowerDNS на серверах с ISPmanager

На сервере используется панель ISPmanager и задача выполняется с учетом данного факта.

Миграция мастер-зон доменов Bind'а в Mysql базу данных PowerDNS, в данном примере используются тестовые домены domain1.local, domain1.local, domain1.local. Сам DNS сервер содержит только мастер зоны.

zone2sql - это утилита для конвертирования Bind зон в sql

srv-01:~# zone2sql --named-conf=/etc/bind/named.conf --gmysql > domains_from_bind.sql
100% done
Parsed 79 records

srv-01:~# mysql -u root -p pdns < domains_from_bind.sql

Бэкапим конфиг панели ISPmanager /usr/local/ispmgr/etc/ispmgr.conf (можно не весь, а только строчки где определяются пользователи и их владением, теми или иными доменами)

Проверяем результат:

srv-01:/opt/backup# mysql -u root -p -e 'select * from pdns.domains'
Enter password:
+----+------------------+--------+------------+--------+-----------------+---------+
| id | name             | master | last_check | type   | notified_serial | account |
+----+------------------+--------+------------+--------+-----------------+---------+
| 20 | 127.in-addr.arpa | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 18 |                  | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 19 | localhost        | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 21 | 0.in-addr.arpa   | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 22 | 255.in-addr.arpa | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 23 | domain1.local    | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 24 | domain2.local    | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 25 | domain3.local    | NULL   |       NULL | NATIVE |            NULL | NULL    |
+----+------------------+--------+------------+--------+-----------------+---------+

srv-01:/opt/backup# mysql -u root -p -e 'select * from pdns.records'
Enter password:
+-----+-----------+------------------------+------+-----------------------------------------------------------------+---------+------+-------------+
| id  | domain_id | name                   | type | content                                                         | ttl     | prio | change_date |
+-----+-----------+------------------------+------+-----------------------------------------------------------------+---------+------+-------------+
| 283 |        22 | 255.in-addr.arpa       | SOA  | localhost root.localhost 1 604800 86400 2419200 604800          |  604800 |    0 |        NULL |
| 282 |        21 | 0.in-addr.arpa         | NS   | localhost                                                       |  604800 |    0 |        NULL |
| 281 |        21 | 0.in-addr.arpa         | SOA  | localhost root.localhost 1 604800 86400 2419200 604800          |  604800 |    0 |        NULL |
| 279 |        20 | 127.in-addr.arpa       | NS   | localhost                                                       |  604800 |    0 |        NULL |
| 280 |        20 | 1.0.0.127.in-addr.arpa | PTR  | localhost                                                       |  604800 |    0 |        NULL |
| 277 |        19 | localhost              | AAAA | ::1                                                             |  604800 |    0 |        NULL |
| 278 |        20 | 127.in-addr.arpa       | SOA  | localhost root.localhost 1 604800 86400 2419200 604800          |  604800 |    0 |        NULL |
| 276 |        19 | localhost              | A    | 127.0.0.1                                                       |  604800 |    0 |        NULL |
| 275 |        19 | localhost              | NS   | localhost                                                       |  604800 |    0 |        NULL |
| 274 |        19 | localhost              | SOA  | localhost root.localhost 2 604800 86400 2419200 604800          |  604800 |    0 |        NULL |
| 273 |        18 | m.root-servers.net     | AAAA | 2001:dc3::35                                                    | 3600000 |    0 |        NULL |
| 272 |        18 | m.root-servers.net     | A    | 202.12.27.33                                                    | 3600000 |    0 |        NULL |
| 270 |        18 | l.root-servers.net     | A    | 199.7.83.42                                                     | 3600000 |    0 |        NULL |
| 271 |        18 |                        | NS   | M.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 269 |        18 |                        | NS   | L.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 268 |        18 | k.root-servers.net     | AAAA | 2001:7fd::1                                                     | 3600000 |    0 |        NULL |
| 267 |        18 | k.root-servers.net     | A    | 193.0.14.129                                                    | 3600000 |    0 |        NULL |
| 266 |        18 |                        | NS   | K.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 265 |        18 | j.root-servers.net     | AAAA | 2001:503:C27::2:30                                              | 3600000 |    0 |        NULL |
| 264 |        18 | j.root-servers.net     | A    | 192.58.128.30                                                   | 3600000 |    0 |        NULL |
| 263 |        18 |                        | NS   | J.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 262 |        18 | i.root-servers.net     | A    | 192.36.148.17                                                   | 3600000 |    0 |        NULL |
| 261 |        18 |                        | NS   | I.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 260 |        18 | h.root-servers.net     | AAAA | 2001:500:1::803f:235                                            | 3600000 |    0 |        NULL |
| 242 |        18 |                        | NS   | A.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 243 |        18 | a.root-servers.net     | A    | 198.41.0.4                                                      | 3600000 |    0 |        NULL |
| 244 |        18 | a.root-servers.net     | AAAA | 2001:503:BA3E::2:30                                             | 3600000 |    0 |        NULL |
| 245 |        18 |                        | NS   | B.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 246 |        18 | b.root-servers.net     | A    | 192.228.79.201                                                  | 3600000 |    0 |        NULL |
| 247 |        18 |                        | NS   | C.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 248 |        18 | c.root-servers.net     | A    | 192.33.4.12                                                     | 3600000 |    0 |        NULL |
| 249 |        18 |                        | NS   | D.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 250 |        18 | d.root-servers.net     | A    | 128.8.10.90                                                     | 3600000 |    0 |        NULL |
| 251 |        18 |                        | NS   | E.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 252 |        18 | e.root-servers.net     | A    | 192.203.230.10                                                  | 3600000 |    0 |        NULL |
| 253 |        18 |                        | NS   | F.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 254 |        18 | f.root-servers.net     | A    | 192.5.5.241                                                     | 3600000 |    0 |        NULL |
| 255 |        18 | f.root-servers.net     | AAAA | 2001:500:2f::f                                                  | 3600000 |    0 |        NULL |
| 256 |        18 |                        | NS   | G.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 257 |        18 | g.root-servers.net     | A    | 192.112.36.4                                                    | 3600000 |    0 |        NULL |
| 258 |        18 |                        | NS   | H.ROOT-SERVERS.NET                                              | 3600000 |    0 |        NULL |
| 259 |        18 | h.root-servers.net     | A    | 128.63.2.53                                                     | 3600000 |    0 |        NULL |
| 284 |        22 | 255.in-addr.arpa       | NS   | localhost                                                       |  604800 |    0 |        NULL |
| 285 |        23 | domain1.local          | SOA  | ns1.local.lan root.local.lan 2011120200 10800 3600 604800 86400 |    3600 |    0 |        NULL |
| 286 |        23 | domain1.local          | NS   | ns1.local.lan                                                   |    3600 |    0 |        NULL |
| 287 |        23 | domain1.local          | NS   | ns2.local.lan                                                   |    3600 |    0 |        NULL |
| 288 |        23 | domain1.local          | MX   | mail.domain1.local                                              |    3600 |   10 |        NULL |
| 289 |        23 | domain1.local          | MX   | mail.domain1.local                                              |    3600 |   20 |        NULL |
| 290 |        23 | domain1.local          | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 291 |        23 | ftp.domain1.local      | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 292 |        23 | mail.domain1.local     | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 293 |        23 | pop.domain1.local      | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 294 |        23 | smtp.domain1.local     | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 295 |        23 | www.domain1.local      | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 296 |        23 | domain1.local          | TXT  | "v=spf1 ip4:85.10.234.195 a mx ~all"                            |    3600 |    0 |        NULL |
| 297 |        24 | domain2.local          | SOA  | ns1.local.lan root.local.lan 2011120200 10800 3600 604800 86400 |    3600 |    0 |        NULL |
| 298 |        24 | domain2.local          | NS   | ns1.local.lan                                                   |    3600 |    0 |        NULL |
| 299 |        24 | domain2.local          | NS   | ns2.local.lan                                                   |    3600 |    0 |        NULL |
| 300 |        24 | domain2.local          | MX   | mail.domain2.local                                              |    3600 |   10 |        NULL |
| 301 |        24 | domain2.local          | MX   | mail.domain2.local                                              |    3600 |   20 |        NULL |
| 302 |        24 | domain2.local          | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 303 |        24 | ftp.domain2.local      | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 304 |        24 | mail.domain2.local     | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 305 |        24 | pop.domain2.local      | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 306 |        24 | smtp.domain2.local     | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 307 |        24 | www.domain2.local      | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 308 |        24 | domain2.local          | TXT  | "v=spf1 ip4:85.10.234.195 a mx ~all"                            |    3600 |    0 |        NULL |
| 309 |        25 | domain3.local          | SOA  | ns1.local.lan root.local.lan 2011120200 10800 3600 604800 86400 |    3600 |    0 |        NULL |
| 310 |        25 | domain3.local          | NS   | ns1.local.lan                                                   |    3600 |    0 |        NULL |
| 311 |        25 | domain3.local          | NS   | ns2.local.lan                                                   |    3600 |    0 |        NULL |
| 312 |        25 | domain3.local          | MX   | mail.domain3.local                                              |    3600 |   10 |        NULL |
| 313 |        25 | domain3.local          | MX   | mail.domain3.local                                              |    3600 |   20 |        NULL |
| 314 |        25 | domain3.local          | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 315 |        25 | ftp.domain3.local      | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 316 |        25 | mail.domain3.local     | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 317 |        25 | pop.domain3.local      | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 318 |        25 | smtp.domain3.local     | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 319 |        25 | www.domain3.local      | A    | 85.10.234.195                                                   |    3600 |    0 |        NULL |
| 320 |        25 | domain3.local          | TXT  | "v=spf1 ip4:85.10.234.195 a mx ~all"                            |    3600 |    0 |        NULL |
+-----+-----------+------------------------+------+-----------------------------------------------------------------+---------+------+-------------+

Корректируем тип зон (так как утилита zone2sql в процессе конвертирования, задает тип зон как NATIVE)

mysql> select * from domains;
+----+------------------+--------+------------+--------+-----------------+---------+
| id | name             | master | last_check | type   | notified_serial | account |
+----+------------------+--------+------------+--------+-----------------+---------+
| 20 | 127.in-addr.arpa | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 18 |                  | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 19 | localhost        | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 21 | 0.in-addr.arpa   | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 22 | 255.in-addr.arpa | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 23 | domain1.local    | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 24 | domain2.local    | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 25 | domain3.local    | NULL   |       NULL | NATIVE |            NULL | NULL    |
+----+------------------+--------+------------+--------+-----------------+---------+
8 rows in set (0.00 sec)

mysql> update domains set type = 'MASTER' where type = 'NATIVE';
Query OK, 8 rows affected (0.00 sec)
Rows matched: 8  Changed: 8  Warnings: 0

mysql> select * from domains;
+----+------------------+--------+------------+--------+-----------------+---------+
| id | name             | master | last_check | type   | notified_serial | account |
+----+------------------+--------+------------+--------+-----------------+---------+
| 20 | 127.in-addr.arpa | NULL   |       NULL | MASTER |            NULL | NULL    |
| 18 |                  | NULL   |       NULL | MASTER |            NULL | NULL    |
| 19 | localhost        | NULL   |       NULL | MASTER |            NULL | NULL    |
| 21 | 0.in-addr.arpa   | NULL   |       NULL | MASTER |            NULL | NULL    |
| 22 | 255.in-addr.arpa | NULL   |       NULL | MASTER |            NULL | NULL    |
| 23 | domain1.local    | NULL   |       NULL | MASTER |            NULL | NULL    |
| 24 | domain2.local    | NULL   |       NULL | MASTER |            NULL | NULL    |
| 25 | domain3.local    | NULL   |       NULL | MASTER |            NULL | NULL    |
+----+------------------+--------+------------+--------+-----------------+---------+
8 rows in set (0.00 sec)

Проверяем корректность пользовательских аккаунтов в том плане, что каждый пользователь является владельцем именно своих доменов в ISPmanager

srv-01:/usr/local/ispmgr/etc# tail -n4 /usr/local/ispmgr/etc/ispmgr.conf
Domain domain1.local 500
Domain domain2.local 503
Domain domain3.local 504

Заходим в панель ISPmanager и проверяем все ли в порядке.

6 комментариев:

  1. хотел узнать, а что нужно сделать в самом испменеджере чтобы заработала связка? в консоли управления я убрал бинд и поставил вместо него пднс сервер. Но пропал пункт Доменные имена и почему то сам PDNS в консоли управления отображается как оставлен, хотя в процессах пднс запущен

    ОтветитьУдалить
    Ответы
    1. К сожалению, я не смогу Вам помочь, так как уже больше года не работаю с панелями ISPmanager, но если ничего не путаю, то необходимо просто перезапустить саму панель.

      Удалить
  2. Возможно вопрос не совсем по теме, но очень близок к ней.
    У меня есть таблица domains, в которой к примеру 1000 записей. Я установил poweradmin, создались таблицы необходимые для работы poweradmin, в том числе zones. Когда я добавляю новую зону, через poweradmin, в таблицу domains добавляется запись, а также в другие таблицы в том числе в таблицу zones. Для чего вообще нужна таблица zones? Нужно ли создавать записи в таблице zones для коректной работы powerdns? Или можно оставить ее как есть пустой?

    ОтветитьУдалить
    Ответы
    1. Таблица zones которая добавляется в базу данных powerdns при установке poweradmin, необходима только самому poweradmin'у. Сам по себе powerdns никак не зависит от этой таблицы, но от нее зависит работа poweradmin'а, так как в zones хранятся данные о владельцах зон, комментарии к зонам и т.д.

      Удалить
    2. Огромное спасибо за ответ! Почти неделю убил на поиск информации о назначении таблиц для poweradmin и powerdns, информации по данной теме очень мало.

      Удалить