# DNS ( Domain Name System )

# DNS - Background

**Latar Belakang (Background) DNS**

Domain Name System (DNS) diciptakan untuk memudahkan navigasi di internet. Sebelum DNS, komputer menggunakan sistem yang disebut hosts.txt, sebuah file teks yang berisi daftar nama domain dan alamat IP yang sesuai. Namun, seiring pertumbuhan internet, metode ini menjadi tidak efisien karena sulit dikelola dan diperbarui secara manual.

**📜 Sejarah Singkat DNS**

1. Era Awal Internet (1970-an – Awal 1980-an)  
    \- Komunikasi antar komputer di ARPANET (cikal bakal internet) menggunakan alamat IP numerik.  
    \- Sistem berbasis hosts.txt diperkenalkan oleh Stanford Research Institute (SRI) untuk menyimpan pemetaan nama dan alamat IP.
2. Penciptaan DNS (1983)  
    \- Paul Mockapetris merancang dan memperkenalkan DNS sebagai solusi otomatis untuk menerjemahkan nama domain ke alamat IP.  
    \- Sistem ini menggantikan hosts.txt dengan metode yang lebih terstruktur, terdistribusi, dan scalable.
3. Standarisasi DNS (1984 – 1987)  
    \- DNS diadopsi secara luas setelah diterbitkannya spesifikasi resmi dalam RFC 882 dan RFC 883 (kemudian diperbarui menjadi RFC 1034 dan RFC 1035).  
    \- Sistem hierarkis diperkenalkan, membagi domain menjadi beberapa tingkat seperti .com, .org, .edu, dan sebagainya.

**🧱 Struktur Hierarki DNS** DNS memiliki sistem berbasis hierarki, mirip dengan struktur pohon terbalik:

1. Root Level: Puncak dari sistem DNS, diwakili oleh titik (.).
2. TLD (Top-Level Domain): Seperti .com, .org, .id, .edu.
3. Second-Level Domain: Nama unik yang didaftarkan (contoh: example dalam example.com).
4. Subdomain: Bagian tambahan sebelum second-level domain (contoh: www dalam www.example.com).

**🌐 Tujuan Utama DNS**

1. Menerjemahkan Nama Domain ke Alamat IP – Memudahkan akses ke situs web tanpa menghafal alamat numerik.
2. Mendistribusikan Beban – DNS terdesentralisasi agar dapat melayani permintaan dalam skala besar.
3. Meningkatkan Keamanan dan Kecepatan – Dengan fitur seperti caching, redundansi, dan DNS Security Extensions (DNSSEC).

**📊 Pentingnya DNS dalam Internet Modern** DNS menjadi tulang punggung komunikasi internet modern, memungkinkan miliaran perangkat terhubung secara efisien dan cepat. Tanpa DNS, navigasi di internet akan sangat rumit karena pengguna harus mengingat alamat IP dari setiap layanan atau situs web yang ingin diakses.

# DNS - Install Bind9

**1. Persiapan**

Pastikan sistem Anda diperbarui :

```
sudo apt update && sudo apt upgrade -y
```

**2. Install Bind9**

Jalankan perintah berikut untuk menginstal Bind9 :

```
sudo apt install bind9 bind9-utils bind9-doc -y
```

**3. Konfigurasi Bind9**

- Konfigurasi Utama di `named.conf.local`  
    Buka file konfigurasi :

```
sudo nano /etc/bind/named.conf.local
```

Tambahkan zona untuk domain (contoh: `ilusidigital.com`) :

```
zone "ilusidigtal.com.com" {
    type master;
    file "/etc/bind/db.ilusidigital.com";
};

zone "2.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192";
};
```

- Membuat Zona File Forward (`db.ilusidigital.com`)  
    Salin template file:

```
sudo cp /etc/bind/db.local /etc/bind/db.ilusidigital.com
sudo nano /etc/bind/db.ilusidigital.com
```

Isi dengan konfigurasi berikut (sesuaikan `contoh.com` dan IP) :

```
$TTL    604800
@       IN      SOA     ns.ilusidigital.com. admin.ilusidigital.com. (
                        2024031901 ; Serial
                        604800     ; Refresh
                        86400      ; Retry
                        2419200    ; Expire
                        604800 )   ; Negative Cache TTL

; Records
@       IN      NS      ns.ilusidigital.com.
ns      IN      A       192.168.2.10
www     IN      A       192.168.2.20
```

- Membuat Zona File Reverse (db.192)  
    Buat file reverse :

```
sudo cp /etc/bind/db.127 /etc/bind/db.192
sudo nano /etc/bind/db.192
```

Isi dengan konfigurasi berikut :

```
$TTL    604800
@       IN      SOA     ns.ilusidigital.com. admin.ilusidigital.com. (
                        2024031901 ; Serial
                        604800     ; Refresh
                        86400      ; Retry
                        2419200    ; Expire
                        604800 )   ; Negative Cache TTL

; Records
@       IN      NS      ns.ilusidigital.com.
10      IN      PTR     ns.ilusidigital.com.
20      IN      PTR     www.ilusidigital.com.

```

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary" id="bkmrk-4.-cek-dan-validasi-"><div class="sticky top-9"><div class="absolute bottom-0 right-0 flex h-9 items-center pr-2"><div class="flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">**4. Cek dan Validasi Konfigurasi**</div></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-"></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-periksa-kesalahan-ko">- Periksa Kesalahan Konfigurasi :

</div>```
sudo named-checkconf
```

- Validasi File Zona :

```
sudo named-checkzone ilusidigital.com /etc/bind/db.ilusidigital.com
sudo named-checkzone 2.168.192.in-addr.arpa /etc/bind/db.192
```

Jika hasilnya **OK**, lanjutkan ke langkah berikutnya.

**5. Restart dan Aktifkan Bind9**

Restart layanan Bind9 :

```
sudo systemctl restart bind9
```

Aktifkan agar otomatis berjalan saat boot :

```
sudo systemctl enable bind9
```

**6. Konfigurasi Client (Resolv.conf)**

Edit file `resolv.conf` :

```
sudo nano /etc/resolv.conf
```

Tambahkan baris berikut :

```
nameserver 192.168.2.10
search ilusidigital.com
```

**7. Uji Coba DNS**

- Cek Nama Domain :

```
dig www.ilusidigital.com
```

- Cek Reverse DNS:

```
dig -x 192.168.2.10
```

- Cek dengan `nslookup` :

```
nslookup www.ilusidigital.com
```

Jika semua berhasil, berarti DNS Bind9 sudah berjalan dengan benar.

# DNS - List Domain Name System Public

Berikut adalah daftar tabel alamat DNS publik :

<div class="overflow-x-auto contain-inline-size" id="bkmrk-provider-primary-dns"><table data-end="4281" data-start="115" style="width: 109.405%;"><thead data-end="294" data-start="115"><tr data-end="294" data-start="115"><th data-end="138" data-start="115" style="width: 12.3908%;">**Provider**</th><th data-end="164" data-start="138" style="width: 16.5608%;">**Primary DNS**</th><th data-end="192" data-start="164" style="width: 16.6795%;">**Secondary DNS**</th><th data-end="247" data-start="192" style="width: 22.28%;">**Kegunaan Utama**</th><th data-end="294" data-start="247" style="width: 32.0492%;">**Keunggulan**</th></tr></thead><tbody data-end="4281" data-start="474"><tr data-end="687" data-start="474"><td style="width: 12.3908%;">**Cloudflare**</td><td style="width: 16.5608%;">`1.1.1.1`</td><td style="width: 16.6795%;">`1.0.0.1`</td><td style="width: 22.28%;">DNS cepat dan menjaga privasi (tanpa logging).</td><td style="width: 32.0492%;">Cepat, privasi tinggi, mendukung DNS over HTTPS (DoH) dan DNS over TLS (DoT).</td></tr><tr data-end="867" data-start="688"><td style="width: 12.3908%;">**Cloudflare Family**</td><td style="width: 16.5608%;">`1.1.1.2`</td><td style="width: 16.6795%;">`1.0.0.2`</td><td style="width: 22.28%;">Blokir malware.</td><td style="width: 32.0492%;">Keamanan ekstra untuk perangkat keluarga.</td></tr><tr data-end="1046" data-start="868"><td style="width: 12.3908%;">**Cloudflare Family**</td><td style="width: 16.5608%;">`1.1.1.3`</td><td style="width: 16.6795%;">`1.0.0.3`</td><td style="width: 22.28%;">Blokir malware dan konten dewasa.</td><td style="width: 32.0492%;">Proteksi ganda: malware + konten dewasa.</td></tr><tr data-end="1226" data-start="1047"><td style="width: 12.3908%;">**Google Public DNS**</td><td style="width: 16.5608%;">`8.8.8.8`</td><td style="width: 16.6795%;">`8.8.4.4`</td><td style="width: 22.28%;">DNS cepat dan stabil untuk kebutuhan umum.</td><td style="width: 32.0492%;">Performa tinggi, cakupan global luas.</td></tr><tr data-end="1405" data-start="1227"><td style="width: 12.3908%;">**Google Secure DNS**</td><td style="width: 16.5608%;">`2001:4860:4860::8888`</td><td style="width: 16.6795%;">`2001:4860:4860::8844`</td><td style="width: 22.28%;">DNS Google dalam format IPv6.</td><td style="width: 32.0492%;">Dukungan IPv6 untuk lingkungan modern.</td></tr><tr data-end="1590" data-start="1406"><td style="width: 12.3908%;">**Quad9 Secure**</td><td style="width: 16.5608%;">`9.9.9.9`</td><td style="width: 16.6795%;">`149.112.112.112`</td><td style="width: 22.28%;">DNS aman dengan filter malware dan privasi tinggi.</td><td style="width: 32.0492%;">Perlindungan malware, tanpa logging IP pengguna.</td></tr><tr data-end="1770" data-start="1591"><td style="width: 12.3908%;">**Quad9 Unsecured**</td><td style="width: 16.5608%;">`9.9.9.10`</td><td style="width: 16.6795%;">`149.112.112.10`</td><td style="width: 22.28%;">DNS tanpa filter (tidak memblokir konten).</td><td style="width: 32.0492%;">Resolusi DNS murni tanpa sensor.</td></tr><tr data-end="1950" data-start="1771"><td style="width: 12.3908%;">**Quad9 ECS (EDNS)**</td><td style="width: 16.5608%;">`9.9.9.11`</td><td style="width: 16.6795%;">`149.112.112.11`</td><td style="width: 22.28%;">DNS aman + mendukung EDNS Client Subnet.</td><td style="width: 32.0492%;">Cocok untuk meningkatkan kecepatan CDN.</td></tr><tr data-end="2130" data-start="1951"><td style="width: 12.3908%;">**OpenDNS (Cisco)**</td><td style="width: 16.5608%;">`208.67.222.222`</td><td style="width: 16.6795%;">`208.67.220.220`</td><td style="width: 22.28%;">DNS cepat, mendukung parental control.</td><td style="width: 32.0492%;">Stabil, fitur filter kustom (OpenDNS Home).</td></tr><tr data-end="2310" data-start="2131"><td style="width: 12.3908%;">**OpenDNS Family**</td><td style="width: 16.5608%;">`208.67.222.123`</td><td style="width: 16.6795%;">`208.67.220.123`</td><td style="width: 22.28%;">Blokir konten dewasa secara otomatis.</td><td style="width: 32.0492%;">Proteksi anak-anak dan keluarga.</td></tr><tr data-end="2489" data-start="2311"><td style="width: 12.3908%;">**AdGuard DNS**</td><td style="width: 16.5608%;">`94.140.14.14`</td><td style="width: 16.6795%;">`94.140.15.15`</td><td style="width: 22.28%;">Blokir iklan dan pelacak secara otomatis.</td><td style="width: 32.0492%;">Anti-iklan, privasi tinggi, open-source.</td></tr><tr data-end="2669" data-start="2490"><td style="width: 12.3908%;">**AdGuard Family**</td><td style="width: 16.5608%;">`94.140.14.15`</td><td style="width: 16.6795%;">`94.140.15.16`</td><td style="width: 22.28%;">Blokir iklan, pelacak, dan konten dewasa.</td><td style="width: 32.0492%;">Perlindungan tambahan untuk anak-anak.</td></tr><tr data-end="2848" data-start="2670"><td style="width: 12.3908%;">**Clean Browsing**</td><td style="width: 16.5608%;">`185.228.168.9`</td><td style="width: 16.6795%;">`185.228.169.9`</td><td style="width: 22.28%;">DNS aman dengan filter konten dewasa.</td><td style="width: 32.0492%;">Proteksi keluarga, bebas konten dewasa.</td></tr><tr data-end="3027" data-start="2849"><td style="width: 12.3908%;">**Clean Browsing Family**</td><td style="width: 16.5608%;">`185.228.168.168`</td><td style="width: 16.6795%;">`185.228.169.168`</td><td style="width: 22.28%;">Blokir malware dan konten dewasa secara penuh.</td><td style="width: 32.0492%;">Keamanan tinggi dengan kontrol ketat.</td></tr><tr data-end="3206" data-start="3028"><td style="width: 12.3908%;">**Yandex DNS**</td><td style="width: 16.5608%;">`77.88.8.8`</td><td style="width: 16.6795%;">`77.88.8.1`</td><td style="width: 22.28%;">DNS cepat dengan pilihan mode proteksi.</td><td style="width: 32.0492%;">Pilihan mode dasar, aman, atau family.</td></tr><tr data-end="3386" data-start="3207"><td style="width: 12.3908%;">**Yandex Safe**</td><td style="width: 16.5608%;">`77.88.8.88`</td><td style="width: 16.6795%;">`77.88.8.2`</td><td style="width: 22.28%;">Melindungi dari malware dan phishing.</td><td style="width: 32.0492%;">Fokus pada keamanan pengguna.</td></tr><tr data-end="3565" data-start="3387"><td style="width: 12.3908%;">**Yandex Family**</td><td style="width: 16.5608%;">`77.88.8.7`</td><td style="width: 16.6795%;">`77.88.8.3`</td><td style="width: 22.28%;">Blokir konten dewasa dan malware.</td><td style="width: 32.0492%;">Cocok untuk lingkungan rumah atau sekolah.</td></tr><tr data-end="3744" data-start="3566"><td style="width: 12.3908%;">**Comodo Secure DNS**</td><td style="width: 16.5608%;">`8.26.56.26`</td><td style="width: 16.6795%;">`8.20.247.20`</td><td style="width: 22.28%;">DNS cepat dengan perlindungan dari ancaman online.</td><td style="width: 32.0492%;">Blokir malware, phishing, dan spyware.</td></tr><tr data-end="3923" data-start="3745"><td style="width: 12.3908%;">**IBM Quad101**</td><td style="width: 16.5608%;">`101.101.101.101`</td><td style="width: 16.6795%;">`101.102.103.104`</td><td style="width: 22.28%;">DNS aman, cepat, dan menjaga privasi pengguna.</td><td style="width: 32.0492%;">Fokus pada privasi dan performa tinggi.</td></tr><tr data-end="4102" data-start="3924"><td style="width: 12.3908%;">**NextDNS**</td><td style="width: 16.5608%;">**Custom**</td><td style="width: 16.6795%;">**Custom**</td><td style="width: 22.28%;">DNS berbasis kustomisasi (filter iklan, malware).</td><td style="width: 32.0492%;">Fleksibel, analitik lengkap, open-source.</td></tr><tr data-end="4281" data-start="4103"><td style="width: 12.3908%;">**UltraDNS**</td><td style="width: 16.5608%;">`156.154.70.1`</td><td style="width: 16.6795%;">`156.154.71.1`</td><td style="width: 22.28%;">DNS komersial cepat dengan perlindungan malware.</td><td style="width: 32.0492%;">Performa tinggi, tersedia di banyak negara.</td></tr></tbody></table>

</div>**Rangkuman Penggunaan :**

- **Untuk Kecepatan &amp; Privasi Tinggi**:
    
    
    - Cloudflare (`1.1.1.1`), Google Public DNS (`8.8.8.8`), IBM Quad101.
- **Untuk Perlindungan Malware &amp; Phishing**:
    
    
    - Quad9 Secure (`9.9.9.9`), Comodo Secure, Yandex Safe.
- **Untuk Blokir Iklan &amp; Pelacak**:
    
    
    - AdGuard DNS, NextDNS (kustom).
- **Untuk Kontrol Parental &amp; Blokir Konten Dewasa**:
    
    
    - Cloudflare Family, OpenDNS Family, CleanBrowsing.
- **Untuk Lingkungan Bisnis (Enterprise DNS)**:
    
    
    - UltraDNS, IBM Quad101, OpenDNS.

# DNS - DNSSEC

**DNSSEC (Domain Name System Security Extensions)** adalah seperangkat ekstensi keamanan untuk **DNS (Domain Name System)** yang dirancang untuk melindungi pengguna dari manipulasi data DNS, seperti **DNS spoofing** atau **cache poisoning**. DNSSEC memastikan bahwa informasi yang dikirim melalui DNS berasal dari sumber yang tepercaya dan tidak diubah selama proses transmisi.

🔒 **Fungsi Utama DNSSEC:**

1. **Otentikasi Sumber Data**: Memastikan bahwa data DNS berasal dari server yang benar (asli).
2. **Integritas Data**: Menjamin bahwa data DNS tidak diubah atau dimanipulasi dalam perjalanan.
3. **Perlindungan dari Serangan**: Melindungi dari serangan seperti *DNS spoofing* atau *cache poisoning*.

📊 **Cara Kerja DNSSEC:**

1. **Tanda Tangan Digital (Digital Signature)**: 
    - Zona DNS yang diaktifkan DNSSEC akan menandatangani setiap respons menggunakan **kriptografi kunci publik**.
    - Setiap rekam DNS (seperti A, AAAA, MX) memiliki tanda tangan digital yang diverifikasi oleh resolver DNS.
2. **Verifikasi Kunci (Chain of Trust)**: 
    - Dimulai dari **root zone** DNS, setiap lapisan zona DNS memverifikasi kunci publik zona di bawahnya.
    - Ini membentuk **rantai kepercayaan** (chain of trust) dari root hingga domain yang diakses.

🔍 **Rekaman DNS Khusus di DNSSEC:**

- **RRSIG**: Menyimpan tanda tangan digital.
- **DNSKEY**: Menyimpan kunci publik.
- **DS (Delegation Signer)**: Menghubungkan zona ke induknya.
- **NSEC/NSEC3**: Mencegah pencacahan zona dan menunjukkan catatan yang tidak ada.

✅ **Keuntungan DNSSEC:**

- Perlindungan dari manipulasi data DNS.
- Meningkatkan kepercayaan dan keamanan di internet.
- Mencegah pengguna diarahkan ke situs palsu atau berbahaya.

⚠️ **Kelemahan DNSSEC:**

- Kompleksitas dalam implementasi dan pengelolaan.
- Memerlukan dukungan dari seluruh rantai DNS (termasuk registrar dan resolver).
- Penambahan overhead karena verifikasi tanda tangan.

# DNS - Config DNSSEC

**A. Cara Mengatur DNSSEC pada Domain**

Langkah-langkah mengatur DNSSEC bervariasi tergantung pada registrar (penyedia domain) dan penyedia DNS, tetapi secara umum mengikuti proses berikut:

---

1️⃣ **Pastikan Penyedia DNS dan Registrar Mendukung DNSSEC**

- Cek apakah registrar domain Anda mendukung DNSSEC.
- Pastikan layanan DNS (misalnya Cloudflare, Google Domains, AWS Route 53) memiliki fitur DNSSEC.

---

2️⃣ **Aktifkan DNSSEC di Penyedia DNS**

- Masuk ke panel kontrol penyedia DNS.
- Cari opsi **DNSSEC** dan aktifkan.
- Sistem akan menghasilkan:
    
    
    - **DNSKEY** (Kunci Publik)
    - **DS Record** (Delegation Signer Record)

---

3️⃣ **Tambahkan DS Record ke Registrar Domain**

- Salin **DS Record** dari penyedia DNS.
- Buka dashboard registrar (misalnya GoDaddy, Namecheap, Cloudflare).
- Temukan opsi **DNSSEC Management** atau **Advanced DNS Settings**.
- Masukkan informasi DS Record:
    
    
    - **Key Tag**: Identifikasi kunci DNSKEY.
    - **Algorithm**: Algoritma kriptografi (misal: RSA/SHA-256).
    - **Digest Type**: Metode hash (misal: SHA-256).
    - **Digest**: Hasil hash dari DNSKEY.

---

4️⃣ **Verifikasi Konfigurasi**

- Setelah beberapa menit hingga beberapa jam (tergantung propagasi DNS), DNSSEC akan aktif.
- Pastikan konfigurasi benar sebelum melanjutkan ke pengujian.

# DNS - Testing DNSSEC

Ada beberapa Tools online dan perintah yang dapat digunakan untuk memverifikasi DNSSEC :

---

**1. Menggunakan Tools Online**

1. **[DNSViz](http://dnsviz.net/)** – Analisis mendalam tentang status DNSSEC.
2. **<a data-end="1808" data-start="1739" rel="noopener" target="_new">Verisign DNSSEC Debugger</a>** – Mengecek dan menganalisis pengaturan DNSSEC.
3. **[Google DNSSEC Check](https://dns.google/)** – Melakukan validasi DNSSEC.

**Contoh Penggunaan DNSViz**:

1. Buka [DNSViz](http://dnsviz.net/).
2. Masukkan nama domain Anda ( contoh: `ilusidigital.com `).
3. Klik **Go** untuk memulai analisis.
4. Periksa apakah terdapat rantai kepercayaan (Chain of Trust) dari root ke domain Anda.

---

**2. Menggunakan Perintah di Terminal (Linux/macOS/Windows WSL)**

1. **Menggunakan `dig` (Domain Information Groper)** :
    
    
    - Periksa tanda tangan DNSSEC:
    
    ```
    dig ilusidigital.com +dnssec
    ```
    
    
    - Cek DS Record di root zone:
    
    ```
    dig ilusidigital.com DS +short
    ```
    
    **Jika DNSSEC aktif**, Anda akan melihat output berupa record RRSIG (tanda tangan digital).
    
    <div class="sticky top-9"> </div>

---

**3. Menggunakan `nslookup` di Windows**

- Jalankan perintah:

```
nslookup -type=ds ilusidigital.com
```

<div class="sticky top-9" id="bkmrk--3" style="text-align: justify;"></div>Jika berhasil, akan muncul informasi DS Record.

---

**Contoh Output yang Valid**

```
ilusidigital.com. 3600 IN RRSIG A 8 2 3600 (Signature Info) 
```

<div class="sticky top-9" id="bkmrk--5" style="text-align: justify;"><div class="absolute bottom-0 right-0 flex h-9 items-center pr-2">  
</div></div>- **DS Record** dan **RRSIG** menunjukkan DNSSEC aktif.
- Jika tidak ada output tersebut, berarti DNSSEC belum diaktifkan.

**Kesimpulan**:

- **Mengatur DNSSEC** memerlukan sinkronisasi antara **penyedia DNS** dan **registrar domain**.
- **Uji DNSSEC** menggunakan alat seperti **DNSViz** atau perintah **dig** untuk memverifikasi keberhasilan konfigurasi.