Memahami IP Address dan Header IPv4
Memahami IP Address dan Header IPv4
alamat IP. Fungsinya sebagai alamat komputer. Cara mengatur dan melihatnya bisa
dari network manager di komputer.
Nah kita sebagai orang IT, apalagi network engineer, harus benar-benar paham
tentang IP Address. Pemahamannya harus sampai ke bagaimana teknik
pengalamatan IP Address yang efektif dan efisien di network yang kita kelola.
Apa itu IP? Apa itu IP Address? Apa itu IP Addressing? (Ini sama atau beda sih)
Fungsinya itu semua buat apa?
Lah kok ada /24, /23, ada [Link], ini maksudnya apa?
IP Address si fulan sama anton kok bisa sama? Gapapa?
Ini katanya ip address saya [Link], kok dilihat di internet malah
beda?
… dll
Selamat, kamu patut berbahagia. Boleh lanjut baca tulisan ini sebagai bahan review
atau lanjut ke bab berikutnya tentang belajar subnetting.
Sebelum kita bahas mengenai IP Address, kita bahas dulu IP nya. Karena IP adalah
protocolnya. Saya ingatkan lagi mengenai konsep TCP/IP yang sudah kita pelajari di
bab networking model.
Kira-kira tugas internet layer atau network layer adalah seperti ini:
Kalau alamatnya adalah perangkat itu sendiri, maka dienkapsulasi menjadi PDU
layer bawahnya, hingga sampai ke bits.
Jadi, bahasan IP address kita sekarang adalah bagian kecil dari network layer dan
internet protocol.
#2. IP Header
Tiap layer di TCP/IP memiliki protocol (y), dan setiap protocol tersebut memiliki
header, termasuk Internet Protocol. Berikut header IPv4:
duh.. banyak.
Tenang.. untuk saat ini, sebagian besar engga perlu diambil pusing. Cukup yang
saya warnai abu-abu saja, protocol, source address, dan destination address.
Sisanya cuekin aja gapapa.
Namun untuk menghindari gap, dibawah akan saya jelaskan satu persatu fieldnya.
Bisa diskip kok, atau anggap saja bonus
Misal field version, ukurannya 4 bit — dan keseluruhan IP Header memiliki ukuran 32
bit atau sama dengan 4 byte.
Oke, tambah satu lagi prerequisites. Kamu harus sudah paham mengenai bit
number, atau bilangan biner serta bagaimana mengkonversi bilangan biner ke
desimal.
a. Version Field
Field version berisi versi IP. Ada 2 versi IP, yaitu;
1. Versi 4 (IPv4)
2. Versi 6 (IPv6)
Tapi yang kita bahas sekarang hanya IPv4. Ini IP packet yang saya capture
menggunakan wireshark:
Kamu juga bisa mempraktekkan ini, cukup gunakan wireshark dan do your stuff.
Sebenarnya masih ada satu lagi sih versi IP, buat kamu yang mungkin pernah
bertanya-tanya, ada IPv4, ada IPv6.
Di jaringan komputer engga ada pemahaman mistik seperti nomer lift yang
(biasanya engga ada lantai 13). Jadi bukan karena angka keramat ya.
Selain nilai 4 (0100) dan 6 (0110), field version juga bisa bernilai 5 (RFC1700) —
Internet Stream Protocol, fungsinya untuk menyediakan QOS untuk multimedia real-
time.
Jadi, ada keadaan dimana IPv5 ini dienkapsulasi didalam IPv4. Saat mentransfer data
‘biasa’, digunakan IPv4. Namun saat pertukaran media ‘real-time’, digunakan IPv5.
… dah, kita fokus ke IPv4 saja. Oh ya, ingat baik-baik struktur IP header dan
capturenya diatas.
Nilai minimum IHL adalah 5 atau 20 bytes, tidak termasuk field option dan padding.
Jika kedua field ini muncul, nilai field bisa bertambah lagi — minimum 20 byte (lagi)
dan maksimum 60 byte.
Mulai pusing?
Kalau kamu pernah belajar assembly, maka sering menggunakan unit word sebagai
bilangan. Karena peruntukan bahasa tersebut lebih ke prosesor, begitu juga IHL,
pengaruhnya lebih mengarah ke prosesor.
Size field IHL hanya 4 bit. Untuk mendefinisikan panjang IP header yang lebih dari 4
bit, maka digunakan 32-bit word untuk nilai setiap bitnya (nilai 1 sama dengan
kelipatan 32 (ukuran IP header).
Nah kalau di IPv6, tidak ada field IHL. Karena length nya fixed. Sehingga lebih efisien
prosesingnya. Lalu field options – data tadi, diganti dengan field ekstention header.
Intinya ToS dan QoS menentukan perlakuan terhadap suatu ip packet. Jika ada
beberapa packet diantrian yang mau dikirimkan ke salah satu interface, ToS
mempengaruhi yang mana lebih prioritas.
d. Total Length Field
Total length field menunjukkan ukuran keseluruhan ip packet beserta data
(payload), dalam ukuran byte. Jika ip packet dienkapsulasi di layer bawahnya kan
kira-kira seperti ini:
Diatas sudah saya sertakan [Data] di IP header. Nah panjang data ini variable, tidak
fixed. Misal total lengthnya adalah 84 seperti diatas, sedang IHL kan 20 byte (tanpa
data), berarti dari sini kita tahu nilai data tersebut adalah 64 byte.
Ukuran IPv4 total length adalah 16 bit field. Berarti ukuran packet di IPv4 bisa
sampai 65,355 byte. Namun pada kenyataanya tidak bisa sampai segitu karena
keterbatasan MTU.
Mengenai MTU akan kita bahas di lain kesempatan karena materi ini berkaitan
dengan fragmentation. (Barangkali kamu pernah testing MTU dengan mengirim
packet size sekian + option don’t fragment, ini dia)
Nilai field tersebut menunjukkan seconds, berarti TTL 255 sama dengan 4.25 menit.
Saya lebih suka menyebutnya hop limits, karena dalam praktiknya nilai tersebut
berkurang 1 setiap kali packet diterima. Bukan dalam hitungan detik/menit.
Jika nilai TTL mencapai 0, maka source packet akan menerima pesan ICMP exceeded
message (artinya packet tersebut kadaluarsa), usang di perjalanan.
Nilai TTL juga beragam, contoh diatas ketika saya mengirim ICMP dari komputer
(linux) ke router (cisco), nilainya 255. Nilai TTL di http beda lagi. Juga setiap OS,
memiliki nilai TTL berbeda.
d. Protocol Field
Protocol field berisi nilai untuk mengindikasikan protocol yang dibawa di data ip IP
Packet. Protocolnya bisa TCP Protocol atau UDP protocol (layer atasnya), atau IP
protocol (layernya sendiri).
Gambar 8: TCP/IP layer Protocol
Ingat, salah satu karakteristik IP yaitu connectionless, artinya tidak ada setup
connection. Jika ingin mentransport data, maka IP menggunakan protocol transport
UDP atau TCP.
Saya sudah memberi gambar capture ip packet wireshark beberapa kali di atas.
Coba perhatikan, ada yang protocolnya berisi nilai 6, berarti TCP, seperti HTTP.
Bisa juga berisi nilai 17, berarti UDP, contohnya DNS atau DHCP. Juga ada yang berisi
nilai 1 (yaitu ICMP). Ingat yah, ICMP adalah Internet Protocol, bukan TCP, juga bukan
UDP.
Penomoran protocol TCP, UDP, dan IP dispesifikan di RFC 1700, kemudian digantikan
dengan database dibawah naungan IANA (Internet Assigned Number Authority).
ICMP 1
IP in IP tunneling 4
TCP 6
UDP 17
EIGRP 88
OSPF 89
IPv6 41
GRE 47
Sedangkan port number yang berada di layer transport (TCP dan UDP), bisa kamu
lihat listnya disini: (lengkap, mulai official dari IANA sampai proprietary vendor).
Tiap router akan memeriksa field checksum, jika fail maka packet akan didiscard.
Dari capture diatas kelihatan kalau “verification disabled”, sebenernya ini dari
pengaturan wireshark saya (default sejak versi sekian). Silakan baca disini mengenai
alasannya.
Kenapa angka ini ukurannya adalah 32 bit dan bagaimana formatnya? Penjelasannya
akan saya berikan di bawah ini.
Berikut karakteristik source address dan destination address IPv4 yang perlu kamu
ingat:
Terakhir, data field adalah data dari layer atasnya. Perhatikan lagi ilustrasi-ilustrasi
enkapsulasi diatas. Maka setelah IP header, akan ada Data. Kedua ini yang kemudian
dienkapsulasi di layer bawahnya.
Baiklah.. ini materi utama kita. So, kamu harus konsentrasi penuh.
Dari sedikit penjelasan diatas, saya yakin kamu sudah siap dan sudah punya sedikit
gambaran mengenai IP address.
Pertama: IP address digunakan sebagai alamat logic (bukan fisik) sebuah komputer,
yang melekat di Network Interface Card (NIC).
Kemudian, alamat tersebutlah yang digunakan untuk mengirim packet baik dalam
sebuah jaringan yang sama, maupun berbeda jaringan, dan hal ini terjadi di network
layer, yang menggunakan Internet Protocol.
…hingga diakhir materi nanti, kamu akan paham teknik pengalamatan IP address
yang efektif.
a. IP Terminology
Syarat pertama memahami IP address, kamu harus kenal beberapa term atau istilah
yang nantinya akan sering kita gunakan, diantaranya sebagai berikut:
Bit: bilangan biner, nilainya 1 (on) atau 0 (off). Jika masih belum paham
bilangan biner, silakan belajar dulu.
Byte: sama dengan 8 bit.
Oktet: 1 oktet terdiri dari 8 bit, sama dengan byte, dan IP address terdiri dari
4 oktet.
Network address: alamat network (seperti alamat perumahan, maupun blok
perumahan)
Host address: alamat host (seperti alamat aktual sebuah rumah di
perumahan)
Broadcast address: sebuah alamat yang digunakan untuk mengirim pesan ke
semua host.
Juga ada istilah subnet atau subdivided network. Anggap saja sub-network, seperti di
perumahan, ada blok A, blok B, atau Cluster Anggrek, Cluster Kamboja, dll.
b. Struktur IP Address
IP address kan terdiri dari 32 bit. Namun dalam penggunaannya, 32 bit ini dibagi
menjadi 4 bagian, yang masing-masing bagiannya adalah 8 bit.
Kan panjangnya 32 bit. Berarti totalnya ada 2^32, atau 4,294,967,296 address. Jika
flat (tidak hirarkikal) berarti alamat IPv4 dimulai dari 0 sampai [Link] (4
miliar sekian) alamat tersebut.
Tentu hal tersebut tidak efektif untuk routing karena setiap perangkat harus punya
IP yang unik — dan tiap router di dunia ini harus menyimpan semua alamat-alamat
tersebut kalau mau bisa berkomunikasi.
Maka solusinya adalah struktur IP Address dijadikan hirarki; two-level hirarkikal, atau
three-level hirarkikal, seperti ini:
Karena three-level hirarkikal akan lebih kamu pahami jika kita sudah sampai ke
materi subnetting. (Ingat lagi analogi subnet dengan blok perumahan tadi.)
Baiklah…
… dan masih ada lagi. IP address juga dibagi-bagi menjadi beberapa kelas.
Sebaliknya, ada juga kelas IP address yang ruang networknya sedikit, tapi ruang
untuk hostnya banyak.
Kalau digambarkan, seperti ini kelas ip address yang dibagi menjadi: Class A, Class
B, Class C, Class D, dan Class E.
Sekarang coba kamu pahami sedikit mengenai peletakan network — host dengan
nilai bitnya. Ini nantinya akan digunakan sebagai notasi subnet mask atau prefix
length.
Gampang kan?
Kelas A paling banyak alokasinya. Hingga 50% dari keseluruhan ip address versi 4.
Seperti ini jika digambarkan dengan diagram:
Khusus class D, digunakan untuk multicast (dibawah ada penjelasan lebih lanjut).
Mengenai class E, alamat ini sudah reserved untuk digunakan di masa mendatang
(tidak lagi experimental atau research).
Dari subnet mask, atau prefix length: kita bisa tahu seberapa lebar ukuran network
address (juga) darisitu kita bisa tahu berapa lebar ukuran host addressnya.
Jika menggunakan kelas A, kamu bisa punya sampai 126 network address (sedikit).
Tapi.. host address setiap network di kelas A, bisa banyak. Hingga 16 juta sekian.
Sedangkan jika menggunakan kelas B, networknya bisa sampai 16 ribu sekian (lebih
banyak dari kelas A). Tapi jumlah host setiap networknya lebih sedikit dari kelas A,
yaitu 65 ribu sekian.
Nah biasanya kalau belajar IP address, pakai kelas C. Karena host address setiap
networknya cuma sedikit, cuma 254 host, tapi jumlah network addressnya bisa
hingga 2 juta sekian.
Kalau lagi belajar, ga perlu banyak-banyak buat network address. Nanti pusing.
Oh ya, ini tabel range network dan host setiap kelas IP address.
Range
Kelas Jumlah
(bit) Jumlah
IP Networ
Oktet Host
Addre k
Pertam Address
ss Address
a
126 (2
0 sampai 16.777.2
Class A reserved
127 14
)
128
Class B sampai 16.384 65.534
191
192
2.097.15
Class C sampai 254
2
223
Dari tabel diatas, berikut adalah range network address yang valid (yang bisa
digunakan):
… dah.
Coba kamu perhatikan range bit class A, 0 sampai 127 (oke hasilnya 126). Tapi Class
B, dari 128 ke 191 kok malah dapetnya 16.384? Hayo tebak.. kenapa bisa seperti itu.
Aturan network address class A: nilai bit pertama harus “off” atau bernilai “0”.
Bit kedua dan seterusnya (jika bernilai 1 semua) akan mencapai range maksimal,
perhatikan:
Valu 12 6 3 1
8 4 2 1
e 8 4 2 6
0 0 0 0 0 0 0 0 0
127 0 1 1 1 1 1 1 1
Ukuran untuk network address class A adalah 8 bit, namun bit pertama diharuskan
nol sehingga nilainya 2 pangkat 7 sama dengan 128. Ada 2 reserved address
sehingga 126.
Dari format diatas kita bisa lihat space untuk host address class A adalah 3 byte (3
oktet). Sama dengan 24 bit. Berarti 2 pangkat 24, hasilnya 16,777,216 address.
Alamat networknya yang valid adalah 1 sampai 126. Sedangkan hostnya adalah dari
1 sampai 254 setiap oktetnya.
Nilai 255 identik dengan alamat broadcast (akan kita bahas dibawah).
Maka valid address dari contoh tersebut adalah dari [Link] sampai [Link]
(biasa disebut last host atau higher address).
Valu 12 6 3 1
8 4 2 1
e 8 4 2 6
128 1 0 0 0 0 0 0 0
191 1 0 1 1 1 1 1 1
Ukuran network address class B adalah 16 bit (2 oktet), tapi mengikuti aturan
pengalamatan diatas, kita punya 14 bit untuk dimanipulasi. Berarti 2 pangkat 14,
sama dengan 16,384 network address class B.
Dua byte pertama untuk network address, 2 byte sisanya untuk host address. Berarti
2 pangkat 16 untuk host address class B, sama dengan 65,534.
Ingat yang terakhir (255) digunakan untuk broadcast address. Maka valid address
range class B dari contoh tersebut adalah mulai [Link] sampai [Link].
Aturan network address class C: 2 bit pertama harus bernilai “on” atau “1”,
sedangkan bit ke tiga harus bernilai “off” atau “0”.
Valu 12 6 3 1
8 4 2 1
e 8 4 2 6
192 1 1 0 0 0 0 0 0
223 1 1 0 1 1 1 1 1
11000000 = 192, network bit Class C address minimum (3 bit oktet pertama)
11011111 = 223, network bit Class C address maksimum (3 bit oktet
pertama)
Ukuran network address Class C adalah 3 oktet atau 24 bit. Tapi 3 bit reserved
berdasarkan aturan diatas, sehingga total network address class C adalah 2 pangkat
21, sama dengan 2.097.152.
Tiga byte pertama digunakan untuk network address. Maka host address Class C
hanya 1 byte, yang terakhir.
Jangan lupa, alamat [Link] adalah alamat broadcast. Maka range address
class C yang valid dari contoh diatas adalah: mulai [Link] sampai
[Link].
Nah, 224.x.x.x digunakan untuk multicast, range nya dari [Link] sampai
[Link]. Inilah class D.
Sedangkan class E, rangenya dari 240 dan seterusnya, digunakan for scientific
purpose (future used). Tidak kita bahas terlalu panjang, ingat saja rangenya.
5. Reserved Address IPv4 (addresses with special purpose)
Gimana? Sudah mulai pusing dan bosan? (Saya merasakan ini ketika belajar IP
address, terutama kalau udah ketemu class B dan Class C).
Ingat, yang penting konsep pengalamatannya dan kamu harus udah bisa
menghitung binarinya. Selebihnya pemahaman kamu tentang ip address akan
matang jika sering mempraktekkannya (terutama di routing).
Dari alamat-alamat yang kita bahas tadi kan, ada beberapa alamat yang engga bisa
digunakan, entah karena reserved for special purpose of for blahblahblah.
N
Alamat Fungsi
o
Menunjukkan
Nilai “0” semua “alamat network”
1
di host address dari host atau
network tertentu
Menunjukkan
Nilai “1” semua
2 “seluruh host” di
di host address
network tertentu
Broadcast ke
Nilai “1” semua seluruh host di
4 di keseluruhan seluruh network
IP address ataupun network
tertentu
Network
5 Loopback address
[Link]
Network
6 Link local address
[Link]/16
… kebayang?
Aturan ini sama saja baik untuk network yang classfull (mengikuti kaedah
pengkelasan IP address), maupun yang sudah subnetted, atau classless.
Khusus contoh kedua, kamu harus sudah paham seperti apa itu broadcast. Jika paket
dikirim ke alamat [Link], maka pesan akan di broadcast ke semua
network, atau ke network tertentu.
Tergantung oleh siapa pesan broadcast tersebut diterima pertama kali. Jika switch
(tanpa VLAN), maka akan disebar ke semua network.
c. Network [Link]
Ingat di bahasan address Class A, ada 2 alamat yang reserved, yaitu [Link] (yang
baru kita singgung), dan [Link]
Nah, network [Link] digunakan untuk alamat loopback. Biasa defaultnya adalah
[Link]/8. Silakan periksa alamatnya di laptop kamu masing-masing.
Alamat loopback berada di virtual interface (tidak fisik NIC), jadi sifatnya tidak
pernah down (selalu up), fungsi utamanya untuk cek TCP/IP stack atau kebutuhan
routing, atau kebutuhan manajemen.
Contoh yang sering kita akses http ke loopback sendiri (identik dengan localhost),
atau telnet ke loopback sendiri untuk ngecek service di local yang kita buat (entah
itu samba, ssh, ftp, dll).
Jika hal itu dilakukan, kita sudah melakukan proses untuk membuat tcp/ip stack agar
bekerja (sekaligus memeriksanya), tanpa mengirim traffic ke luar jaringan.
d. Network [Link]
Saat kita menggunakan dhcp dan gagal mendapatkan alokasi address, biasanya
otomatis digantikan dengan alamat [Link] dan sebagainya.
Pernah ngalamin?
Alamat tersebut automated jika engga bisa reach dhcp server, disebut juga link-local
address IPv4 sehingga tidak bisa dirouting.
Alamat ini sering disebut APIPA address atau Automated Privated IP Addressing.
Rangenya dari [Link] sampai [Link]
6. Private IP Address
Kita sudah bahas ip address secara menyeluruh, dibagi atas kelas A, kelas B, kelas
C, kelas D dan kelas E. Namun tidak semua kelas ip address bisa kita assign ke
interface, karena digunakan untuk kebutuhan khusus.
Nah…
Dari range kelas ip address diatas, ada lagi range khusus yang digunakan untuk
private ip address. Private ip address dibuat untuk kebutuhan local network, tidak
bisa dirouting ke internet (RFC 1918).
Maka kalau digambarkan, berikut range ip public dan ip private dari keseluruhan
alokasi ip address classfull. (buka gambar untuk memperbesar)
Gambar 17: Range IP Private dan IP Public dari Keseluruhan Alokasi IPv4 Classfull
Masih ingat pertanyaan di awal materi ini? (Misal: ip laptop saya [Link],
namun ketika di cek di internet kok hasilnya berbeda, malah [Link])
[Link] itu adalah ip private. Sedangkan [Link] itu adalah ip public.
Lah kenapa bisa berubah seperti itu??
Tapi intinya, kamu bisa internetan pakai private ip address karena alamat tersebut
di-NAT.
Keuntungannya adalah: lebih menghemat alokasi ip public. Kalau saja tidak ada NAT,
pasti ip public sudah habis sejak dahulu kala.
Jika kamu mendapat alokasi IP public dari ISP, dan ip tersebut sudah dirouting ke
internet. Kamu bisa internetan, pakai ip public tersebut.
Jelas yah? Saya harap kamu tidak bingung lagi mengenai ip private dan ip public.
7. Jenis-Jenis IP Address
Loopback
Unicast
Layer 2 broadcast
Layer 3 broadcast
Multicast
Beruntungnya saya.. karena penjelasan jenis-jenis ip address tersebut sudah pernah
saya tuliskan.
Tapi ingat, cukup aplikasi ip calculator untuk memverifikasi hasil perhitungan kamu.
Jangan gunakan untuk hal kecurangan atau ceating.
… atau silakan gunakan untuk cheating, namun kamu akan selamanya tidak akan
pernah memahami perhitungan ip address.
Simpulan
Menguasai ip address tidak cukup dalam hitungan hari, minggu. Butuh waktu
berbulan hingga bertahun. Goalnya nanti adalah kamu bisa mengalokasikan ip
dengan efektif di network yang kamu kelola.
Skill yang harus kamu miliki adalah subneting, summarization address, (terkait
routing). Ini akan kita bahas di bab selanjutnya.
Share this: