IPv6 – IPv4 entegrasyonu

Yeni nesil İnternet Protokolü sürümü olan IPv6’ya bir anda geçmek ne yazıkki mümkün olmayacaktır. Hatta aslında iki IP sürümünün uzun süre birlikte kullanılması söz konusudur. Bu sebeple bu iki sürümün aynı anda uyumlu bir şekilde kullanılması için teknikler geliştirilmiştir. Bu teknikler üçe ayrılabilir.

  • Dual Stack: Bir istemcinin hem IPv4 hem IPv6 adresine sahip olması durumudur. Bir kurumdaki tüm istemcilerin dual stack olması durumunda zaten yerel olarak IPv6 tam anlamıyla uygulanıyor ve IPv4’le beraber kullanılıyor demektir.
  • Tünelleme: Kurumdaki cihazlar arasında dual stack olmayanlar yani sadece IPv4 adresi olanlar da varsa dual stack cihazlar arasında tünelleme yapmak gerekir. Tünellemede IPv6 başlığı bir IPv4 başlığı içinde yer alır.
  • NAT-PT (NAT – Protocol Transition): Farklı IP versiyonları kullananan iki cihazın haberleşmesi için kullanılır. NAT yapan cihaz IPv6-istemciye giden paketler için bir IPv4, IPv4-istemciye giden paketler için de bir IPv6 adresi dinler. IP versiyonunun değiştiği noktada cihaz da IP başlığını değiştirir. Yani NAT yapmış olur.


IPv6 tünelleri iki kategoriye ayrılabilir: statik point-to-point ve dinamik multipoint tüneller

Statik point-to-point tünelleme:

Cisco IOS’ta oluşturulan tüneller varsayılanda GRE (Generic Route Encapsulation) modundadır. IPv6 tünelleme için bu tüneller kullanılabileceği gibi elle yapılandırılmış tüneller de kullanılabilir (bu tünellerin standart bir adı yoktur, bu dokümanda MCT (Manually Configured Tunnel) olarak nitelendirilecektir). Aralarındaki fark basittir: GRE tünelde pakete bir de 4 byte’lık GRE başlığı eklenir. Bu başlıkta belirtilmek suretiyle her türlü 3. katman protokolü taşınabilir. MCT ise sadece IPv4 üzerinden IPv6 taşımak için tasarlanmış bir standarttır. Fazladan bir başlığı olmadığı için GRE’ye göre biraz daha az overhead’e sebep olur. Bu nedenle GRE’de taşınan protokolün (IPv6) MTU’su 1476, MCT’de ise 1480’dir.

IPv6 tünellemenin mantığı şu şekildedir: İki dual stack router arasında tünel oluşturulur. Bu tünele her iki tarafta da eşleşen kaynak ve hedef IPv4 interface’leri/adresleri tanımlanır. Bu noktada router’da bir loopback interface oluşturmak sürekli up oldukları için tercih edilen bir yöntemdir. Dikkat edilmesi gereken nokta bir router’da oluşturulan loopback’in IPv4 adresinin karşı router’ın IPv4 routing tablosunda mutlaka bulunmasıdır. Son olarak tünel interface’inin kendisine IPv6 adresi verilir. Sonrasında yapılacak IPv6 routing ile iki IPv6 network’ü IPv4 üzerinden haberleşebilecektir.

Yapılandırma:

R1(config)#ipv6 unicast-routing
R1(config)#interface loopback 1
R1(config-if)#ip address <keyfi_adres> <subnetmask>
R1(config-if)#interface tunnel 1
R1(config-if)#tunnel source loopback 1
R1(config-if)#tunnel destination <karşı_router’ın_loopback_adresi>
R1(config-if)#ipv6 address <global_unicast_adres>/<length>

Yukardaki yapılandırma varsayılan tünel modu GRE olduğundan GRE tünelleme içindir. MCT için tek yapılması gereken aşağıdaki komutu eklemektir:

R1(config-if)#tunnel mode ipv6ip

MCT’den GRE’ye geçmek içinse aşağıdaki iki komuttan biri kullanılabilir:

R1(config-if)#tunnel mode gre ip

R1(config-if)#no tunnel mode ipv6ip

Bu yapılandırmaya ek olarak istenilen IPv6 routing yapıldığında ve eşleşen yapılandırma karşı router’da da uygulandığında yapılandırma tamamlanmış olacaktır.

MCT tünellerinde link local adres normalden farklı bir şekilde türetilir. FE80::/96 adresinin sonuna tunnel source olarak belirtilen interface’in IPv4 adresinin hexadecimal hali eklenir. Yani FE80::XXXX:XXXX şeklindedir.

Dinamik multipoint tünelleme

Dinamik tünellemede amaç bir tunnel destination tanımlamaktansa router’ın encapsulation yaptıktan sonra paketi hangi IPv4 adresine göndereceğine dinamik olarak karar vermesidir. Bunun için tünel interface’lerindeki IPv6 adresleri IPv4 adreslerinden türetilir.

Avantajları:

  • Router IPv6 adresine bakarak paketi hangi IPv4 adresine göndereceğine karar verebilir.
  • Bir istemcinin de tünel ucu gibi davranmasına izin verebilir.
  • IPv6 adres bloğunun seçiminde bazı kısıtlamalara giderek topolojiye yeni bir router eklenmesi durumunda diğer router’larda yapılandırma değişikliğine gerek kalmayabilir.

Dezavantajları:

  • Bu tüneller paket başına daha fazla CPU harcanmasını gerektirir. Bu nedenle genelde sık oluşmayan IPv6 trafiği durumlarında kullanılır.
  • IPv6 IGP (Interior Gateway Protocol)’lerini geçirmez.

En sık kullanılan tünelleme teknolojileri Otomatik 6to4 tünelleme ve ISATAP tünellemedir.

Otomatik 6to4 tünelleme

Otomatik tünelleme mantığı ve yapılandırması şirketin LAN’larında zaten bir global unicast adresleme kullanıp kullanmamasına göre farklılık gösterir. Eğer şirketin IPv6 İnternet bağlantısına ihtiyaç duymadığı düşünülüyorsa global unicast address bloğundan ayrılan özel 2002::/16 subneti hem LAN hem de tünel interface’lerinde kullanılabilir. Böylece sadece topolojiye yeni eklenen router’da yapılandırma değişikliği gerekecektir. Aşağıda örnek bir topoloji görülmektedir.

Bu durumda tünellemenin mantığı şu şekildedir:

  • Belirlenen bir IPv4 interface’in adresi hexadecimal hale dönüştürülerek 2002::/16 adresine eklenir. Yine bu noktada sürekli up oldukları için loopback interface’leri tercih edilmektedir ve bu interface’lerin karşı router’lar tarafından bilinmesi gerekmektedir (static routing veya multiprotocol BGP ile).
  • Elde edilen /48’lik adresin kalan 16 bitini de subnetting için kullanarak her bir router için iki farklı IPv6 network’ü (biri router’ın LAN’ında biri de tünel interface’inde kullanılmak üzere) elde edilir. Normal tünellemenin aksine burda her router’ın tünel interface’i aslında farklı IPv6 network’lerinde bulunmaktadır. Bu nedenle tünel interface’inde destination IP tanımlanmaz.
  • Tünelin modu 6to4 olarak tanımlanır.
  • Son olarak dinamik multipoint tüneller IPv6 IGP’leri desteklemediğinden 6to4 encapsulation’ının tetiklenmesi için 2002::/16 network’üne giden paketleri tünel interface’inden gönderen bir statik rota tanımlanır.

Böylece router’da connected olmayan fakat 2002 ile başlayan (yani karşı router’da olan) bir IPv6 adresine gidecek olan bir paket statik rota ile tünel interface’inden gönderilir. Bu ise encapsulation’ı tetikler ve bir IPv4 başlığı oluşturulması gerekir. İşte bu başlıktaki hedef IPv4 adresi bilgisi IPv6 adresinin ikinci ve üçüncü quartet’lerindeki hexadecimal karakterler decimal’e dönüştürülerek elde edilir.

Yapılandırma:

R1(config)#ipv6 unicast-routing
R1(config)#interface loopback 1
R1(config-if)#ip address <A.B.C.D> <subnetmask>
R1(config-if)#interface tunnel 1
R1(config-if)#tunnel source loopback 1
R1(config-if)#ipv6 address 2002:X:X::/128
R1(config-if)#tunnel mode ipv6ip 6to4
R1(config-if)#interface fastethernet 0/0
R1(config-if)#ipv6 address 2002:X:X:S:H:H:H:H/64
R1(config)#ipv6 route 2002::/16 tunnel 1

IPv6 adreslerindeki X:X kısmı IPv4 adresinin yani A.B.C.D’nin hexadecimal halini ifade etmektedir. S router’ın LAN’ı için oluşturulan subnetini temsil etmektedir. H’ler ise host kısmı anlamındadır. Dikkat edilirse tünel interface’e verilen IPv6 adresinde normalden farklı olarak sadece ilk üç quartet tanımlanmakta, kalanı sıfır kabul edilip prefix length de128 olarak verilmektedir.

Eğer şirketin IPv6 İnternet bağlantısı olması isteniyorsa tünel interface’lerinin IPv6 adresi 2002::/16 bloğundan aynı şekilde verilir. Fakat router’ların LAN subnet’leri global unicast address kullanıyor olmalıdır. Dolayısıyla 2002::/16 network’ünü tanımlayan tek bir statik rota İletişimin gerçekleşmesi için yeterli olmaz. Ek olarak her router’da her karşı router için aşağıdaki statik routing’in yapılması gerekmektedir (Alternatif olarak multiprotocol BGP de kullanılabilir) :

R1(config)#ipv6 route <karşı_router’ın_LAN’ının_adresi>/<length> tunnel 1 2002:X:X::

Bu durumda hedefi karşı bir router’ın LAN’ı olan bir paket geldiğinde ilk eşleşme bu yazılan satırda bulunur. 2002:X:X:: adresine gitmek içinse 2002::/16 için tanımlanan statik rota kullanılır. Bu rotada next-hop address bulunmamaktadır ama next-hop olarak 2002:X:X:: kullanılır.Bu statik rotanın topolojiye yeni eklenen her router için her router’da tanımlanması gerekmektedir. Aşağıda örnek bir topoloji görülmektedir.

ISATAP (Intra Site Automatic Tunnel Addressing Protocol) tünelleme

ISATAP Otomatik 6to4 tünellemeye çok benzer şekilde çalışır. Farklılıkları şunlardır:

  • Tünel modu isatap’tır.
  • Tüneller için ayrılan bir IPv6 bloğu yoktur. Kullanılan IPv6 adresleri global unicast’tir.
  • Tünelin her ucu aynı network’tedir.
  • Tünel interface’lerinin IPv6 adresleri modified EUI-64 mekanizmasıyla türetilir. 5. ve 6. quartet’ler yerine 0000:5EFE eklenir. Hexadecimal hale dönüştürülen IPv4 adresleri ise tünel interface’inin IPv6 adreslerinin 7. ve 8. quartetlerini oluşturur. Yani tünel IPv6 adresleri K:L:M:N:0:5EFE:X:X yapısındadır.
  • Her router’a ortak girilmesi gereken bir statik IPv6 adresi (2002::/16 gibi) yoktur.

Aşağıda örnek bir topoloji görülmektedir.

Yapılandırma:

R1(config)#ipv6 unicast-routing
R1(config)#interface loopback 1
R1(config-if)#ip address <A.B.C.D> <subnetmask>
R1(config-if)#interface tunnel 1
R1(config-if)#tunnel source loopback 1
R1(config-if)#ipv6 address <prefix>/64 eui-64
R1(config-if)#tunnel mode ipv6ip isatap
R1(config-if)#interface fastethernet 0/0
R1(config-if)#ipv6 address <global_unicast_address>/<length>
R1(config)#ipv6 route <karşı_router’ın_LAN’ının_adresi>/<length> tunnel 1 <karşı_router’ın_tünel adresi>

Son statik routing satırı her router’da her router için girilmelidir.

“IPv6 – IPv4 entegrasyonu” için 11 cevap

  1. Merhaba,

    Değerli bilgi için teşekkür ederim, kısa bir sorum olacak,
    Hali hazırda BGP ile kullandığımız IPv4 adreslerimiz var ve IPv6 adreslerimizi de aldık
    Sanırım ikisinide aynı anda kullanmanın en verimli şekli dual stack, peki dual stack bir yapı kullandığımızda BGP anonsunu IPv6 üzerinde mi yoksa IPv4 üzerinden mi çıkmamız gerekir?
    Teşekkür ederim

    1. Merhaba

      IPv6 ve IPv4 için ayrı ayrı BGP komşulukları kurulması ve anons yapılması gerekiyor. Bir protokol üzerinden diğerinin anonsu yapılamıyor.

  2. Tekrar merhaba,
    BGP anonsu aldığımız halde, gönderdiğimiz anonsları uzak routerlardan göremiyoruz, telekom anons edildiğini gördüğünü ifade ediyor, deneyimleriniz doğrultusunda bu konuda bilgi verebilir misiniz?

    sh bgp ipv6 unicast neighbors 2A01:358:4100:2::1 advertised-routes
    BGP table version is 11288, local router ID is 212.156.68.94
    Status codes: s suppressed, d damped, h history, * valid, > best, i – internal,
    r RIB-failure, S Stale
    Origin codes: i – IGP, e – EGP, ? – incomplete

    Network Next Hop Metric LocPrf Weight Path
    *> 2A00:7300::/32 2A01:358:4100:2::1
    0 32768 i
    *> 2A00:7300:1::/48 :: 0 32768 i

    Total number of prefixes 2

    1. Merhaba

      Topolojiyle ilgili biraz daha fazla detay isteyeceğim. bgp komşuluğu kurduğunuz router kendinize ait başka bir router mı yoksa telekomun router ı mı? eğer telekomsa sizin anonslarınızı görmesine rağmen routing tablosuna sizin bgp update lerini işlemiyor mu?

  3. merhaba,
    Yazınızdakilerden anladıklarımla beraber bir ip v6 denemesi yapmaya çalışıyorum. Şöyleki evdeki bilgisayarımda statik ipv4 ip var. Bunun üzerinde çalışan bir web server kurdum. İp v4 üzerinden buna erişebiliyorum. 6to4 tünnelleme yaparak ip v6 ağından web sayfalarıma erişmek istiyorum. Bunun için nasılbir yol izlemeliyim. Yazınızda anlatılan global_unicast_adres yapısını çözemedim. Butür bir uygulama için benim unique statik ip4 ip yeterli değil midir ?
    Teşekkürler.
    Bilge

  4. Merhaba

    Tünelleme birbirlerinden bir IPv4 bulutuyla ayrılmış olan iki IPv6 istemcisini haberleştirmek için geliştirilmiş bir tekniktir. Bulutun sınırında olan dual-stack router’lar (bu router’lar hem IPv6 hem IPv4 çalıştırır) arasında tünelleme yapılarak IPv6 trafiği IPv4 bulutundan geçer.

    Sadece IPv6 çalıştıran bir istemciyle sadece IPv4 çalıştıran bir istemcinin haberleşebilmesi için tünelleme değil NAT-PT tekniği kullanılır. Fakat bu teknik günümüzde çok tercih edilen bir teknik değildir. 6to4 kullanabilmeniz için web sunucunuza da IPv6 adresi vermeniz gerekmektedir. Daha sonra herhangi iki nokta arasında 6to4 tünelleme yapabilirsiniz.

  5. Tekrar merhaba,
    Benim kurmak istediğim sistemi kısaca özetlemek derekirse, bir modem var bu NAT ile içerdeki bilgisayarları tek ip üzeriden internete çıkartıyor. Çözemediğim olay şuki içerdeki bilgisayarda windows 7 üzerinde teredo çalıştırarak ipV6 ile yayın yapan sistelere erişebiliyorum. Tersini yaptığımda teredo ipsi üzerinden kendi PCm de çalışan web sunucusuna erişmek istediğimde bu olmadığından 6to4 ile www yayın yapan PCyi en yakın ipv6 dual stacke tünellemek istiyorum.

    Bu durumda kafamı karıştıran sorun ben modemde 80 portu sunucunun lokal adresine yönlendirdiğim zaman dışarıdan erişebildiğim static ip ile sunucuya erişebiliyordum.Şimdi ortada sunucuya ait bir static ipv6 adresi yok.!?? Bunu adresi neye göre vermek lazım. 6to4 tünelleme kullanabilmek için nasılbir yol izlemeliyim. Airties Rt205 modemle bu iş olmaz mı ?

    Teşekkürler.
    Bilge

  6. Merhaba

    İstemcide 6to4 yapılandırması hakkında bir bilgim yok. Ancak web sunucunuza 2002::/16 subnetinden bir IPv6 adresi verebilirsiniz. Modeminizin IPv6 destekliyor olması gerekiyor (yani iç ağda bir IPv6 default gateway’iniz olmalı) fakat modeminizde IPv4 adreslerine göre port translation yapmalısınız. Modemin yaptığı NAT’ın tünellemeyi tam olarak nasıl etkileyeceğini ne yazık ki kestiremiyorum ama deneyebileceğiniz bir çözüm budur.

  7. öncelikle çok teşekkür ederim emeğinize sağlık gerçekten çok güzel bir site…bir de sorum olacak Loopback adresi neden verilir 🙁 ?

  8. Merhaba

    Loopback interface’leri her zaman up olan mantıksal interface’lerdir. Eğer tünellemenin sonlandırılacağı router’a o router üzerindeki en az iki farklı fiziksel interface üzerinden ulaşabiliyorsanız, tünelleri bu fiziksel interface’lerde değil loopback interface’inde sonlandırmanız tavsiye edilir. Çünkü bu sayede fiziksel interface’lerin birinde sorun olsa bile diğerinden router’ın loopback interface’ine ulaşabilirsiniz. Bu sebeple tünellerin loopback interface’lerinde sonlandırılması genel bir yaklaşımdır.

    Yazımda da belirttiğim gibi dikkat edilmesi gereken nokta oluşturduğunuz loopback interface’lerine ait network’ün karşı router tarafından bilinmesi gerekliliğidir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir