Skip to main content

Konfigurasi static routing pada SDN OpenFlow mengunakan Ryu Controller

setelah lama, saya tidak membahas tentang SDN (Software Defined Networking) sekarang saya mau mencoba untuk konfig static route di openflow controller, sebenernya masih banyak yang ingin saya bahas tentang SDN tapi karena banyaknya agenda saya, jadi belum sempat untuk di tulis, hehehe :v

Ryu controller adalah software freamework untuk defined networking, ryu controller mendukung openflow 1.1 – 1.5. ryu dalam bahasa jepang artinya flow

skema topologi yang akan dibuat adalah seperti ini

gambar topo

Rincian topologi :

  • 2 host dengan network 1.1.1.0/30 dan 2.2.2.0/30
  • 2 switch openflow dengan network 12.12.12.0/30
  • 1 openflow controller dengan ryu controller (192.168.43.20)

OpenFlow dalam layer osi bekerja sampe layer 4 yaitu transport sehingga bisa membaca sampe protocol yang digunakan.

OpenFlow = SDN tapi SDN != OpenFlow , karena komponen SDN itu banyaj seperti openstack, devops dll

okee langsung saja kita coba………..

pada  dasarnya routing static di openflow itu sama seperti routing static di jaringan secara umum, namun nanti dalam implementasi nya mengunakan Rest API, sehingga network kedepannya dapat diautomation

  • Meremote mininet mengunakan putty – ssh dengan x11

setting x11

ssh

192.168.43.20 adalah ip addres server mininet yang akan kita simulasikan

  • membuat topologi pada mininet sesuai dengan gambar topo diatas

topologi mininet

–topo = linear,2  artinya bentuknya sejajar dengan 2 switch dan 2 host dan –controller=remote,ip=192.168.43.20 artinya dapat terhubung ke controller secara remote dengan ip address openflow controllernya adalah 192.168.43.20

  • mengecek nodes dan links pada topologi

cek nodes & links

setelah dicek sesuai dengan topologi yaitu terdapat 2 host , 2 switch dan 1 controller

  • Mengaktifkan OpenFlow agent pada setiap switch (s1 & s2)

setting bridge s1 of1.3

settingan diatas dijalan pada switch 1 , jgn sampe kebalik

setting bridge s2 of1.3

dan untuk settingan ini dijalankan pada switch 2

konfigurasi diatas switch openflow support terhadap openflow 1.3, sehingga ketika switch sudah konfig seperti ini maka nanti di openflow controller akan terbentuk flow secara otomatis.

  • memberikan ip address pada host di mininet

ip add h1 - old

secara default network pada mininet adalah 10.0.0.0/8, kita rubah sesuai topologi

new-ip h1

pada h1 (host 1) ip nya adalah 1.1.1.2/30

new ip h2

pada h2 (host 2) ip nya adalah 2.2.2.2/30

  • test ping antar kedua host

test ping h1 - h2

tentu saja belum bisa ping, karena di switch openflow belum kita konfig.

  • Mengaktifkan OpenFlow Controller (Ryu Controller)

koneksi controller-term

koneksi ssh ke OF controller mengunakan terminal

actived ryu controller

kemudian mengaktifkan ryu dengan rest_router, sebelumnya harus install ryu controller terebih dahulu disini

  • memberikan ip pada switch 1 & 2 OF 1.3 via controller mengunakan REST API

assign ip switch from controller

pada switch 1 diberikan ip 1.1.1.1/30 dan 12.12.12.1/30 dgn mac address 0000000000000001

assign ip switch 2 from controller

pada switch 2 diberikan ip 12.12.12.2/30 dan 2.2.2.1/30 dgn mac address 0000000000000002

  • Mengecek hasil konfig via REST API

cek curl controller

semua berhasil , sesuai dengan switch_id yang di konfig

  • Mengaktifkan static route pada controller dengan menambahkan default gateway

routing static - gw

konsep routing static sama seperti network secara umum yaitu pada switch 1 memiliki gateway pada ip di switch 2 (12.12.12.2) dan berlaku sebaliknya pada switch 2 memiliki gateway pada ip di switch 1 (12.12.12.1)

  • Memberikan default gateway pada setiap host (mininet)

add gw from host1 and 2

menambahkan default gw pada host 1(h1) = 1.1.1.1 dan host 2(h2) = 2.2.2.1, sesuaikan pada network topologi

  • Flow akan terbentuk pada controller

report ryu controller

ketika konfigurasi sudah dilakukan pada controller maka flow akan terbentu secara otomatis dengan menentukan routing flow sesuai dengan network topologi yang sudah dibuat. yaitu pada switch 1 akan mendapatkan dan menerima ARP request dan reply dari switch 2 dan sebaliknya terdapat proses learn pada switch openflow.

  • Test koneksi antara h1 dan h2

h1 ping h2

h1 sudah dapat ping ke h2

h2 ping h1

h2 sudah dapat ping ke h2

jika kedua host sudah dapat ping maka , konfigurasi static routing sudah berhasil, woow sudah selesai cukup ribet ya dalam mengkonfigurasinya 😀 hahaha

pada SDN ini intinya adalah abstraction yaitu kita tidak langsung mengkonfig langsung ke perangkat, tapi cukup melalui satu controller server untuk push flow pada semua perangkat yang terhubung

cukup sekian tutorialnya, semoga bermanfaat.

wassalamualaikum.

Alan Adi Prastyo

network & system engineer

  • Heba

    Dear Sir,

    I did static routing for my network topology in mininet and it is done well and I write the python code for it.
    Everything is fine and ping from any host to another but I recognized two things.
    First, when I run the python code with RYU controller for the first time, pinging is done well but when running it again, it is not ping at all. I have to restart the controller again.

    Second, when writing the ping command in the python code, it is not ping.
    Please, if you know any explanation for this, can you help me?

    I appreciate your help.

    Regards,
    Heba

    • Alan Adi Prastyo

      Hi Heba,

      can you attach the python code in here?

      Regards,
      Alan

      • Heba

        I sent it. you receive it?

  • Yasin Afandi

    mau nanya mas, apakah bisa kalo cuma 1 switch saja yang terhubung dengan controller. soalnya saya mengimplementasikan menggunakan router sungguhan dan menggunakan laptop sebagai controller dan masalahnya laptop cuma punya 1 network interface jadi kedua switch tidak bisa terhubung ke controller. mohon pencerahannya master thanks.

    • Alan Adi Prastyo

      Hai mas @yasinafandi:disqus,

      tentu bisa jika 1 switch langsung terhubung ke controller, yang penting switch tersebut sudah support protocol openflow, nantinya dari switch tersebut harus diarahkan ke ip controller.

      Regards,
      Alan

      • arisyi

        dicoba dulu Mas untuk menghubungkan 2 switch yang ingin di manage oleh controller ke switch/hub lalu dari PC konek juga ke switch/hub tersebut, karena protocol openflow konek ke switch yang ingin di manage dengan menggunakan IP.
        note: tidak semua switch support openflow.

        Arisyi.

        • Yasin Afandi

          sebelumnya terima kasih atas tanggapan nya, misal kan tanpa switch/hub tambahan/ perankat tambahan lain apakah masih memungkinkan tetap menggunakan 2 switch dan sebuah controller berupa laptop,? thanks

          • arisyi

            harusny ngak bisa Mas, biasany koneksi antara controller dan switch menggunakan port management yang ada di switch, jadi klo switch lebih dari satu harus dibuat network management dahulu, dengan menggabungkannya menggunakan switch.

            Arisyi.

      • Yasin Afandi

        sebelumnya terima kasih atas tanggapan nya, tapi saya masih bingung misal cuma 1 switch yang terhubung ,apakah switch yang tidak terhubung langsung ke controller perlu settingan khusus biar bisa terhubung ke controller?soalnya saya coba simulasikan ke mininet saya belum berhasil jika semua switch tidak terhubung ke controller. thanks

  • naufal abyan

    mas kalo saya nge konfigure tanpa SSH gimana, itu kan network nya cuman 2 lalu bagaimana apabila network nya ada 16 dengan topology full mesh?

    • Alan Adi Prastyo

      hai mas @naufal_abyan:disqus

      Pada awalnya tetap menggunakan ssh ke host SDN (ubuntu / centos), nanti kalo sudah masuk ke host sdn, anda bisa menggunakan xterm atau mobaxter/xming (windows)

      Kalau misalnya anda mencoba dengan 16 network dengan topo full mesh sebenernya tidak masalah, namun nanti untuk pembuatan static router menjadi lumayan banyak

      Regards,
      Alan