Tentang Software Defined Network
- Gilang V. Perdana
- 09 Sep 2021
- dilihat 409
SDN
Software Defined Network atau SDN adalah sebuah konsep pada jaringan komputer yang memisahkan antara Data Plane dan Control Plane (dengan bantuan software) atau dalam kata lain, perangkat jaringan pada konsep SDN adalah hanya sebagai data plane (tempat keluar masuk data saja). Sedangkan yang mengatur policy-policy nya adalah perangkat yang dinamakan Control Plane, Control Plane bisa diterapkan pada sebuah Node yang di install aplikasi Controller seperti RYU, ONOS, POX, OPENDAYLIGHT, dsb. Pada sharing kali ini, saya akan sedikit sharing tentag bagaimana instalasi dari controller-controller SDN tersebut (POX, RYU, ONOS) pada Linux Ubuntu yang nantinya untuk membuktikan controller tersebut bekerja, saya akan menggunakan aplikasi jaringan virtual (emulator) yang disebut Mininet. Artikel ini dibuat hanya sebagai dasar praktik, untuk teknik teknik advanced silahkan untuk mempelajarinya sendiri.
Skema yang saya gunakan :
Environment :
1. POX
2. RYU
3. ONOS
4. Mininet
5. Ubuntu
6. Putty
7. Visual Studio Code
1. POX
2. RYU
3. ONOS
4. Mininet
5. Ubuntu
6. Putty
7. Visual Studio Code
Instalasi Mininet :
Pertama, instalasi mininet terlebih dahulu pada Node Mininet. Hal ini saya lakukan karena untuk pembuktian semua controller nantinya.
1. Update repository Ubuntu:
$ sudo apt update && apt-get full-upgrade
2. Instalasi Mininet :
$ sudo apt install git
$ git clone git://github.com/mininet/mininet
$ cd mininet/util/
$ ./install.sh -nfv
3. Verifikasi Instalasi Mininet :
$ mn
Jika sudah muncul tampilan seperti gambar diatas, ini tandanya kita sudah berhasil instalasi mininet.
Instalasi & Demo Controller :
Lakukan di Node Controller.
Pastikan telah melakukan update dependencies pada Node Controller:
$ sudo apt update && apt-get full-upgrade
- Instalasi ONOS & Demo ONOS :
$ sudo apt-get install git zip curl unzip python3-minimal openjdk-11-jdk -y
$ cd /opt/
$ wget https://repo1.maven.org/maven2/org/onosproject/onos-releases/2.6.0/onos-2.6.0.tar.gz
$ tar xzzf onos-2.6.0.tar.gz
$ mv onos-2.6.0 onos
$ sudo adduser sdn — system — group
$ nano /opt/onos/options , isi dengan :
export ONOS_USER=sdn
export ONOS_APPS=drivers,openflow,gui2
$ sudo chown -R sdn:sdn onos
$ sudo cp /opt/onos/init/onos.initd /etc/init.d/onos
$ sudo cp /opt/onos/init/onos.service /etc/systemd/system
$ sudo systemctl daemon-reload
$ sudo systemctl enable onos
$ sudo systemctl start onos
$ sudo systemctl status onos
2. Akses ONOS :
Akses pada localhost:8181/onos/ui/login.html
User: onos
Pass : rocks
Voila, ONOS sudah berhasil diinstall. Ini saatnya untuk menghubungkan ONOS sebagai controller dengan Mininet sebagai emulator dataplane nya.
3. Konfigurasi Mininet :
Buatlah file .py pada mininet untuk menyusun/membuat topologi. Disini saya ingin membuat topologi kurang lebih seperti ini :
Saya akan translate itu ke dalam bentuk file .py , kurang lebih seperti ini jadinya :
Buat file bernama Topo-examply.py pada Node Mininet.
$ nano Topo-example.py
Isi dengan script diatas, lalu save dan exit.
Setelah ter-save, saatnya eksekusi dengan menjalankan script dibawah ini :
$ sudo mn — switch ovs,protocols=OpenFlow14 — controller remote,ip=your_controller_ip — custom Topo-example.py — topo topoex1
Tidak lupa untuk mengganti your_controller_ip ke IP Node Controller kamu
Langsung saja kita enter, dan voilaa topology sudah tersambung ke ONOS sebagai Controller.
Namun, disinilah percobaanya. Kita akan mencoba untuk ping semua device SDN dengan :
$ pingall
Yap, terlihat bahwa tidak bisa di ping, mengapa? Ini karena kita belum setting policy yang ada pada ONOS. Silahkan setting policy untuk meng-accept semua traffic antar switch pada ONOS. Pada tahap ini, silahkan kalian mengunjungi Applications pada web UI ONOS dan cari Reactive Forwarding lalu aktifkan.
Sekarang kita akan coba test ping lagi
Yap terlihat, sekarang paket paket sudah bisa diteruskan dengan bukti ping tidak ada yang error, semua sucess. Demikianlah untuk pengkoneksian menggunakan ONOS sebagai Controller. Tentunya sampai sini, kalian sudah mulai paham bukan? Bahwa controller adalah kumpulan policy policy nya, jika controller tidak dikonfigurasi maka data tidak akan jalan (ini dasar konsep SDN).
2. Instalasi POX & Demo POX
Untuk mencoba menggunakan POX, pastikan tidak ada controller lain yang berjalan. Untuk mematikan ONOS :$ systemctl stop onos
Setelah ONOS berhenti, lanjut ke tutorial berikut ini:
$ cd
$ git clone https://github.com/noxrepo/pox
$ cd pox/
Jika berhasil, silahkan eksekusi script dibawah ini untuk verifikasi keberhasilan :
$ python3 pox.py samples.pretty_log forwarding.l2_learning
Jika muncul seperti itu, itu artinya POX sudah berfungsi. Sekarang saatnya mencoba menggunakan POX sebagai Controller.
Lanjut ke percobaan, Silahkan nyalakan POX terlebih dahulu:
$ sudo ./pox.py samples.pretty_log forwarding.l2_pairs openflow.discovery — eat-early-packets openflow.spanning_tree — no-flood — hold-down
Lalu nyalakan ulang mininet:
$ sudo mn — custom Topo-examply.py — topo topoex1 — controller=remote,ip=your_controller_ip
Pastikan untuk merubah your_controller_ip ke IP Node POX kamu.
Langsung saja kita coba,
Voila, berhasil menghubungkan dengan POX sebagai Controller.
3.Instalasi RYU & Demo RYU
Pastikan tidak ada controller lain yang sedang berjalan.
$ git clone git://github.com/osrg/ryu.git
$ apt install python3-pip
$ apt install python3-ryu
Verifikasi RYU telah berhasil di-install :
$ cd ryu/ryu/app/
$ ryu-manager simple_switch_stp_13.py gui_topology/gui_topology.py
Akses pada http://localhost:8080
Voila, RYU sudah berhasil diakses. Ini tandanya RYU berhasil diinstall. Selanjutnya kita akan mencoba mengkoneksikan mininet dengan RYU sebagai controllernya.
Silahkan eksekusi :
$ sudo mn — custom Topo-example.py — topo topoex1 — controller=remote,ip=your_controller_ip [Ekseusi pada node Mininet]
$ ryu-manager simple_switch_stp_13.py gui_topology/gui_topology.py — wsapi-port=80 [Eksekusi pada Node Controller]
Lalu akses pada http://localhost
Voilaa, kita sudah berhasil mengkoneksikan Mininet dengan RYU sebagai Controllernya.
Untuk source code bisa kunjungi di : https://github.com/gilangvperdana/SDN-PlayGround
Jika kalian ingin menggunakan environment tersebut diatas Docker Container, kalian bisa menggunakan sbb :
Demikianlah LAB seputaran SDN dasar, semoga bermanfaat.
Pertama, instalasi mininet terlebih dahulu pada Node Mininet. Hal ini saya lakukan karena untuk pembuktian semua controller nantinya.
1. Update repository Ubuntu:
$ sudo apt update && apt-get full-upgrade
2. Instalasi Mininet :
$ sudo apt install git
$ git clone git://github.com/mininet/mininet
$ cd mininet/util/
$ ./install.sh -nfv
3. Verifikasi Instalasi Mininet :
$ mn
Jika sudah muncul tampilan seperti gambar diatas, ini tandanya kita sudah berhasil instalasi mininet.
Instalasi & Demo Controller :
Lakukan di Node Controller.
Pastikan telah melakukan update dependencies pada Node Controller:
$ sudo apt update && apt-get full-upgrade
- Instalasi ONOS & Demo ONOS :
$ sudo apt-get install git zip curl unzip python3-minimal openjdk-11-jdk -y
$ cd /opt/
$ wget https://repo1.maven.org/maven2/org/onosproject/onos-releases/2.6.0/onos-2.6.0.tar.gz
$ tar xzzf onos-2.6.0.tar.gz
$ mv onos-2.6.0 onos
$ sudo adduser sdn — system — group
$ nano /opt/onos/options , isi dengan :
export ONOS_USER=sdn
export ONOS_APPS=drivers,openflow,gui2
$ sudo chown -R sdn:sdn onos
$ sudo cp /opt/onos/init/onos.initd /etc/init.d/onos
$ sudo cp /opt/onos/init/onos.service /etc/systemd/system
$ sudo systemctl daemon-reload
$ sudo systemctl enable onos
$ sudo systemctl start onos
$ sudo systemctl status onos
2. Akses ONOS :
Akses pada localhost:8181/onos/ui/login.html
User: onos
Pass : rocks
Voila, ONOS sudah berhasil diinstall. Ini saatnya untuk menghubungkan ONOS sebagai controller dengan Mininet sebagai emulator dataplane nya.
3. Konfigurasi Mininet :
Buatlah file .py pada mininet untuk menyusun/membuat topologi. Disini saya ingin membuat topologi kurang lebih seperti ini :
Saya akan translate itu ke dalam bentuk file .py , kurang lebih seperti ini jadinya :
Buat file bernama Topo-examply.py pada Node Mininet.
$ nano Topo-example.py
Isi dengan script diatas, lalu save dan exit.
Setelah ter-save, saatnya eksekusi dengan menjalankan script dibawah ini :
$ sudo mn — switch ovs,protocols=OpenFlow14 — controller remote,ip=your_controller_ip — custom Topo-example.py — topo topoex1
Tidak lupa untuk mengganti your_controller_ip ke IP Node Controller kamu
Langsung saja kita enter, dan voilaa topology sudah tersambung ke ONOS sebagai Controller.
Namun, disinilah percobaanya. Kita akan mencoba untuk ping semua device SDN dengan :
$ pingall
Yap, terlihat bahwa tidak bisa di ping, mengapa? Ini karena kita belum setting policy yang ada pada ONOS. Silahkan setting policy untuk meng-accept semua traffic antar switch pada ONOS. Pada tahap ini, silahkan kalian mengunjungi Applications pada web UI ONOS dan cari Reactive Forwarding lalu aktifkan.
Sekarang kita akan coba test ping lagi
Yap terlihat, sekarang paket paket sudah bisa diteruskan dengan bukti ping tidak ada yang error, semua sucess. Demikianlah untuk pengkoneksian menggunakan ONOS sebagai Controller. Tentunya sampai sini, kalian sudah mulai paham bukan? Bahwa controller adalah kumpulan policy policy nya, jika controller tidak dikonfigurasi maka data tidak akan jalan (ini dasar konsep SDN).
2. Instalasi POX & Demo POX
$ systemctl stop onos
Setelah ONOS berhenti, lanjut ke tutorial berikut ini:
$ cd
$ git clone https://github.com/noxrepo/pox
$ cd pox/
Jika berhasil, silahkan eksekusi script dibawah ini untuk verifikasi keberhasilan :
$ python3 pox.py samples.pretty_log forwarding.l2_learning
Jika muncul seperti itu, itu artinya POX sudah berfungsi. Sekarang saatnya mencoba menggunakan POX sebagai Controller.
Lanjut ke percobaan, Silahkan nyalakan POX terlebih dahulu:
$ sudo ./pox.py samples.pretty_log forwarding.l2_pairs openflow.discovery — eat-early-packets openflow.spanning_tree — no-flood — hold-down
Lalu nyalakan ulang mininet:
$ sudo mn — custom Topo-examply.py — topo topoex1 — controller=remote,ip=your_controller_ip
Pastikan untuk merubah your_controller_ip ke IP Node POX kamu.
Langsung saja kita coba,
Voila, berhasil menghubungkan dengan POX sebagai Controller.
3.Instalasi RYU & Demo RYU
Pastikan tidak ada controller lain yang sedang berjalan.
$ git clone git://github.com/osrg/ryu.git
$ apt install python3-pip
$ apt install python3-ryu
Verifikasi RYU telah berhasil di-install :
$ cd ryu/ryu/app/
$ ryu-manager simple_switch_stp_13.py gui_topology/gui_topology.py
Akses pada http://localhost:8080
Voila, RYU sudah berhasil diakses. Ini tandanya RYU berhasil diinstall. Selanjutnya kita akan mencoba mengkoneksikan mininet dengan RYU sebagai controllernya.
Silahkan eksekusi :
$ sudo mn — custom Topo-example.py — topo topoex1 — controller=remote,ip=your_controller_ip [Ekseusi pada node Mininet]
$ ryu-manager simple_switch_stp_13.py gui_topology/gui_topology.py — wsapi-port=80 [Eksekusi pada Node Controller]
Lalu akses pada http://localhost
Voilaa, kita sudah berhasil mengkoneksikan Mininet dengan RYU sebagai Controllernya.
Untuk source code bisa kunjungi di : https://github.com/gilangvperdana/SDN-PlayGround
Jika kalian ingin menggunakan environment tersebut diatas Docker Container, kalian bisa menggunakan sbb :
Demikianlah LAB seputaran SDN dasar, semoga bermanfaat.
Tidak ada komentar:
Posting Komentar