Cara Memperbaiki Ubuntu Server tidak Bisa Ping ke DNS
Kronologi:
- Permasalahan ini saya temukan pada Ubuntu Server yang baru dipasang di VirtualBox.
- Saya menggunakan konfigurasi IP secara dinamis, bukan statis.
- Saat instalasi pertama kali, saya menggunakan jaringan NAT. Setelah instalasi selesai, ping ke IP 8.8.8.8 maupun ke domain google.com bisa dilakukan.
- Setelah itu, saya mengubah jaringannya dari NAT ke Bridge, ping ke IP 8.8.8.8 bisa, akan tetapi ping ke domain google.com tidak bisa.
- Secara bawaan, alih-alih menggunakan paket resolvconf sebagai resolver DNS, Ubuntu 22.04 menggunakan resolver DNS dari Systemd, yaitu systemd-resolved.
- Kemungkinan sistem resolver tidak berjalan dengan baik.
- Perlu konfigurasi manual DNS resolver-nya.
- DNS menggunakan DNG Google dengan IP 8.8.8.8 dan 8.8.4.4.
- Setelah resolver DNS dikonfigurasi manual dan memuat ulang layanan systemd-resolved, ping ke domain google.com masih tetap tidak bisa.
- Permasalahan kemungkinan ada pada backend sistem jaringannya Ubuntu yang juga menggunakan Systemd, yaitu networkd atau systemd-networkd.
- Sebelum memperbaiki, setelan jaringan saya ubah kembali ke NAT, kemudian saya muat ulang sistemnya.
- Setelah masuk kemabli ke sistem, saya memasang satu paket tambahan, nama paket tersebut adalah openvswitch-switch[1]. Tujuan utama saya memasang paket ini adalah agar tidak muncul peringatan bahwa ovsdb-server.service tidak berjalan ketika mengoperasikan netplan. Perintah pemasangannya adalah $ sudo apt install openvswitch-switch.
- Saya kemudian mengubah kembali jaringan mesin vm dari NAT ke Bridge.
- Buka konfigurasi Networkd dengan perintah $ sudo nano /etc/systemd/networkd.conf.
- Pada bagian bawah [DHCPv4] tambahakan opsi UseDNS=false. Opsi ini akan mengabaikan konfigurasi yang disediakan oleh DHCP.
[1] Paket openvswitch-switch biasa disebut dengan Open vSwitch, yaitu sebuah paket atau aplikasi virtual switch yang digunakan untuk mengelola trafik jaringan pada lingkungan virtual. Open vSwitch menyediakan antarmuka Remote Procedure Call (RPC) ke satu atau beberapa basis data OVS (OVSDB). Hal ini memungkinkan komponen lain berinteraksi dan mengelola konfigurasi yang tersimpan dalam basis data tersebut.
Alih-alih menggunakan konfigurasi secara dinamis (DHCP), mungkin problem tidak akan serumit ini jika dikonfigurasi secara statis.
Tambahan
Baru saja, saya mengaktifkan kembali mesin virtual Ubuntu saya. Muncul permasalahan baru, dimana paket manajer APT tidak dapat mengambil berkas dari repositori.
Ada beberapa galat yang ditampilkan, diantaranya error reading from server, 104 connection reset by peer, connection failed, waiting for headers dan could not resolve.
Satu masalah, berbagai galat.
Setelah berfikir beberapa saat, tiba-tiba saya teringat dengan UFW. Sebuah antarmuka ramah pengguna untuk mengelola firewall iptables pada sistem Linux.
Secara umum, UFW ini otomatis aktif saat setelah memasang Ubuntu. Jadi, saya perlu memastikan lagi apakah status UFW-nya aktif atau nonaktif.
$ sudo ufw status
Apabila hasil hari konsol Anda adalah status: active, maka Anda perlu menonaktifkan UFW untuk sementara waktu.
$ sudo ufw disable
Perintah tersebut akan menonaktifkan UFW bahkan pada saat but ulang.
Bagi Anda yang masih merasa bahwa UFW ini sangat perlu, Anda cukup memasang beberapa aturan yang mengizinkan lalu lintas beberapa layanan dapat berjalan sesuai keinginan.
Pada kasus ini, ada beberapa layanan yang harus dipastikan UFW memiliki aturan yang mengizinkannya. Diantaranya; layanan HTTP (porta 80) dan HTTPS (porta 443), dimana keduanya menggunakan protokol TCP, serta DNS (porta 53) yang berjalan baik di protokol TCP maupun UDP.
Eksekusi perintah berikut untuk membuat aturan yang mengizinkan beberapa layanan tersebut berjalan.
$ sudo ufw allow out 80/tcp
$ sudo ufw allow out 443/tcp
$ sudo ufw allow out 53/tcp
$ sudo ufw allow out 53/udp
Dengan beberapa aturan tersebut, kini APT dapat dijalankan dengan sebagaimana mestinya.
Kenapa APT tidak bisa dijalankan tanpa beberapa aturan tersebut di UFW?
Ya, karena APT menggunakan layanan HTTP maupun HTTPS untuk berkomunikasi dengan peladen repositori, mengunduh file daftar paket, dan menjadikan daftar paket tersebut sebagai daftar paket yang akan diunduh. Ditambah komunikasi ke peladen repositori juga menggunakan dns resolver, dimana konfigurasi repositori terdiri dari beberapa hal, khususnya domain peladen itu sendiri.
Komentar
Posting Komentar
Silahkan tinggalkan komentar Anda di sini.