Rozumiem, że nie należy kierować rekordu MX bezpośrednio na adres IP, ale zamiast tego należy skierować go do A
rekordu, który z kolei wskazuje adres IP serwera pocztowego.
Ale w zasadzie dlaczego jest to wymagane?
Rozumiem, że nie należy kierować rekordu MX bezpośrednio na adres IP, ale zamiast tego należy skierować go do A
rekordu, który z kolei wskazuje adres IP serwera pocztowego.
Ale w zasadzie dlaczego jest to wymagane?
Odpowiedzi:
Ideą rekordu MX jest określenie hosta lub hostów, które mogą akceptować pocztę dla domeny. Jak określono w RFC 1035 , rekord MX zawiera nazwę domeny. Musi zatem wskazywać host, który sam może zostać rozwiązany w DNS. Nie można użyć adresu IP, ponieważ byłby interpretowany jako niekwalifikowana nazwa domeny, której nie można rozwiązać.
Przyczyny takiego stanu rzeczy w latach osiemdziesiątych, kiedy specyfikacje zostały pierwotnie napisane, są prawie takie same, jak przyczyny, dla których dzisiaj: host może być podłączony do wielu sieci i używać wielu protokołów.
W latach 80-tych często zdarzało się, że bramy pocztowe łączyły się zarówno z (stosunkowo nowym) Internetem, który korzystał z TCP / IP, jak iz innymi starszymi sieciami, które często używały innych protokołów. Określenie MX w ten sposób dozwolone dla rekordów DNS, które mogą wskazywać, jak dotrzeć do takiego hosta w sieci innej niż Internet, takiej jak Chaosnet . W praktyce jednak prawie nigdy tak się nie stało; praktycznie wszyscy przeprojektowali swoje sieci, aby zamiast tego stały się częścią Internetu.
Obecnie sytuacja jest taka, że do hosta może dotrzeć wiele protokołów (IPv4 i IPv6) i wiele adresów IP w każdym protokole. Pojedynczy rekord MX nie może zawierać więcej niż jednego adresu, więc jedyną opcją jest wskazanie hosta, na którym można następnie wyszukać wszystkie adresy tego hosta. (Aby zoptymalizować wydajność, serwer DNS prześle rekordy adresu dla hosta w dodatkowej sekcji odpowiedzi, jeśli ma dla niego wiarygodne rekordy, oszczędzając podróż w obie strony).
Istnieje również sytuacja, w której wymienniki poczty są dostarczane przez osoby trzecie (np. Google Apps lub Office 365). Wskazujesz rekordy MX na ich nazwy hostów, ale może się zdarzyć, że usługodawca musi zmienić adresy IP serwerów pocztowych. Ponieważ wskazałeś hosta, usługodawca może to zrobić w przejrzysty sposób i nie musisz wprowadzać żadnych zmian w swoich rejestrach.
źródło
DNS jako protokół ma kilka różnych typów wartości, których nie można zamieniać.
Należy zauważyć, że DNS jest protokołem binarnym z ścisłym odwzorowaniem między typem rekordu a typem danych przechowywanych przez taki rekord.
Na przykład: rekord posiada adresu IPv4 (4 bajty danych, stała długość). Rekord posiada adres IPv6 (16 bajtów danych, stała długość).
A
AAAA
Z
MX
drugiej strony rekord ma nazwę (ciąg etykiet w formacie<int number of bytes> <label> <int number of bytes> <label> <int 0>
, zmienna długość).To nie jest możliwe za
MX
rekord mieć adres IP jako jego danych.źródło
NXDOMAIN
).MX
rekordy istniejące na świecie mogą lub powinny być używane.Wyrzucę to jako przypuszczenie. Oczywiście, jestem w domu z grypą, więc może mam bzika.
RFC 974 stwierdza:
Wymagając nazwy zamiast adresu IP, zdecydowanie zachęca do tej praktyki. Nazwy mogą pozostać takie same, aw przypadku równoważenia obciążenia lub odzyskiwania po awarii nie będziesz musiał martwić się o zmianę samego rekordu MX i czekanie na propagację DNS.
źródło
Niektóre serwery poczty e-mail (np. Exim) w szczególności nie zezwalają na wysyłanie do rekordów MX wskazujących czysty adres IP, dlatego musisz użyć nazwy FQDN, aby była zgodna. Jest tak, ponieważ większość serwerów oczekuje, że rekord MX zawiera nazwę hosta, a nie adres IP (do tego służą rekordy A).
Edycja: aby rozwinąć, w DNS każdy rekord ma ścisłe wymagania dotyczące rodzaju danych, które może przechowywać każdy rekord. W przypadku rekordów MX jest to tylko nazwa hosta .
źródło
MX
rekord nie może mieć adresu IP jako wartości.Rekordy IN RFC 1025 MX wskazują tylko RR (rekord zasobu) rekordu A lub CNAME.
Tak więc serwer pocztowy wysyłający pocztę prosi o RR rekordu MX, rekord mx wyświetla rekordy A serwerów, serwer poczty wyszukuje do przodu, aby uzyskać rekord A, a następnie przesyła pocztę przez smtp do hosta usługi wymienionego jako serwer pocztowy „chętny” do otrzymywania poczty dla tej domeny.
Twoje pytanie - dlaczego poczta nie może zostać wysłana na adres IP?
Odpowiedź - z powodu zaufania
Wiele obowiązujących zasad dotyczących poczty ewoluowało w celu utrzymania zaufania między domenami, że wiadomości wysyłane tam i z powrotem są rzeczywiście ważne. Wszystko to ma ostatecznie zmniejszyć SPAM.
Wszystkie te niezbędne komponenty, na których można zbudować serwer poczty, mają przynajmniej jakiś niewielki komponent oparty na tworzeniu niezawodnej komunikacji i ograniczeniu niezaufanej komunikacji.
Odniesienie - RFC 1035 i 974
https://www.ietf.org/rfc/rfc1035.txt35
https://www.ietf.org/rfc/rfc974.txt
źródło
Celem
MX
zapisów jest to, że aplikacja (transfer poczty) może dowiedzieć się o używanym hoście. Na poziomie aplikacji należy używać nazw hostów (nie adresów IP).Ponadto dodanie do DNS wymyślenia rekordu typu wariantu wprowadza powikłanie, a tym samym punkt wejścia dla problemów, wpadek w realizacji, wyzwań związanych z bezpieczeństwem. Na przykład
1.2.3.4.example.com.
jest prawidłową nazwą hosta (tak, nawet w świetle RFC1034, 3.5). Określenie tego hosta jakoMX
pliku konfiguracyjnego powiązania na przykład example.com może wyglądaći przypuszczalnie taki właśnie powinien być rekord MX z adresem IP. Nawet przeniesienie informacji do datagramu DNS wymaga dziwnych dodatków; najprostszym sposobem byłoby wprowadzenie nowego typu rekordu zasobu,
MXA
powiedzmy, w celu ujednoznacznienia. Ale z drugiej strony, po co wprowadzać ciężar takiego nowego typu rekordu, kiedyzawsze można go zastąpić
(i będzie obsługiwany także przez klientów DNS, którzy nie wiedzą o
MXA
rekordach)?źródło