IPv6 kullanan bir istemci, yalnız IPv4 adresi bulunan bir sunucuya doğrudan IPv6 paketi gönderemez. NAT64 ve DNS64, bu iki adres ailesi arasındaki uyumsuzluğu bağlantının farklı aşamalarında ele alır.

DNS64 hedef adresi üretir, NAT64 trafiği çevirir. DNS64, yalnız IPv4 adresi bulunan hedef için NAT64 çeviri prefix'ini kullanarak bir IPv6 adresi oluşturur; NAT64 ise bu adrese gönderilen IPv6 trafiğini IPv4 hizmetine ulaşacak biçimde dönüştürür. DNS64 ad çözümleme aşamasında, NAT64 paket iletimi aşamasında çalışır.

Hedefin IPv6 adresini belirten gerçek bir AAAA kaydı varsa istemci genellikle bu adrese bağlanmayı dener ve sentezleme gerekmez. Kaydın bulunması, hedefin erişilebilir olduğunu kanıtlamaz. NAT64 ile DNS64 her bağlantıda devreye girmez; IPv6 istemcisinden IPv4 hizmetine erişmek gerektiğinde birbirini tamamlar.

DNS64 ve NAT64'ün Ayrı Çalışma Aşamaları

DNS64 ve NAT64 aynı bağlantıyı kurmak için birlikte çalışsa da birbirinin yerine geçmez. Biri istemciye kullanılabilir bir hedef adres sunar, diğeri bu hedefe giden gerçek ağ trafiğini iki protokol ailesi arasında dönüştürür.

DNS64 ile Ad Çözümleme

Bir uygulama alan adı için IPv6 adresi istediğinde DNS64 özellikli recursive resolver (özyinelemeli DNS çözümleyicisi) önce gerçek bir AAAA kaydı arar. DNS64, bu adrese bağlantı kurup erişilebilirlik testi yapmaz. Özel olarak dışlanan adres aralıkları dışında bir AAAA kaydı varsa normal DNS yanıtını iletir; böyle bir AAAA kaydı yoksa hedefin IPv4 adresini belirten A kaydından yararlanır. A kaydı varsa recursive resolver, IPv4 adresini yapılandırılmış NAT64 çeviri prefix'i içinde gösteren sentezlenmiş bir AAAA yanıtı oluşturabilir.

Bu işlem yetkili DNS bölgesindeki kayıtları değiştirmez. Sentezlenen yanıt yalnız DNS64 özellikli recursive resolver üzerinden sorgu yapan istemciye verilir ve başka bir ağdaki recursive resolver'da aynı biçimde görünmeyebilir.

Durumlu NAT64 ile Paket Çevirisi

Durumlu NAT64, trafiği çevirmek için istemciye ve bağlantıya ait eşlemeleri saklar. İstemci sentezlenmiş IPv6 adresine bağlandığında, ağdaki rota paketleri NAT64 çeviricisine ulaştırır. Çevirici, IPv6 hedefindeki gömülü IPv4 adresini çıkarır ve paketi IPv4 biçimine dönüştürür. TCP ve UDP trafiğinde adreslerle portları eşler; kontrol mesajlarında kullanılan ICMP sorgularını ise adres ve sorgu tanımlayıcısıyla izler. Çevrilen paket IPv4 sunucusuna gönderilir.

NAT64, sunucudan gelen yanıtı daha önce kaydettiği eşlemeyle ilişkilendirir ve IPv6 istemcisine göndermek üzere çevirir. İstemci IPv6 ile konuştuğunu, sunucu ise IPv4 bağlantısı aldığını görür; aradaki protokol dönüşümünü NAT64 gerçekleştirir.

IPv6 İstemcisinden IPv4 Sunucusuna Bağlantı Akışı

Alan adıyla başlatılan tipik bağlantı şu sırayla kurulur:

  1. IPv6 kullanan istemci, hedef alan adı için AAAA kaydı ister.
  2. DNS64 özellikli recursive resolver, dışlama kuralları dışında kalan gerçek bir AAAA kaydı bulamazsa A kaydını sorgular.
  3. Recursive resolver, A kaydındaki IPv4 adresini NAT64 çeviri prefix'i içinde tanımlı kurala göre gösteren sentezlenmiş bir AAAA yanıtı döndürür.
  4. İstemci, aldığı IPv6 adresine normal bir IPv6 bağlantısı başlatır.
  5. Ağ yönlendirmesi paketi ilgili çeviri prefix'ini kullanan NAT64 çeviricisine taşır; çevirici trafiği IPv4 sunucusuna aktarır.
  6. NAT64, IPv4 sunucusunun yanıtını ters yönde çevirip IPv6 istemcisine ulaştırır.

Bu sırada DNS64 veri paketlerini çevirmez, NAT64 de alan adını çözmez. Başarılı erişim için DNS64'ün AAAA sentezinde kullandığı prefix ve adres oluşturma kuralı, NAT64 çeviricisinin hedef IPv6 adresinden IPv4 adresini çıkarırken kullandığı prefix ve kuralla aynı olmalı; bu prefix'e giden trafik de çeviriciye yönlendirilmelidir.

Gerçek ve Sentezlenmiş AAAA Yanıtları Arasındaki Farklar

Gerçek AAAA kaydı, alan adı için bir IPv6 adresi yayımlandığını gösterir; bu adrese erişimin çalıştığını kanıtlamaz. Sentezlenmiş AAAA yanıtı ise IPv4 hedefine giden yolun NAT64 üzerinden kurulabilmesi için çözümleme sırasında oluşturulan bir IPv6 gösterimidir.

Bir alan adında hem A hem de dışlanmamış gerçek AAAA kaydı varsa DNS64 normalde gerçek AAAA yanıtını değiştirmeden iletir. Böylece trafik IPv4'e çevrilmeden uçtan uca IPv6 yolunu kullanabilir; NAT64 yalnız IPv4 tarafına geçiş gerektiğinde devreye girer. Hedef için ne kullanılacak AAAA ne de A kaydı varsa DNS64 bağlantı adresi üretemez.

NAT64 Prefix'inin Bağlantıdaki Rolü

NAT64 çeviri prefix'i, sentezlenen IPv6 adresinin çeviri hizmetine ait olduğunu gösterir ve gömülü IPv4 adresinin IPv6 adresi içindeki yerini belirler. IPv4 hedef adresi, seçilen prefix uzunluğuna uygun kuralla IPv6 adresinin içine yerleştirilir; NAT64 çeviricisi de paketi aldığında ilgili IPv4 bilgisini buradan çıkarır.

Her ağ aynı çeviri prefix'ini kullanmak zorunda değildir. Ağ işletmecisi, genel IPv4 adreslerine erişim için standarttaki 64:ff9b::/96 prefix'ini veya ağa özel bir prefix'i seçip yönlendirmeyi buna göre kurabilir. 64:ff9b::/96, özel IPv4 adreslerini temsil etmek için kullanılamaz; bu tür hedeflerde uygun bir ağa özel prefix gerekir. Bu nedenle bir ağda sentezlenen adres, başka bir ağda her zaman doğrudan çalışmaz.

NAT64 ve DNS64 ile Hangi Uygulamalar Sorun Yaşayabilir?

Alan adı kullanan ve ağ katmanındaki çeviriyle uyumlu uygulamalar, çoğu zaman ek ayar gerektirmeden IPv4 hizmetlerine erişebilir. Ancak bütün IPv4 kullanım biçimleri yalnız DNS64 ve NAT64 ile sorunsuz çalışmaz.

  • IPv4 adresinin doğrudan yazılması: Bir uygulama alan adı yerine doğrudan IPv4 adresi kullanırsa DNS64 devreye giremez; uygun IPv6 hedefi veya IPv4 uyumluluğu için ek destek gerekir.
  • Protokole gömülü IP adresleri: NAT64 ağ katmanındaki IP paketini çevirir; uygulama verisinin içindeki IPv4 adreslerinin de dönüştürülmesi için ek destek gerekebilir.
  • Yalnız IPv4 soketi açan uygulamalar: Bu yazılımlar IPv6 hedefini kullanamadığı için erişim başarısız olabilir.
  • DNS64 desteği olmayan recursive resolver: İstemci böyle bir recursive resolver kullanırsa sentezlenmiş AAAA yanıtı alamayabilir.
  • İstemcide DNSSEC doğrulaması: DNSSEC, DNS verisinin imzalarla doğrulanmasını sağlar. Doğrulama yapan DNS64 özellikli bir recursive resolver, yetkili DNS verisini doğruladıktan sonra sentezlenmiş bir AAAA yanıtı oluşturabilir. DNSSEC doğrulamasını doğrudan istemci yapıyorsa bu yeni yanıt yetkili bölgenin imzasıyla doğrulanamaz; istemci kendi doğrulamasını sürdürecekse sentezlemeyi de desteklemelidir. Alternatif olarak güvenilir bağlantı kurduğu DNS64 hizmetine doğrulamayı devredebilir.

Bağlantı ve DNS Sonuçları Nasıl Yorumlanır?

DNS64 denetiminde, kullandığınız ağın DNS sunucusundan alınan AAAA yanıtı ile genel DNS yanıtını ayrı değerlendirin. Yalnız IPv4 hizmeti sunan bir web sunucusunun gördüğü kaynak adres, NAT64 çeviricisinin IPv4 adresi olabilir; bu, istemcinin çeviriciye kadar IPv4 kullandığı anlamına gelmez.

Ancak genel bir AAAA sorgusunda görülen sonuç, belirli bir NAT64 ağındaki DNS64 yanıtıyla aynı olmak zorunda değildir. Sentezleme recursive resolver'a ve ağa bağlıdır. Yalnız AAAA kaydı görmek, NAT64 paket çevirisinin çalıştığını kanıtlamaz. Genel sorguda AAAA kaydı görememek de DNS64 kullanılan ağda erişimin olmayacağını göstermez.