Указание записи MX IPv6 через djbdns или djbdns-fefe?

Я пытаюсь настроить записи MX IPv6 в своей среде djbdns. Я также экспериментирую с djbdns-fefe с той же целью.

Согласно документации djbnds-fefe, «... tinydns-edit пока не принимает адреса IPv6 для записей NS или MX». Более того, я не знаю, как настроить записи IPv6 в традиционной среде djbdns.

Я искал решение этой проблемы, но ничего не смог найти.

Я не хочу полностью отказываться от dbjdns или djbdns-fefe, поэтому знает ли кто-нибудь, как я могу настроить записи MX IPv6 в среде djbdns или djbdns-fefe?

...или это просто невозможно?

Заранее спасибо.

ОБНОВЛЯТЬ :

Чтобы внести ясность, спецификация MX-записи, созданной djbdns, занимает...

  1. DNS-имя верхнего уровня записи MX (например , «example.com»);

  2. IP-адрес, который будет назначен доменному имени MX, которое он будет генерировать (например , «10.11.12.13»);

  3. префикс для имени домена MX, которое он будет генерировать (например , «x»);

  4. приоритет (например, 0).

В этом примере будет создана следующая запись «MX»:

      example.com. IN MX 86400 0 x.mx.example.com.

И он также автоматически создает вторую запись: запись «А»:

      x.mx.example.com. IN A 86400 10.11.12.13

Проблема в том, что синтаксис djbdns для создания записи MX никогда не принимает адрес IPv6 для пункта 2 выше и никогда не создает автоматически записи AAAA в результате спецификации записи MX.

И хотя программное обеспечение djbdns-fefe позволяет напрямую создавать записи AAAA, ни djbdns-fefe, ни исходная версия djbdns не предоставляют никакого способа создания записи MX, которая ссылается на доменное имя на основе IPv6, указанное в этой записи AAAA.

Я пытаюсь найти обходное решение этого ограничения, чтобы по-прежнему использовать djbdns для создания записи MX на основе IPv6, если это возможно.

Это спецификации исходного синтаксиса djbdns...

https://cr.yp.to/djbdns/tinydns-data.html

А это документация по расширению IPv6 djbdns-fefe...

https://www.fefe.de/dns/

1 ответ

Мне нужно отменить это как ответ, потому что, проработав с этим несколько дней, я вижу, что это работает не так, как я надеялся. Автоматически сгенерированные выходные данные afxrbind9 имеют несколько ограничений, и многие из моих поддоменов недоступны.

На данный момент я снова переключился на tinydns и сейчас просто не использую IPv6.

Я оставлю этот оригинальный ответ здесь на случай, если кто-то, кто его прочитает, сможет увидеть недостатки и, возможно, предложить что-то, что действительно будет работать.

Я прошу прощения.

Оригинальный ответ, который, как оказалось, не работает

Это не совсем положительный ответ на мой вопрос, но это лучшее, что мне удалось придумать.

Похоже, мне совершенно не повезло с синтаксисом djbdns и djbdns-fefe, предлагающим для указания записей MX IPv6, и после долгих поисков я до сих пор не нашел никаких хаков или обходных путей, которые позволили бы мне сделать это именно так, как Я спрашивал здесь.

Однако я нашел косвенный способ сделать это, не отказываясь полностью от информации о конфигурации на основе Tinydns djbdns.

Прежде всего, мне важно объяснить, что несколько лет назад я написал специальную утилиту для генерации команд tinydns на основе более удобного для пользователя синтаксиса (где конкретный пользователь, с которым я дружу, — это «я»… LOL) ). На данный момент я хочу продолжать использовать эту утилиту.

Мое «решение» проблемы IPv6 MX — продолжать использовать эту старую специальную утилиту, а теперь также написать новую утилиту, которая позволит мне генерировать файлы конфигурации связывания 9 на основе моей текущей конфигурации djbdns, а затем переключиться на использование связывания 9. вместо djbdns. Вbind9 я действительно могу настроить записи MX IPv6.

Когда-нибудь я перепишу свою старую, оригинальную пользовательскую утилиту, чтобы она могла напрямую генерировать записи, специфичные для связывания 9, без необходимости проходить промежуточный этап преобразования конфигурации djbdns в конфигурацию привязки 9. Но сейчас у меня нет времени этим заниматься, поэтому я написал новую утилиту для преобразования информации о конфигурации djbdns в файлы конфигурацииbind9...

Эта новая утилита представляет собой сложный скрипт Python, который слишком длинный, чтобы перечислять его здесь целиком, поэтому я просто резюмирую его работу. И в любом случае, многое из этого специфично для моего конкретного хоста, поэтому я сомневаюсь, что написанный сценарий будет работать где-нибудь, кроме моего собственного хоста. Но в целом он функционирует следующим образом...

(1) Установите и настройте работающую службу Bind9.

(2) Несмотря на то, что сейчас я используюbind9, сервер djbdjs все равно должен быть запущен, чтобы мой скрипт работал. Я настроил его как «фиктивный» DNS-сервер, который прослушивает только частный локальный адрес.

(3) В скрипте Python я создал список под названием «email_hosts», который содержит имена доменов верхнего уровня, которым потребуются записи MX IPv6.

(4) Когда этот новый скрипт запускается, он сначала запускает демон через пакет «многопроцессорности» Python, который запускает эту команду...

      /command/envuidgid root /usr/bin/tcpserver -vDHRl0 [DNSSERVERADDR] 53 /command/axfrdns

... где [DNSSERVERADDR] — частный локальный адрес, который прослушивает фиктивный сервер djbdns.

(5) Скрипт ждет, пока этот демон запустится и заработает, а затем запускает другой демон через пакет «многопроцессорности» Python, который циклически перебирает имена всех доменов, которые я размещаю, и для каждого домена (который я позвоню [DOMAINNAME], ниже), он запускает эту команду...

      /usr/bin/dig axfr [DOMAINNAME] @[DNSSERVERADDR]

(6) Вывод каждого вызова «копать» захватывается, а затем я просматриваю все строки в этом выводе. Если я столкнусь с записью AAAA для любого из доменов, имена которых я сохранил в списке «email_hosts», упомянутом выше, я делаю следующее...

(7) Возьмите доменное имя конкретной записи AAAA, которую я назову [DOMAINNAME], и добавьте префикс «mx». к этому доменному имени. Я назову этот результат [MXNAME]. Например, если [DOMAINNAME] — «myhost.example.com», то [MXNAME] будет содержать имя «mx.myhost.example.com».

(8) Затем я добавляю следующие дополнительные строки в выходной список, предполагая, что IPv6-адрес «myhost.example.com» в его записи AAAA — [IPV6ADDRESS]:

      mx.myhost.example.com 86400 IN AAAA [IPV6ADDRESS]
myhost.example.com    86400 IN MX   mx.myhost.example.com 10

(9) Я объединяю все эти выходные строки для данного домена, включая две новые строки, которые я мог бы создать, а затем записываю результат в файл с именем «db.[DOMAINNAME]» в каталоге /var/lib/bind. каталог (исходное содержимое которого я ранее скопировал как /var/lib/bind.backup).

(10) Кроме того, для каждого [DOMAINNAME], обработанного в этом клиенте на основе dig-axfr-output, я также добавляю следующий текст в новый файл /etc/bind/named.conf.local (после резервного копирования текущего версия как /etc/bind/named.conf.local.backup) ...

      zone "[DOMAINNAME]" {
  type master;
  file "/var/lib/bind/db.[DOMAINNAME]";
};

Также обратите внимание, что верхняя часть вновь созданного файла /etc/bind/named.local.conf выглядит следующим образом:

      include "/etc/bind/zones.rfc1918";

(11) После того, как я обработал все домены таким образом, я завершаю работу обоих демонов, которые я запустил с помощью механизма «многопроцессорности» Python.

(12) Затем я перезапускаю «именованный» демон.

Таким образом, я могу продолжать использовать ту же утилиту, которую я написал много лет назад для упрощения генерации команд tinydns, но в то же время я фактически использую теперь Bind9 в качестве своего DNS-сервера.

И, как я уже упоминал выше, в конечном итоге я перепишу эту утилиту для непосредственного создания записей, специфичных для Bind9. Тогда вся эта процедура, основанная на axfr, исчезнет.

Несмотря на то, что все эти годы я был доволен djbdns, я должен признать, что сейчас мне лучше использоватьbind9.

Другие вопросы по тегам