SVCB DNS Kaydı Nedir?

SVCB (Service Binding), bir ağ hizmetinin alternatif hedeflerini ve bu hedeflere bağlanırken kullanılabilecek parametreleri DNS üzerinden bildiren genel amaçlı bir kaynak kaydıdır.
IPv4 adresi taşıyan A kaydı ile IPv6 adresi taşıyan AAAA kaydı yalnız adres bildirir. SVCB kaydı ise istemciye bağlantı kurulmadan önce hizmet uç noktası, öncelik, desteklenen protokol veya farklı port gibi ek bilgiler sunabilir. Böylece SVCB desteği bulunan istemci, varsayılan adrese önce bağlanıp ek bilgi beklemek yerine uygun seçeneği daha erken değerlendirebilir.
Kaydın hangi modda çalışacağını öncelik alanı belirler. Öncelik değeri 0 ise kayıt, hizmet için başka bir adı takip ettiren AliasMode; 0’dan büyükse alternatif hedefi ve bağlantı parametrelerini bildiren ServiceMode olarak yorumlanır. Aynı RRset'te (kaynak kaydı kümesinde) iki mod birlikte bulunursa AliasMode geçerli olur ve ServiceMode kayıtları yok sayılır.
SVCB Kayıt Yapısı Nasıl Okunur?
SVCB kaydının sunum biçimi üç temel parçadan oluşur: SvcPriority (hizmet önceliği), TargetName (hedef adı) ve isteğe bağlı SvcParams (hizmet parametreleri). Kayıt türü DNS içinde 64 numarasıyla tanımlanır.
- SvcPriority: Kaydın modunu ve ServiceMode kayıtları arasındaki tercih sırasını belirler. 0 değeri AliasMode anlamına gelir; pozitif değerlerde küçük sayı daha yüksek öncelik taşır.
- TargetName: AliasMode’da takip edilecek adı, ServiceMode’da ise alternatif hizmet uç noktasının alan adını gösterir.
- SvcParams: ServiceMode hedefiyle birlikte değerlendirilmesi gereken anahtar-değer parametrelerini taşır. AliasMode içinde yer alsalar bile mevcut kurallara göre dikkate alınmazlar.
Bir hizmet için birden fazla ServiceMode kaydı bulunabilir. Bu kayıtlar farklı hedefleri, protokol seçeneklerini veya portları temsil edebilir. Aynı önceliğe sahip seçenekler eş düzey kabul edilir; istemcilerin dengeli yük dağılımı için bu kayıtları rastgele sıralaması önerilir.
AliasMode ile ServiceMode Arasındaki Fark Nedir?
İki modu yalnız öncelik değerleri ayırmaz. AliasMode çözümlemeyi başka bir ada devrederken ServiceMode doğrudan kullanılabilecek hizmet uç noktalarını ve bunlara bağlı parametreleri tanımlar.
| Özellik | AliasMode | ServiceMode |
|---|---|---|
| Hizmet önceliği | 0 | 1 ile 65535 arasında |
| Ana amaç | Hizmet bağlama işlemini başka bir ada devretmek | Alternatif uç noktayı ve bağlantı bilgilerini bildirmek |
| Hedef adı | Takip edilecek hizmet adı | Bağlantı kurulabilecek alternatif hedef |
| Hizmet parametreleri | Mevcut kurallarda dikkate alınmaz | Hedefle birlikte kullanılır |
| Seçim davranışı | Aynı kayıt kümesinde tek AliasMode kaydı bulunması önerilir | Birden fazla öncelikli seçenek bulunabilir |
AliasMode, bir alan adını başka bir ada bağlayan CNAME kaydına benzer ancak CNAME ile aynı değildir. Yalnız sorgulanan SVCB uyumlu kayıt türünü ve ilgili hizmeti etkiler; alan adındaki diğer kaynak kayıtlarını başka ada yönlendirmez. İstemci, SVCB AliasMode kaydında yine SVCB kaydını takip eder. Web hizmetleri için kullanılan HTTPS kayıt türünde de zincir boyunca HTTPS kaydı sorgulanır; SVCB ve HTTPS kayıtları birbirine yönlendirme yapmaz.
ServiceMode’da pozitif öncelik değerleri karşılaştırılır. Daha küçük değer istemciye öncelikli seçenek olarak sunulur, ancak kullanılabilirlik istemcinin parametreleri ve protokolleri desteklemesine bağlıdır. Bir kayıt istemciyle uyumsuzsa daha yüksek öncelik değerine sahip başka bir seçenek değerlendirilebilir.
İstemci SVCB Kaydını Nasıl Kullanır?
İşleyiş, hizmet için tanımlanmış protokol eşlemesine ve istemcinin SVCB desteğine bağlıdır. İstemci kayıtları şu sırayla işler:
- İstemci, erişmek istediği hizmet için uygun SVCB sorgu adını oluşturur.
- Yanıtta AliasMode varsa hedef adı üzerindeki aynı kayıt türünü takip eder.
- ServiceMode kayıtları varsa istemci, zorunlu anahtarlarını ve bu anahtarların değerlerini destekleyebildiği kayıtları ayırır.
- Uyumlu kayıtlar öncelik sırasına göre değerlendirilir; hedef ad için gerekli A veya AAAA çözümlemesi yapılır.
- Seçilen hedef, port ve protokol bilgileriyle bağlantı girişimi başlatılır.
Bir recursive resolver (özyinelemeli DNS çözümleyicisi), SVCB yanıtıyla birlikte hedefe ait A veya AAAA kayıtlarını ek bilgi bölümünde döndürebilir. Bu bilgiler yoksa istemci gerekli adres sorgularını ayrıca yapar. Bu nedenle SVCB kaydı, IP adresi çözümleme ihtiyacını ortadan kaldırmaz; bağlantı parametrelerini hedef adreslerle birlikte sunar.
Hizmet Parametreleri Hangi Bağlantı Bilgilerini Taşır?
Hizmet parametreleri alanı genişletilebilir bir anahtar-değer yapısıdır. Her hizmet türü için ayrı bir protokol eşleme belgesi, hangi parametrelerin kullanılabileceğini ve bunların nasıl yorumlanacağını tanımlar. Bu nedenle bir SVCB kaydında görülen her parametrenin bütün istemciler tarafından desteklendiği varsayılamaz.
- alpn: Uç noktanın desteklediği uygulama protokollerinin ALPN (Application-Layer Protocol Negotiation) kimliklerini bildirir. ALPN, bağlantı kurulurken kullanılacak uygulama protokolünü seçmeye yarayan yöntemdir.
- port: Hizmetin, güvenilir ve sıralı veri iletimi sağlayan TCP veya verileri bağımsız datagramlarla taşıyan UDP için varsayılandan farklı bir port kullanacağını belirtebilir.
- ipv4hint ve ipv6hint: Bağlantıyı geciktirmemek için kullanılabilecek adres ipuçları taşır. Bunlar, hedef adın A ve AAAA yanıtlarının kesin yerine geçen kayıtlar değildir.
- mandatory: Bir kaydın doğru kullanılabilmesi için istemcinin desteklemesi gereken anahtarları belirtir. İstemci bu zorunlu anahtarlardan birini desteklemiyorsa ilgili ServiceMode kaydını uyumsuz sayar.
İstemci, hizmet parametrelerini hedefle birlikte değerlendirir. Örneğin “alpn” belirli bir uygulama protokolünü, “port” ise farklı bir portu gösteriyorsa yalnız desteklediği protokolü ve belirtilen portu kullanan uyumlu kaydı seçer. Güncel A veya AAAA yanıtı alındığında adres ipuçları yerine bu yanıtlar esas alınır.
SVCB ile HTTPS Kaydı Arasındaki İlişki
DNS’deki HTTPS kaydı, SVCB ile aynı sunum biçimini ve veri kodlamasını kullanır; AliasMode ile ServiceMode yapısını paylaşan SVCB uyumlu bir kayıt türüdür. DNS içinde SVCB 64, HTTPS ise 65 numaralı ayrı kaynak kayıt türleri olarak tanımlanır.
İki kayıt türünün kullanım alanları farklıdır. SVCB kaydı genel amaçlı hizmet bağlama yapısını sağlar; HTTPS kaydı ise HTTP ve HTTPS hizmetleri için özel kurallar içerir. HTTP istemcisi bu amaçla SVCB sorgusu kullanmaz, HTTPS kayıt türünü sorgular.
HTTPS kaydı, HTTP'den HTTPS'ye yükseltme ve HTTP sürümü seçimi için ek kurallar uygular. SVCB kaydı bu özel türe temel oluştursa da iki kayıt türü birbirinin yerine kullanılamaz.
SVCB Kaydı Kullanılamadığında Bağlantı Nasıl Kurulur?
SVCB kullanımı istemcinin ve ilgili hizmet protokolünün desteğine bağlıdır. DNS sunucularının kayıtları istemciye iletebilmesi gerekir; ancak SVCB’nin bağlantı kurallarını ayrıca yorumlamaları şart değildir. SVCB kullanmayan eski istemcilerin çalışabilmesi için hizmet işletmecileri çoğu durumda geleneksel A ve AAAA kayıtlarıyla protokolün normal bağlantı yolunu korur.
Örneğin parametre değerinin biçimi bozuksa veya aynı parametre anahtarı tekrarlanmışsa istemci bütün kayıt kümesini reddeder ve SVCB dışı bağlantı yöntemine döner. SVCB olmadan bağlantı kuramayan bir istemci bu yolla hizmete erişemez. Biçimi doğru olan bir kaydın tanınan parametreleri birbiriyle çelişiyorsa en azından o kayıt reddedilir; istemci bütün kayıt kümesini de reddedebilir. Bu durum, istemcinin tanımadığı isteğe bağlı bir parametreyle aynı değildir.
SVCB Kaydının Şifreleme ve Kimlik Doğrulamadaki Yeri
SVCB kaydı tek başına DNS trafiğini veya hizmet bağlantısını şifrelemez; yalnız bağlantı bilgisi taşır. Bağlantıyı şifreleme ve sunucunun kimliğini doğrulama amacıyla TLS kullanan bir protokolde sertifikanın hangi ada göre doğrulanacağını ilgili protokol tanımı belirler; hedef adı tek başına doğrulanan adı değiştirmez.







