Postfix - MX hiba, de a feloldás működik

Fórumok

Sziasztok,

a következő hibára futottam:
Egy adott domainra nehezen tudok levelet küldeni, legyen ez xy.hu. A postfix mail queue-ban a következő hibaüzenet van:

Host or domain name not found. Name service error for name=macko.xy.hu type=MX: Host not found, try again

Ha újralököm őket, kimennek.

dig +trace -t mx macko.xy.hu - szépen eljutok a célállomásig.

Egyszerűen nincs ötletem, hogy hol lehet a probléma.

Hozzászólások

Az macko.xy.hu-hoz tartozó "A" rekord is üzembiztosan feloldható? A zónához tartozó DNS szerverek authoritatívak?

root@zeus:~# host macko.xy.hu
macko.xy.hu mail is handled by 10 mail1.macko.xy.hu.
macko.xy.hu mail is handled by 10 mail2.macko.xy.hu.
macko.xy.hu mail is handled by 10 mail3.macko.xy.hu.
macko.xy.hu mail is handled by 10 mail4.macko.xy.hu.

root@zeus:~# nslookup macko.xy.hu

Server: 111.111.111.111
Address: 111.111.111.111#00

Non-authoritative answer:
*** Can't find macko.xy.hu: No answer

Az "A" rekord üzembiztos feloldását hogy tudom tesztelni?

*** Can't find macko.xy.hu: No answer

Ez mindent megmagyaráz. Valamelyik DNS-szerver (valószínűleg a szerveren használt rekurzív szerverek valamelyike) nem érhető el vagy túl van terhelve, ezért nem mindig sikerül a postfixnek feloldania a címzett szerverének IP-címét.

Ez automatikusan megtörténik, ahogy az ide vonatkozó RFC-k elő is írják.

Segíthet az alábbi paraméter, ilyenkor az nsswitch felé fordul a postfix, ami elvileg adja a failover-t is (ha egyik szerver nem válaszol, kérdezi a másikat):

smtp_host_lookup = native

A deferred queue-ban lévő (átmenetileg nem kézbesíthető) levelek kezelését ezek a beállítások szabályozzák a main.cf-ben, mellettük a default érték:

maximal_queue_lifetime = 5 nap
queue_run_delay = 300 sec (postfix 2.4 előtt 1000 sec volt)
bounce_queue_lifetime = 5 nap

http://www.postfix.org/qmgr.8.html

Nekem így néz ki a mail.cf egy része:

delay_warning_time = 4h
unknown_local_recipient_reject_code = 450
maximal_queue_lifetime = 5d
minimal_backoff_time = 1000s
maximal_backoff_time = 8000s
smtp_helo_timeout = 60s
smtpd_soft_error_limit = 5
smtpd_hard_error_limit = 12

most ezt fogom visszatenni:

smtp_host_lookup = native
delay_warning_time = 4h
unknown_local_recipient_reject_code = 450
maximal_queue_lifetime = 5d
queue_run_delay = 300 sec
minimal_backoff_time = 1000s
maximal_backoff_time = 8000s
smtp_helo_timeout = 60s
smtpd_soft_error_limit = 5
smtpd_hard_error_limit = 12

Köszönöm, remélem segít. :)

Hülyeséget írtam, ezt kellene:

smtp_host_lookup = native
delay_warning_time = 4h
unknown_local_recipient_reject_code = 450
maximal_queue_lifetime = 5d
minimal_backoff_time = 300s
maximal_backoff_time = 8000s
smtp_helo_timeout = 60s
smtpd_soft_error_limit = 5
smtpd_hard_error_limit = 12

Korrekt, remélhetőleg segíteni fog.

Még esetleg hálózati hiba is lehet, érdemes lehet megnézni azt is, jelez-e hibát az ifconfig:

RX packets:300229450 errors:0 dropped:0 overruns:0 frame:0
TX packets:598834066 errors:0 dropped:0 overruns:0 carrier:0

Ha az errors mellett nem nulla áll, akkor az általában hardveres (esetleg driveres) hálózati hibára utal (pl. sérült kábel vagy csatlakozó, hardverhibás hálókártya/switch).

Azért annyit még hozzátennék, hogy ez így szerintem inkább a probléma megkerülése, én biztos kinyomoznám, hogy pontosan melyik szerver reagál lassan (vagy egyáltalán nem), és jelezném a problémát az adott szerver üzemeltetőjének.

De lehet, hogy ez már csak az én maximalizmusom... :)

Arra gyanakodnék, hogy az autoritatív név szerverek nem egyformán válaszolnak:
némelyik (némelykor) rossz választ ad, vagy nem ad választ.

Érdemes megnézni egyenként az xy.hu-hoz tartozó névszervereket.


dig -t mx xy.hu @ns1.xy.hu
dig -t mx xy.hu @ns2.xy.hu
...

Ha mind azt mondja, hogy a macko.xy.hu az MX, akkor:


dig -t a macko.xy.hu @ns1.xy.hu
dig -t a macko.xy.hu @ns2.xy.hu
...

Persze ha az MX nem az xy.hu alatt van, hanem pl. macko.abcd.hu, akkor az
abcd.hu autoritatív név szervereit kell kérdezni.

Nézd meg mi szerepel nálad a /etc/resolv.conf-ban és dig -t mx macko.xy.hu @resolv.confban szereplő resolver ns ip címe, ha erre jön válasz akkor nézd meg a kapott mx-nek van-e A/AAAA rekordja és feloldja e ezt is a resolv.conf-ban levő resolver ns.

Lazán kapcsolódik: találkoztam olyan hibával, hogy azonos host-ról érkező levelek 50%-os eséllyel érkeztek meg, a maradékot visszadobta reverse dns hiányára hivatkozva.
Kézzel folyamatos volt a feloldás.

Létezik erre magyarázat?

Ha nálad az a baj, hogy néha nem válaszol valamelyik rekurzív DNS szerver, akkor annyit tehetsz, hogy más DNS-szervereket használsz (pl. OpenDNS, Goolge DNS). Én UPC-nél tapasztalom néha otthon, hogy néha hosszú másodperceket kell várni egy DNS-válaszra. A netkapcsolat biztos jó, mert névfeloldás után már hasít minden. :)