Kalau kamu sudah bisa menginstal Mininet, pertanyaan berikutnya hampir pasti muncul: cara membuat topologi jaringan Mininet itu bagaimana, sih? Tenang — topologi di Mininet sebenarnya gampang dibuat, bahkan tanpa menulis satu baris kode pun. Kamu bisa langsung memakai topologi bawaan lewat satu perintah, atau bikin sendiri yang benar-benar sesuai kebutuhan lewat file Python.

Di artikel ini saya bahas tuntas dua cara tersebut: memakai topologi bawaan (--topo) dan membuat topologi kustom dengan skrip Python (--custom). Semua contoh perintahnya bisa langsung kamu jalankan di Ubuntu yang sudah terinstal Mininet. Kalau instalasimu belum beres, baca dulu panduan cara install Mininet di Ubuntu saya sebelumnya.

Ilustrasi topologi jaringan Mininet: satu switch terhubung ke empat laptop

Apa Itu Topologi di Mininet dan Kenapa Perlu Dipahami?

Topologi di Mininet adalah susunan host, switch, dan link yang membentuk jaringan virtual — dan memahami cara membuatnya penting karena topologilah yang menentukan skenario apa yang bisa kamu simulasikan. Mininet membangun setiap host virtual sebagai network namespace Linux dan menghubungkannya lewat switch virtual (umumnya Open vSwitch). Jadi topologi yang kamu buat benar-benar berperilaku seperti jaringan asli: punya alamat IP, bisa di-ping, bisa dipasangi aturan, dan bisa diukur performanya.

Mininet menyediakan dua jalan membuat topologi. Pertama, topologi bawaan — pola siap pakai seperti minimal, single, linear, dan tree yang dipanggil lewat opsi --topo. Kedua, topologi kustom — file Python yang mendefinisikan host, switch, dan link sesukamu, lalu dijalankan dengan opsi --custom. Untuk belajar dan tugas kuliah, topologi bawaan biasanya sudah cukup. Tapi begitu kamu butuh bentuk jaringan yang spesifik — misalnya meniru topologi kantor atau topologi uji QoS — file Python kustom adalah jalannya.

Cara Membuat Topologi Jaringan Mininet dengan Perintah Bawaan

Cara membuat topologi jaringan Mininet paling cepat adalah memakai opsi --topo pada perintah mn — tanpa menulis kode sama sekali. Formatnya sudo mn --topo jenis,parameter. Ada enam jenis topologi bawaan: minimal (1 switch + 2 host, ini default-nya), single (1 switch + N host), linear (N switch berantai, tiap switch 1 host), tree (topologi pohon dengan kedalaman dan fanout yang bisa diatur), reversed (kebalikan dari single), dan torus (grid melingkar untuk eksperimen skala besar).

Berikut contoh-contoh yang paling sering dipakai, lengkap dengan artinya:

  1. Satu switch, tiga host: sudo mn --topo single,3
    Hasilnya: switch s1 terhubung ke host h1, h2, h3. Ini topologi paling umum untuk latihan dasar — sederhana tapi cukup untuk menguji ping, iperf, dan aturan OpenFlow sederhana.
  2. Empat switch berantai: sudo mn --topo linear,4
    Hasilnya: switch s1–s4 tersambung berurutan, masing-masing dengan satu host. Cocok untuk belajar routing antar-segmen atau mengamati bagaimana paket melewati beberapa hop.
  3. Topologi pohon: sudo mn --topo tree,depth=2,fanout=2
    Hasilnya: 1 switch akar, 2 switch cabang, dan 4 host di bawahnya. Topologi tree meniru struktur jaringan kampus atau kantor yang hierarkis — bagus untuk latihan pembagian subnet dan spanning tree.
  4. Topologi default tercepat: sudo mn
    Tanpa opsi apa pun, Mininet membangun minimal: 1 switch, 2 host, 1 controller. Saya selalu pakai ini untuk memastikan instalasi sehat sebelum bereksperimen lebih jauh.

Menariknya, untuk topologi bawaan kamu bisa menggabungkannya dengan opsi lain. Misalnya sudo mn --topo single,3 --mac --switch ovsk --controller remote akan membuat tiga host dengan MAC otomatis, switch OVS kernel, dan controller remote — kombinasi yang umum dipakai saat menghubungkan Mininet ke controller SDN eksternal seperti POX atau Ryu. Kalau kamu masih bingung memilih antara Mininet dan simulator lain, perbandingan Mininet vs GNS3 vs Cisco Packet Tracer saya bisa membantu menentukan alat yang tepat.

Cara Membuat Topologi Kustom Mininet dengan File Python

Cara membuat topologi jaringan Mininet yang benar-benar sesuai kebutuhan adalah menulis file Python yang mendefinisikan host, switch, dan link sendiri, lalu menjalankannya dengan sudo mn --custom namafile.py --topo namatopologi. Pola dasarnya selalu sama: buat class turunan Topo, tambahkan switch dengan addSwitch, tambahkan host dengan addHost, sambungkan keduanya dengan addLink, lalu daftarkan lewat dictionary topos di akhir file.

Contohnya, saya mencoba membuat file topologi sederhana — satu switch dengan tiga host, meniru segmen jaringan kantor kecil — dan pola dasarnya ternyata cuma sekitar 15 baris:

from mininet.topo import Topo

class TopologiKantor( Topo ):
    "Contoh topologi kantor: 1 switch, 3 host."

    def __init__( self ):
        Topo.__init__( self )
        s1 = self.addSwitch( 's1' )
        h1 = self.addHost( 'h1' )
        h2 = self.addHost( 'h2' )
        h3 = self.addHost( 'h3' )
        self.addLink( h1, s1 )
        self.addLink( h2, s1 )
        self.addLink( h3, s1 )

topos = { 'kantor': ( lambda: TopologiKantor() ) }

Simpan sebagai topo_kantor.py, lalu jalankan dengan:

sudo mn --custom topo_kantor.py --topo kantor

Catatan jujur dari percobaan saya: file saya lolos validasi sintaks Python, tapi saat saya coba menjalankannya dengan mn --custom, prosesnya macet di tahap *** Adding hosts karena environment container yang saya pakai tidak mengizinkan pembuatan network namespace — keterbatasan environment yang sama seperti yang saya temui saat uji instalasi kemarin, bukan kesalahan pada file topologinya. Berikut tangkapan layar terminal asli dari percobaan tersebut:

Screenshot terminal: percobaan menjalankan topologi kustom Mininet macet di tahap Adding hosts karena network namespace diblokir

Satu hal yang juga saya temui di uji ini: pesan *** No default OpenFlow controller found for default switch! *** Falling back to OVS Bridge muncul juga untuk topologi kustom. Itu normal di instalasi via apt — Mininet otomatis memakai OVS Bridge untuk topologi dasar, jadi jangan panik. Kalau kamu menjalankan perintah ini di Ubuntu asli atau VM VirtualBox/VMware biasa (bukan container), topologinya akan jalan normal s

Ilustrasi editor kode Python berisi skrip topologi jaringan dan diagram switch dengan tiga komputer

ampai muncul prompt mininet>.

Tips Menulis File Topologi Kustom

Beberapa kebiasaan yang membuat file topologimu lebih rapi dan mudah dikembangkan:

  • Gunakan loop untuk topologi berulang. Daripada menulis addHost sepuluh kali, pakai for i in range(10) dengan nama host f'h{i+1}'. Mengubah skala topologi jadi semudah mengganti satu angka.
  • Beri nama yang deskriptif. kantor, tree_custom, atau qos_topo jauh lebih mudah dikenali daripada mytopo saat daftar filemu bertambah.
  • Atur parameter link bila perlu. Dengan --link tc dan parameter seperti bw=10, delay='5ms', loss=1 pada addLink, kamu bisa mensimulasikan link yang lambat atau berisik — berguna untuk eksperimen QoS. Sintaks lengkapnya: self.addLink(h1, s1, bw=10, delay='5ms').
  • Pisahkan file per skenario. Satu file satu topologi. Lebih mudah di-debug dan bisa dipakai ulang di laporan tugas berbeda.

Cara Menjalankan dan Menguji Topologi yang Sudah Dibuat

Setelah topologi berjalan dan muncul prompt mininet>, uji konektivitasnya dengan perintah pingall — perintah ini mengirim ping dari setiap host ke semua host lain dan melaporkan hasilnya. Kalau instalasi dan topologimu benar, outputnya diakhiri *** Results: 0% dropped (N/N received) yang artinya semua host saling terhubung sempurna. Ini adalah verifikasi paling dasar dan wajib sebelum eksperimen lanjutan.

Selain pingall, ada beberapa perintah CLI Mininet yang sebaiknya kamu kenal:

  1. pingall — tes konektivitas semua-ke-semua. Versi cepatnya: sudo mn --test pingall (membangun topologi default, menjalankan pingall, lalu membersihkan otomatis).
  2. h1 ping -c3 h2 — ping dari satu host spesifik ke host lain. Berguna untuk memastikan jalur tertentu, misalnya setelah kamu mengubah flow table.
  3. net — menampilkan daftar semua node dan link yang aktif. Cara cepat memastikan topologimu terbentuk sesuai rancangan.
  4. dump — menampilkan detail tiap node termasuk alamat IP dan PID prosesnya.
  5. xterm h1 h2 — membuka terminal terpisah untuk host tertentu. Dari sini kamu bisa menjalankan iperf untuk mengukur throughput antar host.
  6. exit atau Ctrl+D — keluar dari CLI Mininet dan membersihkan topologi.

Perlu saya sampaikan jujur: bagian verifikasi ini saya susun dari dokumentasi resmi mininet.org dan tutorial kampus terverifikasi, karena seperti yang saya ceritakan di atas, environment container saya tidak bisa menjalankan jaringan virtual Mininet sampai selesai. Di mesinmu yang normal (Ubuntu fisik atau VM biasa), perintah-perintah ini akan berjalan persis seperti yang didokumentasikan.

Tips Memilih Topologi yang Tepat untuk Kebutuhanmu

Pilih topologi berdasarkan tujuan eksperimenmu: single untuk latihan dasar, linear untuk multi-hop, tree untuk struktur hierarkis, dan file kustom Python untuk skenario spesifik seperti QoS atau topologi dunia nyata. Aturan praktisnya: mulai dari yang paling sederhana yang masih mewakili pertanyaanmu — topologi yang terlalu rumit hanya menambah variabel yang membingungkan hasil.

Beberapa panduan konkret:

  • Tugas kuliah pengenalan SDN: single,3 atau single,4 sudah cukup. Fokusmu adalah memahami controller dan flow, bukan topologinya.
  • Eksperimen routing atau spanning tree: linear,4 atau tree,depth=2,fanout=2. Di sini jumlah hop dan jalur alternatif jadi bagian dari yang diuji.
  • Uji QoS (bandwidth, delay, loss): topologi kustom dengan parameter link (bw, delay, loss) — pola "dumbbell" (dua switch dihubungkan satu link sempit) adalah standar untuk skenario ini.
  • Meniru jaringan nyata: file Python kustom. Gambar dulu diagramnya di kertas, baru terjemahkan ke addSwitch/addHost/addLink. Untuk konsep dasar merancang jaringan fisiknya, panduan cara membuat jaringan komputer bisa jadi bekal yang bagus.

Dan satu tips operasional yang sering dilupakan: selalu jalankan sudo mn -c untuk membersihkan sisa topologi sebelum membuat yang baru. Sisa proses dari sesi sebelumnya adalah penyebab paling umum dari error misterius saat topologi baru dijalankan.

FAQ

Apakah membuat topologi Mininet harus bisa Python?

Tidak harus. Topologi bawaan (--topo single,3, --topo linear,4, dan sejenisnya) tidak butuh coding sama sekali. Python baru dibutuhkan kalau kamu ingin topologi kustom yang bentuknya spesifik — dan polanya pun sederhana: addSwitch, addHost, addLink.

Kenapa perintah mn saya macet di "Adding hosts"?

Penyebab paling umum adalah environment yang tidak mengizinkan pembuatan network namespace — misalnya container Docker/LXC tanpa privilege yang cukup. Saya mengalaminya sendiri di environment uji saya. Solusinya: jalankan Mininet di Ubuntu fisik, VM VirtualBox/VMware biasa, atau container dengan flag yang mengizinkan network namespace. Bukan bug pada file topologimu.

Bagaimana cara menghubungkan topologi Mininet ke controller SDN eksternal?

Tambahkan opsi --controller=remote,ip=127.0.0.1,port=6653 saat menjalankan mn, dan pastikan controllermu (misalnya POX, Ryu, atau ONOS) sudah berjalan dan mendengarkan di port tersebut. Contoh lengkap: sudo mn --custom topo.py --topo kantor --controller remote,ip=127.0.0.1.

Bisakah topologi Mininet disimpan dan dipakai ulang?

Bisa. File Python topologi kustom pada dasarnya adalah "cetakan" yang bisa dipakai ulang kapan saja — cukup jalankan ulang mn --custom dengan file yang sama. Inilah keunggulan utama topologi kustom dibanding mengetik perintah --topo berulang kali.

Apakah topologi Mininet bisa mensimulasikan jaringan nirkabel?

Mininet standar hanya mensimulasikan jaringan kabel (wired). Untuk jaringan nirkabel ada ekstensi bernama Mininet-WiFi yang menambahkan access point dan station bergerak. Instalasi dan konsep topologinya mirip, tapi butuh paket tambahan.

Kesimpulan

Cara membuat topologi jaringan Mininet pada intinya ada dua: pakai topologi bawaan lewat --topo untuk kebutuhan cepat, atau tulis file Python kustom dengan pola addSwitch–addHost–addLink untuk skenario yang spesifik. Keduanya sama-sama dijalankan lewat perintah mn, dan hasilnya bisa langsung diuji dengan pingall dari CLI Mininet.

Mulailah dari topologi bawaan yang paling sederhana, pastikan pingall menunjukkan 0% dropped, baru naik ke file kustom saat kebutuhanmu bertambah. Kalau kamu tertarik mendalami simulasi jaringan lebih jauh, artikel saya tentang instalasi Mininet dan perbandingan simulator jaringan adalah bacaan lanjutan yang pas. Oh ya — perintah-perintah Linux dasar seperti sudo dan navigasi direktori juga wajib dikuasai; kalau belum, pelajari dulu perintah dasar Linux Debian agar tidak tersandung di terminal. Selamat bereksperimen!

Baca Juga

Baca Artikel Rekomendasi :