Kısaca
DNS protokolü başlangıçta IPv4 + UDP üzerinde çalışmak üzere tasarlandı; parçalanmamış bir UDP paketinin azami yükü 512 bayttır. Kök ad sunucusu listesinin tek bir UDP yanıt paketine sığması gerekir (gecikme ve karmaşıklık ekleyen TCP'ye geri dönmemek için). DNS mesaj biçiminin bayt düzeninden geriye doğru hesaplandığında sığabilecek en fazla kök sunucu sayısı 13 çıkar. Bu sayı “yeterli olduğu için” seçilmedi — 1995'ten kalma katı bir protokol tavanıdır ve milyarlarca uç cihazla uyumluluk için o zamandan beri değişmeden korunuyor.
1. Katı protokol kısıtı: 512 bayt
1.1 IPv4 MTU ve parçalanmamış UDP
İlk ARPANET / IPv4 ağları en az 576 baytlık bir MTU şart koşuyordu. Her ana bilgisayarın bu boyuttaki paketleri alabilmesi gerekiyordu; aksi halde temel erişilebilirlik bile garanti edilemezdi (RFC 791).
Total Length is the length of the datagram, measured in octets,
including internet header and data. This field allows the length of
a datagram to be up to 65,535 octets. Such long datagrams are
impractical for most hosts and networks. All hosts must be prepared
to accept datagrams of up to 576 octets (whether they arrive whole
or in fragments). It is recommended that hosts only send datagrams
larger than 576 octets if they have assurance that the destination
is prepared to accept the larger datagrams.- 576 bayt toplam uzunluk − tipik 20 baytlık IP başlığı − 8 baytlık UDP başlığı ≈ 548 bayt kullanılabilir (IP seçenekleriyle başlık 60 bayta çıkabilir, geriye daha az kalır)
- RFC 1035 § 4.2.1, DNS over UDP için katı üst sınır olarak daha temkinli bir ikinin kuvvetini, 512 baytı belirledi — IP başlığı tüm seçenekleri taşısa bile güvenli
- Bir UDP yanıtı 512 baytı aşarsa TC bayrağı ayarlanarak kesilmeli ve istemci TCP'ye geri dönmeye zorlanmalıdır — TCP'nin üçlü el sıkışması ilk çözümlemenin gecikmesini birkaç katına çıkarır
Başka bir deyişle, “kök sunucu listesinin tamamı tek bir 512 baytlık UDP paketine sığmalıdır” — aksi takdirde dünyadaki her kök sorgusu TCP üzerinden yapılmak zorunda kalırdı; bu da 1980'lerin donanımında felakete yakın bir durum olurdu.
1.2 DNS mesajının bayt düzeni
. için NS kayıtlarını soran bir sorgunun tam yanıt yapısı (sunucu tüm kök NS kayıtlarını ve glue A kayıtlarını döndürür):
Header (12 bayt)Toplam uzunluk formülü:
L(N) = 12 + 5 + 31 + 15(N-1) + 16N = 31N + 33512 baytlık sınırı yerine koyarsak:
31N + 33 ≤ 512 ⇒ N ≤ 15.45Teorik olarak bu, 15 gruba kadar izin verir; ancak DNSSEC imzaları, EDNS0 OPT sözde kaydı ve alan dolgusu için pay bırakmak gerektiğinden sayı 13 grupta sabitlendi — RFC 2010 (1996) kök sunucuların işletim ölçütlerini belirledi ve ertesi yıl M-root devreye girdiğinden beri sayı değişmedi.
1.3 Kendiniz test edin — <code>dig +noedns -t ns .</code> yaklaşık 490–510 bayt döndürür
Teori bu kadar. Şimdi dig ile gerçekten bir kök sunucuyu sorgulayalım ve gerçek yanıtın ne kadar büyük olduğuna bakalım:
$ dig +noedns -t ns .
; <<>> DiG 9.10.6 <<>> +noedns -t ns .
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35973
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 15
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 430502 IN NS a.root-servers.net.
. 430502 IN NS b.root-servers.net.
… (toplam 13 NS kaydı, c–l atlandı)
. 430502 IN NS m.root-servers.net.
;; ADDITIONAL SECTION:
a.root-servers.net. 516909 IN A 198.41.0.4
b.root-servers.net. 562547 IN A 170.247.170.2
… (13 A glue kaydının tamamı sığdı)
m.root-servers.net. 516941 IN A 202.12.27.33
a.root-servers.net. 516930 IN AAAA 2001:503:ba3e::2:30
b.root-servers.net. 562547 IN AAAA 2801:1b8:10::b
↑ yalnızca 2 AAAA kaydı sığdı — paket dolu
;; Query time: 8 msec
;; SERVER: 192.168.1.1#53
;; MSG SIZE rcvd: 492
Sondaki kritik satır — toplam yanıt yaklaşık 490–510 bayt, yani 512'nin rahatça altında (kesin değer hangi köke sorduğunuza ve kaç IPv6 glue kaydı döndüğüne bağlıdır) — yukarıdaki bayt bütçesiyle örtüşür. +noedns bayrağına dikkat edin: dig varsayılan olarak EDNS0 gönderir ve bu durumda yanıt 800 baytı rahatça aşar. EDNS0 her yerde desteklenir hale gelince 512 baytın katı bir sınır olmaktan çıkmasının nedeni tam olarak budur — ama 13 sayısı o zamana kadar çoktan sabitlenmişti.
2. 13 nereden geliyor? Kısa bir tarihçe
Bu sayı baştan sabit değildi. Kök sunucu sayısı birkaç kez artırıldı; 1997'de M-root (WIDE, Japonya) devreye girdikten sonra bir daha değişmedi:
| Yıl | Sayı | Önemli olay |
|---|---|---|
| 1984 | 4 | İlk DNS protokol tasarımı; tüm sunucular ABD'de |
| 1991 | 7 | Akademik / ABD Savunma Bakanlığı düğümleri eklendi |
| 1995 | 9 | RIPE NCC katıldı (K-root) — Avrupa'daki ilk kök sunucu |
| 1997 | 13 | WIDE Project katıldı (M-root) — Asya'daki ilk kök sunucu, sayı sabitlendi |
| 2007 | 13 | IPv6 çift yığın desteği eklendi, ancak IP “grup sayısı” değişmedi |
| 2023 | 13 | USC-ISI, B-root IP'sini 170.247.170.2 adresine taşıdı (eski IP 199.9.14.201 kullanımdan kaldırıldı) |
Sayı 13'te sabitlendikten sonra A'dan M'ye harf adları hiç değişmez — yalnızca donanım yükseltilir ve anycast yansıları eklenir. İnternetin kök ipucu dosyası (named.root) uzun zamandır milyarlarca özyinelemeli çözümleyicinin ve stub istemcinin koduna gömülüdür; tek bir sayıyı değiştirmek tüm interneti yükseltmek demektir.
3. Peki dünyada gerçekten yalnızca 13 makine mi var?
Hayır. Bu en yaygın yanılgıdır. “13 kök sunucu grubu” ifadesi 13 NS adını (a–m.root-servers.net) anlatır; her ad bir IPv4 ve bir IPv6 adresine karşılık gelir — 13 fiziksel makine değildir.
Her IP'nin arkasında bir anycast kümesi vardır — aynı IP adresi dünya genelinde yüzlerce veri merkezi tarafından BGP ile aynı anda duyurulur ve kullanıcının DNS sorgusu RTT'ye göre en yakın yansıya yönlendirilir. Bir kök sunucunun “çöktüğü” söylendiğinde genellikle yalnızca bir şehirdeki yansı bakımdadır — küresel çözümleme etkilenmez.
2024'te 13 kök sunucu grubunun durumu
| Harf | İşletmeci | IPv4 | IPv6 | Anycast yansıları |
|---|---|---|---|---|
| A | Verisign, Inc. | 198.41.0.4 | 2001:503:ba3e::2:30 | 53 |
| B | Information Sciences Institute (USC) | 170.247.170.2 | 2801:1b8:10::b | 6 |
| C | Cogent Communications | 192.33.4.12 | 2001:500:2::c | 12 |
| D | University of Maryland | 199.7.91.13 | 2001:500:2d::d | 187 |
| E | NASA Ames Research Center | 192.203.230.10 | 2001:500:a8::e | 254 |
| F | Internet Systems Consortium | 192.5.5.241 | 2001:500:2f::f | 274 |
| G | US DOD Network Information Center | 192.112.36.4 | 2001:500:12::d0d | 6 |
| H | US Army Research Laboratory | 198.97.190.53 | 2001:500:1::53 | 17 |
| I | Netnod | 192.36.148.17 | 2001:7fe::53 | 75 |
| J | Verisign, Inc. | 192.58.128.30 | 2001:503:c27::2:30 | 168 |
| K | RIPE NCC | 193.0.14.129 | 2001:7fd::1 | 113 |
| L | ICANN | 199.7.83.42 | 2001:500:9f::42 | 218 |
| M | WIDE Project | 202.12.27.33 | 2001:dc3::35 | 12 |
| Toplam anycast yansısı (2024) | 1395 | |||
Çin anakarasında (Pekin, Şanghay, Shenzhen, Guangzhou, Hefei ve diğerleri) F / I / J / K / L dahil birçok kök sunucunun anycast yansı düğümleri bulunur; Çin içinden kök sunuculara ölçülen RTT genellikle 20 ms'nin altındadır.
4. EDNS0'dan sonra 512 bayt gerçek bir sınır olmaktan çıktı
Şunu sorabilirsiniz: Bugün 4 KB ve üzeri DNS paketleri yaygın; o halde neden “13'ün ötesine” geçilmiyor?
- EDNS0 (1999'da RFC 2671, güncel olarak RFC 6891) — daha büyük bir UDP yükü üzerinde anlaşmayı sağlar (genellikle 4096 bayt); tüm modern çözümleyiciler destekler
- DNSSEC EDNS0'ı zorunlu kılar, çünkü yalnızca imza verisi bile 512 baytı fazlasıyla aşar
- TCP'ye geri dönüş — modern TCP üçlü el sıkışması ve TLS / çerezler artık ucuz
Ancak kök sunucu listesi artık ağ genelinde bir uzlaşıdır: dünyadaki her özyinelemeli çözümleyici bu 13 grubu ipucu dosyasına (named.root) sabit olarak yazmıştır ve bu çözümleyicilerin arkasında milyarlarca uç cihaz vardır. Değiştirmek için hiçbir teşvik yok; risk ise küresel internetin bölünmesi, bu yüzden bu sayı neredeyse kesinlikle sonsuza dek 13 kalacak.
Kısacası: “13 grup” fiziksel olarak çoktan geçerliliğini yitirdi, ancak mühendislik açısından değiştirilmesi imkânsız.
5. Önemli çıkarımlar
- Tarihsel neden: 512 baytlık DNS-over-UDP sınırı → 15 grupluk matematiksel tavan → pay bırakılarak 13 seçildi, 1997'de M-root devreye girince sabitlendi
- Protokol ataleti: milyarlarca uç cihazdaki ipucu dosyalarını güncellemek pratik değil, bu yüzden sayı hiç değişmiyor
- Gerçek kapasite: 1395+ anycast yansı düğümü; tek noktadan arıza riski sıfıra yakın
- Çin'den erişilebilirlik: F / I / J / K / L dahil birçok kök sunucunun Çin anakarasında yansısı var; ölçülen RTT < 20 ms
Daha fazla bilgi
- Tencent Cloud: Dünyada neden yalnızca 13 kök ad sunucusu grubu varBu makaledeki protokol bayt uzunluğu hesaplamalarının kaynağı
- IANA'nın resmî kök sunucu listesiİşletmeciler / IP'ler / anycast yansı sayıları için yetkili kaynak
- root-servers.org canlı yansı dağılım haritasıKüresel yansı sayısının anlık istatistikleri
- RFC 1035 § 4.2.1 — DNS UDP usage 512 bayt sınırının özgün metni
- RFC 6891 — Extension Mechanisms for DNS (EDNS0) 512 baytın ötesine nasıl geçilir