• Tidak ada hasil yang ditemukan

Studi Perbandingan Library Untuk Implementasi Network Automation Menggunakan Paramiko Dan Netmiko Pada Router Mikrotik

N/A
N/A
Protected

Academic year: 2024

Membagikan "Studi Perbandingan Library Untuk Implementasi Network Automation Menggunakan Paramiko Dan Netmiko Pada Router Mikrotik"

Copied!
10
0
0

Teks penuh

(1)

JURIKOM (Jurnal Riset Komputer), Vol. 9 No. 4, Agustus 2022 e-ISSN 2715-7393 (Media Online), p-ISSN 2407-389X (Media Cetak) DOI 10.30865/jurikom.v9i4.4420

Hal 790−799 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom

Studi Perbandingan Library Untuk Implementasi Network Automation Menggunakan Paramiko Dan Netmiko Pada Router Mikrotik

Luis Geraldo Mauboy1, Theophilus Wellem2,*

Fakultas Teknologi Informasi, Teknik Informatika, Universitas Kristen Satya Wacana, Salatiga, Indonesia Email: 1[email protected], 2,*[email protected]

Email Penulis Korespondensi: [email protected] Submitted 04-07-2022; Accepted 20-07-2022; Published 30-08-2022

Abstrak

Pada beberapa tahun terakhir, network automation atau otomatisasi jaringan muncul sebagai solusi untuk mengatasi ketidakpraktisan konfigurasi peralatan pada jaringan komputer secara manual oleh administrator jaringan. Dengan mengimplementasikan network automation, administrator jaringan dapat melakukan konfigurasi dan pengelolaan peralatan jaringan secara otomatis menggunakan script atau perangkat lunak yang dijalankan dari salah satu host atau server dalam jaringan. Penelitian ini bertujuan untuk melakukan studi perbandingan melalui implementasi kasus untuk network automation. Implementasi script untuk otomatisasi dilakukan menggunakan library pada bahasa pemrograman Python, yaitu Paramiko dan Netmiko. Empat skenario diambil sebagai contoh untuk implementasi network automation antara lain, static routing, dynamic routing, network address translation (NAT), dan simple network management protocol (SNMP). Pengujian dan simulasi dilakukan menggunakan perangkat lunak simulator GNS3 dengan topologi jaringan yang terdiri dari dua router Mikrotik, satu Ethernet switch, satu server Network Automation, dan dua komputer sebagai client.

Berdasarkan hasil simulasi dan pengujian yang dilakukan didapatkan bahwa otomatisasi menggunakan library Paramiko lebih baik daripada otomatisasi menggunakan Netmiko dari sisi waktu yang dibutuhkan untuk eksekusi script konfigurasi. Waktu eksekusi rata- rata untuk keempat skenario yang diimplementasikan adalah 3.66 detik.

Kata Kunci: Network Automation; Python; Paramiko; Netmiko; GNS3 Abstract

In recent years, network automation has emerged as a solution to the impracticality of manually configuring network devices by network administrators. By implementing network automation, network administrators can configure and manage network devices automatically using scripts or software that is run from one of the hosts or servers in the network. This paper aims to conduct a comparative study through the implementation of cases for network automation. Four scenarios are taken as examples for the implementation of network automation, among others, static routing, dynamic routing, network address translation (NAT), and simple network management protocol (SNMP). The automation scripts are realized using Python libraries, namely Paramiko and Netmiko.

Tests and simulations were carried out using the GNS3 simulator software with a network topology consisting of two Mikrotik routers, one Ethernet switch, one Network Automation server, and two computers as clients. The experiment results show that automation using the Paramiko library is better than automation using the Netmiko library in terms of the time required for the execution of configuration scripts. The average execution time for the four implemented scenarios is 3.66 seconds.

Keywords: Network Automation; Python; Paramiko; Netmiko; GNS3

1. PENDAHULUAN

Pada era teknologi informasi saat ini, layanan akses data melalui jaringan komputer merupakan hal yang esensial dalam aktivitas sehari-hari. Ketersedian (availability) dan kehandalan (reliability) dari jaringan yang dikelola oleh perusahaan penyedia jasa layanan akses Internet (Internet Service Provider, ISP) sangat penting karena berkaitan dengan kepuasan pelanggan dan profit bagi perusahaan. Pada pengelolaaan suatu jaringan yang besar, terdapat banyak peralatan jaringan (network device) seperti router, switch, dan access point yang harus dikonfigurasi oleh administrator atau teknisi jaringan.

Cara konfigurasi secara manual pada setiap peralatan merupakan proses yang membutuhkan waktu yang tidak sedikit sehingga tidak praktis untuk dilakukan pada jaringan yang besar, seperti jaringan yang umumnya dimiliki oleh perusahaan penyedia jasa layanan akses Internet. Selain itu, konfigurasi secara manual rentan terhadap kesalahan konfigurasi yang dapat menyebabkan layanan jaringan menjadi terganggu. Untuk mengatasi masalah ini, perlu adanya sebuah cara yang lebih praktis untuk mengatur dan mengkonfigurasikan perangkat-perangkat jaringan tersebut dalam waktu yang cepat, terlebih lagi saat terdapat konfigurasi yang harus diperbarui (update) secara berkala. Pada lebih dari satu dekade terakhir, perusahaan-perusahaan jaringan terkemuka seperti Cisco, Juniper, Brocade, dan Huawei, maupun akademisi dari perguruan tinggi, serta Internet Engineering Task Force (IETF) berupaya untuk mengembangkan cara atau metode yang lebih praktis untuk konfigurasi peralatan jaringan. Salah satu contohnya adalah dengan membuat protokol untuk konfigurasi jaringan yang dikenal dengan Network Configuration Protocol (NETCONF) pada tahun 2006 [1] dan diperbarui pada tahun 2011 [2]. NETCONF merupakan protokol yang menyediakan mekanisme untuk menginstall, memanipulasi, dan menghapus konfigurasi pada peralatan jaringan. Contoh berikutnya adalah RESTCONF (dibuat pada tahun 2017) yang merupakan protokol berbasis hypertext transfer protocol (HTTP) yang menyediakan interface untuk mengakses data konfigurasi pada peralatan jaringan [3]. Selanjutnya, berkembang pula konsep network automation atau otomatisasi jaringan di mana pengaturan dan pengujian konfigurasi perangkat jaringan dilakukan menggunakan perangkat lunak (software) secara otomatis dengan cara mengirimkan perintah konfigurasi ke peralatan jaringan melalui koneksi secure shell (SSH). Oleh karena itu, network automation saat ini merupakan solusi dalam menjawab persoalan ketidakpraktisan cara konfigurasi secara manual dan dapat mencegah network downtime yang lama karena adanya kesalahan konfigurasi [4].

(2)

JURIKOM (Jurnal Riset Komputer), Vol. 9 No. 4, Agustus 2022 e-ISSN 2715-7393 (Media Online), p-ISSN 2407-389X (Media Cetak) DOI 10.30865/jurikom.v9i4.4420

Hal 790−799 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom Network automation atau otomatisasi jaringan adalah suatu proses untuk mengotomatiskan pengaturan (konfigurasi), pengelolaan, pengujian serta pengoperasian perangkat-perangkat jaringan baik fisik maupun virtual [5][6].

Proses otomatisasi jaringan ini menggunakan logika pemrograman (programmable logic) untuk mengatur sumber daya (resources) dan layanan jaringan sehingga menjadi lebih efisien dibandingkan dengan proses konfigurasi secara manual [7]. Secara umum, network automation dapat dilakukan menggunakan script (dikenal juga dengan istilah script-driven network automation) yang ditulis dalam bahasa pemrograman Python [8]. Saat ini terdapat beberapa library yang digunakan untuk implementasi network automation misalnya Paramiko, Netmiko, NAPALM, Genie, NCClient (untuk NETCONF) dan Requests (untuk REST APIs). Penelitian ini bertujuan untuk melakukan studi perbandingan mengenai implementasi network automation menggunakan library Paramiko [9] dan Netmiko [10]. Script untuk otomatisasi yang dibuat akan diterapkan pada empat studi kasus. Studi kasus yang digunakan pada penelitian ini antara lain, konfigurasi static routing, konfigurasi dynamic routing, konfigurasi network address translation (NAT) dan konfigurasi Simple Network Management Protocol (SNMP). Penelitian ini diharapkan dapat memberikan gambaran singkat mengenai pemanfaatan Python dalam network automation dan dapat berguna sebagai studi atau pembelajaran tentang teknologi network automation bagi mahasiswa atau pelajar maupun untuk pemula yang akan masuk dalam bidang ini.

Kajian atau review terhadap beberapa penelitian terdahulu yang berkaitan dilakukan agar dapat memberikan gambaran mengenai topik penelitian ini dan perbedaannya dengan penelitian terdahulu. Pada penelitian [11]

dikembangkan sebuah aplikasi berbasis web untuk otomatisasi jaringan menggunakan Django framework dan REST API.

Selain Django framework dan REST API, Ansible juga digunakan untuk otomatisasi konfigurasi routing Open Short Path First (OSPF) pada router [12]. Ansible [13] merupakan platform untuk otomatisasi jaringan yang bekerja dengan cara melakukan koneksi ke perangkat jaringan dan “menginstall” suatu program yang disebut dengan Ansible module. Ansible kemudian mengeksekusi modul tersebut melalui koneksi SSH. Penelitian [14] menggunakan Ansible pada laboratorium komputer di instansi pendidikan untuk melakukan otomatisasi perangkat jaringan komputer. Pada penelitian tersebut, Ansible digunakan sebagai alat (tool) otomatisasi yang menggantikan beberapa pekerjaan yang seharusnya dilakukan secara berulang oleh seorang administrator jaringan, yaitu konfigurasi peralatan-peralatan yang digunakan pada jaringan.

Aplikasi otomatisasi jaringan berbasis web yang dapat membantu administrator dalam melakukan konfigurasi penambahan gateway otomatis pada sebuah topologi jaringan yang terhubung dengan aplikasi GNS3 juga dikembangkan sebagai alternatif dari aplikasi network automation yang hanya menggunakan script dan dijalankan melalui command line interface atau terminal [15]. Pemanfaatan library Paramiko untuk menyediakan konfigurasi koneksi Internet dan manajemen pada router Mikrotik dibahas pada [16]. Studi kasus pada penelitian tersebut dilakukan di suatu perusahaan penyedia akses Internet. Kasus yang diambil adalah konfigurasi IP address dan subnet mask, serta konfigurasi Simple Network Management Protocol (SNMP), Remote Authentication Dial-In User Service (RADIUS), dan Network Time Protocol (NTP). Selanjutnya, bahasa pemrograman Python dan library Netmiko digunakan dalam mengimplementasikan network automation sebagai solusi untuk melakukan konfigurasi perangkat jaringan baru secara otomatis [17].

Otomatisasi menggunakan Python dan Netmiko diharapkan dapat menghemat waktu dan sumber daya yang digunakan, serta mengurangi faktor kesalahan konfigurasi oleh administrator jaringan. Perbandingan kinerja antara library Paramiko dan Netmiko dalam proses otomatisasi jaringan dengan mengambil studi kasus konfigurasi routing OSPF dibahas pada [18]. Pada penelitian tersebut disimpulkan bahwa performansi menggunakan Paramiko lebih baik dibandingkan Netmiko.

Waktu konfigurasi dengan Paramiko mencapai empat kali lebih cepat dibandingkan konfigurasi menggunakan Netmiko.

Berbeda dengan penelitian-penelitian terdahulu, penelitian ini berfokus pada contoh-contoh kasus pemanfaatan Paramiko dan Netmiko secara umum untuk implementasi network automation dengan mengambil empat kasus atau skenario, yaitu konfigurasi static routing, konfigurasi dynamic routing, konfigurasi NAT, dan konfigurasi SNMP.

2. METODOLOGI PENELITIAN

2.1 Tahapan Penelitian

Tahapan dalam melaksanakan penelitian studi perbandingan library Paramiko dan Netmiko ini ditunjukkan pada Gambar 1 dan dapat dijelaskan sebagai berikut. Penelitian dimulai dengan melakukan studi pustaka atau studi literatur mengenai network automation menggunakan Python. Studi pustaka ini dilakukan dengan mengkaji penelitian-penelitian sebelumnya yang berkaitan, termasuk mempelajari buku-buku mengenai network automation. Selanjutnya, dilakukan identifikasi kasus-kasus atau skenario otomatisasi (misalnya, konfigurasi routing, konfigurasi SNMP) yang akan diangkat sebagai contoh dalam pemanfaatan library Paramiko dan Netmiko pada penelitian ini. Pada tahap selanjutnya dilakukan perancangan (desain) topologi jaringan dan implementasi dari setiap kasus yang telah ditetapkan. Implementasi dilakukan dengan menuliskan script Python untuk melakukan otomatisasi konfigurasi pada peralatan jaringan. Pada tahap pengujian, dilakukan simulasi menggunakan perangkat lunak GNS3 untuk menguji script yang telah diimplementasikan untuk masing-masing library (Paramiko dan Netmiko). Pada tahap ini juga dilakukan evaluasi terhadap hasil yang diperoleh dari pengujian. Tahap terakhir dari penelitian ini adalah penyimpulan hasil penelitian dan penulisan laporan.

Pada tahap ini, dilakukan analisis dari penelitian yang sudah dilakukan untuk mengambil kesimpulan berdasarkan hasil penelitian dan ketercapaian tujuan penelitian.

(3)

JURIKOM (Jurnal Riset Komputer), Vol. 9 No. 4, Agustus 2022 e-ISSN 2715-7393 (Media Online), p-ISSN 2407-389X (Media Cetak) DOI 10.30865/jurikom.v9i4.4420

Hal 790−799 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom

Gambar 1. Tahapan Penelitian 2.2 Network Automation dengan Python

Pada penelitian ini, network automation menggunakan Python diimplementasikan menggunakan library Paramiko dan Netmiko. Paramiko adalah implementasi protokol SSH versi 2 menggunakan Python yang menyediakan fungsionalitas client dan server. Semua perangkat yang dapat dikonfigurasikan melalui SSH juga dapat menggunakan library ini [19].

Contoh metode atau fungsi yang ada pada Paramiko antara lain:

a. Metode send, metode untuk mengirim sebuah string. Contoh: ssh.send(). b. Metode recv, metode untuk menerima data. Contoh: ssh.recv().

c. Metode close, metode untuk menutup sesi. Contoh: ssh.close().

Netmiko merupakan suatu library yang dikembangkan berdasarkan Paramiko untuk menyederhanakan manajemen SSH ke peralatan atau perangkat jaringan. Netmiko menggunakan Paramiko tetapi juga membuat interfaces dan methods yang baru dan dibutuhkan untuk bekerja pada berbagai perangkat jaringan. Perangkat yang kompatibel dengan Netmiko adalah Arista vEOS, Cisco ASA, Cisco IOS, Cisco IOS-XE, Cisco IOS-XR, Cisco NR-OS, Cisco SG300, HP Comware7, HP ProCurve, Juniper Junos, Linux, dan lain-lain [20]. Contoh metode atau fungsi pada Netmiko antara lain:

a. Metode send, metode untuk mengirim perintah. Contoh: net_connect.send_command().

b. Metode enable, metode untuk masuk ke mode enable pada perangkat jaringan. Contoh: net_connect.enable(). c. Metode disconnect, metode untuk menutup koneksi. Contoh: net_connect.disconnect().

2.3 GNS3

GNS3 adalah perangkat lunak yang dapat digunakan untuk melakukan simulasi jaringan komputer (network simulator).

User dapat melakukan simulasi jaringan komputer pada GNS3 seperti pada perangkat jaringan yang sebenarnya karena GNS3 mendukung real device maupun virtual device. GNS3 dapat dijalankan pada sistem operasi Windows, Linux dan Mac. Perbedaan mendasar antara GNS3 dengan aplikasi simulator lainnya seperti Cisco Packet Tracer adalah GNS3 dapat menjalankan simulasi menggunakan perangkat dengan vendor yang berbeda-beda. User dapat mengeksplorasi lebih banyak device dari berbagai vendor menggunakan GNS3 [21]. Pada penelitian ini, GNS3 digunakan untuk melakukan simulasi dan menguji hasil implementasi network automation yang dibuat.

3. HASIL DAN PEMBAHASAN

Penelitian ini menggunakan perangkat lunak GNS3 untuk merancang topologi jaringan dan melakukan simulasi dari implementasi network automation yang telah dibuat. Topologi jaringan ini menggunakan satu komputer server yang mengeksekusi script untuk network automation, satu Ethernet switch, dua router dan dua PC sebagai client. Router yang dipakai adalah Mikrotik dan PC client menggunakan VPCS (default PC pada GNS3). Topologi jaringan yang digunakan dalam simulasi untuk menguji script yang telah dibuat ditunjukkan pada Gambar 2. Sebagai catatan, topologi ini hanya merupakan salah satu contoh topologi yang dapat digunakan untuk simulasi dan pengujian network automation pada penelitian ini. Network automation menggunakan script Python dapat diterapkan pada berbagai macam topologi jaringan selama komputer atau server yang mengeksekusi script dapat menjangkau atau berkomunikasi dengan peralatan jaringan yang akan dikonfigurasi. Selain itu, router yang dapat dikonfigurasi menggunakan script Python tidak hanya router Mikrotik tetapi juga router dari berbagai vendor dengan cukup melakukan modifikasi pada perintah yang digunakan untuk konfigurasi. Pada jaringan yang ditunjukkan pada Gambar 2, saat inisialisasi masing-masing perangkat diberikan IP address sebagai berikut: Server NetworkAutomation-1 menggunakan alamat 10.10.10.3 pada interface ether1, router Mikrotik1 menggunakan alamat 10.10.10.1 pada interface ether1 dan 192.168.1.1 pada interface ether2, router Mikrotik2 menggunakan alamat 10.10.10.2 pada interface ether 1 dan 192.168.2.1 pada interface ether2. Selanjutnya, PC1 menggunakan alamat 192.168.1.2 dan PC2 menggunakan alamat 192.168.2.2. Semua perangkat menggunakan subnet mask 255.255.255.0 atau /24. Pada server NetworkAutomation-1 dibuat satu file teks (dengan nama address.txt) yang menyimpan IP address tiap router. Server NetworkAutomation-1 akan terhubung dengan tiap router melalui IP address tersebut. Selain itu, terdapat juga kumpulan script untuk implementasi network automation yang dieksekusi menggunakan perintah python3 <namascript.py>. Script yang menggunakan Paramiko dan Netmiko dibuat dalam file yang terpisah. Berikut ini dijelaskan skenario, implementasi, dan hasil eksekusi dari script yang telah dibuat sebagai contoh kasus untuk network automation.

(4)

JURIKOM (Jurnal Riset Komputer), Vol. 9 No. 4, Agustus 2022 e-ISSN 2715-7393 (Media Online), p-ISSN 2407-389X (Media Cetak) DOI 10.30865/jurikom.v9i4.4420

Hal 790−799 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom

Gambar 2. Topologi Jaringan untuk pengujian script network automation 3.1 Skenario 1: Static Routing

Tujuan dari skenario ini adalah untuk melakukan konfigurasi pada router Mikrotik1 dan router Mikrotik2 agar PC1 dan PC2 dapat berkomunikasi melalui kedua router tersebut. Konfigurasi static routing dilakukan pada setiap router dengan perintah ip route add dst-address=(ip tujuan/subnet) gateway=(ip router tujuan). Script untuk konfigurasi static routing menggunakan Paramiko dan Netmiko ditunjukkan pada Gambar 3.

Gambar 3. Script Paramiko dan Netmiko untuk konfigurasi static routing

(5)

JURIKOM (Jurnal Riset Komputer), Vol. 9 No. 4, Agustus 2022 e-ISSN 2715-7393 (Media Online), p-ISSN 2407-389X (Media Cetak) DOI 10.30865/jurikom.v9i4.4420

Hal 790−799 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom Pada script yang ditunjukkan pada Gambar 3, perintah import dan from … import … digunakan untuk mengimpor library Paramiko atau Netmiko dan library timeit untuk menghitung waktu eksekusi dari script. Beberapa metode atau fungsi penting pada Paramiko yang dipakai adalah sebagai berikut: paramiko.SSHClient() digunakan untuk merepresentasikan suatu sesi koneksi SSH ke perangkat jaringan atau router dalam skenario static routing ini, set_missing_host_key_policy(paramiko.AutoAddPolicy()) untuk mengatur policy yang akan digunakan saat melakukan koneksi SSH ke router tanpa suatu host key tertentu, connect() untuk membuka koneksi SSH ke router, dan exec_command() untuk mengeksekusi perintah yang akan diberikan ke router. IP address untuk masing-masing router pada script ini dibaca dari file address.txt. Variabel start dibuat di baris awal script dan variabel end di baris akhir script. Selisih dua variabel ini menunjukkan waktu eksekusi script. Selain itu, terdapat juga fungsi close() untuk menutup koneksi SSH. Fungsi check_result() digunakan untuk memeriksa apakah konfigurasi sudah berhasil dilakukan atau tidak. Fungsi-fungsi ini juga digunakan pada script Paramiko untuk skenario yang lain dalam penelitian ini.

Untuk script yang menggunakan Netmiko, fungsi-fungsi penting yang digunakan adalah ConnectHandler(), send_command(), dan disconnect(). Salah satu parameter yang diterima oleh fungsi ConnectHandler() adalah device_type yang menentukan jenis device yang akan dihubungi, misalnya mikrotik_routeros untuk router Mikrotik atau arista_eos untuk router dari Arista. Gambar 4 menunjukkan tampilan output pada server NetworkAutomation-1 untuk konfigurasi static routing.

Gambar 4. Contoh tampilan output hasil eksekusi script Paramiko dan Netmiko (static routing) 3.2 Skenario 2: Dynamic Routing

Dynamic routing merupakan konfigurasi routing secara otomatis yang dilakukan oleh router dengan mempelajari informasi routing yang diperoleh dari router-router lain dalam suatu jaringan. Dynamic routing dilakukan menggunakan algoritma routing (routing protocol) tertentu. Tidak seperti static routing yang membutuhkan administrator untuk melakukan penyesuaian saat ada perubahan dalam topologi, administrator cukup melakukan konfigurasi routing protocol yang akan digunakan untuk dynamic routing. Beberapa contoh routing protocol antara lain: Routing Information Protocol (RIP), Interior Gateway Routing Protocol (IGRP), OSPF, Enhanced Interior Gateway Routing Protocol (EIGRP) dan Border Gateway Protocol (BGP). Tujuan pada skenario ini adalah untuk melakukan konfigurasi routing protocol pada router Mikrotik1 dan router Mikrotik2 agar PC1 dan PC2 dapat berkomunikasi melalui kedua router tersebut. Routing protocol yang digunakan adalah Routing Information Protocol (RIP) versi 2 yang merupakan protokol berbasis distance- vector dan menggunakan hop count sebagai metrik-nya. RIP umumnya digunakan pada jaringan dengan jumlah router yang tidak terlalu besar (jaringan berskala kecil hingga sedang). Perbedaan antara RIPv2 dengan RIPv1 adalah dukungan terhadap Variable Length Subnet Mask (VLSM) dan fungsi keamanan berupa authentication. Konfigurasi dynamic routing menggunakan RIPv2 dilakukan dengan perintah routing rip interface add interface untuk mendefinisikan interface yang digunakan untuk mengirimkan informasi routing dan routing rip network add network untuk mendefinisikan jaringan yang menggunakan RIPv2. Script untuk konfigurasi dynamic routing menggunakan Paramiko dan Netmiko ditunjukkan pada Gambar 5. Gambar 6 menunjukkantampilan output pada server NetworkAutomation-1 untuk konfigurasi dynamic routing.

Gambar 5. Contoh tampilan output hasil eksekusi script Paramiko dan Netmiko (dynamic routing)

(6)

JURIKOM (Jurnal Riset Komputer), Vol. 9 No. 4, Agustus 2022 e-ISSN 2715-7393 (Media Online), p-ISSN 2407-389X (Media Cetak) DOI 10.30865/jurikom.v9i4.4420

Hal 790−799 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom

Gambar 6. Script Paramiko dan Netmiko untuk konfigurasi dynamic routing 3.3 Skenario 3: Firewall (Network Address Translation, NAT)

Firewall digunakan untuk memantau dan mengontrol trafik jaringan yang masuk atau keluar dari suatu jaringan untuk mencegah akses yang tidak diinginkan. Pada router Mikrotik salah satu penerapan firewall adalah konfigurasi network address translation (NAT). Tujuan pada skenario ini adalah untuk melakukan konfigurasi NAT agar IP address privat yang digunakan pada jaringan internal ditranslasikan menjadi IP address publik saat keluar untuk mengakses jaringan publik (Internet). Konfigurasi NAT dilakukan pada setiap router dengan perintah ip firewall nat add chain=(nama chain) action=(nama action) di mana chain yang digunakan adalah srcnat dan action-nya adalah masquerade. Action ini bertujuan untuk menyembunyikan IP address privat sehingga tidak terlihat secara publik (dan digantikan oleh IP address publik). Script untuk konfigurasi NAT menggunakan Paramiko dan Netmiko ditunjukkan pada Gambar 7. Gambar 8 menunjukkan tampilan output pada server NetworkAutomation-1 untuk konfigurasi NAT.

Gambar 7. Contoh tampilan output hasil eksekusi script Paramiko dan Netmiko (NAT)

(7)

JURIKOM (Jurnal Riset Komputer), Vol. 9 No. 4, Agustus 2022 e-ISSN 2715-7393 (Media Online), p-ISSN 2407-389X (Media Cetak) DOI 10.30865/jurikom.v9i4.4420

Hal 790−799 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom

Gambar 8. Script Paramiko dan Netmiko untuk konfigurasi network address translation (NAT) 3.4 Skenario 4: SNMP (Simple Network Management Protocol)

SNMP merupakan protokol yang digunakan untuk memonitor dan mengatur perangkat jaringan. Pada penerapan SNMP terdapat komputer yang berperan sebagai SNMP manager yang berkomunikasi dengan SNMP agent yang dipasang atau diaktifkan pada setiap peralatan jaringan yang dimonitor (managed device). Agent yang terletak pada peralatan jaringan inilah yang melaporkan informasi mengenai peralatan tersebut melalui SNMP dengan cara membuka data pada peralatan jaringan yang dimonitor sebagai variabel-variabel sehingga dapat diakses dan diatur oleh SNMP manager. Tujuan pada skenario ini adalah untuk melakukan konfigurasi SNMP pada router Mikrotik agar dapat diakses oleh SNMP manager.

Konfigurasi untuk mengaktifkan SNMP pada router Mikrotik dilakukan menggunakan perintah snmp set dengan parameter enabled=yes. Script untuk konfigurasi SNMP menggunakan Paramiko dan Netmiko ditunjukkan pada Gambar 9. Gambar 10 menunjukkan tampilan output pada server NetworkAutomation-1 untuk konfigurasi SNMP.

Gambar 9. Contoh tampilan output hasil eksekusi script Paramiko dan Netmiko (NAT)

(8)

JURIKOM (Jurnal Riset Komputer), Vol. 9 No. 4, Agustus 2022 e-ISSN 2715-7393 (Media Online), p-ISSN 2407-389X (Media Cetak) DOI 10.30865/jurikom.v9i4.4420

Hal 790−799 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom

Gambar 10. Script Paramiko dan Netmiko untuk konfigurasi network address translation (SNMP) 3.5 Hasil Pengujian

Pada tahap pengujian dari implementasi script network automation menggunakan simulator GNS3, hal yang pertama diverifikasi adalah kebenaran (correctness) konfigurasi yang dikirimkan ke router setelah satu kali eksekusi script. Hal ini dilakukan dengan memeriksa hasil konfigurasi pada router melalui perintah-perintah untuk menampilkan konfigurasi (misalnya: ip route print, ip firewall nat print, interface print). Setelah itu dilakukan eksekusi script sebanyak lima kali untuk setiap skenario (konfigurasi static routing, dynamic routing, NAT, dan SNMP) baik untuk script yang menggunakan Paramiko dan yang menggunakan Netmiko. Pengujian ini dilakukan untuk membandingkan waktu eksekusi dari script dan untuk mendapatkan nilai waktu yang lebih umum (bukan hanya waktu untuk satu kali eksekusi).

Pada setiap eksekusi, waktu yang dibutuhkan untuk eksekusi script dicatat dan nilai rata-rata (average) dari lima kali eksekusi dihitung saat pengujian berakhir. Hasil pengujian dan perbandingan rata-rata waktu eksekusi masing-masing ditunjukkan pada Tabel 1 dan Gambar 11. Berdasarkan hasil pengujian dapat dilihat bahwa waktu eksekusi script yang menggunakan Paramiko lebih cepat dari script yang menggunakan Netmiko. Rata-rata selisih waktu eksekusi antara Paramiko dan Netmiko untuk keempat skenario adalah 3.66 detik.

Tabel 1. Nilai rata-rata (average) waktu eksekusi script dari 5 kali percobaan Skenario Waktu (detik) Selisih waktu

(detik) Paramiko Netmiko

Static routing 21.494 26.535 5.041 Dynamic routing 19.602 24.028 4.426

Firewall 16.199 18.288 2.089

SNMP 5.107 8.202 3.095

Nilai rata-rata - - 3.66

(9)

JURIKOM (Jurnal Riset Komputer), Vol. 9 No. 4, Agustus 2022 e-ISSN 2715-7393 (Media Online), p-ISSN 2407-389X (Media Cetak) DOI 10.30865/jurikom.v9i4.4420

Hal 790−799 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom

Gambar 11. Nilai rata-rata waktu eksekusi script

Selain pada topologi jaringan yang ditunjukkan pada Gambar 2, pengujian juga dilakukan pada topologi yang menggunakan tiga router. Hal ini dilakukan untuk mengetahui atau memperkirakan waktu eksekusi script jika jumlah router yang dikonfigurasi bertambah. Gambar 12 menunjukkan topologi yang digunakan. Langkah pengujian yang sama seperti yang dijelaskan sebelumnya dilakukan untuk mendapatkan rata-rata waktu eksekusi untuk setiap skenario (konfigurasi static routing, dynamic routing, NAT, dan SNMP). Hasil yang diperoleh adalah sebagai berikut:

a. Static routing (Paramiko: 65.563 detik, Netmiko: 76.655 detik).

b. Dynamic routing (Paramiko: 32.408 detik, Netmiko: 37.809 detik).

c. NAT (Paramiko: 16.926 detik, Netmiko: 22.768 detik).

d. SNMP (Paramiko: 6.720 detik, Netmiko: 15.610 detik).

e. Rata-rata selisih waktu eksekusi antara Paramiko dan Netmiko: 7.8 detik.

Berdasarkan hasil ini, dapat diketahui bahwa waktu eksekusi script yang menggunakan Paramiko tetap lebih cepat dibanding script yang menggunakan Netmiko. Selain itu, waktu eksekusi akan semakin besar dengan penambahan jumlah router yang harus dikonfigurasi.

Gambar 12. Topologi jaringan untuk pengujian menggunakan tiga router Mikrotik

4. KESIMPULAN

Penelitian ini membahas implementasi network automation dan perbandingannya menggunakan dua library Python yang umum digunakan untuk network automation yaitu Paramiko dan Netmiko. Sebanyak empat studi kasus atau skenario diambil sebgai contoh untuk diimplementasikan dan dibandingkan, yaitu konfigurasi static routing, dynamic routing menggunakan RIPv2, NAT, dan SNMP. Berdasarkan hasil implementasi dan pengujian terhadap script menggunakan kedua library tersebut, didapatkan bahwa Paramiko menunjukkan hasil yang lebih baik dari sisi waktu eksekusi script.

Waktu eksekusi script dengan Paramiko lebih cepat dibandingkan script yang menggunakan Netmiko meskipun pada skenario yang dibahas pada penelitian ini perbedaan waktu tersebut tidak begitu besar. Rata-rata (average) selisih waktu

(10)

JURIKOM (Jurnal Riset Komputer), Vol. 9 No. 4, Agustus 2022 e-ISSN 2715-7393 (Media Online), p-ISSN 2407-389X (Media Cetak) DOI 10.30865/jurikom.v9i4.4420

Hal 790−799 http://ejurnal.stmik-budidarma.ac.id/index.php/jurikom eksekusi antara Netmiko dan Paramiko adalah 3.66 detik. Selanjutnya dari sisi penggunaannya, dalam hal waktu pengembangan dan kemudahan penulisan script, Netmiko lebih mudah dibandingkan Paramiko dengan penamaan fungsi yang lebih mudah dipahami. Netmiko juga lebih mendukung lebih banyak perangkat (device) dan platform dari berbagai perusahaan penyedia peralatan jaringan. Untuk pengembangan lebih lanjut, dapat ditambahkan jumlah contoh kasus yang dipelajari. Selain itu, dapat juga diimplementasikan network automation menggunakan library yang lain, misalnya menggunakan library untuk NETCONF dan RESTCONF, atau menerapkan network automation berbasiskan Software- defined Networking (SDN) dan OpenFlow.

REFERENCES

[1] R. Enns, “RFC 4741 NETCONF Configuration Protocol.” Internet Engineering Task Force (IETF), 2006.

[2] R. Enns, M. Bjorklund, J. Schoenwaelder, and A. Bierman, “RFC 6241 Network Configuration Protocol (NETCONF).” Internet Engineering Task Force (IETF), 2011.

[3] A. Bierman, M. Bjorklund, and K. Watsen, “RFC 8040 RESTCONF Protocol.” Internet Engineering Task Force (IETF), 2017.

[4] J. Edelman, S. S. Lowe, and M. Oswalt, Network Programmability and Automation: Skills for the Next-Generation Network Engineer, 1st ed. O’Reilly Media, 2018.

[5] I. Pinto, Network Automation Made Easy, 1st ed. Cisco Press, 2021.

[6] K. Abuelenain, J. Doyle, A. Karneliuk, and V. Jain, Network Programmability and Automation Fundamentals, 1st ed. Cisco Press, 2021.

[7] M. Neidinger, Python network programming techniques: 50 real-world recipes to automate infrastructure networks, 1st ed. Packt Publishing, 2021.

[8] J. Alex, Network Automation using Python 3: An Administrator’s Handbook, 1st ed. Independent, 2020.

[9] “Paramiko - A Python Implementation of SSHv2.” https://www.paramiko.org/ (accessed Jun. 30, 2022).

[10] K. Byers, “Netmiko: Multi-vendor library to simplify Paramiko SSH connections to network devices.”

https://github.com/ktbyers/netmiko (accessed Jul. 04, 2022).

[11] A. F. Rochim, A. Rafi, A. Fauzi, and K. T. Martono, “As-RaD System as a Design Model of the Network Automation Configuration System Based on the REST-API and Django Framework,” Kinet. Game Technol. Inf. Syst. Comput. Network, Comput. Electron. Control, vol. 4, pp. 291–298, 2020, doi: 10.22219/kinetik.v5i4.1093.

[12] E. N. Fadhila, E. R. Gumelar, H. R. Pratama, and G. M. Suranegara, “Otomasi Konfigurasi Routing pada Router menggunakan Ansible,” TELNECT, vol. 1, no. 2, pp. 93–98, 2021.

[13] W. Irtaza, IT Infrastructure Automation using Ansible, 1st ed. BPB Publications, 2021.

[14] M. R. Afandi, P. Hatta, and A. Efendi, “Otomatisasi Perangkat Jaringan Komputer Menggunakan Ansible Pada Laboratorium Komputer,” SMARTICS J., vol. 6, no. 2, pp. 48–53, 2020, [Online]. Available: https://doi.org/10.21067/smartics.v6i2.4599.

[15] E. S. Ginting, S. Suroso, and I. Hadi, “Pengujian Konfigurasi Otomatis Penambahan Gateway Pada Virtual Router Menggunakan Aplikasi Otomatisasi Jaringan Berbasis Web,” J. Media Inform. Budidarma, vol. 4, no. 4, pp. 1126–1131, Oct. 2020, doi:

10.30865/MIB.V4I4.2485.

[16] M. Fahmi, M. Maisyaroh, I. Komarudin, S. Faizah, and I. Fadhilah, “Otomatisasi Jaringan Menggunakan Script Python Untuk Penyediaan Konfigurasi Internet Dan Manajemen Mikrotik,” Bina Insa. Ict J., vol. 8, no. 1, p. 53, 2021, doi:

10.51211/biict.v8i1.1517.

[17] D. Rahardika and N. Ratama, “Implementasi Network Automation Untuk Konfigurasi Jaringan Baru Dengan Netmiko,” J. Artif.

Intell. Innov. Appl., vol. 2, no. 3, pp. 190–200, 2021.

[18] K. Nugroho, A. D. Abrariansyah, and S. Ikhwan, “Perbandingan Kinerja Library Paramiko dan Netmiko dalam Proses Otomasi Jaringan,” InfoTekJar J. Nas. Inform. dan Teknol. Jar., vol. 5, no. 1, pp. 1–8, 2020.

[19] George Milios, “Network Automation Using Python,” Master’s Thesis, International Hellenic University, 2020.

[20] A. Boumezrag, “A Proposed of Novel Network Management Platform for Network Automation and Programmability with Implementation on GNS3,” Master’s Thesis, University of Biskra, 2020.

[21] M. F. Islami, P. Musa, and M. Lamsani, “Implementation of Network Automation using Ansible to Configure Routing Protocol in Cisco and Mikrotik Router with Raspberry PI,” J. Ilm. Komputasi, vol. 19, no. 2, pp. 127–134, 2020, doi:

10.32409/jikstik.19.2.80.

Referensi

Dokumen terkait

Maka perancangan jaringan hotspot di SMKN 1 Juwiring perlu dilakukan pengembangan dan implementasi jaringan hotspot dengan menggunakan router mikrotik agar

Tujuan dari implementasi berbasis jaringan komputer ini adalah untuk mempermudah dalam segi pengiriman ataupun penerimaan data dan juga membuat sebuah rule

jaringan local area network , dengan demikian walaupun menggunakan metode firewall packet filtering sudah baik, tetapi dilihat dari metode inspeksi yang digunakan,

Pengujian meliputi performa yaitu throughtput, delay, dan packet loss dengan menggunakan aplikasi wireshark untuk melakukan capture paket data yang selanjutnya akan

Simpulan yang didapatkan adalah dengan melakukan implementasi pada jaringan SMA Kemurnian II menggunakan router mikrotik maka jaringan lokal dan jaringan wireless

Dalam proses ini di lakukan beberapa langkah dalam melakukan implementasi jaringan yang terdiri dari konfigurasi router Mikrotik RB750 R2 menggunakan aplikasi

Dari hasil pengujian dan analisa yang telah dilakukan pada implementasi wireless sensor network untuk sistem perkiraan cuaca dengan menggunakan logika fuzzy dapat

Dari hasil implementasi, pengujian dan analisis dari simulasi menggunakan network simulator (OMNET++) dengan (MIXIM) dapat digunakan untuk mensimulasikan kinerja routing