Selasa, 05 November 2019

BAB 2 (Prinsip kerja Routing)




Penjelasan Dasar Proses IP Routing

Materi ini sebenarnya sudah pernah saya tuliskan di blog pribadi saya. Namun bagi sebagian orang mengaku masih sulit memahaminya, maka saya coba ulas lagi disini secara lebih perlahan, berharap agar lebih mudah dipahami.
Jadi, kali ini kita tidak akan langsung belajar konfigurasi routing, melainkan hanya mempelajari ip routing saja. IP routing adalah proses forwarding IP packet yang dilakukan oleh router.
Berikut 3 hal yang akan kamu pahami di setelah materi ip routing kali ini:
  • Memahami topologi sederhana beda network
  • Mempelajari cara kerja router
  • Menganalisa perpindahan packet ke network yang berbeda
Di akhir materi nanti juga akan saya sediakan beberapa soal untuk mengevaluasi pemahaman kamu mengenai ip routing.
Mari kita mulai materinya.

A. Terminologi Routing

Ada beberapa istilah yang perlu kita sepakati pemakaiannya di materi kali ini. Tadi saya katakan:
  • IP routing (aktifitas forwarding ip packet)
  • yang dilakukan oleh router (perangkat yang merouting), dan
  • IP packet (anggaplah seperti surat di analogi kantor pos).
Router yang dimaksud adalah kata kerja. Perangkat apapun yang bisa bertugas merouting, bisa firewall, bisa komputer, bisa switch. Tapi tetap kita akan belajar dengan router yang selama ini kita kenal.
Jadi secara ringkas, ip adalah routed protocol, sedangkan RIP, EIGRP, OSPF, dsb adalah routing protocol. Objeknya adalah ip packet, pelakunya adalah router.
Selain itu, ada 2 teknik dalam merouting, yaitu statis dan dinamis. Jika statis dilakukan manual, dinamis routing berarti router saling bertukar informasi routing mereka.

B. Pemahaman Dasar Routing

Saya ingatkan lagi materi dasar jaringan internetwork dimana router berperan merouting packet dari sebuah network yang berbeda ke tujuan yang berbeda network pula.
Note: Teknik konfigurasi routing dibawah tidak perlu kamu pahami saat ini juga. Saya hanya menjelaskan gambaran umum cara kerja router saja dan gambaran networknya.
Ini 3 hal yang harus diketahui oleh router dalam tugasnya merouting packet:
  • Melihat network dari tujuan sebuah paket ip
  • Rute menuju remote network dan memilih rute mana yang terbaik
  • Memaintain tabel routing

1. Router Hanya Melihat Network Address

Router engga peduli mengenai host, alamat ip address host tersebut dan dimana lokasinya. Router cuma melihat alamat network sebuah paket, dan rute mana yang terbaik menuju network tersebut.
Perhatikan topologi berikut ini.


cara kerja router
Gambar 1: Topologi A – Local Network Routing
Pertanyaannya, router menerima packet dengan alamat tujuan 192.168.100.10, kemana packet akan diforward?
Saya yakin dengan mudah kamu bisa menjawab, packet akan diforward ke interface Ethernet0/2 (karena di topologi seperti itu), ya kan?
Ngomong-ngomong, router engga tau bentuk topologi yang kita buat diatas seperti apa. Dia hanya melihat tabel routingnya. Cara melihatnya di router Cisco IOS dengan perintah #show ip route:
Router01#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
[output cut]
Gateway of last resort is not set
         10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        10.0.0.0/8 is directly connected, Ethernet0/0
L        10.0.0.1/32 is directly connected, Ethernet0/0
      172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        172.16.0.0/16 is directly connected, Ethernet0/1
L        172.16.0.1/32 is directly connected, Ethernet0/1
      192.168.100.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.100.0/24 is directly connected, Ethernet0/2
L        192.168.100.1/32 is directly connected, Ethernet0/2
Router#
(Akan lebih mengerti kalau kamu ikuti materi ini sembari praktek, gunakan packet tracer saja)
Yes, packet dengan tujuan 192.168.100.10 akan diforward melalui interface Ethernet0/2. Perhatikan disitu ada flag C yaitu directly connected, router bisa langsung memforward packet tersebut.
Transmisi packet akan berhasil dengan syarat client-client diatas sudah mengkonfigurasi gateway. Silakan baca fungsi gateway kalau belum paham.

Melihat tabel routing

Sekarang pertanyaannya, gimana kalau ada packet dengan alamat tujuan 10.100.10.19? Ke interface mana packet tersebut akan diteruskan?
Ingat, router tidak peduli dengan alamat 10.100.10.19, dia hanya peduli di network mana alamat tersebut, kalau ada di routing tablenya, maka bisa dikirimkan.
Kalau kita hitung, berarti kan 10.100.10.19 berada di network 10.0.0.0/8, ya kan? atau belum paham? Kalau belum silakan balik ke materi IP address dan silakan belajar subnetting terlebih dahulu.
Nah di topologi kan tidak ada host dengan alamat 10.100.10.19. Tapi fokus kita disini adalah routernya, router tidak peduli dengan host itu ada atau tidak. Network dari packet tersebut ada di tabel routing. Itu intinya.
Proses selanjutnya seperti apa.. akan kita bahas dibawah.

IOS router versi 15 dan /32 di tabel routing

Satu lagi, di IOS versi 15, router menambahkan alamat interfacenya sendiri di tabel routing seperti contoh diatas: 10.0.0.1/32 directly connected ke interface Ethernet0/0.
Tujuannya agar proses routing lebih efektif karena dia tinggal menforward packet tersebut ke interfacenya sendiri. Kita juga lebih gampang mengetahui kalau router punya ip interface di network tersebut.

2. Memilih Rute Terbaik

Satu lagi contoh, berdasarkan tabel routing dibawah ini. Jika ada packet dengan alamat tujuan 192.168.2.108, ke interface mana packet tersebut akan diforward?
Router02#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
[output cut]
  192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/30 is directly connected, Serial1/0
L        192.168.1.2/32 is directly connected, Serial1/0
      192.168.2.0/24 is variably subnetted, 10 subnets, 2 masks
C        192.168.2.0/27 is directly connected, Loopback0
L        192.168.2.1/32 is directly connected, Loopback0
C        192.168.2.32/27 is directly connected, Loopback1
L        192.168.2.33/32 is directly connected, Loopback1
C        192.168.2.64/27 is directly connected, Loopback2
L        192.168.2.65/32 is directly connected, Loopback2
C        192.168.2.96/27 is directly connected, Loopback3
L        192.168.2.97/32 is directly connected, Loopback3
C        192.168.2.128/27 is directly connected, Loopback4
L        192.168.2.129/32 is directly connected, Loopback4
[output cut]
Perhatikan, tabel routing cisco IOS menampilkan network classfull dan dibawahnya adalah network-network yang sudah disubnet, jadi lebih enak ngelihatnya, ya kan?
Lalu, ke interface mana packet tadi akan diforward?
Serius.. kalau kamu masih bingung menjawabnya, silakan pelajari materi subnetting yang sudah kita bahas sebelumnya.

Rute menuju remote network

Contoh-contoh diatas semuanya masih local network, alias terhubung langsung ke router. Jika seperti itu, kita bahkan tidak perlu mengkonfigurasi routing apapun karena router sudah tau rute menuju network tersebut.
Sekarang kita kembangkan topologinya seperti berikut ini.


remote network routing
Gambar 2: Topologi B – Remote Network Routing
Silakan diperhatikan, network 192.168.2.96/27 dan lainnya adalah remote network bagi Router01, karena tidak terhubung langsung dengannya. Begitu juga network 172.16.0.0/16 bagi Router02 dan seterusnya.
Sekarang pertanyaannya, jika router01 menerima packet dari PC02 dengan alamat tujuan 192.168.2.77, kemana packet akan diteruskan?
Ingat, router diatas itu tidak paham seperti apa wujud topologi yang kita buat. Sehingga jawabannya, tentu: tergantung tabel routing.
Nah karena tidak terhubung langsung, network address dari 192.168.2.77 belum ada di tabel routing Rourter01 (tabelnya routingnya masih sama dengan output show ip route diatas yang pertama kali).
Sehingga harus kita konfigurasi, dari topologi kita paham kalau tujuan paket tersebut terhubung ke router02.
Cara meroutingnya ada 2, dengan static routing, atau dynamic routing. Saya contohkan dengan static routing, ingat saja 2 hal ini:
  1. Alamat network yang ingin dirouting (yang akan ditambahkan ke tabel routing).
  2. Rute menuju alamat network tersebut.
Ingat, Router02 pun harus tau rute menuju ke PC02 (si pengirim paket) agar paket tersebut bisa reply.
Berikut konfigurasi di Router01:
R1(config)#ip route 192.168.2.0 255.255.255.128 192.168.1.2
R1(config)#do show ip route
[output cut]
  10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        10.0.0.0/8 is directly connected, Ethernet0/0
L        10.0.0.1/32 is directly connected, Ethernet0/0
      172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        172.16.0.0/16 is directly connected, Ethernet0/1
L        172.16.0.1/32 is directly connected, Ethernet0/1
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/30 is directly connected, Serial1/0
L        192.168.1.1/32 is directly connected, Serial1/0
      192.168.2.0/25 is subnetted, 1 subnets
S        192.168.2.0 [1/0] via 192.168.1.2
      192.168.100.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.100.0/24 is directly connected, Ethernet0/2
L        192.168.100.1/32 is directly connected, Ethernet0/2
R1(config)#
Lho, kok dikonfigurasi dengan subnet mask 255.255.255.128 (/25)? Saya summari agar mencakup semua alamat loopback0 sampai loopback4 router02.
Sekarang konfigurasi di Router02:
R2(config)#ip route 172.16.0.0 255.255.0.0 192.168.1.1
R2(config)#do show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
[output cut]
S     172.16.0.0/16 [1/0] via 192.168.1.1
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/30 is directly connected, Serial1/0
L        192.168.1.2/32 is directly connected, Serial1/0
      192.168.2.0/24 is variably subnetted, 10 subnets, 2 masks
C        192.168.2.0/27 is directly connected, Loopback0
L        192.168.2.1/32 is directly connected, Loopback0
C        192.168.2.32/27 is directly connected, Loopback1
L        192.168.2.33/32 is directly connected, Loopback1
C        192.168.2.64/27 is directly connected, Loopback2
L        192.168.2.65/32 is directly connected, Loopback2
C        192.168.2.96/27 is directly connected, Loopback3
L        192.168.2.97/32 is directly connected, Loopback3
C        192.168.2.128/27 is directly connected, Loopback4
L        192.168.2.129/32 is directly connected, Loopback4
      192.168.100.0/24 is variably subnetted, 4 subnets, 2 masks
C        192.168.100.0/25 is directly connected, Loopback88
L        192.168.100.1/32 is directly connected, Loopback88
C        192.168.100.128/25 is directly connected, Loopback99
L        192.168.100.129/32 is directly connected, Loopback99
R2(config)#
Selesai, sekarang PC02 sudah bisa berkomunikasi ke network 192.168.2.0/25 yang terhubung ke Router02. Silakan coba sendiri di lab masing-masing.
Ini rangkumannya:
  • Router bekerja berdasarkan tabel routing. 
  • Entri di tabel routing tersebut bisa ditambahkan (dikonfigurasi) baik secara statis maupun dinamis.
  • Isi tabel routing: alamat networknya, dan rute menuju alamat network tersebut.
Bahasan konfigurasi ini akan kita bahas lebih lanjut di bab berikutnya. Sekarang cukup pahami konsep dasarnya.

Route path selection

Ada kondisi dimana terdapat beberapa network tapi pathnya berbeda. Seperti berikut ini.


route selection
Gambar 3: Route Selection
PC02 ingin mengirim packet ke alamat 192.168.100.10. Sesampainya di Router01, ke interface mana kah paket tersebut akan diforward?
Ini akan kita bahas nanti, namun jika kamu penasaran, silakan dipraktekkan dengan skenario sebagai berikut:
  1. Di router01: konfigurasi routing ke 192.168.100.0/24, arahkan ke interface serial1/0 atau 192.168.1.2.
  2. Hapus konfigurasi nomer 1, di router01: konfigurasi routing ke 192.168.100.0/25 dan 192.168.100.128/25, arahkan ke interface serial1/0 atau 192.168.2.
  3. Test ping dan tracreoute dari PC02 ke alamat 192.168.100.10 setelah skenario 1 dan skenario 2.
*note: interface lo88 router02 adalah: 192.168.100.10/25.
Nah, itu masih di Router01 (kamu coba sendiri), sekarang kita lihat sedikit di router02. Bagaimana jika router02 menerima packet dengan alamat tujuan 192.168.100.10?
Ke interface mana packet tersebut akan diforward? (misal yang mengirim packet adalah interface loopback 0).
Berikut tabel routingnya:
R2#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
[output cut]
S     10.0.0.0/8 [1/0] via 192.168.1.1
S     172.16.0.0/16 [1/0] via 192.168.1.1
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/30 is directly connected, Serial1/0
L        192.168.1.2/32 is directly connected, Serial1/0
      192.168.2.0/24 is variably subnetted, 10 subnets, 2 masks
C        192.168.2.0/27 is directly connected, Loopback0
L        192.168.2.1/32 is directly connected, Loopback0
C        192.168.2.32/27 is directly connected, Loopback1
L        192.168.2.33/32 is directly connected, Loopback1
C        192.168.2.64/27 is directly connected, Loopback2
L        192.168.2.65/32 is directly connected, Loopback2
C        192.168.2.96/27 is directly connected, Loopback3
L        192.168.2.97/32 is directly connected, Loopback3
C        192.168.2.128/27 is directly connected, Loopback4
L        192.168.2.129/32 is directly connected, Loopback4
      192.168.100.0/24 is variably subnetted, 5 subnets, 3 masks
S        192.168.100.0/24 [1/0] via 192.168.1.1
C        192.168.100.0/25 is directly connected, Loopback88
L        192.168.100.10/32 is directly connected, Loopback88
C        192.168.100.128/25 is directly connected, Loopback99
L        192.168.100.138/32 is directly connected, Loopback99
R2#
Setelah dicoba, packet diteruskan ke interface loopback88, bukan ke interface s1/0 atau via 192.168.1.1 (router01) untuk menuju PC03.
R2#traceroute 192.168.100.10 source lo 0
Type escape sequence to abort.
Tracing the route to 192.168.100.10
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.100.10 4 msec 4 msec *
R2#
Kenapa packet dikirimkan ke interface loopback88?
Dalam membangun routing tabel, 3 faktor berikut yang menentukan:
  • Administrative distance: tingkat kepercayaan rute, semakin kecil nilainya, maka rute tersebut semakin diutamakan.
  • Metric: oleh routing protocol sendiri, punya metric masing-masing.
  • Prefix length:  prefix length terpanjang akan menjadi prioritas.
Dah, ini akan kita bahas di lain kesempatan. Sebagai catatan, berikut adalah nilai default administrative distance routing protocol di cisco.


Routing ProtocolAD Value
Connected0
Static1
eBGP20
EIGRP (internal)90
IGRP100
OSPF110
IS-IS115
RIP120
EIGRP (external)170
iBGP200
EIGRP summary route5

3. Memaintain Routing Table

Satu lagi sebelum kita bahas tentang proses ip routing. Tadi saya katakan, ada 2 teknik membangun atau mengkonfigurasi routing:
  1. Static routing: admin sendiri yang mengkonfigurasi secara manual alamat network, rute menuju alamat network tersebut, dan metricnya.
  2. Dynamic routing: router akan saling bertukar informasi routingnya ke router tetangganya.
Juga akan kita bahas nanti. Intinya ketika belajar, mulai dari static routing terlebih dahulu.

Saya ingatkan lagi, jika kamu belum pernah belajar konfigurasi routing sama sekali, tidak perlu khawatir, intinya kamu cukup pahami beberapa point besarnya:
  • Router tidak tau bentuk topologi, router cuma melihat tabel routingnya. 
  • Router tidak peduli alamat ip dan lokasi host ada dimana, dia hanya perlu tahu alamat networknya (maka kamu perlu paham subnetting).
  • Kalau network tersebut terhubung langsung dengannya, tidak perlu konfigurasi apa-apa, router sudah tau rute menuju network tersebut.
  • Sebaliknya, kalau tujuan paketnya ada di remote network, maka tabel routing perlu dibuat, dengan static atau dynamic routing.

C. Proses IP Routing

Semoga dari penjelasan singkat diatas kamu sudah punya bayang-bayang dengan routing. Topologi yang akan kita gunakan untuk mempelajari proses ip routing kali ini jauh lebih sederhana.


proses ip routing
Gambar 4: Belajar IP Routing
Kita akan mencoba mengirim paket ICMP dari Host-A (192.168.1.2) ke Host-B (192.168.2.2) dan memperhatikan proses routing packet hingga reply kembali ke Host-A.
Alamat MAC masing-masing NIC perangkat sengaja dicantumkan karena nanti kita akan mengamati proses ARP juga. Kemudian, di router tidak ada konfigurasi routing apapun karena kedua network terhubung langsung.
Let’s begin.

1. Membentuk packet ICMP

Host-A akan membuat paket ICMP echo request yang nantinya akan ditempatkan di IP packet, berisi 192.168.1.2 sebagai source address dan 192.168.2.2 sebagai destination address.


packet icmp
Gambar 4: Packet ICMP
Terlihat di gambar bahwa IP packetnya berisi protocol 1 (icmp) beserta alamat sumber dan tujuannya. Di materi ip address sudah pernah kita bahas tentang ini.

2. Apakah tujuan paket berada di local network atau remote network?

Masih berada di layer network dengan IP protocol, Host-A akan mencari tahu, apakah alamat 192.168.1.2 berada satu network dengannya, atau berada di network berbeda?
Maka dia akan membandingkan dengan alamat ip nya sendiri dan subnet masknya.


membandingkan network tujuan paket
Gambar 5: Membandingkan network tujuan paket
Host-A dengan ip address 192.168.1.1 di subnet mask 255.255.255.0, berarti alamat ip yang satu network dengannya adalah 192.168.1.1 sampai 192.168.1.254.
Maka diketahui bahwa 192.168.1.2 berada di remote network.

3. Tujuan paket berada di remote network, kirim ke gateway!

Host-A sudah mendaftarkan alamat 192.168.1.1 (interface e0/0 router). Saya tidak ingin membuat kamu pusing, tapi coba perhatikan output dari route -ndari Host-A tersebut.
Karena komputer juga memiliki kapabilitas untuk merouting (bisa static, isa dynamic). Sehingga gateway dipertimbangkan sebagai rute (default route).
Sederhananya, jika tidak ada rute menuju paket 192.168.1.2 tadi, maka packet akan dibuang. Tidak jadi dikirimkan. Dalam hal ini paket akan dikirim ke gateway.

4. Membungkus packet kedalam frame (framing, encapsulating)

Agar packet bisa dikirimkan ke alamat gateway (192.168.1.1), maka Host-A harus mengetahui alamat hardware (MAC: media access control) dari interface e0/0 router.
Masih ingat kan materi enkapsulasi deenkapsulasi TCP/IP?
Perangkat hanya bisa berkomunikasi dan saling bertransmisi data melalui hardware, layer 2 dan layer 1. Makanya packet tersebut perlu dibungkus dulu menjadi frame.
Sekali lagi dan perlu diingat, packet icmp yang tadi udah berisi ip address sumber dan tujuan, akan dibungkus ke dalam frame, dimana frame juga harus berisi alamat sumber dan tujuan, tapi alamat hardware.
  • IP packet, isinya ICMP, source address: 192.168.1.2 Host-A, destination address: 192.168.2.2 Host-B.
  • Dibungkus ke dalam frame, isinya IP packet yang data payloadnya adalah ICMP. Source address frame: 0C:0C:99:49:CA:00 eth0 Host-A, destination address frame: aabb.cc00.0100 eth0/0 Router.


framing
Gambar 6: Frame dari Host-A ke e0/0 Router
Ada perbedaan antara frame dan packet. Alamat packet dari awal biasanya tidak berubah (kecuali ada translasi). Sedangkan alamat frame, selalu alamat perangkat di transit, tidak pernah lompat.
Misal rutenya Bogor (sumber) -> Cianjur -> Padalarang -> Bandung (tujuan).
Maka isi alamat sumber dan tujuan packet selalu Bogor dan Bandung. Sedangkan alamat framenya bisa Bogor -> Cianjur, Cianjur -> Padalarang, dan seterusnya.

5. Memanfaatkan address resolution protocol (ARP)

Balik lagi ke proses tadi, packet sudah dibungkus jadi frame dan ingin dikirimkan ke interface e0/0 router. Bagaimana cara mengetahui alamat hardware interface e0/0 router tersebut?
Maka digunakanlah ARP atau address resolution protocol, fungsinya untuk menerjemahkan alamat IP menjadi alamat hardware.
Alamat IP nya kan sudah diketahui, yaitu alamat gateway (e0/0 router). Maka host A tinggal menyebar pesan ARP melalui interface eth0 nya berisi “siapa yang tahu alamat hardware dari 192.168.1.1?”


arp broadcast
Gambar 7: ARP broadcast dari Host-A
Coba perhatikan, pesan ARP tersebut dikirimkan secara broadcast ke alamat ff:ff:ff:ff…, alias layer 2 broadcast. Ini sudah kita bahas juga di jenis-jenis traffic jaringan komputer. [Baca broadcast traffic].
Andaikata NIC eth0 host-A diatas terhubung ke switch, maka pesan broadcast tersebut kaan diteruskan juga oleh switch. [Ingat materi dasar broadcast domain].
Kembali ke proses tadi, router yang merasa bahwa alamat 192.168.1.1 adalah miliknya, dia membalas pesan ARP tersebut dengan pesan “oh 192.168.1.1 itu gue, alamat hardwarenya aabb.cc00.0100”.


ARP reply
Gambar 8: ARP reply oleh Router

6. Alamat MAC disimpan ke tabel arp (cache)

Bayangkan jika setiap kali ingin mengirim frame, tiap perangkat harus nanya-nanya dulu berapa alamat hardware alamat si IP sekian? Tentu tidak efektif.
Tidak hanya tabel routing (alamat network), alamat mac pun ada tabelnya, tapi secara default tidak permanen, ada jangka waktunya. Sering disebut dengan arp cache atau mac address table jika di switch.
Kembali ke proses, maka Host-A akan menyimpan alamat hardware ethernet0/0 Router di tabel arp nya.
gns3@Host-A:~$ arp -a
? (192.168.1.1) at aa:bb:cc:00:01:00 [ether]  on eth0
Begitu juga dengan Router, alamat hardware ether0 dari Host-A akan disimpan ke tabel arp nya.
Router#show ip arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.1.1             -   aabb.cc00.0100  ARPA   Ethernet0/0
Internet  192.168.1.2            67   0c0c.9949.ca00  ARPA   Ethernet0/0
Internet  192.168.2.1             -   aabb.cc00.0110  ARPA   Ethernet0/1
Internet  192.168.2.2            66   0c0c.99d5.d900  ARPA   Ethernet0/1
Oh ya, sampai di step ini, router belum mengetahui alamat hardware Host-B (192.168.2.2).
Lihat bahwa disitu ada kolom “Age (min)” yaitu jangka waktu cache yang saya katakan tadi. Tanda (-) berarti alamat interface router itu sendiri, yaitu 192.168.1.1:aabb.cc00.0100 dan 192.168.2.1:aabb.cc00.0110.
Sekarang, frame tadi sudah siap untuk ditransmisikan oleh Host-A — dan sedang dalam perjalan ke ethernet0/0 router ðŸ›«ðŸ›«
Melalui media — layer 1 physical, dalam hal ini kabel UTP.
(Lama yee)

7. Pemeriksaan frame (FCS: Frame Check Sequence)

Masih panjang prosesnya. Ketika mengirim frame, dua perangkat yang berada dalam satu collision domain yang sama (eth0 host-A dan eth0/0 router) akan menjalankan CRC (cyclic redundancy check) dan hasilnya akan dicocokkan field FCS (frame check squence).
Jika FCS tidak sesuai, maka frame akan didiscard saat itu juga. Tidak ada error recovery di layer 2, hal ini cuma ada di transport layer. Jika CRC sudah sesuai, maka alamat tujuan di frame akan dibandingkan dengan:
  • Apakah mac address tersebut adalah interface router?
  • Mac address adalah alamat broadcast dari subnet dimana interface router berada di subnet tersebut juga.
  • Mac address tersebut adalah alamat multicast dimana router juga termasuk dari multicast tersebut.
Dalam hal ini, alamat tujuan frame tadi diketahui adalah alamat interface e0/0 router.
Maka sekarang router akan mengekstrak (deenkapsulasi) / membuka bungkusan frame tersebut sehingga menyisakan ip packet.

8. Pemeriksaan packet 

Sampailah kita pada tahap kinerja router yang kita bahas di awal. Disini, router memeriksa alamat tujuan dari packet (yang dibongkar dari frame tadi).
Router memeriksa keberadaan network dari alamat tujuan packet (192.168.2.2 – Host-B) tersebut di tabel routingnya.


memeriksa tabel routing
Gambar 9: Router memeriksa tabel routing
Ternyata alamat network tujuan packet (192.168.2.2) sudah terdaftar di tabel tabel routing (192.18.2.0/24) dan terhubung secara langsung ke interface ethernet0/1.
Berarti paket bisa dikirimkan.

9. (lagi) Framing packet di router

Packet pertama tadi sudah didapat dari bongkaran frame yang diterima dari Host-A, ternyata penerimanya bukan router tersebut, tapi router bisa membantu memforwardnya karena alamat tujuan packet ada di tabel routing.
Maka sama seperti proses tadi, router pun membungkus kembali packet tadi dengan frame yang berbeda.
  • Alamat sumber dan tujuan packet tetap sama, yaitu Host-A ke Host-B, tidak berubah.
  • Packet dienkapsulasi kedalam frame dengan alamat sumber (ethernet0/1 router: aabb.cc00.0110) dan alamat tujuan (eth0 Host-B: 0C:0C:99:D5:D9:00)


frame dari router ke host-b
Gambar 9: Frame dari Router ke Host-B
(Klik gambar untuk memperbesar, periksa alamat ip, dan alamat frame, bandingkan dengan topologi diatas).
Ini masih mengirim packet ya. Sehingga icmp payloadnya masih echo request, belum reply.

10. (lagi lagi) Router harus tau alamat hardware Host-B

Syarat transmisi frame tadi tidak berubah. Router pun tetap harus tahu berapa alamat hardware eth0 Host-B. Mari kita lihat:
Router#show ip arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.1.1             -   aabb.cc00.0500  ARPA   Ethernet0/0
Internet  192.168.1.2             0   0c0c.9949.ca00  ARPA   Ethernet0/0
Internet  192.168.2.1             -   aabb.cc00.0510  ARPA   Ethernet0/1
Internet  192.168.2.2             0   0c0c.99d5.d900  ARPA   Ethernet0/1
Router#
Masih ada. Tapi kok age nya 0 menit?
Artinya decremental counting terhadap alamat hardware Host-A dan Host-B tidak berjalan. Hal ini dikarenakan ada transmisi antara Host-A dan Host-B yang sedang berjalan secara konstan.
(Saya sedang pinging Host-A dan Host-B juga sebaliknya).
Okay, karena alamat frame (0c0c.99d5.d900 Host-B) sudah terdaftar di tabel arp router, maka frame sudah bisa dikirim. Inget, isinya packet, yang berisi icmp, yang berisi echo request payload.

11. Host-B menerima frame dan memeriksanya

Sampailah frame tadi ke eth0 Host-B. Oleh host-B, dilakukan pemeriksaan frame CRC seperti sebelumnya. Jika hasilnya sesuai dengan field FCS, maka dilanjutkan dengan pemeriksaan alamat frame.
Frame pun dibongkar untuk melihat isi packet dan protocol serta data yang terkandung didalamnya.

12. Packet diterima oleh Host-B

Dari pemeriksaan frame, Host-B menyadari bahwa tujuan packet adalah dirinya sendiri (192.168.2.2). Dari protocol yang ada didalam packet, ditemukan adanya pesan ICMP request.
Sampai disini, Host-B bekerja di network layer. Protocol ICMP memiliki echo request dan echo reply (ini yang harus dihandle oleh host-B).

13. Giliran Host-B, mengirim  ICMP echo reply

Oh ya, ketika sebuah sudah sampai ke penerima, ada juga pengecekan CRC seperti di frame tadi. Namun lagi lagi, kalau terdapat error, packet akan didiscard. Sebag di layer network tidak ada error recovery layaknya transport layer.
Sampai disini, Host-B membuat packet baru, dengan protocol ICMP, didalamnya payload echo reply, alamat tujuan pun diganti dengan 192.168.1.1 (host-A).
Sampai disini, Host-B membuat packet baru, dengan protocol ICMP, didalamnya payload echo reply, alamat tujuan pun diganti dengan 192.168.1.1 (host-A).

14. Membandingkan alamat tujuan paket dengan network sendiri

Sama seperti proses diawal tadi, Host-B pun tetap harus memeriksa apakah alamat (192.168.2.1), satu network dengannya, atau tidak.


membandingkan alamat tujuan paket
Gambar 10: Host-B membandingkan alamat tujuan paket
Karena alamat tujuan packet berada di remote network, maka Host-B pun harus mengirimkannya ke gateway.
Kalau Host-B tidak mengkonfigurasi gateway (atau gatewaynya salah), atau tidak ada satupun rute menuju 192.168.1.2 di tabel routingnya (sama kayak router), maka packet tidak bisa pulang.
Tidak ada echo reply, dalam hal ini Host-A akan menerima pesan ICMP time out.

15. Mencari tau alamat hardware gateway

Harus lewat gateway dulu kan, berarti alamat hardware ethernet0/1 router (gateway) juga harus diketahui oleh Host-B, agar frame bisa ditransmisikan.
gns3@Host-B:~$ arp -a
? (192.168.2.1) at aa:bb:cc:00:05:10 [ether]  on eth0
Ternyata alamat hardware ethernet0/1 router sudah ada di tabel ARP Host-B. Maka frame bisa dikirim. Jika tidak, maka Host-B akan membroadcast pesan ARP seperti diatas.

16. dst, hingga packet ICMP reply sampai ke Host-A

  • Frame dikirim dari eth0 Host-B: 0C:0C:99:D5:D9:00 ke ethernet0/1 Router: aabb.cc00.0110, berisi packet dengan source Host-A: 192.168.2.2 dan destination Host-B: 192.168.1.1
  • Router menerima packet dari Host-B di interface e0/1 nya.
  • Frame diperiksa, run CRC, dan dibongkar, lalu dilihat alamat tujuan packet tersebut. 
  • Alamat tujuan packet adalah 192.168.2.1, bukan router.
  • Sekarang tugas router meneruskan packet, dilakukan pemeriksaan tabel routing, dan network 192.168.2.1 terhubung langsung ke interface ethernet0/0 (192.168.1.0).
  • Packet (tidak diubah), pun dibungkus kedalam frame. Alamat sumber frame yaitu ethernet0/0 router, dan alamat tujuannya adalah eth0 (192.168.1.2 Host-A).
  • Selama alamat hardware dari 192.168.1.2 Host-A masih ada di tabel ARP router, maka frame bisa dikirim. Jika tidak, router juga akan mengirim pesan ARP.
  • Frame diterima oleh Host-A, run CRC. Lalu dibongkar, frame dibuang, menyisakan ip packet.
  • IP packet diperiksa, diketahui bahwa Host-A adalah penerima packet tersebut. Maka Host-A menerima packet icmp reply.


icmp echo reply
Gambar 11: Host-A menerima ICMP echo reply
Selesai, panjang juga kan..

Simpulan

Demikian materi proses ip routing kali ini. Hal ini sangat penting untuk kamu pahami sebagai fundamental routing switching (iya, switching juga, yang akan kita bahas nanti).
  • Alamat sumber dan tujuan packet tidak akan berubah (kecuali ada address translation), hingga packet tersebut sampai ke tujuan.
  • Begitu juga dengan protocol yang ada di dalam (IP) packet tersebut.
  • Sedangkan alamat frame terus berubah sesuai collision domainnya (dua node di sebuah link). 
  • Packet icmp [echo request] butuh icmp [echo reply] maka packet tersebut tidak cukup jika hanya sampai tujuan, harus bisa kembali juga.
  • IP routing terjadi di network layer, pengirimannya berdasarkan tabel routing (di router), termasuk juga gateway (di end device). 
  • Framing terjadi di data link layer, pengirimannya berdasarkan tabel mac address atau tabel ARP.

# Evaluasi Pemahaman IP Routing

Lah.. gimana ini. Tadi kan sudah kesimpulan.
Sesuai janji saya di awal materi, kita akan menjawab beberapa soal untuk mengevaluasi pemahaman ip routing.
Soal-soal berikut tidak sulit, tapi kamu harus benar-benar bisa menjawabnya. Sebab sebagai dasar ip routing adalah satu pondasi penting pemahaman jaringan komputer.
Let’s begin.

Soal IP routing #1

Router R1 menerima packet dengan source address 172.16.12.99 dan destination address 192.168.47.108. Apa yang dilakukan router R1 terhadap paket tersebut?


soal ip routing 1
Soal 1 ip routing
Jika kamu menjawab “paket diterima oleh router R1 (berasal dari) interface Serial0/0, namun karena tidak ada satupun rute menuju network 192.168.47.0/24 (dengan asumsi clasfull), maka paket dibuang/didiscard”.
Maka jawaban kamu sempurna!
Oh ya, kalau dari tabel routing diatas terdapat [Codes *] alias candidate default, alias default gateway (seperti di end device), maka paket tadi akan dikirimkan kemari.
Terlepas paket tersebut (pada akhirnya) sampai atau tidak ke tujuannya, yang terpenting adalah router sudah memforwardnya sesuai tabel routingnya.

Soal IP routing #2

Sekarang, ada 2 buah LAN network, terhubung oleh satu buah link WAN network dengan serial link. Di LAN R2 terdapat WebServer dan ingin diakses oleh Host2 yang berada di LAN R1.


soal ip routing 2
Soal 2 ip routing
Dari gambar sudah terlihat jelas bahwa:
  • Frame pertama: mac address asal nya adalah e0 Host2, mac address tujuannya adalah e0/1 R1.
  • Alamat tujuan paket adalah alamat WebServer dan alamat asal paket adalah Host2.
  • Nomor port di header segment (inget layer transport, protocol data unitnya adalah segment), adalah TCP port 80 alias HTTP.

Soal IP routing #3

Sekarang kita kembangkan lagi topologinya. Ada server web dan server DNS terhubung di LAN R2. Juga di LAN sudah terdapat masing-masing sebuah switch. Bagaimana prosesnya jika Host1 ingin mengakses web server (ngonfig.net)?


ip routing test 3
Soal 3 ip routing
Kalau kamu mengira Host1 akan langsung memframing IP packet yang berisi protocol HTTP/HTTPS (TCP port 80 atau 443), maka jawabannya tersebut salah.
  • Host1 harus tahu dulu ip dari ngonfig.net. Karena tidak ada koneksi host-to-host dengan nama domain.
  • Maka host1 terlebih dahulu membuat packet yang mengandung segment dengan protocol UDP port 53 di headernya.
  • DNS server akan menjawab paket tersebut dan memberitahu IP dari server ngonfig.net
  • Host1 mengirim paket HTTP (TCP port 80) request (ada 3 way handshake dulu, ya kan), karena HTTP menggunakan TCP.
Silakan kamu jabarkan prosesnya.
Bagaimana prosesnya ketika Host1 mengirim DNS request pertama kali, dia akan membuat frame kan?
Lalu mengirimkannya ke e0 yang terhubung ke Sw1, bagaimana jika Sw1 juga tidak tahu alamat hardware e0 (gatewaynya Host1)? Ke interface mana saja pesan arp tersebut (ikutan) disebar?

… dah
Sekian materi kali ini. Saya harap gampang dipahami. Jika belum, jangan sungkan-sungkan memberi komentar dibawah.
Bagikan jika bermanfaat.

Tidak ada komentar:

Posting Komentar

Tugas TLJ

Pengertian Softswitch dan fungsinya beserta dengan Cara kerjanya Pengertian Softswitch Softswitch merupakan entitas berbagai softw...