I'm running ISPConfig 2.2.13 on Debian Sarge. I've got several hundred customers/domains running, for the most part smoothly. One of my customers is asking that I modify his MX records to point to a machine other than ISPConfig. We are doing this for several other customers as well - we offer a service called Premium Spam Control, and several of our customers have their e-mail filtered through PSC. When configuring mail this way, we set the MX records to point to rb.<our domain>.com and fr.<our domain>.com. No problem - as I said, we are doing that for several customers. This latest customer, though, is a problem. When I set up an MX record for fr at priority 30, the record is accepted. When I attempt to add an MX record for rb at priority 20, I get an error reading " This or a similar MX Record does already exist in this zone." Examining the MX records for this domain does not show any MX records other than the one pointing to fr. I have emptied the Admin recycle bin and the reseller level recycle bin. I tried looking through the database records, but I haven't yet figured out which tables link the dns_mx table to the other required tables. Can someone document for me how the dns_mx table links to the other tables that get involved here? I'm familiar with tracing info through isp_isp_domain, isp_dep, etc, I'm just not sure what tables to use and what fields tie them together in the case of DNS issues.
Thanks, that's what I needed! Here's what I've found by digging into the tables. The domain in question has two entries in dns_dep with doctype_id of 1020: child_doc_id of 2061 and child_doc_id of 3377. Going in to dns_mx: mysql> select * from dns_mx where doc_id = 2061 \G *************************** 1. row *************************** doc_id: 2061 doctype_id: 1020 host: prioritaet: 30 mailserver: rb.<our domain>.net 1 row in set (0.00 sec) mysql> select * from dns_mx where doc_id = 3377 \G *************************** 1. row *************************** doc_id: 3377 doctype_id: 1020 host: prioritaet: 40 mailserver: fr.<our domain>.net This would correspond to the behavior I'm seeing in ISPConfig's web interface: I get an error message when trying to add an MX record pointing to rb. However, the web interface shows only the MX record for fr, and the bind9 zone file (pri.<cust domain>.com) contains only one MX record, fr. So my current question is, how can I force a rebuild of the bind zone file? Will resetting the status in dns_isp_dns force the rewrite? And out of curiosity, has anyone seen this problem before or have any idea how it might have occurred? Having the MX record for Rb not show up in the web interface has me puzzled.
I did so, and that did force a rebuild of the zone file for the domain in question. However, I'm still seeing the same issue. Using "DNS Manager" in ISPConfig and viewing the records for this domain, I see one MX record defined - host Fr, at priority 40. I found the doc_id in dns_isp_dns by doing "SELECT * FROM dns_isp_dns WHERE dns_soa = '<customer_domain>.com'; this shows me the doc_id is 2021. I then did "select * from dns_dep where child_doctype_id = 1020 and parent_doc_id = 2021 and parent_doctype_id = 1016 \G" which produced: *************************** 1. row *************************** dep_id: 6201 userid: 1 groupid: 0 parent_doc_id: 2021 parent_doctype_id: 1016 parent_tree_id: 8231 child_doc_id: 2061 child_doctype_id: 1020 child_tree_id: 8251 status: 1 *************************** 2. row *************************** dep_id: 12257 userid: 0 groupid: 2 parent_doc_id: 2021 parent_doctype_id: 1016 parent_tree_id: 8231 child_doc_id: 3377 child_doctype_id: 1020 child_tree_id: 15327 status: 1 2 rows in set (0.00 sec) Exploring those 2 entries produces: mysql> select * from dns_mx where doc_id = 2061 \G *************************** 1. row *************************** doc_id: 2061 doctype_id: 1020 host: prioritaet: 30 mailserver: rb.<our domain>.net 1 row in set (0.00 sec) mysql> select * from dns_mx where doc_id = 3377 \G *************************** 1. row *************************** doc_id: 3377 doctype_id: 1020 host: prioritaet: 40 mailserver: fr.<our domain>.net 1 row in set (0.00 sec) So, my confusion at present is why DNS Manager only shows one MX record. I understand why I can't add a new MX record pointing to Rb; it's because there's already one in the database. For now I'm working around this issue by manually editing the customer's zone file to add the MX record for Rb. But I'd like to figure out why this is happening, in case it manifests itself on another domain in the future. Any ideas?