Rabu, 30 Januari 2008

Trouble Shooting TCP/IP

Trouble Shooting TCP/IP

Misalkan komputer Linux anda mestinya tersambung ke network, tapi kok tidak jalan. Bagaimana mencari tahu salahnya, sekaligus membetulkan ? Level: Wannabee

Pertama, bayangkan bahwa kalau anda kirim paket network, urut-urutan jalannya adalah sebagai berikut:

  1. Aplikasi
  2. Protocol TCP/IP
  3. Driver Kernal
  4. Card network
  5. Kabel network
  6. Komputer lain (gateway)
  7. Internet

Secara singkat, algoritma trouble shooting adalah sbb:

  1. TEST DEVICE. Kalau benar loncat ke TEST TCP/IP. Kalau salah SET DEVICE lalu coba lagi. Kalau masih salah juga, periksa CARD dan DRIVER kernel Linux anda.
  2. TEST TCP/IP. Kalau benar loncat ke TEST PING, kalau salah ke SET TCP/IP lalu coba lagi.
  3. TEST PING-GATEWAY. Kalau benar loncat ke TEST PING, kalau salah PERIKSA KABEL.
  4. TEST PING-INTERNET. Kalau benar ya sudah, selesai. Kalau salah, set routing lalu coba lagi. Kalau masih salah juga, tamat riwayat dah. Sambungan Internet anda pasti sedang putus.

Sekarang detailnya. Untuk trouble shooting kita pakai CLI (command line interface) saja. Jadi luncurkan terminal dan su jadi root, atau login di console sebagai root.

TEST DEVICE

Pertama, coba test device network anda memang sudah ada. Caranya ...

root@engrob4:# cat /proc/net/dev

Inter-| Receive | Transmit

face | (dipotong biar tidak kepanjangan)

lo: 83505 .............

eth0: 650720962 ........

Yang penting di sini, lihat kalau sudah ada baris eth0:. Kalau ada, artinya device eth0 anda sudah UP. Silahkan lanjut ke TEST TCP/IP. Kalau belum, siap-siap kerja berat :)

Agar device eth0 UP, Linux anda mesti memuat driver yang sesuai dengan network card anda. Biasanya, hal ini otomatis di autodetect oleh distro anda. Di Vector Linux, coba:

root:# vlautosetup

Kalau tidak bisa autodetect, cilaka deh. Coba cara manual, edit file /etc/modules.conf. Anda mesti tambah baris seperti ini:

## Untuk ethernet card Intel Express 100

alias eth0 e100

## Ini buat NE200 compatible

# alias eth0 ne2k-pci

## Ini buat realtek

# alias eth0 8139too

Secara teknis, baris itu memberi tahu untuk memuat driver yang tepat bagi device eth0. Jadi ... ya anda mesti tahu benar apa tipe network card anda, dan apa driver yang diperlukan. Driver yang disediakan kernal anda bisa dilihat di

## ganti versi sesuai kernel anda

root:# ls /lib/modules/2.4.26/kernel/drivers/net/

Duh, sorry kalau terlalu low level. Habis mau bagaimana lagi. Jadi ... berdoa saja supaya autodetect-nya jalan ;-)

Usaha terakhir, anda bisa coba ganti network card (barangkali rusak) atau kompile ulang kernal (barangkali driver belum ada).

TEST PROTOCOL

Ok, asumsi device sudah UP. Mari test apakah protokol TCP/IP anda sudah jalan

root:# ifconfig

eth0 Link encap:Ethernet HWaddr 00:A0:C9:5F:1E:DF

inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:1963997 errors:0 dropped:0 overruns:0 frame:0

TX packets:1883860 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:650565316 (620.4 Mb) TX bytes:645290505 (615.3 Mb)

Interrupt:5 Base address:0xd800 Memory:e0100000-e0100038

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:756 errors:0 dropped:0 overruns:0 frame:0

TX packets:756 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:83505 (81.5 Kb) TX bytes:83505 (81.5 Kb)

Lihat kalau eth0 sudah ada dan benar IP-nya. Kalau iya, anda bisa langsung loncat ke TEST PING.

Kalau belum seperti itu, anda perlu set ulang TCP/IP. Di Slackware atau Vector Linux, jalankan 'netconfig', atau edit file /etc/rc.d/rc.inet1. Distro lain pasti ada juga menunya, coba dicari. Kalau nggak ketemu, ini cara klasik.

## ganti 10.0.0.100 dan 255.255.255.0 sesuai network anda

root:# ifconfig eth0 10.0.0.100 netmask 255.255.255.0 up

## Coba test lagi

root:# ifconfig eth0

Mestinya network anda akan jalan. Kalau sampai nggak jalan, kernel anda tidak support TCP/IP. Rasanya nggak mungkin deh.

TEST PING GATEWAY

Sampai tahap ini, network internal di komputer anda sudah beres. Kita akan coba koneksi keluarnya. Untuk itu anda harus tahu alamat IP gateway di network anda.

## ganti 10.0.0.254 dengan alamat gateway anda

root:# ping -c 3 10.0.0.254

PING 10.0.0.254 (84) bytes of data.

64 bytes from 10.0.0.254: icmp_seq=1 ttl=255 time=4.61 ms

64 bytes from 10.0.0.254: icmp_seq=2 ttl=255 time=1.10 ms

64 bytes from 10.0.0.254: icmp_seq=3 ttl=255 time=1.05 ms

--- 110.0.0.254 ping statistics ---

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

rtt min/avg/max/mdev = 1.051/2.255/4.614/1.668 ms

Kalau keluarannya seperti di atas, lega. Itu artinya koneksi keluar beres. Kalau sampai timeout tidak ada balasan, coba periksa kabel dan hub ethernet anda. Atau barangkali juga si gateway-nya sedang down.

TEST PING INTERNET

Nah, sekarang coba ping salah satu komputer di Internet. Biasanya, yang aman buat di-ping adalah DNS server si ISP (Internet service provider).

## Ganti 123.123.123.123 dengan alamat IP Internet yang anda tahu

root:# ping 123.123.123.123

Kalau tidak terbalas, coba lihat tabel routing. Mestinya mirip-mirip seperti ini

root:# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo

0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0

Perhatikan baris terakhir, destination 0.0.0.0 artinya ke semua network, dan kolom gateway-nya harus seauai dengan IP gateway anda. Konfigurator seperti netconfig mestinya sudah men-set ini buat anda. Kalau belum, coba pakai cara manual:

root:# route add default gw 10.0.0.254

Kalau default gateway sudah betul tapi ping internet masih belum bisa juga, ada beberapa kemungkinan: komputer anda di blok oleh si-gateway, setting firewall digateway salah, koneksi gateway ke ISP putus, dll. Buat tahu putusnya dimana, coba

root:# traceroute 123.123.123.123

Tapi biar sudah tahu, biasanya anda tidak bisa berbuat apa-apa, selain menunggu koneksi pulih kembali.

Segitu dulu. Kesempatan depan kita bahas trouble shooting DNS.

Tidak ada komentar: