Vraag Waarom wijzen MX-records niet naar een IP-adres?


ik begrijp je zou niet een MX-record rechtstreeks op een IP-adres richten, maar moeten in plaats daarvan wijzen op een A record, die op zijn beurt wijst naar het IP-adres van uw mailserver.

Maar in principe waarom is dit vereist?


83
2018-01-28 17:13


oorsprong


Als u een MX-record kunt instellen, kunt u ook een A-record instellen. Ik zie het probleem hier niet. - joshudson
@joshudson Het is helemaal geen probleem, alleen ik probeer te begrijpen waarom, in plaats van simpelweg te volgen wat iedereen doet. - dayuloli
Ik heb het net geprobeerd in CloudFlare. Het accepteert geen IP-adres als een waarde voor MX-record. - LinuxBabe


antwoorden:


Het hele idee achter de MX-record is om een gastheer of hosts die mail voor een domein kan accepteren. Zoals aangegeven in RFC 1035, de MX-record bevat een domeinnaam. Het moet daarom naar een host verwijzen die zelf in de DNS kan worden omgezet. Een IP-adres kan niet worden gebruikt omdat het zou worden geïnterpreteerd als een ongekwalificeerde domeinnaam, die niet kan worden opgelost.

De redenen hiervoor in de jaren tachtig, toen de specificaties oorspronkelijk werden geschreven, zijn bijna hetzelfde als de redenen ervoor: een host kan op meerdere netwerken zijn aangesloten en meerdere protocollen gebruiken.

In de jaren 80 was het niet ongebruikelijk om mail-gateways te hebben die zowel met het (relatief nieuwe) internet dat TCP / IP gebruikte als met andere verouderde netwerken, die vaak andere protocollen gebruikten, verbonden waren. Door op deze manier MX te specificeren, konden DNS-records worden gebruikt die konden bepalen hoe een dergelijke host op een ander netwerk dan internet kon worden bereikt, zoals Chaosnet. In de praktijk is dit echter bijna nooit gebeurd; vrijwel iedereen re-engineered hun netwerken om in plaats daarvan deel te gaan uitmaken van het internet.

Tegenwoordig is de situatie dat een host kan worden bereikt door meerdere protocollen (IPv4 en IPv6) en door meerdere IP-adressen in elk protocol. Een enkele MX-record kan niet meer dan één adres bevatten, dus de enige optie is om naar een host te verwijzen, waar vervolgens alle adressen van die host kunnen worden opgezocht. (Als een prestatie-optimalisatie verzendt de DNS-server de adresrecords voor de host in het aanvullende antwoordgedeelte als deze daarvoor geautoriseerde records heeft, waardoor een retour wordt opgeslagen.)

Er is ook een situatie die zich voordoet wanneer uw e-mailuitwisselaars worden geleverd door een derde partij (bijvoorbeeld Google Apps of Office 365). U wijst uw MX-records naar hun hostnamen, maar het kan voorkomen dat de serviceprovider de IP-adressen van de e-mailservers moet wijzigen. Omdat u naar een host hebt verwezen, kan de serviceprovider dit op een transparante manier doen en hoeft u geen wijzigingen in uw records aan te brengen.


84
2018-01-28 17:36



Dat belet niet echt compatibiliteit met IP-adressen; in feite werken de meeste SMTP-servers / -clients prima met IP-adressen in MX-records van de kleine tests die ik heb gedaan. Ik denk dat het de bedoeling was om de industrie te ontmoedigen om IP-adressen massaal te gebruiken - wat waarschijnlijk is gebeurd, als die regel niet was vermeld - in plaats van per geval. Vandaar "zou moeten", in tegenstelling tot "moet". +1 voor de geweldige info. Ik had daar nog nooit over nagedacht. - Zenexer
@Zenexer Verkeerswetten zijn er niet voor het ongemak van relatief weinig deskundige chauffeurs die precies weten wat veilig is en wat niet. Ze bestaan ​​vanwege de veel grotere subset van fucking idioten die denken ze weten wat ze doen, maar doen het niet. - Shadur
@Zenexer Misschien merk je dat een bepaalde MTA het vandaag tolereert, en niet morgen. Het is immers geen gedrag dat door de standaard wordt toegestaan. En natuurlijk zullen niet alle MTA's het ondersteunen, dus dit betekent dat u gegarandeerd e-mail verliest. - Michael Hampton♦
@MichaelHampton: als een MX-record MOET bevatten een hostnaam in plaats van een IP-adres en vervolgens een MTA MOET accepteer een IP-adres. Hypothetisch, als een MX-record MOET bevatten een hostnaam en vervolgens een MTA MOET accepteer een IP-adres. Dat is hoe RFC's werken. De tegenpartij bij een "MOGELIJK" implementatieadvies kan optimaliseren in de veronderstelling dat het advies wordt gevolgd, maar dat is vrijwel alles wat u ermee kunt doen. - MSalters
@MSalters Ik denk dat je in de war bent. Ik heb nooit gezegd dat er iets moest gebeuren. Inderdaad, ik zei dat het MX-record een hostnaam MOET bevatten, wat ook de RFC's zeggen. - Michael Hampton♦


DNS als protocol heeft een aantal verschillende soorten waarden, deze zijn niet uitwisselbaar.

Het is belangrijk op te merken dat DNS een binair protocol is met strikte toewijzingen tussen het type record en het type gegevens dat een dergelijke record bevat.

Bijvoorbeeld:
Een A record bevat een IPv4-adres (4 bytes aan gegevens, vaste lengte).
Een AAAArecord bevat een IPv6-adres (16 bytes aan gegevens, vaste lengte).

Een MX record, aan de andere kant, houdt een naam (een reeks labels op het formaat <int number of bytes> <label> <int number of bytes> <label> <int 0>, variabele lengte).

Het is niet mogelijkvoor een MX record om een ​​IP-adres als gegevens te hebben.


16
2018-01-28 17:34



Je zou van het label de tekstuele weergave van een IP-adres kunnen maken, maar het zou geen zin hebben om dat te doen, omdat het niet als een hostnaam kan worden opgelost. - Michael Hampton♦
@MichaelHampton Het is inderdaad mogelijk om een ​​naam te hebben met volledig numerieke labels die in de normale mensvriendelijke weergave op het eerste gezicht op een IPv4-adres lijkt. Dat verandert echter niets als het om de vraag gaat, want het zou nog steeds een naam zijn en dus als een naam worden behandeld (een naam die, althans op het openbare internet, gewoon NXDOMAIN). - Håkan Lindqvist
Dit beantwoordt niet echt de vraag van het OP. Je zegt het eigenlijk "omdat dat is zoals het is". - dr01
@ dr01 Gezien het feit dat de vraag duidelijk aantoont dat hij niet op de hoogte is van "de manier waarop het is" ("je moet een MX-record niet direct op een IP-adres richten, maar in plaats daarvan naar een A-record verwijzen", terwijl het in feite geen mogelijkheid is om heb een andere waarde dan een naam), ik denk niet dat het niet op zijn plaats is om te wijzen op de manier waarop dingen zijn en waarom dat een andere optie onmogelijk maakt. Ik krijg het gevoel dat je veel leest over de vraag die er eigenlijk niet is. - Håkan Lindqvist
@ dr01 Dat wil zeggen, denk niet dat de vraag luidt als een academische vraag over de ontwerpbeslissingen in de begintijd van DNS of iets dergelijks, maar gewoon een vraag over hoe de MX records die echt in de wereld bestaan, kunnen of zouden moeten worden gebruikt. - Håkan Lindqvist


Ik zal dit als een gok weggooien. Natuurlijk, ik ben thuis met de griep, dus misschien ben ik gestoord.

RFC 974 zegt:

De eerste stap voor de mailer bij LOCAL is om een ​​query uit te geven voor MX-rou's      voor REMOTE. Er wordt nadrukkelijk op aangedrongen dat deze stap elke keer wordt genomen      een mailer probeert het bericht te verzenden. De hoop is dat er veranderingen in komen      de domeindatabase zal snel worden gebruikt door mailers en dus domein      beheerders kunnen in-transit-berichten opnieuw routeren      defecte hosts door simpelweg hun domeindatabases te wijzigen.

Door een naam in plaats van IP te eisen, moedigt het deze praktijk krachtig aan. Namen kunnen hetzelfde blijven en in het geval van taakverdeling of DR hoeft u zich geen zorgen te maken over het wijzigen van het MX-record zelf en te wachten op DNS-verspreiding.


6
2018-01-28 17:40



Vragen over de uitwisseling van antwoorden beantwoorden op je vrije dag terwijl je ziek bent van de griep ... Ik laat mijn hoed voor je vallen, goede heer! - Mike B
@MikeB bedankt ... - TheCleaner


Sommige e-mailservers (zoals exim) staan ​​het verzenden naar MX-records specifiek niet toe die verwijzen naar een puur IP-adres, dus u moet in plaats daarvan een FQDN gebruiken om compliant te zijn. Dit komt omdat de meeste servers verwachten dat de MX-record een hostnaam bevat, geen IP (dat is waar A-records voor zijn).

Bewerken: Om uit te werken, in DNS heeft elke record strikte vereisten voor het type gegevens dat elke record kan bevatten. In het geval van MX-records is dit een hostnaam enkel en alleen.


2
2018-01-28 17:29



Dus waarom liet Exim niet toe dat MX-records in de eerste plaats verwijzen naar het IP-adres? Het lijkt mij vreemd! Ik begrijp het moet niet vanwege conventie, maar ik begrijp het niet waarom het is gemaakt onwettig. - dayuloli
Ik zie niet in hoe een MTA dit zou kunnen ondersteunen als een MX record kan onmogelijk een IP-adres als waarde hebben. - Håkan Lindqvist
@ HåkanLindqvist Uw antwoord hierboven verduidelijkte dit punt voor mij! Dank je! - dayuloli


IN RFC 1025 MX-records verwijzen alleen naar een RR (bronrecord) van een A-record of CNAME.

Dus de mailserver die de e-mail verzendt, vraagt ​​naar de RR van een MX-record, de mx-recordlijsten Een records van servers, de e-mailserver doet een forward-lookup om een ​​A-record te krijgen en stuurt de e-mail via smtp door naar de servicegastheer die als een mailserver die bereid is e-mail voor dat domein te ontvangen.

Uw vraag - Waarom kan geen mail worden verzonden naar een IP-adres

Reactie - vanwege vertrouwen

Veel van de regels met betrekking tot e-mail zijn geëvolueerd om het vertrouwen tussen domeinen te behouden dat de heen en weer verzonden berichten daadwerkelijk geldig zijn. Dit alles om uiteindelijk SPAM te verminderen.

  • Reverse IP Lookups
  • Een zoektocht naar een toekomstige naam voor die kwestie

Al deze essentiële componenten voor een stichting om een ​​mailserver te bouwen, hebben op zijn minst een klein onderdeel dat is gebaseerd op het creëren van betrouwbare communicatie en het verminderen van niet-vertrouwde communicatie.

Referentie - RFC 1035 en 974

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

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


2
2018-01-28 17:42





Het doel van MXrecords is dat een toepassing (e-mailoverdracht) kan informatie krijgen over de host die moet worden gebruikt. Op applicatieniveau, host namen zijn de juiste dingen om te gebruiken (geen IP-adressen).

Ook het toevoegen van de conce of variantetype record aan DNS introduceert een hefboom van complicaties en is daarmee een toegangspunt voor problemen, misbruik van de implementatie, veiligheidsuitdagingen. Bijvoorbeeld, 1.2.3.4.example.com. is een geldige hostnaam (ja, dat is het, zelfs in het licht van RFC1034, 3.5). Deze host specificeren als MX in een bindconfiguratiebestand zou bijvoorbeeld.com er misschien zo uit kunnen zien

.  MX 10  1.2.3.4

en vermoedelijk is dat precies hetzelfde als een MX-record met een IP er zou moeten uitzien. En zelfs om de informatiekan in een DNS-datagram over te zetten, zijn enkele eigenzinnige additoins nodig; de eenvoudigste manier zou zijn om een nieuwe bronrecordtype, MXA zeggen, voor disambiguation. Maar waarom introduceer je de last dan zo'n nieuw recordtype wanneer

. MXA 10 5.6.7.8

kan altijd worden vervangen door

. MX 10 dummy
dummy A 5.6.7.8

(en zou ook worden ondersteund door DNS-clients waarvan men niet weet MXA records)?


2
2018-01-31 21:49