Troubleshoot Zimbra: Email Tidak Terkirim Antar User Beda Mailbox

Halo kembali lagi bersama Rafi. Tulisan kali ini saya buat sebagai catatan setelah saya selesai instalasi Zimbra dengan skema multi server di lab. Selesai instalasi, semua service kelihatannya aman, tidak ada error mencolok, login webmail juga lancar. Tapi begitu saya coba kirim email dari satu user ke user lain, email tidak pernah sampai ke inbox. Awalnya saya pikir mailbox yang bermasalah, ternyata jawabannya jauh lebih sepele, yaitu di resolv.conf. Berikut alur troubleshoot yang saya lakukan, semoga membantu kalian yang mengalami gejala serupa.

Skema Lab Multi Server

Sebelum masuk ke troubleshoot, saya cantumkan dulu skema lab yang saya pakai supaya kalian punya gambaran. Saya pisah role-nya per node:

  • ldap1.zimbra.server sebagai LDAP master dan DNS server
  • mbox1.zimbra.server sebagai mailbox node pertama
  • mbox2.zimbra.server sebagai mailbox node kedua
  • mta1.zimbra.server sebagai MTA+proxy node pertama
  • mta2.zimbra.server sebagai MTA+proxy node kedua

User saya untuk uji coba ada dua, user1@zimbra.server yang mailbox-nya ada di mbox2, dan user2@zimbra.server yang mailbox-nya ada di mbox1.

Periksa Log di MTA

Saya login ke webmail sebagai user2@zimbra.server, lalu kirim email ke user1@zimbra.server. Di webmail terlihat email berhasil terkirim, tidak ada notifikasi error apapun di sisi pengirim. Tapi setelah saya cek inbox user1, email tidak ada.

tail zimbra.log di mta2:

su - zimbra
tail -f /var/log/zimbra.log

muncul

Sampai sini saya pikir email lulus filter dan semua aman, namun akhirnyaaa…..

Ketemu Error-nya

Ternyata status email bounced:

postfix/lmtp: 8EC8263EB4: to=<user1@zimbra.server>, relay=none,
  status=bounced (Host or domain name not found.
  Name service error for name=mbox2.zimbra.server type=A: Host not found)

grep pesan bounced

Ini menjelaskan kenapa email “terkirim” dari sisi user tapi tidak pernah sampai. MTA tahu mailbox tujuan ada di mbox2.zimbra.server, tapi MTA tidak bisa resolve A record dari hostname itu. Bahkan untuk balik mengirim notifikasi bounce ke user2, MTA juga gagal resolve mbox1.zimbra.server. Status code 5.4.4 di sini artinya “Unable to route”, yaitu murni masalah routing/DNS, bukan masalah autentikasi atau filter.

Untuk memastikan, saya coba resolve manual dari mta2:

[root@server ~]# getent hosts mbox2.zimbra.server
[root@server ~]# dig +short mbox2.zimbra.server A

dig Hasilnya kosong. Kemudian saya cek resolver-nya:

[root@mta2 ~]# cat /etc/resolv.conf
nameserver 127.0.0.1
# Generated by NetworkManager
search zimbra.server
nameserver 192.168.14.80
nameserver 8.8.8.8

Dan inilah dia:

nameserver 127.0.0.1

Resolver di mta2 mengarah ke 127.0.0.1, padahal di node ini saya tidak menjalankan DNS server lokal. Setiap kali Postfix butuh resolve hostname mailbox, dia bertanya ke localhost, tidak ada yang jawab, jadi langsung gagal.

Perbaikan resolv.conf

Solusinya sederhana, saya arahkan resolver ke DNS server internal yang memang punya zona untuk zimbra.server. Saya edit /etc/resolv.conf:

nameserver 192.168.14.80 #IP_ldap
search zimbra.server

Setelah itu saya tes ulang resolusi nama:

[root@server ~]# getent hosts mbox1.zimbra.server
192.168.14.81   mbox1.zimbra.server mbox1

[root@server ~]# getent hosts mbox2.zimbra.server
192.168.14.82   mbox2.zimbra.server mbox2

Penutup

Kasus ini sebenarnya simpel sekali, tapi gejalanya bisa bikin bingung karena di sisi user email kelihatan terkirim normal, dan log MTA juga menampilkan banyak baris “CLEAN” dan “Ok” sebelum akhirnya bounce. Pelajaran yang saya ambil, untuk deployment Zimbra multi server, DNS internal itu wajib hukumnya, dan resolv.conf di tiap node harus dicek satu per satu jangan sampai mengarah ke 127.0.0.1 kalau memang tidak ada DNS server lokal. Sebagai pengaman tambahan, isi juga /etc/hosts di semua node. Sekian dari saya, semoga catatan ini berguna kalau kalian mengalami hal yang sama.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *