rekord TXT

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:

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.

Struktura rekordu
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 


Częścią tej odpowiedzi są dwa rekordy tekstowe, z których pierwszy pokazano poniżej (począwszy od bajtu 54).

                  
           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:

Struktura rekordu
Pole Klątwa Wartość
Nazwa 0xc00c example.com (To jest dyrektywa skoku do wcześniejszej etykiety)
Typ 0x0010 W
Klasa 0x0010 tekst
TTL 0x0000545f 21599 (5 godzin, 59 minut, 59 sekund)
Długość danych 0x000c 12
Długość TXT 0x0b 11
tekst 0x 76 3d 73 70 66 31 20 2d 61 6c 6c v=spf1 -wszystko

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="

Zobacz też