LINUX.ORG.RU
решено ФорумAdmin

Проблемы с sendmail mailertable в локальной сети без DNS

 


0

1

Ситуация: домашняя LAN на несколько ПК, почти все юниксовые. DNS нет в силу простоты сети, имена локальных машин хранятся на каждом ПК в /etc/hosts. На днях попытался реализовать возможность отправлять почту между юниксовыми локальными mbox-ами по локальному имени ПК (т.е. user@pc1 отправляет «mail other_user@pc2» и письмо попадает в локальный mbox пользователя other_user на pc2.). На всех машинах в качестве MTA используется sendmail. Для того, чтобы sendmail при выполнении «mail other_user@pc2» не пытался найти MX запись для pc2, нагуглил, что надо использовать sendmail mailertable. Добавил в mailertable на отправителе запись вида:

pc2 esmtp:[192.168.1.7]

Это работает правильно, команда «mail other_user@pc2» отправляет мейл на pc2. Но проблема в том, что как только запись для pc2 («192.168.1.7 pc2») также добавляется в /etc/hosts отправителя, почта на pc2 не уходит и sendmail возвращает сообщение «SYSERR(root): pc2.local. config error: mail loops back to me (MX problem?)»

Почему так происходит, и как этого избежать, не удаляя имя машины из hosts? Sendmail 8.15.2.

ПС: не админ, в администрировании юниксов/сетей почти не разбираюсь.

Ответ на: комментарий от Nastishka

Хосты случам не одинаковые хостнеймы имеют? Потому что mail loops back to me выдается как правило в этом случае.

Нет, хост-отправитель «pc1», хост-получатель «pc2», в /etc/hosts отправителя стоит «127.0.0.1 localhost localhost.local pc1» и «192.168.1.7 pc2»

Cheater ()
Ответ на: комментарий от vel

Вывод почти одинаковый:

Без имени получателя в hosts

rewrite: ruleset canonify input: other_user
rewrite: ruleset Canonify2 input: other_user
rewrite: ruleset Canonify2 returns: other_user
rewrite: ruleset canonify returns: other_user
rewrite: ruleset parse input: other_user
rewrite: ruleset Parse0 input: other_user
rewrite: ruleset Parse0 returns: other_user
rewrite: ruleset ParseLocal input: other_user
rewrite: ruleset ParseLocal returns: other_user
rewrite: ruleset Parse1 input: other_user
rewrite: ruleset Parse1 returns: $# local $: other_user
rewrite: ruleset parse returns: $# local $: other_user
rewrite: ruleset 2 input: other_user
rewrite: ruleset 2 returns: other_user
rewrite: ruleset EnvToL input: other_user
rewrite: ruleset EnvToL returns: other_user
rewrite: ruleset final input: other_user
rewrite: ruleset final returns: other_user
rewrite: ruleset canonify input: other_user
rewrite: ruleset Canonify2 input: other_user
rewrite: ruleset Canonify2 returns: other_user
rewrite: ruleset canonify returns: other_user
rewrite: ruleset 1 input: other_user
rewrite: ruleset 1 returns: other_user
rewrite: ruleset final input: other_user
rewrite: ruleset final returns: other_user
rewrite: ruleset canonify input: other_user @ pc2
rewrite: ruleset Canonify2 input: other_user < @ pc2 >
rewrite: ruleset Canonify2 returns: other_user < @ pc2 >
rewrite: ruleset canonify returns: other_user < @ pc2 >
rewrite: ruleset parse input: other_user < @ pc2 >
rewrite: ruleset Parse0 input: other_user < @ pc2 >
rewrite: ruleset Parse0 returns: other_user < @ pc2 >
rewrite: ruleset ParseLocal input: other_user < @ pc2 >
rewrite: ruleset ParseLocal returns: other_user < @ pc2 >
rewrite: ruleset Parse1 input: other_user < @ pc2 >
rewrite: ruleset MailerToTriple input: < esmtp : [ 192 . 168 . 1 . 7 ] > other_user < @ pc2 >
rewrite: ruleset MailerToTriple returns: $# esmtp $@ [ 192 . 168 . 1 . 7 ] $: other_user < @ pc2 >
rewrite: ruleset Parse1 returns: $# esmtp $@ [ 192 . 168 . 1 . 7 ] $: other_user < @ pc2 >
rewrite: ruleset parse returns: $# esmtp $@ [ 192 . 168 . 1 . 7 ] $: other_user < @ pc2 >
rewrite: ruleset 2 input: other_user < @ pc2 >
rewrite: ruleset 2 returns: other_user < @ pc2 >
rewrite: ruleset EnvToSMTP input: other_user < @ pc2 >
rewrite: ruleset PseudoToReal input: other_user < @ pc2 >
rewrite: ruleset PseudoToReal returns: other_user < @ pc2 >
rewrite: ruleset MasqSMTP input: other_user < @ pc2 >
rewrite: ruleset MasqSMTP returns: other_user < @ pc2 >
rewrite: ruleset EnvToSMTP returns: other_user < @ pc2 >
rewrite: ruleset final input: other_user < @ pc2 >
rewrite: ruleset final returns: other_user @ pc2
other_user@pc2... deliverable: mailer esmtp, host [192.168.1.7], user other_user@pc2

С именем получателя в hosts

rewrite: ruleset canonify input: other_user
rewrite: ruleset Canonify2 input: other_user
rewrite: ruleset Canonify2 returns: other_user
rewrite: ruleset canonify returns: other_user
rewrite: ruleset parse input: other_user
rewrite: ruleset Parse0 input: other_user
rewrite: ruleset Parse0 returns: other_user
rewrite: ruleset ParseLocal input: other_user
rewrite: ruleset ParseLocal returns: other_user
rewrite: ruleset Parse1 input: other_user
rewrite: ruleset Parse1 returns: $# local $: other_user
rewrite: ruleset parse returns: $# local $: other_user
rewrite: ruleset 2 input: other_user
rewrite: ruleset 2 returns: other_user
rewrite: ruleset EnvToL input: other_user
rewrite: ruleset EnvToL returns: other_user
rewrite: ruleset final input: other_user
rewrite: ruleset final returns: other_user
rewrite: ruleset canonify input: other_user
rewrite: ruleset Canonify2 input: other_user
rewrite: ruleset Canonify2 returns: other_user
rewrite: ruleset canonify returns: other_user
rewrite: ruleset 1 input: other_user
rewrite: ruleset 1 returns: other_user
rewrite: ruleset final input: other_user
rewrite: ruleset final returns: other_user
rewrite: ruleset canonify input: other_user @ pc2
rewrite: ruleset Canonify2 input: other_user < @ pc2 >
rewrite: ruleset Canonify2 returns: other_user < @ pc2 . local . >
rewrite: ruleset canonify returns: other_user < @ pc2 . local . >
rewrite: ruleset parse input: other_user < @ pc2 . local . >
rewrite: ruleset Parse0 input: other_user < @ pc2 . local . >
rewrite: ruleset Parse0 returns: other_user < @ pc2 . local . >
rewrite: ruleset ParseLocal input: other_user < @ pc2 . local . >
rewrite: ruleset ParseLocal returns: other_user < @ pc2 . local . >
rewrite: ruleset Parse1 input: other_user < @ pc2 . local . >
rewrite: ruleset Mailertable input: < pc2 . local > other_user < @ pc2 . local . >
rewrite: ruleset Mailertable input: pc2 . < local > other_user < @ pc2 . local . >
rewrite: ruleset Mailertable returns: other_user < @ pc2 . local . >
rewrite: ruleset Mailertable returns: other_user < @ pc2 . local . >
rewrite: ruleset MailerToTriple input: < > other_user < @ pc2 . local . >
rewrite: ruleset MailerToTriple returns: other_user < @ pc2 . local . >
rewrite: ruleset Parse1 returns: $# esmtp $@ pc2 . local . $: other_user < @ pc2 . local . >
rewrite: ruleset parse returns: $# esmtp $@ pc2 . local . $: other_user < @ pc2 . local . >
rewrite: ruleset 2 input: other_user < @ pc2 . local . >
rewrite: ruleset 2 returns: other_user < @ pc2 . local . >
rewrite: ruleset EnvToSMTP input: other_user < @ pc2 . local . >
rewrite: ruleset PseudoToReal input: other_user < @ pc2 . local . >
rewrite: ruleset PseudoToReal returns: other_user < @ pc2 . local . >
rewrite: ruleset MasqSMTP input: other_user < @ pc2 . local . >
rewrite: ruleset MasqSMTP returns: other_user < @ pc2 . local . >
rewrite: ruleset EnvToSMTP returns: other_user < @ pc2 . local . >
rewrite: ruleset final input: other_user < @ pc2 . local . >
rewrite: ruleset final returns: other_user @ pc2 . local
other_user@pc2... deliverable: mailer esmtp, host pc2.local., user other_user@pc2.local

Cheater ()
Последнее исправление: Cheater (всего исправлений: 2)