У меня есть почтовый сервер, настроенный с несколькими экземплярами sendmail, каждый из которых работает на разных адресах IPv4 и IPv6. Все идет гладко до момента, когда для некоторых доменов / электронных писем (очевидно, случайных) sendmail пытается отправить письмо с адреса IPv6 вместо IPv4, и я начинаю получать такие сообщения, как:
SYSERR(root): makeconnection: cannot bind socket [IPv6:2001:db8::2]: Address family not supported by protocol
to=<xxx@bad-domain.example>, delay=04:23:07, xdelay=00:00:00, mailer=esmtp, pri=11918385, relay=bad-domain.example. [198.51.100.5], dsn=4.0.0, stat=Deferred: Address family not supported by protocol
Адреса IPv6 и IPv4 были скрыты.
То, что я заметил, но я не уверен, что это проблема, запись MX для плохого домена - это CNAME, а не прямая запись A или AAAA.
Я использую Sendmail 8.14.5 в Fedora 16, все IP-адреса настроены статически (IPv4 + IPv6). Если основная проблема не может быть решена, есть ли способ указать sendmail использовать только IPv4 для списка указанных доменов?
Выдержка из sendmail.mc:
CLIENT_OPTIONS(`Family=inet,Addr=192.0.2.2')dnl
CLIENT_OPTIONS(`Family=inet6,Addr=2001:db8::2')dnl
DAEMON_OPTIONS(`Name=MTA-v4,Family=inet,Addr=192.0.2.2')dnl
DAEMON_OPTIONS(`Name=MTA-v6,Family=inet6,Addr=2001:db8::2')dnl
пример для плохого домена: donpac.ru, montevideo.com.uy, dalia-ingenierie.fr, opela.cz, orange.net, poisl.com.br, tamil.com, zerong.cn
LE: похоже, у всех есть CNAME как запись MX, и ни один из CNAME не разрешает IPv6
Хотя приведенные выше комментарии, кажется, предполагают, что это не проблема v4 по домену, сегодня у меня была причина сделать именно то, что вы описываете, и я нашел этот вопрос во время поиска.
Метод, который я нашел для принудительной доставки v4 на основе домена за доменом, заключается в том, чтобы включить mailertable, имея
FEATURE(`mailertable')
в моем sendmail.mc (если он уже там, вам не нужно добавлять его снова). Затем я заставляю доставку на основе v4, переопределив DNS и инструктирую доставку перейти на адрес v4 в файле mailertable; это от /etc/mail/mailertable
:
.example.com esmtp:[260.240.18.38]
example.com esmtp:[260.240.18.38]
Обычно я не редактирую доменные имена, но я не хочу смущать коллег, которые неправильно реализовали smtp-over-ipv6 и поэтому нуждаются во мне для принудительной доставки через v4. Очевидно, что IP-адрес также является ложным; но на производстве это адрес v4 их основного MX, взятый из DNS.