Mamy problem z utworzeniem długiego rekordu TXT dla klucza DKIM w interfejsie internetowym na naszym serwerze.
Każda linia może zaakceptować tylko 256 znaków.
Próbowaliśmy wielu linii, a następnie próbowaliśmy dodawać ("
na początku i ")
po ostatnim, jak sugerują niektórzy. Żadne nie działa.
Następnie staraliśmy dokonywania cname do rekordu na innym dostawcą usług hostingowych, gdzie można dokonać DKIM rekordy TXT.
Ale teraz interfejs sieciowy skarży się na nielegalną nazwę w CNAME
rejestrze.
mail._domainkey.example.com TXT
jest ok
mail._domainkey.example.com CNAME
nie jest ok
mail.domainkey.example.com CNAME
jest ok, ale nie to, czego chcemy.
Czy interfejs sieciowy jest po prostu zdeterminowany, aby doprowadzić nas do szaleństwa, czy też jest naprawdę „nielegalne”, aby mieć podkreślenia CNAME
?
źródło
Odpowiedzi:
Tak, nazwy DNS (obejmuje to również A / AAAA) mogą zawierać tylko
[0-9], [a-z], -
, dlatego podkreślenie jest niepoprawne. Pamiętaj, że rekord TXT nie jest nazwą hosta i nie dotyczy to ograniczenie. I ostatnia edycja:-
nie może być również użyty jako pierwszy znak, więcmail.-domainkey.our.dom
nie będzie poprawny.https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_hostnames
Ostateczna edycja: częściowo się myliłem. Gdy CNAME jest używana jako nazwa hosta, obowiązują powyższe ograniczenia. Wygląda na to, że CNAME nie jest uważany za nazwę hosta w kontekście DKIM iw takim przypadku
_
powinien być prawidłową częścią wpisu CNAME. Zobacz /programming/13650233/underscore-in-cname-required-by-ses-not-allowed-by-registrar/26692491#26692491źródło
_foo CNAME _bar
jest całkowicie uzasadniony, możesz go przetestowaćnamed-checkzone
.Wszelkie prawidłowe znaki są dozwolone w DNS. Zobacz https://tools.ietf.org/html/rfc2181#section-11
„Sam DNS nakłada tylko jedno ograniczenie na poszczególne etykiety, które można wykorzystać do identyfikacji rekordów zasobów. To jedno ograniczenie dotyczy długości etykiety i pełnej nazwy. Długość dowolnej etykiety jest ograniczona od 1 do 63 oktetów. „
Klient musi zweryfikować wartości nazw. Np. Rekord MX może zawierać wartość „Alice”, ale po wyszukaniu wartość ta powinna zostać odrzucona, ponieważ „Alice” nie jest prawidłowym adresem e-mail.
W takim przypadku wygląda na to, że Twój host „weryfikuje” dane wejściowe i powinien być w stanie wprowadzić je ręcznie.
źródło
_
cokolwiek innego, co lubisz. Ale w przypadku niektórych rekordów możesz używać tylko nazw hostów, a nie nazw domen. Nazwy hostów to tylko litery, cyfry i łączniki, nic więcej. Na przykład właścicielem rekorduA
lubAAAA
rekordu jest nazwa hosta, a nie nazwa domeny. RDATA (cel)NS
rekordu jest również nazwą hosta, a nie nazwą domeny.RFC 1034: Etykiety muszą być zgodne z regułami dla nazw hostów ARPANET. Muszą zaczynać się od litery, kończyć literą lub cyfrą i mieć jako znaki wewnętrzne tylko litery, cyfry i łączniki. Istnieją również pewne ograniczenia dotyczące długości. Etykiety muszą mieć maksymalnie 63 znaki.
źródło
_
.3com.com
na przykład ta zasada została złagodzona, patrz tools.ietf.org/html/rfc1123#page-13 „Jeden aspekt składni nazwy hosta zostaje zmieniony: ograniczenie pierwszego znaku jest zrelaksowany, aby zezwolić na literę lub cyfrę. ”esp_245537
jest używana jako nazwa hosta, należy odrzucić aktualizację DNS, ponieważ nie jest to poprawna nazwa hosta. Jeśli jest to używane jako nazwa domeny, aktualizacja DNS powinna się powieść (w przeciwnym razie jest to błąd), ponieważ jest to poprawna etykieta DNS.Odpowiedź Svena z edycją jest już słuszna, ale wystarczy sformułować rzeczy bezpośrednio.
TL; DR tak podkreślenie jest ważne w
CNAME
zapisie po obu stronach, przeczytaj poniżej, dlaczego.RFC 1034 i inne definiują rekordy na podstawie „nazw domen”, które są etykietami z dowolnym znakiem, a więc także
_
.Jednak niektóre rekordy mają bardziej rygorystyczne reguły dla nazwy właściciela i / lub danych zasobów (RDATA). Akceptowana będzie tylko nazwa hosta, a zasady są teraz (w przeszłości były luźniejsze, gdy nazwa hosta nie mogła zaczynać się cyfrą), że możesz użyć dowolnej litery ASCII (bez rozróżniania wielkości liter), dowolnych cyfr ASCII i łączników , plus dodatkowe reguły pozycji: brak łącznika na początku i na końcu oraz brak podwójnych łączników na pozycjach 3 i 4 (z powodu „rezerwacji” dla domen IDN, które są w formie,
xn--
która jest dozwolona tylko w przypadku).Na przykład nazwa właściciela
A
lubAAAA
rekordu jest nazwą hosta, a nie nazwą domeny.test.example.com A 192.0.2.1
Jest więc ważne, dlaczego nie wszystkie z nich są:Program jest łatwy do testowania
named-checkzone
(częśćbind
oprogramowania serwera nazw, ale można go używać i instalować osobno, a inne serwery nazw mogą mieć podobne narzędzia do sprawdzania i prawdopodobnie są do tego również interfejsy online), wystarczy umieścić rekordy w pliku i uruchomić to na:(liczba przed
IN
jest TTL, nie ma to związku z naszym problemem tutaj, ale wystarczyło tylko przekazać poprawność składniową rekordu).W przypadku innych rekordów jest odwrotnie:
NS
nie ma żadnych ograniczeń dotyczących właściciela, ale ograniczenia dotyczące „celu”, czyli danych. Dane mogą być tylko nazwą hosta, a nie nazwą domeny, ponieważ musisz wskazać autorytatywne serwery nazw, które są fizycznymi hostami, które odpowiadają na zapytania DNS.Teraz o
CNAME
, tutaj są odpowiednie cytaty z RFC 1034, w sekcji 3.6:Tak więc zarówno właściciel
CNAME
(po lewej), jak i dołączone do niego dane zasobu, jego miejsce docelowe / cel (po prawej) to nazwy domen, a nie tylko nazwy hostów. Zasadniczo dowolna postać, więc włączenie_
jest dozwolone po obu stronach.Ponownie, łatwe do przetestowania za pomocą
named-checkzone
:Żadnych błędów w
CNAME
(inne błędy są spodziewane, ponieważ w mojej fałszywej strefie nie umieściłem żadnychSOA
lubNS
zapisy takie jak w prawdziwej strefie)źródło