Mengapa data MX tidak dapat menunjuk ke alamat IP?

89

Saya mengerti Anda tidak boleh mengarahkan catatan MX di alamat IP secara langsung, tetapi sebaliknya harus mengarahkannya ke Acatatan, yang, pada gilirannya, menunjuk ke alamat IP dari server surat Anda.

Tetapi, pada prinsipnya, mengapa ini diperlukan?

dayuloli
sumber
Jika Anda dapat mengatur catatan MX Anda juga dapat mengatur catatan A. Saya tidak melihat masalah di sini.
joshudson
26
@ joshudson Sama sekali bukan masalah, hanya saya yang mencoba memahami mengapa daripada sekadar mengikuti apa yang dilakukan orang lain.
dayuloli
Saya baru saja mencoba di CloudFlare. Itu tidak menerima alamat IP sebagai nilai untuk catatan MX.
LinuxBabe
Saya tidak pernah peduli tentang ini sampai saya menambahkan catatan SPF, dan memiliki terlalu banyak pencarian. Harus menemukan cara berbeda untuk memotong beberapa.
gbryant

Jawaban:

90

Seluruh ide di balik catatan MX adalah untuk menentukan host atau host yang dapat menerima email untuk domain. Seperti yang ditentukan dalam RFC 1035 , catatan MX berisi nama domain. Karena itu harus menunjuk ke host yang dengan sendirinya dapat diselesaikan dalam DNS. Alamat IP tidak dapat digunakan karena akan ditafsirkan sebagai nama domain yang tidak memenuhi syarat, yang tidak dapat diselesaikan.

Alasan untuk ini pada 1980-an, ketika spesifikasi awalnya ditulis, hampir sama dengan alasan untuk itu hari ini: Host dapat dihubungkan ke beberapa jaringan dan menggunakan beberapa protokol.

Kembali ke tahun 80-an, tidak jarang memiliki gateway surat yang terhubung baik ke Internet (relatif baru) yang menggunakan TCP / IP dan ke jaringan lama lainnya, yang sering menggunakan protokol lain. Menentukan MX dengan cara ini memungkinkan untuk catatan DNS yang dapat mengidentifikasi cara menjangkau host seperti itu di jaringan selain Internet, seperti Chaosnet . Namun dalam praktiknya, ini hampir tidak pernah terjadi; hampir semua orang merekayasa ulang jaringan mereka untuk menjadi bagian dari Internet.

Saat ini, situasinya adalah bahwa sebuah host dapat dijangkau oleh beberapa protokol (IPv4 dan IPv6) dan dengan beberapa alamat IP di setiap protokol. Catatan MX tunggal tidak mungkin daftar lebih dari satu alamat, jadi satu-satunya pilihan adalah menunjuk ke host, di mana semua alamat host itu kemudian dapat dicari. (Sebagai optimalisasi kinerja, server DNS akan mengirimkan catatan alamat untuk tuan rumah di bagian tambahan respons jika memiliki catatan otoritatif untuk mereka, menyimpan pulang pergi.)

Ada juga situasi yang muncul ketika penukar email Anda disediakan oleh pihak ketiga (mis. Google Apps atau Office 365). Anda mengarahkan catatan MX Anda ke nama host mereka, tetapi mungkin terjadi bahwa penyedia layanan perlu mengubah alamat IP server surat. Karena Anda telah menunjuk ke host, penyedia layanan dapat melakukan ini secara transparan dan Anda tidak perlu membuat perubahan apa pun pada catatan Anda.

Michael Hampton
sumber
2
Itu tidak benar-benar mencegah kompatibilitas dengan alamat IP; pada kenyataannya, sebagian besar server / klien SMTP bekerja dengan baik dengan alamat IP dalam catatan MX dari sedikit pengujian yang telah saya lakukan. Saya pikir maksudnya adalah untuk mencegah industri dari menggunakan alamat IP secara massal - yang kemungkinan akan terjadi, seandainya aturan itu tidak dinyatakan - bukan berdasarkan kasus per kasus. Oleh karena itu, "harus", berlawanan dengan "harus". +1 untuk info hebatnya. Saya tidak pernah mempertimbangkan sebagian besar dari itu.
Zenexer
16
Hukum Lalu Lintas @ Zenexer tidak ada karena ketidaknyamanan driver ahli yang relatif sedikit yang tahu persis apa yang aman dan apa yang tidak. Mereka ada karena bagian yang jauh lebih besar dari para idiot sialan yang berpikir mereka tahu apa yang mereka lakukan tetapi tidak.
Shadur
7
@ Zenexer Anda mungkin menemukan bahwa MTA tertentu mentolerirnya hari ini, dan tidak besok. Bagaimanapun, ini bukan perilaku yang diizinkan oleh standar. Dan tentu saja, tidak semua MTA akan mendukungnya, jadi melakukan ini berarti Anda dijamin kehilangan surat.
Michael Hampton
1
@MichaelHampton: Jika data MX HARUS berisi nama host alih-alih alamat IP, maka MTA HARUS menerima alamat IP. Hipotetis, jika catatan MX HARUS berisi nama host maka MTA HARUS menerima alamat IP. Begitulah cara kerja RFC. Mitra untuk saran implementasi "HARUS" dapat mengoptimalkan asumsi yang diikuti, tetapi itu cukup banyak yang dapat Anda lakukan dengannya.
MSalters
2
@Malters Saya pikir Anda bingung. Saya tidak pernah mengatakan APA PUN. Memang, saya mengatakan bahwa catatan MX HARUS mengandung nama host, yang juga apa yang dikatakan RFC.
Michael Hampton
18

DNS sebagai protokol memiliki beberapa tipe nilai yang berbeda, ini tidak dapat dipertukarkan.

Penting untuk dicatat bahwa DNS adalah protokol biner dengan pemetaan yang ketat antara jenis catatan dan jenis data yang disimpan oleh catatan tersebut.

Sebagai contoh:
Sebuah Arekor memegang alamat IPv4 (4 byte data, panjang tetap).
Sebuah AAAArekor memegang alamat IPv6 (16 byte data, panjang tetap).

Sebuah MXcatatan, di sisi lain, memegang nama (urutan label pada format <int number of bytes> <label> <int number of bytes> <label> <int 0>, panjang variabel).

Ini bukan mungkin untuk MXrecord memiliki alamat IP sebagai data.

Håkan Lindqvist
sumber
Anda dapat membuat label representasi teks dari alamat IP, tetapi tidak masuk akal untuk melakukannya, karena itu tidak dapat diselesaikan sebagai nama host.
Michael Hampton
@MichaelHampton Memang, mungkin untuk memiliki nama dengan label semua-numerik yang dalam representasi ramah-manusia yang normal terlihat seperti alamat IPv4 pada pandangan pertama. Itu tidak benar-benar mengubah apa pun ketika datang ke pertanyaan, meskipun, karena masih akan menjadi nama dan dengan demikian akan ditangani seperti nama (nama yang, setidaknya di Internet publik, hanya akan menjadi NXDOMAIN).
Håkan Lindqvist
Ini tidak benar-benar menjawab pertanyaan OP. Anda pada dasarnya mengatakan "karena memang begitu" .
dr01
@ dr01 Menimbang bahwa pertanyaan tersebut jelas menunjukkan tidak mengetahui "apa adanya" ("Anda tidak boleh mengarahkan catatan MX ke alamat IP secara langsung, tetapi sebaliknya harus mengarahkannya ke catatan A" padahal sebenarnya bukan kemungkinan untuk memiliki nilai lain selain nama), saya tidak berpikir itu tidak tepat untuk menunjukkan apa yang terjadi dan mengapa itu membuat pilihan lain tidak mungkin. Saya merasa Anda banyak membaca pertanyaan yang sebenarnya tidak ada.
Håkan Lindqvist
@ dr01 Yaitu, jangan berpikir pertanyaan itu dibaca sebagai pertanyaan akademis tentang keputusan desain pada masa-masa awal DNS atau semacamnya, tetapi hanya pertanyaan tentang bagaimana MXcatatan yang benar-benar ada di dunia dapat atau harus digunakan.
Håkan Lindqvist
6

Saya akan membuang ini sebagai dugaan. Tentu saja, saya pulang dengan flu jadi mungkin saya gila.

RFC 974 menyatakan:

Langkah pertama untuk mailer di LOCAL adalah mengeluarkan kueri untuk MX RRs untuk REMOTE. Sangat disarankan agar langkah ini diambil setiap kali pengirim mencoba mengirim pesan. Harapannya adalah bahwa perubahan dalam database domain akan dengan cepat digunakan oleh mailer, dan dengan demikian administrator domain akan dapat merutekan kembali pesan dalam perjalanan untuk host yang cacat dengan hanya mengubah database domain mereka.

Dengan membutuhkan nama, bukan IP, itu mendorong praktik ini dengan paksa. Nama dapat tetap sama, dan jika terjadi penyeimbangan beban atau DR, Anda tidak perlu khawatir mengubah data MX itu sendiri dan menunggu propagasi DNS.

Pembersih
sumber
8
Menjawab pertanyaan pertukaran yang bertumpuk pada hari liburmu saat kau sakit flu ... Aku beri tip untukmu, tuan!
Mike B
3

Beberapa server email (seperti exim) secara khusus tidak mengizinkan pengiriman ke data MX yang mengarah ke alamat IP murni, jadi Anda diharuskan menggunakan FQDN untuk itu agar tidak sesuai. Ini karena sebagian besar server mengharapkan catatan MX mengandung nama host, bukan IP (itulah gunanya catatan A).

Sunting: Untuk menguraikan, dalam DNS setiap catatan memiliki persyaratan ketat untuk jenis data yang dapat disimpan oleh setiap catatan. Dalam kasus data MX, itu hanya nama host .

Nathan C
sumber
Jadi mengapa exim tidak mengizinkan data MX menunjuk ke alamat IP? Sepertinya aneh bagi saya! Saya mengerti saya tidak boleh karena konvensi, tetapi saya tidak mengerti mengapa itu dibuat ilegal .
dayuloli
1
Saya tidak melihat bagaimana MTA dapat mendukung ini sebagai MXcatatan tidak mungkin memiliki alamat IP sebagai nilainya.
Håkan Lindqvist
@ HåkanLindqvist Jawaban Anda di atas menjelaskan poin ini untuk saya! Terima kasih!
dayuloli
2

DALAM RFC 1025, catatan MX hanya menunjukkan RR (catatan sumber daya) dari Catatan A atau CNAME.

Jadi server mail yang mengirim email meminta RR dari record MX, record mx daftar record server, mail server melakukan lookup maju untuk mendapatkan record A dan kemudian meneruskan email melalui smtp ke host layanan yang terdaftar sebagai server email 'bersedia' untuk menerima email untuk domain itu.

Pertanyaan Anda - Mengapa Email Tidak Dapat Dikirim ke Alamat IP

Respon - Karena Kepercayaan

Banyak aturan yang berlaku tentang surat telah berevolusi untuk menjaga kepercayaan antara domain bahwa pesan yang dikirim bolak-balik benar-benar valid. Semua ini pada akhirnya mengurangi SPAM.

  • Reverse IP Lookups
  • Pencarian Nama Teruskan untuk hal ini

Semua komponen penting ini sebagai dasar untuk membangun server email memiliki setidaknya beberapa komponen kecil yang didirikan dalam menciptakan komunikasi yang dapat dipercaya dan mengurangi komunikasi yang tidak dipercaya.

Referensi - RFC 1035 dan 974

https://www.ietf.org/rfc/rfc1035.txt35

https://www.ietf.org/rfc/rfc974.txt

Warganegara
sumber
2

Tujuan MXcatatan adalah agar suatu aplikasi (transfer surat) dapat mempelajari tentang host yang akan digunakan. Pada level aplikasi, nama host adalah hal yang benar untuk digunakan (bukan alamat IP).

Juga, menambahkan catatan jenis varian ke DNS memperkenalkan tingkat komplikasi dan karenanya merupakan titik masuk untuk masalah, kesalahan implementasi, tantangan keamanan. Sebagai contoh, 1.2.3.4.example.com.adalah nama host yang valid (ya, itu, bahkan dalam terang RFC1034, 3.5). Menentukan host ini seperti MXpada file konfigurasi bind untuk example.com mungkin terlihat seperti

.  MX 10  1.2.3.4

dan mungkin itu persis sama dengan catatan MX dengan IP seharusnya terlihat. Dan bahkan untuk mentransfer informatoin dalam datagram DNS memerlukan beberapa additoins yang unik; cara paling sederhana adalah dengan memperkenalkan tipe catatan sumber daya baru , MXAkatakanlah, untuk disambiguasi. Tapi sekali lagi, mengapa memperkenalkan jenis rekor baru ketika beban

. MXA 10 5.6.7.8

selalu bisa diganti dengan

. MX 10 dummy
dummy A 5.6.7.8

(dan akan didukung oleh juga klien DNS yang tidak mengetahui tentang MXAcatatan)?

Hagen von Eitzen
sumber