KNOWLEDGE

Mengapa di Seluruh Dunia Hanya Ada 13 Grup Root Nameserver?

Batasan keras UDP 512 byte pada DNS menetapkan batas matematis 13 grup — tetap sejak 1997, kini dilayani oleh lebih dari seribu mirror anycast di seluruh dunia.

Ringkasnya

Protokol DNS awalnya dirancang untuk berjalan di atas IPv4 + UDP, dengan payload UDP maksimum tanpa fragmentasi sebesar 512 byte. Daftar root nameserver harus muat dalam satu paket respons UDP (agar tidak beralih ke TCP, yang menambah latensi dan kerumitan). Jika dihitung mundur dari tata letak byte pesan DNS, jumlah maksimum root server yang muat adalah 13. Angka ini bukan dipilih karena "kebetulan cukup" — ini batas keras protokol sejak 1995, yang dipertahankan sampai sekarang demi kompatibilitas dengan miliaran perangkat.

1. Batasan Keras Protokol: 512 Byte

1.1 MTU IPv4 dan UDP tanpa fragmentasi

Jaringan ARPANET / IPv4 awal mewajibkan MTU minimum 576 byte. Setiap host harus mampu menerima paket sebesar ini, jika tidak, keterjangkauan paling dasar pun tidak bisa dijamin (RFC 791).

RFC 791 — Internet Protocol, 1981, § 3.1 Total Length
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.
  • Panjang total 576 byte − header IP umum 20 byte − header UDP 8 byte ≈ 548 byte yang dapat dipakai (dengan opsi IP, header bisa mencapai 60 byte, sehingga sisanya lebih sedikit)
  • RFC 1035 § 4.2.1 memilih pangkat dua yang lebih konservatif, 512 byte, sebagai batas keras DNS over UDP — tetap aman meskipun header IP membawa opsi penuh
  • Jika respons UDP melebihi 512 byte, respons harus dipotong dengan flag TC diaktifkan, sehingga klien terpaksa beralih ke TCP — dan three-way handshake TCP melipatgandakan latensi resolusi pertama

Dengan kata lain, "daftar root server lengkap harus muat dalam satu paket UDP 512 byte" — jika tidak, setiap kueri root di seluruh dunia harus lewat TCP, yang pada perangkat keras tahun 1980-an hampir sama dengan lumpuh.

1.2 Tata letak byte pesan DNS

Struktur respons lengkap untuk kueri record NS milik . (server mengembalikan semua record NS root beserta record A glue):

Header   (12 byte)

Rumus panjang total:

L(N) = 12 + 5 + 31 + 15(N-1) + 16N = 31N + 33

Dengan memasukkan batas 512 byte:

31N + 33 ≤ 512 ⇒ N ≤ 15.45

Secara teori ini memungkinkan hingga 15 grup, tetapi perlu ruang cadangan untuk tanda tangan DNSSEC, pseudo-record EDNS0 OPT, dan padding field, sehingga ditetapkan 13 grup — RFC 2010 (1996) menetapkan kriteria operasional root server, dan jumlahnya tidak berubah sejak M-root beroperasi tahun berikutnya.

1.3 Uji sendiri — <code>dig +noedns -t ns .</code> mengembalikan sekitar 490–510 byte

Itu teorinya. Sekarang mari kita benar-benar bertanya ke root server dengan dig dan melihat seberapa besar respons sebenarnya:

terminal — dig +noedns -t ns .
$ 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.
…  (total 13 record NS, c–l dihilangkan)
.                       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
…  (ke-13 record glue A semuanya muat)
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
↑ hanya 2 record AAAA yang muat — paket sudah penuh

;; Query time: 8 msec
;; SERVER: 192.168.1.1#53
;; MSG SIZE  rcvd: 492

Baris kunci di akhir — total respons sekitar 490–510 byte, dengan aman di bawah 512 (angka pastinya bergantung pada root yang ditanya dan berapa record glue IPv6 yang dikembalikan) — sesuai dengan anggaran byte di atas. Perhatikan flag +noedns: dig mengirim EDNS0 secara bawaan, yang menghasilkan respons jauh di atas 800 byte. Justru karena itulah 512 byte tidak lagi menjadi batas keras setelah EDNS0 didukung luas — tetapi angka 13 sudah terkunci saat itu.

2. Dari Mana Angka 13? Sejarah Singkat

Angka ini tidak ditetapkan sejak awal. Jumlah root server mengalami beberapa kali perluasan; setelah M-root (WIDE, Jepang) beroperasi pada 1997, jumlahnya tidak pernah berubah lagi:

TahunJumlahPeristiwa Kunci
19844Desain awal protokol DNS, semua server berada di AS
19917Penambahan node akademik / Departemen Pertahanan AS
19959RIPE NCC bergabung (K-root) — yang pertama di Eropa
199713WIDE Project bergabung (M-root) — yang pertama di Asia, jumlah terkunci
200713Dukungan dual-stack IPv6 ditambahkan, tetapi "jumlah grup" IP tetap
202313USC-ISI memindahkan IP B-root ke 170.247.170.2 (IP lama 199.9.14.201 dipensiunkan)

Setelah terkunci di angka 13, nama huruf A sampai M tidak pernah berubah — hanya perangkat keras yang ditingkatkan dan mirror anycast yang ditambah. File root hint internet (named.root) sudah lama tertanam dalam kode miliaran resolver rekursif dan klien stub; mengubah satu angka saja berarti meningkatkan seluruh internet.

3. Tetapi Apakah Benar Hanya Ada 13 Mesin di Seluruh Dunia?

Tidak. Ini kesalahpahaman yang paling umum. "13 grup root server" mengacu pada 13 nama NS (a–m.root-servers.net), masing-masing terpetakan ke satu alamat IPv4 dan satu alamat IPv6 — bukan 13 mesin fisik.

Di balik setiap IP ada sebuah klaster anycast — alamat IP yang sama diumumkan melalui BGP secara bersamaan oleh ratusan datacenter di seluruh dunia, dan kueri DNS pengguna dirutekan ke mirror terdekat berdasarkan RTT. Saat sebuah root server "down", biasanya itu hanya berarti mirror di satu kota sedang dalam pemeliharaan — resolusi global tidak terpengaruh.

Status 13 Grup Root Server pada 2024

HurufOperatorIPv4IPv6Mirror Anycast
AVerisign, Inc.198.41.0.42001:503:ba3e::2:3053
BInformation Sciences Institute (USC)170.247.170.22801:1b8:10::b6
CCogent Communications192.33.4.122001:500:2::c12
DUniversity of Maryland199.7.91.132001:500:2d::d187
ENASA Ames Research Center192.203.230.102001:500:a8::e254
FInternet Systems Consortium192.5.5.2412001:500:2f::f274
GUS DOD Network Information Center192.112.36.42001:500:12::d0d6
HUS Army Research Laboratory198.97.190.532001:500:1::5317
INetnod192.36.148.172001:7fe::5375
JVerisign, Inc.192.58.128.302001:503:c27::2:30168
KRIPE NCC193.0.14.1292001:7fd::1113
LICANN199.7.83.422001:500:9f::42218
MWIDE Project202.12.27.332001:dc3::3512
Total mirror anycast (2024)1395

Tiongkok daratan (Beijing, Shanghai, Shenzhen, Guangzhou, Hefei, dan lainnya) menampung node mirror anycast untuk beberapa root server termasuk F / I / J / K / L; RTT terukur ke root server dari dalam Tiongkok biasanya di bawah 20ms.

4. Setelah EDNS0, 512 Byte Tidak Lagi Menjadi Batas Nyata

Anda mungkin bertanya: paket DNS berukuran 4KB atau lebih kini sudah umum, jadi mengapa tidak "melampaui 13" saja?

  • EDNS0 (RFC 2671 pada 1999, kini RFC 6891) — menegosiasikan payload UDP yang lebih besar (umumnya 4096 byte), didukung oleh semua resolver modern
  • DNSSEC mewajibkan EDNS0, karena data tanda tangannya saja sudah jauh melebihi 512 byte
  • Fallback TCP — three-way handshake TCP modern ditambah TLS / cookie kini sudah murah

Namun daftar root server kini merupakan konsensus seluruh jaringan: setiap resolver rekursif di dunia menuliskan 13 grup ini secara permanen di file hint-nya (named.root), dan di balik resolver tersebut ada miliaran perangkat. Dorongan untuk berubah nol, sedangkan risikonya adalah internet global yang terpecah, sehingga angka ini hampir pasti akan tetap 13 selamanya.

Singkatnya: "13 grup" secara fisik sudah lama usang, tetapi secara rekayasa mustahil diubah.

5. Poin Penting

  1. Alasan historis: batas 512 byte DNS over UDP → batas matematis 15 grup → dipilih 13 dengan ruang cadangan, tetap sejak M-root beroperasi pada 1997
  2. Inersia protokol: memperbarui file hint di miliaran perangkat tidak realistis, sehingga angkanya tidak pernah berubah
  3. Kapasitas nyata: 1395+ node mirror anycast, sehingga risiko titik kegagalan tunggal nyaris nol
  4. Dapat dijangkau dari Tiongkok: beberapa root server termasuk F / I / J / K / L memiliki mirror di Tiongkok daratan, dengan RTT terukur < 20ms

Bacaan Lanjutan

mimetic
mimetic
mimetic