TCP/IP: Internet Layer

From OnnoWiki
(Redirected from Internet Layer)
Jump to navigation Jump to search

Protokol IP merupakan salah satu inti dari protokol TCP/IP. Seluruh data yang berasal dari protokol pada layer diatas IP harus dilewatkan, diolah oleh protokol IP, dan dipancarkan sebagai paket IP, agar sampai ke tujuan. Dalam melakukan pengiriman data, IP memiliki sifat tidak reliable, tidak andal, connectionless, datagram delivery service.

Ada dua kata yang menarik dari sifat IP diatas, yaitu unreliable (tidak andal) dan connectionless. Internet Protocol (RFC 791) (http://www.isi.edu/in-notes/rfc791.txt), memberikan servis yang kira-kira equivalen dengan dengan lapisan network di OSI. IP memberikan servis transport datagram (connectionless) di jaringan komputer. Servis ini tidak andal karena Internet Protokol tidak menggaransi penyampaian paket atau pemberitahuan ke host tujuan kalau ada paket loss, error, atau kemacetan di jaringan komputer. IP datagram berisi sebuah message, atau potongan message, yang panjangnya dapat sampai dengan 65,535 byte (oktet). IP tidak memberikan mekanisme flow control.

Unreliable / Ketidakandalan berarti bahwa Protokol IP tidak menjamin datagram yang dikirim pasti sampai ke tempat tujuan. Protokol IP hanya berjanji ia akan melakukan usaha sebaik baiknya (best effort delivery service), agar paket yang dikirim tersebut sampai ke tujuan.

Jika di perjalanan paket tersebut terjadi hal hal yang tidak diinginkan (salah satu jalur putus, router mengalami kongesti/macet, atau host/network tujuan sedang down), protokol IP hanya memberitahukan ke pengirim paket. Proses pemberitahuan biasanya menggunakan protokol Internet Control Message Protocol. ICMP akan memberitahukan bahwa terjadi masalah dalam pengiriman paket IP ke tujuan. Jika diinginkan keandalan yang lebih baik, keandalan itu harus disediakan oleh protokol yang berada diatas layer IP ini (yaitu TCP dan aplikasi pengguna).

Sedangkan kata connectionless berarti dalam mengirim paket dari tempat asal ke tujuan, pihak pengirim dan penerima paket IP sama sekali tidak mengadakan perjanjian (handshake) terlebih dahulu.

Datagram delivery service berarti setiap paket data yang dikirim adalah independen terhadap paket data yang lain. Akibatnya, jalur yang ditempuh oleh masing masing paket data IP ke tujuannya bisa jadi berbeda satu dengan lainnya. Karena jalur yang ditempuh berbeda, kedatangan paket pun bisa jadi tidak berurutan.

Jalur Pengiriman Paket yang acak

Pada gambar perjalanan IP, paket 3,4,5 melalui jalur berbeda dengan 1 dan 2. Paket 3 ditransmisikan ulang karena router yang di lalui down, sehingga kedatangannya tak urut seperti semula

Mengapa metoda seperti ini dipakai dalam pengiriman paket IP? Hal ini dilakukan untuk menjamin tetap sampainya paket IP ini ke tujuan, walaupun salah satu jalur ke tujuan itu mengalami masalah.


Internet Protocol

Internet Protocol Header Format

Format Internet Prototol (IP) header tampak pada gambar. Format dari diagram konsisten dengan RFC, bit berurut dari kiri-ke-kanan dimulai dari nol. Setiap baris merepresentasikan sebuah word 32-bit. Perlu diperhatikan bahwa header IP akan paling tidak panjangnya 5 word (20 byte). Kolom di header, dan fungsinya adalah sebagai berikut:

  • Version: berisi versi Internet Protocol (IP) (4 bit). Versi yang sering digunakan pada hari ini adalah IP versi 4, maka kolom ini akan berisi 0100. Sebetulnya, ada banyak versi IP dan ini di terangkan di IANA List of IP Version Numbers. (http://www.iana.org/assignments/version-numbers). Perkembangan lebih lanjut akan menggunakan IP versi 6 (IPv6).
  • Internet Header Length (IHL): Mengindikasikan panjang dari datagram header dalam 32 bit (4 oktet) word. Panjang minimum header adalah 20 oktet, oleh karena itu kolom ini akan mempunyai nilai minimum 5 (0101). Karena nilai maksimum dari kolom ini adalah 15, maka IP header tidak mungkin lebih panjang dari 60 oktet.
  • Type of Service (TOS): memungkinkan bagi host pengirim paket untuk meminta perbedaan kelas dalam mengirimkan paket. Walaupun tidak sepenuhnya di dukung oleh IPv4 yang banyak digunakan hari ini. Kolom TOS memungkinkan host pengirim meminta servis berbeda di lapisan transport / lapisan internet, dan dapat menspesifikasikan prioritas (0-7), atau dapat meminta route yang di optimisasi berdasarkan biaya, delay, throughput, atau keandalan.
  • Total Length: mengindikasikan panjang (dalam byte, atau oktet) dari keseluruhan paket, termasuk header dan data.Karena keterbetasan panjang kolom ini, maka panjang maksimum IP paket adalah 64KB, atau 64,535 byte. Pada praktisnya panjang paket di batasi oleh maximum transmission unit (MTU).
  • Identification: digunakan jika sebuah paket dipotong-potong menjadi potongan yang lebih kecil pada saat dikirim pada salah satu subnetwork yang dilewati. Dengan identifikasi ini, potongan-potongan paket yang diterima router tujuan dapat mengassembling kembali menjadi sebuah paket utuh kembali.
  • Flags: juga digunakan pada proses pemotongan / fragmentasi dan reassembly. Bit pertama disebut More Fragments (MF) bit, dan digunakan untuk memberi tanda pada potongan akhir dari paket sehingga bagian penerima tahu bahwa potongan paket yang diterima dapat di reassimbly. Bit kedua disebut Don't Fragment (DF) bit, yang akan meniadakan proses pemotongan paket. Bit ke tiga tidak digunakan dan selalu di set ke 0.
  • Fragment Offset: menunjukan posisi potongan dari paket yang awal. Potongan pertama dari sebuah paket, akan bersisi offset yang sama dengan 0.Potongan selanjutnya akan ditunjukan oleh offset dengan kenaikan 8 byte.
  • Time-to-Live (TTL): mempunyai nilai antara 0 sampai 255 (8 bit). TTL menunjukan berapa hop / router yang di ijinkan untuk dilewati oleh paket sebelum paket tersebut akan dibuang dari jaringan. Setiap router yang dilewati akan mengurangi nilai TTL satu (1) buah, jika nilai TTL mencapai 0 maka paket akan automatis dibuang dan router terakhir akan mengirimkan paket ICMP time excedeed. Hal ini dilakukan untuk mencegah paket IP terus menerus berada didalam network.
  • Protocol: menunjukan protokol yang dibawa diatas Internet Protocol, pilihan yang ada termasuk ICMP (1), TCP (6), UDP (17), atau OSPF (89). Daftar lengkap nomor protocol ini dapat dilihat di IANA list of Protocol Numbers (http://www.iana.org/assignments/protocol-numbers) Daftar ini juga dapat dilihat di file protocol yang biasanya ada di /etc (Linux/Unix), c:\windows (Windows 9x, ME, XP), atau c:\winnt\system32\drivers\etc (Windows NT, 2000).
  • Header Checksum: berisi informasi yang menjamin agar header IP bebas dari error (16 bit). Perhatikan bahwa IP memberikan servis yang tidak reliable, oleh karena ini kolom ini hanya mencek header saja, bukan keseluruhan paket.
  • Source Address: IP address dari host pengirim paket (32 bit)
  • Destination Address: IP address dari host yang dituju oleh paket (32 bit)
  • Options: option yang dapat diberikan ke sebuah paket yang dikirim, seperti routing yang khusus, atau keamanan. Daftar option dapat sampai dengan 40 byte (10 word), dan akan diisi untuk memenuhi batas word. Daftar IP option dapat diperoleh dari IANA list of IP Option Numbers (http://www.iana.org/assignments/ip-parameters). Beberapa contoh options adalah:
    • Strict Source Route. Berisi daftar lengkap IP address dari router yang harus dilalui oleh paket ini dalam perjalanannya ke host tujuan. Selain itu paket balasan atas paket ini,yang mengalir dari host tujuan ke host pengirim, diharuskan melalui router yang sama.
    • Loose Source Route. Dengan mengeset option ini, paket yang dikirim diharuskan singgah di beberapa router seperti yang disebutkan dalam field option ini. Jika diantara kedua router yang disebutkan terdapat router lain, paket masih diperbolehkan melalui router tersebut.

Tidak banyak informasi tentang jalur yang dapat / akan digunakan untuk mengirim paket. Teknik pemilihan jalur untuk mengirim paket di kenal sebagai teknik routing yang di jelaskan pada bagian yang lain.

Format IP address

Bentuk biner

IP address merupakan bilangan biner 32 bit yang dipisahkan oleh tanda pemisah berupa tanda titik setiap 8 bitnya. Tiap 8 bit ini disebut sebagai oktet. Bentuk IP address adalah sebagai berikut

xxxxxxxx . xxxxxxxx . xxxxxxxx . xxxxxxxx

Setiap simbol “x” dapat digantikan oleh angka 0 dan 1, misalnya sebagai berikut :

10000100 . 1011100 . 1111001 . 00000001

Bentuk dotted decimal

Notasi IP address dengan bilangan biner seperti diatas tidaklah mudah dibaca. Untuk membuatnya lebih mudah dibaca dan ditulis, IP address sering ditulis sebagai 4 bilangan desimal yang masing-masing dipisahkan oleh titik. Format penulisan seperti ini disebut “dotted-decimal notation” (notasi desimal bertitik). Setiap bilangan desimal tersebut merupakan nilai dari satu oktet (delapan bit) IP address. Gambar berikut memperlihatkan bagaimana sebuah IP address yang ditulis dengan notasi dotted-decimal:

Format IP address


IP address dan artinya

Jika dilihat dari bentuknya, IP address terdiri dari 4 buah bilangan biner 8 bit. Nilai terbesar dari bilangan biner 8 bit ialah 255 (= 2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0). Karena IP address terdiri dari 4 buah bilangan 8 bit, maka jumlah IP address yang tersedia ialah 255 x 255 x 255 x 255. IP address sebanyak ini harus dibagi bagikan ke seluruh pengguna jaringan internet di seluruh dunia.

Untuk mempermudah proses pembagiannya, IP address dikelompokkan dalam kelas kelas. Dasar pertimbangan pembagian IP address ke dalam kelas-kelas adalah untuk memudahkan pendistibusian pendaftaran IP address. Dengan memberikan beberapa blok IP address kepada ISP (Internet Service Provider) di suatu area diasumsikan penanganan komunitas lokal tersebut akan lebih baik, dibandingkan dengan jika setiap pemakai individual harus meminta IP address ke otoritas pusat, yaitu Internet Assigned Numbers Authority (IANA).

IP Address, Subnetmask dan Subnetting

Sebetulnya ada dua (2) aturan teknik subnetting di jaringan TCP/IP. Aturan yang awal adalah RFC 950, aturan yang baru dapat dilihat di RFC 1812.

Dunia Menurut RFC 950 – Cara Lama

Untuk IPv4, panjang total sebuah IP address adalah 32 bit. Hal ini tidak berlaku di IPv6 yang mempunyai address space lebih panjang lagi. Biasanya IP address ditulis dalam kumpulan empat (4) nomor merepresentasikan nilai desimal dari address byte (8 bit). Setiap nilai di pisahkan dengan titik, notasi ini dikenal sebagai dotted decimal (desimal bertitik). Contoh IP address adalah 202.159.123.23.

IP address sebetulnya mempunyai hirarki untuk keperluan routing, dan biasanya dibagi menjadi dua sub-kolom. Network Identifier (NET_ID) memberitahukan TCP/IP subnet yang tersambung ke Internet. NET_ID digunakan untuk routing antar jaringan, dalam dunia telepon kira-kira sama seperti kode negara, kode wilayah, kode kota, kode operator dari nomor pesawat telepon yang kita gunakan. Host Identifier (HOST_ID) menentukan host tertentu di dalam subnetwork; dalam dunia telepon kira-kira sama dengan nomor pesawat telepon.

Untuk memudahkan membayangkan konsep IP address, mari kita lihat persamaan konsep IP address dengan nomor telepon. Contoh, sebuah nomor telepon Jakarta 021 421-4567. NET_ID untuk telepon di Jakarta adalah 021, sedang HOST_ID atau pesawat teleponnya 421-4567. Tentunya jaringan telepon di Jakarta lumayan rumit dengan di layani dengan beberapa sentral telepon, khusus untuk pesawat 421-xxxx sebetulnya dilayani sentral telepon Cempaka Putih. Jadi sebetulnya kita dapat pecah lagi menjadi NET_ID 021, SUBNET_ID 421 dan HOST 4567. Dengan cara ini akan memudahkan bagi operator telepon untuk melakukan routing sambungan telepon antar sentral telepon. Setiap sentral telepon cukup mencocokan NET_ID atau SUBNET_ID saja untuk mencapai pesawat telepon yang di tuju. Dengan cara / konsep yang sama IP address bekerja.

Untuk memenuhi kebutuhan besar jaringan yang berbeda, IP mendefinisikan beberapa kelas alamat. Secara tradisional di perkenalkan kelas A, B dan C yang hanya berbeda pada panjang NET_ID:

  • Kelas A, NET_ID 8 bit, HOST_ID 24 bit. Kelas A untuk jaringan yang sangat besar dan dapat memberikan alamat bagi 16.777.214 (2^24 – 2) host per jaringan. Bit pertama dari IP address kelas A adalah 0 dan NET_ID menempati byte pertama. Hanya ada 128 (2^7) kemungkinan jaringan yang memiliki kelas A NET_ID. Pada kenyataannya, digit pertama kelas A adalah antara 1 sampai 126, dan hanya sekitar kurang lebih 90 kelas A yang telah dialokasikan.
  • Kelas B, NET_ID 16 bit, HOST_ID 16 bit. Kelas B di peruntukan bagi jaringan yang lumayan besar dan dapat memberikan alamat bagi 65.534 (2^16 – 2) host per jaringan. Dua bit pertama IP address kelas B adalah 10. IP address kelas B mempunyai nomor pertama 128 sampai 191, ada 16.384 (2^14) kemungkinan kelas B NET_ID. Kelas B sudah lama habis, sangat sulit sekali untuk memperoleh kelas B yang baru. Di Indonesia hanya ada 2-3 buah alokasi IP kelas B, satu diantaranya adalah ITB.
  • Kelas C, NET_ID 24 bit, HOST_ID 8 bit. Kelas C di peruntukan bagi jaringan yang kecil dan dapat memberikan alamat bagi 254 (2^8 -2) host per jaringan. Tiga bit pertama IP address kelas C adalah 110 mempunyai nomor pertama 192 sampai 223.Ada 2,097,152 (221) kemungkinan kelas C NET_ID dan umumnya alamat yang dialokasikan pada hari ini adalah Kelas (atau sub-Kelas C).

Sisa dua kelas address dialokasikan untuk fungsi khusus, dan tidak dialokasikan untuk host-host secara individu. Kelas D mempunyai nilai antara 224 sampai 239 (dengan 4 bit pertama bernilai 1110), dan digunakan untuk IP multicast, yaitu pengiriman sebuah datagram ke banyak mesin sekaligus, IANA mendokumentasikan daftar Internet Multicast Addresses (http://www.iana.org/assignments/multicast-addresses) . Kelas E mempunyai nilai antara 240 sampai 255 (denngan 4 bit pertama 1111), dan di reserved untuk keperluan experimental.

Untuk keperluan private network, dalam sebuah LAN atau IntraNet atau corporate network, ada beberapa NET_ID yang di reserved berdasarkan RFC 1918 (http://www.isi.edu/in-notes/rfc1918.txt) untuk jaringan private / jaringan tertutup dan tidak di routing ke Internet. IP address private biasanya digunakan dalam LAN atau IntraNet. Alamat / NET_ID tersebut adalah:

  • Satu (1) kelas A 10.0.0.0 (dulu dialokasikan untuk ARPANET)
  • Enam belas (16) kelas B 172.16.0.0 s/d 172.31.0.0.
  • 256 Kelas C 192.168.0.0 – 192.168.255.0.

Konsep pengalamatan yang lebih kompleks biasanya menggunakan subnetmask. Subnetmask digunakan untuk menandai porsi yang NET_ID dan HOST_ID terutama untuk keperluan routing. Subnet mask dapat ditulis dengan dotted decimal dan jumlah bit yang “1” menandakan NET_ID bit. Untuk berbagai kelas IP, subnet mask dan jumlah bit yang “1” untuk NET_ID adalah:

Byte Pertama Class Subnet Mask Jumlah Bit “1”
1-126 A 255.0.0.0 8
128-191 B 255.255.0.0 16
192-223 C 255.255.255.0 24

Tergantung konteks dan literature, subnetmask dapat ditulis dalam bentuk dotted decimal atau hanya nomor yang merepresentasikan jumlah bit “1” dari NET_ID. Contoh 202.154.107.25 255.255.255.0 dan 202.154.107.25/24 ke duanya mengacu pada kelas C NET_ID 202.154.107. Beberapa orang, bahkan, sering mengacu 24 bit NET_ID sebagai “slash-24” (/24).

Perlu di catat bahwa orang banyak menyebut sebuah subnet dengan netmask 255.255.255.0 sebagai jaringan kelas “C”. Padahal, kelas C yang benar hanya jaringan dengan byte pertama antara 192-223. Hal ini menjadi penting pada saat kita mulai melakukan subnetting. Bagian subnet dari IP address sebetulnya optional, dan jarang digunakan di jaringan kelas “C”. Umumnya, kita dapat membuat subnet dari jaringan apapun yang kita kontrol dengan cara yang valid yang kita mau. Yang sulit adalah untuk mengerti “mana yang valid”. Mari kita mulai dengan aturan dasarnya:

Pengalokasian IP address

Pengalokasian IP address pada dasarnya ialah proses memilih network ID dan host ID yang tepat untuk suatu jaringan. Tepat atau tidaknya konfigurasi ini tergantung dari tujuan yang hendak dicapai, yaitu mengalokasikan IP address seefisien mungkin.

Aturan dasar pemilihan network ID dan host ID

Ada beberapa aturan dasar dalam menentukan network ID (NET_ID) dan host ID (HOST_ID) yang hendak digunakan.. Aturan tersebut adalah:

  • NET_ID tidak boleh sama sama dengan 127. NET_ID 127 tidak dapat digunakan karena ia secara default digunakan untuk keperluan loopback. Loopback ialah IP address yang digunakan komputer untuk menunjuk dirinya sendiri.
  • NET_ID dan HOST_ID tidak boleh sama dengan 255 (seluruh bit di set 1). Seluruh bit dari Network ID dan Host ID tidak boleh semuanya di set 1. Jika hal ini dilakukan, NET_ID atau HOST_ID tersebut akan diartikan sebagai alamat broadcast. ID broadcast merupakan alamat yang mewakili seluruh anggota jaringan. Pengiriman paket ke alamat broadcast akan menyebabkan paket ini didengarkan oleh seluruh anggota network tersebut.
  • NET_ID dan HOST_ID tidak boleh 0 (nol). NET_ID dan HOST_ID tidak boleh semua bit nya 0 (nol). IP address dengan host ID 0 diartikan sebagai alamat network. Alamat network ialah alamat yang digunakan untuk menunjuk suatu jaringan, dan tidak menunjukkan suatu host
  • HOST_ID harus unik dalam satu network. Dalam satu network, tidak boleh ada dua host yang memiliki HOST_ID yang sama.
  • NET_ID harus sama di semua mesin dalam satu network. Jika tidak, maka paket yang ditujukan untuk NET_ID (subnet) yang lain tidak akan keluar dari subnet, karena mesin akan menyangka bahwa paket tersebut ditujukan untuk segmen jaringan lokal. Perilaku ini perlu untuk di pahami; router tidak akan secara automatis meneruskan / merelay paket, host harus memberikan paket ke router.
  • Tidak boleh ada dua NET_ID yang mempunyai host address yang sama.

Hal ini bisa sangat pelik jika subnetting dilakukan dengan cara yang tidak biasa.


Contoh konfigurasi Valid dan Tidak Valid

Konfigurasi Valid

Konfigurasi Valid

Konfigurasi Yang Tidak Valid

Konfigurasi in tidak valid, karena subnet di kedua sisi router persis sama
Konfigurasi ini tidak valid karena subnet yang sama ada di ke dua sisi router. Perhatikan baik-baik subnetmask!
Konfigurasi ini tidak valid, karena ada host yang sama dapat “valid” di ke dua subnet, contoh, 192.168.2.231. Walaupun subnet di sebelah kanan valid, tapi subnet di sebelah kiri merupakan bagian kecil dari subnet di sebelah kanan.

Kecuali! Overlap address yang didemikian biasanya tidak di ijinkan antara dua subnet, kecuali kalau router dapat di konfigurasi untuk “berpura-pura” mengetahui bahwa semua alamat 192.168.2.0 adalah di sebelah kanan dari router. Agar host di sebelah kiri dapat berkomunikasi, maka perlu dilakukan “proxy arp” di sisi router. Yang pada dasarnya, router menjadi perantara ARP bagi host di sebelah kiri dari semua host di sebelah kanan. Konfigurasi ini di kenal sebagai “stub subnet”.

Jika menggunakan subnetmask 255.255.0.0, maka dua byte pertama menunjukan network tempat kita berada, sedang dua byte yang ke dua menunjukan host di jaringan. Tapi sangat jarang kita melihat sebuah segmen jaringan dengan 65.534 host di dalamnya. Kita hanya akan melihat masking dengan sekian banyak host di backbone Internet, tapi jarang di sisi user / corporate network.

Jika menggunakan subnet mask 255.255.255.0, tiga byte pertama menunjukan network. Byte terakhir berisi address host dari .1 sampai .254.

Jika menggunakan subnet mask 255.255.255.128, kita dapat memenggal jaringan menjadi dua bagian. Bagian pertama mempunyai address dari .1 sampai .126. Jaringan ke dua mempunyai address dari .129 sampai .254. Perlu di catat bahwa di jaringan kelas C yang benar, kita tidak dapat menggunakan subnet yang atas, karena bit di bagian subnet (satu bit di kelas C) bernilai satu (aturan dasar yang ke empat).

Dengan menggunakan subnetmask 255.255.255.192, kita dapat memenggal jaringan menjadi empat bagian, dengan masing-masing 64 host (62 host yang dapat digunakan). Subnetwork satu meliputi address .1 sampai .62, subnetwork dua meliputi address .65 sampai .126, subnetwork tiga termasuk .129 sampai .190, dan subnetwork empat meliputi host .193 sampai .254. Dalam sebuah jaringan kelas C, subnetwhork empat tidak valid.

Pada dasarnya kita tidak dapat sembarangan memenggal sebuah jaringan dan meletakan satu segmen ke segmen lain; yang paling maksimum dapat kita lakukan adalah memotongnya menjadi, setengah, seperempat, seperdelapan, atau seper enambelas. Perhatikan penggunaan bilangan pangkat dua pada bilangan pembagi. Hal ini terjadi karena pada dasarnya kita menggeser posisi bit host dari bagian host address.

Konfigurasi Network Interface

Setelah IP address, netmask dan broadcast address didefiniskan, ketiganya harus di konfigurasikan di komputer yang bersangkutan. Pada sistem operasi Linux, biasanya digunakan perintah ifconfig untuk mengkonfigurasi interface.

Perintah ifconfig digunakan untuk mengecek atau mengkonfigurasi sebuah network interface. Yang dapat dikonfigurasi oleh perintah ini antara lain:

  • IP address
  • Subnet Mask
  • Broadcast address

Berbagai parameter interface yang dapat di definisikan menggunakan perintah ifconfig dapat diketahui melalui perintah ifconfig –h. Format dari perintah ifconfig yang sering kita gunakan, adalah:

# ifconfig [nama_interface] [ip-address] netmask [netmask] broadcast [broadcast address]

Pada perintah diatas, nama_interface ialah nama yang digunakan oleh Linux untuk merujuk ke suatu network interface tertentu. Biasanya untuk LAN card, digunakan notasi eth0, eth1, dst. Untuk dial-up, digunakan notasi ppp0, ppp1, dst.

Biasanya interface LAN yang ada di komputer akan secara automatis terdeteksi. Untuk mencek nama interface yang terdeteksi dapat dilakukan menggunakan perintah ifconfig tanpa apa-apa:

[root@yc0mlc ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:02:B3:35:42:71
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::202:b3ff:fe35:4271/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:58142 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48520 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10382621 (9.9 MiB)  TX bytes:10064453 (9.5 MiB) 

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:9992 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9992 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4115469 (3.9 MiB)  TX bytes:4115469 (3.9 MiB)

[root@yc0mlc ~]#

Mendefinisikan interface

Sebagai contoh, perintah ifconfig berikut ini digunakan untuk mengkonfigurasi interface "eth0" pada suatu host dengan IP address 192.168.0.1 dan netmask 255.255.255.0

# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255

Seringkali sebetulnya netmask & broadcast address tidak perlu kita isi, kita netmask dan broadcast address yang digunakan adalah standard. Jika semua standard, tidak ada yang khusus / aneh, maka kita cukup menulis:

# ifconfig eth0 192.168.0.1

setelah dikonfigurasi, kita dapat melihat interface kita ini menggunakan perintah

# ifconfig eth0

Contoh

[root@yc0mlc ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:02:B3:35:42:71
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::202:b3ff:fe35:4271/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:58728 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49034 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10509614 (10.0 MiB)  TX bytes:10137152 (9.6 MiB)

Berdasarkan hasil perintah ini, terlihat bahwa interface eth0 sedang operasional (UP), terhubung ke jaringan yang mendukung mode BROADCAST (dalam hal ini ethernet), mempunyai alamat IPv6, mendukung mode pengalamatan MULTICAST. Maksimum panjang paket / Maximum Transmission Unit (MTU) adalah 1500 byte.


Menyalakan dan mematikan interface

ifconfig miliki dua argument, yaitu "up" dan "down" yang berguna untuk menandai sebuah interface. Argument "up" digunakan untuk menandai interface tersebut sedang operasional, sehingga ia siap untuk digunakan. Argument "down"sebaliknya, menandai network interface sedang dalam keadaan tidak operasional sehingga ia tak dapat digunakan.

Perintah "down" ini dipakai jika kita ingin melakukan konfigurasi ulang terhadap sebuah interface. Beberapa parameter konfigurasi, seperti IP Address misalnya, tak dapat diubah kecuali jika interfacenya sedang dalam keadaan "down". sehingga untuk melakukan perubahan IP Address, mula-mula interface tersebut di "down" dahulu, dilakukan rekonfigurasi, baru kemudian ia di "up" kembali. Contoh

# ifconfig eth0 down
# ifconfig eth0 192.168.0.100 up

Setelah perintah ini, interface eth0 beroperasi dengan IP Address yang baru.

Dunia Menurut RFC 1812 – Cara Baru

Oh ya, sebagian dari apa yang anda pelajari di atas menjadi obsolete sejak tahun 1995. Dengan RFC 1812, semua menjadi berubah, terutama untuk konsep peng-kelas-an IP address.

Penggunaan alamat dengan class-based atau classfull dalam IP adalah salah satu sebab mengapa kita dengan cepat kehabisan IP address dan hal ini menjadi perhatian sejak awal 1990. Bayangkan sebuah organisasi yang membutuhkan 1000 IP address. Sebuah kelas C jelas tidak mencukupi, oleh karena itu sebuah kelas B akan di berikan. Tapi kelas B mempunyai alokasi 64.000 address, oleh karena itu 63.000 address terbuang percuma.

Cara lain adalah mengalokasikan organisasi ini empat (4) buah kelas C, seperti 192.168.128.0, 192.168.129.0, 192.168.130.0, dan 192.168.131.0. Dengan menggunakan 22-bit subnetmask 255.255.252.0 (atau “/22”) untuk me-routing “blok” IP tersebut, bagian network / NET_ID dari organisasi ini adalah 192.168..128.0. Dalam contoh ini, informasi routing untuk ke empat kelas C address dapat dilakukan hanya dengan satu entry di table routing.

Perubahan yang paling terasa dengan RFC 1812 adalah konsep Classless Inter-Domain Routing (CIDR). Penggunaan subnetmask yang variable besarnya di kenal sebagai Classless Inter-Domain Routing (CIDR) di terangkan di RFC 1518 (http://www.isi.edu/in-notes/rfc1518.txt) dan RFC 1519 (http://www.isi.edu/in-notes/rfc1519.txt).

Dengan CIDR, konsep pemisahan antara “network” dan “subnet” menjadi ketinggalan jaman, dan di ubah dengan skema peng-address-an “classess” sehingga proses “subnet” dapat dilakukan dengan lebih bebas tanpa perlu memperhitungkan “class”. Dengan menghilangkan bagian subnet, dan liberalisasi network prefix / NET_ID, tidak perlu lagi kita melihat apakah bit di subnet nol semua atau tidak. Dengan kata lain, kita tidak lagi kehilangan subnet jika kita ingin memotong sebuah jaringan kelas “C”. Kita juga dapat menggabungkan beberapa jaringan kelas “C” menjadi sebuah jaringan dengan prefix lebih kecil dari 24 bit.

Sebagai contoh, kita dapat menggabungkan yang dulunya jaringan kelas C 192.168.2.0 dan 192.168.3.0 menjadi sebuah subnet dengan total address / host 510, dengan menggunakan netmask 255.255.254.0. Apa yang kita lakukan sebetulnya adalah mengubah bit terakhir dari byte ke tiga menjadi bagian dari “host address”, dan “network prefix / NET_ID” menjadi 23 bit (2 byte dan 7 bit).

Dua jaringan yang di kaitkan harus “nyambung addressnya”, dan byte ke tiga di nomor network harus genap. Konsekuensinya, kita tidak dapat menggabungkan network 192.168.2.0 dengan 192.168.5.0. Kita juga tidak dapat menggabungkan jaringan 192.168.11.0 dan 192.168.12.0. Kita dapat menggunakan aturan yang sama untuk menggabungkan empat kelas C yang “nyambung addressnya”, dengan byte ke tiga dari nomor network yang terendah harus kelipatan empat. Konsep CIDR dapat di kembangkan lebih lanjut. CIDR merupakan kontribusi yang sangat penting kepada Internet karena dia dapat mereduksi tabel routing Internet dengan sangat drastis. Pada hari ini, IP address tidak di assigned berdasarkan first-come, first-serve, tapi sudah di pre-alokasikan oleh berbagai authoritas penomoran di seluruh dunia. Biasanya authoritas penomoran akan mengalokasikan blok dari IP address ke ISP yang besar (first tier); blok ini di sebut sebagai CIDR blok. Pelanggan ISP, termasuk ISP yang terkait ke first tier ISP akan memperoleh alokasi IP dengan NET_ID yang merupakan sub-bagian dari CIDR blok ISP tersebut.

Effek lain dari RFC 1812 dan CIDR routing terutama di jaringan yang dekat ke backbone, dan kebanyakan usaha dilakukan untuk mengurangi besar, atau berkembangnya, tabel routing di backbone router agar muat di memory mereka.

Misalnya ISP onno-net mempunyai alokasi IP address dengan CIDR blok dengan 256 kelas C dengan alokasi 192.168.0.0 s/d 192.168.255.0. Lebar alokasi ini dapat di representasikan dalam sebuah entry di tabel routing 192.168.0.0/16. Dengan cara ini, sebuah paket akan sampai ke ISP onno-net dan akan di routing ke tujuan yang benar.

Mari kita lanjutkan pembahasan & menjadi lebih menarik. Dengan mengecilkan subnetmask, maka sebuah NET_ID sebetulnya dapat mengidentifikasi banyak alamat (dengan tabel routing yang kecil), kita dapat memperlebar subnetmask untuk mengalokasikan alamat IP yang lebih kecil dari kelas C.

Dengan semakin menipisnya kelas C, pengguna dalam tekanan untuk menerima sub-Class C address. Sebuah organisasi yang hanya mempunyai beberapa server, mungkin hanya akan memperoleh alokasi 64 IP address daripada penuh 256 IP address. Standard subnetmask untuk kelas C adalah 24 bit, yang menghasilkan 24 bit NET_ID dan 8 bit HOST_ID. Jika kita menggunakan /26 mask (255.255.255.192) , kita dapat mengalokasikan sebuah kelas C ke empat (4) pengguna yang berbeda, dengan masing-masing memperoleh ¼ dari total kelas C dengan 6 bit HOST_ID. Contoh, IP address 202.172.106.0 dapat dialokasikan sebagai berikut:

Bagian network / NET_ID HOST_ID HOST_ID Valid
202.172.106.0 0-63 1-62
202.172.106.64 64-127 65-126
202.172.106.128 128-191 129-190
202.172.106.192 192-255 193-254

Perhatikan bahwa dalam sebuah kelas C yang biasa, kita biasanya akan kehilangan dua (2) IP address, yaitu 0 dan 255, karena semua alamat NOL dan semua alamat SATU, tidak dialokasikan sebagai HOST_ID. Dalam penggunaan di atas, kita akan kehilangan delapan (8) IP address, karena 0, 64, 128 dan 192 semua NOL HOST_ID, dan 63, 127, 191 dan 255 mempunyai semua SATU HOST_ID. Setiap pelanggan, akan memperoleh 62 IP address yang dapat dialokasikan ke host.

Tekanan pada alokasi kelas C terus bertambah, pada hari ini organisasi harus bisa menjustifikasi mengapa mereka memerlukan banyak address padahal mungkin hanya butuh 3 address saja untuk server mereka. Kalaupun hanya berupa workstation biasa saja, maka IP address yang dibutuhkan dapat di ambil dari segelintir IP address yang digunakan secara bergantian.


Subnetting, Bit By Bit

Dalam pengalaman saya memberikan ceramah, intuisi bit ini sangat lemah di banyak anak-anak muda di Indonesia. Saya memasukan keterangan ini untuk menambah intuisi digital ke anak-anak muda Indonesia agar lebih menghayati dunia komputer.

Aritmatika Biner

Seperti kita ketahui bahwa komputer merepresentasikan semua angka sebagai “bit”, atau “nol dan satu”. Komputer bekerja dengan group delapan bit (0 atau 1) yang biasa di sebut “byte”. Kebanyakan desktop PC akan memproses bilangan empat (4) byte, atau 32 bit, dalam satu saat. Oleh karena itu prosesor 80386 sampai Pentium IV di kenal sebagai prosesor 32 bit. Mari kita ingat kembali waktu guru kita di Sekolah Dasar menjelaskan tentang sistem penomoran desimal. Di sebut desimal (asal kata Latin – decima – yang berarti sepuluh bagian), karena menggunakan angka dari nol hingga sembilan. Jika kita membutuhkan angka yang besar maka kita harus menambahkan tambahan digit. Kemudian di kenalkan konsep satuan, puluhan, ratusan, ribuan dsb. Sebagai contoh, 45678 mempunyai

4 Puluhan ribu
5 Ribuan
6 Ratusan
7 Puluhan
8 Satuan

Karena komputer hanya bekerja dengan bilangan biner, dan hanya mempunyai “0” dan “1” untuk bekerja, mereka harus menambahkan digit baru jika mereka melebihi nomor satu. Dalam bilangan desimal, kita mengenal pangkat dari sepuluh, yaitu:

10^0=1,
10^1=10,
10^2=100,
10^3=1000, dst.

Dalam bilangan biner, kita mengenal pangkat dari dua, yaitu:

2^0=1 (1 biner),
2^1=2 (10 biner),
2^2=4 (100 biner),
2^3=8 (1000 biner),
2^4=16 (10000 biner),
2^5=32 (100000 biner),
2^6=64 (1000000 biner),
2^7=128 (10000000 biner),
2^8=256 (100000000 biner), dst. 

Oleh karenanya bilangan 45678 desimal, dalam bilangan biner akan di representasikan sebagai berikut.

32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1
1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0

Atau dalam bentuk bilangan biner adalah 1011001001101110 yang merupakan jumlah dari 32768 plus 8192 plus 4096 plus 512 plus 64 plus 32 plus 8 plus 4 plus 2 sama dengan 45678. Menghitung sampai dua puluh dalam biner aqdalah sebagai berikut

Decimal Binary Decimal Binary
1 1 11 1011
2 10 12 1100
3 11 13 1101
4 100 14 1110
5 101 15 1111
6 110 16 10000
7 111 17 10001
8 1000 18 10010
9 1001 19 10011
10 1010 20 10100

IP address versi 4 adalah empat (4) byte, masing-masing delapan (8) bit, di representasikan dengan angka desimal dengan titik diantaranya. Contoh:

10.5.72.230

di representasikan dalam angka biner 32-bit sebagai

00001010.00000101.01001000.11100110.

Bayangkan, 232 adalah 4294967296, atau lebih sedikit dari empat milyar alamat yang tersedia untuk digunakan di dunia. Tapi mengapa kita akan kekurangan IP address? Perkiraan terakhir, kita akan kekurangan IP address sekitar tahun 2025. Ternyata masalah utama-nya adalah untuk mengetahui dimana lokasi empat milyar host cukup mustahil dengan menggunakan peralatan yang ada pada hari ini.

Teknik routing yang digunakan terlalu sederhana, dengan membagi IP address menjadi “class”. Dengan IP address yang byte pertama antara 1-126 termasuk kelas A dengan 16,777,214 (224-2) host. Kelas A mempunyai 8 bit bagian network (NET_ID), dan 24 bit bagian host (HOST_ID). IP address dengna byte pertama 128-191 termasuk kelas B dengan 65,534 (216-2) host, dan ada 16,384 network kelas B (dari (192-128)*256). Dengna 16 bit bagian network (NET_ID), dan 16 bit bagian host (HOST_ID). Network kelas C, mempunyai byte pertama antara 192-223, dengan 24 bit bagian network (NET_ID), dan 8 bit bagian host (HOST_ID). Semua dapat secara sederhana di tuliskan sebagai berikut:

Kelas Network bit Network Mask Network Mask (biner)
A 8 255.0.0.0 11111111.00000000.00000000.00000000
B 16 255.255.0.0 11111111.11111111.00000000.00000000
C 24 255.255.255.0 11111111.11111111.11111111.00000000

Tentunya tidak ada satu orang network administrator-pun di dunia yang bersedia meng-admin-i 16,777,214 dalam sebuah segmen jaringan. Network admin biasanya akan memotong jaringan mereka dengan melakukan subnetting. Ujungnya adalah di alokasi multiple kelas C untuk memenuhi kebutuhan sebuah jaringan.

Logika Boolean dan Operasi Biner “AND”

Boolean di ambil dari nama seorang matematikawan abad ke sembilan belas George Boole. Logika boolean membentuk sebuah teknik aljabar yang hanya mempunyai nilai BETUL (1) atau SALAH (0). Semua operasi matematika yang dilakukan oleh komputer menggunakan aljabar boole ini. Ada beberapa operasi dasar, yaitu:

Operasi Hasil Contoh
AND Benar jika A AND B adalah benar 1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0
OR Benar jika A OR B adalah benar 1 OR 1 = 1
1 OR 0 = 1
0 OR 1 = 1
0 OR 0 = 0
XOR (eXclusive Or) Benar jika salah satu A atau B adalah benar 1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0
NOT Kebalikan dari A NOT 1 = 0
NOT 0 = 1

Operasi “AND” sangat sering digunakan di operasi jaringan terutama jika kita ingin melihat hanya bit tertentu dari byte yang ada – prosedur ini biasa di sebut “masking”. Teknik masking sebetulnya sering digunakan oleh guru yang memberikan ujian pilihan berganda yang jawabannya dapat langsung di periksa dengan mudah dengan meletakan kertas “mask” yang sudah di bolong-bolongi. Teknik masking ini digunakan di komputer untuk menentukan bagian network (NET_ID), dan bagian host (HOST_ID) dari sebuah IP address.

Subnet “Mask”

Subnet mask digunakan untuk mengetahui dari sebuah IP address mana yang merepresentasikan jaringan tempat networ kita berada (NET_ID), dan mana yang merupakan komputer ID yang unik (HOST_ID).

Alasan mengapa digunakan kata “mask”, karena sebetulnya proses netmask adalah “menutup” (atau “masking”) bagian yang kita tidak perlu.

Analogi sederhananya dapat kita lihat pada nomor telepon, misalnya, 021 420-4565. 021 merepresentasikan kode area Jakarta, sedang 420-4565 merepresentasikan nomor telepon yang bersangkutan.

Subnet mask memungkinkan kita untuk menspesifikasikan berapa panjang / berapa angka kode area (bagian network / NET_ID) yang akan kita gunakan. Sisanya adalah nomor telepon dari pelanggan (HOST_ID).

Jadi, pada dasarnya proses subnetmask akan membantu proses keputusan routing yang pertama kali yang akan dilakukan oleh PC kita, apakah perlu paket tersebut dikirim ke router atau tidak. Hanya keputusan tersebut yang dibutuhkan dalam subnetmask. Ada empat langkah yang harus dilakukan, yaitu:

  1. Konversikan IP address ke bilangan biner. IP address yang berupa empat bilangan dotted-desimal di konversikan ke bilangan biner 32 bit. Memang menyebalkan, baik bagi manusia maupun komputer. Tapi komputer biasanya tidak akan komplain.
  2. Lakukan operasi AND menggunakan source subnetmask terhadap source IP address. Kita dapat menentukan bagian network (NET_ID) dari host IP address, karena bagian host (HOST_ID) menjadi nol semua.
  3. Lakukan operasi AND menggunakan source subnetmask terhadap destination IP address. Kita memang tidak mengetahui subnetmask dari destination IP address, oleh karenanya kita menggunakan subnetmask dari source untuk melakukan masking. Kita akan memperoleh “bagian network” (NET_ID) dari destination IP address berdasarkan source subnetmask.
  4. Bandingkan bagian network (NET_ID) dari source IP address dan destination IP address. Jika sama, maka ke dua mesin yang akan berhubungan berada di jaringan / network yang sama dan paket akan dikirim langsung ke host tujuan melalui jaringan LAN. Jika berbeda, dan kemungkinan besar host tidak tahu dimana lokasi mesin yang dituju, maka paket akan di kirim ke router / default gateway, dengan harapan router / gateway mengetahui kemana paket harus dikirim.

Mari kita lihat contoh berikut, yang berusaha menggabungkan empat network kelas C menjadi satu kesatuan. Ingat-ingat aritmatika biner!!

Network Network, dalam Biner
192.168.8.0 11000000.10101000.00001000.00000000
192.168.9.0 11000000.10101000.00001001.00000000
192.168.10.0 11000000.10101000.00001010.00000000
192.168.11.0 11000000.10101000.00001011.00000000
Mask, 255.255.252.0 11111111.11111111.11111100.00000000

Perhatikan baik-baik bahwa semua bit diatas subnetmask yang telah di highlight bold semua mempunyai nilai adalah sama, yaitu,

11000000.10101000.000010

Oleh karena itu, ke empat network kelas C ini dapat menjadi satu kesatuan dengan netmask 255.255.252.0. Teknik ini di kenal dengan nama “CIDR Routing”.

Selanjutnya mari kita lihat contoh penggabungan empat network kelas C yang salah.

Network Network, dalam Biner
192.168.10.0 11000000.10101000.00001010.00000000
192.168.11.0 11000000.10101000.00001011.00000000
192.168.12.0 11000000.10101000.00001100.00000000
192.168.13.0 11000000.10101000.00001101.00000000
Mask, 255.255.252.0 11111111.11111111.11111100.00000000

Perhatikan pada bit ke 22 untuk 192.168.10.0 dan 192.168.11.0 mempunyai nilai 0, sedang untuk 192.168.12.0 dan 192.168.13.0 mempunyai nilai 1. Ada bit di bagian network (NET_ID) yang tidak sama di IP address tersebut. Oleh karena itu, 192.168.10.0 s/d 192.168.13.0 tidak dapat di gabungkan menjadi satu kesatuan.

Notasi “Slash”

Subnet mask kadang di berikan menggunakan notasi slash “/” dan jumlah bit “satu” yang ada di netmask. Contoh, sebuah network 192.168.1.0 dengan subnetmask 255.255.255.0 dapat di tulis sebagai 192.168.1.0/24 karena 255.255.255.0 mempunyai 24 buah bit satu yang di ikuti oleh delapan (8) bit nol.

Alternatif subnetmask sebetulnya tidak banyak karena bentuk / konfigurasi subnetmask sangat standard dengan SATU di awal dan NOL di akhir. Untuk memudahkan para praktisi di lapangan, terlampir adalag tabel berisi daftar subnetmask yang sering digunakan:

11111111.11111111.11111111.11111100	/30	255.255.255.252
11111111.11111111.11111111.11111000	/29	255.255.255.248
11111111.11111111.11111111.11110000	/28	255.255.255.240
11111111.11111111.11111111.11100000	/27	255.255.255.224
11111111.11111111.11111111.11000000	/26	255.255.255.192
11111111.11111111.11111111.10000000	/25	255.255.255.128
11111111.11111111.11111111.00000000	/24	255.255.255.0
11111111.11111111.11111110.00000000	/23	255.255.254.0
11111111.11111111.11111100.00000000	/22	255.255.252.0 

Tabel berikut memperlihatkan, notasi slash, netmask, jumlah host yang lebih lengkap.

Slash Netmask Jumlah host
/8 255.0.0.0 16,777,215 Dulu di sebut kelas A
/16 255.255.0.0 65,535 Dulu di sebut kelas B
/17 255.255.128.0 32,767
/18 255.255.192.0 16,383
/19 255.255.224.0 8,191
/20 255.255.240.0 4,095
/21 255.255.248.0 2,047
/22 255.255.252.0 1,023
/23 255.255.254.0 511
/24 255.255.255.0 255 Dulu di sebut kelas C
/25 255.255.255.128 127
/26 255.255.255.192 63
/27 255.255.255.224 31
/28 255.255.255.240 15
/29 255.255.255.248 7
/30 255.255.255.252 3

Perhatikan bahwa tidak mungkin ada subnet diluar angka 255, 254, 252, 248, 240, 224, 192, 128, dan 0.

Trik Menghitung Subnet

Semoga anda semua sekarang memahami filosofi aritmatika biner di balik perhitungan subnetmask. Pada bagian ini, akan di terangkan beberapa trik perhitungan subnet.

Untuk menyederhanakan masalah, ada baiknya kita fokus pada subnet mask yang dimulai dengan “255.255.255”, yang sebetulnya cukup untuk sebuah jaringan yang kecil.

Hanya ada tujuh (7) nilai yang mungkin di oktet terakhir dari subnet mask, yaitu, 0, 192, 128, 224, 240, 248, dan 252.

Jumlah IP address dapat diketahui dengan mudah dengan mengurangkan nilai subnet mask oktet terakhir dari 256. Contoh subnetmask 255.255.255.224 mempunyai 32 host (dari 256-224=32).

Kita juga dapat menentukan ada berapa subnet yang akan di peroleh dari subnetmask tertentu dengan cara membagai 256 dengan jumlah host yang ada di subnet. Contoh subnetmask 255.255.255.224 yang mempunyai 32 host, maka jumlah subnet yang akan di peroleh dari sebuah network kelas C adalah 8 buah (dari 256/32=8).Tentunya, ini semua hanya berlaku jika angka-nya adalah kelipatan dua, seperti, 1, 2, 4, 8, 16, 32, 64, atau 128.

Jika bagian network / network prefix / NET_ID lebih besar dari kelas C. Kita dapat mengetahui berapa banyak network kelas C yang ada, dengan cara mengurangkan byte ke tiga dari subnetmask dengan 256.Contoh subnetmask 255.255.240.0 merupakan kumpulan dari 16 network kelas C (dari 256-240=16).

Trik Mengetahui Range Address di Jaringan

Jika seseorang memberikan alokasi IP address 97.158.253.28 dengan subnet mask 255.255.255.248, bagaimana kita menentukan network address, broadcast address, atau batas dari address jaringan kita? Berikut adalah langkah yang dapat dilakukan,

Teknik perhitungan secara manual:

  1. Kurangkan oktet terakhir dari subnetmask dari 256 untuk memberikan jumlah IP address yang ada di subnet. (256 - 248) = 8
  2. Bagi oktet terakhir dari IP address dengan hasil dari langkah 1 dan buang sisanya (28/8 = 3). Secara teoritis, ini akan memberikan kita jumlah subnet di bawah IP address kita yang sama besarnya dengan subnet yang kita miliki.
  3. Kalikan hasil langkah 2 ini dengan hasil langkah 1, untuk memperoleh network address (8 x 3 = 24). Bayangkan sebagai “Ini adalah subnet ke tiga dengan delapan (8) address di dalamnya”. Network address juga langsung dapat diketahui sebagai 97.158.253.24.
  4. Broadcast address dapat diperoleh dari hasil langkah 3 di tambah hasil langkah 1 di kurangi 1. (24 + 8 -1 = 31). Bayangkah “Broadcast address adalah network address di tambah jumlah IP address di subnet di kurangi satu (1)”. Broadcast address menjadi 97.158.253.31.

Mari kita lakukan ini untuk 192.168.3.56 dengan netmask 255.255.255.224

  1. 256 - 224 = 32
  2. 56 / 32 = 1
  3. 32 x 1 = 32. Maka, network base address adalah 192.168.3.32
  4. 32 + 32 - 1 = 63. Maka, broadcast address adalah 192.168.3.63

Mari kita lakukan ini untuk 10.0.0.75 dengan netmask 255.255.255.240

  1. 256 - 240 = 16
  2. 75 / 16 = 4
  3. 16 x 4 = 64. Maka, network base address adalah 10.0.0.64
  4. 64 + 16 -1 = 79. Maka, broadcast address adalah 10.0.0.79

Sebagai catatan tambahan:

Oktet terakhir dari network base address harus dapat dibagi oleh “256 dikurangi oktet terakhir dari subnet” dan tidak boleh ada sisa.

Jika kita harus melakukan subnetting untuk sebuah kelas IP address yang besar, ada baiknya menggunakan spread sheet agat tidak terjadi overlapping subnet. Perhitungan di atas hanya untuk subnetmask yang di mulai dengan “255.255.255”.

Penghematan IP address NAT dan PAT

Sekumpulan IP address dapat di share untuk banyak mesin menggunakan mekanisme yang di sebut Network Address Translation (NAT). NAT, diterangkan di RFC 1631 (http://www.isi.edu/in-notes/rfc1631.txt). Hari ini, umumnya di implementasi NAT dilakukan di proxy server, host maupun router.

Keuntungan sisi sambungan global NAT & IP private,

  • Dapat dikenali dengan IP address global yang unik di dalam dan di luar organisasi / corporate.
  • Host di dalam sebuah organisasi dapat mempunyai akses langsung ke host internal dan host Internet.

Keuntungan sisi sambungan private, Host di dalam organisasi mempunyai akses direct ke host dalam host internal saja, tidak ke host di Internet. Contoh, mesin ATM, cash register dll. Proxy gateway dibutuhkan untuk mengakses host di Internet. Corporate / IntraNet bertanggung jawab agar routing yang ada di filter agar IP private tidak bocor ke Internet. Keuntungannya, membutuhkan lebih sedikit IP global dan aman bagi host di dalam jaringan private / IntraNet. Kekurangannya, perlu penomoran semua host jika di kemudian hari ingin agar semua host tersambung ke Internet. Masalah ini dapat dengan mudah di selesaikan dengan teknik Dynamic Host Configuration Protocol (DHCP).

Cara ini berjalan dengan baik karena NAT akan berfungsi sebagai server DHCP untuk jaringan IntraNet dan mengalokasikan IP address private sesuai RFC 1918 (http://www.isi.edu/in-notes/rfc1918.txt). Alokasi IP private mempunyai NET_ID sebagai berikut,

Satu (1) kelas A 10.0.0.0 (dulu dialokasikan untuk ARPANET) Enam belas (16) kelas B 172.16.0.0 s/d 172.31.0.0. 256 Kelas C 192.168.0.0 – 192.168.255.0.



Bayangkan sebuah skenario, dimana pengguna yang jumlah-nya banyak mengakses Web di Internet. NAT Server akan mentranslasikan IP address private dari host (192.168.0.30) ke publik IP 202.159.128.123 yang di peroleh dari ISP. Perhatikan dalam paket yang dikirim Source IP address berubah dari 192.168.0.30 di IntraNet, menjadi 202.159.128.123 di jaringan Internet. Dalam konsep NAT yang sebenarnya, jumlah mesin yang dapat mengakses ke Internet adalah sejumlah IP address publik yang di NAT-kan.

Konsep NAT dapat dikembangkan lebih jauh dengan melakukan Port Address Translation (PAT) atau Network Adrdess Port Translation (NAPT), konsep ini memungkinkan satu (1) / sebuah IP address publik digunakan bersama-sama oleh banyak mesin klien jaringan LAN yang berada di balik server NAPT. Sayangnya, kebanyakan operator sudah salah kaprah, karena konsep NAT & NAPT disamakan saja. Jadi sering yang dimaksud administrator sebagai NAT adalah NAPT.

Nomor port digunakan oleh protokol lapisan yang lebih tinggi (seperti TCP dan UDP) untuk mengidentifikasi aplikasi di lapisan aplikasi. Sebuah sambungan TCP biasanya dapat di identifikasi secara unik dari empat nilai, yaitu, IP address source, port source, IP address tujuan, port tujuan. Port server biasanya standard, dan umumnya mempunyai nilai kurang dari 1024. Sedang klien mempunyai nilai bebas yang lebih besar dari 1023.




Klien yang mengakses Internet dapat saja beberapa buah. Server yang diakses di Internet-pun dapat berapa buah sekaligus, misalnya:

Klien dengan private IP address 192.168.0.30 port 130003 ingin berhubungan dengan Web server di 202.153.10.2 port 80. Klien dengan private IP 192.168.0.45 port 22546 ingin berhubungan dengan Web server di 203.153.10.2 port 80. Klien dengan private IP 192.168.0.77 port 7865 ingin upload file menggunakan FTP ke 202.44.67.45 port 21.

Dengan menggunakan mekanisme PAT, maka router yang menjalankan PAT software akan mengganti source IP address dengan IP address publik yang ada di router tsb, misalnya, 202.159.128.123. Untuk membedakan ke tiga paket yang ditujukan ke klien yang berbeda, dilakukan dengan cara membedakan nomor port asalnya saja. Secara sederhana proses mapping / pemetaan IP address:Port secara sederhana di rekam dalam tabel di software NAPT yang di operasikan di router.


NAT/PAT Tabel

Destination IP:Port Public IP:Port Private Source IP:Port 202.153.10.2:80 202.159.128.123:4022 192.168.0.30:13003 202.153.10.2:80 202.159.128.123:4560 192.168.0.45:22546 202.44.67.45:21 202.159.128.123:5876 192.168.0.77:7865

Baik NAT maupun PAT dapat beroperasi dengan baik, teknik ini membutuhkan agar setiap paket harus di buffered (ditahan), di diassembling dan diberikan IP address baru, dihitung ulang cek sum-nya, untuk kemudian di reassembling dan di kirim kembali. Khususnya untuk PAT, nomor port yang baru dipasang untuk menggantikan nomor port paket yang orisinil ceksum yang baru dihitung untuk lapisan protokol di atas. Oleh karenanya NAT, terutama PAT, akan menyebabkan turunnya performance jaringan jika dilakukan di mesin yang kecil. Salah satu keuntungan NAT adalah membuat IP renumbering menjadi tidak masalah. Jika pelanggan mempunyai IP NET_ID yang memperoleh CIDR blok dari ISP-nya, jika mereka berpindah ISP dan mengubah CIDR bloknya. Maka dengan menggunakan NAT, hanya server yang perlu di renumber sedang komputer lainnya tidak perlu di renumber.

Teknik implementasi NAPT di Linux RedHat Fedora Core 4 sangat mudah dan dapat dilakukan melalui satu perintah saja. Jika IP publik di peroleh secara dinamik dari ISP, maka perintah mengaktifkan NAPT adalah

# /sbin/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Jika IP publik yang kita gunakan adalah statik, misalnya 202.159.128.123, maka perintah mengkatifkan NAPT adalah

# /sbin/iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to 202.159.128.123


Alokasi IP Addess Secara Dinamis

Salah satu cara untuk mengatasi masalah renumbering adalah dengan cara mengalokasikan IP address secara dinamis ke mesin klien yang ada di jaringan. Hal ini dapat dilakukan menggunakan Dynamic Host Configuration Protocol (DHCP). DHCP merupakan solusi yang sangat baik untuk lingkungan yang penggunanya sangat mobile, dengan cara ini orang tidak perlu mengkonfigurasi ulang mesin / PC mereka karena proses alokasi IP address dilakukan secara automatis. Intro ke konsep DHCP dapat dibaca di RFC 2131 (http://www.isi.edu/in-notes/rfc2131.txt) atau “The Dynamic Host Configuration Protocol (DHCP) and Windows NT” (http://www.garykessler.net/library/dhcp.html) oleh G. Kessler dan C. Monaghan.

DHCP, di definisikan di RFC 2131 (http://www.isi.edu/in-notes/rfc2131.txt), adalah sebuah protocol yang masuk ke track standard Internet yang memungkinkan sebuah server di jaringan TCP/IP untuk memberikan informasi konfigurasi kepada client, termasuk default gateway (router), DNS, WINS, cookie, dan atau alamat time server, domain name, dan subnet mask. DHCP juga mendefinisikan mekanisme untuk mengalokasikan IP address untuk mesin di jaringan. Salah satu keuntungan dari DHCP adalah secara hardware & software platform independent. Software server DHCP tersedia di sebagian besar sistem operasi, dan sebagian besar [[TCP/IP software di client mendukung DHCP. Yang menarik, semua DHCP client dapat berkomunikasi dengan DHCP server versi manapun.

DHCP mendukung tiga (3) mekanisme yang berbeda dalam mengalokasikan IP address, yaitu:

  • Automatic allocation: Server memberikan IP address permanen kepada client.
  • Dynamic allocation: Server memberikan IP address kepada client untuk perioda terbatas (biasanya di sebut lease / waktu sewa) atau sampai client melepaskan IP address tersebut secara explisit.
  • Manual allocation: Server memberikan IP address ke client yang telah di set secara spesifik oleh network administrator.

Berdasarkan kebijakan dari network administrator, server DHCP di jaringan dapat menggunakan satu atau lebih dari mekanisme di atas. Dynamic allocation, adalah satu-satunya mekanisme yang mendukung penggunaan secara automatis IP address yang tidak digunakan lagi. Hal ini yang menyebabkan DHCP merupakan tool / alat yang sangat berguna bagi client yang hanya terhubung sementara ke jaringan. Contoh pengguna DHCP adalah Internet Service Provider (ISP) yang mempunyai banyak pengguna dial-up. ISP akan mengalokasikan IP address sementara kepada pengguna dial-up selama mereka tersambung saja. Contoh lain penggunaan DHCP adalah di penyelenggara hotspot-hotspot wireless di hotel / di restoran yang mengalokasikan IP address sementara selama pengguna tersambung ke Access Point wireless. Mekanisme pemberikan IP address sementara ini sangat dibutuhkan, karena kenyataan hidup dari puluhan ribu pelanggan ISP / hotspot, penyelenggara hanya memiliki ratusan IP address yang dapat dialokasikan kepada pengguna. Oleh karena itu, IP address dialokasikan secara dinamis, dan di berikan ke pengguna lain jika sudah tidak digunakan lagi. Di samping itu, DHCP juga menjaga agar sebuah mesin memperoleh lebih dari satu IP address pada saat yang sama.

Di kantor-kantor, kadang kala kita harus mengalokasikan beberapa IP address yang fix untuk server. Jadi tidak semua alokasi IP address yang kita miliki dapat dialokasikan secara dinamis, beberapa IP address statik di alokasikan untuk router / server. Mengubah parameter jaringan bagi client pun tidak sukar, hal ini dapat dengan mudah dilakukan dengan mengubah parameter DHCP server.

Jadi kapan DHCP digunakan? Terutama jika anda mempunyai:

  • Banyak pengguna dial-up.
  • Pengguna yang mobile / bergerak dari satu jaringan ke jaringan yang lain. Misalnya menggunakan laptop.
  • Jaringan yang besar, sehingga memanaged IP address untuk setiap desktop akan sulit & tidak praktis.
  • Pengguna lebih banyak daripada alokasi IP address yang ada.
  • Jaringan yang sering di ubah konfigurasinya.

DHCP bukan solusi yang baik bagi:

  • Router, server, printer atau sistem lainnya yang membutuhkan IP address statis.
  • Jaringan yang memiliki banyak IP address.
  • Jaringan dimana IP address-nya tidak sering berubah.

Cara Beroperasi DHCP

DHCP menggunakan protokol yang relatif sederhana. Sebuah mesin yang mendukung DHCP, akan berfungsi sebagai DHCP client jika IP address di set menjadi 0.0.0.0. Sistem operasi seperti Unix, Linux, OS/2, dan Windows semua mendukung DHCP client di kernel TCP/IP-nya. Secara umum, jika kita menset konfigurasi jaringan menggunakan automatis, maka DHCP akan digunakan untuk memperoleh IP address. Konfigurasi jaringan automatis adalah konfigurasi default di sistem operasi Linux & Windows.












Pada dasarnya ada empat fase operasi dasar DHCP. Seperti aplikasi TCP/IP lainnya, DHCP menggunakan model client-server dan client yang mengawali aktifitas. Walaupun tidak di perlihatkan di gambar, semua message DHCP dikirim menggunakan datagram User Datagram Protocol (UDP); message dari client ke server akan dikirim menggunakan UDP port 67 di server, sedang message dari server ke client akan dikirim ke UDP port 68 di client.

Fase inisialisasi terjadi pada saat client mengirimkan permintaan IP address:

  • Client mengirimkan message DHCPDISCOVER di jaringan IP subnet lokal untuk mencari DHCP server. Tentunya client tidak mengetahui IP address server DHCP, oleh karena itu, client menggunakan IP broadcast untuk mengirimkan message.
  • Semua DHCP server yang ada di jaringan akan mengirimkan message DHCPOFFER.
  • Jika ada lebih dari satu server, client perlu memilih server mana yang akan digunakan. Biasanya server pertama yang akan dipilih. Terlepas dari banyaknya server yang meresponds, client akan membroadcast DHCPREQUEST memberitahukan server mana yang akan digunakan, dan secara implisit memberitahukan server yang lain bahwa mereka tidak akan digunakan.
  • Server yang terpilih akan meresponds dengan DHCPACK dengan IP address yang diberikan, termasuk berbagai parameter jaringan lainnya, seperti waktu / lama-nya waktu lease.

DHCP client akan menjalan dua buah timer, T1 (timer renewal address) dan T2 (timer server binding). Nilai default T1 adalah 50% dari perioda lease, sedang T2 adalah 87.5% dari perioda lease. Nilai kedua timer tersebut akan berubah jika mesin memperoleh IP address, tapi nilai T1 selalu lebih kecil dari T2.

Jika timer T1 waktu-nya habis, maka client akan masuk ke fase Renewal dan mencoba untuk me-renew IP address-nya:

  • Client akan mengirimkan DHCPREQUEST ke server yang memberikan IP address sebelumnya.
  • Server akan menjawab DHCPACK dan memberikan waktu lease yang baru.
  • Selama server renew IP address lease dalam perioda T1, maka T2 tidak akan pernah habis (expire).

Jika T2 waktunya habis, maka client akan masuk ke fase Rebind dan akan berusaha mencari server lain yang akan memberikan IP address:

  • Client akan membroadcast DHCPREQUEST untuk mencari DHCP server yang akan memberikan lease IP address yang baru.
  • Server DHCP manapun yang dapat memberikan lease dari IP address akan memberikan DHCPACK dan memberikan perioda lease yang baru.

Pada suatu waktu, client siap untuk melepaskan IP address-nya dan melepaskan sambungan dari jaringan. Jika client mendukung hal ini, maka client akan mengirimkan DHCPRELEASE ke server, dan melepaskan IP addressnya ke server untuk digunakan oleh yang lain.

Demikianlah gambaran secara umum operasional dari DHCP. Perlu dicatat bahwa DHCP adalah protocol yang tidak aman. Pengguna di jaringan sebetulnya dapat dengan mudah membangun sendiri DHCP server-nya dan akan mengganggu operasional jaringan.


Membangun DHCP Server di Linux

Membangun DHCP server di Linux Red Hat Fedora Core 4 relatif sederhana karena sebagian besar tool yang dibutuhkan telah tersedia. Yang pertama-tama harus di lakukan adalah menginstall DHCP server di Red Hat Fedora Core 4. Hal ini dapat dilakukan menggunakan beberapa cara, dua diantara-nya yaitu:

Melalui menu grafis menginstall RPM DHCP. Caranya:

  • Masukan CD 3 dari Fedore Core 4
  • Pilih menu System > Add Remove Software > Legacy Network Software > DHCP

Melalui shell (mode text), caranya:

  • Masukan CD 3 dari Fedore Core 4
  • Mount CDROM & pindah ke folder CDROM tersebut.
  • Naik menjadi Super User (dengan perintah su)
  • Lakukan: # rpm –ivh dhcp-3.0.2-12.i386.rpm

Beberapa parameter penting yang perlu di konfigurasi di sebuah DHCP server adalah

  • Start Address dan End Address: Dibutuhkan untuk mengatur IP address yang akan dialokasikan ke client dari server.
  • Subnet Mask: Dibutuhkan untuk menentukan subnet mask yang akan digunakan oleh semua client.
  • Routers: Menentukan gateway / router dari jaringan untuk menghubungkan diri ke jaringan LAN lain / Internet.
  • Domain Name Server (DNS)): Menentukan Domain Name Server bagi komputer di jaringan LAN.
  • Lease Time: Menentukan lama waktyu leased dari masing-masing client dalam detik.

Di Linux, file konfigurasi DHCP Server terdapat di

/etc/dhcpd.conf

Contoh isi dari sebuah DHCP server di jaringan LAN dengan subnet 192.168.0.0, netmask 255.255.255.0 yang mempunyai router 192.168.0.10, dan mengalokasikan IP address client antara 192.168.0.81 s/d 192.168.0.90, adalah sebagai berikut:

ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.255.0 {
  # default gateway
  option routers 192.168.0.10;
  option subnet-mask 255.255.255.0;
  option domain-name "contoh.co.id";
  # Setting up an ip address is better here
  option domain-name-servers 202.46.3.178,202.155.38.227;
  range dynamic-bootp 192.168.0.81 192.168.0.90;
  default-lease-time 21600;
  max-lease-time 43200;
  }

Pada saat kita memilih alokasi IP address yang akan diberikan pada client, IP address statis dari router / gateway, DHCP server, Web server, FTP server, e-mail server, DNS server dan berbagai server lainnya yang secara statis di gunakan, tidak dapat lagi digunakan untuk alokasi IP addess DHCP.

Mungkin yang agak sukar adalah menentukan lama lease yang paling optimal. Semakin pendek lease, maka semakin banyak traffic di jaringan untuk renewal dari IP address client. Semakin panjang lease, maka akan menjadi masalah jika client tidak melepaskan IP address padahal client tersebut sudah mati / shutdown. Pengalaman saya, nilai default yang diberikan oleh Linux seperti tertera pada contoh cukup baik untuk digunakan dan tidak membawa banyak masalah.

Daftar lengkap dari DHCP option yang di dokumentasikan Internet Engineering Task Force (IETF) dapat di ambil di http://www.isi.edu/in-notes/iana/assignments/bootp-dhcp-parameters.


Youtube


Pranala Menarik