DNS (Domain Name System) paket yapısı, DNS mesajlarıyla iletilen bilgilerin nasıl düzenlendiğini ve iletimi için hangi yapıların kullanıldığını tanımlar. DNS paketleri genellikle UDP (User Datagram Protocol) üzerinde taşınır ve birkaç farklı bölümden oluşur. İşte genel olarak DNS paket yapısının ana bileşenleri:
Header (Başlık)
DNS paketinin başlık kısmı, toplamda 12 bayttan oluşur ve paketin temel bilgilerini içerir.
- ID (Identification): DNS isteği ve yanıtı eşleştirmek için kullanılan bir tanımlayıcıdır.
- QR (Query/Response): İsteğin mi yoksa yanıtın mı olduğunu belirtir (0 = istek, 1 = yanıt).
- Opcode: İsteğin türünü belirtir (sorgu, yanıt, güncelleme gibi).
- AA (Authoritative Answer): Yanıtın yetkili (authority) sunucudan mı geldiğini belirtir.
- TC (Truncated): Yanıtın boyutunun taşıma kapasitesini aştığını belirtir.
- RD (Recursion Desired): İstemci tarafından önbellek sorgusu yapılmasını isteyip istemediğini belirtir.
- RA (Recursion Available): Sunucunun önbellek sorgularına yanıt verebileceğini belirtir.
- Z (Reserved): Kullanılmayan alanlar, genellikle sıfır olarak ayarlanır.
- RCODE (Response Code): Yanıtın durumunu belirtir (örneğin, başarılı, hata, format hatası).
- QDCOUNT (Question Count): Sorgu sayısını belirtir.
- ANCOUNT (Answer Count): Yanıt kayıtlarının sayısını belirtir.
- NSCOUNT (Name Server Count): Yetkili sunucu kayıtlarının sayısını belirtir.
- ARCOUNT (Additional Record Count): Ek kayıtların sayısını belirtir.
Question Section (Soru Bölümü)
Sorgu bölümü, DNS sorgusunu içerir.
- QNAME (Question Name): Sorgulanan alan adını içerir.
- QTYPE (Question Type): Sorgu türünü belirtir (A, AAAA, MX, PTR gibi).
- QCLASS (Question Class): Sorgu sınıfını belirtir (genellikle “IN” yani Internet sınıfıdır).
Answer Section (Yanıt Bölümü)
Yanıt bölümü, DNS sunucularının yanıtlarını içerir.
- NAME (Domain Name): Yanıtın hedef alan adını içerir.
- TYPE (Resource Record Type): Kayıt türünü belirtir (A, AAAA, MX, PTR gibi).
- CLASS (Resource Record Class): Kayıt sınıfını belirtir (genellikle “IN” yani Internet sınıfıdır).
- TTL (Time to Live): Kaydın önbellekte ne kadar süreyle saklanacağını belirtir.
- RDLENGTH (Record Data Length): Kaydın veri kısmının uzunluğunu belirtir.
- RDATA (Record Data): Kayda ait verileri içerir (örneğin, IP adresi).
Authority Section (Yetkilendirme Bölümü)
Yetkili sunucuların bilgilerini içerir.
- NAME, TYPE, CLASS, TTL, RDLENGTH, RDATA: Yukarıda belirtilen yapılar gibi yetkili sunucu bilgilerini içerir.
Additional Section (Ek Bölüm)
İlave bilgileri içeren bölümdür.
- NAME, TYPE, CLASS, TTL, RDLENGTH, RDATA: Diğer kayıtlarla benzer şekilde ilave bilgileri içerir.
Bu yapı, DNS sorgularının ve yanıtlarının nasıl organize edildiğini ve iletim için hangi bilgilerin kullanıldığını gösterir. DNS paketleri genellikle iletişimde kullanılırken, bu yapılar üzerinde değişiklikler yapılabilir veya bazı bölümler boş olabilir, bu durumda belirli alanlar veya kayıtlar eksik olabilir.