DNS menggunakan protokol TCP
DNS umumnya menggunakan UDP pada port 53 karena:
- UDP lebih cepat (tidak perlu koneksi, handshake, dsb.)
- Kebanyakan permintaan DNS hanya membutuhkan pertanyaan dan jawaban singkat
Namun, DNS juga bisa menggunakan TCP, dan ini terjadi dalam beberapa kondisi tertentu. Berikut penjelasannya:
🔁 Kapan DNS menggunakan TCP?
-
Ukuran respons DNS > 512 byte (standar lama) atau > 1232 byte (EDNS)
- Jika jawaban DNS terlalu besar untuk UDP, maka akan dikirim ulang menggunakan TCP.
- Contohnya: record DNSSEC, banyak record MX, atau jawaban panjang lainnya.
-
Zone Transfer (AXFR/IXFR)
- Proses transfer seluruh zona dari satu server DNS ke server lainnya wajib menggunakan TCP.
-
Reliabilitas & Keamanan
- Beberapa resolver atau firewall dikonfigurasi untuk memaksa penggunaan TCP untuk alasan keamanan, misalnya untuk mencegah spoofing atau amplification attack.
📌 Apa yang terjadi jika DNS selalu menggunakan TCP?
Kelebihan:
- Koneksi lebih andal, cocok untuk jawaban besar.
- Bisa mengurangi serangan DNS spoofing.
Kekurangan:
- Overhead lebih tinggi (3-way handshake).
- Lebih lambat dibanding UDP.
- Membebani server DNS jika semua klien memakai TCP.
🔎 Contoh nyata:
Misalnya, saat kamu melakukan dig +dnssec
terhadap domain dengan DNSSEC aktif, respons sering kali melebihi batas UDP dan otomatis menggunakan TCP.