Powiedzmy, że jesteśmy właścicielem strefy mywebservice.com.
Chciałbym, aby każdy z moich klientów otrzymał własną subdomenę, na przykład customer.mywebservice.com.
customer.mywebservice.com musi być nazwą CNAME dla danego serwera poza siedzibą. Ponieważ ta strona zarządza własnym sprzętem i może zmieniać adresy w dowolnym momencie, CNAME jest wymagany.
Ludzie muszą także mieć możliwość wysyłania wiadomości e-mail na adres [email protected], co wymagałoby zwykłego rekordu MX.
Chciałbym jednak uzyskać pewne wskazówki:
Zgodnie z RFC 1034 :
If a CNAME RR is present at a node, no other data should be
present; this ensures that the data for a canonical name and its aliases
cannot be different.
Zweryfikowałem również, że mój serwer DNS odmówi serwowania czegokolwiek poza CNAME dla hostów, które ich używają.
Wygląda więc na to, że mogę stracić sytuację. Jeśli chcę użyć rekordu MX, muszę użyć A zamiast CNAME.
Czy ktoś może wymyślić jakieś obejścia? Dzięki!
źródło
Po wielu pracach i badaniach tutaj znalazłem akceptowalne rozwiązanie. Po pierwsze, ważne jest, abyśmy wszyscy przestrzegali RFC. Połączyłem mój serwer DNS, aby naruszyć RFC, i odkryłem, że kilka innych głównych serwerów DNS nie przestrzega tej zmiany.
Właściwym posunięciem jest umieszczenie MX na hoście, na który wskazuje CNAME. Jeśli więc customer.mywebservice.com jest nazwą CNAME dla rekordu loadbalancer.mywebservice.com A, należy również utworzyć rekord MX dla loadbalancer.mywebservice.com. Sprawdziłem, że działa to ze wszystkimi głównymi programami rozstrzygającymi.
Jeśli zostanie wykonane zapytanie MX dla customer.mywebservice.com, biblioteka resolverów podąży za CNAME i otrzyma właściwe MX dla końcowego rekordu A. Hurra!
źródło
Masz wymóg, aby klienci musieli mieć możliwość zmiany adresu, czy zastanawiałeś się nad umożliwieniem klientowi dynamicznej aktualizacji własnego rejestru? Dzięki dynamicznym dns możesz użyć rekordu A, a klient może go zmienić w razie potrzeby. Zajmie to trochę pracy, ale możesz każdą subdomenę jako osobną strefę, aby mieć pewność, że klient może dotknąć tylko własnej strefy.
Nie próbowałem tego, ale gnudip wydaje się być narzędziem typu open source, umożliwiającym dynamiczne aktualizacje bez konieczności zajmowania się uwierzytelnianiem i konfigurowaniem wielu stref na serwerze DNS.
źródło
Jeśli twoje rekordy MX będą takie same dla wszystkich tych rekordów, możesz spróbować użyć DNAME do przekierowania XYZ.mywebservice.com na hosting.mywebservice.com. W obszarze hosting.mywebservice.com dodaj swoje rekordy MX i A.
Muszę powiedzieć, że nigdy nie korzystałem z rekordów DNAME w produkcji, ale możesz przeczytać o nich więcej w RFC2672 .
źródło
Czy RHS klienta.mywebservice.com CNAME ma wpis MX?
Jeśli tak, to serwer poczty użyje tego MX do znalezienia serwera poczty do użycia. Mam nadzieję, że możesz to kontrolować.
źródło
Odpowiedź Michaela Gorsucha jest w dużej mierze poprawna, łańcuch CNAME -> A + MX działa ... głównie . Jednak powoduje pewne złe zachowanie w niektórych MTA. Co znalazłem, uruchamiając to rozwiązanie na przyzwoitą skalę:
Nie jest jeszcze jasne, jak wszechobecne są te problemy (Google / Hotmail / Yahoo / etc wydaje się, że radzą sobie z tym poprawnie), ale z pewnością każą nam szukać lepszych rozwiązań.
źródło
Możliwym i prawidłowym rozwiązaniem byłoby utworzenie podstawowej nazwy hosta dla wszystkich klientów i ustawienie jej na rekord aaaa zewnętrznego serwera WWW i twojego mx, a następnie CNAME wszystkich domen klientów na tę pojedynczą nazwę hosta. W ten sposób będziesz musiał zmienić tylko jeden rekord, gdy zmieni się adres IP zewnętrznej strony.
Jest to jedyny możliwy sposób sprawdzania wartości, ponieważ CNAME jest aliasem pełnego zestawu rekordów, a nie tylko.
źródło
MX i CNAME są całkowicie oddzielnymi rekordami - pierwszy określa serwer pocztowy dla danej domeny, drugi podaje adres domeny. To powinno działać:
źródło