tag:blogger.com,1999:blog-39400448365565857072024-12-19T10:27:50.990+07:00RearmCoba lihat apa yang aku temukan!Muhammad Ilhamhttp://www.blogger.com/profile/07052286184522393882[email protected]Blogger5125tag:blogger.com,1999:blog-3940044836556585707.post-73713743130651524962023-01-08T23:24:00.004+07:002023-06-18T17:15:40.005+07:00Troubleshoot Twin USB GamepadTroubleshoot USB Gamepad ShanWan Twin USB Joystick (VID_2563&amp;PID_0555).&nbsp; <div> <br /> </div> <div>Masalah pada gamepad tersebut adalah tidak mendukung mode XInput, hanya mode DirectInput yang didukung. Padahal game jaman sekarang kebanyakan hanya mendukung mode XInput (mode yang dipakai di XBOX Controller). Selain itu gamepad ini memiliki motor getar tapi tidak berfungsi.&nbsp;</div> <div>Berikut ini beberapa hal yang dapat dilakukan :&nbsp;</div> <div> <br /> </div> <h2 style="text-align: left;">1. Windows&nbsp;</h2> <div>Pada Windows gamepad ini plug &amp; play tapi untuk mengaktifkan fitur getar perlu driver bawaannya, jika CD Driver bawaannya hilang bisa unduh ini : <a href="https://drive.google.com/file/d/1v9L-qojUCB9bL2sQ_cf4DZ97bc7iNp2d/view?usp=sharing">https://drive.google.com/file/d/1v9L-qojUCB9bL2sQ_cf4DZ97bc7iNp2d/view?usp=sharing</a>&nbsp; </div> <div>Untuk mengubah mode dari DirectInput menjadi XInput bisa menggunakan software ini : <a href="https://www.x360ce.com/">https://www.x360ce.com/</a>&nbsp;</div> <div>x360ce bisa mengubah instruksi getar dari XInput ke DirectInput juga kalau sudah diinstal driver gamepadnya, tapi tidak bisa diatur proporsi kiri kanannya. Kekurangan x360ce yaitu harus duplikat file confignya ke folder masing-masing game, selain itu khusus untuk ShanWan Twin USB Joystick ini ada bug pada x360ce yaitu konfigurasinya akan reset ketika restart PC walaupun sudah disimpan.&nbsp;</div> <div>Alternatif lain x360ce yaitu menggunakan software ini : <a href="https://github.com/csutorasa/XOutput">https://github.com/csutorasa/XOutput</a> Kelebihannya XOutput tidak perlu duplikat file config ke semua game. Install satu untuk semua karena software ini menggunakan driver virtual. Lalu untuk gamepad ini juga dapat di simpan konfigurasinya tidak seperti x360ce. Kekurangannya XOutput yaitu tidak ada fitur untuk mengatur fitur getar, jadi fitur getarnya tidak aktif.&nbsp; </div> <div> <br /> </div> <h2 style="text-align: left;">2. Linux&nbsp;</h2> <div>Pada Linux secara default hanya terdeteksi 1 stik saja, untuk mengatasi hal tersebut perlu mengaktifkan fitur quirk HID_QUIRK_MULTI_INPUT (0x040). Kalian juga bisa menggunakan cara ini untuk gamepad double yang lain, tinggal ganti vendor id &amp; product id nya. Jika belum tahu vendor id &amp; product id joystick yang kalian miliki, kalian bisa menggunakan perintah <span style="background-color: #eeeeee; color: #3d85c6; font-family: courier;">lsusb</span> atau <span style="background-color: #eeeeee; color: #3d85c6; font-family: courier;">dmesg</span>. Cara mengaktifkan fitur quirk HID_QUIRK_MULTI_INPUT sementara waktu untuk Vendor ID=2563 dan Product ID=0555 seperti ini :&nbsp; </div> <div> <pre><code>sudo modprobe usbhid "quirks=0x2563:0x555:0x040" </code></pre> </div> <div>untuk solusi permanennya buat file .conf baru di /etc/modprobe.d :&nbsp;</div> <div> <pre><code>sudo gedit /etc/modprobe.d/usbhid-quirks.conf </code></pre> </div> <div>isikan :&nbsp;</div> <div> <pre><code>options usbhid quirks=0x2563:0x555:0x040 </code></pre> </div> <div>simpan lalu jalankan perintah update initramfs:&nbsp;</div> <div> <pre><code>sudo update-initramfs -u</code></pre> </div> <div>ketika PC nyala maka otomatis quirk tersebut akan diterapkan. Quirk yang sudah ditambahkan bisa dicek menggunakan perintah ini :&nbsp;</div> <div> <pre><code>cat /sys/module/usbhid/parameters/quirks </code></pre> </div> <div>untuk cek apakah stick nya udah jadi dua gunakan perintah ini :&nbsp;</div> <div> <pre><code>ls /dev/input </code></pre> </div> <div>jika sukses maka akan ada dua perangkat yaitu <span style="background-color: #eeeeee; color: #3d85c6; font-family: courier;">js0</span> dan <span style="background-color: #eeeeee; color: #3d85c6; font-family: courier;">js1</span>.&nbsp; </div> <div>selain itu kalian juga bisa menggunakan aplikasi yang lebih interaktif untuk mencoba joystick dengan software ini :&nbsp;</div> <div> <a href="https://gitlab.com/jstest-gtk">https://gitlab.com/jstest-gtk</a>&nbsp; </div> <div>Mode DirectInput dapat diubah menjadi XInput dengan menggunakan software berikut : <a href="https://gitlab.com/xboxdrv/xboxdrv">https://gitlab.com/xboxdrv/xboxdrv</a>&nbsp; </div> <div>Kekurangannya Gamepad ini pada linux yaitu fitur getarnya tidak terbaca, kalau dicek menggunakan <span style="background-color: #eeeeee; color: #3d85c6; font-family: courier;">evtest</span> tidak ada , sehingga ketika dicoba memakai&nbsp;<span style="background-color: #eeeeee;"> <span style="color: #3d85c6; font-family: courier;">fftest</span> </span> pun jadi ga bisa.&nbsp; </div><div><br /></div><div>Selain itu bisa cek Arch wiki disana ada dokumen lengkap terkait gamepad di linux&nbsp;<a href="https://wiki.archlinux.org/title/Gamepad" rel="nofollow" style="background-color: white; color: #1155cc; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; pointer-events: none; white-space-collapse: preserve;" target="_blank">https://wiki.archlinux.org/title/Gamepad</a>&nbsp;.</div> <div> Sumber lain untuk mensimulasikan dinput ke xinput :<br />https://www.linuxquestions.org/questions/showthread.php?s=7840154b36ea54e5a19205695d161427&amp;p=6282607</div><div>https://askubuntu.com/questions/327640/how-to-emulate-xinput-device-with-directinput-gamepad</div><div>https://steamcommunity.com/app/236090/discussions/0/558748653724279774/</div><div><br /></div> <h2 style="text-align: left;">3. Sistem Operasi Android&nbsp;</h2> <div>Gamepad ini sulit untuk digunakan di Android, hanya beberapa aplikasi Android yang mendukung. Lalu untuk fitur getar juga sepertinya tidak bisa.&nbsp;</div> <h4 style="text-align: left;">- Tested :&nbsp;</h4> <div>Aplikasi Mantis mendukung gamepad ShanWan ini untuk mapping gamepad jadi sentuhan touchscreen di layar, dua gamepad bisa terbaca terpisah (Update : hanya bisa terbaca satu gamepad).&nbsp;</div> <div> <a href="https://play.google.com/store/apps/details?id=app.mantispro.gamepad">https://play.google.com/store/apps/details?id=app.mantispro.gamepad</a>&nbsp; </div> <div><br /></div><div>Aplikasi ePSXe hanya mendukung 1 gamepad :&nbsp;</div><div><a href="https://play.google.com/store/apps/details?id=com.epsxe.ePSXe">https://play.google.com/store/apps/details?id=com.epsxe.ePSXe</a></div><div><br /></div><div>Aplikasi PPSSPP Gold hanya mendukung 1 gamepad :</div><div><a href="https://play.google.com/store/apps/details?id=org.ppsspp.ppssppgold">https://play.google.com/store/apps/details?id=org.ppsspp.ppssppgold</a></div><div><br /></div><div>Aplikasi YUZU tidak support hingga saat ini.</div><div>Selain itu sepertinya kebanyakan aplikasi android juga hanya mendukung XInput, misalnya game Dead Cells, ketika saya colokkan gamepad ini, hanya tombol arah panah yang berfungsi.&nbsp;</div> <div> <br /> </div> <h3 style="text-align: left;">- Not Tested, hasil searching di internet :&nbsp;</h3> <div>Android perlu menambahkan file key layout (.kl) hanya saja hapenya harus di root terlebih dahulu <a href="https://source.android.com/devices/input/key-layout-files">https://source.android.com/devices/input/key-layout-files</a>&nbsp; </div> <div> <br /> </div> <div> <div>Untuk mencoba hasilnya kalian bisa menggunakan aplikasi ini untuk mencoba &amp; modifikasi file .kl (harus root) :</div> <div> <a href="https://play.google.com/store/apps/details?id=ru.elron.gamepadtester">https://play.google.com/store/apps/details?id=ru.elron.gamepadtester</a>&nbsp; </div> </div> <div> <br /> </div> <div>Kalau aplikasi yang kalian gunakan mendukung keyboard virtual bisa menggunakan aplikasi ini untuk remapping&nbsp;</div> <div> <a href="https://play.google.com/store/apps/details?id=com.poke64738.usbjoygold">https://play.google.com/store/apps/details?id=com.poke64738.usbjoygold</a>&nbsp; </div> <div>Kalau gamepad terdeteksi sebagai keyboard, kalian bisa mapping ulang dengan membuat aplikasi android yang digunakan untuk menambahkan opsi keyboard layout pada Android dengan menggunakan file .kcm :&nbsp;</div> <div> <a href="https://github.com/ris58h/custom-keyboard-layout">https://github.com/ris58h/custom-keyboard-layout</a>&nbsp; </div><div>selengkapnya :&nbsp;https://forum.xda-developers.com/t/tutorial-external-keyboard-remapping-without-root-4-1.4492481/</div> <div> <br /> </div> <div>Selain itu juga bisa menggunakan aplikasi ini untuk mencoba mode XInput : <a href="https://play.google.com/store/apps/details?id=com.chimera.saturday.dualshock4tester">https://play.google.com/store/apps/details?id=com.chimera.saturday.dualshock4tester</a>&nbsp; </div> <div>Lalu juga bisa menggunakan aplikasi ini untuk mencoba controller : <a href="https://play.google.com/store/apps/details?id=uk.co.powgames.gamecondiag">https://play.google.com/store/apps/details?id=uk.co.powgames.gamecondiag</a> </div> <br /> <h2 style="text-align: left;">Tambahan buat SDL&nbsp;</h2> SDL merupakan salah satu library yang digunakan untuk input controller. Mungkin aja kalian butuh untuk game development. Tambahkan data mapping ke variabel SDL_GAMECONTROLLERCONFIG di environment variable. Untuk remap gamepad ini bisa menggunakan nilai berikut yang digenerate dari tool <a href="https://www.generalarcade.com/gamepadtool/" rel="nofollow" style="background-color: white; color: #1155cc; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; pointer-events: none; white-space-collapse: preserve;" target="_blank">https://www.generalarcade.com/gamepadtool/</a> <pre><code>03000000632500005505000000000000,Twin USB Vibration Gamepad (BM),platform:Windows,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, </code></pre> <br /> atau yg digenerate dari&nbsp; <a href="https://gitlab.com/ryochan7/sdl2-gamepad-mapper" rel="nofollow" style="background-color: white; color: #1155cc; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; pointer-events: none; white-space-collapse: preserve;" target="_blank">https://gitlab.com/ryochan7/sdl2-gamepad-mapper</a> <pre><code>030026fc632500005505000000000000,Twin USB Vibration Gamepad (BM),a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,-leftx:-a0,+leftx:+a0,-lefty:-a1,+lefty:+a1,-rightx:-a2,+rightx:+a2,-righty:-a3,+righty:+a3,lefttrigger:b6,righttrigger:b7,platform:Windows, </code></pre> <br /><br />GUID untuk linux &nbsp;<br /> - digenerate dari aplikasi sdl2-gamepad-mapper <pre><code>03005591632500005505000011010000,ShanWan Twin USB Joystick,platform:Linux </code></pre> <br /> - digenerate dari aplikasi gamepadtool <pre><code>03000000632500005505000011010000,ShanWan Twin USB Joystick,platform:Linux </code></pre> <br />Database mapping gamepad lain bisa ditemukan di sini&nbsp;<a href="https://github.com/gabomdq/SDL_GameControllerDB" rel="nofollow" style="background-color: white; color: #1155cc; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; pointer-events: none; white-space-collapse: preserve;" target="_blank">https://github.com/gabomdq/SDL_GameControllerDB</a> <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/agate.min.css" rel="stylesheet"></link> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script> <script> hljs.initHighlightingOnLoad(); </script>Muhammad Ilhamhttp://www.blogger.com/profile/07052286184522393882[email protected]0tag:blogger.com,1999:blog-3940044836556585707.post-89843711288061822482019-04-26T08:38:00.006+07:002020-09-01T14:16:12.926+07:00Simulasi Software Defined Networking (SDN) Part 3 Install sFlowsFlow adalah salah satu protokol yang dapat digunakan untuk monitoring flow traffic pada perangkat Open vSwitch. sFlow seperti wireshark tapi versi Lite karena tidak semua traffic diambil oleh sFlow. Untuk menggunakan sFlow diperlukan sebuah server yang berfungsi sebagai sFlow collector, kemudian sFlow Agent seperti switch terhubung ke collector tersebut, sflow collector yang digunakan pada artikel ini adalah sFlow-RT. <br /> <h3> Install sFlow-RT (sFlow Collector) pada Ubuntu</h3> sFlow Collector saya install dengan server yang sama dengan Controller ONOS.<br /> <br /> 1. Download sFlow-RT di Ubuntu, link download bisa dillihat di&nbsp;<a href="https://sflow-rt.com/download.php" target="_blank">sini</a>. Download file .deb nya, berikut ini yang saya download versi 2.3-1341.<br /> <pre><code>wget -c http://www.inmon.com/products/sFlow-RT/sflow-rt_2.3-1341.deb </code></pre> <br /> 2. Install sflow-rt<br /> <pre><code>sudo dpkg -i sflow-rt_2.3-1341.deb </code></pre> <br /> 3. Mengaktifkan sflow-rt sebagai service<br /> <pre><code>sudo systemctl enable sflow-rt </code></pre> <br /> 4. Menjalankan sflow-rt<br /> <pre><code>sudo systemctl restart sflow-rt.service </code></pre> <br /> 5. Mencoba mengakses sflow-rt dengan web browser pada alamat<br /> <pre><code class="html">http://localhost:8008/html/index.html </code></pre> <br /> Untuk dokumentasi REST API nya dapat diakses pada alamat<br /> <pre><code class="html">http://localhost:8008/api/ </code></pre> <br /> <h3> Atur sFlow Agent pada OVS</h3> 1. Pengaturan sflow sederhana pada bridge br0 dan alamat IP collector 192.168.10.250 (alamat IP&nbsp; Ubuntu Server yang sudah terinstal dan menjalankan sFlow-RT). Agent interface yang digunakan untuk jaringan model in-band gunakan br0 (agent=br0) dan untuk out-of-band gunakan eth0 (agent=eth0).<br /> <pre><code>ovs-vsctl -- --id=@sflow create sflow agent=br0 target=\"192.168.10.250:6343\" header=128 sampling=64 polling=10 -- set bridge br0 sflow=@sflow </code></pre> <br /> 2. Gunakan perintah berikut ini untuk melihat pengaturan yang sudah dibuat.<br /> <pre><code>ovs-vsctl list sflow </code></pre> <br /> <a href="https://rearm.blogspot.com/2019/02/mensimulasikan-software-defined.html">Part 1 Install Controller ONOS</a><br /> <a href="https://rearm.blogspot.com/2019/04/simulasi-software-defined-networking.html">Part 2 Konfigurasi Open vSwitch</a><br /> <br /> Referensi :<br /> - <a href="http://docs.openvswitch.org/en/latest/howto/sflow/" style="font-family: &quot;Times New Roman&quot;; white-space: normal;" target="_blank">Monitoring VM Trafic Using sFlow</a> <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/agate.min.css" rel="stylesheet"></link> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script> <script>hljs.initHighlightingOnLoad();</script> Muhammad Ilhamhttp://www.blogger.com/profile/07052286184522393882[email protected]0tag:blogger.com,1999:blog-3940044836556585707.post-27974835248403997942019-04-26T08:38:00.005+07:002020-09-01T14:05:42.005+07:00Simulasi Software Defined Networking (SDN) Part 2 Konfigurasi Open vSwitchOpen vSwitch adalah salah satu switch yang mendukung protokol OpenFlow untuk SDN. Switch ini akan menerima Table Flow dari kontroller SDN dan menggunakannya untuk menentukan jalur setiap flow traffic.<br /> <br /> <div style="text-align: justify;"> Pada SDN, koneksi antara switch dan controller dibagi menjadi 2 jenis mode koneksi yaitu in-band dan out-of-band. Mode koneksi in-band berarti controller terletak satu jaringan dengan SDN yang dikontrol. In-band bekerja dengan cara menggunakan hidden flow yang berfungsi untuk komunikasi antara switch dan kontroller, tanpa adanya hidden flow maka perangkat SDN tidak dapat berkomunikasi dengan siapa-siapa bahkan dengan kontrollernya sendiri karena secara default tidak ada flow table untuk mengijinkan komunikasi antara perangkat SDN dengan kontrollernya selain hidden flow. Disebut hidden flow karena memang flow ini tidak terlihat di flow table pada switch maupun controller. Mode koneksi out-of-band berarti controller terletak pada jaringan yang berbeda dengan SDN yang dikontrol dan controller memiliki jalur sendiri untuk komunikasi dengan switch. Mode koneksi out-of-band memiliki kelebihan yaitu komunikasi antara switch dengan controller tidak akan terganggu oleh traffic pada data plane, tetapi juga memiliki kekurangan yaitu memerlukan jalur kabel sendiri untuk setiap switchnya.</div> <div style="text-align: justify;"> <br /></div> <div id="accordion"> <div class="accordion-toggle"> <b> In-Band</b></div> <div class="accordion-content default"> Berikut pengaturan pada mode in-band :<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgSqIgwU9G77Tg-Vb3m3ddKUr1iX4EOqKByVUoR5h-RKOK39SrTLrv0xvJ5gQE5CZJvJBMEibKtwXWLmTk-abrmn5aIZdhQbo3E4C-6jcNctNejyev04f3LdGJXzZqbq2hZIWiXiVnE0A3/s1600/inband.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="356" data-original-width="381" height="299" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgSqIgwU9G77Tg-Vb3m3ddKUr1iX4EOqKByVUoR5h-RKOK39SrTLrv0xvJ5gQE5CZJvJBMEibKtwXWLmTk-abrmn5aIZdhQbo3E4C-6jcNctNejyev04f3LdGJXzZqbq2hZIWiXiVnE0A3/s320/inband.jpg" width="320" /></a></div> Pada gambar di atas controller ONOS (VMnet10) saya hubungkan dengan OVS-1 (eth0).<br /> <h3> 1. Pengaturan alamat IP</h3> Alamat IP dapat diatur melalui edit config pada perangkat di GNS3 atau mengubah file /etc/network/interfaces dengan vi. Atur IP sesuai dengan topologi di atas. Misal pada OVS-1 :<br /> <pre><code>iface br0 inet static address 192.168.10.1 netmask 255.255.255.0 </code></pre> <br /> Kemudian aktifkan interface br0 (interface ini harus dinyalakan setiap kali perangkat dihidupkan)<br /> <pre><code>ifup br0</code></pre> <br /> <h3> 2. Set protokol OpenFlow</h3> Secara default OVS menggunakan protokol OpenFlow 1.0 berikut ini perintah untuk merubah ke versi 1.3.<br /> <pre><code>ovs-vsctl set bridge br0 protocols=OpenFlow13 </code></pre> <br /> <h3> 3. Set Controller SDN</h3> <pre><code>ovs-vsctl set-controller br0 tcp:192.168.10.250:6633 </code></pre> <br /> <h3> 4. Atur mode koneksi (opsional)</h3> Secara default, OVS sudah menggunakan mode koneksi in-band, jadi bagian ini tidak perlu diatur. Tetapi jika ingin tahu, berikut ini merupakan perintah untuk mengaturnya. <br /> <pre><code>ovs-vsctl set controller br0 connection-mode=in-band ovs-vsctl set bridge br0 other-config:disable-in-band=false </code></pre> <br /> <h3> 5. Cek pengaturan</h3> Untuk melihat pengaturan yang sudah dibuat, gunakan perintah berikut ini.<br /> <pre><code>ovs-vsctl list bridge br0 ovs-vsctl list controller br0 </code></pre> <br /> </div> <div class="accordion-toggle"> <b> Out-of-Band</b></div> <div class="accordion-content"> Berikut pengaturan pada mode out-of-band :<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP-lw6SGoSiZo3ku3eYnkJLaDgk156OpVO3wBgHQQlohONjg02hnxbTZo8JXw3BTSw-25HaqUXDRvAVH5pSxPvOkmggTIGyzo7MWOgRNbXLm7RsQ4xCfAr3seLxMqcyEa6ulV0I237XxSY/s1600/oob.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="373" data-original-width="348" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP-lw6SGoSiZo3ku3eYnkJLaDgk156OpVO3wBgHQQlohONjg02hnxbTZo8JXw3BTSw-25HaqUXDRvAVH5pSxPvOkmggTIGyzo7MWOgRNbXLm7RsQ4xCfAr3seLxMqcyEa6ulV0I237XxSY/s320/oob.jpg" width="298" /></a></div> Pada gambar di atas masing-masing interface eth0 pada OVS terhubung ke ethernet switch kemudian terhubung ke controller ONOS&nbsp; (VMnet10). OVS yang saya gunakan di GNS3 merupakan OVS biasa, bisa juga diganti dengan versi OVS with Management Interface, karena management interface nantinya bisa digunakan untuk menghubungkan ke Controller.<br /> <br /> <h3> 1. Menghapus port eth0 dari bridge</h3> Pada OVS biasa, secara default semua port masuk ke dalam bridge. Berikut ini perintah untuk menghapus port eth0 dari bridge untuk digunakan sebagai management interface. Sedangkan untuk OVS with management interface lewati langkah ini karena port eth0 sudah tidak masuk ke dalam bridge.<br /> <pre><code>ovs-vsctl del-port br0 eth0 </code></pre> <br /> <h3> 2. Pengaturan alamat IP</h3> Alamat IP dapat diatur melalui edit config pada perangkat di GNS3 atau mengubah file /etc/network/interfaces dengan vi. Atur IP sesuai dengan topologi di atas. Misal pada OVS-1 :<br /> <pre><code>auto eth0 iface eth0 inet static address 192.168.10.1 netmask 255.255.255.0 </code></pre> <br /> Kemudian aktifkan interface eth0 jika belum ada IP address nya (cek ifconfig). Atau bisa juga reboot perangkat karena interface ini aktif secara otomatis setiap booting, berbeda dengan interface bridge yang harus diaktifkan secara manual.<br /> <pre><code>ifup eth0</code></pre> <br /> <h3> 3. Set protokol OpenFlow</h3> Secara default OVS menggunakan protokol OpenFlow 1.0 berikut ini perintah untuk merubah ke versi 1.3.<br /> <pre><code>ovs-vsctl set bridge br0 protocols=OpenFlow13 </code></pre> <br /> <h3> 4. Set Controller SDN</h3> <pre><code>ovs-vsctl set-controller br0 tcp:192.168.10.250:6633 </code></pre> <br /> <h3> 5. Atur mode koneksi</h3> Ubah mode koneksi ke out-of-band.<br /> <pre><code>ovs-vsctl set controller br0 connection-mode=out-of-band ovs-vsctl set bridge br0 other-config:disable-in-band=true </code></pre> <br /> <h3> 6. Cek pengaturan</h3> Untuk melihat pengaturan yang sudah dibuat, gunakan perintah berikut ini.<br /> <pre><code>ovs-vsctl list bridge br0 ovs-vsctl list controller br0 </code></pre> <br /> </div> </div> <br /> <br /> <a href="https://rearm.blogspot.com/2019/02/mensimulasikan-software-defined.html">Part 1 Install Controller ONOS</a><br /> <a href="https://rearm.blogspot.com/2019/04/simulasi-software-defined-networking_26.html">Part 3 Install sFlow</a><br /> <br /> Referensi :<br /> -&nbsp;<a href="https://adhioutlined.github.io/virtual/Openvswitch-Cheat-Sheet/" target="_blank">Openvswitch Cheat Sheet</a><br /> -&nbsp;<a href="http://docs.openvswitch.org/en/latest/faq/openflow/" target="_blank">Using OpenFlow</a><br /> <br /> <style> .accordion-toggle {cursor: pointer;background-color:lightgray;padding:8px;margin-top:2px} .accordion-content {display: none;background-color:whitesmoke;padding:10px} .accordion-content.default {display: block;} </style> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script type="text/javascript"> $(document).ready(function($) { $('#accordion').find('.accordion-toggle').click(function(){ $(this).next().slideToggle('fast'); $(".accordion-content").not($(this).next()).slideUp('fast'); }); }); </script> <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/agate.min.css" rel="stylesheet"></link> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script> <script>hljs.initHighlightingOnLoad();</script>Muhammad Ilhamhttp://www.blogger.com/profile/07052286184522393882[email protected]0tag:blogger.com,1999:blog-3940044836556585707.post-84542615122297064452019-02-26T17:52:00.005+07:002020-09-02T14:59:07.324+07:00Simulasi Software Defined Networking (SDN) Part 1 Install Controller ONOSPada artikel ini saya bagikan cara mensimulasikan SDN menggunakan kontroller ONOS dan GNS3. Seharusnya jika kalian baca artikel ini berarti kalian sudah tahu apa itu SDN. SDN merupakan arsitektur jaringan baru yang digunakan untuk memindahkan fungsi Routing, Switching, dan ACL dari setiap perangkat ke server controller pusat sehingga semua perangkat dapat diatur secara terpusat, salah satu protokol SDN yang banyak digunakan saat ini adalah OpenFlow (SDN hanya mengatur flow traffic, untuk mengatur perangkat tetap diperlukan protokol SSH atau SNMP). <br /> Berikut beberapa hal yang dibutuhkan :<br /> - Internet dengan kuota melimpah dan cukup cepat<br /> - RAM minimal 8 GB<br /> - Sudah memasang GNS3 dan VMWare<br /> - Sudah memasang GNS3 VM dan Ubuntu 16.04 Server di VMware<br /> <br /> Spesifikasi sistem saya sebagai perbandingan jika ingin tahu :<br /> - Processor Core i5 7200U<br /> - RAM 8 GB<br /> - HDD 5400 RPM<br /> - Windows 10 64-bit Build 17134<br /> - Virtualization Enabled<br /> - VMware Workstation 15.0.2<br /> - GNS3 2.1.15<br /> <br /> Atur VM Ubuntu dengan menggunakan minimal 2 Network Adapter.&nbsp;Network Adapter yang pertama terhubung dengan Custom VMNet yang nantinya akan digunakan untuk terhubung ke GNS3. Kemudian Network Adapter yang kedua terhubung ke host-only dan jaringan internet melalui NAT. Custom VMnet bisa dibuat melalui menu di GNS3 (Edit -&gt; Preferences -&gt; VMware -&gt; Advanced local settings). GNS3 akan mulai digunakan di artikel selanjutnya.<br /> Menambahkan Custom VMnet :<br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisngvOCbo29IE1DqeskzDWZPqH5rCxhbPLyExc0XiMmTBs2x_r2UyIPJkan7z6AOrl3mTrgmJ23VUteEsKX_E83I3X1MZksp-mppxQKpapDvXF8btY3EJ3O83gYnlX_XqgScGjjuUUHxY8/s1600/vm+pref.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="442" data-original-width="574" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisngvOCbo29IE1DqeskzDWZPqH5rCxhbPLyExc0XiMmTBs2x_r2UyIPJkan7z6AOrl3mTrgmJ23VUteEsKX_E83I3X1MZksp-mppxQKpapDvXF8btY3EJ3O83gYnlX_XqgScGjjuUUHxY8/s320/vm+pref.jpg" width="320" /></a></div> <br /> <br /> Network Adapter pada VM :<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7chdiAgK-j3dS5LMYAydP8qdJdbAHLH7XMoLuhTpGveimdM8_vuRO-3HEY5HS0MtvKPIQFDmocg_ADXeV7Mw-eUkqLJaoOxiglb8yrP8OMt8kFAaQhA_7VxJG2_S36O6yWg1uqJ6eLpB1/s1600/netadapt.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="52" data-original-width="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7chdiAgK-j3dS5LMYAydP8qdJdbAHLH7XMoLuhTpGveimdM8_vuRO-3HEY5HS0MtvKPIQFDmocg_ADXeV7Mw-eUkqLJaoOxiglb8yrP8OMt8kFAaQhA_7VxJG2_S36O6yWg1uqJ6eLpB1/s1600/netadapt.jpg" /></a></div> <div class="separator" style="clear: both; text-align: center;"> </div> <div class="separator" style="clear: both; text-align: center;"> </div> <div class="separator" style="clear: both; text-align: center;"> <br /></div> <div class="separator" style="clear: both; text-align: left;"> Pengaturan VM appliance pada GNS3 :</div> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidozrA3dkh_FvlZ1asgnf4xdhjDTRn9NdsCZEA_W0Kp68daIaxIRFa3cShgP9MrHO85YW9wvn_I0fhdrpXr48QWTj2EHm_myyPC5EBRUAL_czT1vx23kx4Hy3OVtK4Ksnff9723eeTc33j/s1600/onos+template.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="443" data-original-width="652" height="217" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidozrA3dkh_FvlZ1asgnf4xdhjDTRn9NdsCZEA_W0Kp68daIaxIRFa3cShgP9MrHO85YW9wvn_I0fhdrpXr48QWTj2EHm_myyPC5EBRUAL_czT1vx23kx4Hy3OVtK4Ksnff9723eeTc33j/s320/onos+template.jpg" width="320" /></a></div> <div class="separator" style="clear: both; text-align: left;"> Atur jumlah adapter sesuai yang diatur pada VM, kemudian hilangkan tanda centang pada checkbox paling bawah.</div> <br /> Untuk pengaturan alamat IP pada VM silahkan atur sendiri.<br /> <br /> Berikut ini langkah-langkah menginstall ONOS : <br /> <h3> 1. Pasang kebutuhan ONOS pada Ubuntu <a href="https://wiki.onosproject.org/display/ONOS/Requirements" target="_blank">[1]</a></h3> a. Tambahkan user sdn (opsional)<br /> <pre><code>sudo adduser sdn --system --group</code></pre> <br /> b. Install Java &amp; Curl<br /> <pre><code>sudo apt-get install openjdk-8-jdk curl -y </code></pre> <br /> <h3> 2. Pasang ONOS pada Ubuntu <a href="https://wiki.onosproject.org/display/ONOS/Installing+on+a+single+machine" target="_blank">[2]</a></h3> a. Pindah working directory ke /opt<br /> <pre><code>cd /opt </code></pre> <br /> b. Download ONOS dengan wget, url download didapat dari <a href="https://wiki.onosproject.org/display/ONOS/Downloads" target="_blank">sini</a>. Sewaktu artikel ini ditulis, versi terakhir onos adalah 2.0.0.<br /> <pre><code>sudo wget -c http://repo1.maven.org/maven2/org/onosproject/onos-releases/2.0.0/onos-2.0.0.tar.gz </code></pre> <br /> c. Ekstrak file yang sudah didownload<br /> <pre><code>sudo tar xzvf onos-2.0.0.tar.gz </code></pre> <br /> d. Ubah nama folder hasil ekstrak menjadi onos<br /> <pre><code>sudo mv onos-2.0.0 onos </code></pre> <br /> <h3> 3. Pasang ONOS sebagai service <a href="https://wiki.onosproject.org/display/ONOS/Running+ONOS+as+a+service" target="_blank">[3]</a></h3> Karena ONOS bukan file .deb yang bisa diinstall dan dihapus dengan mudah, maka jika ingin menjadikannya sebagai service harus dipasang secara manual.<br /> a. Copy kan file init onos ke ubuntu<br /> <pre><code>sudo cp /opt/onos/init/onos.initd /etc/init.d/onos </code></pre> <br /> b. Copy kan file service onos ke systemd di Ubuntu<br /> <pre><code>sudo cp /opt/onos/init/onos.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable onos </code></pre> <br /> c. Tambahkan file konfigurasi onos bernama options di direktori onos (opsional)<br /> <pre><code>nano /opt/onos/options </code></pre> <br /> berisi :<br /> <pre><code>ONOS_USER=sdn # Optional: add any apps here that you wish to activate by default ONOS_APPS= </code></pre> <br /> d. Jalankan ulang ONOS<br /> <pre><code>sudo systemctl restart onos.service </code></pre> <br /> e. Mencoba mengakses shell ONOS<br /> Akses shell ONOS dengan cara mengaksesnya melalui ssh sebagai berikut dengan password "rocks" <a href="https://groups.google.com/a/onosproject.org/forum/#!topic/onos-discuss/MgJQ3jpvZHA" target="_blank">[4]</a> :<br /> <pre><code>ssh -p 8101 onos@localhost </code></pre> <br /> f. Mencoba mengakses web ONOS<br /> Akses web onos pada alamat http://&lt;alamat-ip&gt;:8181/onos/ui/ dengan user "onos" dan password "rocks"<br /> <pre><code class="html">http://localhost:8181/onos/ui/ </code></pre> <br /> Untuk dokumentasi REST API dapa diakses pada alamat<br /> <pre><code class="html">http://localhost:8181/onos/v1/docs/ </code></pre> <br /> <h3> 4. Mengaktifkan aplikasi OpenFlow pada ONOS <a href="https://groups.google.com/a/onosproject.org/forum/#!topic/onos-discuss/VIJZkOZLQnA" target="_blank">[5]</a>&nbsp;<a href="https://wiki.onosproject.org/display/ONOS15/Basic+ONOS+Tutorial">[6]</a></h3> Masuk ke web onos lalu pilih menu Applications kemudian aktifkan aplikasi OpenFlow Provider Suite (org.onosproject.openflow) dengan memilihnya lalu menekan tombol play di atas kanan. Aktifkan juga aplikasi Reactive Forwarding (org.onosproject.fwd) untuk membuat perangkat SDN menjadi L2 Learning Switch. <br /> <br /><br /> Catatan : <br /> - Terakhir kali saya menggunakan ONOS versi 2.1.0 masih terdapat bug jika alamat IP pada linux berubah sejak ONOS pertama kali dijalankan maka ONOS akan error crash, solusinya yaitu install ulang ONOS (matikan ONOS, lalu hapus folder ONOS, kemudian ekstrak kembali aplikasi ONOS, dan konfigurasi ONOS lewat Web dari awal). <br /><br /> <a href="https://rearm.blogspot.com/2019/04/simulasi-software-defined-networking.html">Part 2 Konfigurasi Open vSwitch</a><br /> <a href="https://rearm.blogspot.com/2019/04/simulasi-software-defined-networking_26.html">Part 3 Install sFlow</a><br /> <br /> Referensi :<br /> [1]&nbsp;<a href="https://wiki.onosproject.org/display/ONOS/Requirements" target="_blank">Requirements - ONOS - Wiki</a><br /> [2]&nbsp;<a href="https://wiki.onosproject.org/display/ONOS/Installing+on+a+single+machine" target="_blank">Installing on a single machine - ONOS - Wiki</a><br /> [3]&nbsp;<a href="https://wiki.onosproject.org/display/ONOS/Running+ONOS+as+a+service" target="_blank">Running ONOS as a service - ONOS - Wiki</a><br /> [4]&nbsp;<a href="https://groups.google.com/a/onosproject.org/forum/#!topic/onos-discuss/MgJQ3jpvZHA" target="_blank">Not able to access ONOS CONSOLE-Keep requesting for a password</a><br /> [5]&nbsp;<a href="https://groups.google.com/a/onosproject.org/forum/#!topic/onos-discuss/VIJZkOZLQnA" target="_blank">ONOS v1.9.2 doesn't listening on ports 6653 or 6633?</a><br /> [6]&nbsp;<a href="https://wiki.onosproject.org/display/ONOS15/Basic+ONOS+Tutorial" target="_blank">Basic ONOS Tutorial - ONOS 1.5 - Wiki</a><br /> <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/agate.min.css" rel="stylesheet"></link> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script> <script>hljs.initHighlightingOnLoad();</script> Muhammad Ilhamhttp://www.blogger.com/profile/07052286184522393882[email protected]0tag:blogger.com,1999:blog-3940044836556585707.post-75575000083988372532018-01-13T11:22:00.005+07:002020-08-23T17:46:48.027+07:00Cara Membuat Wi-Fi Hotspot pada Linux Menggunakan Virtual Interfaces dan Hostapd<div style="text-align: justify;"> Membuat hotspot pada Linux normalnya bisa melalui aplikasi network manager pada Linux desktop tetapi memiliki kekurangan yaitu hanya bisa membagikan jaringan internet dari interface atau sumber perangkat selain perangkat wifi yang digunakan untuk dijadikan wifi hotspot. Jadi tidak bisa membagikan internet yang didapat dari wifi menjadi wifi hotspot dengan satu perangkat. Pada sistem operasi sebelum Windows 10 pembuatan hotspot bisa menggunakan aplikasi connectify ataupun menggunakan perintah netsh pada command prompt, lalu pada Windows 10 terbaru sudah menyediakan fitur hotspot pada sistem operasinya. Dalam artikel ini saya akan membagikan cara membuat hotspot pada Linux hanya menggunakan satu perangkat wifi menggunakan virtual interfaces dan hostapd.<br /> <br /> Cara ini dapat digunakan untuk Linux Debian, Ubuntu, dan turunannya. Cara ini telah saya coba pada Linux Ubuntu 18.04. Untuk Linux distribusi RedHat, SlackWare, Fedora, OpenSuse, ArchLinux, dll bisa menyesuaikan perintahnya karena konsepnya sama.<br /> <br /> Pertama, package yang harus diinstall yang bukan bawaan dari ubuntu yaitu : hostapd, udhcpd, dan wpa_supplicant. (kalau tidak salah hanya itu packagenya, saya lupa)<br /> <pre><code>sudo apt install hostapd udhcpd wpa_supplicant </code></pre> <br /> Cara ini tidak permanen, hanya akan berjalan selama PC masih hidup, jika PC mati/restart maka setting akan kembali seperti semula (selain file konfigurasinya). Berikut langkah-langkahnya (klik tulisan disetiap langkah-langkahnya untuk melihat detailnya) :<br /> <div id="accordion"> <div class="accordion-toggle"> 1. Mematikan service dan interface yang bersangkutan.</div> <div class="accordion-content default"> Sebelumnya hafalkan nama SSID yang ingin dihubungkan (atau bisa lihat smartphone), saya belum tahu cara buat ngelist SSID lewat terminal.<br /> a. Matikan aplikasi network-manager<br /> <pre><code>sudo service network-manager stop </code></pre> <br /> b. Matikan aplikasi wpa_supplicant<br /> <pre><code>sudo service wpa_supplicant stop </code></pre> <br /> c. Matikan interface wifi bawaan terlebih dahulu (lihat nama interfacenya dengan perintah "iw dev"). Misal nama interfacenya wlp3s0 :<br /> <pre><code>sudo ifconfig wlp3s0 down</code></pre> </div> <div class="accordion-toggle"> 2. Mensetting virtual wifi interface.</div> <div class="accordion-content"> a. Buat virtual wifi interface untuk station. Contoh membuat interface dengan nama station1 :<br /> <pre><code>sudo iw phy phy0 interface add station1 type station </code></pre> <br /> b. Buat virtual wifi interface untuk access point. Contoh membuat interface dengan nama ap1 (tulisan pada type adalah underscore 2 kali ap) :<br /> <pre><code>sudo iw phy phy0 interface add ap1 type __ap </code></pre> <br /> c. Ganti MAC Address dari kedua virtual interface yang telah dibuat. Lebih baik ganti MAC Address dengan MAC Address perangkat wifi aslinya (bisa dilihat menggunakan perintah "iw dev") dengan digit terakhirnya diganti. Misal MAC Address perangkat wifinya adalah 92:45:78:FA:B2:89 maka bisa diganti dengan :<br /> MAC Address station1 = 92:45:78:FA:B2:8A<br /> MAC Address ap1 = 92:45:78:FA:B2:85<br /> perintah untuk mengubah MAC Address station1 dan ap1 :<br /> <pre><code>sudo ifconfig station1 hw ether 92:45:78:FA:B2:8A sudo ifconfig ap1 hw ether 92:45:78:FA:B2:85</code></pre> </div> <div class="accordion-toggle"> 3. Mensetting perangkat wifi sebagai station.</div> <div class="accordion-content"> a. Buat file /etc/wpa_supplicant.conf<br /> - Setting untuk terhubung ke Wifi dengan security WPA-PSK :<br /> Sebelumnya generate psk gunakan perintah :<br /> <pre><code>wpa_passphrase namaSSID passwordWifi </code></pre> Lalu buat konfigurasi sebagai berikut sesuaikan ssid dan psk yang didapat dari perintah sebelumnya :<br /> <pre><code>ctrl_interface=/var/run/wpa_supplicant network={ ssid="namaSSID" psk=b77777d299e9c892dd77ede27494c96327e4c709ba2ec4dd361a6e550a142448 scan_ssid=1 proto=WPA RSN key_mgmt=WPA-PSK pairwise=CCMP TKIP group=CCMP TKIP } </code></pre> <br /> - Setting untuk terhubung ke wifi tanpa security (open) :<br /> <pre><code>network={ ssid="namaSSID" key_mgmt=NONE priority=100 } </code></pre> <br /> b. Hubungkan station :<br /> <pre><code>sudo wpa_supplicant -i station1 -c /etc/wpa_supplicant.conf </code></pre> Biarkan terminal tetap terbuka, jika ditutup maka sama saja dengan disconnect dari jaringan tersebut.<br /> <br /> c. Set IP station dengan DHCP :<br /> <pre><code>sudo udhcpc -i station1</code></pre> </div> <div class="accordion-toggle"> 4. Mensetting perangkat wifi sebagai access point (hotspot).</div> <div class="accordion-content"> a. Buat file /etc/hostapd.conf berisi :<br /> <pre><code>interface=ap1 driver=nl80211 ssid=NamaSSID channel=7 hw_mode=g macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=3 wpa_passphrase=12345678 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP </code></pre> Setting ini akan membuat hotspot dengan nama "NamaSSID" dan password 12345678<br /> <br /> b. Jalankan Access Point :<br /> <pre><code>sudo hostapd /etc/hostapd.conf</code></pre> Biarkan terminal tetap terbuka, karena jika ditutup maka hotspot akan berhenti. </div> <div class="accordion-toggle"> 5. Mensetting DHCP Server</div> <div class="accordion-content"> Langkah ini opsional, karena digunakan untuk mempermudah saat terhubung dengan mendapatkan IP secara otomatis, jika langkah ini dilewati maka setiap kali ingin terhubung dengan hotspot maka harus mensetting IP secara manual terlebih dahulu.<br /> a. Set IP ap1 dengan IP statik :<br /> <pre><code>sudo ifconfig ap1 10.123.234.1 up </code></pre> <br /> b. Ubah beberapa baris pada file /etc/udhcpd.conf untuk setting DHCP Server untuk hotspot, pastikan network berbeda dengan network milik station :<br /> <pre><code>start 10.123.234.2 end 10.123.234.254 interface ap1 opt dns 10.123.234.1 option subnet 255.255.255.0 opt router 10.123.234.1 </code></pre> <br /> c. Aktifkan DHCP Server dengan cara ubah file /etc/default/udhcpd, ubah baris DHCPD_ENABLED menjadi :<br /> <pre><code>#DHCPD_ENABLED="no" </code></pre> <br /> d. Restart DHCP Server :<br /> <pre><code>sudo service udhcpd restart </code></pre> </div> <div class="accordion-toggle"> 6. Mensetting routing firewall NAT.</div> <div class="accordion-content"> a. Aktifkan IP Forwarding<br /> <pre><code>sudo sysctl -w net.ipv4.ip_forward=1 </code></pre> <br /> b. Setting NAT :<br /> <pre><code>sudo iptables --table nat --append POSTROUTING --out-interface station1 -j MASQUERADE sudo iptables --append FORWARD --in-interface ap1 -j ACCEPT </code></pre> </div> <br /> Langkah 1 dan 2 harus dikerjakan terlebih dahulu secara urut kemudian langkah 3-6 bisa dikerjakan secara acak (tidak harus urut).<br /> Ringkasan, file yang dikonfigurasi yaitu :<br /> - Konfigurasi Station : /etc/wpa_supplicant.conf<br /> - Konfigurasi Access Point : /etc/hostapd.conf<br /> - Konfigurasi DHCP Server : /etc/udhcpd.conf<br /> <br /> Langkah opsional tambahan bisa klik tulisan di bawah ini :<br /> <div class="accordion-toggle"> Membuat script untuk menjalankan hotspot</div> <div class="accordion-content default"> Setelah ini, jika sudah sukses bisa dibuat scriptnya agar lebih mudah setiap kali ingin terhubung, tinggal ganti konfigurasi station lalu jalankan script ini. Buat file dengan nama hotspot.sh berisi :<br /> <pre><code>#!/bin/bash sudo service network-manager stop sudo service wpa_supplicant stop sudo ifconfig wlp3s0 down sudo iw phy phy0 interface add station1 type station sudo iw phy phy0 interface add ap1 type __ap sudo ifconfig station1 hw ether 92:45:78:FA:B2:8A sudo ifconfig ap1 hw ether 92:45:78:FA:B2:85 sudo wpa_supplicant -Bi station1 -c /etc/wpa_supplicant.conf sudo udhcpc -i station1 sudo ifconfig ap1 10.123.234.1 up sudo service udhcpd restart sudo hostapd -B /etc/hostapd.conf sudo sysctl -w net.ipv4.ip_forward=1 sudo iptables --table nat --append POSTROUTING --out-interface station1 -j MASQUERADE sudo iptables --append FORWARD --in-interface ap1 -j ACCEPT </code></pre> Pada script di atas hostapd dan wpa_supplicant dijalankan dengan opsi "-B" agar berjalan sebagai background process sehingga wpa_supplicant dan hostapd tidak memblok eksekusi script dan juga agar terminal bisa ditutup tidak perlu dibuka terus menerus. Pada langkah sebelumnya tidak menggunakan opsi "-B" karena jika ada error maka tidak akan tahu. <br /> Kalau pengen lebih aman, script di atas lebih baik pada baris setting station (wpa_supplicant dan udhcpc) dihapus dan dijalankan secara manual karena jika sering gonta-ganti koneksi wifi maka mungkin kalian bisa salah konfigurasi wpa_supplicant yang kemudian menghentikan script untuk berjalan.<br /> <br /> Lalu beri hak akses eksekusi untuk file yang telah dibuat dengan perintah :<br /> <pre><code>chmod +x hotspot.sh </code></pre> <br /> Jalankan script dengan perintah :<br /> <pre><code>./hotspot.sh </code></pre> </div> <div class="accordion-toggle"> Membuat script untuk menghentikan hotspot</div> <div class="accordion-content"> Untuk menghentikan hotspot bisa menggunakan script di bawah ini. Script ini akan menghentikan hotspot dan mengembalikan semua setting ke posisi semula. Beri saja nama stop-hotspot.sh :<br /> <pre><code>#!/bin/bash sudo iptables --delete FORWARD --in-interface ap1 -j ACCEPT sudo iptables --table nat --delete POSTROUTING --out-interface station1 -j MASQUERADE sudo sysctl -w net.ipv4.ip_forward=0 sudo killall hostapd sudo service udhcpd stop sudo killall wpa_supplicant sudo iw dev ap1 del sudo iw dev station1 del sudo service wpa_supplicant start sudo service network-manager start </code></pre> Script di atas menggunakan perintah killall untuk menghentikan background process berdasarkan nama.<br /> <br /> Lalu beri hak akses eksekusi untuk file yang telah dibuat dengan perintah :<br /> <pre><code>chmod +x stop-hotspot.sh </code></pre> <br /> Jalankan script dengan perintah :<br /> <pre><code>./stop-hotspot.sh </code></pre> </div> </div> <br /> <br /> Tested : Ubuntu 16, 18, 20. <br /> <br /> Masalah : <br />- Proses shutdown jadi lama setelah dibuat hotspot dalam kondisi hotspot hidup ataupun sudah dimatikan, tidak diketahui penyebabnya. <br /> <br /> TODO : <br /> - Test berbagai konfigurasi wpa_supplicant, mungkin buat post terpisah<br /> - Tambah langkah buat nge list SSID lewat terminal<br /> - Bikin aplikasi GUI sederhana<br /> <br /> <br /> Referensi :<br /> <a href="https://linuxalfi.wordpress.com/2011/11/08/connectify-for-linux-with-single-wireless-interface/" target="_blank">https://linuxalfi.wordpress.com/2011/11/08/connectify-for-linux-with-single-wireless-interface/</a></div> <style> .accordion-toggle {cursor: pointer;background-color:lightgray;padding:8px;margin-top:2px} .accordion-content {display: none;background-color:whitesmoke;padding:10px} .accordion-content.default {display: block;} </style> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script type="text/javascript"> $(document).ready(function($) { $('#accordion').find('.accordion-toggle').click(function(){ $(this).next().slideToggle('fast'); $(".accordion-content").not($(this).next()).slideUp('fast'); }); }); </script> <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/agate.min.css" rel="stylesheet"></link> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script> <script>hljs.initHighlightingOnLoad();</script> Muhammad Ilhamhttp://www.blogger.com/profile/07052286184522393882[email protected]0