Monday, April 21, 2008

INTERNET CEPAT VIA CDMA

Linux juga dapat digunakan untuk mengakses Internet melalui handphone CDMA. Tutorial ini menunjukkan kemudahan setup dengan modus teks pada dua distro Linux, Gentoo dan Fedora.



Dengan hadirnya layanan telepon wireless CDMA memungkinkan kita untuk memiliki akses internet berkecepatan lumayan tinggi, dengan infrastruktur yang minim.Beberapa handphone CDMA telah dilengkapi dengan kabel data USB untuk koneksi ke komputer. Pemilihan handphone dengan kabel data yang mendukung sistem operasi GNU/Linux, agak sulit dikarenakan minimnya referensi.

Dengan googling kita bisa memperoleh informasi bahwa secara garis besar ada dua macam kabel data usb yang banyak digunakan handphone CDMA. Pertama yang true usb, yang berkomuniksai menggunakan usb protocol dari komputer ke handphone. Tipe kedua menggunakan serial-to-usb adapter yang built-in dalam kabel.

Setelah melihat-lihat dokumentasi kernel, dukungan untuk serial-to-usb adapter di Linux kernel lebih menjanjikan. Untuk itu penulis memilih handphone yang memiliki kabel data yang kemungkinan besar menggunakan built in usb-to-serial adapter. Pada kesempatan ini penulis menggunakan jaringan telepon Flexi dengan handphone Sanex SC-7080.



Persiapan Sistem Linux



Pada umumnya, kernel distro Linux yang ada dewasa ini sudah dikompilasi dengan dukungan driver usb-to-serial adapter. Penulis sudah mencoba distro Gentoo Linux dan Fedora Core 1. Kedua distro ini by default sudah memberikan dukungan driver usb-to-serial adapter. Apabila sistem Linux anda belum mendukung driver usb-to-serial adapter anda bisa melakukan kompilasi kernel sendiri. Anda harus mengaktifkan dukungan usb, kemudian usb serial dan pilih serial support untuk PL2303.

Sebagian besar distroLinux yang baru juga sudah mengaktifkan hotplug. Sehingga secara otomatis pada saat anda sambungkan handphone usb ke komputer, Linux akan me-load module-module pendukung yang diperlukan. Apabila hotplug belum aktif atau sengaja tidak anda aktifkan, anda dapat melakukan loading module-module secara manual berikut ini:

#modprobe usbcore

#modprobe usb-uhci

#modeprobe usbserial

#modeprobe pl2303



Untuk distro Gentoo Linux, anda memiliki pilihan untuk mengaktifkan hotplug ataupun memasukan module-module yang ingin di-load secara otomatis dalam file konfigurasi /etc/modules.autoload.d/kernel-2.4. Pilihan distro dan cara load module sepenuhnya tergantung anda.

Setelah anda sambungkan handphone CDMA dengan komputer anda, dan module-module yang dibutuhkan sudah di-load, anda dapat memeriksa status koneksi usb dengan perintah sebagai berikut:

#dmesg|tail



Apabila sistem anda sudah terkonfigurasi dengan benar, akan anda dapatkan hasil kurang lebih sebagai berikut:

hub.c: new USB device 00:07.2-2, assigned address 3

usb.c: USB device 3 (vend/prod 0x67b/0x2303) is not claimed by any active driver.

usb.c: registered new driver serial

usbserial.c: USB Serial support registered for Generic

usbserial.c: USB Serial Driver core v1.4

usbserial.c: USB Serial support registered for PL-2303

usbserial.c: PL-2303 converter detected

usbserial.c: PL-2303 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)

pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.9



Dari log dmesg di atas dapat kita lihat bahwa kabel data Sanex SC-7080 menggunakan Prolific PL2303 dan disupport dengan baik di Linux. Kabel data kita sudah tersambung ke device berikut:

1. Untuk Fedora ada di /dev/ttyUSB0

2. Untuk Gentoo Linux ada di /dev/usb/tts0



Sekarang kita tinggal melakukan konfigurasi PPPD untuk melakukan koneksi ke internet. Pastikan bahwa kernel anda sudah mendukung PPP. Sebagian besar distro Linux sudah dikompilasi dengan support PPPD. Jika belum, anda dapat mengaktifkannya dan melakukan kompilasi kernel sendiri.



Konfigurasi PPPD



Sebelum melakukan konfigurasi pppd, kita pastikan dulu file-file pendukung sudah tersedia di sistem anda. Berikut adalah file-file yang kita butuhkan:

1. pppd ada di /usr/sbin/pppd

2. chat ada di /usr/sbin/chat

2. grep ada di /bin/grep

3. date ada di /bin/date

4. awk ada di /bin/awk

5. killall ada di /usr/bin/killall



Untuk mengetahui dan menyesuaikan lokasi dari file-file tersebut di sistem, anda bisa menggunakan perintah which . Apabila file-file tersebut belum ada, anda dapat menginstalasinya. Untuk Fedora, anda bisa menggunakan fasilitas Add/Remove Program. Untuk Gentoo, anda bisa menggunakan perintah emerge search untuk mencari paket yang perlu diinstal.

Sebelum anda melakukan konfigurasi pppd pastikan bahwa handphone sanex anda sudah terkonfigur dengan benar. Untuk Sanex SC7080 setting Data Service harus di set ke Packet. Untuk selengkapnya Anda bisa melihat di petunjuk yang ada pada CD kabel data.

Prinsip kerja dari pppd di Linux adalah sebagai berikut:

1. pppd daemon melakukan konfigurasi serial port yang akan digunakan. ( /dev/ttyUSB0 atau /dev/usb/tts/0).

2. pppd menjalankan program chat untuk melakukan koneksi ke provider. Program chat ini akan melakukan inisialisasi modem, kemudian dial ke provider. Untuk Flexi, dial ke nomor #777. Setelah itu chat akan menunggu konfirmasi sambungan ke provider (CONNECT).

3. pppd akan melakukan konfigurasi ip address, default routing, dan menyimpan informasi dns server di file /etc/ppp/resolv.conf



Konfigurasi pppd di atas kita lakukan dengan membuat lima file sebagai berikut.

1. File /etc/ppp/peers/flexi dengan isi sebagai berikut:

noauth

connect "/usr/sbin/chat -v -f /etc/ppp/chat-flexi"

/dev/ttyUSB0

115200

defaultroute

noipdefault

user "telkomnet@flexi"

remotename flexi

usepeerdns



Penjelasan:

noauthdigunakan agar peer kita (flexi) gak usah authentikasi ke kita.

connect "/usr/sbin/chat -v -f /etc/ppp/chat-flexi"untuk koneksi pake chat dengan konfigurasi ada di /etc/ppp/chat-flexi.

/dev/ttyUSB0adalah nama device yang kita pakai. untuk Gentoo Linux tulis /dev/usb/tts/0

115200 artinya kecepatan data dari komputer ke handphone.

defaultrouteuntuk mengatur koneksi ppp ini sebagai default routing kita.

noipdefaultberarti kita tidak memiliki ip default.

user "telkomnet@flexi" digunakan untuk memilih password untuk authentikasi PAP yang tersimpan di /etc/ppp/pap-secrets

remotename flexi digunakan untuk memilih password authentikasi PAP yang tersimpan di /etc/ppp/pap-secrets

usepeerdnsberarti pppd akan meminta konfigurasi nameserver dan akan menyimpannya di /etc/ppp/resolv.conf

Jika ada yang kurang jelas, anda dapat melihat informasi selengkapnya dengan perintah �man pppd�.



2. File /etc/ppp/chat-flexi dengan isi sebagai berikut:

ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE

'' ATZ

OK-AT-OK ATDT#777

ECHO ON

CONNECT ''



Penjelasan:

Program chat-flexi digunakan untuk melakukan koneksi serial ke provider.

ABORT BUSY ABORT 'NO CARRIER' ABORT VOICEartinya chat akan berhenti pada saat menerima kata BUSY atau NO CARRIER atau VOICE.

'' ATZberarti chat tanpa menunggu kata tertentu akan mengirimkan ATZ ke modem.

OK-AT-OK ATDT#777 artinya menunggu OK. Jika lama sehinnga timeout, akan kirim AT kemudian tunggu OK kembali. Jika OK diterima akan kirim ATDT#777 (dial ke provider).

CONNECT ''artinya chat akan menunggu CONNECT, jika diterima berarto selesai tugasnya.





3. File /etc/ppp/pap-secrets dengan isi sebagai berikut:

telkomnet@flexi flexi telkom



Artinya, untuk koneksi ppp ke Flexi dengan user �telkomnet@flexi� password yang dipakai adalah �telkom�.



4. File /sbin/start-flexi untuk memulai koneksi internet melalui CDMA Flexi.

#!/bin/bash

PPP=/usr/sbin/pppd

echo Connect ke Flexi ...

$PPP updetach call flexi

cp -f /etc/resolv.conf /etc/resolv.conf.flexi-bak

cp -f /etc/ppp/resolv.conf /etc/resolv.conf



Penjelasan:

$PPP updetach call flexi artinya jalankan pppd dengan menggunakan konfigurasi /etc/ppp/peers/flexi. Jangan detach dari terminal sebelum up.



Jangan lupa mengubah permission setting dari file /sbin/start-flexi dengan perintah

# chmod +x /sbin/start-flexi



5. File /sbin/stop-flexi untuk menghentikan koneksi ke Flexi sekaligus mencatat jumlah paket yang telah kita gunakan. Ini penting, karena hitungan biaya Flexi dengan koneksi ke #777 adalah jumlah paket, bukan jumlah waktu seperti ke Telkomnet Instan 080989999.

#!/bin/bash

STAT=/usr/sbin/pppstats

GREP=/bin/grep

LOG=/var/log/flexi-log

DATE=/bin/date

AWK=/bin/awk

KILL=/usr/bin/killall

TGL=`$DATE '+%d-%m-%Y %H:%M:%S'`

RCV=`$STAT -a| $GREP -v IN | $AWK '{print $1}'`

SND=`$STAT -a| $GREP -v IN | $AWK '{print $7}'`

(( TOT=($RCV+$SND)/1024 ))

(( REM=($RCV+$SND)%1024 ))

if (( $REM>0 )) ; then (( TOT=$TOT+1 )) ; fi

(( CHARGE=$TOT*5 ))

if (( $CHARGE==0 )) ; then (( CHARGE=5 )) ; fi

echo $TGL $RCV $SND $TOT $CHARGE >> $LOG

$KILL pppd

cp -f /etc/resolv.conf.flexi-bak /etc/resolv.conf

rm -f /etc/resolv.conf.flexi-bak



Jangan lupa mengubah permission setting dari file /sbin/stop-flexi dengan perintah

# chmod +x /sbin/stop-flexi



Pengujian



Jalankan koneksi internet melalui flexi dengan perintah �start-flexi�:

[root@gita flexi]# start-flexi

Connect ke Flexi ...

Serial connection established.

Using interface ppp0

Connect: ppp0 <--> /dev/ttyUSB0

local IP address 10.67.128.2

remote IP address 10.67.128.1

primary DNS address 202.134.0.155

secondary DNS address 202.134.2.5



Ping 3 kali ke www.google.com:

[root@gita flexi]# ping -c 3 www.google.com

PING www.google.akadns.net (66.102.7.99) 56(84) bytes of data.

64 bytes from 66.102.7.99: icmp_seq=0 ttl=236 time=779 ms

64 bytes from 66.102.7.99: icmp_seq=1 ttl=236 time=759 ms

64 bytes from 66.102.7.99: icmp_seq=2 ttl=236 time=969 ms



--- www.google.akadns.net ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2169ms

rtt min/avg/max/mdev = 759.680/836.370/969.983/94.825 ms, pipe 2



Ping 3 kali ke www.yahoo.com:

[root@gita flexi]# ping -c 3 www.yahoo.com

PING www.yahoo.akadns.net (66.94.230.38) 56(84) bytes of data.

64 bytes from p7.www.scd.yahoo.com (66.94.230.38): icmp_seq=0 ttl=43 time=778 ms

64 bytes from p7.www.scd.yahoo.com (66.94.230.38): icmp_seq=1 ttl=44 time=759 ms

64 bytes from p7.www.scd.yahoo.com (66.94.230.38): icmp_seq=2 ttl=44 time=789 ms



--- www.yahoo.akadns.net ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2268ms

rtt min/avg/max/mdev = 759.662/776.176/789.983/12.567 ms, pipe 2



Putuskan koneksi internet dari Flexi dengan perintah �stop-flexi�:

[root@gita flexi]# stop-flexi



Lihat log pemakaian untuk mengetahui tanggal dan jam, jumlah paket data terkirim (bit), data diterima (bit), dan data total (kilobit), serta biaya (data total dikalikan Rp 15,- per kilobit) :

[root@gita flexi]# tail /var/log/flexi-log

03-04-2004 08:01:30 5207 4452 10 150



Pengembangan lebih lanjut



Dengan memanfaatkan iptables dan traffic control, kita dapat memberikan solusi koneksi internet secara bersama, dengan infrastruktur yang relatif mudah diimplementasikan, dan dengan tingkat keamanan yang terjamin. Bila dilengkapi bandwith management yang bagus, solusi ini sangat cocok untuk menunjang kebutuhan komunikasi data di kantor atau warnet. Di samping itu, dengan pentarifan yang berdasarkan trafik data, kita dapat melakukan perhitungan biaya yang lebih mudah. Selamat mencoba.



P. Kristiana (pkristiana@telkom.net)

No comments:

Post a Comment

selamat datang