rekord TXT
Zestaw protokołów internetowych |
---|
Warstwa aplikacji |
Warstwa transportowa |
warstwa internetowa |
Warstwa łącza |
Rekord TXT (skrót od text record ) to typ rekordu zasobu w systemie nazw domen (DNS) używany do zapewnienia możliwości powiązania dowolnego tekstu z hostem lub inną nazwą, na przykład czytelną dla człowieka informacją o serwerze, sieci, centrum danych lub inne informacje księgowe.
Jest również często używany w bardziej uporządkowany sposób do zapisywania w DNS niewielkich ilości danych do odczytu maszynowego.
Tło
Z domeną może być powiązanych wiele rekordów TXT, pod warunkiem, że implementacja serwera DNS to obsługuje. Każdy rekord może z kolei zawierać jeden lub więcej ciągów znaków. Tradycyjnie te pola tekstowe były używane do różnych niestandardowych zastosowań, takich jak pełna nazwa firmy lub organizacji lub adres hosta.
W 1993 RFC 1464 zaproponował proste podejście do przechowywania atrybutów i ich wartości w tych polach tekstowych. Jest to obecnie szeroko stosowane w:
- Weryfikacja własności domeny
- Implementacja Sender Policy Framework (SPF)
- DomainKeys Identified Mail (DKIM) do weryfikacji nadawcy wiadomości e-mail
- Sieć o zerowej konfiguracji Wykrywanie usług oparte na DNS
- Oparte na domenie zasady uwierzytelniania wiadomości, raportowania i zgodności ( DMARC ).
Używanie rekordów TXT do przechowywania danych do różnych celów nie jest pozbawione problemów. Protokół DNS określa, że gdy klient wysyła zapytanie o określony typ rekordu (np. TXT) dla określonej nazwy domeny (np. example.com), wszystkie rekordy tego typu muszą zostać zwrócone w tej samej wiadomości DNS. Może to prowadzić do dużych transakcji z przesyłaniem wielu „niepotrzebnych” informacji i/lub niepewności co do tego, którego rekordu TXT użyć. Można to obejść na dwa sposoby: określić prefiks nazwy domeny, który ma być używany podczas używania rekordów TXT w określonym celu (np. _klucz_domeny.example.com – w przypadku DKIM) lub utworzyć całkowicie nowy typ rekordu. To pierwsze jest „łatwe”, ponieważ nie wymaga żadnych zmian w DNS. Ten ostatni jest czasami uważany za „czystszy”, ponieważ lepiej pasuje do projektu modelu bazy danych DNS. W przeszłości często unikano tworzenia nowych typów rekordów, ponieważ była to skomplikowana procedura w programie IETF . Niechęć utrzymuje się u niektórych osób, mimo że proces został zastąpiony znacznie lżejszym i szybszym.
Format
Struktura rekordu TXT jest określona w dokumencie RFC 1035 w następujący sposób. Należy zauważyć, że specyfikacja milczy na temat kodowania znaków ciągu tekstowego. Wyraźnie stwierdza, że interpretacja ciągu zależy od kontekstu i że dane są traktowane jako binarne w DNS. Późniejsze specyfikacje (np. RFC 6763 – DNS używany do wykrywania usług) mogą wymagać użycia określonych kodowań do określonych celów.
Sekcja RDATA może zawierać wiele następujących po sobie wystąpień (długość TXT + TXT). Długość danych to długość ich wszystkich łącznie.
Pole | Typ | Opis |
---|---|---|
Nazwa | Sekwencja etykiet | Nazwa domeny zakodowana jako sekwencja etykiet. |
Typ | 2-bajtowa liczba całkowita. | Typ rekordu. W tym przypadku będzie to 0x0010, ponieważ typem jest TXT |
Klasa | 2-bajtowa liczba całkowita | Klasa. |
TTL | 4-bajtowa liczba całkowita | Time-To-Live, tj. jak długo rekord może być przechowywany w pamięci podręcznej, zanim zostanie ponownie wysłany. |
Długość danych | 2-bajtowa liczba całkowita | Długość danych specyficznych dla typu rekordu. |
Długość TXT | 1-bajtowa liczba całkowita | Długość ciągu TXT |
tekst | Strunowy | Ciąg znaków |
Przykład odpowiedzi TXT z example.com
|
||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
To jest kod szesnastkowy zwracany jako część odpowiedzi DNS z example.com na zapytanie o rekordy TXT.
0000 34 48 81 a0 00 01 00 02 00 00 00 01 07 65 78 61 0010 6d 70 6c 65 03 63 6f 6d 00 00 10 00 01 c0 0c 00 0020 10 00 01 00 00 54 5f 00 0c 0b 76 3d 73 70
66 31 0030 20 2d 61 6c 6c c0 0c 00 10 00 01 00 00 54 5f 00 0040 21 20 38 6a 35 6e 66 71 6c 64 32 30 7a 70 63 79 0050 72 38 78 6a 77 30 79 64 63 66 71 39
72 6b 38 68 0060 67 6d 00 00 29 02 00 00 00 00 00 00 00
0000 c0 0c 00 10 00 01 00 00 54 5f 00 0c 0b 76 3d 73 0010 70 66 31 20 2d 61 6c 6c
To dekoduje w następujący sposób:
|
Organizacje mogą używać ciągu TXT jako tekstu nieustrukturyzowanego w dowolny sposób, na przykład:
przyklad.com. IN TXT „Ta nazwa domeny jest zarezerwowana do użytku w dokumentacji”
RFC 1464 definiuje format strukturalny, którego można użyć do zdefiniowania atrybutów i ich wartości w pojedynczym rekordzie, tak jak w poniższych przykładach:
host.widgets.com. W TXT „printer=lpr5” sam.widgets.com. IN TXT „ulubiony napój=sok pomarańczowy”
W praktyce usługi korzystające z rekordów TXT często nie są zgodne z tym RFC, ale zamiast tego mają swój własny, specyficzny format.
Przykład użycia
Ciąg znaków z rekordu TXT używanego dla SPF :
"v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.123 ip6:2620:0:860::/46 a -all"
Przykład użycia dla DMARC:
"v=DMARC1;p=brak;sp=kwarantanna;pct=100;rua=mailto:[email protected];"
Użyj do weryfikacji witryny:
„google-site-verification=6P08Ow5E-8Q0m6vQ7FMAqAYIDprkVV8fUf_7hZ4Qvc8”
Użyj dla niestandardowej usługi e-mail:
_amazonki.example.com. W TXT "pmBGN/7MjnfhTKUZ06Enqq1PeGUaOkw8lGhcfwefcHU="