IPv6 Komşu Keşfi (NDP), aynı bağlantıdaki IPv6 cihazlarının birbirini ve yönlendiricileri bulmasını sağlayan temel mekanizmadır. NDP, IPv6 ağlarında denetim ve hata bilgisi taşıyan ICMPv6 protokolünün mesajlarıyla adres çözümleme ve yönlendirici keşfi yapar, komşuların erişilebilirliğini denetler.

NDP, IPv4'te yerel IP adreslerini donanım adresleriyle eşleyen ARP'nin birebir karşılığı değildir. ARP'nin adres çözümleme işlevini kapsar ve IPv6'nın yerel bağlantıda çalışması için gereken daha geniş görevleri de yürütür.

NDP'nin Kullandığı ICMPv6 Mesajları

Temel NDP işlevleri beş ICMPv6 mesaj türüyle yürütülür. Aynı mesaj türü, kullanım bağlamına göre adres çözümleme, erişilebilirlik denetimi veya yapılandırma sürecinin farklı bir parçasında görev alabilir.

MesajTemel işlev
Router SolicitationIPv6 cihazı bu mesajla aynı bağlantıdaki yönlendiricilerden hemen bir Router Advertisement ister.
Router AdvertisementYönlendirici kendisini duyurur; adreslerin ortak başlangıç bölümünü belirten IPv6 prefix'i ve bağlantıda tek parçada taşınabilen en büyük IP paketinin boyutu olan MTU gibi bilgileri de bildirebilir.
Neighbor SolicitationCihaz bağlantı katmanı adresini öğrenmek, komşuya erişimi denetlemek veya adres çakışması denetimini yapmak için bu mesajı gönderir.
Neighbor AdvertisementNeighbor Solicitation mesajına yanıt verir veya komşunun bağlantı katmanı adresindeki değişikliği duyurur.
RedirectYönlendirici bu mesajla belirli bir hedef için daha uygun bir sonraki düğümü IPv6 cihazına bildirir.

NDP'de Adres Çözümleme Süreci

Bir IPv6 cihazı Ethernet ağındaki bir sonraki hedefe paket gönderecekse çerçeveyi hangi MAC adresine göndereceğini bilmelidir. NDP bu eşlemeyi öğrenmek için adres çözümleme yapar. Her bağlantı türü buna ihtiyaç duymaz; örneğin yalnız iki uç bulunan noktadan noktaya bir bağlantıda ayrı bir donanım adresi çözümlemesi gerekmeyebilir.

Kullanılabilir bir önbellek kaydı yoksa gönderen cihaz hedef IPv6 adresi için bir Neighbor Solicitation mesajı oluşturur. Adres çözümleme sırasında mesaj, hedef adresle ilişkili cihazların dinlediği solicited-node multicast adresine gönderilir; multicast, paketi belirli bir gruba iletir. Hedef düğüm uygun bir Neighbor Advertisement ile yanıt verdiğinde gönderen, IPv6 adresi ile bağlantı katmanı adresi arasındaki eşlemeyi komşu önbelleğine kaydedebilir.

Hedef IPv6 adresi aynı bağlantıda değilse gönderen, uzak sunucunun bağlantı katmanı adresini aramaz. Paketin yerel ağdaki sonraki yönlendiricisinin bağlantı katmanı adresini çözer. NDP, adres çözümlemesini her zaman yerel bağlantıdaki gerçek sonraki düğüm için yapar.

Komşu Önbelleğindeki Durumlar

NDP, öğrenilen komşu bilgisini yalnız sabit bir adres eşlemesi olarak tutmaz. Kayıt, adres çözümlemesi sürerken INCOMPLETE, erişilebilirlik doğrulandığında REACHABLE, erişilebilirlik doğrulaması eskidiğinde veya doğrulanmamış yeni bilgi geldiğinde STALE, yoklama öncesi bekleme sırasında DELAY ve doğrudan yoklama sırasında PROBE durumunda olabilir. Cihaz böylece her paket için yeniden adres çözümlemek zorunda kalmaz. STALE, komşunun erişilemez olduğu anlamına gelmez: cihaz mevcut eşlemeyle paket gönderebilir, ardından gerekirse erişilebilirliği yeniden denetler. Kullanılmayan her STALE kayıt için sürekli yoklama yapılmaz.

Router Solicitation ve Advertisement ile Yönlendirici Keşfi

IPv6 cihazları, bağlantıdaki yönlendiricileri NDP ile keşfeder. Cihaz Router Solicitation göndererek hemen bir duyuru isteyebilir; yönlendiriciler Router Advertisement mesajlarını bu isteğe yanıt olarak veya belirli aralıklarla gönderir.

Router Advertisement mesajları, varsayılan yönlendirici seçimi için gereken bilginin yanı sıra IPv6 prefix'lerini ve MTU gibi bazı bağlantı parametrelerini bildirebilir. Router Lifetime alanı, duyuruyu gönderen cihazın kaç saniye boyunca varsayılan yönlendirici olarak kullanılabileceğini belirtir. Değer sıfırsa bu duyuru cihazı varsayılan yönlendirici listesine eklemez; aynı mesajdaki prefix bilgileri kendi koşullarıyla geçerli olabilir.

Cihazın IPv6 adresini kendisinin oluşturduğu SLAAC yöntemi, bu mesajlardaki Prefix Information seçeneklerinden yararlanır. IPv6 adresinin nasıl oluşturulacağı RFC 4862'de ayrıca tanımlanır; DHCPv6 sunucusundan adres almak ise tek başına varsayılan yönlendiriciyi öğrenmek değildir.

Yerel Hedef ile Uzak Hedef Ayrımı

Prefix Information seçeneğinde L bayrağının 1 olması, ilgili prefix'in doğrudan yerel bağlantıda olduğunu bildirir. Cihazın adres oluşturmasına izin veren A bayrağı bundan bağımsızdır; aynı prefix'ten bir adres edinmek, diğer hedeflerin doğrudan erişilebilir olduğunu tek başına göstermez. Cihaz yerel hedef bilgisini elle tanımlanmış bir rotadan veya geçerli bir Redirect mesajından da öğrenebilir. Seçilen sonraki hedef başka bir yönlendiriciyse NDP, uzak sunucunun değil bu yönlendiricinin bağlantı katmanı adresini çözer.

Komşu Erişilebilirliğinin Denetlenmesi

Bir bağlantı katmanı adresinin daha önce öğrenilmiş olması, komşunun erişilebilir durumda olduğu anlamına gelmez. NDP, komşuya gönderilen paketlerin ulaşabildiğini denetleyen NUD (Neighbor Unreachability Detection) mekanizmasıyla aktif iletişim kurulan komşuları izler.

Güvenilir veri iletimi yapan TCP protokolünde yeni verilerin alındığını bildiren onaylar veya Solicited bayrağı 1 olan geçerli bir Neighbor Advertisement, komşunun erişilebilirliğini doğrulayabilir. İstek beklemeden gelen bir Neighbor Advertisement ya da Router Advertisement tek başına bu doğrulamayı yapmaz. Böyle bir doğrulama yoksa düğüm, Neighbor Solicitation mesajını yalnız bilinen komşuya, yani unicast olarak gönderip komşuya giden yolun çalıştığını denetleyebilir. Bu sayede cihaz çalışmayan bir varsayılan yönlendiriciyi fark eder ve varsa başka bir yönlendiriciyi deneyebilir.

DAD ile IPv6 Adresi Çakışmalarını Denetleme

IPv6 arayüzüne yeni bir unicast adres atanırken DAD devre dışı değilse cihaz, adresin aynı bağlantıda başka bir düğüm tarafından kullanılıp kullanılmadığını denetler. Adres çakışmasını denetleyen DAD (Duplicate Address Detection), Neighbor Solicitation ve Neighbor Advertisement mesajlarını kullanır.

RFC 4862'deki temel DAD yönteminde adres, denetim tamamlanana kadar tentative (henüz doğrulanmamış) durumdadır ve normal kaynak adresi olarak kullanılamaz. Düğüm, Neighbor Solicitation mesajının kaynak adresi alanında belirtilmemiş IPv6 adresini (::) kullanır. Uygun bir Neighbor Advertisement alınırsa veya başka bir düğümün aynı adres için gönderdiği çakışan Neighbor Solicitation belirlenirse cihaz bu adresi normal iletişim için kullanamaz.

Optimistic DAD desteği olan cihazlar, ayrı kurallar altında denetim bitmeden adresi sınırlı biçimde kullanabilir. Bu, temel DAD davranışıyla aynı değildir. DAD çakışma bulmasa bile paket kaybı veya birbirini duyamayan cihazlar yüzünden bütün çakışmaların tespit edildiği garanti edilemez.

NDP ile ARP Mesajları Nasıl Taşınır?

Ethernet ağında ARP, IPv4 paketinin dışında ayrı bir mesaj türü olarak taşınır. NDP ise ICMPv6 mesajlarını IPv6 paketleri içinde taşır; TCP veya UDP portlarını kullanmaz.

IPv6'da broadcast adresleme bulunmadığı için NDP, işleme göre multicast veya unicast mesajlar kullanır. Broadcast tüm yerel ağa yayın yaparken multicast belirli bir grubu, unicast ise tek bir hedefi adresler.

NDP Sorunlarının Tipik Belirtileri

NDP'nin farklı işlevlerindeki aksaklıklar farklı belirtiler oluşturur:

  • Adres çözümleme için gönderilen Neighbor Solicitation yanıtlanmazsa komşu önbelleğindeki kayıt tamamlanamayabilir ve aynı bağlantıdaki hedefe çerçeve gönderilemeyebilir.
  • Router Advertisement alınmazsa varsayılan yönlendirici otomatik olarak öğrenilemeyebilir ve duyurulan prefix bilgileri kullanılamayabilir.
  • NUD komşunun erişilebilirliğini doğrulayamazsa kayıt PROBE aşamasına geçer ve sonunda silinebilir; bu sırada iletişim gecikebilir veya kesilebilir.
  • DAD bir çakışma belirlerse cihaz denetlenen IPv6 adresini normal iletişim için kullanamaz.

Bu belirtilerle karşılaşırsanız bağlantının kurulduğu ağ arayüzünün komşu tablosunu, yönlendirme kayıtlarını ve ilgili mesajları birlikte kontrol edin. Bütün ICMPv6 trafiğini engellemek NDP'yi de bozabilir. Güvenlik duvarını bütünüyle kapatmayın; gerekli mesajları engelleyen bir kural varsa yalnız o kuralı ağın güvenlik politikasına uygun olarak düzeltin.