एमएक्स रिकॉर्ड, लोड संतुलन और विफलता के लिए बेहतर सेटअप


9

डोमेन example.com लें, इसमें दो मेल सर्वर mail1.example.com और mail2.example.com हैं, दोनों पहले से ही कॉन्फ़िगर हैं, आमतौर पर मैं निम्नलिखित सेटअप के साथ जाऊंगा:

example.com.           1200    IN      MX      10 mail1.example.com.
example.com.           1200    IN      MX      10 mail2.example.com.
mail1.example.com.     1200    IN      A       172.16.10.1
mail2.example.com.     1200    IN      A       172.16.10.2

एक सहकर्मी ने निम्नलिखित सेटअप का सुझाव दिया:

example.com.           1200    IN      MX      10 mail.example.com.
mail.example.com.      1200    IN      A       172.16.10.1
mail.example.com.      1200    IN      A       172.16.10.2

mail1.example.com.     1200    IN      A       172.16.10.1
mail2.example.com.     1200    IN      A       172.16.10.2

दो ए रिकॉर्ड के साथ एक नया होस्टनाम जो दो सर्वरों को इंगित करता है, जैसा कि वह बताता है कि कुछ क्लाइंट एक ही प्राथमिकता एमएक्स के साथ राउंड-रॉबिन नहीं करते हैं, यह एक कानूनी सेटअप होना चाहिए, लेकिन क्या यह अभी भी विफलता का सही समर्थन करता है, जैसे 172.16। 10.1 असफल, क्या 172.16.10.2 प्रसव के लिए कोशिश की जा रही है? या यह एक सेटअप की तरह भी बेहतर होगा:

example.com.           1200    IN      MX      10 mail.example.com.
example.com.           1200    IN      MX      20 mail1.example.com.
example.com.           1200    IN      MX      20 mail2.example.com.
mail.example.com.      1200    IN      A       172.16.10.1
mail.example.com.      1200    IN      A       172.16.10.2

mail1.example.com.     1200    IN      A       172.16.10.1
mail2.example.com.     1200    IN      A       172.16.10.2

धन्यवाद।

जवाबों:


11

आरएफसी कि निर्दिष्ट कैसे एक एमटीए MX रिकॉर्ड संभाल चाहिए RFC974 , RFC1123 खंड 5.3.4 , RFC2821 खंड 5 और RFC5321 खंड 5

RFC974 की स्थिति अब HISTORIC है । इसके अनुसार, एमटीए के डोमेन से जुड़े एमएक्स रिकॉर्ड की सूची को क्वेरी करने की उम्मीद की जाती है और वरीयता के क्रम में सभी (या एक निश्चित संख्या में) एसएमटीपी सर्वरों की कोशिश करने के लिए "प्रोत्साहित" किया जाता है। यदि समान प्राथमिकता वाले मान के साथ कई MX रिकॉर्ड हैं, तो MTA को सभी SMTP सर्वर तक संदेश देने की कोशिश करनी चाहिए जब तक कि एक सफल न हो जाए। प्रयासों का क्रम MTA का विकल्प है, अर्थात, RFC यह नियम नहीं करता है कि SMTP सर्वरों को यादृच्छिक रूप से या DNS सर्वर द्वारा दिए गए क्रम में संपर्क किया जाना चाहिए। इसके अलावा, RFC यह नियम नहीं रखता है कि एक एमएक्स रजिस्टर को कैसे हैंडल किया जाए जो एकाधिक ए रिकॉर्ड को संदर्भित करता है।

(...) If the list of MX RRs is not empty, the mailer should try to deliver
the message to the MXs in order (lowest preference value tried
first). The mailer is required to attempt delivery to the lowest
valued MX. Implementors are encouraged to write mailers so that they
try the MXs in order until one of the MXs accepts the message, or all
the MXs have been tried. A somewhat less demanding system, in which
a fixed number of MXs is tried, is also reasonable. Note that
multiple MXs may have the same preference value. In this case, all
MXs at with a given value must be tried before any of a higher value
are tried. In addition, in the special case in which there are
several MXs with the lowest preference value, all of them should be
tried before a message is deemed undeliverable. (...)

RFC1123 की स्थिति इंटरनेट मानक है । धारा 5.3.4 का लक्ष्य RFC974 प्रक्रियाओं को "सुधारना" है कि एमएक्स रिकॉर्ड को कैसे संभालना है। अब एमटीए की आवश्यकता है कि जब तक कोई सफल न हो जाए, सभी एसएमटीपी सर्वरों को वरीयता के क्रम में चढ़ने की कोशिश करें। हालांकि यह अभी भी कोशिश करता है की संख्या पर एक विन्यास सीमा की अनुमति देता है। यदि समान प्राथमिकता वाले मान के साथ कई MX रिकॉर्ड हैं, तो RFC रैंडम में एक रिकॉर्ड का चयन करने के लिए MTA की अनुशंसा करता है (और इसकी आवश्यकता नहीं है)। हालाँकि, यदि कोई MX रिकॉर्ड एकाधिक A रिकॉर्ड्स (IPv4 पतों) का संदर्भ देता है, तो RFC को DNS सर्वर द्वारा दिए गए क्रम में, जब तक कि कोई भी सफल नहीं हो जाता, तब तक इन सभी पतों पर संपर्क करने के लिए MTA की आवश्यकता होती है।

(...) When it succeeds, the mapping can result in a list of
alternative delivery addresses rather than a single address,
because of (a) multiple MX records, (b) multihoming, or both.
To provide reliable mail transmission, the sender-SMTP MUST be
able to try (and retry) each of the addresses in this list in
order, until a delivery attempt succeeds. However, there MAY
also be a configurable limit on the number of alternate
addresses that can be tried. In any case, a host SHOULD try at
least two addresses.

The following information is to be used to rank the host
addresses:

(1) Multiple MX Records -- these contain a preference
indication that should be used in sorting. If there are
multiple destinations with the same preference and there
is no clear reason to favor one (e.g., by address
preference), then the sender-SMTP SHOULD pick one at
random to spread the load across multiple mail exchanges
for a specific organization; note that this is a
refinement of the procedure in [DNS:3].

(2) Multihomed host -- The destination host (perhaps taken
from the preferred MX record) may be multihomed, in which
case the domain name resolver will return a list of
alternative IP addresses. It is the responsibility of the
domain name resolver interface (see Section 6.1.3.4 below)
to have ordered this list by decreasing preference, and
SMTP MUST try them in the order presented.

(...)

[DNS:3] "Mail Routing and the Domain System," C. Partridge, RFC-974,
January 1986.

RFC2821 का दर्जा प्रोपेस्ड स्टैंडर्ड है । यह RFC RFC974 को मानता है और MX रिकॉर्ड हैंडलिंग के दायरे में, यह RFC1123 से थोड़ा भिन्न है। जबकि पूर्व में एक बराबर वरीयता मूल्य के साथ कई एमएक्स रिकॉर्ड के बीच एक एसएमटीपी सर्वर का एक यादृच्छिक चयन आवश्यक है, बाद वाला इसे केवल कम करता है।

(...) Multiple MX records contain a preference indication that MUST be used
in sorting (see below). Lower numbers are more preferred than higher
ones. If there are multiple destinations with the same preference
and there is no clear reason to favor one (e.g., by recognition of an
easily-reached address), then the sender-SMTP MUST randomize them to
spread the load across multiple mail exchangers for a specific
organization.

The destination host (perhaps taken from the preferred MX record) may
be multihomed, in which case the domain name resolver will return a
list of alternative IP addresses. It is the responsibility of the
domain name resolver interface to have ordered this list by
decreasing preference if necessary, and SMTP MUST try them in the
order presented. (...)

RFC5321 स्थिति DRAFT STANDARD है । यह RFC RFC2821 का पालन करता है और DNS रिज़ॉल्यूशन के संदर्भ में, यह मूल रूप से एक ही सर्वर लुकअप प्रक्रिया को फिर से लिखता है और एक नया खंड प्रस्तुत करता है जो MX रिकॉर्ड से निपटने पर थोड़ा चर्चा करता है जो IPv6 पतों का संदर्भ देता है।

(...) When a domain name associated with an MX RR is looked up and the
associated data field obtained, the data field of that response MUST
contain a domain name. That domain name, when queried, MUST return
at least one address record (e.g., A or AAAA RR) that gives the IP
address of the SMTP server to which the message should be directed.

(...) When the lookup succeeds, the mapping can result in a list of
alternative delivery addresses rather than a single address, because
of multiple MX records, multihoming, or both. To provide reliable
mail transmission, the SMTP client MUST be able to try (and retry)
each of the relevant addresses in this list in order, until a
delivery attempt succeeds.

(...)  MX records contain a preference indication that MUST be used in
sorting if more than one such record appears (see below). Lower
numbers are more preferred than higher ones. If there are multiple
destinations with the same preference and there is no clear reason to
favor one (e.g., by recognition of an easily reached address), then
the sender-SMTP MUST randomize them to spread the load across
multiple mail exchangers for a specific organization.

The destination host (perhaps taken from the preferred MX record) may
be multihomed, in which case the domain name resolver will return a
list of alternative IP addresses. It is the responsibility of the
domain name resolver interface to have ordered this list by
decreasing preference if necessary, and the SMTP sender MUST try them
in the order presented. (...)

मुझे लगता है कि एक आधुनिक मेल ट्रांसफर एजेंट कम से कम RFC2821 या RFC5321 प्रक्रियाओं का अनुसरण करता है, इसलिए सभी तीन DNS सेटअप फेलओवर क्षमताएं प्रदान करते हैं। हालाँकि, केवल पहला सेटअप बेहतर लोड संतुलन प्रदान कर सकता है। यदि आप दूसरे या तीसरे सेटअप के लिए कोशिश करते हैं, तो आपको यह सुनिश्चित करना होगा कि आपका DNS सर्वर यादृच्छिक क्रम में प्रतिक्रियाएं देता है। इसके अलावा, DNS रिकॉर्ड्स को MTA द्वारा स्वयं या पुनरावर्ती DNS सर्वरों द्वारा कैश किया जा सकता है, इसलिए यादृच्छिकता की गारंटी नहीं दी जा सकती है। मुझे लगता है कि mail1.example.comअधिकांश संदेश प्राप्त होंगे।

एक और कारण जो दूसरे और तीसरे सेटअप के खिलाफ मेरी राय को निर्देशित करता है, एक आईपी पते पर कई नामों का संदर्भ है। इंटरनेट में मेल सर्वर आमतौर पर उन मेजबानों के संदेशों को अस्वीकार कर देते हैं, जिनकी मैपिंग IP address => PTR => hostname => A => IP addressमेल नहीं खाती (जैसा कि पोस्टफिक्स प्रतिबंध अस्वीकार कर दिया गया है_unknown_client_hostname ), इसलिए आपको पीटीआर रिकॉर्ड सेट करने पर विशेष ध्यान रखना होगा।

एक यादृच्छिक क्रम में MX रिकॉर्ड की कोशिश न करने वाले ग्राहक पहले से ही RFC2821 और RFC5321 मानकों का उल्लंघन कर रहे हैं। इसलिए, मुझे लगता है कि इस बात की कोई गारंटी नहीं है कि ये ग्राहक अपने आप ही द्वितीयक आईपी पते की कोशिश करेंगे। उसके कारण, मैं सबसे सरल DNS कॉन्फ़िगरेशन पसंद करता हूं:

example.com.           1200    IN      MX      10 mail1.example.com.
example.com.           1200    IN      MX      10 mail2.example.com.
mail1.example.com.     1200    IN      A       172.16.10.1
mail2.example.com.     1200    IN      A       172.16.10.2

EDIT: RFC1123 के संदर्भ जोड़े गए।


विस्तृत संदर्भ के लिए धन्यवाद, हो सकता है कि हम एक उचित लोड-बॉलर के बिना बहुत अधिक उम्मीद करते हैं, जैसा कि नीचे मार्की कहता है; आपके पास PTR के बारे में भी एक बिंदु है, बेमेल मुद्दों का कारण बन सकता है और ध्यान रखा जाना चाहिए।
क्रंदन

2

दूसरा सेटअप विफलता का समर्थन नहीं करता है। मान लीजिए कि mail.example.com 172.16.10.1 पर हल हो गया है और यह विफल हो गया है। फिर 172.16.10.2 की कोशिश नहीं की जाएगी क्योंकि केवल एक एमएक्स रिकॉर्ड है।

तीसरा सेटअप पहले वाले के रूप में दो बार DNS ट्रैफ़िक उत्पन्न करता है। एफ़एम ट्रैफ़िक के अलावा, दोनों का व्यवहार समान है: जैसा कि आपने कहा कि कुछ ग्राहक एक ही प्राथमिकता एमएक्स के साथ राउंड-रॉबिन को सही ढंग से नहीं करेंगे।

लोड संतुलन और विफलता दोनों के लिए मैं कोशिश करूँगा:

example.com.           1200    IN      MX      10 mail1.example.com.
example.com.           1200    IN      MX      10 mail2.example.com.
example.com.           1200    IN      MX      20 mail3.example.com.
example.com.           1200    IN      MX      30 mail4.example.com.
mail1.example.com.     1200    IN      A       172.16.10.1
mail2.example.com.     1200    IN      A       172.16.10.2
mail3.example.com.     1200    IN      A       172.16.10.1
mail4.example.com.     1200    IN      A       172.16.10.2
  • 10 एमएक्स रिकॉर्ड ------> लोड संतुलन के कुछ प्रकार
  • 20, 30 एमएक्स रिकॉर्ड -> विफलता

1

मेरी राय में, आपका पहला सेटअप सही है। कारण हैं:

  1. आपके पास एक ही प्राथमिकता के साथ 2 एमएक्स रिकॉर्ड हैं जो लोड संतुलन के लिए अच्छा है। RFC5321 बताता है कि SMTP- सर्वर को सभी सर्वरों के लिए रैंडमली डिस्ट्रीब्यूट करने के लिए समान प्राथमिकता है

  2. जैसा कि आपने उल्लेख किया, राउंड रॉबिन ए रिकॉर्ड सही ढंग से विफल नहीं होगा। इसे मल्टीहोमेड-ए रिकॉर्ड कहा जाता है, प्रेषक पहले मेल को DNS प्रतिक्रिया पर एक प्रविष्टि भेजेगा और डीएनएस सर्वर सूची वापसी का क्रम तय करेगा। इसलिए यदि आपको लोड वितरण या फेलओवर की आवश्यकता है, तो आपको एक DNS सर्वर की आवश्यकता है जो इसे कर सकता है (हीथ एंड लोड मॉनिटर)। RFC के आधार पर सभी प्रेषक को पहले एमएक्स रिकॉर्ड पर समान प्राथमिकता वाले सभी सर्वरों को आज़माने की आवश्यकता होती है, इसलिए आप दो एमएक्स रिकॉर्ड के साथ फेलओवर कर सकते हैं।

रेफरी: https://tools.ietf.org/html/rfc5321 पृष्ठ ६ ९


0

विफलता के लिए करते हैं:

example.com.           1200    IN      MX      10 mail1.example.com.
example.com.           1200    IN      MX      20 mail2.example.com.
mail1.example.com.     1200    IN      A       172.16.10.1
mail2.example.com.     1200    IN      A       172.16.10.2

MTA पहले mail1, फिर mail2 की कोशिश करेगा।

लोड-बैलेंसिंग और फेलओवर का संयोजन वास्तव में संभव नहीं है। तुम यह कर सकते थे:

example.com.           1200    IN      MX      10 mail1.example.com.
example.com.           1200    IN      MX      20 mail2.example.com.
mail1.example.com.     1200    IN      A       172.16.10.1
mail1.example.com.     1200    IN      A       172.16.10.2    
mail2.example.com.     1200    IN      A       172.16.10.1
mail2.example.com.     1200    IN      A       172.16.10.2

MTA पहली बार mail1 की कोशिश करेगा, जो आधे समय को .1 और दूसरी बार .2 को इंगित करता है। यहाँ समस्या यह है कि mail2 उसी पते की ओर संकेत कर सकता है जहाँ mail1 उस परिदृश्य में है जहाँ mail1 उपलब्ध नहीं है।

तो आप भी कोशिश कर सकते हैं

example.com.           1200    IN      MX      10 mail1.example.com.
example.com.           1200    IN      MX      10 mail2.example.com.
example.com.           1200    IN      MX      20 mail2.example.com.
example.com.           1200    IN      MX      20 mail1.example.com.
mail1.example.com.     1200    IN      A       172.16.10.1
mail1.example.com.     1200    IN      A       172.16.10.2    
mail2.example.com.     1200    IN      A       172.16.10.1
mail2.example.com.     1200    IN      A       172.16.10.2

जोखिम कम करने के लिए कि प्रारंभिक कनेक्शन काम नहीं करेगा। फिर भी जोखिम शून्य नहीं होगा। लेकिन एमटीए बाद में कनेक्शन को फिर से जारी करेगा।

एक मिशन-क्रिटिकल लोड-बैलेंसिंग और फेलओवर के प्रभावी होने के लिए, लोड-बैलेंसर (क्लस्टर) प्राप्त करें या एक साथ रखें।


मैं मार्की से पूरी तरह सहमत नहीं हूं। मैं अभी भी एक ही प्राथमिकता के साथ एमएक्स रिकॉर्ड के साथ विफलता और लोड संतुलन साध सकता हूं। मैंने इसे उत्पादन वातावरण में इस्तेमाल किया, और यह अच्छी तरह से काम करता है
जीके।

ओपी ने कहा कि उन्हें संदेह है कि लोड-बैलेंसिंग के लिए वही प्रोटो एमएक्स काम करेगा। उस स्थिति में उन्हें एक लोड बैलेंसर प्राप्त करना चाहिए :)
मार्की

-1

यह निर्भर करता है कि आपके पास क्या मेलस्वर है। हमारे पास reddoxx नामक एक मेलस्वर है - यह केवल पहले mx रिकॉर्ड का उपयोग करता है। (एक ही प्राथमिकता के साथ) केवल पहले एमएक्स से कोई प्रतिक्रिया नहीं है तो यह दूसरे एमएक्स और इसी तरह से जुड़ जाएगा। हमारे मेलस्वर ने RFC5321 की उपेक्षा की


1
तो यह ओ के वर्णित एक ही नाम के लिए दो ए रिकॉर्ड के साथ क्या करेगा?
चूजों
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.