Cara Melakukan Pelacakan Rute Jaringan
· 2 min read · Label OpenSourceJejak rute paket ke host jaringan menunjukkan semua node perantara yang dilalui paket sebelum mencapai tujuan yang ditentukan. Artinya, dengan menggunakan tracing, Anda dapat mengetahui node mana, dengan alamat IP mana, suatu paket dikirimkan sebelum dikirimkan ke tujuannya.
Penelusuran dapat digunakan untuk mengidentifikasi masalah yang berkaitan dengan pengoperasian jaringan komputer, serta untuk penelitian jaringan (menentukan struktur jaringan, mencari node jaringan perantara, dan lain-lain).
1. Cara kerja penelusuran jaringan
Paket jaringan yang diteruskan terdiri dari dua area, yaitu header dan data. Header berisi berbagai informasi, misalnya alamat IP titik pengiriman dan tujuan, port pengiriman dan tujuan, jenis paket, checksum paket, dll. Di antara bidang header, protokol IP memiliki bidang seperti time to live (TTL) atau masa pakai paket. Ini adalah counter dengan nomor yang berkurang satu setiap kali sebuah paket melewati node baru. Counter ini dibuat untuk memastikan bahwa paket yang bermasalah (misalnya jika terjadi kesalahan yang mengakibatkan rute loopback) tidak berjalan melalui jaringan tanpa henti. Artinya, setiap paket, setelah melewati sejumlah node tertentu, pada akhirnya akan mencapai tujuannya atau akan dibuang oleh salah satu node jaringan ketika “masa pakainya” berakhir.
Ketika penghitung TTL menjadi nol, gateway berikutnya tidak meneruskan paket ini lagi. Namun pada saat yang sama, gateway mengirimkan respons TIME_EXCEEDED melalui protokol ICMP ke alamat IP asal paket dengan masa berlaku habis (masa pakai telah habis). Dan respons ini berisi alamat IP gateway tempat paket tersebut berakhir.
Jadi, inti dari pelacakan adalah bahwa satu paket dikirim dengan waktu hidup (TTL) diatur ke satu gateway pertama yang akan mengurangi nilainya satu, melihat bahwa penghitung menjadi nol, tidak mengirim paket ini ke mana pun, tetapi mengirimi kami respons bahwa paket "mati".
Kita sudah mengetahui bahwa paket tersebut mati, dari kasus ini kita dapat mencari jawabannya pada alamat IP gateway tempat kemalangan ini terjadi pada paket tersebut. Kemudian sebuah paket dikirim dengan counter disetel ke 2 tetapi paket tetap akan melewati gateway pertama (kita sudah mengetahui IP-nya), tetapi kesialan (counter mencapai nol) sudah terjadi di gateway kedua. Pada kasus ini kita akan menerima respons ICMP dari IP gerbang ini. Kemudian paket berikutnya dikirim, dan seterusnya, hingga semua node dan host jaringan yang kita perlukan teridentifikasi.
2. Jenis penelusuran jaringan
Ada beberapa jenis penelusuran. Perbedaan utamanya terletak pada paket yang dikirim - dapat berupa paket protokol transport TCP atau UDP, atau paket Protokol Pesan Kontrol Internet ICMP, atau paket IP mentah.
Terkadang, karena firewall atau konfigurasi node jaringan, alamat IP node tidak dapat diperoleh. Dalam hal ini, Anda dapat mencoba menggunakan metode lain yang mungkin membuahkan hasil.
Hal ini dapat diilustrasikan dengan dua contoh traceroute berikut ke host yang sama:
Tanda bintang pada gambar di atas menunjukkan bahwa kami tidak mengenali beberapa node.
Berkat perubahan metode penelusuran, semua node perantara dapat ditemukan. Metode lain mungkin memberikan hasil yang berbeda dari yang ditunjukkan.
Beberapa program memungkinkan Anda memilih metode penelusuran, mengubah nomor port, dan juga mengatur nilai beberapa bidang di header paket.
3. Software untuk penelusuran jaringan
Ada banyak utilitas penelusuran berbeda yang tersedia, beberapa di antaranya mendukung metode penelusuran berbeda. Contoh program tersebut:
- traceroute
- tracepath
- mtr and mtr-gtk (console and graphical versions, respectively)
- lft
- tcptraceroute
Anda juga dapat menentukan node rute paket menggunakan Nmap (beberapa cara) dan bahkan menggunakan ping !
Pada artikel ini saya akan mengulas semua program yang tercantum di atas. Mari kita mulai dengan traceroute , karena ia mengimplementasikan sebagian besar metode pemindaian.
A. Cara menggunakan traceroute
Untuk mulai melacak, cukup tentukan IP atau situs yang ingin Anda lacak rutenya:
Jika Anda tertarik pada node terdekat (jaringan lokal, misalnya), maka Anda dapat memilih situs mana pun sebagai tujuan akhir.
a. Metode penelusuran di traceroute
Dalam lingkungan jaringan saat ini, metode penelusuran tradisional tidak selalu dapat diterapkan karena meluasnya penggunaan firewall. Firewall semacam itu memfilter port UDP yang “tidak mungkin” atau bahkan paket gema ICMP. Untuk mengatasi masalah ini, beberapa metode penelusuran jaringan tambahan (termasuk tcp) telah diterapkan. Metode ini mencoba menggunakan protokol dan port sumber/tujuan yang berbeda untuk melewati firewall (sehingga firewall menganggapnya hanya sebagai permulaan sesi jaringan dari jenis yang diizinkan).
Metode yang berbeda memiliki opsi khusus, bergantung pada protokol yang digunakan. Opsi metode ini dapat ditentukan menggunakan opsi -O . Beberapa opsi dipisahkan dengan koma (atau gunakan beberapa -Os pada baris perintah ). Masing-masing metode mungkin mempunyai pilihan khususnya sendiri atau mungkin tidak ada sama sekali.
a.1. default
Metode default - digunakan jika tidak ada metode lain yang ditentukan, atau dapat ditentukan secara eksplisit dengan opsi -M default . Ini adalah metode penelusuran rute yang tradisional dan kuno.
Paket probe adalah datagram UDP dengan port tujuan yang disebut "tidak mungkin". Port probe "tidak mungkin" pertama adalah 33434, kemudian untuk setiap probe berikutnya bertambah satu. Karena port tersebut diperkirakan tidak digunakan, host tujuan biasanya akan mengembalikan respons akhir "icmp unreach port". Nomor port dapat diubah (lebih lanjut tentang ini di bawah).
Metode ini dapat dilakukan oleh pengguna yang tidak memiliki hak istimewa.
a.2. icmp
Ini adalah metode yang paling umum, menggunakan paket icmp echo sebagai probe. Jika Anda dapat melakukan ping ke host tujuan, maka penelusuran icmp juga dapat diterapkan. Untuk memilih metode ini, gunakan opsi -M icmp atau versi singkatnya -I .
Metode ini diperbolehkan untuk pengguna yang tidak memiliki hak istimewa.
Metode ini memiliki dua opsi spesifik:
a.2.1. raw
Gunakan hanya soket raw (metode tradisional). Secara default, metode ini dicoba terlebih dahulu (untuk alasan kompatibilitas), kemudian soket dgram icmp baru dicoba sebagai cadangan.
a.2.2. dgram
Gunakan hanya soket dgram icmp.
a.3. TCP
Metode modern terkenal yang dirancang untuk melewati firewall. Untuk menggunakannya, tentukan opsi -M tcp atau opsi singkat -T . Menggunakan port tujuan tetap (defaultnya adalah 80, http).
Jika ada filter pada jalur pelacakan jaringan, kemungkinan besar port udp yang "tidak biasa" (seperti yang digunakan oleh metode default) atau bahkan icmp echo (seperti untuk icmp) difilter, dan seluruh proses penelusuran akan difilter. berhenti di firewall seperti itu. Untuk melewati filter jaringan, kita hanya perlu menggunakan kombinasi pasangan protokol/port yang diizinkan. Jika kita melakukan penelusuran ke, katakanlah, server email, kemungkinan besar kita dapat menjangkaunya dengan -T -p 25 , meskipun kita tidak dapat menjangkaunya dengan -I .
Metode ini menggunakan “teknik koneksi setengah terbuka” yang terkenal, yang menyebabkan aplikasi di komputer tujuan tidak melihat paket probe kami sama sekali. Biasanya dikirim melalui tcp syn. Untuk port yang tidak mendengarkan, kami mendapat respons reset tcp dan selesai. Untuk port yang mendengarkan secara aktif, kita menerima tcp syn+ack, namun menanggapinya dengan tcp reset (bukannya tcp ack yang diharapkan), sehingga sesi tcp jarak jauh direset, dan aplikasi yang mendengarkan pada port tersebut bahkan tidak menerima pemberitahuan.
Ada beberapa opsi untuk metode tcp:
a.3.1. syn,ack,fin,rst,psh,urg,ece,cwr
Menetapkan tanda TCP tertentu untuk paket probing, kombinasi apa pun darinya dapat digunakan.
a.3.2. flags=NUMBER
Menyetel bidang flags di header tcp ke nomor yang tepat.
a.3.3. ecn
Mengirimkan paket syn dengan flag tcp ECE dan CWR (untuk Pemberitahuan Kemacetan Eksplisit, rfc3168).
a.3.4. sack,timestamps,window_scaling
Menggunakan opsi header tcp yang sesuai dalam paket probing keluar.
a.3.5. sysctl
Menggunakan pengaturan sysctl saat ini (/proc/sys/net/*) untuk opsi header tcp untuk opsi di atas dan ecn. Selalu disetel ke default jika tidak ada yang ditentukan.
a.3.6. mss=NUMBER
Gunakan NUM untuk opsi header maxseg tcp (saat sinkronisasi).
a.3.7. info
Cetak tanda tcp dari respons tcp akhir ketika host target tercapai. Membantu menentukan apakah suatu aplikasi mendengarkan pada suatu port dan hal berguna lainnya.
Opsi defaultnya adalah syn,sysctl.
a.4. tcpconn
Implementasi awal metode tcp hanya menggunakan panggilan connect(2), yang membuka sesi tcp penuh. Tidak disarankan untuk penggunaan normal karena selalu mempengaruhi aplikasi yang mendengarkan pada port pada host tujuan.
Untuk mengaktifkan metode ini, gunakan opsi -M tcpconn.
a.5. udp
Menggunakan datagram udp dengan port tujuan tetap (default 53, dns). Juga dirancang untuk melewati firewall. Untuk menggunakan metode penelusuran ini, tentukan opsi -M udp atau pintasan -U .
Perhatikan bahwa tidak seperti metode tcp, aplikasi terkait pada host tujuan selalu menerima probe kami (dengan data acak) yang dapat membingungkannya. Dalam kebanyakan kasus, ia tidak akan merespons paket kami, jadi kami tidak akan pernah melihat hop (node) terakhir di jalur traceroute. (Untungnya, tampaknya setidaknya server DNS mengirimkan semacam respons).
Cara ini tidak memerlukan hak yang lebih tinggi.
a.6. udplite
Menggunakan probe datagram udplite (dengan port tujuan tetap, default 53). Untuk mengaktifkan metode ini, tentukan opsi -M udplite atau -UL .
Cara ini tidak memerlukan hak yang lebih tinggi.
Pilihan:
coverage=NUMBER
Menyetel cakupan pengiriman udplite ke NUM .
a.7. dccp
Menggunakan paket Permintaan DCCP (rfc4340) untuk probe. Metode ini dapat diaktifkan dengan opsi -M dccp atau -D .
Metode ini menggunakan "teknik koneksi setengah terbuka" yang sama yang digunakan untuk TCP. Port tujuan defaultnya adalah 33434.
Pilihan:
service=NUMBER
Menyetel kode layanan DCCP ke NUMBER (defaultnya adalah 1885957735).
a.8. raw
Metode ini mengirimkan paket mentah dari protokol yang ditentukan. Untuk memanggil metode ini, gunakan opsi -M raw atau -P PROTOCOL .
Tidak ada header khusus protokol transport yang digunakan, hanya header protokol IP.
Menyiratkan -N 1 -w 5 .
Pilihan:
protocol=PROTOCOL
Gunakan PROTOKOL IP (default 253).
4. Cara mempercepat penelusuran. Cara menonaktifkan resolusi IP terbalik ke nama host saat menelusuri
Prinsip cara kerja penelusuran dijelaskan tepat di atas - mengirimkan paket dengan masa pakai yang terus meningkat. Faktanya, semua paket (dengan TTL 1, dengan TTL 2, dengan TTL 3, dst) dapat dikirim secara bersamaan. Dan inilah yang terjadi - secara default, 16 paket dikirim sekaligus (jumlahnya dapat diubah dengan opsi -N ). Hal ini dilakukan untuk mempercepat penelusuran.
Oleh karena itu, tracing sebenarnya sangat cepat. 1-2 detik yang menurut kami untuk menentukan node jaringan sebenarnya dihabiskan untuk mendapatkan nama host untuk IP. Ini dapat dinonaktifkan menggunakan opsi -n .
Dengan menggunakan program waktu , Anda dapat mengukur waktu eksekusi suatu program dengan dan tanpa opsi -n :
Waktu eksekusi tracingnya sendiri adalah 0,206 detik, dan waktu tracing + penentuan nama host ternyata 2.360 detik, yaitu 10 kali lebih lama.
5. Pelacakan IPv6
Secara default, program menerima IP untuk host yang ditentukan untuk penelusuran dan, berdasarkan alamat IP yang diterima, secara otomatis menentukan protokol mana yang digunakan: IPv4 atau IPv6. Jika IP untuk kedua protokol diterima, maka IPv4 digunakan secara default.
Menggunakan opsi -4 dan -6 Anda dapat secara eksplisit menentukan protokol yang diinginkan.
Misalnya:
Jaringan tempat pelacakan dibuat dengan opsi -6 harus mendukung IPv6, jika tidak, tidak akan ada yang berhasil.
6. Mengubah port
Anda dapat mengubah port tujuan menggunakan opsi:
Untuk penelusuran UDP, port yang ditentukan akan digunakan sebagai port dasar (nomor port tujuan akan bertambah untuk setiap probe). Untuk jejak ICMP, nomor yang ditentukan akan digunakan sebagai nilai rangkaian ICMP awal (juga bertambah untuk setiap probe).
Untuk TCP dan lainnya, port yang ditentukan akan digunakan sebagai port tujuan permanen untuk terhubung. Biasanya ini tidak diperlukan, tetapi Anda juga dapat menentukan port sumber, ini dilakukan dengan opsi:
Opsi ini menyiratkan -N 1 -w 5 . Biasanya, port sumber (jika berlaku untuk metode penelusuran yang dipilih) dipilih oleh sistem.
7. Bagaimana memulai penelusuran dari node tertentu. Cara mengurangi atau menambah jumlah node yang akan dilacak
Dengan menggunakan opsi -f , Anda dapat menentukan nomor simpul untuk memulai penelusuran. Nilai defaultnya adalah 1.
Dengan menggunakan opsi -m , Anda dapat menentukan jumlah hop maksimum untuk penelusuran; secara default diatur ke 30.
8. Memilih antarmuka untuk penelusuran
Secara default, paket dikirim dari antarmuka yang rute defaultnya dikonfigurasi. Namun dengan opsi berikut Anda dapat membuat traceroute mengirim paket dari antarmuka yang ditentukan pada baris perintah:
9. Cara menunjukkan sistem otonom mana yang dimiliki suatu node saat menelusuri
Setiap alamat IP dikaitkan dengan Sistem Otonom (AS) . Dengan opsi -A Anda dapat mengaktifkan permintaan nomor AS untuk setiap node di sepanjang jalur pelacakan, misalnya:
Contoh keluaran:
Seperti yang Anda lihat, sistem otonom tidak ditentukan untuk IP lokal 10.*.*.* - yang cukup logis, karena alamat ini tidak diberikan kepada siapa pun. Mengenai alamat 192.168.1.1 dan unit otonom AS198949, ini adalah semacam kesalahan.
Seperti yang Anda lihat dari output perintah sebelumnya, empat node pertama memiliki alamat IP lokal. Node 5 hingga 9 milik sistem otonom AS38082/AS7470 yang sama. Dua node kedua dari belakang milik satu sistem otonom AS12389 dan dua node terakhir juga milik satu sistem otonom AS48666 - penyedia Internet yang menghosting situs unixwinbsd.site
traceroute Options
Perintah traceroute memiliki opsi lain yang mungkin berguna bagi Anda. Anda dapat menemukannya di halaman bantuan program ini:
B. Cara menggunakan tracepath
Program tracepath mirip dengan traceroute , tetapi hanya menggunakan satu teknik penelusuran: UDP, yang untuknya Anda dapat menentukan port khusus. Karena teknik yang dipilih, program ini tidak memerlukan hak istimewa yang lebih tinggi.
Contoh penggunaan:
Di kolom pertama, mungkin ada tanda tanya di sebelah nomor node - ini berarti nomor TTL tidak ada dalam respons yang dikirim dan program mencoba menebaknya. Alih-alih tanda bintang, jika IP tidak dikenali, tidak ada balasan yang ditulis .
Kolom terakhir mungkin berisi angka dan kata asymm . Kata asymm berarti rutenya asimetris - yaitu, dari kita ke node ini paket melewati satu jalur, dan dari node ini ke kita paket melewati jalur yang berbeda. Angka tersebut berarti kemungkinan jumlah lompatan dari node ini ke kita - namun informasinya tidak dapat diandalkan.
tracepath tidak memiliki banyak pilihan:
-4 : Gunakan IPv4 saja
-6 : Gunakan IPv6 saja
-N : Jangan cetak nama host, tetapi cetak nilai IP numerik.
-B : Cetak nama host dan alamat IP dalam bentuk digital.
-l : Tetapkan panjang paket awal, bukan 65535 untuk tracepath atau 128000 untuk tracepath6 .
-M : Tetapkan jumlah hop maksimum (atau TTL maksimum) - yaitu, jumlah node "yang disadap" maksimum. Standarnya adalah 30.
-P : Tetapkan port tujuan awal.
C. Cara menggunakan mtr dan mtr-gtk (versi konsol dan grafis)
Program mtr menggabungkan fungsionalitas program traceroute dan ping ke dalam satu alat diagnostik jaringan. Artinya, program ini menunjukkan rute ke node yang ditentukan dan terus melakukan ping ke setiap hop dan pada saat yang sama mengumpulkan statistik kerugian umum - berdasarkan data ini, Anda dapat menentukan node bermasalah di mana paket hilang.
Contoh penggunaan:
Program ini mendukung beberapa metode penelusuran.
Ini juga mendukung format keluaran yang berbeda untuk menyimpan hasil, misalnya opsi -C , --csv untuk menyimpan hasil dalam format CSV (perhatikan bahwa pemisah sebenarnya bukanlah koma, melainkan titik koma), serta opsi -j , --json untuk menyimpan dalam format keluaran JSON.
Menggunakan opsi -n , --no-dns Anda dapat menonaktifkan resolusi IP ke nama host. Dengan opsi -b , - -show-ips Anda dapat mengaktifkan tampilan nama host dan alamat IP.
Dengan opsi -yn , --ipinfo n Anda dapat mengonfigurasi tampilan informasi tambahan tentang setiap IP hop. Untuk n Anda perlu menentukan angka yang artinya:
0 Show autonomous system (AS) number (equivalent to -z)
1 Show IP prefix
2 Show AS-based country code
3 Show RIR (ripencc, arin, ...)
4 Show IP prefix allocation date
Bagi saya, untuk nilai -y apa pun, hanya nomor sistem otonom yang selalu ditampilkan. Untungnya, Anda dapat menelusuri berbagai tampilan menggunakan tombol "y".
Opsi -z , --aslookup menampilkan nomor Sistem Otonom (AS) untuk setiap hop.
Opsi -f NUM digunakan untuk mengatur nomor TTL pertama. Defaultnya adalah 1 .
Opsi -m menentukan jumlah maksimum hop (nilai waktu hidup maksimum) yang akan diproses selama penelusuran. Standarnya adalah 30 .
Opsi -U NUM menetapkan jumlah maksimum host yang tidak diketahui. Standarnya adalah 5 . Rupanya, setelah mencapai nilai tersebut, penelusuran lebih lanjut akan dihentikan.
Dengan opsi -u , --udp , program akan menggunakan datagram UDP, bukan ICMP ECHO.
Dan dengan opsi -T , --tcp Anda dapat mengatur penggunaan paket TCP SYN alih-alih ICMP ECHO. PACKETSIZE diabaikan karena paket SYN tidak dapat memuat data.
Di mtr Anda bahkan dapat menggunakan protokol SCTP untuk penelusuran; untuk melakukan ini, tentukan opsi -S , --sctp dan paket Protokol Transmisi Kontrol Aliran akan digunakan sebagai pengganti ICMP ECHO.
Perintah interaktif tersedia saat program sedang berjalan. Jika Anda menekan d , Anda dapat beralih di antara tampilan yang berbeda.
Menggunakan tombol r Anda dapat mengatur ulang statistik.
Anda dapat menggunakan tombol o untuk mengubah urutan kolom. Omong-omong, dengan opsi -o Anda dapat mengatur bidang mana yang ingin Anda tampilkan dan urutannya. Untuk detailnya lihat:
D. Cara menggunakan lft
Program lft memiliki banyak opsi penelusuran dan dari uraiannya berikut ini bahwa program mencoba beberapa kombinasi dan secara otomatis memilih solusi terbaik. Sejujurnya, saya tidak memperhatikan hal ini: hasil dari mencoba berbagai metode penelusuran secara manual memungkinkan Anda memilih opsi terbaik.
Program ini didokumentasikan dengan baik dan dapat digunakan sebagai alternatif traceroute jika diinginkan .
E. Cara menggunakan tcptraceroute
Program tcptraceroute hanya menggunakan paket dari satu protokol TCP. Anda dapat menyetel tanda berbeda di header paket ini dengan opsi. Program traceroute juga memungkinkan Anda menyetel flag protokol TCP, dan terdapat lebih banyak opsi konfigurasi.
10. Pelacakan Jaringan di Nmap
Nmap mempunyai pilihan --traceroute untuk tracing , contoh tracing ke website unixwinbsd.site.
Jika Anda tidak ingin memindai port, tetapi hanya ingin melakukan penelusuran, tambahkan opsi -sn.
Nmap mempunyai pilihan --traceroute untuk tracing , contoh tracing ke website unixwinbsd.site.
Ini akan mengurangi waktu hingga hasilnya ditampilkan secara signifikan. Kebetulan data yang dikeluarkan oleh nmap saat tracing belum selesai. Dalam hal ini, coba tambahkan opsi -PE tambahan.
Di Nmap Anda dapat mengatur opsi di header paket protokol IP. Di antara pilihan tersebut ada satu yang menyimpan rute yang dilalui di header paket. Namun opsi ini memiliki sejumlah keterbatasan:
- jumlah 9 slot
- beberapa perangkat mengabaikan opsi ini
- beberapa perangkat tidak mengizinkan paket melewatinya sama sekali dengan opsi ini diinstal
Namun terkadang berhasil, contoh perintah:
Hasil keluarannya akan tampak seperti ini.
Anda perhatikan Perhatikan barisnya.
11. Menelusuri jaringan dengan perintah ping
Program ping juga dapat merekam rute; untuk melakukan ini, Anda perlu menjalankan program dengan opsi -R . Ia menambahkan opsi RECORD_ROUTE ke paket ECHO_REQUEST dan menampilkan buffer rute dari paket yang dikembalikan. Ini adalah opsi yang sama yang digunakan Nmap. Batasannya sama: maksimal 9 slot, banyak host mengabaikan atau membuang opsi ini.
Contoh penggunaan:
Rute IP ditampilkan dengan setiap ping. Jika rute tidak berubah, maka akan ditampilkan pesan bahwa rute tidak berubah.
Terlepas dari semua keterbatasan opsi RECORD_ROUTE, terkadang ini adalah satu-satunya pilihan untuk mendapatkan setidaknya beberapa informasi tentang rute, karena perintah ping hampir selalu ada dan tidak memerlukan hak istimewa yang lebih tinggi untuk menjalankannya.
12. Menelusuri jaringan melalui Windows tracert
Windows memiliki perintah tracert bawaan untuk penelusuran jaringan . Ia hampir tidak punya pilihan. Untuk menjalankan perintah, cukup tentukan nama host jarak jauh:
Jika fungsi ini tidak cukup bagi Anda, Anda dapat menginstal Nmap di Windows.
Penelusuran dapat berguna untuk memahami struktur jaringan (misalnya, jaringan penyedia layanan Internet Anda), dan juga untuk memecahkan masalah transmisi data (misalnya, mengidentifikasi simpul yang tidak dilewati paket).
Fungsionalitas terkaya untuk penelusuran jaringan adalah program traceroute . Program lain juga berisi opsi menarik atau dapat digunakan sebagai alternatif jika tidak ada program lain yang tersedia atau jika menjalankan traceroute sebagai root.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar