Original Posted By
kiddiez ►Masalah ini sudah cukup membuat saya hampir minum racun, bagi para teman senior mohon pencerahannya.
Mulai dari awal, tidak ada alamat IP apa-apa di ethernet, tabel routing juga
kosong.
-------------------------------------------------------------
[root@arimbi~]# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:EB:9E:06
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:66 errors:0 dropped:0 overruns:0 frame:0
TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4338 (4.2 KiB) TX bytes:7420 (7.2 KiB)
Interrupt:185 Base address:0xc020
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:200 (200.0 b) TX bytes:200 (200.0 b)
[root@arimbi~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
[root@arimbi~]#
-------------------------------------------------------------
Kemudian di sini gw tambahkan sebuah alamat IP ke eth0. Tabel routing pun
akhirnya terisi sebuah entri, yaitu untuk tujuan kawan-kawan serumah di
192.168.1.0/24.
-------------------------------------------------------------
[root@arimbi~]# ifconfig eth0 192.168.1.62/24
[root@arimbi~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:EB:9E:06
inet addr:192.168.1.62 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:88 errors:0 dropped:0 overruns:0 frame:0
TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5658 (5.5 KiB) TX bytes:15921 (15.5 KiB)
Interrupt:185 Base address:0xc020
[root@arimbi~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
-------------------------------------------------------------
Interpretasi gw terhadap tabel di atas adalah bahwa ketika komputer gw
ngeping ke 192.168.1.1, paket itu akan dikirim melalui eth0 secara langsung
(tanpa gateway). Karena gateway kosong dan statusnya up (Flags: U), maka
komputer gw akan mengirim arp who-has ke ethernet broadcast. Setelah dapet alamat hardware, paket "ping" akan dikirim ke komputer yang bersangkutan.
Potongan di bawah ini adalah hasil satu kali ping ke 192.168.1.1. Normal aja
sih, dapet reply.
-------------------------------------------------------------
[root@arimbi~]# ping 192.168.1.1 -c 1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=6.24 ms
--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 6.243/6.243/6.243/0.000 ms
-------------------------------------------------------------
Sebelum ngeping, di window yang satunya gw pasang tcpdump, dan dapetnya
seperti di bawah ini. Tampaknya normal juga. Komputer gw tanya alamat
hardwarenya 192.168.1.1, kemudian ICMP echo request dikirim ke situ. Replynya pun kelihatan di situ.
Penampakan tabel ARP di situ ditampilkan pada potongan setelahnya.
-------------------------------------------------------------
08:49:07.941419 arp who-has 192.168.1.1 tell 192.168.1.62
08:49:07.942829 arp reply 192.168.1.1 is-at 00:18:39:ea:fb:15
08:49:07.942888 IP 192.168.1.62 > 192.168.1.1: ICMP echo request, id 24587, seq 1, length 64
08:49:07.944830 IP 192.168.1.1 > 192.168.1.62: ICMP echo reply, id 24587, seq 1, length 64
[root@arimbi~]# arp -e
Address HWtype HWaddress Flags Mask Iface
192.168.1.1 ether 00:18:39:EA:FB:15 C eth0
-------------------------------------------------------------
Ok, semua berjalan normal. Kemudian gw hapus entry route itu, tapi gw tidak
hapus alamat di eth0. Setelah terhapus, gw ping komputer yang tadi.
-------------------------------------------------------------
[root@arimbi~]# route del -net 192.168.1.0/24
[root@arimbi~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
[root@arimbi~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:EB:9E:06
inet addr:192.168.1.62 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:117 errors:0 dropped:0 overruns:0 frame:0
TX packets:66 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7626 (7.4 KiB) TX bytes:16061 (15.6 KiB)
Interrupt:185 Base address:0xc020
[root@arimbi~]# ping -c1 192.168.1.1
connect: Network is unreachable
-------------------------------------------------------------
Normal saja, keluarnya Network is unreachable. Dalam pengertian gw, paket ping itu tidak bisa dikirim karena memang tidak ada network entry-nya di dalam tabel routing. Andai mau ngirim via gateway, ya dikirim ke mana? Mau ngirim arp, dikirim lewat mana? Jadi status unreachable sejauh ini menurut gw normal, dan memang itulah yang gw harapkan he..he..he..
Nah di bagian berikut inilah yang gw bingung. Komputer gw ber-IP
192.168.1.62. gw tambahkan sebuah network route entry dengan menggunakan gateway IP komputer gw sendiri.
-------------------------------------------------------------
[root@arimbi~]# route add -net 192.168.1.0/24 gw 192.168.1.62
[root@arimbi~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 192.168.1.62 255.255.255.0 UG 0 0 0 eth0
-------------------------------------------------------------
Tabel routingnya jadi seperti di atas, sesuai dengan yang diharapkan (gatewaynya ke 192.168.1.62, statusnya Up dan use gateway (Flags: UG)).
Awalnya, di kepala gw, gw membayangkan bahwa paket akan dikirim ke
192.168.1.62 (yaitu dirinya sendiri). Setelah itu, penerima paket (yang ternyata adalah dirinya sendiri) akan mencari route entry ke 192.168.1.0. Kalau ketemu, dia akan menggunakan entry itu. Berhubung paket itu tidak keluar dari komputer, maka proses itu akan berputar tanpa henti (infinite loop).
Tapi ternyata tidak. Ketika gw coba ping seperti sebelumnya, eh... ternyata
tetap bisa. Potongannya di bawah, lagi-lagi ada potongan tcpdump di situ.
-------------------------------------------------------------
[root@arimbi~]# ping -c1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=3.62 ms
--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.626/3.626/3.626/0.000 ms
08:52:53.760854 arp who-has 192.168.1.1 tell 192.168.1.62
08:52:53.761895 arp reply 192.168.1.1 is-at 00:18:39:ea:fb:15
08:52:53.761924 IP 192.168.1.62 > 192.168.1.1: ICMP echo request, id 39435, seq 1, length 64
08:52:53.763722 IP 192.168.1.1 > 192.168.1.62: ICMP echo reply, id 39435, seq 1, length 64
-------------------------------------------------------------
Kok bisa ya? Padahal tidak ada entry "dev" di situ. Kemudian penentu pengiriman arp-nya gimana ya? Kok tidak loop? Kalo memang tidak perlu ada entry "dev", kenapa ketika kosong tidak bisa ngeping? Ketika bisa ngeping pun, entry ARP untuk 192.168.1.62 tidak ada. Padahal dalam kondisi normal, ketika gw ngeping ke IP di luar jaringan, alamat MAC gateway ada di tabel ARP. Normal saja, karena memang untuk urusan itu, paket akan dikirim ke gateway dan pengiriman ke gateway membutuhkan alamat hardware.
Lha yang ini... Kok bisa..?