Posts Tagged Multi WAN

DLINK DIR-300 A1 OpenWRT Multi WAN Router Versi 2

Update 09-Januari-2013:
Silahkan mereferensi artikel sebelumnya yang sudah terupdate.

Artikel ini merupakan update dari https://tohenk.wordpress.com/2010/10/25/d-link-dir-300-sebagai-router-wireless-multi-wan-dengan-openwrt/, dengan perbedaan:

  1. OpenWRT trunk rev. 27025.
  2. Kernel 2.6.38.7.
  3. Wifi menggunakan ath5k (mac80211), sebelumnya madwifi.

Langkah-langkah yang digunakan masih mengacu pada artikel pertama, hanya untuk file vmlinux dan rootfs dapat diambil di sini:

Jika sebelumnya RedBoot sudah diupdate maka tidak diperlukan update lagi, langsung flash device dengan firmware di atas.

Semua konfigurasi juga mengacu pada artikel sebelumnya, perbedaan hanya pada konfigurasi wireless (/etc/config/wireless):

config 'wifi-device' 'wlan0'
	option 'type' 'mac80211'
	option 'channel' '11'
	option 'macaddr' '00:11:22:33:44:55'
	option 'hwmode' '11g'
	option 'country' 'ID'

	# REMOVE THIS LINE TO ENABLE WIFI:
	option 'disabled' '0'

config 'wifi-iface'
	option 'device' 'wlan0'
	option 'network' 'lan'
	option 'mode' 'ap'
	option 'ssid' 'OpenWRT'
	option 'encryption' 'psk2'
	option 'key' 'secretkey'
	option 'wps_pushbutton' '1'
	option 'wps_pin' '12345678'

Sedangkan konfigurasi LED WIFI pada /etc/sysctl.conf tidak diperlukan lagi, karena driver wifi yang digunakan adalah mac80211 (saat kompilasi firmware ini, LED belum bisa bekerja pada driver ath5k AHB).

Advertisements

, ,

2 Comments

D-LINK DIR-300 Sebagai Router Wireless Multi WAN dengan OpenWrt

OpenWrt sebagai distribusi Linux untuk Sistem Embedded, dengan fleksibilitas dan banyaknya paket-paket aplikasi, dapat diterapkan pada D-LINK DIR-300 REV. A1, sehingga dapat dijadikan sebagai Router Wireless Multi WAN dengan Load Balancing.

Langkah-langkahnya secara garis besar adalah:

  1. Mengganti RedBoot.
  2. Flash OpenWrt.
  3. Konfigurasi OpenWrt untuk Multi WAN Load Balancing.
  4. Mengaktifkan WiFi Protected Setup (WPS).
  5. Konfigurasi LED dan Tombol WPS.

Bahan-bahan yang perlu dipersiapkan adalah:

  1. PC dengan OS Windows.
  2. TFTPD32.
  3. ap61.ram dan ap61.rom.
  4. Utility RedBoot.
  5. Firmware OpenWrt (vmlinux, rootfs).

Firmware OpenWrt di atas adalah OpenWrt trunk revisi 23620 35061 khusus untuk DIR-300 dengan beberapa fitur:

  1. Menggunakan Linux Kernel 2.6.35.7 3.3.8.
  2. LED GPIO dan GPIO Button yang sudah disesuaikan dan berfungsi baik.
  3. Skrip hostapd.sh pada paket wpad sudah dimodifikasi untuk mendukung WPS.
  4. Paket-paket yang terdapat dalam firmware: wpad (full), hostapd-utils, multiwan, ifstat, iperf, iptraf, tcpdump, ntpdate, macchanger.

Persiapan:

  1. Install TFTPD32 dan pastikan file-file ap61.ram, ap61.rom, openwrt-atheros-dir-300-a1-vmlinux-patched.lzma, openwrt-atheros-dir-300-a1-root.squashfs dapat dilayani oleh TFTPD32 Server.
  2. Ekstrak RedBoot.zip ke suatu folder, di dalamnya terdapat file-file Putty.exe, redboot.cmd, dan redboot2.cmd.

Mengganti RedBoot

Catatan:
Penggantian RedBoot ini cukup dilakukan sekali saja, jika ingin flash ulang OpenWrt tidak perlu dilakukan lagi.

RedBoot asli DIR-300 perlu diganti dikarenakan tidak memiliki fungsi-fungsi fis yang lengkap. Secara umum, penggantian RedBoot ini sama dengan flashing DD-WRT pada DIR-300.

  1. Matikan DIR-300, colokkan kabel lan pada port wan dan atur IP komputer pada 192.168.20.80/24.
  2. Jalankan TFTPD32 Server.
  3. Jalankan file redboot2.cmd, lalu nyalakan DIR-300 dan tunggu hingga jendela Putty tampil. Mungkin perlu mencoba beberapa kali untuk mendapatkan prompt RedBoot>.
  4. Pada prompt RedBoot> ketik perintah-perintah berikut:
    load ap61.ram
    go

    Setelah perintah go, jendela Putty akan tidak bereaksi. Hal ini normal, tutup jendela Putty dan lanjutkan langkah berikutnya.

  5. Cabut lalu colokkan kabel lan pada port lan 1-4, atur IP komputer pada 192.168.1.2/24, pastikan juga TFTPD32 Server siap melayani pada alamat IP baru tersebut. Jalankan file redboot.cmd hingga Prompt DD-WRT> ditampilkan.
  6. Ketik perintah-perintah berikut, dan pastikan jangan matikan atau mencabut kabel lan.
    DD-WRT> ip_address -l 192.168.1.1/24 -h 192.168.1.2
    IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
    Default server: 192.168.1.2
    DD-WRT> fis init
    About to initialize [format] FLASH image system - continue (y/n)? y
    *** Initialize FLASH Image System
    ... Erase from 0xbffe0000-0xbfff0000: .
    ... Program from 0x807f0000-0x80800000 at 0xbffe0000: .
    DD-WRT> load -r -b %{FREEMEMLO} ap61.rom
    Using default protocol (TFTP)
    Raw file loaded 0x80080000-0x800a8717, assumed entry at 0x80080000
    DD-WRT> fis create -l 0x30000 -e 0xbfc00000 RedBoot
    An image named 'RedBoot' exists - continue (y/n)? y
    ... Erase from 0xbfc00000-0xbfc30000: ...
    ... Program from 0x80080000-0x800a8718 at 0xbfc00000: ...
    ... Erase from 0xbffe0000-0xbfff0000: .
    ... Program from 0x807f0000-0x80800000 at 0xbffe0000: .
    DD-WRT> reset

Flashing OpenWrt

Setelah RedBoot di-upgrade, firmware OpenWrt siap diflash ke DIR-300.

  1. Matikan DIR-300, colokkan kabel lan pada port lan 1-4 dan atur IP komputer pada 192.168.1.2/24.
  2. Jalankan TFTPD32 Server.
  3. Jalankan file redboot.cmd, lalu nyalakan DIR-300 dan tunggu hingga jendela Putty tampil.
  4. Pada prompt DD-WRT> ketik perintah-perintah berikut:
    == Executing boot script in 0.740 seconds - enter ^C to abort
    ^C
    DD-WRT> ip_address -l 192.168.1.1/24 -h 192.168.1.2
    IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
    Default server: 192.168.1.2
    DD-WRT> load -r -b %{FREEMEMLO} openwrt-atheros-dir-300-a1-vmlinux-patched.lzma
    Using default protocol (TFTP)
    Raw file loaded 0x80040800-0x801107ff, assumed entry at 0x80040800
    DD-WRT> fis init
    About to initialize [format] FLASH image system - continue (y/n)? y
    *** Initialize FLASH Image System
    ... Erase from 0xbffe0000-0xbfff0000: .
    ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
    DD-WRT> fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7
    ... Erase from 0xbfc30000-0xbfd00000: .............
    ... Program from 0x80040800-0x80110800 at 0xbfc30000: .............
    ... Erase from 0xbffe0000-0xbfff0000: .
    ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
    DD-WRT> load -r -b %{FREEMEMLO} openwrt-atheros-dir-300-a1-root.squashfs
    Using default protocol (TFTP)
    Raw file loaded 0x80040800-0x802807ff, assumed entry at 0x80040800
    DD-WRT> fis create -e 0 -r 0x80041000 -l 0x2e0000 rootfs
    ... Erase from 0xbfd00000-0xbffe0000: ..............................................
    ... Program from 0x80040800-0x80280800 at 0xbfd00000: ....................................
    ... Erase from 0xbffe0000-0xbfff0000: .
    ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
    DD-WRT> fconfig -d
    Run script at boot: true ? true
    Boot script:
    Enter script, terminate with empty line
    >> fis load -l vmlinux.bin.l7
    >> exec
    >>
    Boot script timeout (1000ms resolution): 1 ? 1
    Use BOOTP for network configuration: false ? false
    Gateway IP address:  ?
    Local IP address: 192.168.1.1 ?
    Local IP address mask: 255.255.255.0 ?
    Default server IP address:  ?
    Console baud rate: 9600 ?
    GDB connection port: 9000 ?
    Force console for special debug messages: false ?
    Network debug at boot time: false ?
    Update RedBoot non-volatile configuration - continue (y/n)? y
    ... Erase from 0xbffe0000-0xbfff0000: .
    ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
    DD-WRT> reset

Konfigurasi OpenWrt untuk Multi WAN Load Balancing

Pada contoh berikut, LAN berada pada network 192.168.1.0/24, WAN 1 berada ada pada network 192.168.10.0/24, dan WAN 2 berada pada network 192.168.11.0/24.

Konek ke router dengan telnet menggunakan Putty ke ip 192.168.1.1, pada shell berikan perintah passwd untuk mengganti password root. Pemberian password root otomatis akan menonaktifkan telnet dan mengaktifkan SSH. Untuk selanjutnya koneksi ke router dapat menggunakan SSH.

/etc/config/network

Konfigurasi loopback dan LAN:

config 'interface' 'loopback'
        option 'ifname' 'lo'
        option 'proto' 'static'
        option 'ipaddr' '127.0.0.1'
        option 'netmask' '255.0.0.0'

config 'interface' 'lan'
        option 'type' 'bridge'
        option 'proto' 'static'
        option 'ipaddr' '192.168.1.1'
        option 'netmask' '255.255.255.0'
        option 'ifname' 'eth0.1'

Konfigurasi berikut ini membagi swith menjadi 3 vlan, yaitu LAN (eth0.1) port dengan label 2 – 4, WAN 1 (eth0.2) dengan label 1, dan WAN 2 (eth0.3) dengan label wan:

config 'switch' 'eth0'
        option 'name' 'eth0'
        option 'reset' '1'
        option 'enable_vlan' '1'

config 'switch_vlan' 'eth0_1'
        option 'device' 'eth0'
        option 'vlan' '1'
        option 'ports' '0 1 2 5t'

config 'switch_vlan' 'eth0_2'
        option 'device' 'eth0'
        option 'vlan' '2'
        option 'ports' '3 5t'

config 'switch_vlan' 'eth0_3'
        option 'device' 'eth0'
        option 'vlan' '3'
        option 'ports' '4 5t'

Konfigurasi WAN 1 dan WAN 2:

config 'interface' 'wan1'
        option 'ifname' 'eth0.2'
        option 'proto' 'static'
        option 'ipaddr' '192.168.10.100'
        option 'netmask' '255.255.255.0'
        option 'gateway' '192.168.10.1'
        option 'dns' '180.131.144.144 180.131.145.145'

config 'interface' 'wan2'
        option 'ifname' 'eth0.3'
        option 'proto' 'static'
        option 'ipaddr' '192.168.11.100'
        option 'netmask' '255.255.255.0'
        option 'gateway' '192.168.11.1'
        option 'dns' '208.67.222.222 208.67.220.220'

/etc/config/firewall

Secara default zona wan dalam konfigurasi firewall adalah interface wan, sedangkan konfigurasi di atas menggunakan interface wan1 dan wan2.

config zone
        option name             wan
        option input    REJECT
        option output   ACCEPT
        option forward  REJECT
        option masq             1
        option mtu_fix  1
        option network  'wan1 wan2'

/etc/config/multiwan

Ini adalah konfigurasi load balancing dan failover untuk multi wan.

config 'multiwan' 'config'
        option 'default_route' 'balancer'
        # health_monitor below is defaulted to parallel, and can be set to
        # serial to save system resources.
        option 'health_monitor' 'serial'
        # option 'debug' '1'

config 'interface' 'wan1'
        option 'weight' '10'
        option 'health_interval' '10'
        option 'icmp_hosts' 'gateway'
        # icmp_count is defaulted to 1, and can be increased to reduce
        # false positives.
        option 'icmp_count' '3'
        option 'timeout' '3'
        option 'health_fail_retries' '3'
        option 'health_recovery_retries' '5'
        option 'failover_to' 'wan2'
        option 'dns' 'auto'

config 'interface' 'wan2'
        option 'weight' '10'
        option 'health_interval' '10'
        option 'icmp_hosts' 'gateway'
        option 'icmp_count' '3'
        option 'timeout' '3'
        option 'health_fail_retries' '3'
        option 'health_recovery_retries' '5'
        option 'failover_to' 'wan1'
        option 'dns' 'auto'

config 'mwanfw'
       option 'src' '192.168.1.0/24'
       option 'dst' 'ftp.netlab7.com'
       option 'proto' 'tcp'
       option 'ports' '21'
       option 'wanrule' 'wan2'

# VoIP traffic goes through wan
# config 'mwanfw'
        # option 'src' '192.168.1.0/24'
        # option 'proto' 'udp'
        # option 'port_type' 'source-ports'
        # option 'ports' '5060,16384:16482'
        # option 'wanrule' 'wan'

config 'mwanfw'
       option 'src' '192.168.0.3'
       option 'proto' 'icmp'
       option 'wanrule' 'balancer'

config 'mwanfw'
       option 'dst' 'www.whatismyip.com'
       option 'wanrule' 'fastbalancer'

/etc/config/dhcp

Konfigurasi berikut perlu ditambahkan untuk mengabaikan permintaan DHCP pada WAN 1 dan WAN 2.

config dhcp wan1
        option interface        wan1
        option ignore   1

config dhcp wan2
        option interface        wan2
        option ignore   1

Reboot router dengan memberikan perintah reboot pada shell.

Mengaktifkan WiFi Protected Setup (WPS)

/etc/config/wireless

Konfigurasi wireless berikut menggunakan WPA2-Personal. Sesuaikan SSID dan passphrase (key) dengan konfigurasi wireless anda. Sedangkan wps_pin dapat diisi dengan PIN yang terdapat pada label di bawah DIR-300.

config 'wifi-device' 'wifi0'
        option 'type' 'atheros'
        option 'channel' '3'
        option 'disabled' '0'
        option 'country' '360'

config 'wifi-iface'
        option 'device' 'wifi0'
        option 'network' 'lan'
        option 'mode' 'ap'
        option 'ssid' 'SSID'
        option 'encryption' 'psk2'
        option 'key' 'mysecret'
        option 'wps_pushbutton' '1'
        option 'wps_pin' '12345678'

Update 09-Januari-2013:

config 'wifi-device' 'wlan0'
	option 'type' 'mac80211'
	option 'channel' '11'
	option 'macaddr' '00:11:22:33:44:55'
	option 'hwmode' '11g'
	option 'country' 'ID'

	# REMOVE THIS LINE TO ENABLE WIFI:
	option 'disabled' '0'

config 'wifi-iface'
	option 'device' 'wlan0'
	option 'network' 'lan'
	option 'mode' 'ap'
	option 'ssid' 'OpenWRT'
	option 'encryption' 'psk2'
	option 'key' 'secretkey'
	option 'wps_pushbutton' '1'
	option 'wps_pin' '12345678'

Konfigurasi LED dan Tombol WPS

LED wireless pada DIR-300 menggunakan nomor pin 2, untuk itu perlu ditambahkan baris berikut ke /etc/sysctl.conf:

dev.wifi0.ledpin=2

Untuk membuat LED system menyala dan mati dengan jeda tertentu, gunakan konfigurasi /etc/config/system dan tambahkan baris-baris berikut:

config 'led'
        option 'sysfs' 'dir300:green:system'
        option 'trigger' 'timer'
        option 'delayon' '1000'
        option 'delayoff' '1000'

Tombol WPS ketika ditekan akan mengaktikan LED wps biru, /etc/hotplug.d/button/50-wps (dari paket hostapd-utils):

local wps_led_blue wps_led_red wps_led_red_state
wps_led_blue=/sys/class/leds/dir300:blue:wps/brightness
wps_led_red=/sys/class/leds/dir300:red:wps/brightness

if [ "$ACTION" = "pressed" -a "$BUTTON" = "wps" ]; then
	for dir in /var/run/hostapd-*; do
		[ -d "$dir" ] || continue
		wps_led_red_state=`cat $wps_led_red`
		echo 0 > $wps_led_red
		echo 1 > $wps_led_blue
		hostapd_cli -p "$dir" wps_pbc
		sleep 10
		echo 0 > $wps_led_blue
		echo $wps_led_red_state > $wps_led_red
	done
fi

Update 09-Januari-2013:

local wps_led_blue wps_led_red wps_led_red_state
wps_led_blue=/sys/class/leds/dir300:blue:wps/brightness
wps_led_red=/sys/class/leds/dir300:red:wps/brightness

if [ "$ACTION" = "pressed" -a "$BUTTON" = "wps" ]; then
	for dir in /var/run/hostapd-*; do
		[ -d "$dir" ] || continue
		wps_led_red_state=`cat $wps_led_red`
		echo 0 > $wps_led_red
		echo 1 > $wps_led_blue
		wpa_cli -p "$dir" wps_pbc
		sleep 10
		echo 0 > $wps_led_blue
		echo $wps_led_red_state > $wps_led_red
	done
fi

Reboot router untuk mengaplikasikan perubahan.

Jika anda ingin mengkompilasi sendiri firmware OpenWrt, lalukan patch pada build root OpenWrt. File konfigurasi OpenWrt lebih lengkap dapat dilihat di Wiki OpenWrt./li

, , , ,

4 Comments

Load Balance PCC Mikrotik dengan 2 WAN + 1 VPN

Per Connection Classifier (PCC) Load Balance ini digunakan untuk load balancing round-robin dengan konfigurasi sebagai berikut:

  1. Internet: Speedy menggunakan PPPOE.
  2. Internet: Wireless kantor menggunakan IP statis.
  3. VPN menggunakan IP statis.
Konfigurasi PPPoE Speedy
/interface pppoe-client
add ac-name="" add-default-route=no allow=pap,chap,mschap1,mschap2 comment="" \
    dial-on-demand=yes disabled=no interface=ether1-speedy max-mru=1480 \
    max-mtu=1480 mrru=disabled name=pppoe-speedy password=********** profile=\
    default service-name="" use-peer-dns=no user=************@telkom.net
Konfigurasi IP Address

Interface-interface yang menggunakan ip statis adalah br-lan yang merupakan interface lokal pada network 10.3.8.0/24, sedangkan WAN kantor (ether2-pde) pada network 192.168.51.0/24, dan VPN (ether3-sapk) pada network 178.199.25.176/28.

/ip address
add address=10.3.8.1/24 broadcast=10.3.8.255 comment=LAN disabled=\
    no interface=br-lan network=10.3.8.0
add address=192.168.51.52/24 broadcast=192.168.51.255 comment=PDE disabled=no \
    interface=ether2-pde network=192.168.51.0
add address=178.199.25.178/28 broadcast=178.199.25.191 comment=SAPK disabled=\
    no interface=ether3-sapk network=178.199.25.176

Untuk interface DMZ Speedy ether1-speedy menggunakan dhcp.

/ip dhcp-client
add comment="" disabled=no interface=ether1-speedy
Konfigurasi Firewall

Konfigurasi firewall mangle untuk menandai koneksi dan routing pada interface pppoe-speedy dan ether2-pde.

/ip firewall mangle
add action=mark-connection chain=input comment="PCC LB" disabled=no \
    in-interface=ether2-pde new-connection-mark=pde passthrough=yes
add action=mark-connection chain=input comment="" disabled=no in-interface=\
    pppoe-speedy new-connection-mark=speedy passthrough=yes
add action=mark-routing chain=output comment="" connection-mark=pde disabled=\
    no new-routing-mark=pde passthrough=no
add action=mark-routing chain=output comment="" connection-mark=speedy \
    disabled=no new-routing-mark=speedy passthrough=no

Mangle berikut berfungsi untuk meloloskan paket dari lan yang menuju router.

/ip firewall mangle
add action=accept chain=prerouting comment="" disabled=no dst-address=\
    192.168.1.0/24 in-interface=br-lan
add action=accept chain=prerouting comment="" disabled=no dst-address=\
    192.168.51.0/24 in-interface=br-lan
add action=accept chain=prerouting comment="" disabled=no dst-address=\
    178.199.25.176/28 in-interface=br-lan

Mangle untuk balancing dengan PCC.

/ip firewall mangle
add action=mark-connection chain=prerouting comment="" disabled=no \
    dst-address-type=!local in-interface=br-lan new-connection-mark=pde \
    passthrough=yes per-connection-classifier=both-addresses-and-ports:2/0
add action=mark-connection chain=prerouting comment="" disabled=no \
    dst-address-type=!local in-interface=br-lan new-connection-mark=speedy \
    passthrough=yes per-connection-classifier=both-addresses-and-ports:2/1
add action=mark-routing chain=prerouting comment="" connection-mark=pde \
    disabled=no in-interface=br-lan new-routing-mark=pde passthrough=yes
add action=mark-routing chain=prerouting comment="" connection-mark=speedy \
    disabled=no in-interface=br-lan new-routing-mark=speedy passthrough=yes

Konfigurasi masquerade.

/ip firewall nat
add action=masquerade chain=srcnat comment=SPEEDY disabled=no out-interface=\
    pppoe-speedy
add action=masquerade chain=srcnat comment="SPEEDY DMZ" disabled=no \
    out-interface=ether1-speedy
add action=masquerade chain=srcnat comment=PDE disabled=no out-interface=\
    ether2-pde
add action=masquerade chain=srcnat comment=SAPK disabled=no out-interface=\
    ether3-sapk
Konfigurasi Routing
/ip route
add check-gateway=ping comment="" disabled=no distance=1 dst-address=\
    0.0.0.0/0 gateway=192.168.51.1 routing-mark=pde scope=30 target-scope=10
add check-gateway=ping comment="" disabled=no distance=1 dst-address=\
    0.0.0.0/0 gateway=pppoe-speedy routing-mark=speedy scope=30 target-scope=\
    10
add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\
    192.168.51.1 scope=30 target-scope=10
add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\
    pppoe-speedy scope=30 target-scope=10

Route ini merupakan route statis yang digunakan untuk meneruskan traffic ke interface VPN.

/ip route
add comment="" disabled=no distance=1 dst-address=178.200.200.0/24 gateway=\
    178.199.25.177 scope=30 target-scope=10
Konfigurasi DNS Resolver
/ip dns
set allow-remote-requests=yes cache-max-ttl=1w cache-size=2048KiB \
    max-udp-packet-size=512 servers=125.160.4.82,118.97.232.51

, , ,

11 Comments