Saturday, July 25, 2020

Dasar-dasar Jaringan Komputer (Tulisan & Video)

Bagi yang ingin belajar jaringan komputer dari dasar, saya sarankan mengikuti link ini (ada versi tulisan dan video di dalamnya)

#NetworkFundamentals
Part 1: OSI
aditya.hananto.net/2020/05/network-fundamentals-osi-model_12.html

Part 2: IP protocol
aditya.hananto.net/2020/05/network-fundamentals-ip-internet.html

Part 3: IPv4 header
aditya.hananto.net/2020/05/network-fundamentals-ipv4-header.html

Part 4: ARP
aditya.hananto.net/2020/05/network-fundamentals-ARP-protocol.html

Part 5: ICMP
aditya.hananto.net/2020/05/network-fundamentals-icmp.html

Part 6: TCP & UDP
aditya.hananto.net/2020/05/network-fundamentals-tcp-udp.html

Part 7: TCP header
aditya.hananto.net/2020/05/network-fundamentals-tcp-header.html

Part 8: TCP window size
aditya.hananto.net/2020/05/net-fundamentals-tcp-window-size.html

selain tulisan blog di atas, Anda juga belajar jaringan komputer dari dasar pada playlist video tutorial CCNA 2020 dari IndoNetworkers Community

Cisco CCNA 2020 (Mei 2020: 8 videos)
https://www.youtube.com/watch?v=LiMdHeaS4zY&list=PLkiWVEWnNVJ_iqcj-IZ5Uxn6YZzfsnjtq

Cisco CCNA 2020 (Juni 2020: 6 videos)
https://www.youtube.com/watch?v=KnikGDYy2G0&list=PLkiWVEWnNVJ_h6qnEgQ-k8iar4UvJJcG7


Selamat belajar, Rekan-rekan semua
Semoga bermanfaat dan jangan lupa untuk tetap semangat di tengah pandemi ini :)

#StaySafe
#StayHealthy
#StayStrong

Friday, July 3, 2020

Tutorial EVE-NG part 3: membuat Lab Cisco ASA Firewall di EVE-NG #BelajarJaringanKomputer

Pada tulisan dan video kali ini, saya akan membahas mengenai langkah-langkah untuk membuat Lab Cisco ASA Firewall di EVE-NG:

1. Upload image qcow2 Cisco ASAv ke EVE-NG VM menggunakan SFTP client seperti WinSCP, Filezilla client.

2. SSH ke EVE-NG menggunakan ssh client seperti putty

3. Fix Permissions untuk image ASAv yang baru kita upload /opt/unetlab/wrappers/unl_wrapper -a fixpermissions 

4. Agar console Cisco ASAv bisa diakses menggunakan telnet (bukan vnc), lakukan langkah-langkah sebagai berikut di command line Linux:

cd /opt/unetlab/addons/qemu/asav-992-100
apt install libguestfs-tools
guestfish -a virtioa.qcow2
 run

mount /dev/sda2 /
touch /use_ttyS0
umount /
exit

5. akses EVE-NG VM menggunakan web browser seperti Firefox

6. Buat lab Cisco ASA dan akses console menggunakan telnet client seperti putty

Video Tutorial EVE-NG Part 2



Tutorial EVE-NG sebelumnya:
Part1: Instalasi EVE-NG
https://aditya.hananto.net/2020/06/tutorial-eve-ng-part-1-instalasi.html

Part 2: Upload OS image & membuat Lab di EVE-NG
https://aditya.hananto.net/2020/07/tutorial-eve-ng-part-2-upload-image.html

~AHa
#BelajarJaringanKomputer
#StaySafe
#StayHealthy
#StayProductive

Wednesday, July 1, 2020

Tutorial EVE-NG part 2: upload OS image & membuat Lab di EVE-NG

Sebelumnya pada Tutorial EVE-NG part 1, telah dibahas bagaimana cara instalasi EVE-NG, kini di part 2 dibahas mengenai cara upload image Cisco Router & Switch serta cara membuat Lab di EVE-NG.

Setelah EVE-NG running, maka berikutnya kita upload OS image yang akan di-emulate (misal Cisco vIOS router & Switch) menggunakan SFTP client. Selanjutnya membuat Lab Topology dengan web browser untuk mengakses EVE-NG.

Tutorial EVE-NG part 2: upload OS image & membuat Lab
https://youtu.be/iI1IdFQcLR0

Tutorial sebelumnya (part 1): Instalasi EVE-NG https://youtu.be/lC4NfhCFtVk

~AHa
#BelajarJaringanKomputer
#StaySafe
#StayHealthy
#StayProductive

Sunday, June 28, 2020

Tutorial EVE-NG part 1: Instalasi EVE-NG untuk Home Lab Jaringan Komputer

Untuk membangun Home Lab pertama kali ketika belajar jaringan komputer, biasanya kita menggunakan Cisco Packet Tracer yaitu simulator lab gratis dari Cisco.

Nah jika Anda ingin membangun Home Lab yang lebih advance, yang bisa menjalankan real OS image (seperti Cisco IOS, Juniper Junos, dll) bukan sekedar simulasi, maka salah satu tools favorit saya adalah EVE-NG (www.eve-ng.net)

Pada kesempatan kali ini, saya akan membahas cara instalasi VM EVE-NG dari awal.

Pra-instalasi EVE-NG
Sebelumnya, silahkan download semua tools yg dibutuhkan utk praktek lab menggunakan EVE-NG
1. Vmware player (gratis)
https://my.vmware.com/en/web/vmware/downloads/details?downloadGroup=PLAYER-1556&productId=800&rPId=47861

2. VM EVE-NG (Community edition/gratis)
https://mega.nz/file/4pU2wIhQ#jmfEhGMNM_1gGj6qfN_WcGglI-7vxvkW_m1uRxIjYEQ
https://drive.google.com/uc?id=1kSumfMzsKqXq4IF3G8h_z6cxdojXYpkq&export=download


Langkah-langkah instalasi EVE-NG di vmware player/workstation:
1. Install vmware player/workstation
2. buka Vmware player/workstation
3. Extract file EVE-COMM-VM.zip
4. klik File — Open
5. pilih ovf EVE-NG yg telah di-extract
6. import ovf tersebut, tunggu hingga selesai
7. pastikan Network Adapter = NAT
8. Memory utk VM = 4 GB atau lebih (paling minim 2 GB)
9. Power-on/Start EVE-NG VM
10. setelah booting, pastikan ada IP address di atas login
11. login menggunakan user: root
password: eve
12. Ikuti wizard/setup menu ketika awal menyalakan EVE-NG
13. buka web browser, masukkan ip address EVE-NG
14. login menggunakan user: admin
password: eve
15. tampilan awal EVE-NG setelah login, seharusnya masih kosong, karena kita belum membuat Lab
16. untuk mematikan VM EVE-NG, ketik di command-Line VM: # poweroff

Done, sekarang EVE-NG kita telah up & running :)

Video tutorial:
youtu.be/lC4NfhCFtVk
mirror: youtu.be/36vrfgnqrnY

Sunday, May 31, 2020

Network Fundamentals: TCP Window Size #BelajarJaringanKomputer

Seperti yang telah kita bahas di  tulisan tentang TCP & UDP, kita tahu TCP (Transmission Control Protocol) adalah connection-oriented protocol yang berarti bahwa TCP melacak berapa banyak data yang telah dikirimkan. Pengirim akan mengirimkan beberapa data dan penerima harus membalas dengan Acknowledgement. Ketika pengirim tidak menerima Acknowledgement dari penerima maka pengirim akan mengirim ulang data tersebut.

TCP menggunakan "windowing" yang berarti bahwa pengirim akan mengirim satu atau lebih segment data dan penerima akan membalas dengan Acknowledgement untuk satu atau semua segment. Saat kita memulai koneksi TCP, host akan menggunakan receive buffer untuk menyimpan data secara sementara sebelum aplikasi dapat memprosesnya.

Ketika penerima mengirim Acknowledgement, ia akan memberi tahu pengirim berapa banyak data yang dapat ditransmisikan sebelum penerima akan mengirim Acknowledgement. Itu disebut window size. Pada dasarnya, window size menunjukkan besarnya receive buffer.

Biasanya koneksi TCP akan dimulai dengan window size kecil dan setiap kali ada Acknowledgement yang berhasil, window size akan meningkat.

Mari kita lihat sebuah contoh:

Di contoh tsb, PC1 mengirim satu segment dan PC2 membalas dengan mengirim Acknowledgement. Karena Acknowledgement berhasil, maka window size akan meningkat:

Kini PC1 mengirim dua segment sekaligus dan PC2 akan membalas dengan satu Acknowledgement. Semuanya berjalan dengan lancar sehingga window size akan meningkat lagi:
Kini PC1 mengirim empat segment sekaligus dan PC2 merespons dengan satu Acknowledgement.

Pada contoh di atas, window size terus meningkat selama penerima mengirimkan Acknowledgement untuk semua segment dari pengirim atau ketika window size mencapai batas maksimum tertentu. Ketika penerima tidak mengirim Acknowledgement dalam periode waktu tertentu (disebut round trip time) maka window size akan berkurang.

Ketika sebuah interface mengalami congestion (kemacetan) maka ada kemungkinan paket IP akan di-drop. Untuk mengatasinya, TCP memiliki algoritma yang berhubungan dengan congestion control. Salah satunya disebut TCP slow start.

Congestion bisa terjadi ketika sebuah interface harus mengirimkan lebih banyak data daripada yang bisa ditangani. Queue (antrian) akan mencapai batasnya dan paket akan di-drop.

Dengan TCP slow start, window size awalnya akan bertambah secara eksponensial (window size menjadi dua kali lipat) tetapi ketika paket yang di-drop, window size akan dikurangi menjadi satu segment. Kemudian akan bertambah lagi secara eksponensial sampai window size menjadi setengah dari ukuran window size ketika congestion terjadi. Setelah itu, window size akan bertambah secara linear, bukan secara eksponensial.

Ketika sebuah interface mengalami congestion, mungkin semua koneksi TCP Anda akan mengalami TCP slow start. Paket akan di-drop dan kemudian semua koneksi TCP akan memiliki ukuran window size yang kecil. Ini disebut TCP global synchronization. Begini tampilannya:


Garis merah, kuning dan biru adalah tiga koneksi TCP yang berbeda. Koneksi TCP ini dimulai pada waktu yang berbeda dan setelah beberapa saat, interface mengalami congestion dan semua segment di koneksi-koneksi TCP tersebut di-drop. Kemudian yang terjadi adalah window size semua koneksi TCP ini akan turun ke satu dan setelah congestion pada interface reda, maka window size semua koneksi TCP akan meningkat lagi.

Jika interface kemudian menjadi padat lagi, ukuran window size turun kembali ke satu dan kejadian di atas berulang kembali. Hasil dari ini adalah kita tidak bisa menggunakan semua bandwidth yang tersedia pada interface. Anda dapat melihat garis putus-putus di atas, yang menunjukkan bahwa rata-rata utilisasi bandwidth pada interface tidak terlalu tinggi.

Untuk mencegah congestion yang berimbas pada TCP global synchronization, kita dapat menggunakan RED (Random Early Detection) yang merupakan salah satu mekanisme pada QoS (Quality of Service). Ini adalah fitur yang melakukan drop paket "secara acak" dari TCP stream berdasarkan jumlah paket dalam Queue (antrian) dan tanda ToS (Type of Service) yang ada pada IP header. Ketika paket di-drop sebelum Queue (antrian) penuh, kita dapat menghindari TCP global synchronization.

Hasil akhirnya akan terlihat seperti ini:


Dapat disimpulkan, ketika kita menggunakan RED (random early detection), pemanfaatan rata-rata utilisasi interface akan meningkat.

Kesimpulan
Anda sekarang telah melihat bagaimana TCP menggunakan window size untuk memberi tahu pengirim berapa banyak data yang bisa dikirim sebelum menerima Acknowledgement. Saya juga telah menunjukkan kepada Anda sebuah contoh bagaimana window size digunakan ketika penerima tidak dapat memproses receive buffer-nya tepat waktu.

Tidak seperti TCP, UDP adalah protokol connectionless dan hanya akan terus mengirim segment data tanpa menunggu Acknowledgement dan tanpa window size. Karena alasan ini, Anda mungkin ingin membatasi traffic UDP Anda atau bakal ada kemungkinan terjadi TCP starvation ketika terjadi congestion.

Semoga tulisan ini dapat memudahkan dalam memahami TCP window size. Jika ada pertanyaan, jangan ragu untuk bertanya di kolom komentar di bawah ya.

Selamat belajar dan tetap semangat di tengah pandemi ini :)

~AHa
#NetworkFundamentals
#StayAtHome
#StaySafe
#StayHealthy

[Video] Spanning-Tree Protocol (STP) #IndoNetworkers #BelajarJaringanKomputer

Mungkin Anda pernah mendengar STP (Spanning-Tree Protocol) ketika membahas jaringan komputer, tapi Anda merasa masih belum memahami betul mengenai:
• Apakah itu STP?
• Untuk apa digunakan STP?
• Kapan perlu STP?
• Bagaimana cara kerja STP?
• Apakah perbedaan antara STP, RSTP, MSTP, VSTP, PVST & RPVST ?
• dan masih banyak pertanyaan lain tentang STP di benak Anda

Kebetulan pada hari Sabtu 30 mei 2020, saya berkesempatan berbagi ilmu mengenai STP di event Online Sharing Session bareng komunitas IndoNetworkers. Dan bagi Anda yang ketinggalan mengikuti event ini, bisa menonton video rekamannya di bawah :)

Semoga bisa membantu dalam belajar & tetap semangat di tengah pandemi ini :)

~AHa
#BelajarJaringanKomputer
#StayAtHome
#StaySafe
#StayHealthy

Friday, May 29, 2020

Network Fundamentals: TCP header #BelajarJaringanKomputer

TCP (Transmission Control Protocol) adalah protokol transport yang reliable karena membuat koneksi sebelum mengirim data apa pun dan semua yang dikirim harus dibalas dengan Acknowledgement oleh penerima. Dalam tulisan kali ini, kita akan melihat lebih dekat TCP header dan semua field-nya yang berbeda. Begini tampilannya:


Mari kita bahas tiap field satu per satu.

1) Source Port (16 bits): berisi nomor port pengirim.
2) Destination Port (16 bits): berisi nomor port penerima.
3) Sequence number (32 bits): menunjukkan berapa banyak data yang dikirim selama sesi TCP. Ketika Anda membuat koneksi TCP baru (3-way handshake) maka Sequence number awal adalah nilai 32 bit yang random (acak). Penerima akan menggunakan Sequence Number ini dan mengirimkan Acknowledgement. Aplikasi untuk analisis protokol/data seperti Wireshark, sering menggunakan Relative Sequence Number nomor urut relatif) 0 untuk semua segment pertama, karena lebih mudah dibaca daripada beberapa angka random (acak) yang besar (biasanya ribuan).
4) Acknowledgement number (32 bits): digunakan oleh penerima untuk meminta segment TCP berikutnya. Nilai ini akan menjadi Sequence number dari lawan yang bertambah 1.
5) DO (4 bits): juga dikenal sebagai panjang header. Ini menunjukkan panjang TCP header, sehingga kita tahu di mana data (payload) dimulai.
6) RSV (3 bits): field yang di-reserved. Saat ini tidak digunakan dan selalu bernilai 0.
7) Flag (9 bits): disebut juga Control bits. Kita menggunakannya untuk membuat koneksi, mengirim data dan mengakhiri koneksi.
  • URG: urgent pointer. Ketika bit URG di-set, artinya segment data ini harus diperlakukan sebagai prioritas dibandingkan data lainnya.
  • ACK: digunakan untuk acknowledgment.
  • PSH: sebagai fungsi push. Ini memberi tahu aplikasi bahwa data harus segera ditransmisikan.
  • RST: untuk me-reset koneksi, ketika Anda menerima ini, maka Anda harus segera mengakhiri koneksi. Ini hanya digunakan ketika ada unrecoverable error (error yang tidak dapat dipulihkan) dan ini bukan cara normal untuk mengakhiri koneksi TCP.
  • SYN: digunakan untuk memulai 3-way handshake dan juga digunakan untuk mengatur Sequence number awal.
  • FIN: bit akhir ini digunakan untuk mengakhiri koneksi TCP. TCP bersifat full duplex sehingga kedua belah pihak harus menggunakan bit FIN untuk mengakhiri koneksi. Ini adalah metode normal untuk mengakhiri koneksi.
8) Window (16 bits): menentukan berapa Byte yang ingin diterima oleh penerima. Ini digunakan oleh penerima untuk memberi tahu pengirim bahwa ia ingin menerima lebih banyak data daripada yang saat ini diterimanya. Hal ini dilakukan dengan menentukan jumlah Byte di atas Sequence number di field Acknowledgement.
9) Checksum (16 bits): digunakan sebagai checksum untuk memeriksa apakah header TCP yang diterima itu OK atau tidak.
10) Urgent Pointer (16 bits): digunakan ketika bit URG telah di-set, Urgent pointer digunakan untuk menunjukkan di mana data yang urgent berakhir.
12) Options: field ini bersifat opsional dan panjangnya antara 0 s.d. 320 bits.

Untuk melihat field-field ini pada sebuah TCP segment, kita bisa menggunakan wireshark. Berikut adalah contoh segment-segment TCP yang digunakan dalam 3-way handshake.


 TCP SYN dari Client ke Server:


TCP SYN-ACK dari Server ke Client:


TCP ACK dari Client ke Server:



Di atas Anda dapat melihat Source & Destination port. Sequence number bernilai 0 tetapi wireshark memberitahu kita bahwa ini adalah Relative Sequence number (segment pertama diberi nilai 0 oleh Wireshark). Pada kenyataannya, Sequence number bernilai sangat besar pada segment TCP di atas. Anda juga dapat melihat bit SYN/ACK telah di-set pada field flag, Window size, Checksum dan Urgent pointer.

TCP adalah protokol yang cukup kompleks, tetapi semoga tulisan ini membantu memahami seperti apa tampilan header TCP dan fungsi masing-masing field.

Jika Anda memiliki pertanyaan, jangan ragu untuk meninggalkan komentar di bawah ya :)

Semoga bermanfaat dan tetap semangat di tengah pandemi ini :)

~AHa

Thursday, May 28, 2020

IndoNetworkers Community Class: Spanning-Tree Protocol (STP) #BelajarJaringanKomputer

#EVENT
IndoNetworkers Sharing Session #BelajarJaringanKomputer

Mau belajar dasar-dasar jaringan komputer secara GRATIS?
Yuk join sesi berbagi ilmu jaringan komputer dari komunitas IndoNetworkers pada hari/tanggal:

Topik: Spanning-Tree Protocol (STP, RSTP, PVST, RPVST)

Waktu: Sabtu 30 mei 2020, pukul 1 siang WIB

Durasi: 90 - 120 menit

Bagaimana cara joinnya?
1. Klik https://t.me/BelajarJaringanKomputer untuk bergabung ke grup Telegram "Belajar Jaringan Komputer"
2. Link untuk join online class akan di-share di grup tersebut (nanti hanya butuh Web Browser untuk mengikuti kelas)

Sesi sharing Komunitas IndoNetworkers ini bersifat gratis 100%, Anda bisa ganti dengan sedekah untuk membantu sesama :)

Sampai berjumpa di grup Telegram "Belajar Jaringan Komputer" dan sesi Online Sharing ini :)

IndoNetworkers Community

www.IndoNetworkers.org
info@IndoNetworkers.org
t.me/BelajarJaringanKomputer
facebook.com/IndoNetworkers
twitter.com/IndoNetworkers
youtube.com/c/KomunitasIndoNetworkers

Network Fundamentals: TCP & UDP #BelajarJaringanKomputer

Dalam tulisan ini, kita akan melihat protokol di layer transport OSI yaitu TCP dan UDP. Jika pada tulisan sebelumnya tentang protokol IP dan paketnya, Anda tahu bahwa kita memerlukan protokol transport untuk mengirim paket IP tersebut.

Saya ingin fokus pada protokol transport yang paling sering digunakan:
  • TCP (Transmission Control Protocol)
  • UDP (User Datagram Protocol)
Jadi mengapa kita memiliki 2 protokol transport yang berbeda di sini? Kapan kita membutuhkan salah satunya?

Jawaban singkatnya adalah:
TCP adalah protokol yang bersifat reliable (dapat diandalkan).
UDP adalah protokol yang bersifat unreliable (tidak dapat diandalkan) atau best effort (upaya terbaik).

Tidak bisa diandalkan alias Unreliable, Anda mungkin berpikir mengapa saya ingin transportasi data yang tidak dapat diandalkan? Apakah itu masuk akal? Saya akan menceritakan sedikit cerita untuk menjelaskan perbedaan antara kedua protokol tersebut.

Anda mau men-download sebuah file berukuran 10 GB dan setelah mengunduh 9 GB, ada yang tidak beres dan beberapa IP packet tidak berhasil sampai ke komputer Anda. Segera setelah seluruh download selesai, Anda mencoba membuka file tersebut dan Anda mendapatkan banyak error (karena sebagian isi file tidak sampai ke komputer Anda). Hal ini membuat pengorbanan waktu dan bandwidth Anda untuk men-download beberapa GB terasa sia-sia, padahal sebagian besar data telah di-download dengan baik.

Oleh sebab itu,  Anda membutuhkan sebuah protokol transport yang bisa memastikan bahwa pengiriman data dari pengirim (misal server) ke komputer Anda itu reliable (handal), nah itulah sebabnya kita menggunakan TCP. Jika beberapa IP packet tidak sampai ke komputer Anda, Anda ingin memastikan data ini akan dikirim ulang ke komputer Anda.

Dalam cerita kedua, Anda adalah seorang network engineer yang ingin mengimplementasikan Voice over IP di perusahaan Anda dan  menyingkirkan semua telepon analog. Tetapi setelah VoIP diimplementasikan, para user mengeluh karena kualitas panggilan telepon kini menjadi lebih buruk. Anda menghubungi vendor solusi VoIP tersebut dan Anda mendapatkan informasi bahwa vendor berpikir untuk menggunakan protokol transportasi yang dapat diandalkan (reliable) seperti TCP karena kita ingin panggilan telepon dapat diandalkan (reliable) bukan?

Ternyata itu adalah cara berpikir yang salah! TCP melakukan koreksi kesalahan (error correction) yang berarti bahwa data yang tidak berhasil sampai ke komputer Anda akan dikirim ulang (retransmission). Sangatlah aneh jika Anda berbicara dengan seseorang di telepon dan Anda mendengar sesuatu yang mereka katakan beberapa detik yang lalu? Komunikasi via telepon seharusnya bersifat real-time, jadi kita tidak menginginkan pengiriman ulang (retransmission). Lebih baik mengirim paket VoIP dan kehilangan beberapa paket yang error, daripada mengirimnya kembali setelah itu. Codec VoIP juga dapat memperbaiki kehilangan paket (packet loss) hingga tingkat tertentu. Dalam contoh ini (komunikasi VoIP), kita ingin menggunakan protokol yang unreliable/best effort, yaitu UDP.



Pertama-tama Anda melihat Tipe Koneksi. TCP bertipe connection-oriented yang artinya akan membuat koneksi terlebih dahulu, baru kemudian mulai mentransfer data. UDP bertipe connectionless, yang artinya akan langsung mulai mengirim dan tidak peduli apakah data tsb diterima oleh tujuan atau tidak. Koneksi yang disiapkan oleh TCP disebut "3-way handshake" yang akan kita bahas sebentar lagi.

Sequencing berarti menggunakan nomor urut. Jika Anda men-download file yang besar, Anda perlu memastikan bahwa Anda dapat mengembalikan semua segment itu dalam urutan yang benar. Seperti yang Anda lihat di tabel, UDP tidak menawarkan fitur ini, tidak ada nomor urut pada UDP.

Lalu bagaimana dengan VoIP? Bukankah kita harus mengembalikan segment-segment itu di sisi penerima? Ya, sebenarnya hal itu kita lakukan, karena kalau tidak maka kita akan mendapatkan beberapa percakapan aneh (karena suara yang diterima tidak berurutan). UDP tidak menawarkan fitur pengurutan/sequencing ini. Tapi ada sedikit rahasia, yaitu untuk VoIP itu bukan hanya UDP yang kita gunakan, tetapi juga menggunakan RTP yang menawarkan pengurutan/sequencing serta beberapa fitur lainnya yang kita perlukan untuk VoIP.

Mari kita lihat UDP header:
Anda dapat melihat betapa sederhananya UDP header, terdapat nomor (logical) port pengirim dan tujuan (digunakan untuk mengetahui data ini untuk aplikasi yang mana), ada checksum dan panjang/length.

Mari kita simpulkan apa yang sekarang kita ketahui tentang UDP:

  • beroperasi pada layer transport OSI.
  • protokol connectionless: tidak membuat koneksi, hanya mengirim data. Analoginya seperti kita mengirim surat.
  • Protokol yang bersifat unreliable/best effort.
  • Tidak ada fitur error-recovery.

Sekarang mari kita lihat apa yang bisa ditawarkan TCP kepada kita. Pertama-tama karena TCP adalah protokol yang reliable, TCP akan membuat koneksi sebelum memulai pengiriman data. Proses membuat koneksi ini disebut "3-way handshake". 

Contohnya ada 2 komputer yang ingin saling mengirim data menggunakan TCP. Client PC ingin mengirim data ke Server dengan cara yang reliable, sehingga menggunakan TCP. Berikut ini proses membuat koneksi dengan 3-way handshake:
1. Client PC mengirim SYN segment dengan random (acak) sequence number (misal 3456) ke server 
2. Server membalas dengan mengirim SYN-ACK segment dengan random sequence number (misal 4100) dan ACK number yang ditambahkan 1 dari sequence number lawannya (yaitu 3457)
3. Client PC membalas dengan mengirim ACK segment dengan ACK number yang ditambahkan 1 dari sequence number lawannya (yaitu 4101)

Setelah TCP 3-way handshake ini sukses, maka Client PC bisa melakukan upload/download file dari server.

Selain 3-way handshake ini, TCP juga mempunyai fitur lain yaitu Flow Control. 

Apa itu Flow Control
Perangkat jaringan beroperasi pada kecepatan data yang berbeda karena berbagai faktor seperti CPU dan bandwidth yang tersedia. Flow control digunakan ketika perangkat pengirim mempunyai kecepatan yang jauh lebih cepat daripada yang dapat ditangani oleh penerima. TCP menggunakan mekanisme sliding window untuk menerapkan flow control. Sliding window menggunakan window size yaitu seberapa banyak segment yang bisa dikirim kepada penerima, sebelum penerima mengirim ACK kepada pengirim. Jadi window size itu menunjukkan ukuran buffer pada penerima. Mengenai Window Size ini kan saya bahas di tulisan lain yah :)

Kesimpulan:
  • Pada layer 4 (transport) OSI ada 2 protokol yang sering kita gunakan yaitu TCP & UDP (selain kedua protokol ini, sebenarnya masih ada protokol lain seperti SCTP).
  • TCP digunakan oleh aplikasi yang membutuhkan reliability, seperti download file, email, browsing web.
  • UDP digunakan oleh aplikasi yang membutuhkan kecepatan (real-time), seperti VoIP, video streaming.
  • Sebagian besar aplikasi yang kita gunakan (seperti HTTP, HTTPS, SSH, Telnet, SMTP, POP3), menggunakan protokol TCP di layer 4 dan protokol IP di layer 3, sehingga kita sering mendengar istilah TCP/IP.

Agar lebih mudah memahami TCP & UDP, Anda bisa menonton video saya yang membahas TCP & UDP di: https://youtu.be/k4DfVCJOA4w?t=1965

Semoga bisa membantu dalam memahami topik Network Fundamentals dan jika ada pertanyaan, silahkan ketik di kolom komentar :)


Tetap semangat :)

AHa

Wednesday, May 27, 2020

Network Fundamentals: ICMP #BelajarJaringanKomputer

ICMP (Internet Control Message Protocol) adalah protokol jaringan yang digunakan untuk diagnostik dan manajemen jaringan. Contoh ICMP yang sering kita gunakan adalah utilitas "ping" yang menggunakan ICMP echo request dan ICMP echo reply. Ketika port tertentu tidak dapat dijangkau, ICMP bisa mengirim pesan error ke pengirim. Contoh lain dari aplikasi yang menggunakan ICMP adalah traceroute.

ICMP message dibungkus dalam IP packet sehingga ada orang yang mengatakan bahwa ICMP adalah protokol layer 4 seperti UDP atau TCP. Namun, karena ICMP adalah bagian penting dari protokol IP, ia biasanya dianggap sebagai protokol layer 3.

Header yang digunakan ICMP sangat sederhana, seperti inilah tampilannya:


8 bits/1 Byte pertama menentukan tipe ICMP message. Misalnya, tipe 8 digunakan untuk ICMP echo request dan tipe 0 digunakan untuk ICMP echo reply. Tipe 3 untuk destination unreachable.

8 bits/1 Byte kedua disebut code, menentukan kode atau jenis dari setiap ICMP message. Misalnya, destination unreachable memiliki 16 kode berbeda. Ketika Anda melihat kode 0 itu berarti bahwa jaringan tujuan tidak dapat dijangkau, sementara kode 1 berarti bahwa host tujuan tidak dapat dijangkau.

Kolom ketiga adalah 16 bits (2 Bytes) yang digunakan untuk checksum, untuk mengecek apakah header ICMP error atau tidak. Seperti apa field-field lain yang tersisa dari header? Itu bergantung pada tipe ICMP message yang digunakan.

Jika Anda tertarik, berikut adalah daftar lengkap semua kode dan tipe ICMP.

Untuk menunjukkan kepada Anda beberapa contoh ICMP, mari kita lihat beberapa ICMP message yang sering digunakan, menggunakan Wireshark.

1. ICMP echo
PC-X mau mengirim paket ICMP echo (ping) ke server 1.1.1.1, untuk mengetahui apakah server 1.1.1.1 bisa membalas ICMP echo dari PC-X

C:\Users\PC-X>ping 1.1.1.1

Pinging 1.1.1.1 with 32 bytes of data:
Reply from 1.1.1.1: bytes=32 time=72ms TTL=58
Reply from 1.1.1.1: bytes=32 time=85ms TTL=58
Reply from 1.1.1.1: bytes=32 time=27ms TTL=58
Reply from 1.1.1.1: bytes=32 time=158ms TTL=58

Ping statistics for 1.1.1.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 27ms, Maximum = 158ms, Average = 85ms

Dari hasil capture Wireshark, kita bisa melihat ICMP echo (ping) request yang dikirim ke server 1.1.1.1. ICMP echo (ping) request mempunyai tipe 8 dan kode 0.

Sedangkan ICMP echo (ping) Reply dari server 1.1.1.1 ke PC-X, mempunyai tipe 0 dan kode 0.


2. Destination Unreachable
PC-X mencoba mengirim ICMP echo (ping) ke server 110.5.105.30, tapi ternyata server tsb tidak bisa dicapai (unreachable) karena alasan tertentu (misalnya sedang shutdown, restart, dll).

C:\Users\PC-X>ping 110.5.105.30

Pinging 110.5.105.30 with 32 bytes of data:
Reply from 202.62.12.98: Destination host unreachable.
Reply from 202.62.12.98: Destination host unreachable.
Reply from 202.62.12.98: Destination host unreachable.
Reply from 202.62.12.98: Destination host unreachable.

Ping statistics for 110.5.105.30:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Hasil capture Wireshark, ICMP Destination Unreachable mempunyai tipe 3 dan kode 1 untuk Host Unreachable.

3. Traceroute
PC-X mengirim ICMP echo (ping) ke server 8.8.8.8 menggunakan TTL terkecil yaitu 1 dan secara bertahap dinaikkan hingga mendapat reply/balasan dari server 8.8.8.8, dengan tujuan untuk mendapatkan informasi mengenai hop-by-hop yang dilalui dari PC-X hingga sampai ke server 8.8.8.8


C:\Users\PC-X>tracert  8.8.8.8

Tracing route to 8.8.8.8 over a maximum of 30 hops
  1    14 ms    11 ms    12 ms  10.158.0.1
  2   145 ms   139 ms   219 ms  202.73.96.26
  3   168 ms   143 ms   141 ms  202.73.96.25
  4    32 ms    24 ms    28 ms  116.68.231.150
  5    34 ms    33 ms    29 ms  111.95.246.130
  6    38 ms    44 ms    28 ms  74.125.242.33
  7    26 ms    24 ms    68 ms  72.14.232.101
  8    33 ms    34 ms    67 ms  8.8.8.8
Trace complete.

Hasil capture Wireshark, ini adalah paket ICMP yang dikirim PC-X ke 8.8.8.8, dengan TTL terkecil yaitu 1. TTL ini selalu dikurangi 1 ketika transit di sebuah router. Terlihat bahwa paket ICMP mempunyai Protocol ID = 1.


Ketika sampai di router pertama (gateway terdekat), TTL 1 tsb dikurangi menjadi 0, sehingga paket di-drop oleh router dan router tersebut mengirim ICMP TTL exceeded message kepada pengirim (PC-X). ICMP TTL exceeded mempunyai tipe 11 dan kode 0.


Kesimpulan:
Kita telah membahas mengenai kegunaan ICMP, seperti apa header-nya dan beberapa contoh ICMP message yang sering kita gunakan. Jika ada pertanyaan, silahkan tulis di kolom komentar :)

Agar lebih mudah memahami tentang ICMP, sebaiknya tonton video saya yang membahas mengenai ICMP di: https://youtu.be/k4DfVCJOA4w?t=1290

Semoga bermanfaat & tetap semangat untuk belajar :)

-AHa-

Monday, May 25, 2020

IndoNetworkers Online Class (Jun '20): CCNA & JNCIA #BelajarJaringanKomputer


Dikarenakan masih banyaknya permintaan akan kelas CCNA & JNCIA-Junos pada bulan Romadhon yang lalu, maka IndoNetworkers Community kembali mengadakan kelas training online sekaligus berdonasi untuk kegiatan amal "Sembako untuk Pekerja Harian" sebagai bagian dari kegiatan komunitas dalam  #BersamaLawanCorona

1) JNCIA-Junos
Tanggal 1 - 5 juni 2020
jam 9.00 - 12.00 WIB

2) Cisco CCNA
Tanggal 1 - 5 juni 2020
jam 13.00 - 17.00 WIB

Para peserta training hanya perlu menggunakan web browser (Chrome, Firefox, Edge) untuk mengikuti kelas ini.

Biaya sukarela/seikhlasnya*, mulai dari Rp 49.000 hingga Rp 599.000
*10% akan disumbangkan untuk kegiatan amal "Sembako untuk Pekerja Harian" https://kitabisa.com/campaign/sembakopekerjaharian

Registrasi: http://IndoNetworkers.org/register

*Jika ingin GRATIS karena ketiadaan dana untuk training, silahkan menghubungi info@IndoNetworkers.org

info selengkapnya di: https://www.IndoNetworkers.org
---

AHa


Network Fundamentals: ARP protocol #BelajarJaringanKomputer

Jika Anda mengetahui tentang OSI model dan proses enkapsulasi/dekapsulasi, Anda tahu bahwa ketika dua komputer di LAN ingin saling berkomunikasi, hal berikut akan terjadi:

IP packet dibuat dengan Header yang berisi Source & Destination IP address, dan membawa data dari suatu aplikasi.
IP packet akan di-enkapsulasi dalam Ethernet frame dengan Source (pengirim) & Destination (tujuan) MAC address.

Komputer pengirim tentu saja akan tahu MAC address pengirim (diri sendiri) tetapi bagaimana cara mengetahui MAC address tujuan? Di situlah ARP berperan.


Pada gambar di atas, ada dua komputer, PC1 dan PC2 yang mempunyai IP address dan MAC address masing-masing.

Dari PC1, buka command prompt dan ketik:

C:\Users\PC1>ping 10.1.1.10

Pinging 10.1.1.10 with 32 bytes of data:
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128

Ping statistics for 10.1.1.10:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Sebelumnya kita telah membahas OSI model di tulisan ini dan kita juga tahu bahwa data harus melewati semua layer/lapisan.

Ping menggunakan protokol ICMP dan IP berada di Network Layer (layer 3). IP packet akan memiliki Source IP address 10.1.1.5 dan Destination IP address 10.1.1.10.
Langkah selanjutnya adalah menempatkan IP packet dalam Ethernet frame di mana terdapat Source MAC address dan Destination MAC address.

Nah ... bagaimana PC1 tahu tentang MAC address PC2? PC1 tahu IP address PC2 karena user mengetiknya (ping 10.1.1.10), tetapi tidak ada cara bagi PC1 untuk mengetahui MAC address PC2. Ada protokol lain yang digunakan untuk menyelesaikan masalah ini, protokol itu disebut ARP (Address Resolution Protocol).

Mari kita lihat lebih detail cara kerja ARP dan bagaimana fungsinya:


Dalam contoh ini, ada 2 komputer dengan IP address dan MAC address berbeda. PC1 akan ingin mengirim ICMP ping ke PC2. ARP-table kosong sehingga PC1 tidak tahu MAC address PC2. Hal pertama yang akan dilakukan PC1 adalah mengirimkan ARP-Request yang intinya mengatakan "Siapa yang memiliki 10.1.1.0 dan berapa MAC address-nya?"
Karena PC1 tidak tahu MAC address PC2, PC1 menggunakan alamat MAC broadcast sebagai tujuan (FFFF:FFFF:FFFF). ARP-Request ini akan menjangkau semua host di jaringan.

PC2 akan membalas dengan pesan ARP-Reply secara unicast (ditujukan hanya untuk PC1) yang intinya mengatakan "itu saya! Dan ini MAC address saya ”. PC1 sekarang dapat menambahkan MAC address ke ARP table. Setelah itu PC1 bisa mengirim data menuju PC2.

Hasilnya, ARP table di PC1 akan seperti ini:

C: Users\PC1> arp -a

Interface: 10.1.1.5 --- 0x14
  Internet Address      Physical Address      Type
  10.1.1.10                    f8-62-14-42-38-2e     dynamic

Pada contoh di atas, Anda melihat contoh tabel ARP pada PC1. Saat ini, PC1 telah mengetahui bahwa IP address 10.1.1.10 telah dipetakan ke MAC address f8-62-14-42-38-2e.

Kita bisa menangkap ARP packet menggunakan Wireshark:



Di atas, kita bisa melihat ARP-Request dari PC1 yang mencari MAC address dari IP PC2. Source MAC address adalah MAC PC1, Destination MAC address adalah "Broadcast" sehingga akan dikirim ke semua host di jaringan.

Paket kedua adalah ARP-Reply dari PC2. PC2 mengirim MAC address-nya ke PC1.


Penjelasan ARP versi video, bisa dilihat di: https://youtu.be/k4DfVCJOA4w?t=154

Kesimpulan:
  • ARP (Address Resolution Protocol) adalah protokol di OSI layer 3 (network) yang berfungsi utk mapping (memetakan) IP address ke MAC address. 
  • ARP melibatkan ARP-Request (broadcast) dan ARP-Reply (unicast).


Semoga tulisan dan video di atas bisa membantu dalam memahami protokol ARP.
Selamat belajar :)

-AHa-

#BelajarJaringanKomputer

Friday, May 22, 2020

Network Fundamentals: IPv4 header #BelajarJaringanKomputer

Sebelumnya saya sudah membahas mengenai karakteristik dari protokol IP. Nah pada tulisan ini, saya akan membahas OSI Layer 3 header pada protokol IP yang disebut IP Header. Header di setiap IP packet mempunyai field. Apa saja fungsi dari masing-masing field pada IP version 4 header?
Perhatikan gambar berikut:


Kita mulai dari field pertama hingga terakhir.

  • Version (4 bits): field pertama ini berisi informasi mengenai versi IP yang kita gunakan. Karena kita membahas IPv4, maka field ini selalu bernilai 4
  • Header length (4 bits): berisi informasi panjang IP header dalam satuan 4 Bytes atau 32 bit. Panjang minimum dari IP header adalah 20 bytes, sehingga nilai minimum pada field ini adalah 20 Bytes/4 Bytes = 5.  Maximum value pada field ini adalah 15 (sehingga maximum panjang IPv4 header adalah 15 x 4 Bytes = 60 Bytes). Field ini disebut juga internet header length.
  • Type of Service (ToS, 8 bits): digunakan untuk Quality of Service (QoS). Field ini digunakan untuk menandai (marking) IP packet sehingga kita bisa memberikan perlakuan (treatment) khusus sesuai marking pada IP packet tersebut. IP Precedence (3 bits) atau DSCP (6 bits) terdapat pada field ini. Mengenai IP Precedence dan DSCP ini akan dibahas lebih detail di topik QoS.
  • Total Length (16 bits): berisi informasi ukuran IP packet (termasuk header dan data) dalam satuan Bytes. Panjang minimum adalah 20 Bytes (hanya IP header, tanpa data) dan panjang maximum 65.535 Bytes (16 bits).
  • ID/Identification (16 bits): Jika IP packet mengalami fragmentasi, maka setiap 'fragmented packet' menggunakan nomor identifikasi (16 bits) yang sama untuk menandakan bahwa fragment ini termasuk IP packet yang mana.
  • IP Flags (3 bits): digunakan untuk fragmentasi paket.
        - Bit pertama selalu bernilai 0
        - Bit kedua disebut DF (Don't Fragment) bit dan menandakan agar paket ini tidak di-fragment.
        - Bit ketiga disebut MF (More Fragments) bit dan di-set di semua 'fragmented packet' kecuali paket fragment yg terakhir.
  • Fragment Offset (13 bits): menandakan posisi 'fragmented packet' di dalam IP packet original.
  • Time to Live (8 bits): Setiap kali IP packet melewati sebuah router, TTL akan dikurang 1. Ketika TTL mencapai 0, maka router akan men-drop paket dan mengirim paket ICMP exceeded message ke pengirim.  TTL digunakan untuk mencegah paket dari looping yang terus-menerus (jika terjadi routing loop).
  • Protocol (8 bits): berisi informasi protokol yang dibungkus di dalam IP packet, contohnya TCP (value 6) dan UDP (value 17).
  • Header Checksum (16 bits): menyimpan checksum dari header. Receiver/penerima bisa menggunakan checksum ini untuk mengecek apakah ada error pada IP header.
  • Source Address (32 bits): berisi source IP address (pengirim).
  • Destination Address (32 bits): berisi destination IP address (tujuan).
  • IP Option: field ini jarang digunakan dan bersifat optional. Panjangnya bervariasi (tidak fixed) berdasarkan option yang digunakan. Ketika field ini digunakan, maka nilai pada field Header Length akan bertambah (karena panjang header memang akan bertambah). Contoh penggunaan IP option adalah source route, record route.

Berikut ini adalah contoh IP packet yang di-capture menggunakan Wireshark:


Semoga ilmu ini dapat membantu dalam memahami isi dari IPv4 header.
Jika ada pertanyaan, bisa langsung di kolom comment ya.

Selamat belajar :)

-AHa-

Saturday, May 16, 2020

Network Fundamentals: IP (Internet Protocol) version 4 #BelajarJaringanKomputer

IP (Internet Protocol) merupakan protokol yang sering kita gunakan sehari-hari di jaringan komputer. Protokol IP mempunyai PDU (Protocol Data Unit) yang disebut Packet. IP Packet membawa informasi berupa L3/IP header, selain data. Protokol IP menentukan ke mana paket akan dikirim dengan melihat IP address tujuan (Destination address) yang terdapat di IP header.

Berikut ini adalah karakteristik dari protokol IP
1. Berada di network layer pada OSI Layer 3/Network (di TCP/IP disebut Internet layer).
2. Connectionless artinya protokol IP tidak membangun koneksi sebelum mengirim paket (analoginya seperti mengirim surat).
3. Setiap paket diperlakukan secara independen. Tidak ada kepastian bahwa paket akan tiba secara berurutan ketika sampai tujuan. Antara 1 router dengan router lain bisa memberikan prioritas atau treatment yang berbeda untuk IP packet yang sama.
4. Best Effort: IP tidak melakukan pengecekan apakah packet telah diterima atau tidak. Dan tidak melakukan error recovery seperti retransmission request.
5. Protokol IP mempunyai alamat yang disebut sebagai IP address.



Di dalam IP header, terdapat beberapa field, antara lain adalah Protocol,  Source address, Destination address, Time To Live.
Protocol: informasi protocol layer 4/Transport yang dibawa, misalkan TCP atau UDP.
Source address: alamat IP (logical) pengirim
Destination address:  alamat IP (logical) tujuan
Time To Live (TTL): jumlah sisa hop yang bisa dilalui oleh paket ini

Kita membutuhkan IP address yang unik untuk setiap perangkat di jaringan. IP address itu analoginya seperti alamat rumah. Setiap rumah harus mempunyai alamat yang unik di sebuah kota.

Saat ini protokol IP mempunya 2 versi, yaitu IP version 4 & version 6.
IPv4 address panjangnya 32 bit, sehingga jumlah max IPv4 address = 2^32 = 4,2 milyar alamat
IPv6 address panjangnya 128 bit, sehingga jumlah max IPv6 address = 2^128 = 3,4 x 10^38 alamat (wow buanyak buanget yak :D )

Sebelum kita bahas IP address lebih lanjut, kita lihat dulu bagaimana konversi dari biner ke desimal (1 octet terdiri dari 8 bit)


IP address terdiri dari dua bagian yaitu bagian Network dan bagian Host.
Bagian Network seperti nama jalan, sedangkan bagian Host seperti nomor rumah.


IPv4 address ditulis dalam 4 bagian yang masing-masing panjangnya 8 bits. 8 bits ini kita sebut sebagai octet atau Byte.

Contoh IP address yang sering kita gunakan: 192.168.1.1
3 octet yang pertama adalah bagian Network (berisi Network bits) sedangkan 1 octet terakhir adalah bagian Host (berisi Host bits).

Untuk membedakan mana Network bits dan mana Host bits, digunakanlah subnet mask.  Subnet Mask berfungsi untuk membedakan 2 jenis bits tsb, yaitu dengan memberikan biner 1 untuk Network bit dan biner 0 untuk host bit.

IP address dibagi menjadi 3 class (kita bisa membedakan tiap class, cukup dengan melihat octet 1 saja)

Class A: 0xxxxxxx.___.___.___
octet 1: 00000000 s.d. 01111111 = 0 s.d. 127
Di class A ini, ada 2 network yang reserved, yaitu 0.0.0.0 & 127.x.x.x
  • 0.0.0.0 digunakan sebagai unspecified address dan default route
  • 127.x.x.x digunakan sebagai loopback.
Jika kita ping ke 127.0.0.1 atau 127.x.x.x yang lain, akan menuju ke perangkat kita sendiri (local loopback).

Class A mempunyai 8 network bits dan 24 host bits

--
Class B: 10xxxxxx.___.___.___
octet 1: 10000000 s.d. 10111111 = 128 s.d. 191

Kelas B mempunyai 16 Network bits dan 16 host bits

--
Class C: 110xxxxx.___.___.___
octet 1: 11000000 s.d. 11011111 = 192 s.d. 223

Kelas C mempunyai 24 Network bits dan 8 host bits
--
class D digunakan untuk multicast address
octet 1: 11100000 s.d. 11101111 = 224 s.d. 239

Cara penulisan subnet mask, bisa menggunakan bentuk desimal (misal 255.0.0.0) atau prefix-length (jumlah network bits, misal /8)

Pada IP address, ada private IP address dan public IP address.
1.) Private IP address: tidak dapat digunakan di internet, hanya untuk penggunaan internal  (misal di rumah, kantor)
10.0.0.0/8 => 10.0.0.0 s.d. 10.255.255.255
172.16.0.0/12 => 172.16.0.0 s.d 172.31.255.255
192.168.0.0/16 => 192.168.0.0 s.d. 192.168.255.255

2.) Public IP address: digunakan di internet.
semua IP address di antara 1.x.x.x s.d. 223.x.x.x selain yang termasuk private IP address di atas.

Di setiap jaringan, terdapat tiga jenis alamat:
1.) Network address: sebagai Network ID.
IP address paling pertama di setiap jaringan. Host bit-nya 0 semua.
contoh:
class A 10.0.0.0/8
class B 172.16.0.0/16
class C 192.168.1.0/24

2.) Broadcast address: digunakan untuk mengirim broadcast ke semua host di jaringan.
IP address paling terakhir di setiap jaringan. Host bit-nya 1 semua.
contoh:
class A 10.255.255.255/8
class B 172.16.255.255/16
class C 192.168.1.255/24

3.) Host address: alamat yang bisa digunakan oleh host, seperti PC, notebook, router, switch, AP.
IP address yang berada di antara Network address dan Broadcast address. Host bit-nya ada 0 & 1.
contoh:
class A 10.0.0.1/8 s.d. 10.255.255.254/8
class B 172.16.0.1/16 s.d. 172.16.255.255/16
class C 192.168.1.1/24 s.d. 192.168.1.255/24

2 alamat reserved yang tidak bisa kita pakai di tiap jaringan adalah network address dan broadcast address.

Video mengenai IP bisa dilihat di: youtu.be/EKmy7kwYnmQ?t=1810

Kesimpulan:
  • Protokol IP berada di OSI layer 3 dan mempunyai beberapa karakteristik, a.l.: connectionless, best-effort.
  • IP mempunyai alamat yang disebut IP address (v4 & v6).
Part 1: OSI model, bisa dibaca di aditya.hananto.net/2020/05/network-fundamentals-osi-model_12.html

Friday, May 15, 2020

Materi training gratis wireless CWS dari CWNP senilai USD 295

Bagi Anda yang ingin mempelajari tentang dasar-dasar Wireless Network (merupakan salah satu topik di Cisco CCNA & CCNP Enterprise), Anda bisa mempelajari materi training gratis dari CWNP (Certified Wireless Network Professional, yang merupakan vendor-neutral organization).

CWNP menawarkan materi training gratis (berupa video, practice test dll), untuk level entry yaitu CWS (Certified Wireless Specialist) yang harga aslinya senilai USD 295.

Materi pada topik ini sangat menarik untuk dipelajari.
Kenapa? karena sangat dekat dengan keseharian kita yang rutin menggunakan wifi (wireless). Sehingga kita bisa memahami bagaimana cara kerja device kita bisa terhubung ke jaringan wifi melalui AP (access point).

Untuk mendapatkan materi training gratis CWS, silahkan ikuti langkah-langkah berikut:
1. buat account baru di www.cwnp.com/login/
2. login menggunakan password yg dikirim ke email yang kita daftarkan
3. buka cwnp.link/cwsel
4. masukkan kode voucher CWS2020
5. lanjutkan dan pilih bayar pakai Credit Card (tidak punya CC juga bisa) karena tagihan 0
6. klik Order/Pay
7. Setelah itu, materi CWS eLearning bisa diakses di lms.cwnp.com (jangan lupa login ya)
8. Done :)

Selamat belajar :)

-AHa-

Tuesday, May 12, 2020

Network Fundamentals: OSI model #BelajarJaringanKomputer

Di banyak grup/komunitas jaringan di medsos maupun instant messaging, banyak yang berminat dengan topik dasar-dasar jaringan atau Network Fundamentals. Itu adalah hal yang bagus, karena ini adalah topik yang bisa menjadi fondasi yang bagus bagi seorang network engineer. Oleh sebab itu, pada kesempatan ini, saya mau membahas sedikit mengenai Network Fundamentals khususnya mengenai OSI model.

Jadi ceritanya begini ...
Dahulu kala di sebuah galaksi yang sangat sangat jauh ... eh salah intro :D :D :D

Pada awalnya, setiap vendor jaringan mempunyai solusi proprietary dalam membangun sebuah jaringan. solusi dari satu vendor tidak kompatibel dengan vendor lain. Hal inilah yang melatarbelakangi munculnya OSI model yang menggunakan pendekatan berlapis/layered pada jaringan, agar vendor hardware bisa mendesain hardware jaringan yang membentuk jaringan yang saling kompatibel satu sama lain.

International organization for standardization  (ISO) meneliti berbagai model jaringan dan hasilnya pada tahun 1984 muncullah OSI model. Pada saat ini banyak vendor membuat produk dan membangun jaringan berdasarkan OSI model, yang menggunakan berbagai jenis hardware dari banyak vendor yang saling kompatibel .... Nah gitu dong, kan mantap!!!

Fungsi OSI model selain untuk membuat jaringan kompatibel satu sama lain, juga salah satu cara terbaik untuk mengajarkan orang tentang jaringan komputer. Coba diingat ketika kita pertama kali belajar jaringan komputer, maka banyak sekali guru, dosen atau trainer yang merefer pada OSI model.

Berikut ini adalah OSI model yang terdiri dari 7 layer atau lapisan yang dimulai dari bawah ke atas. mari kita mulai dari bawah yaitu physical layer.

1. Physical: Layer ini berhubungan dengan hal-hal seperti level volt, konektor fisik, physical data rate, kabel. Intinya semua yang anda bisa sentuh bersifat fisik. Layer ini mengirim data secara fisik berupa bitstream, menggunakan media fisik seperti kabel UTP, Fiber Optic, Wireless/radio.
2. Data Link: Layer ini memastikan bahwa data dibungkus dengan format yang benar, melakukan error detection dan memastikan data dikirim ke tujuan sesuai alamatnya. fungsi switching ada di layer ini. Alamat fisik (physical address) seperti MAC address dan frame ethernet juga berada di layer ini .
3. Network: Layer ini melakukan pemilihan jalur terbaik menuju tujuan atau yang sering kita sebut sebagai routing. Di layer ini kita mengenal protokol IPv4 dan IPv6. setiap perangkat jaringan membutuhkan alamat yang unik di jaringan, oleh sebab itu kita mengenal adanya logical address seperti IPv4 address dan IPv6 address.
4. Transport: Layer ini berfungsi melakukan segmentasi. Ketika anda membaca tulisan ini dari internet, halaman web dikirim dalam bentuk pecahan segment-segment kecil yang dikirim ke komputer Anda. Protokol TCP dan protokol UDP ada di layer ini. TCP mengirim data secara reliable, sedangkan UDP mengirim data secara unreliable.

4 layer di atas, termasuk lower layer, yang berfokus pada data transport yaitu bagaimana agar data bisa sampai ke tujuan.
Sedangkan 3 layer berikutnya ada di upper layer, yang berfokus pada data handling yaitu bagaimana meng-handle data yang diterima, itulah yang dilakukan oleh aplikasi atau software.

5. Session: Layer ini bertugas untuk membangun dan memutus session antar 2 host. Ketika anda browsing ke sebuah website di internet, kemungkinan Anda bukan satu-satunya user dari web server tersebut. Web server tersebut butuh untuk mencatat semua session yang terhubung ke server tersebut.
6. Presentation: Layer ini memastikan bahwa informasi bisa dibaca oleh layer aplikasi dengan cara melakukan formatting pada data. Contohnya: kebanyakan komputer menggunakan ASCII untuk setiap karakter, sedangkan ada juga komputer lain yang menggunakan EBCDIC, kemudian Presentation Layer butuh untuk memformat jenis data agar dua komputer tsb sepakat dengan format yang sama. Layer ini juga melakukan enkripsi data.
7. Application: Di layer inilah terdapat aplikasi yang kita sering gunakan, seperti email, browser, file transfer dsb. Application layer berfungsi untuk menerima input dari user, memberi output kepada user, memberitahu siapa lawan bicara kita di jaringan dan juga untuk melakukan otentikasi terhadap user yang akan menggunakan aplikasi tersebut .

Untuk memudahkan Anda dalam menghafal urutan layer di OSI model, bisa menggunakan kalimat ini:
Anak Pak Soleh Tidak Nakal Dan Pintar
:)

Misalkan kita analogikan Pengiriman data di jaringan komputer dengan pengiriman surat di kehidupan nyata:
1. Anda menulis surat
2. Anda masukkan surat ke dalam amplop
3. Anda menulis nama pengirim dan nama tujuan pada amplop
4. Anda Letakkan amplop di dalam kotak surat
5. isi dari kotak surat akan diproses ke kantor pos
6. surat anda akan dikirim kepada penerima
7. penerima akan membuka amplop dan membaca isinya

Tapi jika Anda memasukkan surat langsung ke dalam kotak surat (tanpa amplop dan keterangan tambahan lain),  maka surat tersebut tidak akan sampai. Dari atas sampai ke bawah, kita melihat bahwa surat tersebut dibungkus ke dalam amplop ditambah beberapa informasi tambahan, barulah kemudian dikirim sampai ke penerima. Kemudian penerima akan membongkar amplop, baru bisa membacanya.

Mari kita lihat contoh sederhana dari pengiriman data di jaringan komputer:
1. Anda duduk di belakang komputer dan mau download file dari server. Anda buka web browser dan mengetik alamat URL server tujuan. Komputer Anda akan mengirim pesan pada web server meminta halaman web. Sekarang Anda menggunakan protokol HTTP yang ada di Application Layer.
2. Presentation layer akan membuat struktur data dari aplikasi sesuai dengan format tertentu, misal ASCII, EBCDIC.
3. Session layer akan memastikan bahwa semua session terpisah satu sama lain.
4. Bergantung pada aplikasi yang digunakan, pengiriman data bisa menggunakan protokol yang reliable (TCP) atau yang unreliable (UDP). Pada contoh ini, akan dipilih protokol TCP karena protokol aplikasi HTTP ingin memastikan bahwa halaman web sampai ke komputer Anda secara utuh.
5. Komputer Anda mempunyai IP address yang unik (misal 10.10.10.10) dan akan membuat paket IP. Paket IP ini berisi semua data dari Application layer, Presentation & Session layer. Di dalamnya juga terdapat informasi protokol transport apa yang digunakan (TCP), source address (komputer Anda) dan destination address (web server).
6. Paket IP akan dibungkus ke dalam ethernet frame. Ethernet frame mempunyai source MAC address dan Destination MAC address.
7. Akhirnya, semua data akan dikonversi ke biner dan kemudian bitstream tsb dikirim melalui kabel menggunakan sinyal elektrik atau nirkabel/wireless

Mirip seperti pada pengiriman surat, itulah yang terjadi juga di pengiriman data di jaringan komputer. Dari application layer hingga turun ke physical layer, terjadi proses membungkus data dengan header. Hal itu disebut sebagai Data Encapsulation. Sedangkan dari physical layer menuju ke atas sampai application layer terjadi proses membaca dan membongkar header, disebut Data De-encapsulation.

Jadi setiap layer memberikan informasi tambahan pada header, misal Source address, Destination address, source port, destination port, dll. Setiap unit data yang mempunyai header tertentu disebut PDU (protocol data unit). Tiap PDU mempunyai nama yang berbeda di setiap layer:
  • Transport layer: Segment. contoh: TCP segment.
  • Network layer: Packet. contoh: IP packet.
  • Data link layer: Frame. contoh: Ethernet frame.
Kesimpulan:
Nah kini Anda telah belajar mengenai OSI model dan 7 layer-nya, yang merupakan bagian penting dari topik Network Fundamentals.
Untuk lebih jelasnya mengenai Network Fundamentals, Anda bisa menonton video training Cisco CCNA day 1 session 1 di link ini: https://youtu.be/LiMdHeaS4zY
 
-AHa-

https://www.cloudflare.com/img/learning/ddos/what-is-a-ddos-attack/osi-model-7-layers.svg

Instalasi Jitsi Meet pada Linux Ubuntu Server

Pada saat pandemi seperti ini, banyak kegiatan yang dilakukan dari rumah saja seperti WFH (Work From Home) dan SFH (Study From Home). Kegiatan WFH & SFH ini membutuhkan koneksi ke internet dan aplikasi yang mendukung seperti online meeting, webinar, virtual classroom dll.

Untuk memenuhi kebutuhan tersebut, kita bisa memilih banyak layanan baik yang berbasis web maupun desktop app, seperti Google Meet, Cisco Webex, Zoom, Ms Teams, dll. Biasanya ada versi gratis dengan limitasi tertentu misal jumlah maksimum partisipan, durasi waktu, dll.

Ada salah satu opsi untuk menggunakan server kita sendiri sebagai server (on-premise) untuk layanan online meeting menggunakan aplikasi open-source seperti Jitsi dan BBB (BigBlueButtom).
Yang Anda butuhkan adalah: server (physical atau VM), koneksi ke internet (ya jelas lah :) ) dan domain name (optional).
Pada tulisan kali ini, saya akan berbagi cara instalasi aplikasi Jitsi menggunakan server dengan OS Linux Ubuntu Server.

Langkah 1: instalasi Jitsi meet
login ke Ubuntu server 20.04 Anda, lalu masukkan perintah ini:

$ echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list

$ wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -

$ sudo apt install apt-transport-https

$ sudo apt update && apt upgrade

$ sudo apt install jitsi-meet
masukkan hostname & pilih "Generate a new self-signed certificate"

instalasi telah selesai. sekarang cek status service jitsi, seharusnya status-nya running
$ systemctl status jitsi-videobridge2
--

Langkah 2: allow port yg dibutuhkan di UFW, yaitu tcp 80,443 untuk http/https service dan udp 5000,10000 untuk traffic video

$ sudo ufw allow 80,443/tcp
$ sudo ufw allow 10000,5000/udp

cek status UFW:
$ sudo ufw status verbose
--

Langkah 3: (optional) mendapatkan Trusted Let'sEncrypt TLS certificate untuk hostname server Jitsi Anda

sebelumnya masuk ke bagian DNS editor di domain registrar Anda, dan buat A record untuk hostname Jitsi Anda (misal meet.hananto.net),
kemudian jalankan script ini untuk mendapatkan trusted TLS certificate

$ sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
--

Langkah 4: (Optional) jika server Jitsi Anda berada di belakang NAT device, maka masukkan command sbb

$ sudo nano /etc/jitsi/videobridge/sip-communicator.properties

hapus atau jadikan comment untuk baris ini:
org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443

tambahkan 2 baris ini di paling bawah:
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=a.b.c.d  --> ganti dengan private IP address server Jitsi Anda
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=w.x.y.z --> ganti dengan Public IP address server Jitsi Anda

tekan CTRL-X dan Yes untuk save/menyimpan file

Restart service jitsi
$ systemctl restart jitsi-videobridge2
$ systemctl status jitsi-videobridge2
--

Langkah ke-5: Memulai Online Meeting via web browser

buka web browser dan masukkkan alamat https://a.b.c.d (IP address server) atau https://[nama hostname]
Silahkan membuat Online meeting room dan undang rekan-rekan Anda untuk bergabung

Selamat mencoba :)

-AHa-

Monday, May 11, 2020

Apa perbedaan ujian Juniper JNCIA JN0-103 dengan JN0-102 yg lama?

JNCIA-Junos yang merupakan sertifikasi Juniper yg paling favorit di antara level Associate yg lain, sejak 29 Maret 2020 menggunakan kode ujian baru yaitu JN0-103. sebelumnya kode JN0-102. . Dulu kalau tidak salah, dulu pertama kali saya ngambil exam JNCIA-Junos, examnya berkode JN0-101. kemudian lanjut sampai JNCIP dan 3 tahun kemudian hangus karena tidak ambil ujian Juniper lagi untuk recertify .... *tepokJidat 
Setelah sempat sertifikat Juniper hangus selama 1 atau 2 tahun, lalu ngambil lagi exam Juniper, merangkak dari bawah lagi JNCIA, JNCIS lalu dapat JNCIP lagi. Nah pas ngambil lagi, dapat ujian JNCIA-Junos berkode JN0-102 (sebelumnya 101).

Dari pengalaman saya, keduanya tidak terdapat perbedaan yg signifikan, maksudnya bahan materi yang dipelajari ya mirip, hanya beda variasi soal saja.

Lalu bagaimana perbandingan JN0-102 dan exam baru kode JN0-103? saya tidak tahu persis karena saya tidak mengambil exam kode baru ini, kebetulan sertifikat Juniper saya masih valid sampai 2022, jadi belum ada kebutuhan mendesak untuk ngambil ujian lagi :D
Tapi kalau dilihat dari bagian Exam Objectives di website juniper, materi JN0-103 sangat mirip sekali dengan JN0-102, malah ada 1 topik yg hilang, yaitu Network Fundamentals (misal OSI, TCP/IP, dll). Topik tsb sudah tidak tercantum di Exam Objectives di ujian JN0-103. 
Di salah satu forum internet, saya membaca salah satu postingan yg mengatakan bahwa dia belajar materi ujian JN0-102 lalu mengambil ujian JN0-103 ... dan lulus. TS mengatakan materinya sangat mirip hingga 90%-an.

Apakah topik Network Fundamentals benar-benar tidak muncul di ujian JN0-103?
Kalaupun iya, bukan berarti bagi yg mau ujian JN0-103 tidak perlu paham materi Network Fundamentals, tapi ya harus kudu wajib paham dan mengerti tentang Network Fundamentals. karena topik itu seperti fondasi rumah. kalo fondasi kurang kuat, tiang sebagus apapun ya mudah roboh :)

Mungkin bagi yg baru-baru ini mengambil ujian JN0-103 bisa berbagi tentang pengalamannya?
Semoga bisa bermanfaat bagi rekan-rekan lain yang berminat mengambil ujian JN0-103 dalam waktu dekat.

sumber:
  • https://www.juniper.net/us/en/training/certification/certification-tracks/sp-routing-switching-track/?tab=jnciajunos
  • https://www.juniper.net/us/en/training/certification/certification-tracks/ent-routing-switching-track/?tab=jnciajunos
 Exam Objectives JN0-103
-AHa-

Dasar-dasar Jaringan Komputer (Tulisan & Video)

Bagi yang ingin belajar jaringan komputer dari dasar, saya sarankan mengikuti link ini (ada versi tulisan dan video di dalamnya) #NetworkF...