SRV Record atau Service Record adalah jenis DNS Record yang digunakan untuk memberikan informasi mengenai lokasi suatu layanan. Record ini memungkinkan aplikasi mengetahui hostname dan port server yang menyediakan layanan tertentu pada sebuah domain.
Berbeda dengan A atau AAAA Record yang memetakan hostname ke alamat IP, SRV Record dapat memberikan informasi yang lebih spesifik mengenai sebuah layanan, termasuk jenis layanan, protokol, priority, weight, port, dan hostname tujuan.
SRV Record biasanya digunakan oleh aplikasi atau protokol yang memang mendukung pencarian layanan melalui DNS. Karena itu, record ini tidak perlu dibuat pada setiap domain dan hanya digunakan ketika layanan tertentu membutuhkannya.
Apa Fungsi SRV Record?
Fungsi utama SRV Record adalah membantu aplikasi menemukan server yang menyediakan layanan tertentu beserta port yang digunakan untuk mengakses layanan tersebut.
Beberapa fungsi SRV Record antara lain:
- Menentukan hostname server yang menyediakan suatu layanan.
- Menentukan port yang digunakan oleh layanan.
- Membedakan layanan berdasarkan protokol.
- Menentukan prioritas beberapa server.
- Mendistribusikan permintaan menggunakan nilai weight.
- Mendukung service discovery pada aplikasi dan protokol tertentu.
Dengan SRV Record, konfigurasi lokasi layanan dapat dipublikasikan melalui DNS sehingga aplikasi yang mendukungnya tidak harus selalu menggunakan hostname dan port yang ditentukan secara manual.
Format SRV Record
SRV Record memiliki struktur yang lebih lengkap dibandingkan beberapa jenis DNS Record lainnya.
Secara umum, formatnya dapat digambarkan sebagai berikut:
_service._protocol.name. TTL IN SRV priority weight port target.
Sebagai contoh:
_sip._tcp.example.com. 3600 IN SRV 10 60 5060 sip1.example.com.
Record tersebut memiliki beberapa komponen yang masing-masing mempunyai fungsi tertentu.
Apa Arti Service pada SRV Record?
Bagian service menunjukkan layanan yang ingin ditemukan. Nama layanan biasanya diawali dengan tanda underscore.
Contohnya:
_sip
Nama layanan yang digunakan harus mengikuti kebutuhan aplikasi atau protokol yang sedang dikonfigurasi. Administrator tidak sebaiknya membuat nama service secara sembarangan apabila aplikasi mengharapkan format tertentu.
Apa Arti Protocol pada SRV Record?
Bagian protocol menunjukkan protokol transport yang digunakan oleh layanan dan juga biasanya diawali dengan underscore.
Contohnya:
_tcp
_udp
Service dan protocol kemudian digabungkan menjadi nama seperti:
_sip._tcp.example.com
Format sebenarnya perlu mengikuti spesifikasi layanan atau dokumentasi aplikasi yang digunakan.
Apa Itu Priority pada SRV Record?
Priority menentukan urutan server yang diprioritaskan ketika terdapat beberapa SRV Record untuk layanan yang sama.
Nilai priority yang lebih kecil memiliki prioritas lebih tinggi.
Contoh:
_service._tcp.example.com. SRV 10 50 443 server1.example.com.
_service._tcp.example.com. SRV 20 50 443 server2.example.com.
Dalam contoh tersebut, server1.example.com memiliki priority 10 sehingga lebih diprioritaskan dibandingkan server2.example.com yang memiliki priority 20.
Apa Itu Weight pada SRV Record?
Weight digunakan untuk membantu menentukan pembagian pemilihan target di antara beberapa SRV Record yang memiliki nilai priority yang sama.
Contohnya:
_service._tcp.example.com. SRV 10 70 443 server1.example.com.
_service._tcp.example.com. SRV 10 30 443 server2.example.com.
Kedua server memiliki priority yang sama, tetapi weight berbeda. Klien yang menerapkan mekanisme SRV sesuai spesifikasi dapat menggunakan nilai weight untuk melakukan pemilihan target secara proporsional.
Weight bukan persentase trafik yang dijamin secara mutlak. Hasil akhirnya bergantung pada algoritma pemilihan dan implementasi klien yang menggunakan SRV Record.
Apa Itu Port pada SRV Record?
Port menunjukkan nomor port tempat layanan tersedia pada server tujuan.
Contohnya:
5060
Jika SRV Record menunjuk ke port 5060, aplikasi yang menggunakan record tersebut dapat mengetahui bahwa layanan tersedia melalui port tersebut tanpa pengguna harus menentukan port secara manual.
Apa Itu Target pada SRV Record?
Target adalah hostname server yang menyediakan layanan.
Contohnya:
sip1.example.com.
Hostname target tersebut kemudian perlu dapat di-resolve ke alamat IP melalui record DNS yang sesuai, misalnya A Record untuk IPv4 atau AAAA Record untuk IPv6.
Target SRV berupa hostname, bukan alamat IP langsung.
Contoh Lengkap SRV Record
Misalnya terdapat record:
_sip._tcp.example.com. 3600 IN SRV 10 60 5060 sip1.example.com.
Informasi tersebut dapat dibaca sebagai:
- Service:
_sip - Protocol:
_tcp - Priority:
10 - Weight:
60 - Port:
5060 - Target:
sip1.example.com - TTL:
3600detik
Dengan informasi tersebut, aplikasi yang mendukung SRV lookup dapat mengetahui server dan port yang perlu digunakan untuk mengakses layanan.
Contoh SRV Record pada Panel DNS
Tampilan konfigurasi dapat berbeda pada setiap DNS provider. Secara umum, sebuah panel dapat meminta informasi seperti:
Type: SRV
Service: _sip
Protocol: _tcp
Name: example.com
Priority: 10
Weight: 60
Port: 5060
Target: sip1.example.com
TTL: 3600
Pada panel lain, service, protocol, dan hostname dapat dimasukkan dalam satu kolom Name, misalnya:
_sip._tcp.example.com
Karena format panel berbeda-beda, ikuti dokumentasi DNS provider atau layanan yang memberikan konfigurasi SRV.
SRV Record Digunakan untuk Apa?
SRV Record dapat digunakan oleh berbagai layanan dan protokol yang mendukung service discovery melalui DNS.
Contoh penggunaan dapat mencakup:
- Layanan komunikasi berbasis SIP.
- Beberapa konfigurasi XMPP.
- Microsoft Active Directory dan layanan terkait.
- Kerberos pada konfigurasi tertentu.
- Layanan aplikasi lain yang secara khusus mendukung SRV lookup.
Tidak semua aplikasi menggunakan SRV Record. Jika sebuah aplikasi tidak mendukung SRV lookup, keberadaan record tersebut tidak otomatis membuat aplikasi menggunakan server dan port yang tercantum.
Perbedaan SRV Record dan A Record
A Record memetakan hostname langsung ke alamat IPv4, sedangkan SRV Record menyediakan informasi mengenai lokasi sebuah layanan.
Contoh A Record:
server.example.com. A 192.0.2.10
Contoh SRV Record:
_service._tcp.example.com. SRV 10 50 443 server.example.com.
Dalam konfigurasi tersebut, SRV Record menunjukkan layanan dan port, kemudian hostname target dapat menggunakan A Record untuk memperoleh alamat IPv4 server.
Perbedaan SRV Record dan CNAME
CNAME digunakan untuk menjadikan sebuah hostname sebagai alias dari hostname lain. SRV Record digunakan untuk menemukan lokasi layanan beserta informasi seperti port, priority, dan weight.
Karena fungsi tersebut berbeda, CNAME tidak dapat menggantikan seluruh informasi yang dapat disediakan oleh SRV Record.
Perbedaan SRV Record dan MX Record
MX Record secara khusus digunakan untuk menentukan mail exchanger yang menerima email untuk sebuah domain, sedangkan SRV Record merupakan mekanisme service discovery yang dapat digunakan oleh layanan yang mendukungnya.
Keduanya dapat memiliki konsep prioritas, tetapi struktur, tujuan, dan cara penggunaannya berbeda.
Apakah SRV Record Bisa Menggunakan Alamat IP sebagai Target?
Target pada SRV Record seharusnya berupa hostname, bukan alamat IPv4 atau IPv6 langsung.
Contohnya:
Target:
server.example.com.
Hostname tersebut kemudian dapat memiliki:
server.example.com. A 192.0.2.10
server.example.com. AAAA 2001:db8::10
Dengan struktur ini, SRV menentukan lokasi layanan, sedangkan A atau AAAA Record menentukan alamat IP dari server tujuan.
Apakah Satu Layanan Bisa Memiliki Beberapa SRV Record?
Ya. Beberapa SRV Record dapat dibuat untuk service dan protocol yang sama. Priority dan weight kemudian dapat digunakan oleh klien untuk menentukan target yang dipilih.
Contoh:
_service._tcp.example.com. SRV 10 70 443 server1.example.com.
_service._tcp.example.com. SRV 10 30 443 server2.example.com.
_service._tcp.example.com. SRV 20 0 443 server3.example.com.
Server dengan priority 10 lebih diprioritaskan daripada server dengan priority 20. Di antara target dengan priority 10, weight dapat digunakan dalam proses pemilihan sesuai implementasi klien.
Apakah SRV Record Bisa Digunakan untuk Redirect Website?
Tidak. SRV Record bukan mekanisme HTTP redirect dan browser web tidak menggunakan SRV Record umum untuk mengalihkan sebuah URL ke website lain.
Jika kebutuhan sebenarnya adalah memindahkan pengunjung dari satu URL ke URL lain, gunakan mekanisme redirect pada web server atau aplikasi sesuai kebutuhan.
Apa yang Terjadi Jika SRV Record Salah?
Kesalahan konfigurasi SRV dapat menyebabkan aplikasi yang bergantung pada record tersebut gagal menemukan layanan atau terhubung ke server yang tidak sesuai.
Beberapa masalah yang dapat terjadi antara lain:
- Target hostname tidak dapat di-resolve.
- Nomor port salah.
- Service atau protocol tidak sesuai.
- Priority menghasilkan urutan server yang tidak diinginkan.
- Weight dikonfigurasi tidak sesuai kebutuhan.
- Target menunjuk ke server yang tidak menjalankan layanan.
- Record dibuat pada zona DNS yang bukan authoritative.
Karena SRV biasanya digunakan oleh aplikasi tertentu, konfigurasi sebaiknya mengikuti dokumentasi resmi layanan tersebut.
Cara Mengecek SRV Record
SRV Record dapat diperiksa menggunakan DNS lookup. Dengan dig, format query dapat terlihat seperti:
dig _sip._tcp.example.com SRV
Hasilnya dapat menampilkan priority, weight, port, dan target yang dipublikasikan pada DNS.
Contoh jawaban:
_sip._tcp.example.com. 3600 IN SRV 10 60 5060 sip1.example.com.
Jika record tidak ditemukan, periksa nama service, protocol, zona DNS, dan pastikan perubahan dilakukan pada DNS provider yang authoritative.
SRV Record dan TTL
SRV Record juga memiliki TTL yang menentukan berapa lama jawaban DNS dapat disimpan dalam cache resolver.
Jika target, port, priority, atau weight pada SRV Record diubah, resolver yang masih memiliki data lama dapat tetap memberikan jawaban sebelumnya sampai cache tersebut kedaluwarsa.
Karena itu, perubahan pada layanan yang menggunakan SRV perlu mempertimbangkan TTL terutama ketika melakukan migrasi atau perpindahan server.
Kapan Perlu Membuat SRV Record?
SRV Record sebaiknya dibuat ketika aplikasi atau penyedia layanan secara khusus membutuhkan konfigurasi tersebut.
Biasanya penyedia layanan akan memberikan informasi seperti:
Service
Protocol
Priority
Weight
Port
Target
Masukkan nilai tersebut sesuai instruksi dan hindari mengubah priority, weight, port, atau target tanpa memahami pengaruhnya terhadap layanan.
Untuk memahami posisi SRV di antara jenis record lainnya, Anda dapat membaca artikel Apa Itu DNS Record?.
Kesimpulan
SRV Record adalah DNS Record yang digunakan untuk membantu aplikasi menemukan server dan port yang menyediakan layanan tertentu. Record ini memuat informasi service, protocol, priority, weight, port, dan target.
Priority digunakan untuk menentukan urutan target, sedangkan weight membantu pemilihan di antara target yang memiliki priority sama. Target SRV berupa hostname yang selanjutnya perlu dapat di-resolve melalui DNS.
SRV Record tidak dibutuhkan oleh semua domain. Record ini sebaiknya dibuat ketika aplikasi atau layanan memang mendukung dan memerlukannya. Konfigurasi yang tepat membantu layanan menemukan server tujuan tanpa harus bergantung pada pengaturan hostname dan port secara manual.
Pertanyaan Umum tentang SRV Record
Apa fungsi utama SRV Record?
SRV Record digunakan untuk memberikan informasi mengenai lokasi suatu layanan, termasuk hostname server tujuan, port, priority, dan weight yang dapat digunakan oleh aplikasi yang mendukung SRV lookup.
Apakah semua domain membutuhkan SRV Record?
Tidak. SRV Record hanya diperlukan apabila aplikasi, protokol, atau penyedia layanan yang digunakan memang membutuhkan service discovery melalui SRV.
Apa perbedaan priority dan weight pada SRV Record?
Priority menentukan kelompok target yang lebih diprioritaskan, dengan nilai lebih kecil memiliki prioritas lebih tinggi. Weight digunakan untuk membantu pemilihan di antara target yang memiliki nilai priority sama.
Apakah target SRV Record boleh berupa alamat IP?
Target SRV seharusnya berupa hostname. Hostname tersebut kemudian dapat memiliki A Record untuk IPv4 atau AAAA Record untuk IPv6.
Apakah SRV Record dapat digunakan untuk redirect website?
Tidak. SRV Record digunakan untuk service discovery dan bukan untuk HTTP redirect. Pengalihan URL website perlu dilakukan melalui web server, aplikasi, atau mekanisme redirect yang sesuai.
