Proof of concept openwrt dalam linksys WRT54GL menjadi the real router
Ini adalah pengalaman saya yang sangat awam tentang dunia networking. Sejak ditinggal oleh konsultan jaringan yang sangat saya andalkan, terpaksa semua permasalahan dunia jaringan di sekeliling saya harus bisa saya selesaikan sendiri. Alhamdulillah, Allah SWT telah memudahkan semua urusanku, walaupun bagi orang-orang ahli tentulah sesuatu yang sangat kecil. Tulisan ini seperti biasa bukanlah sesuatu yang ilmiah, inti dari tujuannya adalah kita bisa memanfaatkan sebagaimana yang kita harapkan, yaitu menjadikan linksys WRT54GL menjadi the real router yang menangani beberapa klien dalam range network yang berbeda, sehingga bisa menghubungkan satu sama lain dengan rule yang kita tentukan sendiri. Kalau disuruh menjelaskan secara definitif dan terstruktur, mohon ma'af saya tidak bisa menjawabnya, silahkan bertanya pada yang ahli yang pernah mengenyam pendidikan TI secara formal.
Saya ambil contoh dari situasi network lingkungan kerja di kantor saya, mungkin bisa berbeda dengan kondisi di tempat lain dari masing-masing pembaca, namun setidaknya bisa memberikan gambaran sehingga pembaca bisa berimprovisasi menyesuaikan dengan keadaannya sendiri. Juga sebagai pembuka wawasan bagi yang baru mulai mengenal dunia jaringan (seperti saya) dan dihadapkan pada keterbatasan sarana (misalnya belum mampu membeli router berharga jutaan rupiah, namun mampu membeli alat kecil yang murah dan mempunyai kemampuan mirip atau setara dengan router beneran). Lantas mengapa Linksys WRT54GL ? Alasan paling kuat di mata saya adalah karena “linux” bisa dibenamkan sebagai firmware-nya menggantikan firmware defaultnya. Kemudian mengapa harus openwrt ? Karena openwrt punya semboyan “wireless freedom” ! Mereka (pengembangnya) memberi kita akses seluas-luasnya (seperti linux dan opensource) untuk mengeksplorasinya semampu kita tanpa perlu terbatasi dengan lisensi dan harus membeli.
Saya mempunyai 2 jaringan eksternal (astinet dan VPN) yang harus dihubungkan dengan kliennya yang terbagi dalam 3 segmen jaringan. Bisa dilihat dari gambar di bawah ini :

tentunya alamat ip di atas bukanlah yang sesungguhnya, hanya sebagai contoh untuk menggambarkan bagaimana router yang kita buat bisa berjalan. Perhatian kita fokuskan pada “main router” di atas, bukan linksys yang menjadi kliennya.
Kita pahami bersama bahwa linksys type WRT54GL mempunyai 1 interface wireless di eth1 yang diperkuat oleh 2 antena, dan 1 interface NIC (eth0) yang dipecah menjadi 5 port dengan vlan. Di sini kita tidak akan membahas tentang fungsi wirelessnya, namun bagaimana kita mengelola interface eth0 itu supaya bisa dibagi menjadi lima port yang berbeda dan terpisah, sehingga bisa melayani kliennya secara independen.
Karena kita hendak membahas openwrt di dalam Linksys WRT54GL, maka terlebih dulu ganti firmware defaultnya dengan openwrt, caranya ? Bisa dibaca di sini http://makassar-slackers.org/node/60.
Secara default (atau setelah reset) interface eth0 akan terbagi menjadi 5 port, yaitu vlan0 yang terbagi dalam port 0 – 3, dan vlan1 yang dimap pada port WAN. Interface vlan0 di-bridge dalam br0 bersama eth1 (wireless) dengan alamat ip 192.168.1.1, di mana pasing-masing port bisa berhubungan satu sama lain selayaknya switch biasa, kecuali port WAN (vlan1).
Letak port-port tersebut seperti dalam gambar berikut ini
Nah pekerjaan kita adalah memisahkan port-port tersebut menggunakan vlan. Inilah yang saya lakukan dalam langkah-langkah berikut ini:
1. Set alamat ip pada port WAN (vlan1) dengan alamat ip sesuai dengan range dari internet (ISP), yaitu 118.97.33.3, netmask 255.255.255.248, set gateway ke router ISP 118.97.33.1 dan DNS ke alamat DNS server yang dipilih. Set ip LAN sesuai dengan klien hotspot 10.10.100.1 netmask 255.255.255.0 dan gateway serta isian DNS dikosongkan.
2. Pisahkan interface wireless (eth1) dengan interface vlan0 dari bridge br0, gunakan antarmuka web (xwrt) untuk memudahkan pekerjaan yang satu ini, maka akan terbentuk bridge baru bernama br1. Proses ini bukanlah kebutuhan pokok, karena dengan menyatukan eth1 dengan vlan0 tidak mempengaruhi fungsi router, saya lakukan itu hanya untuk alasan security dan kemudahan akses saja.
3. Buat konfigurasi vlan baru dengan menambahkan vlan2, vlan3, dan vlan4. Sisipkan port 0 pada vlan2, port 1 pada vlan3, dan port 2 pada vlan4, jangan lupa include-kan opsi internal (yang ini saya juga kurang paham, hanya mengikuti contoh pada vlan0 dan vlan1 default). Sehingga kondisi mapping port tersebut menjadi seperti ini: - vlan0 berisi port 3 dan internal (5*) - vlan1 berisi port wan dan internal - vlan2 berisi port 0 dan internal - vlan3 berisi port 1 dan internal - vlan4 berisi port 2 dan internal Simpan dan apply untuk meng-commit supaya tersimpan terus. Sampai di sini kita hanya memberikan flag saja (istilah saya sendiri, karena jujur belum tahu apa namanya), sehingga secara real interface-interface vlan baru tersebut belum kelihatan.
4. Masuk ke shell openwrt (gunakan ssh), aktifkan ketiga vlan tersebut dengan
vconfig add eth0 2 #untuk vlan2, vconfig add eth0 3 #untuk vlan3 dan vconfig add eth0 4 #untuk vlan4.
Nah sampai di sini kita akan melihat kelima interface tersebut telah aktif dan siap digunakan (gunakan perintah ip a untuk melihatnya)
5. Set alamat ip untuk vlan2 sesuai dengan ip intranet (eksternal) seperti berikut:
ip addr add 172.12.43.50/24 brd + dev vlan2; ifconfig vlan2 up
Tes dengan perintah ping ke gateway intranet, mestinya bisa replay, dan lanjut ke langkah berikutnya
6. Set alamat ip untuk vlan3 sesuai dengan range klien ekspress
ip addr add 10.1.1.1/29 brd + dev vlan3; ifconfig vlan3 up
7. Set alamat ip untuk vlan4 sesuai dengan range klien intern
ip addr add 10.100.10.1/24 brd + dev vlan4; ifconfig vlan4 up
Tes masing-masing interface menggunakan ping ke salah satu node sesuai dengan range ip-nya, bila semuanya berjalan sesuai rencana, lanjutkan langkah berikutnya.
8. Buat routing ke intranet sesuai kebutuhan, contoh salah satu alamat yang dituju di intranet adalah 55.1.14.222, dan gateway intranet adalah 172.12.43.254, maka routingnya adalah sebagai berikut,
ip route add 55.1.14.0/24 via 172.12.43.254
tes dengan ping alamat tersebut
9. Set rule ke internet, secara default semua interface akan diijinkan mengakses internet karena rule MASQUERADE dari iptables. Namun untuk ke intranet harus diberikan rule manual seperti ini
iptables -A FORWARD -o vlan2 -j ACCEPT iptables -t nat -I POSTROUTING -d 55.1.14.0/24 -j SNAT --to 172.12.43.10
Tes dari salah satu klien (bisa menggunakan ping)
10. Terkadang kita ingin agar bisa melayani klien untuk melakukan hubungan dengan network yang berbeda range, misal dari klien ekspress (10.1.1.0/29) ke klien intern (10.100.10.0/24) misalnya untuk sharing printer. Maka kita bisa berikan rule seperti ini
iptables -A FORWARD -o vlan3 -j ACCEPT iptables -t nat -I POSTROUTING -o vlan3 -d 10.100.10.0/24 -j SNAT --to 10.100.10.1
Maka seharusnya klien dari manapun yang menuju ke vlan3 (klien intern, ekspress) diijinkan lewat 10.100.10.1
11. Selesai... maka sampai di sini, seharusnya sudah bisa tergambar bagaimana kita bisa mengatur jaringan selayaknya manageable switch.
Silahkan berimprovisasi sendiri dengan kasus-kasus yang lain. Nah... timbul pertanyaan, itukan bisa berjalan pada running system ? Bagaimana bila tiba-tiba listrik mati, sehingga membuat linksys tersebut melakukan start ulang ? Tentu semua perintah yang kita tuliskan pada contoh di atas, pasti akan hilang, dan layanan tidak bisa kita berikan secara otomatis. Jadi... bagaimana mengantisipasi masalah itu ? Gunakan skrip selayaknya bila kita bermain-main dengan slackware. Letak skrip startup openwrt ada di /etc/init.d, cobalah gunakan perintah ls di direktori tersebut, maka kita akan melihat skrip startup sebagaimana yang kita lihat di keluarga ubuntu, atau fedora.
Saya menambahkan satu file di direktori tersebut dengan nama S99startupsystem, kemudian saya isi seperti ini :
#!/bin/sh vconfig add eth0 2 vconfig add eth0 3 vconfig add eth0 4 ip addr add 172.12.43.50/24 brd + dev vlan2 ip addr add 10.1.1.1/29 brd + dev vlan3 ip addr add 10.100.10.1/24 brd + dev vlan4 ifconfig vlan2 up ifconfig vlan3 up ifconfig vlan4 up ip route add 55.1.14.0/24 via 172.12.43.254 iptables -A FORWARD -o vlan2 -j ACCEPT iptables -t nat -I POSTROUTING -d 55.1.14.0/24 -j SNAT --to 172.12.43.10 iptables -A FORWARD -o vlan3 -j ACCEPT iptables -t nat -I POSTROUTING -o vlan3 -d 10.100.10.0/24 -j SNAT --to 10.100.10.1
Simpan dan jangan lupa berikan mode akses +x atau 755 untuk file dimaksud. So... coba reboot, Insya Allah linksys sudah bisa menggantikan posisi PC router setelah menyala kembali, kalau belum, perhatikan lagi semua konfigurasi yang telah dibahas di atas, mungkin ada yang kurang benar. Trust me ! I've done and sure... it's working for me !
Sebenarnya bila ingin lebih komplek sampai berurusan dengan hotspot, PPPoE, limiter, dsb, banyak saran untuk menggunakan mikrotik routerboard. barang tersebut memang bagus, dengan spek minimal sudah bisa melayani banyak sekali urusan routing dan suplemennya. Tapi sayang seribu sayang... barang itu tidak terbuka (mengambil resource opensource, namun menutup semua jalur untuk berimprovisasi dengan teknologinya, kita akan dibatasi oleh lisensi yang mereka ciptakan). Satu yang sangat saya tidak suka adalah cara berkomunikasi dengan alat tersebut. Dalam hati sedikit kecewa setelah membeli 2 unit barang itu, karena saya tidak menemukan cara mengakses konfigurasinya selain dengan tools bernama “winbox” (saya bold dan underline karena di situ masalahnya) yang seperti kita tahu, mengharuskan (memaksa) penggunanya kembali membutuhkan win$ atau setidaknya lingkungannya (walaupun bisa menggunakan wine atau virtualbox sekalipun), saya benci situasi itu. Atau mungkin saya yang telmi, terlalu blo'on dan kuper (mohon beritahu saya berita bagus tentangnya melalui komen di bawah).
Demikianlah cerita singkat ini, semoga bisa membuka wawasan baru bagi para pemula dunia networking seperti saya. Bebaskan imaginasi kamu, dan berbuatlah lebih dari yang di-defaultkan.
Salam wireless freedom ! ;)
- denic's blog
- Login or register to post comments



Recent comments
11 weeks 6 days ago
12 weeks 3 days ago
33 weeks 3 days ago
34 weeks 5 days ago
1 year 7 weeks ago
1 year 9 weeks ago
1 year 9 weeks ago
1 year 10 weeks ago
1 year 10 weeks ago
1 year 10 weeks ago