Eskalasi Masalah Email : mailbox unavailable invalid DNS MX or A/AAAA resource record
Beberapa hari yang lalu ada support ticket yang masuk ke Excellent. Pihak klien mengeluh bahwa mereka tidak bisa mengirim email ke pihak rekanan di Jerman dengan pesan error : “550-Requested action not taken: mailbox unavailable, 550 invalid DNS MX or A/AAAA resource record”
Pihak klien berlangganan paket layanan SMTP Relay Excellent. Layanan ini berfungsi sebagai relay server, yang akan meneruskan email dari server klien ke tujuan.
Berdasarkan pesan error tersebut, team Excellent menginformasikan bahwa email di tujuan tidak ada (unavailable) dan pihak klien bisa menginformasikannya pada pihak rekanan.
Pihak klien bersikukuh bahwa email di tujuan ada dan baik-baik saja, karena jika dikirim via Gmail, emailnya bisa diterima. Atas dasar itu, saya membantu team support untuk melakukan investigasi lebih jauh dan meminta izin pada pihak klien untuk melakukan simulasi dan test ke tujuan email yang dimaksud.
MENGECEK MX RECORDS
Langkah pertama yang saya lakukan adalah mencoba mengirimkan email via telnet. Jika menggunakan CLI, favorit saya adalah menggunakan telnet dan menggunakan aplikasi swaks. Untuk tahap awal saya menggunakan telnet karena sifatnya masih diagnosa.
Untuk melakukan telnet, saya harus mengetahui MX records domain tujuan. Nantinya saya akan melakukan telnet ke port 25 pada server yang tercantum dalam list MX records.
Saya bisa menggunakan website DNS check (misalnya https://dnscheck.id) namun karena saya sedang melakukan investigasi via CLI, saya menggunakan perintah CLI : dig.
dig namadomain.de mx
;; ANSWER SECTION:
namadomain.de. 3600 IN MX 10 mx01.namadomainserver.de.
namadomain.de. 3600 IN MX 10 mx00.namadomainserver.de.
Ada 2 MX records yang terdaftar dan masing-masing memiliki priority 10. Asumsi pertama saya adalah, jangan-jangan salah satu server bermasalah yang menjadikan error tersebut intermittent. Misalnya sebagian server berhasil berkomunikasi namun yang lainnya gagal. Sebagai contoh koneksi dari SMTP Relay Excellent gagal terhubung ke salah satu server yang bermasalah, sedangkan Gmail dan lain-lain berhasil terhubung karena koneksinya terhadap server yang tidak bermasalah.
Asumsi tersebut hanya dugaan dan harus diuji dengan mencoba mengirimkan email.
UJICOBA KONEKSI PORT PENERIMAAN EMAIL
Port SMTP ada bermacam-macam, misalnya port 465 untuk koneksi SMTP SSL dan port 587 untuk Submission port TLS. Namun, untuk penerimaan email, default portnya adalah port 25 dan saya bisa menggunakan telnet kemudian bicara dengan bahasa mesin ke server tujuan.
telnet mx00.namadomainserver.de 25
Trying 212.227.xx.xx…
Connected to mx00.namadomainserver.de.
Escape character is ‘^]’.
220 namadomainserver.de (mxeue011) Nemesis ESMTP Service ready
Pesan diatas menunjukkan bahwa port 25 disisi server tujuan terbuka dan server mereka siap menerima koneksi. Hal itu dinamakan dengan HELO. Jadi saya membalas pesan tersebut dengan perintah EHLO. EHLO adalah bahasa prokem dari HELO. Ini salah satu kebiasaan dari para ahli IT yang tidak mau repot-repot mencari istilah, hehehe…
ehlo namadomainserver.de
250-namadomain.de Hello namadomainserver.de
250-8BITMIME
250-SIZE 157286400
250 STARTTLS
Baris diatas adalah pemberitahuan dari server setelah saya “kulonuwun” menjawab helo mereka dengan ehlo. Server memberitahukan bahwa mereka mendukung koneksi 8-bit karakter, dengan maksimum attachment 157286400 (150 MB) dan siap menerima koneksi dengan protokol secure TLS.
Setelah server tujuan menginformasikan hal tersebut, saya bisa mengirimkan email dengan menyebutkan email pengirim, email tujuan, subject dan isi email. Saya mulai dengan menyebutkan email pengirim :
mail from:namauser@perusahaan-indo.com
550-Requested action not taken: mailbox unavailable
550 invalid DNS MX or A/AAAA resource record
Ternyata jawabannya langsung error, sama dengan pesan error yang disampaikan pihak klien.
Karena penasaran, saya coba sekali lagi dan hasilnya sama.
Berarti server mx00.namadomainserver.de gagal dihubungi. Saya mencoba ke server kedua, yaitu mx01.namadomainserver.de, ternyata hasilnya sama.
Kesimpulan pertama : Server tujuan memiliki konfigurasi yang sama dan keduanya sama-sama menghasilkan pesan error. Setelah ini, apa yang akan dilakukan? Premis atau asumsi kedua saya adalah, ada masalah dengan si pengirim. Jadi saya melanjutkan investigasi, kali ini menggunakan alamat email saya sebagai pengirim.
UJICOBA PENGIRIMAN EMAIL MENGGUNAKAN DOMAIN LAIN
Untuk keperluan ini, saya menggunakan perintah telnet yang sama.
telnet mx00.namadomainserver.de 25
Trying 212.227.xx.xx…
Connected to mx00.namadomainserver.de.
Escape character is ‘^]’.
220 namadomainserver.de (mxeue010) Nemesis ESMTP Service ready
ehlo namadomainserver.de
250-namadomainserver.de Hello namadomainserver.de
250-8BITMIME
250-SIZE 157286400
250 STARTTLS
mail from:hosokawa.fujitaka@excellent.co.id
250 Requested mail action okay, completed
Berhasil. Ternyata menggunakan domain excellent.co.id berhasil lolos dari pengecekan server tujuan. Ada kemungkinan masalahnya benar disisi domain pengirim.
Untuk memastikannya, saya mencoba koneksi ke MX server kedua :
telnet mx01.namadomainserver.de 25
Trying 217.72.xx.xx…
Connected to mx01.namadomainserver.de.
Escape character is ‘^]’.
220 namadomainserver.de (mxeue110) Nemesis ESMTP Service ready
ehlo namadomainserver.de
250-namadomainserver.de Hello namadomainserver.de
250-8BITMIME
250-SIZE 157286400
250 STARTTLS
mail from:vavai@excellent.co.id
250 Requested mail action okay, completed
Hasilnya sukses kembali. Dari hal diatas, bisa disimpulkan kesimpulan awal sebagai berikut :
- Server tujuan valid dan tidak ada issue. Hal ini karena kedua server mereka memberikan respon yang sama
- Problem terjadi pada domain pengirim : namaperusahaan-indo.com karena jika mengirim email menggunakan domain excellent.co.id (atau domain lain yang normal) tidak ada kendala
- Jika merujuk pesan error : 550-Requested action not taken: mailbox unavailable 550 invalid DNS MX or A/AAAA resource record pesan ini kemungkinan besar bukan berarti alamat email tujuan tidak ada sesuai asumsi semula, melainkan adanya mekanisme pengecekan sender domain (biasanya sebagai bagian dari proteksi anti spam) dan domain namaperusahaan-indo.com gagal memenuhi kriteria ini, sedangkan domain excellent.co.id berhasil memenuhi kriteria
PENGECEKAN INTEGRITAS DNS
Berdasarkan hasil analisa point 3, saya melanjutkan investigasi dengan mencoba mengecek integritas DNS domain namaperusahaan-indo.com melalui alamat https://intodns.com dan menemukan hasil sebagai berikut :
MX A request returns CNAME WARNING: MX records points to a CNAME. CNAMEs are not allowed in MX records, according to RFC974, RFC1034 3.6.2, RFC1912 2.4, and RFC2181 10.3. The problem MX record(s) are: mail.namaperusahaan-indo.com points to [‘namaperusahaan-indo.com’] This can cause problems
Hasil pengecekan diatas membuktikan premis tersebut, menunjukkan bahwa ada kesalahan konfigurasi DNS untuk domain namaperusahaan-indo.com dimana seharusnya MX records merujuk pada nama yang ditranslasikan ke A records.
Pada kasus domain klien namaperusahaan-indo.com, MX records benar merujuk pada nama mail.namaperusahaan-indo.com namun nama mail.namaperusahaan-indo.com merujuk pada alias (cname) dari namaperusahaan-indo.com.
Kemungkinan besar hal diatas terjadi karena email namaperusahaan-indo.com menggunakan layanan email hosting bagian dari web hosting dan pihak ISP mengambil cara mudah melakukan setting MX menggunakan alias name. Hal ini tidak sesuai RFC dan kaidah konfigurasi mail server.
Sesuai RFC 1912 : [RFC 1034] in section 3.6.2 says this should not be done, and [RFC
974] explicitly states that MX records shall not point to an alias
defined by a CNAME. This results in unnecessary indirection in
accessing the data, and DNS resolvers and servers need to work more
to get the answer.
Referensi : https://tools.ietf.org/html/rfc1912
SOLUSI
Sebagai solusi, saya meminta pada pihak klien untuk menghubungi ISP hosting mereka dan menyesuaikan isian records mail.namaperusahaan-indo.com dari awalnya CNAME terhadap namaperusahaan-indo.com menjadi A records
$ nslookup mail.namaperusahaan-indo.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
mail.namaperusahaan-indo.com canonical name = namaperusahaan-indo.com.
Name: namaperusahaan-indo.com
Address: 203.201.XXX.XXX
Berikut adalah contoh permintaan penggantian records DNS tersebut :
/*Hi NOC ISP
Mohon dapat dilakukan penggantian/penyesuaian records DNS pada domain kami namaperusahaan-indo.com untuk records mail.namaperusahaan-indo.com sebagai berikut :
Sebelumnya
mail.namaperusahaan-indo.com IN CNAME namaperusahaan-indo.com
Menjadi
mail.namaperusahaan-indo.com IN A 203.201.XXX.XXX
Jika sudah dilakukan, harapa menginformasikannya kepada kami agar dapat kami check dan validasi kembali.
*/
Setelah pihak ISP melakukan pengubahan, pihak klien bisa melakukan pengetesan apakah error seperti yang ditunjukkan pada : https://intodns.com masih ada atau sudah diperbaiki.
HASIL AKHIR
Setelah dilakukan penyesuaian MX records oleh pihak ISP hosting klien, saya melakukan testing ulang dengan telnet port 25. Hasilnya, domain klien mendapat pesan sukses :
250 Requested mail action okay, completed
Setelah mengkonfirmasi hasil tersebut di kedua server MX tujuan, saya menginformasikan kembali pada pihak klien mengenai hasil akhir dan meminta mereka melakukan pengiriman email dengan di cc-kan ke alamat team support Excellent.
Hasil pengiriman email dari pihak klien mendapat balasan dari rekanan mereka di Jerman bahwa email berhasil diterima dengan baik.
Mission accomplished.
CATATAN :
Sebagai email services provider (ESP), Excellent menyediakan layanan lengkap terkait email sebagai berikut
- Layanan Excellent Managed Services Mail Server : https://www.excellent.co.id/vps
- Layanan SMTP Relay : https://www.excellent.co.id/smtp
- Layanan Anti Spam dan Anti Virus : https://www.excellent.co.id/asav
- Layanan SSL
- Layanan lisensi email server berbasis Zimbra
- Dan lain-lain