NAT64 + DNS64

NAT hakkında :

Statefull : Genel olarak evde kullanılan modemlerin yaptığı tip NAT methodudur. Geri dönen paketi doğru switch edebilmek için, NAT cihazında dönüşüm listesi tutulur. Bu dönüşüm listesine bakılarak işlem yapılır. Dolayısı ile yedeklilik vb. konularda ana nat cihaz’ı ve yedek nat cihazının döbüşüm tablolarını eş tutmaları gerekir ki uç noktalar arasında iletişim kopmasın.

Stateless : Bu method ile dönüşüm bir algoritmaya dayanılarak yapılır. Dolayısı bir dönüşüm tablosu tutulmasına gerek yoktur. Bu algoritma kullanılarak geri dönen paket otomatik olarak dönüşüme uğrar. Dolayısı ile yedeklilik senaryolarında nat cihazların eşlenik tutulma sorunu ortadan kalkmış olur. Bakınız RFC6145. Buradaki sorun ise, IPV4 veya IPV6 adresinin otomatik olarak dönüştürülmesi ve dolayısı ile IPV6 karşılığı olan IPv4 option’ı’na sahip paketleri çevirebilir olmasıdır (Bir fonksiyone göre dönüşüm yapıldığına göre ve fonksiyon dışında tanımlı bir paket geldiği durumda). Klasik hali ile stateless IPv4 adress soruna çözüm olamaz. Zira bire bir dönüşüm söz konusudur. Fakat MAP methodları ile oldukça verimli bir method haline gelmiştir.

 

NAT64+DNS64 tek başına IPv4 adres tükenmesine bir çözüm üretemez. Bu method DNS temellidir ve DNS kullanmayan uygulamalarda (torrent vb) erişim sorunları yaratır. Bunun yerine dual-stack, IPv4 için NAT444 ve kullanımı ile NAT cihazının üzerindeki session sayısını zamanla azaltacakdır. IPv6 kullanımı artıkça trafik native IPv6 devir olacakdır. Ayrıca dual-stack kullanımı ile kullanıcı trafiğinin bir çoğunun sosyal paylaşım siteleri olduğu düşünülür ise bu trafik için NAT session’ı kullanılmıyacakdır. Dolayısı ile NAT64+DNS64 IPv6 only networkler için kullanışlıdır.

ASR 1000  NAT64 :

nat64 settings fragmentation header disable yapılmadan , tüm paketleri fragment header ekliyor ve bu düşük size’lı paketlerde ping6 kullanırken, özellik ile default ping6 sorun yaratıyor.

 

Testlerde kullanılmak üzere ipv4 adresini nat64 prefix’i kullanarak ipv6 adresine çeviren perl programı;

#!/usr/bin/perl

print “NAT64 prefix must be /96 \n”;

 

$ipv4=’8.8.8.8′;
$nat64prefix=’2001:db8:cafe::/96′;

($nat64prefix,$mask)=split(/\//,$nat64prefix);

@UserClasses = split(/\./,$ipv4);
($UserClassA,$UserClassB,$UserClassC,$UserClassD) = @UserClasses;
$binUserClassA = sprintf(“%08b”,$UserClassA);
$binUserClassB = sprintf(“%08b”,$UserClassB);
$binUserClassC = sprintf(“%08b”,$UserClassC);
$binUserClassD = sprintf(“%08b”,$UserClassD);
$binipv4part1=$binUserClassA.$binUserClassB;
$binipv4part2=$binUserClassC.$binUserClassD;
$hexpart1 = sprintf(‘%X’, oct(“0b$binipv4part1”));
$hexpart2 = sprintf(‘%X’, oct(“0b$binipv4part2”));
print “$nat64prefix$hexpart1:$hexpart2”;

Leave a Reply

Your email address will not be published.