Anda di halaman 1dari 278

✤❁❆▼❁❒ ✩▲❉

✢✡✢ ✑
✤❁▲❁❒✍
✤❁▲❁❒✍❄❁▲❁❒ ✴✣✰✏✩✰

Konsep Internetworking dengan TCP/IP 1-2


Tentang TCP/IP 1-2

TCP/IP 1-2

TCP/IP dan Internet 1-3

TCP/IP Features 1-3

Model Komunikasi Data 1-4

Arsitektur Protokol TCP/IP 1-8

Dasar-dasar Pembentukan Jaringan TCP/IP 1-13


Pengalamatan dan IP Address 1-13

Routing 1-18

Tabel Routing 1-19

Mekanisme routing berdasarkan tabel routing 1-19

Name Service 1-20

DNS (Domain Name Service) 1-24

✢✡✢ ✒
✰❅❒❅■❃❁■❁❁■ ✬✡✮ ❄❁■ ✩■▼❅❒■❅▼◗❏❒❋ ✴✣✰✏✩✰

Pendahuluan 2-2

Metodologi Perencanaan LAN 2-2

Media Implementasi Jaringan 2-3


Twisted Pair 2-3

Kabel Koaksial 2-4

Fiber Optik 2-5

Wireless 2-5

Topologi Fisik Jaringan 2-6


Topologi Ring 2-7

Topologi Star 2-7

Topologi Logic 2-8


Token Ring 2-9

ARCnet 2-10

FDDI 2-10

Jaringan Ethernet 2-11


Komponen Jaringan Ethernet 2-11

Instalasi Kabel Ethernet 2-12

Menghubungkan PC ke Jaringan Ethernet 2-15

Elemen-elemen Internetworking 2-18


Repeater 2-18

Bridge 2-19

2
!

Router 2-19

Switch 2-20

Converter 2-21

Internetwork Heterogen 2-21


Internetwork Menggunakan Bridge 2-22

Internetwork Menggunakan Router 2-23

Perencanaan Internetwork TCP/IP 2-26


Pengalokasian Alamat IP 2-28

Pengaturan Routing 2-28

Penempatan Server 2-29

Penanganan Protokol Jaringan yang Berbeda 2-30

✢✡✢ ✓
✳❅❋❉●❁▲ ✴❅■▼❁■❇ ✵✮✩✸

Pendahuluan 3-2
Membuat Disket Boot 3-2

Pada sistem DOS 3-3

Pada sistem FreeBSD 3-3

Instalasi dari CDROM 3-3

Instalasi dari Floppy 3-3

Instalasi dari Partisi DOS 3-4

Instalasi dari QIC/SCSI Tape 3-4

Instalasi dari Jaringan 3-4

Instalasi melalui FTP 3-5

3
Instalasi FreeBSD (FTP) 3-5

Memulai dan Mengakhiri FreeBSD 3-11

Perintah-perintah Dasar Utiliti Sistem dan Regular 3-13


Expression
Regular Expression 3-13

Redirection dan Pipes (filter) 3-13

Operasi File dan Direktori 3-14

Teks Editor: vi 3-17

✢✡✢ ✔
✭❅■❇❋❏■❆❉❇◆❒❁▲❉ ✮❅▼◗❏❒❋ ✩■▼❅❒❆❁❃❅

Pendahuluan 4-2

Konfigurasi Interface Menggunakan ifconfig 4-2


Menggunakan Perintah netstat 4-3

Memeriksa Interface dengan ifconfig 4-5

Mengeset Broadcast Address 4-7

Memberikan Address pada Network Interface 4-7

Command Option yang lain dari ifconfig 4-7

TCP/IP Melalui Serial Line 4-9

Memilih Protokol Serial 4-10

Mengkonfigurasi Interface SLIP 4-10


slattach 4-11

4
!

sliplogin 4-13

Mengkonfigurasi PPP 4-14

Melakukan Konfigurasi Pada Startup File 4-15

✢✡✢ ✕
✫❏■❆❉❇◆❒❁▲❉ ✲❏◆▼❉■❇

Pendahuluan 5-2

Subnetting 5-2

Topologi Network dan Routing 5-6

Konfigurasi Routing yang Sering Digunakan 5-8


Minimal routing 5-9

Static routing 5-9

Dynamic routing 5-9

Membentuk Routing Table 5-10

Routing Information Protokol 5-13

Penggunaan routed/gated 5-15

✢✡✢ ✖
✤❏❍❁❉■ ✮❁❍❅ ✳❙▲▼❅❍ ✈✤✮✳✉ ✢❅❒❋❅●❅❙ ✩■▼❅❒■❅▼ ✮❁❍❅
✤❏❍❁❉■ ✈✢✩✮✤✉

Pendahuluan 6-2

Top Level Domain dan Pendelegasian 6-5

Name Server 6-8


5
Resolver dan Resolution 6-9

Konfigurasi DNS 6-12


Konfigurasi boot-script DNS server 6-12

Konfigurasi caching-only DNS server 6-13

Konfigurasi Primary dan Secondary server 6-14

Konfigurasi Primary dan Secondary server untuk Reverse Domain 6-15

Konfigurasi Zone-file 6-16

Start of Authority (SOA) 6-16

Name-Server (NS) 6-19

Address (A) 6-20

Mail eXchanger (MX) 6-21

Canonical NAME (CNAME) 6-23

Host INFOrmation (HINFO) 6-23

Well Known Service (WKS) 6-24

Konfigurasi Zone-file untuk Reverse Domain 6-25

Konfigurasi Cache-file 6-25

Menjalankan DNS Server 6-27

Konfigurasi Resolver 6-28

Utility nslookup 6-28

✢✡✢ ✗
✳❅■❄❍❁❉●✚ ✩■▲▼❁●❁▲❉ ❄❁■ ✣❁❒❁ ✰❅■❇❏❐❅❒❁▲❉❁■

Pendahuluan 7-2

Instalasi Dasar 7-3


6
!

Mengkompile Sendmail 7-3

File Konfigurasi 7-4

Detail File-file untuk Instalasi 7-4

Operasi Normal 7-10


Log System 7-10

Antrian (The Mail Queue) 7-11

Menampilkan Antrian 7-11

Memaksa Antrian 7-12

Database Alias 7-13

Memperbaharui database alias 7-15

Masalah yang potensial terjadi 7-15

List owners 7-15

Per-User Forwarding (file .forward) 7-16

Argument 7-17
Queue Interval (-q) 7-17

Daemon Mode 7-17

Memaksa Antrian 7-17

Debugging 7-18

Menggunakan File Configuration yang Berbeda 7-18

Mengubah Harga Option 7-18

Logging Traffic 7-19

File sendmail.cf 7-19


Lokasi Contoh File sendmail.cf 7-20

7
Struktur sendmail.cf 7-20

Konfigurasi sendmail.cf 7-23


Perintah Mendefinisikan Macro 7-25

Kondiri Bersyarat 7-27

Perintah Pendefinisian Class 7-27

Perintah Set Option 7-29

Mendefinisikan Trusted Users 7-31

Mendefinisikan Mail Precedence 7-32

Mendefinisikan Mail Headers 7-32

Mendefinisikan mailer 7-33

Rewriting Mail Address 7-37


Pattern Matching 7-37

Transformasi Address 7-39

Set Perintah di Ruleset 7-43

Modifikasi sendmail.cf 7-45


Modifikasi General Macro 7-46

Modifikasi Classes 7-47

Modifikasi Version Number 7-47

Modifikasi Option 7-47

Modifikasi Rewrite Rules 7-48

Menguji sendmail.cf 7-49


Menguji Rewrite Rules 7-52

✢✡✢ ✘

8
!

✭❅❍❂◆❁▼ ✦✴✰ ✳❅❒❖❅❒ ❄❁■ ✷❅❂ ✳❅❒❖❅❒

FTP Server 8-2


Pendahuluan 8-2

Konfigurasi FTP server 8-3

Filesystem 8-5

Memasang FTP server pada FreeBSD 8-6

Memelihara Arsip FTP 8-9

Web Server 8-10


WWW Server 8-10

NCSA 8-10

CERN 8-11

Plexus 8-11

WWW Browser 8-11

HTTP 8-13

Konfigurasi Web Server 8-13

Konfigurasi httpd.conf 8-14

Konfigurasi srm.conf 8-15

Konfigurasi access.conf 8-15

Menjalankan Server 8-16

Test Web Server 8-18

✢✡✢ ✙
✮❅▼◗❏❒❋ ✳❅❃◆❒❉▼❙

Network Security secara Umum 9-2

9
Konsep dalam Network Security 9-3
Perencanaan Security 9-3

Mengenali ancaman terhadap network security 9-3

Metoda-metoda yang digunakan dalam network security 9-5

Security Monitoring 9-14

COPS 9-17

Software Aplikasi dalam Network Security 9-18


Firewall 9-18

Kontrol Akses 9-18

COPS 9-20

✢✡✢ ✑✐
✴❒❏◆❂●❅▲❈❏❏▼❉■❇ ✴✣✰✏✩✰

Memahami Permasalahan 10-2

Beberapa Petunjuk dalam Troubleshooting 10-3

Diagnostic Tools 10-3

Memeriksa Sambungan 10-5

Troubleshooting pada Lapisan Network-Access 10-8


Troubleshooting dengan perintah ifconfig 10-8

Troubleshooting dengan perintah arp 10-10

Mengecek Interface dengan netstat 10-11

Subdividing Ethernet 10-13

Problem pada hardware jaringan 10-14

10
!

Memeriksa Table Routing 10-15


Tracing routes 10-16

Memeriksa Name Service 10-18


Beberapa sistem beroperasi, yang lain tidak 10-19

dig, alternatif lain buat nslookup 10-21

✢✡✢
✢✡✢ ✑✑
✴✣✰✏✩✰ ❄❁■ ✩■▼❅❇❒❁▲❉ ❋❅ ✷✡✮

Alternatif Log Distance TCP/IP Gateway Biaya Rendah 11-2


NOS sebagai gateway WAN via packet radio network 11-2

Unix sebagai gateway WAN via phone-line 11-3

Unix sebagai gateway untuk WAN dengan satelit 11-4

Multivendor Integration 11-8


Novell Netware 11-8

Windows for Workgroup 11-15

PC/TCP 11-17

UNIX 11-17

Bagaimana Bergabung dengan Internet 11-18


Radio Paket 11-19

WaveLAN 11-21

Via Satelit: VSAT 11-24

Dial-up dan Leased Line 11-17

11
12
!

1
Dasar-dasar TCP/IP

Pada bagian ini dibicarakan hal-hal mendasar yang


akan dipakai dalam bab-bab selanjutnya. Pertama kita
akan membahas protokol TCP/IP dengan penekanan
pada konsep TCP/IP internetworking, kemudian kita
juga mengulas dasar-dasar yang digunakan dalam
membentuk jaringan TCP/IP, termasuk didalamnya IP
Address, routing dan name service.

13
Konsep Internetworking dengan
TCP/IP
Setiap komputer yang ada memiliki keterbatasan perangkat keras. Komputer yang berdiri
sendiri tidak bisa lagi memenuhi kebutuhan pemakai yang menuntut peningkatan pelayanan.
Orang pun kemudian mulai membangun infrastruktur komunikasi antar komputer. Karena
pembuat perangkat keras komputer bermacam macam , maka terdapat bermacam macam
konfigurasi hardware dan software yang berbeda. Bagaimana supaya komunikasi dapat tetap
berlangsung dan tidak dibatasi oleh perbedaan ini? Dari awal dibuatnya TCP/IP (Transmission
Control Protocol/Internet Protocol). Untuk menyatukan sistem sistem yang berbeda diperlukan
suatu kesepakatan. Pada level konsensus ini, setiap mesin yang terhubung ke jaringan harus
berperilaku sama. Dalam bagian model komunikasi data akan kita bicarakan beberapa
protokol komunikasi serta kedudukan TCP/IP didalamnya.

Tentang TCP/IP (Transmission Control


Protocol/Internet Protocol)
Komunitas Internet yang merupakan komunitas jaringan komputer terbesar diseluruh dunia
menggunakan protokol TCP/IP. Protokol ini memungkinkan sistem apapun yang terhubung
kedalamnya bisa berkomunikasi dengan sistem yang lain tanpa harus memperdulikan
bagaimana remote-system tersebut bekerja. Anda mungkin bertanya mengapa TCP/IP,
bukannya protokol yang lain?

Berikut akan disinggung beberapa hal mengenai TCP/IP:

TCP/IP
Adalah sekumpulan protokol komunikasi (protocol suite) yang sekarang ini secara luas
digunakan dalam komunitas global jaringan komputer (internetworking). TCP dan IP
merupakan dua protokol terpenting dalam TCP/IP disamping protokol protokol lainnya,
sehingga namanya demikian.
14
!

TCP/IP dan Internet


Pada tahun 1969 DARPA (Defence Advanced Research Projects Agency) mendanai riset dan
pembuatan jaringan paket switching eksperimental yang diberi nama ARPANET. Karena
dinilai sukses dan banyak organisasi lain yang menghubungkan diri dengan jaringan ini, maka
pada tahun 1975 ia menjadi jaringan operasional. ARPANET semakin lama semakin
bertambah besar sehingga karena protokol yang digunakan pada waktu itu tidak mampu
menampung jumlah node yang besar(NCP). DARPA kemudian mendanai pembuatan
protokol komunikasi yang lebih umum, TCP/IP. Ia diadopsi jadi standard ARPANET 1983.
Untuk memudahkan konversi DARPA juga mendanai BBN untuk mengimplementasikan
protokol ini dalam BSD Unix, sehingga dimulailah perkawinan antara Unix dan TCP/IP.
Sejak tahun itu perkataan internet mulai populer, karena terjadi perubahan administratif
ARPANET, yang dipecah menjadi MILNET dan ARPANET kecil, kemudian ditambah
dengan bergabungnya NFS (National Science Foundation)/NSFNET. Pada awalnya internet
digunakan untuk menunjukan jaringan yang menggunakan internet protocol (IP). Namun
dengan semakin berkembangnya jaringan, term ini sekarang sudah berupa term generik yang
digunakan untuk semua kelas jaringan. internet (i kecil) sekarang biasanya digunakan orang
untuk menunjuk pada koleksi sembarang jaringan fisik terpisah yang saling dihubungkan
dengan protokol yang sama untuk membentuk jaringan logic. Sedangkan Internet (I besar)
digunakan untuk menunjuk pada komunitas jaringan komputer worldwide yang saling
dihubungkan dengan TCP/IP.

TCP/IP features
TCP/IP tidak tumbuh menjadi besar begitu saja, atau karena badan militer memandatkan
penggunaannya. Yang terpenting adalah ia berada pada waktu yang tepat dan merupakan
protokol pertama yang dapat memenuhi kebutuhan komunikasi data pada saat itu. TCP/IP
features:
• Open Protocol Standards tersedia secara luas, independen terhadap perangkat
keras komputer,Sistem Operasi dll. Ideal untuk menyatukan mesin mesin dengan
perangkat keras dan lunak yang berbeda, walaupun tidak terhubung ke Internet.

15
• Tidak tergantung pada perangkat keras jaringan tertentu, sehingga TCP/IP
cocok untuk menyatukan bermacam macam network, misalnya Ethernet, token
ring,dial-up line,X-25 net dan lain lain.
• Cara pengalamatan bersama, memungkinkan divais TCP/IP mengidentifikasi
secara unik divais yang lain dalam seluruh jaringan, walaupun jaringannya sebesar
jaringan worldwide Internet.
• Protokol level tinggi yang distandarkan untuk konsistensi, sehingga
menyediakan servis user yang luas.

Model Komunikasi Data


Untuk membicarakan jaringan komputer , sebaiknya digunakan acuan/referensi yang
disepakati bersama.. Sebuah model arsitektural yang dibuat oleh ISO (International Standard
Organization) sering digunakan untuk menerangkan struktur dan fungsi protokol komunikasi
data. Model arsitektural ini dikenal sebagai OSI (Open System Interconnect) Referesce Model,
dan menyediakan suatu referensi bersama dalam mendiskusikan komunikasi. Istilah istilah
yang didefinisikan oleh model ini dapat dimengerti dengan baik dan secara luas digunakan
dalam komunitas komunikasi data. Pada kenyataannya memang sukar untuk mendiskusikan
komunikasi data tanpa terminologi OSI.

Model referensi OSI terdiri dari 7 lapisan (layer) yang mendefinisikan fungsi protokol
komunikasi data. Setiap layer merepresentasikan sebuah fungsi (bukan protokol) yang
dilakukan ketika data ditransfer antara aplikasi yang sesuai lintas jaringan yang dimasuki.

16
!

Application Layer

Presentation Layer

Session Layer

Transport Layer
Network Layer

Data Link Layer

Physical Layer

Gambar 1.1
OSI Layer

Sebuah layer tidak mendefinisikan protokol tunggal, tapi mendefinisikan suatu fungsi
komunikasi data yang dapat dilakukan oleh sejumlah protokol. Jadi setiap layer dapat berisi
banyak protokol, masing masing menyediakan servis yang cocok dengan fungsi layer
tersebut. Sebagai contoh, file transfer protocol dan electronic mail protocol keduanya
menyediakan servis pada user dan keduanya merupakan bagian dari layer aplikasi.

Setiap protokol berkomunikasi dengan peer(pasangan)nya (protokol yang sama dalam layer
yang sama dalam remote-system misalnya ftp lokal merupakan peer dari ftp remote). Jadi
secara abstrak setiap protokol hanya peduli terhadap komunikasi dengan peernya, tak perduli
dengan layer dibawah dan diatasnya.

17
Application Layer Application Layer
Presentation Layer Presentation Layer

Session Layer Session Layer


Transport Layer
Transport Layer
Network Layer Network Layer

Data Link Layer Data Link Layer

Physical Layer Physical Layer

Gambar 1.2
Komunikasi antara dua peer dengan sistem 7-layer

Bagaimanapun harus ada persetujuan tentang bagaimana melintaskan data antar layer pada
suatu komputer tunggal, karena setiap layer dilibatkan dalam pengiriman data dari aplikasi
lokal ke aplikasi remote yang sejenis. Transfer data dilakukan dengan melewatkan data pada
layer berikutnya (ke bawah stack) sampai ditransmisikan ke jaringan oleh protokol layer fisik.
Pada sistem lawan , data dilewatkan dari layer terbawah ke layer berikut diatasnya. Masing
masing layer tidak perlu tahu bagaimana fungsi layer diatas dan dibawahnya, yang perlu
diketahuinya adalah cara melewatkan data pada layer lainnya tersebut.

Mengisolasi fungsi komunikasi jaringan dalam layer layer yang berbeda dapat meminimalkan
efek perubahan teknologi pada protocol-suite yang digunakan. Aplikasi baru dapat
ditambahkan tanpa mengubah network secara fisik, dan hardware network yang baru dapat
diinstall tanpa harus menulis kembali software aplikasi.

Meskipun model OSI sangat berguna, protokol TCP/IP tidak sesuai benar dengan
strukturnya. Jadi dalam diskusi TCP/IP kita, menggunakan layer layer model OSI dengan
cara berikut:

18
!

Application layer
• Merupakan layer dimana proses jaringan yang bisa diakses user berada
• Layer teratas dalam hirarki
• Aplikasi TCP/IP adalah segala proses network yang terjadi di atas transport layer,
termasuk semua proses yang user secara langsung berinteraksi dengannya.

Presentation layer
• Untuk aplikasi-aplikasi yang berkomunikasi(bertukar data) mereka harus sepakat
dalam hal bagaimana data direpresentasikan. Dalam OSI layer ini menyediakan rutin
standar presentasi data, yang dalam TCP/IP fungsi ini sudah ditangani oleh aplikasi

Session layer
• Dalam OSI, layer ini berfungsi untuk mengatur session/hubungan antara aplikasi
yang berkomunikasi. Sedangkan dalam TCP/IP fungsi ini sebagian besar dijalankan
pada transport layer, dan istilah session tidak digunakan. Sebagai gantinya dalam
TCP/IP menggunakan istilah socket dan port untuk menjelaskan jalur dimana
komunikasi aplikasi tertentu berada.

Transport layer
• Dalam OSI, layer ini menjamin penerima mendapatkan data yang persis seperti
ketika ia dikirimkan. Dalam TCP/IP fungsi ini dilakukan oleh TCP (Tranmission
Tranport Protocol). Selain itu TCP/IP juga menawarkan servis transport layer yang
lain, UDP (User Datagram Protocol) yang tidak mementingkan pemeriksaan
keandalan komunikasi end to end.

Network layer
• Layer ini berfungsi mengatur hubungan lintas jaringan dan mengisolasi protokol layer
yang lebih tinggi dari detil jaringan dibawahnya. Internet Protocol dalam TCP/IP
merepresentasikan fungsi ini dan menangani pengalamatan dan pengiriman data.

Data Link layer


• Pada intinya layer ini menangani pengiriman data melintasi jaringan fisik.
19
Physical layer
• Layer ini mendefinisikan karakteristik perangkat keras yang diperlukan untuk
mentransmisikan sinyal data. Jadi standar level tegangan, jumlah dan lokasi pin
interface didefinisikan dalam layer ini.

Arsitektur Protokol TCP/IP


Karena seperti telah disinggung sebelumnya, TCP/IP tidak sesuai benar dengan model OSI,
maka protocol-stack dalam TCP/IP biasanya digambarkan dengan layer yang lebih sedikit.

Application Layer

Transport Layer

Internet Layer

Network Access Layer

Gambar 1.3
Layer pada TCP/IP

Dalam TCP/IP setiap data yang dilewatkan ke masing masing layer direduksi atau
ditambahkan suatu header kontrol. Setiap layer memperlakukan semua informasi yang ia
terima sebagai data dan ia menambahkan suatu header diawal informasi tersebut ketika data
ini akan dilewatkan pada layer dibawahnya. Penambahan informasi pengiriman ini disebut
enkapsulasi (encapsulation). Hal sebaliknya berlaku ketika informasi ini bergerak dari
jaringan ke layer teratas.

20
!

Application
DATA Layer
header
Transport
Layer
header
Internet
Layer
header
Network Access
Layer

Gambar 1.4
Metoda encapsulasi pada TCP/IP

Berikut beberapa hal penting untuk setiap layer dalam model TCP/IP

Network Access layer


• merupakah layer terbawah dari hirarki protokol TCP/IP
• Menyediakan sarana untuk sistem untuk mengirim data ke divais lain yang terhubung
ke network.
• Mendefinisikan bagaimana menggunakan network untuk mentransmisikan datagram
• Dibandingkan dengan model OSI, layer ini melingkupi tiga layer terbawah dalam
model OSI, yaitu Network, Data-link, dan Physical layer.
• Fungsi lain yang ditangani pada level ini termasuk enkapsulasi datagram kedalam
frame yang ditransmisikan oleh jaringan dan konversi IP address kedalam alamat
yang cocok untuk jaringan fisik dimana datagram ditransmisikan

Internet layer

Internet Protocol (IP)

IP merupakan inti dari TCP/IP dan merupakan protokol terpenting dalam Internet Layer. IP
menyediakan pelayanan pengiriman paket elementer dimana jaringan TCP/IP dibangun.

Fungsi Internet Protocol (IP)

21
• mendefinisikan datagram, yang merupakan unit transmisi elementer di Internet
• mendefinisikan skema pengalamatan internet
• melewatkan data antara Network Access Layer dan Host to Host Transport layer
• routing datagram ke remote host
• menjalankan fragmentasi dan penyusunan kembali datagram

IP merupakan protokol yang Connectionless (tidak memerlukan handshake), tidak dilengkapi


dengan error detection dan error recovery.

Datagram

adalah format paket yang didefinisikan oleh IP. Internet sebagaimana asalnya ARPANET
merupakan jaringan yang berbasis pada packet-switching. Jadi datagram merupakan unit
transmisi elementer dalam jaringan TCP/IP. IP mengirimkan datagram dengan mengecek
destination address dalam header kontrol diawal datagram. Jika address tujuan tidak berada
di jaringan lokal maka paket dilewatkan ke gateway(divais yang menswitch paket antara
jaringan fisik yang berbeda). Memutuskan gateway yang mana yang digunakan untuk
mencapai address tujuan disebut sebagai routing.

Routing datagram

Ilustrasi berikut akan memperjelas bagaimana proses routing datagram melintasi

beberapa jaringan fisik.


.

Aplikasi Aplikasi

Transport Transport
Internet Internet Internet Internet

Network Network Network Network

Gambar 1.5
22
!

Routing datagram melewati beberapa jaringan fisik

Sistem hanya bisa mengirim paket pada divais lain yang terhubung kedalam satu jaringan fisik
yang sama. Paket dari A1 dengan tujuan C1 diforward melalui gateway G1 dan G2. Host A1
pertama kali mengirim paket ke gateway G1 (karena G1 masih terhubung ke network A,
dimana host A1 berada). Kemudian gateway G1 mengirimkan paket ke gateway G2 melalui
network B. Dan akhirnya G2 yang juga terhubung ke network C langsung memforward
paket ke address tujuan, host C1. fragmentasi datagram Ketika datagram dikirimkan
melintasi jaringan yang berbeda, mungkin perlu bagi modul IP dalam gateway untuk
membagi datagram kedalam bagian bagian kecil. Datagram yang diterima dari suatu jaringan
mungkin terlalu besar untuk ditransmisikan dalam satu paket pada jaringan yang berbeda.
Kondisi ini hanya terjadi ketika gateway menghubungkan jaringan fisik yang berbeda.
Sederhananya setiap network mempunyai MTU(maximum transfer unit) yang berbeda. Jika
datagram yang diterima lebih besar dari MTU maka perlu dilakukan pemecahan datagram
kedalam fragmen fragmen kecil untuk ditransmisikan. melewatkan datagram ke transport
layer ketika IP menerima datagram yang dialamatkan ke localhost. ia harus melewatkan
bagian data dari datagram pada protokol transport layer yang sesuai. Hal ini dilakukan
dengan menggunakan nomor protokol dari header datagram. Setiap protokol Transport layer
mempunyai nomor protokol yang unik.

23
Internet Control Message Protocol

Sebuah bagian integral dari IP adalah ICMP. Protokol ini merupakan bagian dari Internet
layer dan menggunakan fasilitas pengiriman datagram IP untuk mengirim messagenya. ICMP
mengirim messagenya yang berfungsi untuk kontrol, melaporkan kesalahan, dan fungsi
informasi:
• flow control
• mendeteksi tujuan yang tak mungkin dicapai (unreachable)
• melakukan perubahan arah jalur data
• memeriksa remote host

Transport layer
• Dua protokol terpenting dalam layer ini adalah TCP(Transmission Control Protocol)
dan UDP (User datagram Protocol). TCP menyediakan pelayanan pengiriman data
yang andal dengan deteksi dan koreksi kesalahan dari ujung ke ujung (end to end).
Sedangkan UDP menyediakan pelayanan pengiriman datagram yang connection less
dan tanpa dilengkapi deteksi dan koreksi kesalahan. Kedua protokol mengirimkan
data antara layer aplikasi dan layer internet. TCP merupakan protokol yang
connection oriented (dan handshake).

Application layer
• layer ini melingkupi semua proses yang menggunakan protokol transport layer untuk
mengirimkan data. Ada banyak protokol aplikasi, yang paling populer, misalnya :
• telnet,network terminal protocol, menyediakan fasilitas remote login lewat
jaringan
• ftp, file transfer protocol, digunakan untuk transfer file yang interaktif
• smtp, simple mail tranfer protocol yang bertugas untuk mengirimkan mail
• karena layer ini berhubungan langsung dengan servis yang ditawarkan pada pemakai
jaringan maka protokol protokol baru masih ditambahkan yang memperkaya
pelayanan pada user.

24
!

Dasar-dasar Pembentukan Jaringan


TCP/IP
Ada beberapa konsep mendasar yang wajib dipertimbangkan dalam mensetup jaringan
TCP/IP, yaitu pengalamatan (addressing), routing dan name-service. Ide dasarnya adalah
bagaimana supaya data yang dikirim sampai pada mesin yang yang sesuai (mesin tujuan) dan
bagaimana hal tersebut dapat dilakukan oleh operator dengan mudah.

Untuk dapat berkomunikasi, data dari suatu host (mesin) harus dilewatkan ke jaringan
menuju host tujuan, dan dalam host tersebut ke user atau proses yang sesuai. TCP/IP
menggunakan tiga skema untuk memenuhi tugas ini, yaitu:

Addressing

IP Address yang mengidentifikasi secara unik setiap host di jaringan, sehingga dapat
menjamin data dikirim ke alamat yang benar.

Routing

pengaturan gateway untuk mengirim data ke jaringan dimana host tujuan berada.

Multiplexing

pengaturan nomor port dan protokol yang mengirim data pada modul software yang
benar didalam host.

Masing masing skema, baik pengalamatan antar host, routing antar network dan multiplexing
antar layer, penting untuk mengirim data antara dua aplikasi yang berkerja sama dalam
jaringan TCP/IP.

Pengalamatan dan IP Address


Internet Protocol (IP) melewatkan data antar host dalam bentuk datagram. Setiap datagram
dikirim ke address yang ditunjukan oleh address tujuan dalam header datagram. Address

25
tujuan adalah 32 bit IP address standard yang berisi informasi yang cukup untuk
mengidentifikasi secara unik jaringan dan host tertentu di jaringan tersebut.

IP address terdiri dari bagian network dan bagian host, tapi format dari bagian bagian ini
tidak sama untuk setiap IP address. Jumlah bit address yang digunakan untuk
mengidentifikasi jaringan, dan bilangan yang digunakan untuk mengidentifikasi host berbeda
beda tergantung kelas address yang digunakan.

Ada tiga kelas address utama: kelas A, kelas B dan kelas C. Dengan memeriksa beberapa bit
pertama dari dari suatu address, software IP bisa dengan cepat membedakan kelas address
dan strukturnya.

IP address biasanya ditulis sebagai 4 urutan bilangan desimal yang dipisahkan dengan titik.
Setiap bilangan tersebut berupa salah satu bilangan yang berharga diantara 0-255 (nilai
desimal yang mungkin untuk 1 byte).

IP mengikuti aturan berikut untuk membedakan kelas address:

Address kelas A :
• bit pertama dari IP address adalah 0
• jadi jaringan dengan IP yang byte pertamanya: 0-127
• hanya ada kurang dari 128 jaringan dengan kelas A
• setiap jaringan kelas A bisa mempunyai jutaan host

Address kelas B :
• bit pertama dari IP address adalah 10
• jadi jaringan dengan IP yang byte pertamanya: 128-191
• terdapat ribuan jaringan dengan kelas B
• setiap jaringan kelas B bisa mempunyai ribuan host

26
!

Address kelas C :
• bit pertama dari IP address adalah 110
• jadi jaringan dengan IP yang byte pertamanya: 192-223
• terdapat jutaaan jaringan kelas C
• setiap jaringan kelas C hanya mempunyai kurang dari 254 host

Address kelas D :
• bit pertama dari IP address adalah 111
• nomor jaringan dengan IP yang byte pertamanya lebih dari 223
• merupakan address yang dialokasikan untuk kepentingan khusus

Ilustrasi berikut akan menunjukan bagaimana struktur address berbeda beda untuk kelas
address yang berbeda. Misalnya suatu address kelas A dengan IP 26.104.0.19. Bit pertama
dari address ini adalah 0 (atau desimal pertama kurang dari 128) sehingga address
diterjemahkan sebagai host 104.0.19 dari network 26. Satu byte menunjukan jaringan dan 3
byte selanjutnya menunjukan host yang bersangkutan. Dalam address 128.66.12.1 dua bit
pertama adalah 10 yang menunjukan bahwa mesin tersebut terhubung ke network kelas B.
Jadi address tersebut diterjemahkan sebagai host 12.1 dari network 128.66 (2 byte pertama
mengidentifikasi jaringan dan 2 lainnya mengidentifikasi host). Contoh ketiga adalah mesin
dengan IP 192.178.16.1 yang dengan cara serupa dapat diartikan sebagai host 1 di network
192.178.16 (3 byte mengidentifikasi network dan 1byte mengidentifikasi host).

27
Address kelas A

26 104 0 19
Address kelas B
8 bit network address

128 66 12 1

16 bit network address Address kelas C

192 178 16 1

24 bit network bit

Gambar 1.6
IP Adderss

Tidak semua address network dan host dapat digunakan. Misalnya kita telah membicarakan
bahwa address dengan desimal pertama lebih dari 223 dialokasikan untuk kepentingan
khusus. Dua address kelas A, 0 dan 127, juga dialokasikan untuk kepentingan khusus.
Network 0 menunjukan route default (digunakan untuk menyederhanakan aplikasi network
dengan membiarkan host lokal di-address-kan dengan cara yang sama seperti remote-host--
digunakan ketika menkonfigurasi host) dan network 127 sebagai loopback-address. Selain itu
juga ada beberapa address host yang disediakan untuk kepentingan khusus ini, misalnya 0
dan 255 dalam semua kelas network. Sebuah IP address dengan semua bit hostnya nol
menunjukan jaringannya sendiri, misalnya 26.0.0.0 menunjukan network 26 dan 128.66.0.0
menunjukan network 128.66. Address dalam bentuk ini digunakan dalam tabel routing untuk
menunjukan seluruh network. IP address dengan semua bit host diset satu adalah broadcast-
address. Suatu address broadcast digunakan untuk alamat setiap host dalam network secara
simultan. Address broadcast untuk network 128.66 adalah 128.66.255.255. Suatu datagram
yang dikirim ke address ini akan diterima oleh setiap host dalam network ybs.

IP address diasosiasikan dengan network-interface, bukan dengan sistem komputernya. Jadi


suatu gateway mempunyai address yang berbeda untuk setiap network yang terhubung
kepadanya. IP menggunakan bagian network dari address untuk routing datagram antar

28
!

network. Address lengkap, termasuk informasi host digunakan untuk pengiriman akhir ketika
datagram mencapai network tujuan. Berkaitan dengan IP address dikenal dua istilah:

Supernetting

Ada dua masalah yang saling berkaitan, antara pemberian suatu kelas address pada suatu
lembaga. Pertama kelas address yang diberikan lebih kecil daripada jumlah host yang akan
dihubungkan. Dan yang kedua sebaliknya, kelas address yang diberikan lebih besar dari host
yang akan saling dihubungkan. Supernetting berkaitan dengan metoda untuk mengakali
alokasi address yang terbatas sedemikian sehingga semua host yang tersedia dapat
dihubungkan ke jaringan. Jadi supernetting adalah menggunakan bit mask terhadap address
asal untuk membuat jaringan yang lebih besar.

Subnetting

Masalah kedua yang berkaitan dengan bagaimana membuat suatu alokasi address efisien, bila
ternyata host yang akan kita hubungkan ke jaringan lebih kecil dari pada alokasi address yang
kita punyai. Yang jelas dengan menggunakan metoda subnetting, bit host IP address
direduksi untuk subnet ini. Sebagai contoh, subnet mask yang diassosiasikan dengan address
kelas B standard adalah 255.255.0.0. Subnet mask digunakan dengan memperluas bagian
network dari suatu address kelas B dengan byte tambahan. Misalnya submask 255.255.255.0
berarti dua byte pertama mendefinisikan network kelas B, byte ketiga menunjukan address
subnet, dan yang keempat baru menunjuk pada host pada subnet yang besangkutan. Masking
yang byte-oriented lebih mudah dibaca dan diartikan, tapi sebenarnya subnet-masking
bersifat bit-oriented, jadi misalnya seseorang bisa saja membuat subnet-mask
255.255.255.192. Berikut ilustrasi yang menunjukan efek dari subnet-mask terhadap
bermacam macam address jaringan

29
IP Address Subnet mask Interpretasi
128.66.12.1 255.255.255.0 host 1 pada subnet 128.66.12.0
130.97.16.132 255.255.255.192 host 4 pada subnet 130.97.16.128
192.178.16.66 255.255.255.192 host 2 pada subnet 192.178.16.64
132.90.132.5 255.255.240.0 host 4.5 pada subnet 132.90.128.0
18.20.16.91 255.255.0.0 host 16.91 pada subnet 18.20.0.0

Tabel 1.1
Efek subnet mask thp IP address

Routing
Ada dua garis besar arsitektur routing Internet
• sistem tradisional yang menggunakan sistem hirarki gateway
• sistem yang menggunakan routing domain

Pada sistem dengan routing domain, domain ini bertukar informasi dengan domain yang lain
menggunakan BGP (Border Gateway Protocol). Setiap routing domain memproses
informasi yang ia terima dari domain yang lain, hanya untuk dirinya sendiri, sehingga model
ini bisa diperluas untuk banyak domain. Dan ini berlawanan dengan model sistem hirarki.

Routing
Domain

Routing
Domain Routing
Domain

Gambar 1.7
Area routing domain

Setiap lingkaran merepresentasikan routing domain. Area yang saling overlap adalah daerah
batas dimana informasi routing digunakan bersama. Domain saling bertukar informasi tapi
tidak pada suatu sistem yang menyediakan semua informasi routing.

Tabel routing
30
!

Setiap mesin yang terhubung kejaringan baik itu host maupun gateway harus membuat suatu
keputusan routing. Bagi host keputusan ini sederhana saja
• jika host tujuan berada pada jaringan lokal data dikirim langsung
• jika host tujuan berada pada jaringan remote, data diforward ke gateway.

Hal yang lebih kompleks terjadi di gateway. Yang jelas routing adalah aplikasi yang network-
oriented, jadi layer IP membuat suatu keputusan routing berdasarkan pada bagian network
dari address. Untuk melihat bagaimana suatu mesin memutuskan kemana dia harus
meneruskan paket data, dapat dilihat dengan perintah netstat -nr (yaitu tabel routing).
Berikut contoh tabel routing dari suatu gateway :

Internet:
Destination Gateway Flags Refs Use Interface
default 167.205.136.15 UG 7 36325 sl0
127.0.0.1 127.0.0.1 UH 0 30 lo0
141.103 167.205.136.15 UG 0 0 sl0
144.228 167.205.136.15 UG 0 16 sl0
152.118 167.205.136.15 UG 0 0 sl0
167.205.8.32 167.205.31.132 UG 0 168 ed1
167.205.16 167.205.22.99 UG 1 1335 ed0
167.205.18 167.205.22.106 UG 0 467 ed0
167.205.22.1 127.0.0.1 UH 0 289 lo0
167.205.22.96 link#1 UC 0 0 ed0
167.205.22.98 0:0:0:0:0:1 UHL 3 2346 ed0
167.205.22.123 0:80:48:91:e8:40 UHL 2 16219 lo0
167.205.22.125 0:80:48:90:29:9f UHL 0 200 ed0
167.205.31.131 0:80:48:81:c6:b3 UHL 0 1 lo0
167.205.31.132 0:0:e8:c0:1:89 UHL 7 90424 ed1
202.46 167.205.136.15 UG 0 0 sl0
202.46.1 167.205.136.15 UG 0 249 sl0
202.46.2 167.205.136.15 UG 0 0 sl0
224 link#1 UCS 0 0 ed0

Mekanisme routing berdasarkan tabel routing

Berikut adalah contoh bagaimana suatu data mencapai address tujuannya dengan
menggunakan tabel routing.

31
Aplikasi Aplikasi
Transport Transport
tujuan gateway tujuan gateway tujuan gateway
128.66.1.0 128.66.1.0 128.66.1.0 128.66.1.5 128.66.1.0 128.66.1.2
128.66.12.0 128.66.12.0 128.66.12.0 128.66.12.3 default 128.66.1.5
default 128.66.12.1 default 128.66.12.1

Network Access Network Access Network Access

128.66.12.2 128.66.12.3 128.66.1.5 128.66.1.2

128.66.12.0 128.66.1.0

Gambar 1.8
Penggunaan tabel routing

Ketika suatu host 128.66.12.2 mengirim data pada suatu host (128.66.1.2), ia pertama kali
mengidentifikasi bahwa 128.66.1.2 adalah jaringan lokal address kelas B dan melakukan
operasi masking yang sesuai (misalkan suatu jaringan 128.66.0.0 dengan masking
255.255.255.0), sehingga mesin itu tahu bahwa address network tujuan adalah 128.66.1.0.
Tabel routing pada host asal menunjukan bahwa data dengan tujuan 128.66.1.0 harus
dilewatkan ke gateway 128.66.12.3. Gateway 128.66.12.3 langsung melakukan pengiriman
pada interface 128.66.1.5, dengan melihat tabel routing yang menunujukan semua sistem
hanya mempunyai satu gateway dan host langsung terhubung kepadanya maka mesin dengan
interface 128.66.1.5 langsung memforward data ke 128.66.1.2.

Name-service
Setiap network interface yang terhubung ke jaringan TCP/IP diidentifikasi dengan 32 bit
unik IP address. Sebuah nama (hostname) dapat diassosiasikan dengan sembarang divais
yang mempunyai IP address. Dibandingkan dengan address internet numerik, hostname
relatif lebih mudah diingat dan diketik. Yang perlu diperhatikan adalah software tidak
memerlukan hostname, tapi hal ini dilakukan untuk mempermudah manusia dalam
menggunakan jaringan. Dalam hampir setiap kasus hostname dan IP address dapat saling
menggantikan, misalnya anda akan men-telnet suatu host yang anda ketahui mempunyai IP

32
!

address 167.205.31.132 dan mempunyai nama gopher.ee.itb.ac.id maka operasi berikut


adalah ekivalen :

% telnet gopher.ee.itb.ac.id
% telnet 167.205.31.132

Walaupun demikian, setiap mesin tetap menggunakan IP address untuk berkomunikasi lewat
jaringan. Jadi bedanya dua perintah diatas adalah ketika anda mengetikan hostname maka
yang dilakukan komputer adalah mencari ekivalen IP address hostname yang bersangkutan
dalam tabel lokal maupun DNS, kemudian baru perintahnya dijalankan. Sedangkan bila anda
langsung mengetikan IP address komputer tidak perlu lagi mengkonversinya dan langsung
mengerjakan perintah. Ada dua metoda yang biasa dilakukan untuk mentranslasikan nama
dengan address.

Metoda ini adalah:


• Menggunakan host-table
• Menggunakan DNS (Domain Name Service)

Host-table adalah file teks sederhana yang mengassosiasikan hostname dengan address.
Dalam kebanyakan system berbasis Unix tabel ini berada di file /etc/hosts. Berikut
contoh file

/etc/hosts:

# $Id: hosts,v 1.4 1994/06/24 23:50:16 wollman Exp $


#
# Host Database
# This file should contain the addresses and aliases
# for local hosts that share this file.
# In the presence of the domain name service or NIS, this file may
# not be consulted at all; see /etc/host.conf for the resolution
order.
#
#
127.0.0.1 localhost
#
# Imaginary network.

33
#10.0.0.2 myname.my.domain myname
#10.0.0.3 myfriend.my.domain myfriend
#
# According to RFC 1597, you can use the following IP networks for
# private nets which will never be connected to the Internet:
#
# 10.0.0.0 - 10.255.255.255
# 172.16.0.0 - 172.31.255.255
# 192.168.0.0 - 192.168.255.255
#
# In case you want to be able to connect to the Internet, you need
# real official assigned numbers. PLEASE PLEASE PLEASE do not try
# to invent your own network numbers but instead get one from your
# network provider (if any) or from the Internet Registry (ftp to
# rs.internic.net, directory `/templates').
202.46.1.2 caddsys.iptek.net.id
167.205.22.98 system.paume.itb.ac.id
167.205.22.100 design.paume.itb.ac.id
167.205.22.123 maingtw.paume.itb.ac.id maingtw
167.205.31.129 ee-hq.ee.itb.ac.id
167.205.31.130 ee-lss.ee.itb.ac.id
167.205.31.132 gopher.ee.itb.ac.id
167.205.22.119 cdrom.paume.itb.ac.id
167.205.22.120 dns.paume.itb.ac.id
167.205.136.15 pusren.telkom.go.id
167.205.136.1 rs6000.telkom.go.id
167.205.22.1 myslip.paume.itb.ac.id
167.205.22.124 www.itb.ac.id
167.205.22.100 design.paume.itb.ac.id
167.205.22.98 system.paume.itb.ac.id
167.205.22.99 nmi.paume.itb.ac.id
#
167.205.184.1 smartcom.en.itb.ac.id
167.205.184.65 stke.en.itb.ac.id
#

Perintah yang didahului dengan # adalah komentar. Format perintah yang menghubungkan
hostname dengan addressnya adalah
<IP address> <hostname> [alias]

34
!

Pada host-table diatas anda dapat melihat beberapa reserve-word yang disediakan Unix
untuk keperluan tertentu. Misalnya pada baris

127.0.0.1 localhost
167.205.22.123 maingtw.paume.itb.ac.id loghost

Pada baris pertama, seperti telah disinggung sebelumnya, kelas A 127 digunakan untuk
loopback network. Address 127.0.0.1 merupakan address khusus yang digunakan untuk
loopback address host lokal. Dengan konvensi ini memungkinkan suatu host mengalamati
dirinya sendiri dengan cara yang sama ketika ia mengalamati remote-host. Loopback address
juga menyederhanakan software dengan membolehkan kode yang sama digunakan untuk
berkomunikasi dengan proses lokal maupun remote. Cara ini juga mereduksi trafik jaringan,
karena localhost address diassosiasikan dengan sebuah divais loopback yang me-loop data
kembali ke host sebelum ia ditransmisikan ke jaringan.

Pada baris selanjutnya terdapat reserve word loghost. Ia merupakan nama host khusus yang
digunakan oleh syslog daemon, syslogd. Program seperti syslog menulis langsung
keluarannya ke host yang telah diassosiasikan dengan nama generik diatas, loghost. Reserve
yang lain misalnya lprhost, mailhost, dan dumphost. Konversi hostname dan address dengan
cara ini masih digunakan untuk beberapa keadaan seperti:
• Kebanyakan sistem yang mempunyai host table kecil yang berisi informasi dan
address host host yang penting pada jaringan lokal.Tabel kecil ini digunakan ketika
DNS tidak berjalan, seperti ketika system-startup. Walaupun anda menggunakan
DNS, anda masih harus membuat file /etc/hosts kecil yang berisi entri hostnya
sendiri, localhost dan untuk gateway dan server pada jaringan lokal.
• Site yang menggunakan NIS, menggunakan host table sebagai input pada database
host NIS(Network Information System). Anda bisa menggunakan NIS sebagai
konjungsi DNS, tapi walaupun mereka digunakan bersama, kebanyakan site NIS
membuat host table yang mempunyai sebuah entri untuk setiap host pada jaringan
lokal
• Site yang sangat kecil, yang tidak terhubung ke Internet, kadang kadang juga
menggunakan host-table. Jika hanya terdapat sedikit host lokal dan informasinya
jarang berubah, dan juga tidak diperlukan komunikasi(TCP/IP) dengan remote-host,

35
maka penggunaan DNS hanya mempunyai sedikit keuntungan saja dibandingkan
dengan penggunaan host-table.
• Beberapa site yang tidak menjalankan sistem Unix atau sistem yang lebih tua, tidak
dapat menggunakan DNS. Jika ia tidak bisa diupgrade maka site ini harus
menggunakan file /etc/hosts yang besar.

Untuk host-host yang terhubung ke Internet, hampir wajib menggunakan DNS. Kalau ini
tidak dilakukan maka diperlukan host-table yang besar ukurannya. Unix menyediakan
perintah untuk membuat /etc/hosts dan /etc/network secara otomatis dari data yang
tersedia di NIC (Network Information Center). Cara ini sebaiknya tidak dilakukan karena
seperti telah disebutkan sebelumnya, untuk host yang terhubung langsung ke Internet
sebaiknya menggunakan sistem database terdistribusi seperti DNS. Sedangkan untuk
membuat host-table lokal bagi sistem yang didukung DNS anda hanya tinggal meluangkan
sedikit waktu untuk membuat maupun mengeditnya sehingga sesuai untuk host yang
bersangkutan.

DNS (Domain Name Service)

DNS dibuat berdasarkan kelemahan utama dari penggunaan host-table. DNS merupakan
sistem database terdistribusi yang tidak banyak diperngaruhi oleh bertambahnya database.
DNS menjamin informasi host terbaru akan disebarkan ke jaringan bila diperlukan. Jika
server DNS menerima permintaan informasi tentang host yang dia tidak mempunyai
informasi tentangnya, ia memforward permintaan pada authoritative server (sembarang
server yang bertanggung jawab untuk memberikan informasi akurat tentang domain yang
diminta.Ketika authoritative server menjawab server lokal menyimpan jawabannya untuk
penggunaan mendatang. Sehingga apabila setelah itu ada permintaan informasi yang sama ia
langsung menjawabnya. Kemampuan untuk mengkontrol informasi host dari sumber yang
authoritative dan secara otomatis menyebarkan informasi akurat membuat DNS unggul
dibandingkan dengan host-table. Hirarki domain DNS merupakan sistem hirarki terdistribusi
untuk mendapatkan hubungan hostname dengan IP address. Dibawah DNS tidak ada
database sentral dengan semua informasi host Internet. Informasi didistribusikan pada
ribuan nameserver yang diorganisasi kedalam hirarki, hampir sama dengan sistem file di
Unix. DNS mempunyai root domain diatas hirarki domain yang disebut sebagai root server.
36
!

langsung dibawah root domain ada top level domain. Ada dua tipe top level domain:
geografis dan organisasional. Domain geografis diset untuk setiap negara dan diidentifikasi
dengan dua huruf kode. Domain organisasional didasarkan pada tipe organisasi
(komersial,militer dll) Berikut contoh suatu domain hirarki. Detil konfigurasi dan
implementasi DNS dibahas pada bab tersendiri.

. (root)

Net Gov Mil Org Com Edu

Nih Nits

Dcrt Niddk Nuts Sales

Gambar 1.9
Hirarki domain

37
2
Perencanaan LAN
dan Internetwork TCP/IP

Pada bab ini akan dibahas dasar-dasar perencanaan


jaringan, media implementasinya, dan penggabungan
jaringan (internetwork) dengan protokol TCP/IP.

38
!

Pendahuluan
Setelah mengikuti bab ini Anda diharapkan dapat:
• mengetahui dasar-dasar perencanaan jaringan
• mengetahui media 10BASE2, 10BASE5, dan 10BASE-T
• mengetahui dasar-dasar perencanaan internetwork TCP/IP

Metodologi Perencanaan LAN


Pada bagian ini yang akan dibahas adalah dasar-dasar perancangan LAN. Tujuan utama
adalah untuk merancang LAN yang memenuhi kebutuhan pengguna saat ini dan dapat
dikembangkan di masa datang sejalan dengan peningkatan kebutuhan pengguna.

Gagasan tentang LAN sebagai media yang digunakan bersama merupakan kunci utama
dalam perancangan dan perencanaan LAN. Infrastruktur LAN adalah pengkabelan sebagai
jalur fisik komunikasi setiap devais jaringan. Infrastruktur yang dirancang dengan baik cukup
fleksibel untuk memenuhi kebutuhan sekarang dan masa datang.

Metodologi Perancangan LAN:


• Tunjuk seorang manajer network
• Tinjau kemungkinan penggunaan kembali kabel yang ada
• Gambar peta yang menunjukkan tempat komputer yang diinginkan
• Gambar jaringan menggunakan topologi yang dibahas di bab ini dan mengikuti jalur
kabel yang ada
• Tentukan kebutuhan peralatan berdasarkan rancangan
• Beli peralatan yang dibutuhkan
• Install

Di antara hal-hal yang perlu diperhatikan dalam perancangan LAN adalah lokasi fisik itu
sendiri. Peta atau cetak biru bangunan-bangunan yang akan dihubungkan sangat diperlukan

39
demikian juga dengan informasi jalur kabel (conduit) yang ada dan menghubungkan
bangunan-bangunan tersebut. Jika peta seperti ini tidak ada maka perlu digambarkan peta
dengan cara merunut kabel-kabel yang ada. Secara umum dapat diasumsikan bahwa
pengkabelan yang menghubungkan bangunan-bangunan atau yang melewati tempat terbuka
harus terdapat di dalam conduit. Seorang manajer jaringan harus menghubungi manajer
bangunan untuk mengetahui aturan-aturan pengkabelan ini sebab manajer bangunan yang
mengetahui dan bertanggung jawab atas bangunan tersebut.

Pada setiap lokasi (yang dapat terdiri dari beberapa bangunan) harus ditunjuk seorang
manajer jaringan. Manajer jaringan harus mengetahui semua konfigurasi jaringan dan
pengkabelan pada lokasi yang menjadi tanggung jawabnya. Pada awalnya tugas ini hanya
memakan waktu sedikit. Sejalan dengan perkembangan jaringan menjadi lebih kompleks,
tugas ini berubah menjadi tugas yang berat. Jadi untuk tugas ini sebaiknya dipilih orang yang
betul-betul berminat dan mau terlibat dalam perkembangan jaringan.

Media Implementasi Jaringan


Pada bagian ini akan dibahas mengenai bermacam-macam media yang biasa digunakan untuk
membangun sebuah jaringan komputer terutama media kabel. Dalam hal ini kabel yang
digunakan adalah twisted pair dan coaxial.

Twisted Pair ( shielded dan unshielded)

Kabel twisted pair dapat dibagi menjadi dua macam yaitu shielded yang memiliki selubung
pembungkus dan unshielded yang tidak mempunyai selubung pembungkus. Kabel ini
mempunyai karakteristik sebagai berikut:
• merupakan sepasang kabel yang di-twist satu sama lain dengan tujuan untuk
mengurangi interferensi listrik.
• dapat terdiri dari dua, empat, atau lebih pasangan kabel
• ada dua jenis kabel twisted pair yaitu UTP (unshielded twisted pair) dan STP (shielded
twisted pair)
• dapat melewatkan signal sampai 10 mbps

40
!

• hanya dapat menangani satu channel data (baseband)


• koneksi pada twisted pair biasanya menggunakan konektor RJ-11 atau RJ-45
• STP lebih tahan interferensi daripada UTP dan dapat beroperasi pada kecepatan yang
lebih tinggi sampai 100 mbps, namun lebih sulit ditangani secara fisik

Gambar 2-1
Kabel UTP

Kabel Koaksial
Kabel ini mempunyai sifat-sifat sebagai berikut:
• paling populer digunakan pada Local Area Network (LAN)
• memiliki bandwidth yang lebar, sehingga bisa digunakan untuk komunikasi
broadband (multiple channel)
• ada bermacam-macam jenis kabel coax seperti kabel TV, thick, ARCnet, dan thin
coax.
• thick coaxial dikenal dengan nama 10Base5, biasanya digunakan untuk kabel
backbone pada instalasi jaringan ethernet antar gedung. Kabel ini sulit ditangani
secera fisik karena tidak flexibel, dan berat, namun dapat menjangkau jarak 500 m
bahkan 2500 m dengan repeater.
• thin coaxial lebih dikenal dengan nama RG-58, cheapernet, 10Base2, dan thinnet,
biasanya digunakan untuk jaringan antar workstation. Dapat digunakan untuk
implementasi topologi bus dan ring karena mudah ditangani secara fisik.

41
insulator dalam insulator luar

konduktor luar
konduktor dalam

Gambar 2-2
Kabel kaksial thick atau thick ethernet

Fiber Optic
• Mahal
• Bandwidth lebar
• hampir tidak ada resistansi dan loss
• tidak bisa di-tap di tengah
• tidak terganggu oleh cuaca dan panas
• merupakan salah satu kabel utama di masa depan

Wireless
• instalasi mudah dilakukan
• setiap workstation berhubungan dengan hub atau cosentrator melalui gelombang
radio atau infra merah

42
!

Topologi Fisik Jaringan


Topologi Bus atau Daisy Chain
Topologi ini memiliki karakteristik sebagai berikut:
• merupakan satu kabel yang kedua ujung nya ditutup, dimana sepanjang kabel
terdapat node-node
• paling prevalent karena sederhana dalam instalasi
• signal melewati kabel dalam dua arah dan mungkin terjadi collision
• problem terbesar : kabel putus, jika salah satu segmen kabel putus, maka seluruh
jaringan akan terhenti.

Terminator Terminator

Workstation Workstation

File Server Workstation Workstation

Gambar 2-3
Topologi Bus

43
Topologi Ring
Topologi ini mempuyai karakteristik sebagai berikuyt:
• lingkaran tertutup yang berisi node-node
• sederhana dalam layout
• signal mengalir dalam satu arah, sehingga dapat menghindarkan terjadinya collision
(dua paket data bercampur), sehingga memungkinkan pergerakan data yang cepat dan
collision detection yang lebih sederhana
• problem: sama dengan topologi bus
• biasanya topologi ring tidak dibuat secara fisik melainkan direalisasikan dengan
sebuah consentrator dan kelihatan seperti topologi star

Workstation Workstation Workstation

File Server Workstation


Workstation

Gambar 2-4
Topologi Ring

Topologi Star
Topologi ini mempunyai karakteristik sebagai berikut:
• setiap node berkomunikasi langsung dengan central node, traffic data mengalir dari
node ke central node dan kembali lagi.

44
!

• mudah dikembangkan, karena setiap node hanya memiliki kabel yang langsung
terhubung ke central node
• keunggulan : jika satu kabel node terputus yang lainnya tidak terganggu
• dapat digunakan kabel yang “lower grade” karena hanya menghandel satu traffic node,
biasanya digunakan kabel UTP

Central node
(consentrator)

File Server Workstation

Workstation Workstation
Workstation
Gambar 2-5
Topologi Star

Topologi Logic
Ethernet
• dikembangkan oleh Xerox Corp. pada tahun 70-an, dan menjadi populer pada tahun
80-an karena diterima sebagai standard IEEE 802.3
• Ethernet bekerja berdasarkan broadcast network, dimana setiap node menerima setiap
transmisi data yang dikirim oleh sebuah node.
• menggunakan metoda CSMA/CD (carrier sense multiple access/collision detection) baseband
• cara kerja ethernet secara ringkas adalah sebagai berikut: sebelum mengirimkan paket
data, setiap node melihat apakah network juga sedang mengirimkan paket data. Jika
network busy, node itu mengunggu sampai tidak ada sinyal lagi yang dikirim oleh
network. Jika network sepi, barulah itu node mengirimkan paketnya. Jika pada saat

45
yang sama ada dua node yang mengirimkan data, maka terjadi collision. Jika terjadi
collision, kedua node mengirimkan sinyal jam ke network dan semua node berhenti
mengirimkan paket data dan kembali menunggu. Kemudian secara random, node-
node itu kembali menunggu atau mengirimkan data. Paket yang mengalami collision
akan dikirimkan kembali saat ada kesempatan.

Destination Source Type Frame CRC


Address Address Data
6 bytes 6 bytes 6 bytes 46-1500 bytes 4 bytes

Gambar 2-6
Ethernet Frame
• kecepatannya 10 mbps, dan menurun dengan semakin banyaknya node yang
terpasang
• implementasi dapat dilakukan dengan berbagai media seperti:
1. 10baseT : menggunakan kabel UTP, 10 mbps, baseband
2. 10base2 : menggunakan kabel thin coax, 10 mbps, baseband
3. 10base5 : menggunakan kabel thick coax, 10 mbps, baseband

Token Ring
• berdasarkan standard IEEE 802.5 yang dikembangkan oleh IBM.
• untuk menghindari colision tidak menggunakan collision detection melainkan token passing
scheme
• token passing scheme dapat dijelaskan secara sederhana sebagai berikut: Sebuah token
yang bebas mengalir pada setiap node melalui network. Saat sebuah node ingin
mengirikam paket, node itu meraih dan melekatkan frame atau paket-nya ke token.
Sekarang token tidak dapat digunakan lagi oleh node yang lain sampai data mencapai
tujuannya. Jika telah sampai token dilepaskan lagi oleh originating station. Token
mengalir di network dalam satu arah dan setiap station di-poll satu persatu.
• kecepatannya 4 mbps dan 16 mbps

46
!

ARCnet
• dikembangkan oleh DataPoint pada tahun 70-an dan dipopulerkan oleh Standard
Microsystems Inc.
• menggunkan prinsip token passing scheme dan broadcast
• prinsip kerjanya secara sederhana adalah dengan melewatkan token ke setiap node
yang memiliki nomor broadcast tertentu
• kecepatannya 2.5 mbps dan 20 mbps
• implementasi menggunakan kabel coax RG 62
• card network ARCnet lebih murah daripada card ethernet
• menggunakan topologi fisik star
• tidak dapat bekerja pada satu bus, sehingga jarang digunakan pada internetworking
UNIX-DOS

FDDI
• FDDI (Fiber Distributed Data Interface) digunakan dengan kabel fiber optic
• bekerja berdasarkan dua ring konsentrik, masing-masing berkecepatan 100 mbps,
dengan menggunakan token passing scheme
• salah satu ring dapat berfungsi sebagai bakc-up, atau dibuat menjadi pengirim saja (
mengirim dan menerima data dalam arah yang berbeda)
• bisa mencapai 1000 node
• tidak kompatibel dengan ethernet, namun ethernet dapat dienkapsulasi dalam paket
FDDI
• bukan merupakan standard IEEE

47
Jaringan Ethernet
Komponen Jaringan Ethernet
Sampai saat ini Ethernet menggunakan media kabel thin coax, thick coax, fiber optic, dan UTP
dengan jumlah node maximum 1024.

Pada instalasi jaringan yang luas, biasanya antar gedung:


• biasanya digunakan kabel fiber optic atau thick coax sebagai backbones. Kabel
Backbones ini berfungsi sebagai bus segment linier dengan panjang maximum 500
m, dan 2500 m jika menggunakan repeater, dimana satu segment dapat dihubungkan
dengan 100 node.
• komputer dihubungkan ke backbones dengan manggunakan drop cable, melalui
sebuah transceiver.

Transceiver
Terminator

Drop Cable

Work Station File Server 1 Work Station

Gambar 2-7
Thick coax sebagai backbone pada jaringan thick-ethernet

Untuk instalasi yang lebih kecil, biasanya dalam satu gedung:


• digunakan kabel thin coax atau UTP.
• jarak maximum satu segment kabel thin coax adalah 185 m - 300 m dan 100 node per
segment
• kabel UTP digunakan dengan topologi star, dan memerlukan sebuah hub atau
consentrator yang diletakkan di tengah-tengah topologi star.
48
!

BNC T-Connector BNC Terminator

BNC Connector

Work Station Repeater Work Station

Work Station
Work Station

File Server 2 File Server 1

Work Station Work Station

BNC Terminator

Gambar 2-8
Implementasi ethernet dengan thin-coax

Instalasi Kabel Ethernet


Kabel thin-ethernet dibuat dengan kabel coax RG-58. Panjang minimal satu segment adalah 18
inchi. Pada kedua ujung kabel ini dipasangi konektor BNC. Dibutuhkan juga konektor T
BNC. Kedua ujung segment kabel harus dipasangi BNC Terminator.

Instalasi Kabel Thin-Ethernet


• satu segmen terdiri dari:
1. kabel koaksial RG-58
2. sepasang konektor BNC
• untuk menghubungkan sebuah node digunakan BNC T
• satu segmen harus diakhiri dengan terminator BNC
• panjang minimum 18 inchi

49
Kabel koaksial RG-58

BNC Connetctor
BNC Connetctor

BNC T BNC T

BNC Terminator BNC Terminator

Gambar 2-9
Contoh segment kabel thin coax

Instalasi Kabel Thick-Ethernet


• satu segmen terdiri dari:
1. kabel koaksial RG-8
2. sepasang konektor BNC
• untuk menghubungkan sebuah node digunakan transceiver dan drop cable melalui
konektor DB 15
• satu segmen harus diakhiri dengan terminator

50
!

Kabel koaksial RG-8

BNC Connetctor

Transceiver
BNC Connetctor

DB 15
ke node

Drop Cable
Terminator

Gambar 2-10
Contoh segmen kabel thick-coax

Instalasi Kabel Star-Ethernet


• satu segmen terdiri dari:
1. kabel UTP
2. sepasang konektor RJ-45 atau RJ-11
• tidak ada persilangan antar kaki-kaki konektor

Kabel UTP yang digunakan adalah 24 AWG. Dibutuhkan juga konektor RJ-45 dan RJ-45
crimp tool untuk memasangkan kabel ke konektornya. Untuk topologi star dibutuhkan juga
consentrator yang berfungsi sebagai pusat perkabelan dan meneruskan paket-paket ethernet ke
tujuan yang benar.

51
Kabel UTP

Konektor RJ-45

Gambar 2-11
Kabel UTP dan konektornya

Menghubungkan PC ke Jaringan Ethernet


Setiap PC dihubungkan ke jaringan ethernet dengan perantaraan Network Interface Card yang
cocok untuk digunakan dengan kabel coax, twisted pair, atau fiber-optic.

Hal-hal yang perlu dikonfigurasi pada card adalah:


• I/O address. Setiap card yang ada pada PC memiliki I/O address yang unik. Tidak
boleh ada dua card yang memiliki I/O address yang sama. Address yang “aman”
untuk digunakan : 220 240 280 2A0 2C0 340.
• IRQ level. Sama halnya dengan I/O address, IRQ level setiap card tidak boleh ada
yang sama. Tabel dibawah ini menunjukkan IRQ level mana yang boleh digunakan
oleh network interface card:

52
!

Interrupt Level Digunakan oleh


IRQ 2 EGA/VGA card
IRQ 3 Com 1
IRQ 4 Com 2
IRQ 5 LPT 2
IRQ 7 LPT 1
IRQ 10 kosong
IRQ 11 kosong
IRQ 15 kosong
Tabel 2-1
Daftar IRQ pada PC

• Shared Memory (RAM) base address


• Direct Memory Access (DMA) Channel
• Output Port. Harus dipilih apakah menggunakan kabel thin coax (BNC), thick coax
(AUI), atau UTP.
jumper
shared memory
base address
jumper
I/O address

UTP out

Thick ethernet
jumper out
dma channel

BNC out
jumper
IRQ level

Gambar 2-12
Network Interface Card dan jumper-jumpernya

Biasanya pemilihan I/O address, IRQ level, DMA, shared memory dilakukan dengan
memindahkan jumper-jumper yang ada pada card. Penetapan posisi jumper ini harus sesuai

53
dengan petunjuk yang ada pada manual card. Sebagai contoh pada card Compex penetuan
I/O address dan IRQ level digambarkan sebagai berikut:

200h 300h

220h 320h

240h 340h

260h 360h

280h 380h

2A0h 3A0h

2C0h 3C0h

2E0h 3E0h

Gambar 2-12
Jumper I/O address pada NIC Compex

J6A J6B

IRQ 2

IRQ 3

IRQ 4

IRQ 5

IRQ 7

IRQ 10

IRQ 11

IRQ 15

Gambar 2-13
Jumper IRQ level pada NIC Compex

Elemen-Elemen Internetworking
54
!

Internetworking umumnya dibangun menggunakan tiga elemen yang berbeda:


• hubungan data LAN
• biasanya terbatas dalam satu bangunan atau kampus dan beroperasi menggunakan
sistem pengkabelan private
• hubungan data WAN
• umumnya menggunakan saluran telekomunikasi data public, seperti X.25 PSDN,
Frame Relay, ISDN, ATM
• devais penghubung jaringan
devais ini secara umum dibagi dalam beberapa katagori:
1. repeater
2. bridge
3. router
4. switch
5. converter

Dari kelima katagori devais di atas, lebih mudah menentukan kapan menggunakan
repeater, switch, dan konverter dalam situasi internetwork. Keputusan mengenai
pemilihan penggunaan router atau bridge merupakan keputusan yang lebih sulit.

Repeater
Fasilitas paling sederhana dalam internetwork adalah repeater. Fungsi utama repeater adalah
menerima sinyal dari satu segmen kabel LAN dan memancarkannya kembali dengan
kekuatan yang sama dengan sinyal asli pada segmen (satu atau lebih) kabel LAN yang lain.
Repeater beroperasi pada Physical layer dalam model jaringan OSI. Jumlah repeater biasanya
ditentukan oleh implementasi LAN tertentu.

Penggunaan repeater antara dua atau lebih segmen kabel LAN mengharuskan penggunaan
protocol Physical layer yang sama antara segmen-segmen kabel tersebut. Sebagai contoh,
repeater dapat menghubungkan dua buah segmen kabel Ethernet 10BASE2.

Bridge

55
Sebuah bridge juga meneruskan paket dari satu segmen LAN ke segmen lain, tetapi bridge
lebih fleksibel dan lebih cerdas daripada repeater. Bridge menghubungkan segmen-segmen
LAN di Data Link layer pada model OSI. Beberapa bridge mempelajari alamat Link setiap
devais yang terhubung dengannya pada tingkat Data Link dan dapat mengatur alur frame
berdasarkan alamat tersebut. Semua LAN yang terhubung dengan bridge dianggap sebagai
satu subnetwork dan alamat Data Link setiap devais harus unik. LAN yang terhubung
dengan menggunakan bridge umum disebut sebagai Extended LAN.

Bridge dapat menghubungkan jaringan yang menggunakan metode transmisi berbeda


dan/atau medium access control yang berbeda. Misalnya, bridge dapat menghubungkan
Ethernet baseband dengan Ethernet broadband. Bridge mungkin juga menghubungkan LAN
Ethernet dengan LAN token ring, untuk fungsi ini, bridge harus mampu mengatasi
perbedaan format paket setiap Data Link.

Bridge mampu memisahkan sebagian trafik karena mengimplementasikan mekanisme


pemfilteran frame (frame filtering). Mekanisme yang digunakan di bridge ini umum disebut
sebagai store and forward sebab frame yang diterima disimpan sementara di bridge dan
kemudian di-forward ke worksation di LAN lain. Walaupun demikian, broadcast traffic yang
dibangkitkan dalam LAN tidak dapat difilter oleh bridge.

Router
Router memberikan kemampuan melalukan paket dari satu sistem ke sistem lain yang
mungkin memiliki banyak jalur di antara keduanya. Router bekerja pada lapisan Network
dalam model OSI. Umumnya router memiliki kecerdasan yang lebih tinggi daripada bridge
dan dapat digunakan pada internetwork dengan tingkat kerumitan yang tinggi sekalipun.
Router yang saling terhubung dalam internetwork turut serta dalam sebuah algoritma
terdistribusi untuk menentukan jalur optimum yang dilalui paket yang harus lewat dari satu
sistem ke sistem lain.

Router dapat digunakan untuk menghubungkan sejumlah LAN (dan extended LAN) sehingga
trafik yang dibangkitkan oleh sebuah LAN terisolasikan dengan baik dari trafik yang
dibangkitkan oleh LAN lain dalam internetwork. Jika dua atau lebih LAN terhubung dengan
router, setiap LAN dianggap sebagai subnetwork yang berbeda. Mirip dengan bridge, router
56
!

dapat menghubungkan data link yang berbeda. Seperti contoh, router dapat menghubungkan
dua LAN yang berbeda atau untuk menghubungkan data link LAN dengan data link WAN.

Switch
Di samping repeater, bridge, dan router, terdapat sejumlah tipe peralatan switching lain yang
dapat digunakan dalam membangun internetwork. Tujuan utama menghubungkan LAN
menggunakan repeater dan bridge adalah meningkatkan keleluasaan atas beberapa
keterbatasan media komunikasi LAN. Alat penghubung ini mampu menambah jumlah
perangkat jaringan yang terhubung dalam LAN.

Peralatan switch didesain dengan tujuan yang berbeda dengan repeater, bridge, dan router.
Jika perangkat jaringan yang terhubung dalam sebuah LAN menjadi terlalu banyak maka
kebutuhan transmisi meningkat melebihi kapasitas yang mampu dilayani oleh medium
komunikasi jaringan. Salah satu ide penggunaan router adalah mengisolasikan group fisik
jaringan dengan yang lain. Penggunaan router cocok pada sistem internetwork dengan
kelompok-kelompok kerja yang terletak dalam lokasi yang kecil. Lalu lintas data dalam
jaringan kelompok-kelompok kerja ini tentu lebih besar dibandingkan dengan lalu lintas
antar kelompok kerja.

Dalam kasus kelompok-kelompok kerja yang terletak terpisah secara geografis, penggunaan
router tetap tidak dapat mengisolasikan lalu lintas data. Lalu lintas data dalam kelompok
kerja yang tinggi akan menyebabkan beban di router tetap tinggi karena lalu lintas tersebut
selalu melewati router. Cara mengatasi hal ini adalah dengan menggunakan beberapa segmen
medium tranmisi secara paralel dalam internetwork. Router sendiri tetap dapat digunakan
untuk menghubungkan segmen-segmen tersebut dan tetap mampu mengisolasi trafik
antarsegmen. Perangkat network dapat dihubungkan ke medium transmisi yang sesuai atau
dengan menggunakan hub yang mengimplementasikan fasilitas switching, seperti module
assignment hub, bank assignment hub, dan port assignment hub.

Converter

57
Converter dapat dianggap sebagai tipe devais yang berbeda daripada repeater, bridge, router,
atau switch dan dapat digunakan bersama-sama. Converter (kadang disebut gateway)
memungkinkan sebuah aplikasi yang berjalan pada suatu sistem berkomunikasi dengan
aplikasi yang berjalan pada sistem lain yang berjalan di atas arsitektur network berbeda
dengan sistem tersebut. Converter bekerja pada lapisan Application pada model OSI dan
bertugas untuk melalukan paket antar jaringan dengan protokol yang berbeda sehingga
perbedaan tersebut tidak tampak pada lapisan aplikasi.

Di samping menggunakan converter, metode lain untuk menghubungkan jaringan dengan


arsitektur berbeda adalah dengan tunelling. Metode ini membungkus paket -termasuk
protokolnya- yang akan dilewatkan pada protokol lain. Pembungkusan ini dilakukan dengan
menambahkan header protokol pada paket yang akan dilewatkan. Metode ini dapat dilihat
sebagai sebuah arsitektur jaringan yang berjalan di atas arsitektur jaringan yang lain.
Perangkat tempat terjadinya proses tunnelling ini disebut sebagai portal

Internetwork heterogen
Sebuah LAN secara data link sebenarnya dapat terdiri atas beberapa arsitektur jaringan
individual yang masing-masing tidak dapat berkomunikasi dengan arsitektur lain. Pada
lapisan Data Link NIC di sebuat sistem masih mampu berkomunikasi dengan NIC di sistem
lain. Software jaringan yang terletak pada lapisan di atas Data Link hanya akan
memperhatikan sistem lain yang kompatibel dengannya dan tidak dapat berkomunikasi
dengan sistem yang berjalan dengan software jaringan yang tidak kompatibel dengannya.
Fungsi lapisan Transport dan Network pada setiap sistem TCP/IP hanya bisa berkomunikasi
dengan sistem TCP/IP lain, NetWare hanya berkomunikasi dengan sistem NetWare lain,
begitu pula dengan sistem jaringan lain. LAN seperti ini disebut sebagai LAN heterogen dan
internetwork yang menghubungkan LAN-LAN seperti ini disebut sebagai internetwork
heterogen.

Sebuah sistem dapat saja mempunyai sebuah data link dengan beberapa jenis software
(protokol) jaringan pada lapisan atasnya. Dengan cara ini sebuah sistem dapat berkomunikasi
dengan beberapa protokol jaringan sehingga misalnya sebuah sistem dapat berkomunikasi
58
!

dengan server TCP/IP dan server NetWare. Tujuan umum dalam dunia jaringan di masa ini
adalah agar pengguna dapat berkomunikasi dengan sistem komputasi lain di internetwork.

Internetwork menggunakan bridge


Bridge yang bekerja pada lapisan Data Link mampu menghubungkan LAN-LAN yang
berbeda protokol. Bridge tidak akan memeriksa jenis protokol setiap frame yang perlu
dilewatkan. Contoh internetwork menggunakan bridge dapat dilihat pada gambar 2-14.
Dalam internetwork tersebut setiap sistem TCP/IP dapat berhubungan dengan sistem
TCP/IP lain, demikian pula dengan sistem NetWare.

NetWare TCP/IP

LAN 1

TCP/IP
Bridge

TCP/IP

NetWare
LAN 3
LAN 2 TCP/IP
TCP/IP
TCP/IP

NetWare

TCP/IP

Gambar 2-14
Internetwork menggunakan bridge

Keuntungan menggunakan bridge:


• biaya; bridge adalah perangkat yang cukup sederhana dan umumnya lebih murah
daripada router
• kemudahan penggunaan; bridge umumnya lebih mudah dipasang dan dirawat
• kinerja; karena bridge cukup sederhana, overhead pemrosesan lebih kecil dan
cenderung mampu menangani traffic yang lebih tinggi
59
Kerugian menggunakan bridge
• volume traffic; bridge lebih cocok pada jaringan dengan volume traffic total yang
relatif rendah
• broadcast storm; frame broadcast dilewatkan bridge ke seluruh LAN dan ini dapat
menyebabkan traffic melebihi kapasitas medium jaringan
• loop; kesalahan mengkonfigurasi bridge dapat menyebabkan frame berputar
melewati bridge tanpa henti
• alamat yang sama; alamat fisik setiap stasiun dalam jaringan harus berbeda dengan
yang lain
• nama yang sama; jika nama network yang sama digunakan oleh dua atau lebih user
akan menyebabkan traffic yang berlebihan

Internetwork menggunakan router


Keunggulan utama menggunakan bridge dalam membentuk internetwork adalah tidak
terlihat oleh fungsi lapisan Transport dan Network. Dari sudut pandang lapisan atas jaringan,
extended LAN yang dibangun menggunakan bridge beroperasi sama seperti hubungan data
link LAN biasa. Karakteristik seperti ini bisa menjadi kelemahan jika internetwork tumbuh
menjadi lebih besar. Extended LAN dapat tumbuh menjadi sangat besar sehingga setiap
LAN dapat mengalami saturasi ketika menangani multicast traffic. Dalam hal ini router dapat
digunakan untuk menghubungkan LAN-LAN jika memang diinginkan untuk mengisolasi
multicass traffic.

Router bekerja pada lapisan Network dan hanya mampu melewatkan paket-paket yang
bersesuaian dengan protokol yang diimplementasikan padanya. Untuk router pada
internetwork heterogen diperlukan satu buah router untuk setiap jenis protokol pada
internetwork tersebut. Contoh internetwork menggunakan router dapat dilihat pada gambar
2-15. Pada internetwork tersebut setiap sistem TCP/IP dapat saling berhubungan dengan
sistem lain sedangkan sistem NetWare pada sebuah LAN tidak mampu berhubungan dengan
sitem NetWare pada LAN yang lain karena tidak terdapat router NetWare yang

60
!

menghubungkan ketiga LAN di internetwork. Untuk dapat menghubungkan NetWare dalam


internetwork ini dapat ditambahkan sebuah router Netware (gambar 2-16).

NetWare TCP/IP

LAN 1

TCP/IP
Router
TCP/IP
TCP/IP

NetWare
LAN 3
LAN 2 TCP/IP
TCP/IP
TCP/IP

NetWare

TCP/IP

Gambar 2-15
Internetwork menggunakan router

NetWare TCP/IP

LAN 1

Router
TCP/IP
NetWare
Router
TCP/IP
TCP/IP

NetWare
LAN 3
LAN 2 TCP/IP
TCP/IP
TCP/IP

NetWare

TCP/IP

Gambar 2-16
Penggunaan router untuk menghubungkan Netware ke internetwork

Keuntungan menggunakan router

61
• isolasi traffic broadcast; kemampuan ini memperkecil beban internetwork karena
traffic jenis ini dapat diisolasikan pada sebuah LAN saja
• fleksibilitas; router dapat digunakan pada topologi jaringan apapun dan tidak peka
terhadap masalah kelambatan waktu yang dialami jika menggunakan bridge
• pengaturan prioritas; router dapat mengimplementasikan mekanisme pengaturan
prioritas antar protokol
• pengaturan konfigurasi; router umumnya dapat lebih dikonfigurasi daripada bridge
• isolasi masalah; router membentuk penghalang antar LAN dan memungkinkan
masalah yang terjadi di sebuah LAN diisolasikan pada LAN tersebut
• pemilihan jalur; router umumnya lebih cerdas daripada bridge dan dapat
menentukan jalur optimal antara dua sistem.

Kerugian menggunakan router


• tergantung pada protokol; router yang beroperasi pada lapisan Network OSI hanya
mampu melalukan traffic yang sesuai dengan protokol yang diimplementasikan
padanya saja
• biaya; router umunya lebih kompleks daripada bridge dan lebih mahal;; overhead
pemrosesan pada router lebih besar sehingga troughput yang dihasilkannya dapat
lebih rendah daripada bridge
• pengalokasian alamat; dalam internetwork yang menggunakan router,
memindahkan sebuah mesin dari LAN yang satu ke LAN yang lain berarti mengubah
alamat network pada sistem itu
• sistem tak terjangkau; penggunaan tabel routing yang tidak dinamik menyebabkan
beberapa sistem dapat terjangkau oleh sistem lain

Perencanaan Internetwork TCP/IP


Dalam perencanaan internetwork TCP/IP, beberapa hal yang harus diperhatikan oleh
manajer jaringan adalah:
• Topologi backbone
62
!

• Pengalokasian alamat IP
• Pengaturan routing
• Penempatan server
• Penanganan protokol jaringan yang berbeda

Topologi backbone
Topologi backbone yang sebaiknya digunakan dalam internetwork yang meliputi sebuah
kampus adalah Snow Flakes yaitu topologi yang terdiri dari beberapa buah titik star (gambar
2-17).

Kelebihan topologi Snow Flakes :


• Beban routing terdistribusi lebih baik
• Pengontrolan dan operasi internetwork terpusat pada titik-titik star tersebut
• Troubleshooting internetwork lebih mudah

DEP-F

DEP-B

ROUTER

DEP-A ROUTER DEP-G

DEP-c
ROUTER
DEP-E

DEP-C

DEP-D

Gambar 2-17
Snow Flakes

Internetwork sebaiknya disusun dalam beberapa tingkat (umumnya dua atau tiga)
berdasarkan kondisi workgroup. Misalnya backbone menjadi penghubung antar-departemen,
dan jaringan dalam setiap departemen menghubungkan direktorat-direktorat.

63
BACKBONE

Router Router
DEPARTEMEN

Router Router
DIREKTORAT

Workstation Workstation SERVER

Gambar 2-18
Internetwork disusun dalam bentuk tingkatan-tingkatan

Pengalokasian alamat IP
Seorang manajer jaringan harus mengganggap alamat IP sebagai suatu resource yang harus
dialokasikan sebaik-baiknya. Setiap stasiun dari internetwork yang terhubung langsung
dengan Internet harus memiliki alamat IP yang unik di seluruh Internet. Sebuah organisasi
mungkin memperoleh alamat jaringan kelas A, B, atau kelas C, atau bahkan hanya sebagian
kecil dari kelas C. Pada internetwork yang memiliki IP terbatas, hal yang umum dilakukan
adalah melakukan proxy IP. Internetwork yang terletak di dalam lingkungan proxy wajib
memiliki IP yang unik hanya dalam lingkungan proxy tersebut.

Cara pengalokasian IP yang baik adalah yang berdasarkan letak geografis. Ini berarti bahwa
jaringan yang terletak dekat secara geografis, sebaiknya juga memiliki alamat IP yang dekat.
Ini berguna terutama dalam pengaturan routing.

Pengaturan routing

64
!

Routing dalam internetwork sebaiknya menggunakan metode routing dinamik dan hanya
menggunakan routing statik pada kondisi yang tidak memungkinkan penggunaan routing
dinamik.

Keuntungan routing dinamik:


• route ditentukan oleh setiap router berdasarkan informasi dari router lain
• dapat beradaptasi terhadap perubahan kondisi internetwork (penambahan jaringan
baru, putusnya jaringan)
• penanganan oleh manusia jauh lebih ringan dibandingkan dengan routing statik

Pada saat ini terdapat dua macam routing dinamik yang biasa digunakan dalam internetwork
TCP/IP:
• RIP (Routing Information Protocol); yang menggunakan algoritma routing Distance
Vector
• OSPF (Open Sortest Path First); yang menggunakan algoritma routing link-state

Penempatan Server
Pengertian server yang disebut di sini mengacu kepada mesin-mesin dalam lingkungan
internetwork yang ditujukan secara khusus untuk memberikan informasi yang dibutuhkan
oleh client. Dalam internetwork TCP/IP server-server tersebut digunakan untuk memberi
informasi penting bagi internetwork, misalnya DNS server, dan untuk memberikan informasi
secara umum, seperti Web server dan News server. Sesuai dengan namanya, server memberi
indikasi kemungkinan terjadinya trafik yang lebih tinggi antara server tersebut dengan
workstation dibandingkan dengan trafik antar workstation.

Penempatan server yang baik dalam internetwork mampu mendistribusikan beban trafik di
jaringan. Hal ini terutama berlaku untuk server-server yang dibutuhkan oleh internetwork
seperti DNS server. Penempatan server-server seperti Web server dan FTP server juga turut
berperan dalam mendistribusikan beban trafik. Menurut penelitian, FTP server yang
ditempatkan dengan baik mampu mengurangi trafik yang tidak perlu sampai sebesar 44%.

Sifat beban trafik antara DNS server dengan FTP dan Web server berbeda yaitu DNS server
sering diakses tetapi memberikan informasi dalam jumlah yang kecil sedangkan walaupun

65
FTP dan Web server diakses relatif tidak sesering DNS server, informasi yang diberikan
keduanya jauh lebih besar daripada informasi dari DNS pada setiap kali akses. Praktik yang
biasa dilakukan terutama pada DNS server adalah pendistribusian informasi pada dua atau
tiga server dalam internetwork yang besar. Dengan praktik seperti ini, setiap query oleh client
diajukan kepada server terdekat.

66
!

Penanganan protokol jaringan yang berbeda


Internetwork yang ada saat ini tidak semua hanya menggunakan satu protokol jaringan.
Terdapat juga lingkungan internetwork yang terdiri dari dua atau lebih protokol seperti
protokol TCP/IP dengan IPX/SPX. Pada internetwork TCP/IP yang menggunakan router
(TCP/IP), elemen internetwork dengan protokol yang berbeda tersebut hanya mampu
berkomunikasi sebatas sampai router saja. Agar elemen ini mampu berkomunikasi dengan
elemen yang lain yang terpisah oleh router, biasanya digunakan metoda tunnelling. Dengan
tunnelling, elemen-elemen internetwork tersebut dapat berkomunikasi dengan protokolnya
di atas protokol TCP/IP.

67
3
Sekilas tentang UNIX :
Langkah-langkah Instalasi UNIX dan
Dasar-dasar Penggunaan Perintah Pada Sistem Operasi UNIX

Pada bab ini akan ditunjukkan cara praktis melakukan


instalasi UNIX FreeBSD, serta beberapa perintah
dasar sistem operasi UNIX.

68
!

Pendahuluan
Pada Bab ini akan dibahas mengenai cara-cara instalasi FreeBSD pada komputer anda. Mulai
dari bagian yang sangat dasar yaitu membuat disket booting untuk instalasi FreeBSD hingga
FreeBSD tersebut terbentuk.

Untuk instalasi FreeBSD ini dapat dilakukan melalui berbagai cara, yaitu :
1. Instalasi dari CDROM
2. Instalasi dari Floppy Disk
3. Instalasi dari partisi DOS
4. Instalasi dari QIC/SCSI tape
5. Instalasi melalui network
• Instalasi melalui NFS (Network File System)
• Instalasi melalui FTP (File Transfer Protocol)

Namun yang diutamakan dibahas pada bab ini adalah instalasi melalui FTP.

Ada hal-hal yang perlu diperhatikan dalam instalasi FreeBSD, yaitu :


1. Disket boot untuk instalasi FreeBSD.
2. Komputer dengan RAM minimum 8 MB dan Harddisk minimum 120MB.
3. Sarana jaringan komputer (Ethernet Card, perhatikan Port dan IRQ-nya).
4. Source dari FreeBSD.

Catatan : Perhatikan semua jenis perangkat keras yang dapat di-support oleh FreeBSD

Membuat Disket Boot


Dalam membuat disket booting diperlukan sebuah file yang namanya boot.flp. Ambillah file
tersebut dari source FreeBSD, misalkan dari CDROM-nya atau ftp ke site di Internet yang
menyediakan source dari FreeBSD tersebut. Biasanya file tersebut ada di direktori
FreeBSD/2.1.6-RELEASE/floppies. Untuk membuat disket jadi boot FreeBSD dapat
dilakukan dengan dua cara yaitu :

Pada sistem DOS

69
Dengan cara ini kita membutuhkan perintah rawrite untuk meng-extract file tersebut :
Rawrite boot.flp <disk_drive>

Pada sistem FreeBSD

Extract-lah file boot.flp tersebut dengan perintah dd, contoh :


# dd if=boot.flp of=/dev/fd0

/dev/fd0 menunjukkan floppy drive yang digunakan. Pada FreeBSD, /dev/fd0


menunjukkan drive A dan /dev/fd1 menunjukkan drive B.

Catatan : Jika mesin anda hanya memiliki RAM 4 MB gunakan boot4.flp

Yang harus anda persiapkan sebelum melakukan instalasi :

Instalasi dari CDROM


Jika CDROM anda tidak di-support oleh FreeBSD anda dapat melewatkan bagian ini untuk
menuju ke bagian instalasi dari partisi DOS.

Tidak banyak harus dipersiapkan untuk instalasi dengan cara ini, cukup menjalankan file
install.bat yang disediakan pada CDROM atau membuat boot floppy dengan perintah
makeflp.bat. Untuk memudahkan semua hal di atas cukup ketikan view, ini akan membawa
anda ke menu utility yang membimbing pelaksanaan di atas melalui pilihan-pilihan yang telah
disediakan.

Catatan : Sebelum melakukan instalasi (sebelum booting) CDROM harus diletakan pada
drive-nya sehingga dapat ditemukan oleh FreeBSD pada saat booting.

Instalasi dari Floppy


Jika anda harus menginstalasi FreeBSD dari floppies baik itu karena terpaksa karena
perangkat keras yang tidak di-support atau karena anda senang melakukannya maka harus
dipersiapkan floppy disk yang cukup banyak.untuk menyimpan semua file yang ada di
direktori bin (binary distribution).

Untuk sistem DOS, floppy disk yang akan digunakan benar-benar harus terformat oleh DOS
format (anda harus yakin mengenai hal ini). Untuk sistem FreeBSD maka anda harus

70
!

membuat floppy itu bersistem FreeBSD, yaitu dengan perintah disklabel dan newfs, dengan
cara :
# fdformat -f 1440 fd0.1440
# disklabel -w -r fd0.1440 floppy3
# newfs -t 2 -u 18 -I 65536 /dev/rfd0

Catatan : Gunakan ‘fd0.1200’ dan ‘floppy5’ untuk floppy 1.2MB

Instalasi dari Partisi DOS


Untuk mempersiapkan instalasi dari partisi DOS anda harus meng-copy file dari Source ke
direktori dengan nama FREEBSD. Sebagai contoh untuk minimum instalasi dapat dilakukan
seperti di bawah ini

C:\ MD FREEBSD
C:\ XCOPY /S E:\DISTS\BIN C:\FREEBSD\BIN

Asumsi : C: adalah Harddisk dan E: adalah CDROM

Instalasi dari QIC/SCSI Tape


Cara yang dilakukan hampir sama dengan instalasi dengan CDROM, hanya mesti diingat
bahwa tape harus berada dalam drive-nya sebelum dilakukan booting. Jika hal tersebut
dilakukan akan menyebabkan tape tersebut gagal ditemukan oleh FreeBSD pada saat probing

Instalasi dari Jaringan


Anda dapat melakukan instalasi melalui jaringan dengan tiga tipe koneksi yaitu :
1. Serial port : SLIP / PPP
2. Parallel port : PLIP (menggunakan laplink)
3. Ethernet : Standar ethernet yang dapat dikenali oleh FreeBSD

Pilihan terbaik dari semua di atas adalah ethernet adapter dan men-support ethernet card
yang umum digunakan. Untuk hal di atas maka anda perlu untuk menentukan IP address,

71
masking, gateway (IP ISP, jika anda menggunakan PPP) yang digunakan disamping nama
komputer.

Instalasi melalui FTP


Untuk instalasi ini maka anda perlu untuk menentukan FTP Server yang menyediakan
fasilitas ini. Sebagai contoh : ftp.itb.ac.id, ftp.jp.freebsd.org, atau ftp.freebsd.org.

Ada dua jenis ftp yang dapat dilakukan yaitu :


1. FTP aktif
Adalah ftp tanpa melalui firewall
2. FTP pasif
Jenis ini memperbolehkan user melewati firewall yang tidak menutup koneksi pada
beberapa port address

Instalasi FreeBSD (FTP)


Boot-lah komputer anda dengan disket booting yang telah dibuat sebelumnya. Pada saat
booting ini akan terlihat bahwa FreeBSD akan memeriksa semua perangkat keras yang
terpasang pada komputer anda. Perhatikanlah semua perangkat keras yang terdeteksi,
terutama perangkat keras yang penting seperti ethernet card dan harddisk.

Jika pada saat booting ada beberapa perangkat yang akan digunakan tapi tidak terdeteksi,
maka ulangi lagi proses instalasi dengan memberikan option -c pada saat booting.

Boot : -c

Gunakan perintah visual untuk mengkonfigurasi perangkat keras yang terpasang

config# visual

Tampilannya akan seperti berikut :

72
!

Untuk mengatur perangkat keras yang digunakan arahkan pointer keyboard anda pada
perangkat tersebut dan tekanlah enter.

Keluarlah dari menu untuk probing dari perangkat keras yang terpasang (sekali lagi
perhatikan perangkat yang terdeteksi).

Selanjutnya anda akan dihadapkan pada menu instalasi seperti di bawah ini :

73
Menu Doc berisi beberapa dokumen yang berhubungan dengan FreeBSD, Perangkat keras,
dan proses instalasi. Untuk memahami lebih lanjut mengenai langkah-langkah untuk instalasi
atau segala hal yang berhubungan dengan FreeBSD anda dapat membacanya di sini.

Pilihlah salah satu menu dari Novice, Express, atau Custom untuk memulai instalasi. Menu
Novice dipilih untuk beginer, Menu Express untuk instalasi dengan konfigurasi minimum
dengan menggunakan harga default yang disediakan FreeBSD. Untuk mengatur proses
instalasi yang sesuai dengan keinginan sendiri maka dapat dipilih menu Custom. Di sini kita
akan memilih menu Custom.

74
!

Pilih menu Partition untuk menentukan besarnya partisi yang akan digunakan untuk
FreeBSD. A untuk menjadikan semua bagian sebagai partisi FreeBSD, C untuk membuat
partisi yang baru. Buat partisi FreeBSD agar bootable dengan S.

75
Pilih Menu Label untuk memberi nama atau label pada partisi. Tekan A untuk nilai default
FreeBSD. Tekan C jika ingin menentukan sendiri. Ada beberapa label diharuskan ada yaitu :
/ dan /usr, sedangkan sisanya terserah, umumnya dibuat sebagai /data.

Pilih Menu Distribution untuk menentukan paket distribusi yang akan diinstall pada
komputer. Pilihlah menu yang sesuai dengan kebutuhan.

76
!

Selanjutnya pilih menu Media. Di sini akan ditentukan melalui media apa instalasi akan
dilakukan, Pilihlah media yang diinginkan. Pada saat sekarang akan digunakan media FTP
untuk instalasi.

Pilih site di Internet yang menyediakan Source FreeBSD. Pilih Other jika ada alamat lainnya
yang lebih dekat namun tidak terdapat dalam daftar, sertakan pula letak direktori dari Source
tersebut. sebagai contoh ftp.itb.ac.id dengan letak direktori di pub/FreeBSD/2.1.5-
RELEASE. Maka tulislah dengan ftp.itb.ac.id/pub/FreeBSD/2.1.5-RELEASE.

77
Isilah beberapa option yang harus diisi di menu selanjutnya seperti nama komputer, domain,
IP address dari Gateway, Name Server, dan komputer itu sendiri, serta netmasknya. Pilih
interface yang akan digunakan untuk instalasi, misal ed0

Jika sudah yakin dengan apa yang telah dilakukan maka pilihlah Commit. Selanjutnya proses
instalasi akan dilakukan. Jika telah selesai maka rebootlah komputer tersebut. Mesin
FreeBSD siap untuk dijalankan.

Memulai dan Mengakhiri FreeBSD


Pada saat akan memulai FreeBSD anda akan dihadapkan dengan login dan password.
Tulislah identitas dan password yang sesuai. Bila ini berhasil maka anda sudah masuk ke
dalam sistem dan bisa mulai bekerja dengannya.

78
!

Jika anda telah selesai bekerja dan akan keluar dari sistem dapat menggunakan perintah
logout (keluar login), exit ( keluar shell) atau ^D.

Sebagian besar dari UNIX adalah Operating System yang sensitif, karenanya sangat dihindari
mematikan mesin secara langsung terutama pada saat beban trafik sedang besar karena dapat
merusak perangkat keras. Untuk mematikan mesin gunakan dengan perintah shutdown.

shutdown [-] [-hkrn] time [warning-message...]

Untuk melihat fungsi dari suatu perintah dan option-optionnya dapat digunakan perintah
man
man <command>

sebagai contoh,
man shutdown

Ini akan menghasilkan seperti di bawah ini :

Perintah-Perintah Dasar Utility


System dan Regular Expression
79
Klasifikasi perintah Unix kedalam grup grup tertentu bisa berbeda beda, karena Unix
merupakan sistem yang besar. Klasifikasi dalam diskusi kita dimaksudkan untuk menampung
perintah perintah lain yang akan kita gunakan, tapi tidak dibahas secara khusus. Beberapa
contoh perintah dasar (bagian ini bisa dilewati untuk anda yang sudah familiar dengan
perintah perintah tersebut): date, who, echo [teks], pwd, ls, cd, cp, cat, mv, rm, mkdir

Kemudian perintah perintah yang sering digunakan sebagai utility-system , misalnya:

passwd, adduser, mail, finger, write, wall, ps, kill <no proses>,

nohup <perintah/proses>, nice <perintah/proses>, time <perintah>, stty, tty, dan lain-lain.

(beberapa perintah diatas baru dapat dijalankan bila kita mengetahui argumennya, dan jelas
memerlukan perintah yang lain, untuk praktikum silahkan coba yang disarankan oleh tutor
anda). Untuk sintax yang lengkap silahkan buka manual di mesin anda.

Regular expression
Adalah suatu cara untuk menunjuk pada pola karakter umum. Karakter yang biasa digunakan
dapat dilihat pada tabel perintah vi dibawah.
% grep ‘^set’ .login
% grep ‘^set$’ .login

Redirection dan Pipes (filter)


Karena eratnya kaitan bahasa C dengan Unix, hampir setiap command di Unix yang
membutuhkan masukan dan keluaran, mengenal suatu standard input (stdin), standar output
(stdout), dan standar error (stderr). Tapi biasanya perintah perintah tersebut mempunyai
stdin,stdout, atau stderr default, yang dieksekusi jika kita tidak mengeset mereka. Jadi
sederhananya Redirection dan Pipes adalah proses pengalihan stream data ini ke/dari
‘tempat’ yang dikehendaki.

Berikut contoh yang sederhana:


% ls -l > isi.direktori
% more .login > login.doc

80
!

% cat .profile >> login.doc


% ps -ax|grep ftp
% cat < .cshrc > cshrc.txt
% cat .cshrc .login > info
% cat info cshrc.txt > anu

Operasi File dan Direktori


Berikut akan kita ulang operasi dasar dalam Unix untuk file dan direktori.Perlu dicatat bahwa
dalam Unix 'file' menunjuk pada sembarang sumber input atau target output, tidak hanya
pada sebuah tempat penyimpanan data. Unix mempunyai tiga bentuk file : file biasa,
direktori, dan file khusus. Dalam Unix, piranti fisik direpresentasikan oleh file-file khusus.

Direktori merupakan file yang menunjuk kesejumlah file lainnya. Sedangkan file biasa berisi
data, bisa berbentuk teks ataupun binary.

Menampilkan file dalam suatu direktori :


ls [-adglrsCFR1] [name]

perintah perintah berikut dapat anda coba:


% ls /
% ls /etc
% ls ..
% ls
% ls ../..
% ls |wc -l
% ls -C
% ls -1
% ls -r
% ls -F
% ls -R ~
% ls -s
% ls h*
% ls h h1 h2

81
% ls -s /bin/[a-z][a-z] /usr/bin/[a-z][a-z]
% ls /usr/{user1,user2.tln}
% ls -a
% ls -l
% ls -l info;date

Menampilkan isi file


cat <file name>

Menampilkan isi file layar per layar


more <file name>

Membuat direktori
mkdir <namedir>

Mengkopi file
cp [-ip] file1 file2
cp [-ip] file... direktori
cp -r [-ip] direktori1... direktori2

% more .cshrc > data


% cp data extra
% cp /etc/passwd ~/pword
% cp -i data extra
% cp data1 data2 data3 backups
% cp data[123] backups
% cp data* backups
% cp d* backups
% cp -r essays backups

Memindahkan file
mv [-if] file... direktori
82
!

mv [-if] oldname newname

% mv data archive
% mv data1 data2 data3 archive
% mv -i data archive
% mv memo important
% mv memo archive/important

Menghapus File
rm [-fir] file...

Menghapus direktori
rmdir
% mkdir data
% rm data
% rm ~/memo
% rm bin/spacewar
% rm data[123]
% rm *
% rm -i data*
% rm -f data.important
% rm -r extra
% rm -r *
% rm -ir extra
% rm -fr extra
% rm -fr ~/extra
% rm -fr ~ /extra
% rm -fr /

Mode file
chmod mode file...

83
% chmod 644 memo1 memo2 memo3
% chmod 755 spacewar
% chmod 600 homework.text
% chmod 700 homework.program

Beberapa perintah lain yang masih berkaitan dengan operasi file, yang sebaiknya anda buka
di online manual adalah du,quota,alias,umask, dan ln

Text Editor : vi
Perintah perintah vi sangat banyak jumlahnya. Untuk melakukan sesuatu dengan vi, selalu
terdapat jalan alternatif untuk merepresentasikan tugas yang sama. Dalam konteks ini, kita
akan membahas vi secara garis besar saja. vi mempunyai dua mode, mode perintah
(command mode) dan mode sisip (insert mode). Pada waktu kita berada pada command
mode, semua tombol yang kita tekan akan diintepretasikan sebagai suatu perintah. Jadi
ketikan kita tidak akan dianggap sebagai tulisan. Sedadangkan jika kita berada pada insert
mode, kita hanya dapat melakukan satu hal saja, yaitu mengetik tulisan kita. Kita tidak dapat
menghapus kata atau baris, menggerakkan kursor keatas atau kebawah, dsb. Untuk masuk ke
masing masing mode dapat dilakukan dengan menekan tombol Esc (ke command mode)
dan i ( ke insert mode).

Pertama yang perlu diingat adalah cara keluar dari vi, yaitu dengan perintah
<Esc><:><q!> .

84
!

Memulai vi
vi file memulai vi, mengedit file yang diberikan
vi -R file memulai vi, mengedit file yang diberikan,
read only
viewfile memulai vi, mengedit file yang diberikan,
read only

Keluar
ZZ menyimpan data dan stop
:q! keluar tanpa menyimpan

Merecover file
vi -r menampilkan nama file yang bisa direcover
vi -rfile memulai vi, merecover file yang diberikan

Mengatur tampilan
^L menampilkan kembali layar yang sedang
aktif
: set number menampilkan nomor baris internal
: set nonumber tidak menampilkan nomor baris internal

Menggerakkan kursor
h memindahkan kursor satu posisi ke kiri
j memindahkan kursor satu posisi ke bawah
k memindahkan kursor satu posisi ke atas
l memindahkan kursor satu posisi ke kanan
<kiri> memindahkan kursor satu posisi ke kiri
<bawah> memindahkan kursor satu posisi ke bawah
<atas> memindahkan kursor satu posisi ke atas
<kanan> memindahkan kursor satu posisi ke kanan
<backspace> memindahkan kursor satu posisi ke kiri
<spasi> memindahkan kursor satu posisi ke kanan
- memindahkan kursor pada awal baris sebelumnya
+ memindahkan kursor pada awal baris sesudahnya
<enter> memindahkan kursor pada awal baris sesudahnya
0 memindahkan kursor pada awal baris aktif
$ memindahkan kursor pada akhir baris aktif

85
^ memindahkan kursor pada karakter pertama (non
spasi/tab)
w memindahkan kursor ke karakter pertama kata
berikutnya
e memindahkan kursor ke karakter terakhir kata
berikutnya
b memindahkan kursor ke karakter pertama kata
sebelumnya
W sama dengan w tapi mengabaikan punctuation
E sama dengan e tapi mengabaikan punctuation
B sama dengan b tapi mengabaikan punctuation
) menggerakkan ke awal kalimat sesudahnya
( menggerakkan ke awal kalimat sebelumnya
} menggerakkan ke awal paragrap sesudahnya
{ menggerakkan ke awal paragrap sebelumnya
H memindahkan kursor pada baris atas
M memindahkan kursor pada baris tengah
L memindahkan kursor pada baris terakhir

Menuju lokasi tertentu pada editting buffer


^F bergerak kebawah satu layar
^B bergerak keatas satu layar
n^F bergerak kebawah n layar
n^B bergerak keatas n layar
^D bergerak kebawah setengah layar
^U bergerak keatas setengah layar
n^D bergerak kebawah n baris
n^U bergerak keatas n baris

86
!

Mencari suatu model


/rexp mencari (forward) regular expression yang
diberikan
/ mengulangi (forward) mencari regular exp pattern
sebelumnya
?rexp mencari (backward) untuk regular expression yang
diberikan
? mengulangi (backward) mencari regular exp
pattern sebelumnya
n mengulangi perintah / atau ? sebelumnya pada
direction yang sama
N sama dengan n pada arah yang berlawanan

Karakter khusus yang digunakan dalam regular expression


. sesuai dengan karakter tunggal kecuali newline
* sesuai nol atau lebih karakter pertama
^ sesuai dengan awal baris
$ sesuai dengan akhir baris
\< sesuai dengan awal kata
\> sesuai dengan akhir kata
[ ] sesuai dengan salah satu karakter yang di
lingkupinya
[^ ] sesuai dengan sembarang karakter yang tidak di
lingkupinya
\ mengartikan simbol yang mengikutinya secara
literal

Nomor baris
nG melompat ke baris nomor n
1G melompat ke awal baris dalam editing
buffer
G melompat ke akhir baris dalam editing
buffer
:map g 1G mendefinisikan makro sehingga g sama
dengan 1G

87
Menyisipkan
I berubah ke insert mode, insert sebelum
posisi kursor
a berubah ke insert mode, insert sesudah
posisi kursor
I berubah ke insert mode, insert pada awal
baris aktif
A berubah ke insert mode, insert pada akhir
baris aktif
o berubah ke insert mode, open dibawah baris
aktif
O berubah ke insert mode, opern diatas baris
aktif

Mengubah
r mereplace 1 karakter tanpa masuk ke insert
mode
R mereplace dengan mengetikan
s mereplace 1 karakter dengan menginsert
C mereplace dari kursor ke akhir baris
dengan menginsert
cc mereplace semua baris aktif dengan
menginsert
S mereplace semua baris aktif dengan
menginsert
cmove mereplace dari posisi kursor ke move
dengan menginsert
~ mengubah kecil/besar suatu huruf

Menggantikan suatu model


:s/pattern/replace/ substitusi, pada baris aktif
:lines/pattern/repla substitusi, pada baris tertentu
ce/
:line,,lines/pattern substitusi, pada range tertentu
/replace
:%s/pattern/replace/ substitusi, semua baris

Membatalkan dan mengulagi pengubahan yang sebelumnya

88
!

u undo perintah sebelumnya yang memodifikasi editing


buffer
U merestore baris aktif
. mengulangi perintah sebelumnya yang memodifikasi
editing buffer

Mengkontrol panjang baris


r<Return> mereplace sebuah karakter dengan newline
J menyatukan baris
:set wm=n auto line break dalam n posisi dari margin
kanan

Menghapus
x menghapus karakter pada posisi kursor
X menghapus karakter disebelah kiri kursor
D menghapus karakter diakhir baris
dd menghapus seluruh baris aktif
dmove menghapus dari kursor ke move
dG menghapus dari kursor ke akhir editing
buffer
d1G menghapus dari kursor ke awal editing
buffer
:lined menghapus baris tertentu
:line,lined menghapus range tertentu

Mengkopi penghapusan terakhir


P insert sesudah/dibawah kursor
p insert segelum/diatas kursor
xp mentranspose dua karakter
deep mentranspose dua kata
ddp mentranspose dua baris

89
Mengkopi dan memindahkan baris
:linecotarget mengkopi baris tertentu, insert dibawah
target
:line,linecota mengkopi range tertentu, insert dibawah
rget target
:linemtarget memindahkan baris tertentu, insert dibawah
target
:line,linemtar memindahkan range tertentu, insert dibawah
get target

Mengeksekusi perintah shell


:!command pause vi, mengeksekusi perintah shell
tertentu
:!! pause vi, mengeksekusi perintah shell
sebelumnya
:sh pause vi, memulai shell
:!csh pause vi, memulai C Shell yang baru

Membaca data
:liner file insert isi file, setelah baris tertentu
:r file insert isi file, sesudah baris aktif
:liner insert output dari perintah seteleh baris
!command tertentu
:r !command insert output dari perintah setelah baris
aktif
:r !look insert kata yang berawal dengna pattern
pattern tertentu

Menggunakan perintah shell untuk memproses data


n!!command mengeksekusi perintah pada n baris
!move command mengeksekusi perintah dari kursor ke move
!move fmt memformat baris dari kursor ke move

90
!

Menyimpan data
:w menulis data pada file original
:w file menulis data pada file tertentu
:w >> file menambahkan data pada file tertentu

Mengganti file yang diedit


:e file mengedit file tertentu
:e! file mengedit file tertentu, mengabaikan chek
otomatis

Menyingkat
:ab short long mengeset short sebagai singkatan dari long
:ab menampilkan singkatan aktif
:una short meng-cancel penyingkatan short

Contoh pengeditan dengan vi


% cp .cshrc cshrc.doc

berikut contoh hasil operasi diatas ( cshrc.doc)


#csh .cshrc file

alias h history 25
alias j jobs -l
alias la ls -a
alias lf ls -FA
alias ll ls -lA
alias su su -m

setenv EDITOR vi
setenv EXINIT 'set autoindent'
setenv PAGER more

set path = (~/bin /bin /usr/{bin,games} /usr/local/bin


/usr/X11R6/bin)

91
if ($?prompt) then
# An interactive shell -- set some stuff up
set filec
set history = 1000
set ignoreeof
set mail = (/var/mail/$USER)
set mch = `hostname -s`
set prompt = "${mch:q}: {\!} "
umask 2
endif

Bagi anda yang belum terbiasa dengan vi cobalah edit kembali file cshrc.doc tersebut dari
awal, atau buat file tail/head dari cshrc.doc tersebut kemudian lengkapi sehingga sama
dengan asalnya

Berikut beberapa file yang dapat anda coba untuk berlatih, supaya lebih terbiasa dengan vi:
% cat .profile > profile.doc

PATH=$HOME/bin:/bin:/usr/bin:/usr/games:/usr/X11R6/bin:/usr/
local/bin
export PATH

EDITOR=vi
export EDITOR
EXINIT='set autoindent'
export EXINIT
PAGER=more
export PAGER

umask 2

% cat .login > login.doc


#csh .login file

92
!

setenv SHELL /bin/csh


set noglob
eval `tset -s -m 'network:?xterm'`
unset noglob
stty status '^T' crt -tostop
/usr/games/fortune

93
4
Mengkonfigurasi
Network Interface

Pada bab ini, Anda akan mempelajari:


• Konfigurasi Interface Menggunakan ifconfig
• TCP/IP Melalui Serial Line
• Memilih Protokol Serial
• Mengkonfigurasi Interface SLIP
• Mengkonfigurasi Interface PPP
• Melakukan Konfigurasi pada Start-up File

94
!

Pendahuluan
Ketika protokol network hanya bekerja dengan satu jenis physical network saja, belum ada
keperluan untuk mengidentifikasikan network interface untuk software. Software sudah
mengetahui interface yang mana yang harus ia gunakan. Kemudian datanglah TCP/IP, yang
memiliki kelebihan dalam hal flexibilitas. Ia bisa digunakan pada berbagai macam physical
network. Fleksibilitas ini mengakibatkan tidak adanya network interface yang menjadi default
dalam suatu sistem. Karenanya seorang Network Adminstrator harus mendefinisikan sendiri
karakteristik tiap tiap network interface yang hendak digunakannya agar bisa menjalankan
protokol TCP/IP.

Konfigurasi Interface Menggunakan


ifconfig
Perintah ifconfig digunakan untuk mengecek atau mengeset konfigurasi dari sebuah
network interface. Yang dapat diset oleh perintah ini antara lain
• IP address
• Subnet Mask
• Broadcast address

Bentuk dari perintah ifconfig tersebut ialah sebagai berikut

ifconfig interface address netmask mask broadcast address

Sebagai contoh , dapat kita lihat perintah ifconfig yang digunakan untuk mengkonfigurasi
interface "ed1" pada host "maingtw.paume.itb.ac.id". Host ini memiliki IP address
167.205.22.131 dan netmask 0xffffffe0.

ifconfig ed1 167.205.31.131 netmask 255.255.255.224


broadcast 167.205.31.159

95
Keterangan :

interface ialah nama dari network interface yang hendak dikonfigurasi dengan perintah
ifconfig ini. Disini digunakan contoh interface Ethernet ed1

address adalah IP address yang diberikan kepada interface ini. IP address ini diberikan
dalam bentuk desimal berititik atau dengan nama host. IP address lebih cocok
untuk digunakan, karena jika kita menggunakan nama host , ifconfig harus
mencari IP address ekivalennya terlebih dahulu sebelum ia diberikan ke interface.
Jika kita ingin menggunakan nama host , nama tersebut kita letakkan pada file
/etc/hosts. Pada contoh diatas kita menggunakan IP address 167.205.31.131

mask subnetmask yang digunakan oleh interface ini. Jika jaringan kita tidak dibagi bagi
dalam subnet, maka argumen ini bisa diabaikan

address ialah alamat broadcast dari network ini. Ia didapat dengan mengeset semua host
bit dalam IP Address menjadi satu. Sebagai contoh , misalnya kita menggunakan IP
Address 167.205.31.131 maka broadcast addressnya adalah 167.205.31.159

Karena yang hendak kita konfigurasi ini adalah network interface, kita tentu harus
mengetahui network interface apa saja yang tersedia pada host kita ini. Biasanya pada saat
booting , seluruh interface yang ada pada sistem kita nampak di console. hal ini bisa juga
dilihat dengan menggunakan perintah dmesg.

Ada juga cara lain yang digunakan untuk mengetahui seluruh interface yang ada pada sistem
kita. Kita dapat menggunakan perintah netstat

Menggunakan Perintah netstat


Untuk mengetahui seluruh network interface yang tersedia digunakan perintah

% netstat -ain

Ada tiga option yang mengikuti perintah netstat diatas. Option -i meminta netstat untuk
menampilkan status dari network interface yang telah terkonfigurasi.Option -a digunakan
untuk menampilkan seluruh network interface yang ada dalam sistem, bukan hanya yang

96
!

telah dikonfigurasi saja. Option -n meminta netstat untuk menampilkan keluaran dalam
bentuk numerik. Berikut ini adalah contoh keluaran perintah netstat
% netstat -ain
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
ed0 1500 <Link>00.80.48.91.e8.40 360436 0 394016 0 100
ed0 1500 167.205.22. 167.205.22.123 360436 0 394016 0 100
ed1 1500 <Link>00.80.48.81.c6.b3 558995 71 493592 70 6941
ed1 1500 167.205.31. 167.205.31.131 558995 71 493592 70 6941
lp0* 1500 <Link 0 0 0 0 0
lo0 65532 <Link 16535 0 16535 0 0
lo0 65532 127 127.0.0.1 16535 0 16535 0 0
sl0 552 <Link> 287169 1 300307 0 0
sl0 552 167.205.22 167.205.22.1 287169 300307 0 0
sl1 552 <Link> 20735 1 22690 0 0
sl1 552 167.205.22. 167.205.22.33 20735 1 22690 0 0

Keluaran dari perintah netstat ini menampilkan field field sebagai berikut

Name Field nama inteface ini menunjukkan nama yang diberikan pada interface
tersebut. Nama ini ialah nama yang digunakan oleh ifconfig untuk
mengindentifikasi interface. Tanda asteriks "*" pada nama interface
menunjukkan bahwa interface tersebut tidak dalam keadaan aktif.
Contohnya dapat kita lihat pada interface lp0 diatas.

Mtu Maximum Transmission Unit menunjukkan frame terpanjang yang dapat


ditransmisikan oleh interface ini tanpa fragmentasi. Nilai Mtu ini ditampilkan
dalam ukuran byte.

Net/Dest

Network/Destination field menunjukkan network dimana interface ini


terhubung. Sebagai contoh misalnya interface ed1 diatas. Ia tehubung ke
network 167.205.31 . Alamat network ini didapat dari IP address milik
interface tersebut dan subnet mask nya.

Address Menunjukkan IP address yang diberikan pada interface ini

Ipkts Input Packets , Menunjukkan jumlah paket yang telah diterima oleh interface
ini

Ierrs Input Errors , menunjukkan jumlah paket rusak yang diterima oleh interface
ini.

Opkts Output Packets, menunjukkan jumlah paket yang dikirim oleh interface ini.

97
Oerrs Menunjukkan jumlah paket terkirim yang menyebabkan kesalahan

Coll Collisions field, menunjukkan berapa banyak ethernet collision yangdideteksi


oleh interface ini. Field ini hanya berlaku bagi interface ethernet.

Memeriksa interface dengan ifconfig


ifconfig dapat pula digunakan untuk memeriksa konfigurasi network interface yang telah
ada. misalnya kita ingin memeriksa interface ed0
% ifconfig ed0
ed0:flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST>
mtu 1500 inet 167.205.22.123 netmask 0xffffffe0 broadcast
167.205.22.127
Ketika digunakan untuk mengecek status dari interface, perintah ifconfig menampilkan dua
baris keluaran. Baris pertama menunjukkan nama interface dan nilai flag yang menujukkan
karakteristik interface tersebut. Flag ini ditampilkan dalam bentuk numerik dan "keyword"

Pada contoh diatas , nama interfacenya adalah ed0, dan interface flagnya memiliki nilai 8863.
Nilai ini berhubungan dengan hal hal berikut

UP Interface sedang active dan dapat digunakan

BROADCAST Interface ini mendukung mode broadcast (terhubung pada suatu jaringan
yang mendukung mode broadcast, misalnya ethernet.

NOTRAILERS Interface ini tidak mendukung enkapsulasi trailers (spesifik pada ethernet)

RUNNING Interface ini sedang operasional.

SIMPLEX Interface ini hanya bisa digunakan satu arah tiap saat.

MULTICAST Interface ini mendukung pengalamatan multicast

Baris kedua dari keluaran perintah ifconfig menunjukkan informasi yang langsung
berhubungan dengan TCP/IP. Kata "inet" diikuti dengan IP address yang diberikan pada
interface ini. Kemudian kata "netmask" diikuti dengan nilai maskingnya (dalam
heksadesimal). akhirnya kata broadcast diikuti dengan broadcast addressnya.

Memberikan Subnetmask

98
!

Agar jaringan bisa berjalan dengan baik, maka seluruh interface pada physical network
tertentu harus memiliki nilai subnetmask yang sama. Dengan memiliki subnetmask yang
sama ini maka dalam satu network tersebut, seluruh interface yang terhubung kepadanya
akan memiliki alamat network dan alamat broadcast yang sama. Subnetmask sendiri
menspesifikasikan pembagian network menjadi beberapa subnetwork.

Untuk memberikan subnetmask pada suatu interface, nilai subnetmask ini disisipkan pada
perintah ifconfig, setelah keyword "netmask". Cara penulisannya biasanya sama dengan
bentuk IP address-nya, yaitu desimal bertitik. Namun bisa juga diberikan dalam bentuk
heksadesimal , diawali dengan 0x. Contoh

#ifconfig ed0 167.205.9.101 netmask 0xffffff00


broadcast 167.205.9.255

Menaruh nilai netmask langsung pada pada perintah ifconfig ialah hal yang paling umum,
dan juga paling mudah. Namun kita juga bisa memerintahkan pada ifconfig untuk
mengambil nilai netmask dari file (/etc/network). Misalnya pada file /etc/network
kita tambahkan baris berikut

my_netmask 255.255.255.224

Maka setelah penambahan baris tersebut,kita bisa menggunakan kata my_netmask sebagai
ganti dari nilai netmask pada saat memanggil perintah ifconfig.

ifconfig ed0 167.205.22.123 netmask my_netmask

Kerugian dari mengeset ifconfig secara tidak langsung ini ialah ia bisa membuat
troubleshooting menjadi lebih sulit, jika terjadi kesalahan. Jika semua nilai di set di boot file,
jika terjadi kesalahan kita tinggal mengecek di sana saja. Jika informasi konfigurasi ini
diberikan secara tak langsung , jika terjadi kesalahan kita harus mengecek boot file, hosts file,
network file, dan netmask file untuk menemukan kesalahannya, jika ada. Untuk membuat
debugging menjadi lebih mudah, biasanya system administrator lebih menyukai mengeset
langsung configurasi network interface langsung dari ifconfig command line.

Mengeset Broadcast Address

99
Sesuai dengan RFC 919 , tentang Broadcasting Internet Datagram, broadcast address
didefinisikan sebagai address dimana seluruh host bit nya diset satu. Cara mengesetnya
adalah menggunakan perintah ifconfig, dengan menggunakan keyword broadcast diikuti
dengan alamat broadcast yang sesuai. Sebagai contoh misalkan kita hendak mengeset
broadcast address pada interface ed0 , pada host gopher.ee.itb.ac.id , yang dalam satu
networknya memiliki netmask 0xffffffe0, maka yang kita ketikkan adalah sebagai berikut

# ifconfig ed0 167.205.22.123 netmask 255.255.255.224 broadcast


167.205.22.127

Memberikan Address pada Network Interface


Jika kita hanya ingin memberikan IP address pada network interface , kita dapat mengetikkan
perintah ifconfig yang hanya diikuti dengan nama interface dan IP address nya.Contoh :

# ifconfig std0 167.205.9.101

Command Option yang lain dari ifconfig


Perintah ifconfig sudah kita gunakan untuk mengeset alamat interface, subnetmask, dan
alamat broadcast. Selain dari hal diatas ,masih ada fungsi fungsi lain yang dapat dilakukan
oleh ifconfig ini.

Untuk meng-enable dan men-disable 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 bisa digunakan.

Perintah "down" ini dipakai jika kita ingin melakukan konfigurasi ulang terhadap sebuah
interface. Beberapa parameter konfigurasi , seperti IP Address misalnya, tak bisa 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

100
!

# ifconfig ed0 down


# ifconfig ed0 167.205.9.1 up
Setelah perintah ini , interface ed0 beroperasi dengan IP Address yang baru.

ARP dan Trailers

Option ini ialah option yang spesifik bagi interface ethernet. Option Trailers digunakan
untuk men enable dan men disable enkapsulasi trailers pada paket IP. Enkapsulasi Trailer
ialah teknik yang digunakan untuk mengurangi jumlah operasi pengkopian antar memori
yang dilakukan oleh sistem penerima. Ketika option ini di enable system meminta pada
system lainnya , lewat protokol ARP ,untuk melakukan enkapsulasi trailer ketika
mengirimkan datanya.

ARP (Address Resolution Protocol) ialah protokol yang memetakan IP Address ke Alamat
fisik Ethernet. ARP di enable dengan keyword arp dan di disable dengan keyword -arp.
Biasanya ARP ini selalu di enable pada tiap system.

Metric

Perintah ifconfig menciptakan catatan dalam tabel ruting bagi tiap interface yang telah
memiliki IP address. Tiap interface merupakan rute menuju suatu network. ifconfig
menentukan rute network tujuan dengan menerapkan subnetmasking terhadap IP address
interface tersebut.

RIP , Routing Information Protocol ialah protokol ruting yang paling banyak dipakai oleh
UNIX. RIP ini melakukan dua hal. Yaitu mendistribusikan informasi ruting ke host yang lain
dan menggunakan informasi ruting yang datang untuk membuat table ruting secara dinamik.
Rute yang diciptakan oleh ifconfig ialah sumber yang penting bagi informasi ruting yang
didistribusikan oleh RIP. Perintah ifconfig metric dapat digunakan untuk mengontrol
bagimana RIP menggunakan informasi ruting ini.

RIP membuat keputusan tentang ruting ini berdasarkan pada cost/biaya dari rute tersebut.
Biaya/cost dari tiap tiap rute ditentukan atas metrik pada tiap rute tersebut. Makin tinggi nilai
metrik dari suatu jalur , makin tinggi pula biaya pada rute tersebut. Makin rendah nilai
materik suatu rute/jalur, makin rendah pula cost rute tersebut. Ketika membuat tabel ruting,
RIP lebih menyukai rute yang berbiaya rendah ketimbang yang berbiaya tinggi. Rute yang

101
terhubung langsung ke tujuan akan memiliki cost yang sangat rendah , sedangkan yang tidak
langsung , melewati satu atau beberapa host sebelum mencapai tujuan, akan memiliki biaya
yang lebih tinggi. Rute yang terhubung langsung, secara default akan diberi metrik 0. Nilai
metrik ini dapat kita ubah dengan perintah "ifconfig metrik ".

Misalkan kita ingin menaikkan nilai metrik dari suatu interface menjadi 3, agar nantinya RIP
memilih rute yang lain , yang memiliki metrik yang lebih rendah, yaitu 0, 1, atau 2, maka kita
ketikkan perintah :

# ifconfig ed0 167.205.9.3 metric 3

Perintah metrik ini digunakan jika kita memiliki lebih dari satu interface yang terhubung ke
satu network, dan kita ingin menggunakan salah satu diantaranya untuk sebagai rute utama.

TCP/IP Melalui Serial Line


TCP/IP ialah protokol yang dapat berjalan diatas berbagai macam media fisik. Medianya bisa
berupa gelombang radio, kabel ethernet, sirkit telepon dan masih banyak lagi lainnya. Pada
pembahasan sebelumnya kita menggunakan ifconfig untuk mengkonfigurasi interface
ethernet. Pada bagian ini kita akan membahas cara mengkonfigurasi network interface serial
yang berjalan pada serial line.

Yang dimaksud dengan serial interface sebenarnya ialah interface yang mengirimkan datanya
melalui kabel serial menuju interface lawannya. Interface lawannya pun melakukan hal yang
sama melalui kabel yang sama pula. Definisi ini sebenarnya cocok bagi hampir semua
interface komunikasi, termasuk juga ethernet. Namun kata serial interface biasanya dipakai
bagi interface yang terhubung melalui sirkit telepon.

Ada dua jenis standar protokol serial line yang banyak dipakai. Kedua protokol tersebut ialah
SLIP ( Serial Line IP ) dan PPP (Point To Point Protocol)

Memilih Protokol Serial

102
!

SLIP diciptakan terlebih dahulu. SLIP bekerja dengan mengirim datagram melalui serial line
sebagai urutan dari byte. Untuk menandai awal dan akhir data yang dikirim digunakan
karakter khusus.

SLIP ini memiliki kelemahan sebagai berikut :


• SLIP tidak mendukung koreksi kesalahan atau kompresi data.
• SLIP tidak menyediakan link control information yang bisa secara dinamis
mengontrol karakteristik dari hubungan.SLIP harus mangasumsikan karakteristik link
yang tertentu. Akibatnya SLIP hanya bisa digunakan jika kedua host mengetahui
alamat lawannya dan hanya jika IP datagram tersebut ditransmisikan.

Untuk mengatasi kelemahan SLIP ini , dikembangkan PPP sebagai standar internet. PPP
didokumentasikan dalam dua RFC , yaitu RFC 1171 dan RFC 1172. PPP telah memiliki
rutin error correction serta memiliki fasilitas link control Protocol yang dapat mengecek
kualitas dari link serta mampu melakukan kompresi data. Hanya saja untuk implementasinya
, PPP lebih sulit dibandingkan SLIP.

Keuntungan SLIP dibandingkan dengan PPP ialah SLIP dibuat lebih dahulu, sehingga lebih
banyak dipakai dan tersedia untuk lebih banyak hardware. Lagipula banyak sistem yang
menawarkan dial up acces hanya mensupport SLIP.

Sehingga Kesimpulannya, PPP adalah protokol yang lebih baik dibandingkan SLIP, namun
SLIP lebih banyak dipakai karena pengimplementasiannya yang mudah.

Mengkonfigurasi Interface SLIP


Berbeda dengan mengkonfigrasi ethernet , yang menggunakan ifconfig, untuk
mengkonfigurasi SLIP dapat digunakan dua macam perintah yaitu sliplogin dan
slattach.

Slattach
Perintah Slattach memiliki bentuk sebagai berikut

103
Slattach [-a] [-c] [-e exit-command] [-f] [-h] [-l] [-n]
[-r redial-command] [-s baudrate] [-u unit-command] [-z]
tty_name

Berikut ini adalah beberapa operand yang penting yang dipakai oleh perintah slattach

-a Digunakan untuk meng autoenable VJ header compression. Jika host pada ujung
yang lain mampu melakukan VJ header compression maka option ini akan digunakan

-c Digunakan untuk meng-enable VJ header compression. hal ini hanya bisa digunakan
jika host di ujung yang lain mampu melakukan VJ header compression

-e exit-command

Digunakan untuk menspesifikasikan perintah yang akan dieksekusi shell (sh -c exit-
command) sebelum slattach keluar

-h Mematikan cts/rts style flow control pada port slip. Secara default, tak ada flow
contrrol yang dilakukan.

-l Mendisable modem control (CLOCAL) dan mengabaikan carier detect pada


port slip. Secara default , redial-command dieksekusi saat carrier drop dan slattach
akan membatalkan redial jika tak ada redial-command yang dispesifikasikan.

-n Membuang paket ICMP. Interface slip ini akan mengabaikan paket ICMP untuk
mencegah jalur yang pelan mengalami kejenuhan akibat respons ICMP.

-r redial-command

Menspesifikasikan perintah yang akan dieksekusi dalam shell (sh -c redial-command)


yang akan dieksekusi ketika terjadi putus hubungan

-s baudrate

Menspesifikasikan kecepatan hubungan. Jika tak disebutkan maka kecepatan default


yang dipakai ialah 9600 bps

104
!

ttyname

menspesifikasikan nama dari tty device. Nama ini harus dalam bentuk 'ttyXX'
atau '/dev/ttyXX'

Untuk "melepaskan" interface dapat digunakan perintah

ifconfig interface-name down.

Sebelum perintah ini diberikan proses slattach harus dimatikan terlebih dahulu dengan "kill -
INT"

Untuk mengeset slattach agar melakukan redial bila jalur putus , dapat digunakan -r redial-
cmd' option untuk menspesifikasikan script atau executable yang akan melakukan koneksi
ke slip server. Slip bisa berisi perintah untuk melakukan redial terhadap server dan log in ,
dsb

Untuk melakukan rekonfigurasi terhadap network interface , kalau kalau jika slip unit
numbernya berubah , digunakan perintah "-u unit-cmd" untuk menspesifikasikan script atau
executable yang akan dieksekusi (sh -c unit-cmd old new). Dimana old dan new adalah slip
unit number sebelum dan sesudah rekoneksi jalur. Unit number bisa berubah jika kita
melakukan lebih dari satu diskoneksi pada waktu yang sama.

Untuk mematikan perintah slattach gunakan perintah "kill -INT" (SIGINT). Perintah ini
menyebabkan slattach menutup tty dan keluar.

Untuk melakukan redial , dapat digunakan perintah "kill -HUP" (SIGHUP). Hal ini akan
menyebabkan slattach mengira jalur terputus dan akhirnya ia mengeksekusi "sh -c
redial-command" untuk melakukan penyambungan ulang ke server slip. Contoh
penggunaan slip

slattach -s 4800 /dev/tty01


slattach -c -s 38400 /dev/sio01
slattach -r 'kermit -y dial.script >kermit.log 2>&1'

Sebelum mengeksekusi perintah slattach terlebih dahulu interface slip tersebut harus
dikonfigurasi. Konfigurasinya dilakukan dengan menggunakan perintah ifconfig. Setelah ini
105
secara otomatis slattach yang pertama kali langsung terhubung ke sl0, slattach yang
berikutnya terhubung ke sl1, dan seterusnya.

Perhatikan perintah slattach diatas. Perintah tersebut langsung mengidentifikasikan serial


device (/dev/tty01 pada contoh diatas), bukan sl0 atau sl1 misalnya.Namun setelah
perintah slattach ini dijalankan secara otomatis tty01 akan diasosiasikan sebagai sl0 atau sl1 .

Sliplogin
Sliplogin digunakan untuk mengubah terminal line pada standard input menjadi serial
line untuk berhubungan dengan remote host. Untuk itu program mencari file
/etc/sliphome/slip.hosts untuk mencocokkan loginname( yang defaultnya
merupakan nama login yang sekarang) Jika entry yang match ditemukan maka line ini
dikonfigurasikan untuk slip. Setelah itu shell script dijalankan untuk menginisialisasi interface
slip dengan IP address local dan IP address remote host yang sesuai, netmasknya , dan
sebagainya.

Biasanya script inisialisasi yang dipakai ialah /etc/sliphome/slip.login. Namun,


jika sebuah host memerlukan inisialisasi yang khusus , file yang dieksekusi ialah
/etc/sliphome/slip.login.loginname. Script ini dijalankan dengan parameter sebagai berikut.

slipunit Nomor unit yang diberikan pada interface slip untuk line ini. Misalkan 0
untuk sl0

speed Kecepatan dari line ini

args Argument dari /etc/sliphome/slip.hosts ,dengan urutan dimulai dengan


login name

Hanya super user yang dapat “ memasang “ network interface. Interface yang telah
“terpasang” ini secaraotomatis akan “terlepas” jika sisi di sebelah sana menutup teleponnya
atau proses sliplogin ini terhenti. Jika kernel slip modul telah terkonfigurasi untuk itu ,
seluruh rute yang melalui interface akan lenyap juga pada saat yang sama. Jika ada site lain
yang hendak dihubungi, file /etc/sliphome/slip.logout atau
/etc/sliphome/sliplogout.loginname akan dieksekusi, jika ada.
106
!

Format dari file /etc/sliphome/slip.host adalah sebagai berikut : Komentar (baris


yang diawali dengan “#”) dan baris kosong diabaikan. Baris lainnya harus dimulai dengan
loginname namun argument selanjutnya bisa berupa apa saja yng cocok untuk dieksekusi atas
dasar loginname tersebut. Argumen dipisahkan dengan spasi. Biasanya bentuknya adalah
sebagai berikut

loginname local-address remote-address netmask opt-args

Dimana local address dan remote address adalah IP address dari kedua host ini, netmask
ialah IP netmask yang sesuai . Argumen ini langsung ilewatkan ke ifconfig. Opt-args ialah
argumen opsional yang digunakan untuk mengkonfigurasi line ini.

Mengkonfigurasi PPP
Network interface PPP dikonfigurasi dengan menggunakan perintah ppp. format perintah
ppp ini mirip dengan perintah slattach yang digunakan untuk slip. Misalkan kita hendak
mengkonfigurasi serial device /dev/tty01 dengan local address 167.260.66.15 dan remote
address 167.205.66.20 maka perintah nya adalah sebagai berikut:

# ppp 167.205.66.15 :167.205.66.20 /dev/tty01 &

Kemampuan PPP untuk mempelajari IP address dari remote system memberi PPP
fleksibilitas untuk menangani jalur dial up tanpa menggunakan file konfigurasi yang statis
(seperti hosts.slip pada slip)

Jika pada ppp command line tidak kita berikan IP address dari remote hostnya , ppp akan
mengenali IP address remote host tersebut. Misalkan pada command line ppp kita berikan
perintah

# ppp 167.205.9.10: /dev/ttya&

ppp hanya memberikan pada local address pada interface. remote address bisa dipelajari oleh
ppp ketika ia terhubung kesana. Ketika connection terbentuk., dilakukan pertukaran
informasi link control antara kedua host. Informasi inilah yang mengatakan pada local host
IP address dari host yang ada di ujung lainnya.

107
Melakukan Konfigurasi Pada Start-
up File
Setelah kita mengetahui tentang konfigurasi interface ini , alangkah baiknya jika konfigurasi
ini kita letakkan pada startup file. Pada BSD Unix , biasanya perintah ifconfig diletakkan
pada file /etc/rc.boot atau di /etc/rc.local. Pada Unix System V perintah
ifconfig biasanya diletakkan di /etc/tcp atau di /etc/init.d/tcp. Berikut ini kami
berikan contoh Script netstart, yang digunakan untuk melakukan konfigurasi interface pada
host maingtw.paume.itb.ac.id. Script ini dipanggil dari dari script lain yaitu
/etc/rc. Contoh script netstart.
#!/bin/sh -
#
# $Id: netstart,v 1.17 1994/11/07 04:02:25 phk Exp $
# From: @(#)netstart 5.9 (Berkeley) 3/30/91
# last mod. by Arman Hazairin, May 29th 1995

defaultrouter=NO
routedflags="-s"
timedflags=NO
xntpdflags="NO"
ntpdate="NO"
rwhod=NO
sendmail_flags="-bd -q30m"
amdflags="NO"
nfs_client=NO
nfs_server=NO
name_server=YES
savecore=NO
#kerberos_server=YES
#gated=YES

if [ -f /etc/defaultdomain ] ; then
domainname `cat /etc/defaultdomain`
fi

# my-name is my symbolic name


# my-netmask is specified in /etc/networks
#
if [ -z "`hostname -s`" ] ; then
hostname=`cat /etc/myname`
hostname $hostname
fi

for i in /etc/hostname.*
do
ifn=`expr $i : '/etc/hostname\.\(.*\)'`
if [ -e /etc/hostname.$ifn ]; then
if [ -e /etc/start_if.$ifn ]; then

108
!

sh /etc/start_if.$ifn $ifn
fi
ifconfig $ifn `cat /etc/hostname.$ifn`
ifconfig $ifn
fi
done

# set the address for the loopback interface


ifconfig lo0 inet localhost

# set interface for multicasts to default interface


# this needs to happen before router discovery
route add 224.0.0.0 -netmask 0xf0000000 -interface $hostname

# attach SLIP to tty00 (PUSRENBANGTI via WorlBlazer Modem)


slattach -s 38400 -h tty00

# attach SLIP to tty01 (SmartCom Elektrindo via Satelite)


slattach -s 19200 -l tty01

if [ -n "$defaultrouter" -a "x$defaultrouter" != "xNO" ] ; then


route add default $defaultrouter
elif [ -f /etc/defaultrouter ] ; then
route add default `cat /etc/defaultrouter`
fi

# use loopback, not the wire


# route add $hostname localhost

#add default routing to PUSRENBANGTI


route add default 167.205.136.15

#add default routing to SmartCom Elektrindo


#route add 167.205.124.1 167.205.22.33

109
5
Konfigurasi Routing

Pada bab ini akan dibahas tentang:


• Subnetting
• Topologi Network dan Routing
• Konfigurasi Routing yang Sering digunakan
• Membentuk Routing Table
• Routing Information Protocol
• Penggunaan routed / gated

110
!

Pendahuluan
Masalah routing merupakan konsekuensi dari internetworking. Semakin kompleks topologi
dan konfigurasi dari network, semakin penting teknik dan sistem routing yang andal untuk
diimplementasikan dalam network. Pada bagian awal, akan diterangkan masalah subnetting,
yaitu pembuatan subnetwork dari suatu kelas network, sebagai dasar untuk memahami
konsep nomor network dan nomor host. Diterangkan juga teknik masking untuk
membentuk subnetwork dan menentukan nomor network. Beberapa contoh konfigurasi
routing yang sering digunakan akan dibahas untuk membantu pemahaman. Menyusul
kemudian routing table, yang harus dimiliki oleh semua host TCP/IP agar dapat
mengirimkan datagram ke tujuan. Routing table minimum harus dimiliki oleh setiap host.
Untuk gateway/router, routing table akan bertambah panjang dan kompleks, sesuai dengan
konfigurasi network yang terhubung dengannya. Dengan perkembangan network yang
sangat cepat, routing statis akan menyulitkan pekerjaan administrator network untuk
mengupdate routing table sesuai perubahan / penambahan pada netowrk. Untuk itu
digunakan protokol routing, yang berfungsi untuk mengupdate routing table secara dinamis
tanpa campur tangan operator. Subnetting dan nomor network sangat berperan di sini. Pada
bagian akhir akan diterangkan penggunaan routed / gated sebagai implementasi dari salah
satu protokol routing, Routing Information Protocol (RIP), pada network.

Subnetting
Untuk beberapa alasan yang menyangkut efisiensi IP Address, mengatasi masalah topologi
network dan organisasi, network administrator biasanya melakukan subnetting. Esensi dari
subnetting adalah “memindahkan” garis pemisah antara bagian network dan bagian host dari
suatu IP Address. Beberapa bit dari bagian host dialokasikan menjadi bit tambahan pada
bagian network. Address satu network menurut struktur baku dipecah menjadi beberapa
subnetwork. Cara ini menciptakan sejumlah network tambahan berupa subentwork, tetapi
mengurangi jumlah maksimum host yang ada dalam tiap subnetwork tersebut.

111
Subnetting juga dilakukan untuk mengatasi perbedaan hardware dan media fisik yang
digunakan dalam suatu network. Router IP dapat mengintegrasikan berbagai network dengan
media fisik yang berbeda hanya jika setiap network memiliki address network yang unik.
Selain itu, dengan subnetting, seorang administrator network dapat mendelegasikan
pengaturan host address seluruh departemen dari suatu perusahaan besar kepada setiap
departemen, untuk memudahkannya dalam mengatur keseluruhan network.

Suatu subnet didefinisikan dengan mengimplementasikan masking bit (subnet mask) kepada
IP Address. Struktur subnet mask sama dengan struktur IP Address, yakni terdiri dari 32 bit
yang dibagi atas 4 segmen. Bit-bit dari IP Address yang “ditutupi” (dimasking) oleh bit-bit
subnet mask yang aktif dan bersesuaian akan diinterpretasikan sebagai bit-bit network. Bit 1
pada subnet mask berarti mengaktifkan masking ( on ), sedangkan bit 0 tidak aktif ( off ).
Sebagai contoh kita ambil satu IP Address kelas A dengan nomor 44.132.1.20. Dengan
aturan standar, nomor network IP Address ini adalah 44 dan nomor host adalah 132.1.20.
Network tersebut dapat menampung maksimum lebih dari 16 juta host yang terhubung
langsung. Misalkan pada address tersebut di atas akan diimplementasikan subnetmask
255.255.0.0.( Dalam bilangan hexa = FF.FF.0.0 atau dalam biner =
11111111.11111111.00000000.00000000 ). Perhatikan bahwa pada 16 bit pertama dari
subnet mask tersebut berharga 1, sedangkan 16 bit berikutnya 0. Dengan demikian, 16 bit
pertama dari suatu IP Address yang dikenakan subnet mask tersebut akan dianggap sebagai
bit-bit network. Nomor network akan berubah menjadi 44.132 dan nomor host menjadi
1.20. Kapasitas maksimum host yang langsung terhubung pada network menjadi sekitar 65
ribu host. Satu network kelas A yang dapat menampung lebih dari 16 juta host telah dapat
diubah menjadi 256 subnetwork yang setara dengan satu network kelas B (44.0.0.0, 44.1.0.0,
dst sampai 44.255.0.0) yang masing-masing dapat menampung sekitar 65 ribu host.

Pada kenyataannya, network 44 ( kelas A ) dialokasikan untuk network TCP/IP radio amatir
se-dunia. Oleh organisasi radio amatir, network 44 dipecah menjadi 256 subnetwork seperti
di atas, yakni 44.0, 44.1, 44.2 dst. Dalam hal ini, organisasi radio amatir Indonesia mendapat
subnetwork 44.132. Subnetwork yang setara dengan satu network kelas B ini dapat dipecah
pula menjadi beberapa subnetwork yang lebih kecil seperti 44.132.0, 44.132.1, 44.132.2 dst (
masing-masing setara dengan satu network kelas C ). Dalam hal ini, masing-masing
subnetwork berkapasitas 256 host ( biasanya 254 host, karena ada dua IP Address yang
112
!

dialokasikan untuk keperluan khusus sebagai nomor network dan broadcast address dan
tidak boleh dipakai untuk host ). Masing-masing subnetwork dapat dialokasikan untuk
tingkat yang lebih rendah seperti propinsi, kota dsb. Untuk itu, diimplementasikan
subnetmask 24 bit ( 255.255.255.0 atau FF.FF.FF.0 ).

Dari uraian di atas, terlihat fungsi subnetting untuk pendelegasian suatu kelas network.
Masing-masing subnetwork dapat mengurus dirinya sendiri tanpa harus diatur dari pusat.
Selain itu, berbagai network dengan media fisik yang berlainan dapat diintegrasikan dengan
cara setiap network yang berbeda media fisiknya itu mendapat nomor network yang berbeda
(hasil dari subnetting). Pada uraian selanjutnya akan terlihat bahwa nomor network yang
didapat akibat subnetting akan digunakan sebagai informasi routing pada routing table setiap
gateway maupun host pada network tersebut.

Subnetting dilakukan pada saat konfigurasi interface. Seperti yang telah disinggung
sebelumnya, penerapan subnet mask pada IP Address akan mendefinisikan 2 buah address
baru, yakni network address dan broadcast address. Network address didefinisikan dengan
menset seluruh bit host berharga 0, sedangkan broadcast address dengan menset bit host
berharga 1. Perhatikan IP Address kelas B sebagai berikut :

167 205 20 1
nnnnnnnn nnnnnnnn hhhhhhhh hhhhhhhh
Bit-bit Network Bit-bit Host

Gambar 5-1.
Struktur IP Address kelas B

Jika seluruh bit host diset berharga 0 (minimum), didapat IP address 167.205.0.0. Ini adalah
nomor network. Jika seluruh bit host diset berharga 1 (maksimum) didapat IP Address
167.205.255.255. Ini adalah broadcast address untuk network tersebut. Nomor network dan
broadcast address di atas merupakan harga yang standar bagi network kelas B. Tanpa ada
penerapan subnet mask dan informasi routing lainnya, host yang memiliki interface dengan
IP Address di atas akan berasumsi bahwa seluruh host dengan IP address yang berharga di

113
antara 167.205.0.0 dan 167.205.255.255 terhubung langsung ke network tersebut dan dapat
dihubungi secara langsung tanpa melalui gateway.

Jika network kelas B tersebut akan dipecah menjadi 256 subnetwork setara kelas C, dilakukan
masking dengan subnetmask 24 bit (255.255.255.0 atau FF.FF.FF.0). Dengan demikian,
struktur IP Address menjadi sebagai berikut :

167 205 20 1
nnnnnnnn nnnnnnnn nnnnnnnn hhhhhhhh
Bit-bit Network Bit-bit Host

Gambar 5-2
Struktur IP Address kelas B dengan masking 24 bit

Jika seluruh bit host diset berharga 0, didapat IP address 167.205.20.0. Ini adalah nomor
network. Jika seluruh bit host diset berharga 1, didapat IP Address 167.205.20.255. Ini adalah
broadcast address untuk network tersebut. Terlihat bahwa nomor network dan broadcast
address yang standar telah berubah. Alamat subnetwork dikenali dengan nomor
subnetworknya.

Network address adalah alamat network yang berguna pada informasi routing. Suatu host
tidak perlu mengetahui IP address seluruh host yang ada pada network yang lain. Informasi
yang dibutuhkannya hanyalah address dari network yang akan dihubungi serta gateway untuk
mencapai network tersebut. Broadcast address adalah alamat yang disepakati pada suatu
network untuk mengirimkan informasi yang akan diberikan kepada seluruh host (
dibroadcast ) pada network tersebut. Penggunaan broadcast address akan dibahas pada
bagian routing. Ilustrasi mengenai subnetting, network address dan broadcast address dapat
dilihat pada gambar 5-3 . Dari gambar tersebut dapat disimpulkan bagaimana nomor
network standard dari suatu IP Address diubah menjadi nomor subnet / subnet address
melalui subnetting.

IP Address Network Address Subnet Mask Interpretasi Broadcast


Standard Address
44.132.1.20 44.0.0.0 255.255.0.0 Host 1.20 pada 44.132.255.255
114
!

( kelas A ) ( 16 bit ) subnet 44.132.0.0


81.150.2.3 81.0.0.0 255.255.255.0 Host 3 pada subnet 81.50.2.255
( kelas A ) ( 24 bit ) 81.50.2.0
167.205.2.100 167.205.0.0 255.255.255.128 Host 100 pada subnet 167.205.2.127
( kelas B ) ( 25 bit ) 167.205.2.0
167.205.2. 130 167.205.0.0 255.255.255.224 Host 2 pada subnet 167.205.2.159
( kelas B ) ( 27 bit ) 167.205.2.128

Gambar 5-3
Beberapa IP Address dengan masking yang berbeda

Subnetting hanya berlaku pada network lokal. Bagi network di luar network lokal, nomor
network yang dikenali tetap nomor network standard menurut kelas IP Address.

Topologi Network dan Routing


Masalah dan strategi routing pada jaringan TCP/IP sangat bergantung kepada pengetahuan
mengenai topologi network, subnetting dan keberadaan gateway pada network lokal.
Gambar 5-4. menunjukkan suatu TCP/IP Network sebagai bahan pembahasan dalam
konsep routing ini.
167.205.20.3 167.205.20.5

167.205.20.0 44.132.1.0
Token Ring

167.205.20.11
44.132.1.20

Gateway 1 Gateway 2 44.132.1.5

167.205.22.18
167.205.22.5 167.205.22.0
Ethernet

Gateway 3

To Internet
167.205.22.6 167.205.22.3 167.205.22.20

Gambar 5-4
Contoh TCP/IP Network

115
Ada 3 buah network TCP/IP yang diintegrasikan, yaitu Token Ring, Ethernet dan Paket
Radio. Bagi network Token Ring, satu-satunya Gateway untuk berhubungan keluar adalah
host 167.205.20.11 yang juga terhubung ke network Ethernet dengan IP Address
167.205.22.5. Karena itu, tiap paket yang akan dikirimkan kepada host diluar network harus
dikirimkan terlebih dahulu ke gateway ini. Pada gateway, paket yang masuk akan diteliti
kemana IP Address tujuan paket tersebut. Jika paket tersebut untuk salah satu host dalam
network Ethernet, maka paket akan langsung dikirimkan ke host tersebut. Namun jika IP
Addess tujuan adalah untuk host pada network paket radio, ataupun pada network yang ada
dibelakang network paket radio, maka paket akan dikirim kepada gateway yang terhubung
dengan network tersebut. Keputusan untuk menentukan kemana paket yang diterima akan
dikirimkan kembali, diambil dari data pada tabel routing tiap-tiap host TCP/IP, terutama
pada gateway. Mari kita lihat lebih dalam dengan meninjau jalannya paket antara 2 host yang
berhubungan melalui TCP/IP Network pada gambar 5-4. Misalkan host 167.205.20.3 pada
network Token Ring ingin berbicara dengan host 44.132.1.5 pada network paket radio.
Perhatikan gambar 5-7.
Host Host
167.205.20.3 44.132.1.5

Application Application
Gateway 1 Gateway 2
Transport 167.205.20.11 167.205.22.5 167.205.22.18 44.132.1.20 Transport

Internet Internet Internet Internet

Data Link Data Link Data Link Data Link

167.205.20.0 167.205.22.0 44.132.1.0

Token Ring Ethernet Paket Radio

Gambar 5-5
Routing paket ditinjau dari arsitektur jaringan komputer TCP/IP

Hubungan end-to-end adalah antara host 167.205.20.3 dengan host 44.132.1.5. Pada gateway
1, paket diteliti pada lapisan network / internet layer. Jika tujuan paket memang benar
untuknya, paket diteruskan ke lapisan di atasnya. Tetapi jika bukan, paket akan dikirim ke
host tujuannya atau ke gateway lain. Pada gateway 2, paket kembali diteliti dan diteruskan
116
!

pada interface yang tersambung ke network paket radio. Pada host tujuan, paket diteliti dan
diteruskan ke lapisan di atasnya untuk diproses lebih lanjut.

Sering terdapat gateway/router yang memiliki banyak interface (tersambung langsung ke


banyak network). Dalam hal ini, gateway harus bisa menentukan ke interface yang mana
paket harus dilalukan agar dapat mencapai tujuannya. Hal ini ditentukan dari tabel routing
yang akan dibahas pada bagian berikut.

Konfigurasi Routing yang Sering


Digunakan
Agar dapat meneruskan paket ke tujuan yang benar, setiap sistem TCP/IP melakukan
routing. Namun demikian, tidak seluruh sistem TCP/IP menjalankan protokol routing.
Dengan demikian, harus dibedakan antara routing dan protokol routing. Protokol routing
adalah suatu program yang mempertukarkan informasi yang digunakan untuk membentuk
tabel routing, sedangkan routing itu sendiri adalah aksi pengiriman datagram-datagram
berdasarkan informasi yang diambil dari routing table.

Konfigurasi routing pada suatu network tidak selalu harus menggunakan protokol routing.
Hal ini bergantung pada konfigurasi network yang ada, misalnya pada jumlah gateway yang
tersambung dengan network. Jika hanya ada satu gateway yang menghubungkan suatu
network dengan dunia luar, sistem administrator akan memilih untuk membuat tabel routing
secara manual. Pada network TCP/IP yang sama sekali tidak mempunyai akses ke network
TCP/IP lainnya, tabel routing yang ada tidak perlu ditambah, baik secara manual maupun
melalui protokol routing. Cukup menggunakan minimal routing. Network lokal seperti ini
cukup sering dijumpai, dimana hubungan keluar network hanya melalui UUCP.

Jadi, ada tiga konfigurasi routing yang paling umum digunakan pada TCP/IP network, yaitu :

117
Minimal routing

Suatu network yang terisolasi dari network lain hanya memelukan minimal routing, yakni
informasi nomor network yang langsung terhubung dengannya. Tabel routing minimal ini
dibentuk pada saat interface dikonfigurasi (dengan perintah ifconfig).

Static routing

Suatu network yang hanya memiliki sejumlah gateway yang terbatas ke network lainnya
biasanya dikonfigurasi dengan static routing. Tabel routing statis dibangun secara manual
oleh sistem administrator berdasarkan konfigurasi network yang ada. Perintah route
digunakan untuk ini. Jika suatu saat konfigurasi network berubah, misalkan jumlah gateway
bertambah ataupun gateway berganti, sistem administrator harus mengadakan perubahan
pada tabel routing untuk mengikuti perubahan tersebut. Static routing cocok digunakan pada
suatu network bilamana hanya terdapat satu rute untuk mencapai suatu network tujuan.

Dynamic routing

Suatu network yang memiliki lebih dari satu rute untuk mencapai tujuan yang sama sebaiknya
menggunakan dynamic routing. Tabel routing dinamis dibentuk berdasarkan informasi yang
dipertukarkan oleh protokol routing. Protokol routing didesain untuk secara dinamis
menentukan routing berdasarkan kondisi terakhir. Tabel routing senantiasa di-update
berdasarkan informasi dari setiap gateway, sehingga bila suatu rute putus akibat gateway yang
bersangkutan tidak bekerja, rute ke network tujuan melalui gateway tersebut akan
dipindahkan melalui gateway lain. Protokol routing juga didesain untuk menentukan rute
terbaik untuk mencapai tujuan, jika terdapat lebih dari satu rute.

Singkatnya, minimal routing secara otomatis terbentuk pada saat konfigurasi interface, static
routing dibentuk scara manual oleh sistem administrator dan dynamic routing dibentuk oleh
protokol routing. Bagaimanapun cara / proses lahirnya suatu routing, semuanya bertujuan
membentuk tabel routing dan menentukan jalan yang harus ditempuh datagram untuk
mencapai tujuan.

118
!

Ada banyak protokol routing yang digunakan pada TCP/IP network. Semua protokol
routing pada dasarnya memiliki fungsi yang sama, yakni menentukan rute terbaik untuk
setiap tujuan dan mendistribusikan informasi routing kepada sistem-sistem dalam network.
Perbedaan antara protokol routing yang satu dengan yang lain terutama terletak pada cara
kerjanya, bagaimana ia bisa memutuskan rute terbaik dari beberapa rute. Secara keseluruhan,
protokol routing dapat kita kelompokkan menjada dua kenis yaitu Interior Routing Protocol dan
Exterior Routing Protokol.

Interior Routing Protocol digunakan sebagai protokol routing di dalam suatu autonomous
system. Pada TCP/IP routing, istilah autonomous system memiliki arti yang formal, yakni suatu
kumpulan network dan gateway yang memiliki mekanisme internal sendiri dalam
mengumpulkan informasi routing dan memberikannya kepada yang lain. Ada beberapa
protokol routing yang termasuk dalam kelompok ini, seperti Routing Information Protocol (
RIP ), Hello, Shortest Path First (SPF) dan Open Shortest Path First (OSPF). Masing-masing
memiliki kelebihan dan kekurangan. Kita hanya akan membahas RIP karena protokol
routing inilah yang paling banyak digunakan pada TCP/IP network,

Exterior Routing Protocol digunakan sebagai protokol routing untuk mempertukarkan


informasi routing antar autonomous system. Informasi routing yang dikirimkan antar autonomous
system disebut reachability information, yakni informasi mengenai network apa saja yang dapat
dicapai melalui suatu autonomous system. Beberapa Exterior Routing Protocol yang cukup umum
digunakan adalah Exterior Gateway Protocol ( EGP ) dan Border Gateway Protocol ( BGP
). Namun demikian, kebanyakan sistem tidak menjalankan Exterior Routing Protocol karena
tidak terlalu dibutuhkan. Ia hanya diperlukan jika ada keharusan antar autonomous system untuk
mempertukarkan informasi routing. Dalam hal ini, Exterior Protocol yang dipakai antar dua
autonomous system harus sama.

Membentuk Routing Table


Setiap host pada TCP/IP Network harus memiliki tabel routing agar dapat menentukan jalan
untuk mencapai tujuan dari paket-paket yang akan dikirimkannya. Tabel routing secara
otomatis akan terbentuk pada saat interface dikonfigurasi. Tabel routing pada tahap ini
adalah tabel routing minimal. Perhatikan gambar 5-4. Untuk melihat tabel routing pada host
119
dengan IP Address 167.205.20.3 ( Token Ring ) dalam bentuk numerik, dipakai perintah
berikut :

$ netstat -nr
Routing tables
Destination Gateway Flags Refcnt Use Interface
127.0.0.1 127.0.0.1 UH 1 105 lo0
167.205.20.0 167.205.20.3 U 35 3075 ed0

Bagian pertama dari tabel routing merupakan rute loopback ke localhost. Setiap host
TCP/IP akan memiliki rute ini. Bagian kedua merupakan rute ke network 167.205.20.0
melalui interface ed0. Network ini adalah network lokal. Address 167.205.20.3 bukanlah
remote gateway, melainkan address yang telah di-assign untuuk interface ed0. Perhatikan
bahwa nomor network 167.205.20.0 muncul akibat parameter mask pada waktu konfigurasi
interface dengan subnetmask 255.255.255.0. Tanpa adanya subnetmask, network address
yang muncul adalah 167.205.0.0 ( Standar kelas B ).

Flag U ( up ) menandakan interface telah siap dipakai. Flag H ( host ) menandakan hanya
satu host yang dapat dicapai melalui rute ini. Berarti, rute ini hanya menuju ke host tertentu (
bedakan dengan rute ke suatu network yang mungkin memiliki puluhan / ratusan host ).
Kebanyakan rute yang ada pada routing table menuju ke network, bukan ke host tertentu.
Hal ini untuk memperkecil ukuran routing table. Suatu instansi mungkin hanya memiliki satu
network, tetapi network tersebut mungkin terdiri dari ratusan host. Mudah dimengerti bahwa
jika seluruh IP Address dari host yang ada pada network tujuan dimasukkan dalam routing
table, ukurannya akan membengkak dengan cepat. Cukup nomor networknya saja yang
dicantumkan karena telah mewakili nomor seluruh host pada network tersebut.

Untuk akses ke network yang lain, network token ring di atas hanya memiliki satu gateway,
yakni yang ber-IP Address 167.205.20.11. Untuk itu, seluruh host yang ada pada network
token ring ( kecuali gateway ) dapat menambahkan default routing sbb :

# route -n add default 167.205.20.11 1


add net default: gateway 167.205.20.11

120
!

Dengan perintah ini, rute ke seluruh network ( selain network lokal ) akan ditempuh melalui
gateway 1 (167.205.20.11). Option -n tidak harus digunakan. Option tersebut hanya untuk
menampilkan address secara numerik untuk menghindari permintaan ke Name Server yang
belum tentu bekerja. Metric 1 dipakai sebagai metric terkecil untuk rute melalui gateway
ekstenal, untuk memberikan prioritas tertinggi pada rute ini. Jika kita periksa kembali routing
table setelah memasukkan default routing ini, akan muncul sbb :
$ netstat -nr
Routing tables
Destination Gateway Flags Refcnt Use Interface
127.0.0.1 127.0.0.1 UH 1 105 lo0
default 167.205.20.11 UG 0 0 ed0
167.205.20.0 167.205.20.3 U 35 3075 ed0

Pada routing table di atas terlihat adanya entri default routing. Flag G menandakan rute
default ini melalui eksternal gateway ( host 167.205.20.11 ).

Pada network Ethernet ( 167.205.22.0 ) ada 3 buah gateway. Untuk host-host pada network
ini, routing table dapat dibentuk secara statis. Misalkan kita berada pada host 167.205.22.3.
Network 167.205.20.0 dapat dicapai melalui gateway 1 (167.205.22.5), network 44.132.1.0
melalui gateway 2 (167.205.22.18) dan akses ke network yang lebih besar, misalkan ke
Internet Provider, dicapai melalui gateway 3 (167.205.22.20). Untuk itu, setelah routing
minimal dapat ditambahkan perintah routing sbb :

# route -n add 167.205.20.0 167.205.22.5 1


add net 167.205.20.0: gateway 167.205.22.5
# route -n add 44.132.1.0 167.205.22.18 1
add net 44.132.1.0: gateway 167.205.22.18
# route -n add default 167.205.22.20 1
add net default: gateway 167.205.22.20

Routing table akan bertambah menjadi :

$ netstat -nr
Routing tables

121
Destination Gateway Flags Refcnt Use Interface
127.0.0.1 127.0.0.1 UH 1 105 lo0
167.205.22.0 167.205.22.3 U 28 9808 ed0
default 167.205.22.20 UG 0 0 ed0
167.205.20.0 167.205.22.5 UG 0 0 ed0
44.132.1.0 167.205.22.18 UG 0 0 ed0

Agar routing table terbentuk pada saat start up komputer, perlu di set routing statis dengan
beberapa modifikasi sbb :
• Tambahkan static routing yang diinginkan sesuai konfigurasi network
• Non-aktifkan semua perintah dari file startup yang menjalankan protokol routing.

Untuk host di atas, edit file rc.local untuk menambahkan statement route sbb:
route -n add default 167.205.22.20 1 > /dev/console
route -n add 167.205.20.0 167.205.22.5 1 > /dev/console
route -n add 44.132.1.0 167.205.22.18 1 > /dev/console

Startup file untuk setiap sistem mungkin saja berbeda, tetapi pada dasarnya memiliki
prosedur yang sama. Bacalah selalu dokumentasi dari sistem anda.

Routing Information Protocol


Routing Information Protocol ( RIP ) merupakan protokol routing yang paling umum
digunakan pada TCP/IP network. Penggunaan RIP yang luas ini dimungkinkan karena RIP
merupakan bagian dari software UNIX yang ikut didistribusikan pada kebanyakan sistem.
RIP sangat cocok digunakan sebagai protokol routing pada suatu autonomous system.

Untuk menentukan rute terbaik, RIP memilih rute yang memiliki “hop count” atau metric
yang terendah. Metric menunjukkan jumlah gateway yang harus dilalui oleh datagram untuk
mencapai tujuannya. Bagi RIP, rute terbaik adalah rute yang melalui sesedikit mungkin
gateway. Semakin sedikit gateway yang dilalui, semakin pendek jalan yang harus ditempuh.
Hop count terbesar yang dapat diterima RIP adalah 15. Jika metric suatu rute lebih besar dari
15, RIP menganggap bahwa tujuan tak dapat dicapai dan rute tersebut diabaikan. Ini
merupakan salah satu kelemahan RIP. Karena itu, RIP tidak cocok digunakan dalam

122
!

autonomous system yang sangat besar, dimana rute mungkin melewati lebih dari 15 gateway.
Satu lagi yang dapat dianggap sebagai kelemahan adalah, RIP tidak mempertimbangkan delay
transmisi maupun kongesti dari network yang dilaluinya. Sangat mungkin terjadi, rute dengan
metric lebih kecil ternyata tidak reliable dibandingkan rute lain dengan metric lebih besar
akibat adanya kongesti dan delay pada rute tersebut. Untuk itu, beberapa protokol routing
yang lain telah dikembangkan guna mengatasi hal ini.

Pada kebanyakan sistem UNIX, RIP dijalankan oleh routing daemon atau routed. Routing
daemon secara dinamis akan membangun sebuah routing table berdasarkan informasi update
yang diterimanya. Ketika dijalankan, routed mengirimkan permintaan update routing dan
mendengarkan respon permintaannya. Permintaan ini dikirimkan ke alamat broadcast dari
network. Karena seluruh host yang tersambung pada network menset alamat broadcast yang
sama, seluruh host akan mendengarkan permintaan tersebut. Jika host yang dikonfigurasi
untuk mensupply informasi RIP mendengarkan permintaan ini, ia akan memberi respon
dengan mengirimkan paket berisi update routing berdasarkan routing table yang dimilikinya.
Paket tersebut akan berisi address-address tujuan beserta metric routingnya masing-masing.
Informasi ini juga dikeluarkan secara periodik ( tidak hanya jika ada permintaan saja ) untuk
menjaga keakuratan dari routing.

Ketika update RIP telah diterima, routed akan menyeleksi informasi yang didapatnya. Jika
ada rute ke suatu address yang belum ia miliki, rute tersebut akan ditambahkan langsung ke
routing table-nya dan metric routingnya bertambah satu. Jika ia menerima rute ke address
yang telah ada pada routing table lokal, metric rute tersebut akan dibandingkan dengan
metric rute di lokal. Metric yang terendah akan diambil sebagai rute ke address tersebut pada
routing table.

Selain itu, RIP juga dapat menghapus rute dalam routing table lokal. Ada dua jenis rute yang
akan dihapus oleh RIP. Pertama, jika rute yang diterimanya dari suatu gateway memiliki
metric lebih dari 15, rute tersebut akan dihapus. Kedua, RIP akan menghapus rute melalui
gateway yang dianggapnya telah “mati”. Semua rute melalui suatu gateway akan dihapus jika
tidak ada update routing yang diterima dari gateway tersebut dalam periode waktu tertentu.
Biasanya, update routing akan dikeluarkan setiap 30 detik dan jika dalam 180 detik tidak ada
update yang diterima dari suatu gateway, rute melalui gateway tersebut akan dihapus dari
routing table.
123
Penggunaan routed / gated
Ada dua cara yang paling banyak digunakan pada TCP/IP network untuk
mengimplementasikan protokol routing, yaitu dengan routed ataupun gated. Perbedaan
keduanya terletak pada protokol routing yang dijalankannya. routed hanya menjalankan
RIP, sedangkan gated dapat menjalankan beberapa protokol routing seperti RIP, Hello,
BGP maupun EGP. Implementasi setiap protokol routing yang ada pada gated kompatibel
dengan protokol routing yang diimplementasikan oleh program yang lain. Sebagai contoh,
RIP yang dijalankan oleh routed sama dengan RIP yang ada pada gated. Untuk
menjalankan RIP menggunakan routing daemon ( routed ), cukup ketikkan perintah sbb :

# routed

Pada umumnya perintah routed dijalankan tanpa option apapun. Namun demikian dapat
juga ditambahlan option -q. Option -q ini bertujuan agar routed tidak membroadcast
routing tablenya ke host lain, tetapi hanya mendengar rute yang dibroadcast oleh sistem lain
dan mengupdate routing tablenya terus menerus. Host yang tidak berfungsi sebagai gateway
sebaiknya menggunakan option -q.

Sebagaimana pada static routing, routed pada umumnya dijalankan pada saat boot up.
Untuk itu, tambahkan baris berikut pada startup file dari sistem.
# Use /etc/routed on most systems,
# /user/etc/in.routed on Sun systems
#
if [ -f /etc/routed ]; then
routed; echo -n ' routed' > /dev/console
fi

Routing table akan terbentuk setelah host mendengar update routing dari host lain. Namun
demikian, jika dalam kurun waktu tertentu update routing belum didengar, tidak ada
informasi routing yang dapat digunakan sebagai kondisi awal. Untuk itu, kita dapat membuat
rute awal yang akan dimasukkan ke dalam routing table. Rute ini dapat kita set menjadi statis
atau dinamis, tergantung kondisi network. Informasi ini diambil dari file /etc/gateways. File ini

124
!

berguna sebagai tambahan untuk informasi routing. Sebagai contoh, file /etc/gateways akan
berisi entri-entri berikut :

net 0.0.0.0 gateway 167.205.22.20 metric 1 active


net 167.205.20.0 gateway 167.205.22.5 metric 1 passive
net 44.132.1.0 gateway 167.205.22.18 metric 1 passive

Setiap baris dari file /etc/gateways berawalan net atau host, diikuti oleh address network
atau host tujuan. net 0.0.0.0 berarti default routing. Selanjutnya gateway diikuti
address gateway. Kemudian metric diikuti harga numeriknya. Kata terakhir adalah active
atau passive. Jika passive, gateway yang dinyatakan pada enrtri tersebut tidak
membutuhkan update routing. Hal ini untuk menghindari RIP menghapus rute tersebut jika
tidak ada update dari gateway. Efeknya sama dengan static routing. Sebaliknya, active
berarti RIP dapat meng-update rute tersebut dan dapat pula menghapusnya jika time out telah
lewat. Sebaiknya gunakan parameter active untuk default route. Hal ini untuk
mengantisipasi apabila default gateway tidak bekerja. Selain itu, jika kita memiliki beberapa
gateway untuk mencapai tujuan yang sama, sebaiknya juga menggunakan parameter active
untuk menjaga keandalan routing.

Di samping routed, routing daemon yang banyak dipakai adalah gated. Seperti yang telah
dijelaskan, gated mengkombinasi beberapa protokol routing dalam satu paket. Kita bebas
memilih apakah akan menjalankan salah satu protokol routing saja atau semuanya. Masing-
masing protokol routing dalam gated kompatibel dengan protokol routing yang
diimplementasikan oleh program spesifik lainnya. Selain itu, ada beberapa alasan lagi untuk
menggunakan gated, antara lain :
• Pada sistem yang menjalankan lebih dari satu protokol routing, gated dapat
mengkombinasikan informasi routing dari setiap protokol dan memilih salah satu
yang terbaik.
• Rute yang didapat dari interior routing protocol dapat pula didistribusikan melalui
exterior routing protocol.
• Konfigurasi routing menjadi lebih sederhana, karena semua protokol dikonfigurasi
dari satu file saja ( /etc/gated.conf ).

125
Contoh file /etc/gated.conf untuk salah satu host pada network token ring ( gambar 5-4.) yang
hanya memiliki satu interface dapat dilihat sebagai berikut :
# don’t time-out the network interface
#
interface 167.205.20.3 passive ;
#
# enable rip
#
rip yes ;
#

Kata passive, seperti sebelumnya, menyatakan static routing, agar tidak ada time out untuk
rute ini. Secara normal, jika gated mendapatkan bahwa suatu interface sedang down, semua
rute melewati interface tersebut akan dihapus. Hal ini untuk mencegah ada gateway yang
memberikan update routing melalui interface yang sedang down. Tetapi, karena hanya ada
satu interface pada host, lebih baik membuatnya menjadi statis. Secara default, RIP akan
dijalankan pada setiap interface. Jadi, sebenarnya tidak perlu dicantumkan rip yes pada
file ini. Namun demikian, hal ini baik dilakukan untuk pendokumentasian dari konfigurasi
yang kita gunakan. Setiap perintah dalam file ini diakhiri dengan tanda titik-koma ( ; ).

Satu lagi contoh file /etc/gated.conf untuk konfigurasi gateway dalam


suatu autonomous system dapat dilihat di bawah. Contoh untuk ini
masih kita ambil dari gambar 3-4. Gateway yang akan dikonfigurasi
adalah gateway 1, yang menghubungakn network token ring dengan
network ethernet.

# enable rip
#
rip yes {
broadcast;
preference 100;
interface 167.205.22.5 ripin ripout;
interface 167.205.20.11 noripin ripout;
};

126
!

Pada perintah rip yes di atas terdapat beberapa pilihan yang digunakan untuk
mengkonfigurasi routing: broadcast, preference, dan interface. Pilihan
broadcast menunjukkan bahwa paket RIP akan di broadcast tanpa memperhatikan jumlah
interface yang ada. Pilihan ini berguna jika meneruskan routing statik atau route yang
dipelajari dari protokol lain ke dalam RIP. Dalam beberapa kasus, penggunaan broadcast
jika hanya ada satu network interface dapat menyebabkan paket data berjalan di network
yang sama dua kali. Lawan dari broadcast adalah nobroadcast, yang menunjukkan
bahwa paket RIP tidak akan dibroadcast ke interface yang ada, walaupun jumlahnya lebih
dari satu. Secara default, RIP mengasumsikan nobroadcast jika hanya terdapat satu
interface dan broadcast jika terdapat lebih dari satu interface.

Pilihan preference menentukan preferensi atas route yang dipelajari dari route. Harga
default pilihan ini adalah 100.

Pilihan interface mengontrol berbagai attribut pengiriman RIP pada interface yang
ditentukan. Nama interface sendiri dapat berupa nama interface yang didefinisikan oleh
kernel UNIX (ep0, misalnya) atau nomor IP yang diberikan kepada interface tersebut.
Praktik yang paling baik adalah dengan menggunakan nomor IP interface karena kernel
UNIX dapat memberikan beberapa nomor IP pada sebuah interface. Untuk setiap interface
harus diberikan parameter-parameter yang diperlukan untuk RIP. Parameter-parameter
tersebut antara lain:
• noripin
Mengatur agar paket RIP yang diterima melalui interface yang dimaksud tidak akan
dihiraukan
• ripin
Ini adalah default bagi protokol RIP
• noripout
Mengatur agar tidak ada paket RIP yang dikeluarkan melalui interface yang
dimaksud.
• ripout

127
Ini adalah default yaitu mengirim paket RIP pada semua interface broadcast dan non-
broadcast jika dalam mode broadcast.

Dalam contoh di atas, digunakan mode broadcast karena bertindak sebagai router
walaupun hal ini sebenarnya tidak perlu. Dengan demikian route statik dapat dipropagasikan.
Preference diisi dengan harga 100 walaupun tidak perlu. Kedua hal ini hanya untuk
dokumentasi dalam menentukan konfigurasi routing.

Interface 167.205.22.5 dengan menggunakan perintah ripin dan ripout. Dengan kedua
perintah ini, interface dapat menerima route yang dipelajari dari router lain pada network
167.205.22.0 dan juga menginformasikan route network yang terhubung dengannya kepada
router-router lain di network 167.205.22.0.

Interface 167.205.20.11 menggunakan perintah noripin dan ripout. Pada network ini
tidak terdapat network lain yang terhubung dengannya kecuali network 167.205.22.5
sehingga interface ini tidak perlu mempelajari route dari interface 167.205.20.11 yang berarti
parameter yang diberikan adalah noripin. Interface ini perlu memberi tahu workstation di
networknya agar mengarahkan route-nya ke router ini. Jadi, parameter yang diberikan pada
interface ini adalah noripin.

128
!

6
Domain Name System (DNS)
Berkeley Internet Name Domain
(BIND)

Pada bagian ini akan dibahas penggunaan DNS, cara


melakukan setup DNS server, zone file, resolver, serta
cara menggunakan utiliti nslookup.

129
Pendahuluan
DNS (Domain Name System) pada dasarnya adalah suatu basis-data informasi host di
internet. Informasi yang disediakan termasuk semua data yang diperlukan untuk mengakses
host di internet atau hanya bersifat “pemberitahuan” (advertising). Fungsi esensial DNS, yang
melatar-belakangi pembuatannya, adalah fungsi pemetaan antara alamat Internet (IP
address)—berupa bilangan yang panjangnya 32 bit—dengan sebuah nama yang lebih
manusiawi dan mudah untuk diingat. DNS bertanggung-jawab dalam menyediakan informasi
host ke seluruh Internet serta dalam penyedian “alat” untuk menerima informasi yang
dibutuhkan secara remote. Dengan DNS, kita juga diberikan hak untuk mendistribusikan
manajemen / pengaturan informasi host ini kepada site / organisasi lain. Tiap site hanya
berkewajiban menjaga informasi yang didelegasikan kepadanya —disebut sebagai domain—
tetap up-to-date pada name-server masing-masing. Name-server ini akan berinteraksi dan
menjamin data pada domain kita dikenali oleh name-server yang lain di jaringan. Sifat basis-
data yang terdistribusi mengisyaratkan bahwa sistem, juga harus mempunyai kemampuan
mencari informasi yang diinginkan dari sejumlah lokasi yang mungkin. Dan dengan DNS,
tiap name-server telah dibekali “kecerdasan” untuk menavigasi seluruh basis-data dan
menemukan informasi untuk sembarang domain yang diinginkan.

DNS pertama kali diusulkan Paul Mockapetris dengan RFC (Request For Comment) 882
dan 883 pada tahun 1984, yang kemudian disempurnakan oleh RFC 1034 dan 1035.
Spesifikasi ini merupakan arsitektur yang didisain dan dipersiapkan untuk menggantikan
sistem basis-data terpusat sebelumnya. Migrasi protokol ARPANET waktu itu ke TCP/IP
telah menyebabkan beberapa masalah serius dalam penggunaan sistem basis-data terpusat
melalui HOSTS.TXT. File ini berisi semua informasi yang diperlukan untuk mengakses host
di jaringan, pada intinya berisi korespondensi antara name dan address untuk setiap host
yang terhubung ke ARPANET. HOSTS.TXT dikelola oleh NIC (Network Information
Center—khususnya SRI Stanford Reseach Institute), sehingga setiap perubahan yang
dilakukan pada jaringan lokal harus dilaporkan oleh administrator ke NIC melalui email,
begitu pula sebaliknya, untuk menjaga informasi dalam HOSTS.TXT tetap up-to-date, file ini

130
!

harus secara periodik di-download dari NIC. Mekanisme seperti ini menimbulkan beberapa
konsekuensi yang makin terasa dengan membesarnya jaringan:

• Beban trafik dan prosessor


• Duplikasi hostname (name collisions)
• Kesukaran menjaga konsistensi aturan pengisian data

Karena itu, sistem yang baru (DNS) dipersiapkan untuk menyelesaikan masalah ini.

Sebagaimana /etc/hosts yang merupakan adaptasi HOSTS.TXT untuk sistem Unix, BIND
(Berkeley Internet Name Domain) adalah implementasi populer DNS yang dibuat oleh
Kevin Dunlap untuk sistem operasi Unix Berkeley 4.3BSD. Hingga saat ini, BIND telah di-
port ke berbagai sistem operasi Unix lain, dan telah menjadi bagian standard yang ditawarkan
oleh vendor-vendor Unix. Walaupun demikian, BIND bukan yang pertama, karena
sebelumnya Paul Mockapetris terlebih dulu menulis JEEVES yang menjadi implementasi
pertama spesifikasi DNS. Dalam pembahasan selanjutnya, kita akan menggunakan
terminologi BIND.

“” root
domain edu.

id
TLD=FLD edu ca node ac.id.

ucsc
SLD A ac
MIT
purdue

ITB
ab bc
media

domain ac.id.
zone ca
node domain ca
media.MIT.edu.
domain MIT.edu.

Gambar 1
Domain Name Space

131
DNS merupakan sistem basis-data terdistribusi dengan mekanisme client-server. Sisi server
dikenal sebagai name-server dan menyediakan informasi bagi segmen basis-data tertentu
yang dapat diakses oleh client—disebut resolver. Resolver biasanya berupa rutin-rutin library
yang dikompilasi bersama-sama dengan aplikasi di jaringan. Rutin ini pada intinya bertugas
untuk membuat dan mengirimkan query melaui jaringan ke name-server yang sesuai.
Struktur basis-data DNS hampir menyerupai filesystem Unix, dan dimodelkan dengan
struktur pohon terbalik. Bagian/ node teratas adalah root-domain (null label “ “, tapi sering
kali ditulis didalam teks sebagai titik “.”). Tiap node cabang (subtree root-node)
merepresentasikan domain, dan dalam name-space diberi label yang menunjukan posisi
relatif terhadap domain induknya. Implementasi BIND membolehkan hingga 127 level node
secara vertikal. Tiap node/domain juga mempunyai domain-name yang mengidentifikasi
posisi absolut domain tersebut dalam name-space. Dalam DNS, suatu full domain-name
(Fully-Qualified Domain Name—FQDN) merupakan urutan label dari domain ybs menuju
root-node dan dipisahkan dengan trailing dot. Misalnya untuk node ITB, full domain-name-
nya adalah ITB.ac.id.

o
N t e Tiap node dalam name-space selalui diikuti trailing-dot kecuali root. Tapi karena root
berlabel “ “(null), mengindikasikan bahwa trailing dot terakhir (misalnya id. untuk
contoh diatas) adalah pemisah andara TLD (dijelaskan kemudian) dengan root.

Node-node yang mempunyai induk yang sama (sibling node) harus mempunyai label yang
berbeda. Masing masing node dapat mempunyai label hingga 63 karakter (tanpa titik). Diluar
ketentuan ini, node dengan label sama masih dikategorikan valid (tidak menyebabkan name-
collision). Node yang diturunkan langsung dari root, disebut sebagai TLD (Top Level Domain)
atau FLD (First Level Domain). Turunan dari TLD disebut sebagai SLD (Second Level Domain)
dst. Mekanisme DNS membolehkan masing-masing domain di-administrasi oleh lembaga/
organisasi berbeda. Setiap organisasi juga dapat membagi domain kedalam sejumlah
subdomain yang didelegasikan kepada institusi dibawahnya. Misalnya walaupun domain edu
berada dibawah pengaturan NIC, sebagian besar domain dibawahnya didelegasikan pada
lembaga lain: MIT untuk domain, MIT.edu, UC Berkeley untuk berkeley.edu. dsb.
Bagi kita yang sudah terbiasa dengan Unix, mekanisme ini mirip dengan mounting filesystem
melalui NFS. Sebuah domain, dapat “berisi” host-host atau domain yang lain (subdomain).
Masing-masing host di jaringan mempunyai sebuah domain-name, yang menunjuk pada

132
!

informasi menyangkut host ybs, seperti IP address, informasi mail-routing, dll. Sebuah host juga
dibolehkan mempunyai satu atau lebih alias domain-name, yang menunjuk dari suatu
domain-name (alias) ke domain-name yang lain (official / canonical domain-name).

Suatu domain adalah sebuah cabang (subtree) dalam domain name-space. Dan suatu
subdomain adalah cabang dari cabang diatasnya, begitu seterusnya. Host adalah domain-
name yang menunjuk pada informasi host individual. Sehingga, suatu domain akan terdiri
dari semua host yang mempunyai domain-name didalam domain tersebut. Host-host ini
dihubungkan secara logik, sering secara geografis atau afiliasi organisasional, dan tidak perlu
secara network, address atau tipe perangkat keras. Kita boleh saja, misalnya, mempunyai
sepuluh host berbeda yang masing-masing terhubung ke network yang berbeda dan mungkin
berada pada wilayah geografis yang berbeda pula, tapi semuanya mempunyai domain yang
sama. Domain pada ujung inverted-tree merepresentasikan host individual. Domain-name pada
kondisi tersebut, bisa menunjuk kepada network-address, informasi perangkat keras, atau
informasi mail-routing. Domain yang berada didalam inverted-tree, bisa merupakan name suatu
host dan bisa pula menunjuk pada informasi struktural domain dibawahnya (subdomain)
sekaligus. Misalnya, MIT.edu. adalah domain-name untuk MIT juga bisa sekaligus nama
sebuah host yang memforward mail antara MIT dan Internet. Tipe informasi—struktural
atau host individual—yang diberikan sebagai respons dari query tergantung dari konteks
penggunaan domain-name tersebut (aplikasi). Misalnya jika menggunakan aplikasi telnet
tentu akan direspons dengan informasi host, sebaliknya jika pencarian dimaksudkan untuk
informasi children-node, maka respons yang didapatkan adalah informasi struktural.

Top Level Domain dan Pendelegasian


Pada awalnya TLD untuk domain name-space Internet dibagi berdasarkan afiliasi
organisasional, dan telah ditetapkan tujuh jenis TLD: com untuk organisasi komersial
(hp.com, sun.com, ibm.com), edu untuk institusi pendidikan (berkeley.edu,
purdue.edu, mit.edu), gov untuk lembaga pemerintahan (nasa.gov, nsf.gov),
mil untuk badan kemiliteran (army.mil, navi.mil), net untuk network-provider

133
(nsf.net), org untuk institusi non komersial (ieee.org, eff.org), dan int untuk
organisasi internasional (nato.int). Hingga saat ini sistem pembagian organisasional
seperti ini masih berlaku di Amerika.

“”

rtfm.MIT.edu. ca id
edu

ucsc
MIT purdue

rtfm

Gambar 2
TLD, Domain Interior dan Eksterior (leaves)

Dengan semakin banyaknya negara-negara yang terhubung ke Internet, kemudian diputuskan


untuk menggunakan standard pembagian geografis yang ditetapkan dalam ISO 3166.
Berdasarkan konvensi tersebut, TLD dialokasikan sebagai pengenal geografis (negara) dan
terdiri dari dua huruf unik. Misalnya id untuk Indonesia, uk untuk Inggris, au untuk
Australia dll. Pada umumnya pembagian TLD secara geografis kemudian diikuti dengan
pembagian berdasarkan afiliasi organisasional bagi level domain dibawahnya. Ada yang
mengadopsi sistem pembagian di Amerika, seperti edu.au atau com.au, ada juga yang
mengikuti sistem pembagian yang dipelopori Inggris, seperti co.uk (corporation), atau
ac.uk (academic). Berbeda untuk TLD us (Amerika), karena sebelumnya telah mempunyai
sistem pembagian organisasional, maka pembagian level domain dibawahnya juga dilakukan
berdasarkan geografis, misalnya untuk SLD digunakan dua huruf pengenal/ kode
kelimapuluh negara bagian. Kemudian subdomain dari domain tiap negara bagian ini adalah
pengenal kota, dst.
134
!

Konvensi pembagian nama domain di Indonesia ditetapkan sampai level kedua (SLD) dan
mengadopsi sistem Inggris:

go.id subdomain lembaga pemerintah


co.id subdomain untuk lembaga komersial
ac.id institusi akademik
net.id network provider
or.id LSM dan lembaga non komersial

Untuk level tiga dan seterusnya, diserahkan sepenuhnya kepada pengelola jaringan yang
bersangkutan. Misalnya Universitas Brawijaya, dapat menggunakan domain
unbraw.ac.id, unibraw.ac.id, brawijaya.ac.id dsb. Yang perlu
diperhatikan adalah konsistensi dari pengambilan konvensi penamaan tersebut. Perubahan
identitas yang dilakukan memerlukan koordinasi dan updating di seluruh jaringan. Bila pada
saatnya mesin-mesin di jaringan yang dikelola bertambah besar, dapat dilakukan perluasan
domain (domain expanding), atau pendelegasian subdomain ke institusi dibawah domain
tersebut. Misalnya subdomain paume.itb.ac.id untuk mengakomodasi semua mesin
di lingkungan Pusat Antar Universitas ITB, ee.itb.ac.id digunakan untuk
mengidentifikasi mesin-mesin dilingkungan Jurusan Teknik Elektro ITB, dll. Pendelegasian
berarti bahwa institusi yang ditunjuk bertanggung-jawab melakukan tugas administrasi semua
data dalam subdomain yang didelegasikan. Institusi tersebut berhak mengubah data,
menambahkan atau membagi subdomainnya kedalam subdomain yang lebih kecil dan
mendelegasikannya. Dalam hal ini, domain induk hanya berisi pointer ke sumber data
subdomain, sehingga dapat mengalihkan (refferal) query ke subdomain yang bersangkutan.
Yang patut diingat adalah bahwa tidak semua organisasi mendelegasikan semua domain
dibawah otoritasnya. Sebuah domain biasanya mempunyai beberapa subdomain dan juga
host-host yang tidak terkategorikan kedalam subdomain.

135
Name-Server
Program yang menyimpan informasi domain name space disebut sebagai name-server. Pada
umumnya name-server mempunyai informasi lengkap untuk suatu bagian dari domain name-
space yang disebut zone, sehingga dikatakan name-server ini authoritative untuk zone tersebut.
Sebuah name-server bisa authoritative untuk multi (lebih dari satu) zone. Suatu zone terdiri
dari beberapa domain-name berikut data dalam domain ybs, kecuali untuk domain-name dan
data yang didelegasikan kepada institusi lain. Tapi jika suatu domain dibagi kedalam
subdomain-subdomain yang tidak (belum) didelegasikan, maka domain-name dan data dalam
subdomain tersebut termasuk dalam zone.

Pendelegasian suatu subdomain, berarti pelimpahan tanggung-jawab sebagian domain kita


kepada sebuah institusi, yang berarti melimpahkan otoritas (authority) bagi subdomain
tersebut ke sejumlah name-server lain. Sehingga data pada domain induk hanya berisi pointer
kepada sejumlah name-server yang authoritative untuk subdomain ini, dan bukan berisi data
/ informasi dari domain yang didelegasikan. Dengan demikian, bila suatu saat terdapat query
terhadap data-data subdomain tersebut, server dapat menjawab dengan sejumlah pointer/
daftar name-server yang dapat dan “lebih patut” ditanyai.

Spesifikasi DNS mendefinisikan duat tipe name-server, primary server (primary master) dan
secondary server (secondary master). Primary server membaca data untuk zone dibawah
otoritasnya dari file didalam host dimana ia dijalankan. Secondary server memperoleh data
zone dari name-server lain yang authoritative untuk zone ybs. Proses pembacaan/ updating
data dari primary server ke secondary server disebut sebagai zone transfer (name-Xfer) dan
berlangsung secara periodik atau ketika secondary server pertama kali dijalankan sehingga
data pada secondary senantiasa tetap up-to-date sesuai perubahan yang dilakukan dalam
primary server. Dengan mekanisme ini, kita bisa mempunyai lebih dari satu name-server
untuk zone tertentu dengan cara yang mudah. Selain untuk rendundansi, hal ini juga berarti
load-balancing dan reliability karena query-query dapat mencari/ dialihkan pada name-server
terdekat. Sebelumnya telah disinggung bahwa sebuah name-server bisa authoritative bagi
beberapa zone. Demikian pula suatu name-server bisa menjadi primary server bagi suatu

136
!

zone sekaligus menjadi secondary bagi zone yang lain. Primary server membaca data untuk
zone otoritasnya dari dalam file yang disebut zone file, atau db file (database file). Secondary juga
dapat dikonfigurasi untuk melakukan back-up zone yang diperoleh dari primary kedalam db
file. Sedemikian jika secondary-server pertama kali dijalankan ia akan membaca data pada file
backup ini, kemudian baru memeriksa kevalidannya. File data ini berisi RR (resource record)
yang mendeskripsikan zone yang bersangkutan serta menandai setiap pendelegasian
subdomain.

Resolver & Resolution


Bagian client DNS, seperti telah disinggung sebelumnya, disebut resolver. Program (aplikasi)
yang memerlukan informasi domain name-space, harus menggunakan resolver untuk
menjamin mekanisme itu dapat berlangsung. Resolver pada intinya berfungsi untuk:
• Meng-query name server
• Menginterpretasikan respons (bisa berupa RR atau pesan kesalahan)
• Memberikan informasi pada program (aplikasi) yang me-request-nya.

Didalam BIND, resolver hanya berupa rutin library yang dikompilasi bersama-sama dengan
program seperti telnet atau ftp. Sehingga bukan benar-benar proses yang terpisah.
Proses query, mengirimkannya ke jaringan, menunggu jawaban, atau mengirim ulang query
bila melewati batas time-out, dilakukan oleh resolver didalam tiap aplikasi ini. Jenis resolver
seperti ini dikenal sebagi stub resolver. Beberapa implementasi DNS lain mempunyai resolver
yang lebih “cerdas” seperti resolver yang dapat membuat cache informasi yang telah
diterimannya dari name-server.

Salah satu nilai lebih DNS, adalah bahwa name-server tidak hanya dapat memberikan data/
informasi untuk zone authoritativenya, tapi juga dapat melakukan pencarian dalam domain
name-space untuk menemukan data yang diluar otoritasnya. Proses ini disebut name-resolution.
Hal ini dimungkinkan karena struktur inverted-tree name-space. Apa yang perlu dilakukan oleh
name-server non-authoritative adalah menghubungi/ melakukan query kepada root-name-

137
server. Yang pada gilirannya akan menelusuri pointer-pointer terdekat untuk menemukan
jawaban query tersebut.

query address
students.ITB.ac.id.
“.” “.”
name-server
referral ke NS id

query address
students.ITB.ac.id.
name id
name-server id
server referral ke NS au sg
ac. id

ac.id
name-server
resolver query

referral ke NS ac net
ITB.ac. id
answer

query address
students.ITB.ac.id.
ITB.ac.id
name-server
resolver address ui ITB
students.ITB.ac. id

Gambar 3
Resolusi students.ITB.ac.id. di Internet

Resolution dapat dilakukan dengan dua cara, recursion (recursive resolution) dan iteration
(iterative resolution). Recursion adalah proses resolusi yang dilakukan oleh name-server jika ia
menerima recursive-query, sedangkan iteration adalah proses resolusi yang dilakukan oleh
name-server jika ia menerima iterative-query. Jika suatu name-server menerima recursive-query,
maka ia “dipaksa” untuk memberikan data yang diminta, atau dengan pesan kesalahan bahwa
data yang diminta tidak ada atau domain-name yang dispesifikasikan tidak ada. Dalam hal ini
name-server tidak dapat secara langsung mengalihkan querier kepada name-server yang lain,
karena sifat query yang rekursif. Sebaliknya jika suatu server menerima iterative-query, maka

138
!

ia akan memberikan jawaban/ penunjuk ke name-server lain yang lebih “dekat” untuk
domain-name yang dicari.

Salah satu mekanisme yang mendukung proses resolution, dan juga merupakan salah satu
fasilitas yang disediakan dalam spesifikasi DNS, adalah reverse- mapping dari IP address ke
domain-name. Reverse-mapping juga digunakan untuk menghasilkan keluaran yang lebih
manusiawi, mudah dibaca dan diinterpretasikan, misalnya untuk pembacaan log-file.

““
students.ITB.ac.id.
(167.205.22.123) arpa
in-addr

....... 167 .......


0 255
.... ...........
205
0 255
.... .......
22
0 255

.... ...........
0 123 255

Gambar 4
Reverse Mapping

Waktu yang diperlukan bagi proses resolusi, relatif lebih lama dibandingkan penggunaan
host-table tradisional. Untuk mempercepat proses ini, dilakukan satu mekanisme yang
dikenal sebagai caching. Ketika suatu name-server melakukan proses resolution, dari referal ke
referal, hingga menemukan jawaban untuk query yang diminta, ia “mempelajari” korelasi
antara alamat-alamat server yang pernah dihubunginya yang kemudian disimpan untuk
digunakan kembali jika diperlukan (dengan batas waktu tertentu—Time To Live TTl). Dengan
mengingat data tersebut, name-server dapat mempercepat proses untuk query berurut, baik
139
pada domain-name yang sama atau domain-name yang berkorelasi dengan sebelumnya.
Misalnya name-server kita pernah melakukan resolusi address eecs.berkeley.edu,
dan dalam proses tersebut name-server meng-cache address name-server
eecs.berkeley.edu dan berkeley edu. Sekarang jika kita meng-query untuk
baobab.cs.berkeley.edu, name-server kita akan mem-bypass query ke root name-
server, karena ia telah mengenali bahwa berkeley.edu yang telah ia ketahui berkorelasi
penuh dengan data yang diminta. Sehingga name-server akan memulai resolution dengan
query pada name-server berkeley.edu. Dengan demikian waktu resolution telah
direduksi dan aplikasi bisa berjalan lebih cepat.

Konfigurasi DNS
Untuk menjalankan DNS server pada suatu host, diperlukan file-file berikut:
• /etc/named (dibaca: name-d—executable file)
• /etc/named.boot (file-script)
• zone file

Konfigurasi boot-script DNS server


Pada saat named dijalankan, ia akan membaca sebuah file konfigurasi (file script) yang berisi
tentang informasi domain yang ditangani oleh DNS server tersebut. File script default yang
digunakan adalah /etc/named.boot.Field-field yang digunakan dalam file
named.boot ini adalah:

directory mendefinisikan directory tempat penyimpanan zone file


primary mendeklarasikan name-server sebagai primary domain tertentu
secondary mendeklarasikan name-server sebagai secondary domain tertentu
cache mendefinisikan cache file
forwarders mendefinisikan daftar server untuk meneruskan query client
slave memfungsikan name-server hanya sebagai forwarder

140
!

Konfigurasi caching-only DNS server


Menjalankan DNS server yang tidak mempunyai otoritas terhadap domain tertentu, tapi
harnya berperan sebagai name-server lokal untuk meneruskan query client, disebut sebagai
caching-only name server—hanya melakukan proses resolution. Normalnya, setiap query yang
datang dari client akan diteruskan ke name-server root-domain yang dapat diakses oleh
name-server tersebut. Daftar server untuk root domain disimpan dalam suatu file: Perlu
diingat bahwa setiap name-server harus merupakan primary server bagi loopback domain.
Boot script untuk name-server dengan konfigurasi minimal adalah:

;
; Caching only DNS server
;
directory /etc/named.data
primary 0.0.127.IN-ADDR.ARPA db.local
cache . db.cache
; end of named.boot

Keterangan:
• Komentar diawali dengan karakter “;”
• Dengan perintah directory /etc/named.data, berarti direktori
/etc/named.data digunakan untuk menyimpan zone file. Direktori ini harus
ada sebelumnya dan seluruh zone file disimpan dalam direktori tersebut
• Dengan perintah primary 0.0.127.IN-ADDR.ARPA db.local, berarti
bahwa DNS server merupakan primary bagi loopback domain. Zone file untuk
loopback domain adalah /etc/named.data/ db.local. Zone file dapat
diberi nama sesuai dengan keinginan administrator. Yang penting nama tersebut
mewakili zone tertentu
• Baris berikutnya, cache . db.cache, berarti bahwa file
/etc/named.data/db.cache digunakan untuk menyimpan informasi cache
hasil resolution yang masih valid

141
Konfigurasi Primary dan Secondary server
Definisi dan penjelasan primary server dan secondary server telah dibahas sebelumnya.
Sebuah DNS server dapat merupakan primary dari beberapa zone serta sekaligus menjadi
secondary bagi beberapa domain yang lain. Berikut ini adalah contoh file konfigurasi untuk
name-server yang merupakan primary dan secondary bersama-sama:

;
; boot file for primary & secondary name-server
;
directory /etc/named.data
primary 0.0.127.IN-ADDR.ARPA db.local
cache . db.cache
; primary domain
primary paume.itb.ac.id db.paume
primary itb.ac.id db.itb
primary co.id db.co.id
; secondary domain
secondary ee.itb.ac.id 167.205.31.132 db.ee.bak
secondary telkom.go.id 167.205.136.6 db.tk.bak
; end of named.boot

Keterangan:
• Tiga baris sebelumnya sama dengan contoh untuk konfigurasi minimal, yaitu
menggunakan direktori /etc/named.data untuk menyimpan zone file,
bertindak sebagai primary bagi loopback domain dengan zone file
/etc/named.data/db.local, dan /etc/named.data/ db.cache
digunakan untuk menyimpan informasi cache.
• Name-server kita, authoritative untuk tiga zone, yaitu untuk paume.itb.ac.id,
itb.ac.id, serta co.id. Zone file untuk masing-masing entri tersebut adalah
/etc/named.data/db.paume /etc/named.data/db.itb, dan
/etc/named.data/db.co.id.
• Baris berikutnya menunjukan bahwa name-server kita juga merupakan server
(secondary) dari domain ee.itb.ac.id, dan telkom.go.id. Primary server

142
!

untuk ee.itb.ac.id adalah mesin dengan IP address 167.205.31.32


sedangkan primary untuk telkom.go.id adalah mesin dengan IP address
167.205.136.6. Zone file yang diperoleh dari proses zone-transfer disimpan
masing-masing dalam db.ee.bak dan db.tk.bak. Database file untuk
secondary dibuat oleh sistem setelah melakukan zone-transfer, dan akan diperbaharui
secara periodik.

Konfigurasi Primary dan Secondary server


untuk Reverse Domain
Dalam perbincangan kita tentang name-server, telah dibahas perlunya fungsi serta bagaimana
proses reverse-mapping. Berikut ini adalah contoh file konfigurasi untuk name-server yang
melakukan tugas demikian.

;
; boot file for primary & secondary name-server(including reverse)
;
directory /etc/named.data
primary 0.0.127.IN-ADDR.ARPA db.local
cache . db.cache
; primary domain
primary paume.itb.ac.id db.paume
primary itb.ac.id db.itb
primary co.id db.co.id
; secondary domain
secondary ee.itb.ac.id 167.205.31.132 db.ee.bak
secondary telkom.go.id 167.205.136.6 db.tk.bak
; primary reverse-domain
primary 21.205.167.IN-ADDR.ARPA db.167.205.21
primary 22.205.167.IN-ADDR.ARPA db.167.205.22
primary 128.205.167.IN-ADDR.ARPA db.167.205.128
; secondary reverse-domain
secondary 1.46.202.IN-ADDR.ARPA 202.46.1.2 db.202.46.1.bak
secondary 2.46.202.IN-ADDR.ARPA 202.46.1.2 db.202.46.2.bak
; end of named.boot

143
Keterangan:
• Name-server kita, authoritative untuk tiga reverse-domain, yaitu untuk
21.205.167.IN-ADDR.ARPA, 22.205.167.IN-ADDR.ARPA serta
128.205.167.IN-ADDR.ARPA. Zone file untuk masing-masing entri tersebut
adalah /etc/named.data/db.167.205.21, /etc/
named.data/db.167.205.22, dan /etc/named.data/
db.167.205.128.
• Baris berikutnya menunjukan bahwa name-server kita juga merupakan server
(secondary) dari domain 1.46.202.IN-ADDR.ARPA, dan 2.46.202.IN-
ADDR.ARPA. Primary server untuk kedua reverse domain adalah mesin dengan IP
address 1202.46.1.2. Zone file yang diperoleh dari proses zone-transfer
disimpan masing-masing dalam db.202.46.1.bak dan db.202.46.2.bak.
Database file untuk secondary dibuat oleh sistem setelah melakukan zone-transfer,
dan akan diperbaharui secara periodik.

Konfigurasi Zone-File
Zone file mengikuti suatu standard penulisan yang mendeskripsikan suatu domain. Standard
resource record yang digunakan adalah sebagai berikut:

Start of Authority (SOA)


Fungsi Mendefinisikan hostname yang merupakan awal dari suatu zone. Untuk
setiap zone hanya mempunyai sebuah SOA. SOA dideklarasikan pada awal
zone file.

144
!

Format
[zone] IN SOA origin contact (
serial_number
refresh_number
retry_number
expire_number
minimum_number
)

Komponen SOA record:

zone Mendefinisikan zone yang menjadi otoritas name-server. Bisa langsung


mencantumkan domain name absolut, atau menggunakan karakter “@” bila
zone yang tunjuk sama dengan current-zone pada deklarasi primary dalam boot-
script.

origin Mendeklarasikan hostname yang merupakan primary master untuk domain/


zone sebelumnya. Hostname ditulis secara FQDN (dengan trailing dot),
misalnya ns1.itb.ac.id.

contact Mendeklarasikan email address yang dimodifikasi bagi administrator


(responsible person) yang mengelola domain ybs. Modifikasi yang dimaksud
adalah mengganti karakter at-sing “@” pada standard email address dengan
titik. Misalnya bila email addressnya postmaster@itb.ac.id., maka
ditulis postmaster.itb. ac.id.

serial Nomor seri (identifikasi) zone file. Serial number ini harus bertambah setiap
ada perubahan data pada zone file. Serial number juga digunakan oleh
secondary server untuk memeriksa ada-tidaknya perubahan dalam zone file
primary server. Jika dalam pemeriksaan serial number telah bertambah besar
maka, secondary akan melakukan zone-transfer untuk memperbaharui data
yang pernah diperolehnya. Sebaliknya jika tidak ada perubahan, secondary
menganggap bahwa data sebelumnya masih valid, karena tidak menditeksi
adanya perubahan dalam primary server.

refresh Mendeklarasikan interval (dalam detik) yang diperlukan oleh secondary server
untuk melakukan pemeriksaan terhadap perubahan zone file pada primary
145
server. Setiap interval yang telah ditentukan , secondary akan melakukan
pemeriksaan terhadap serial number untuk mengetahui ada tidaknya
perubahan dalam zone file. Interval ini dipilih berdasarkan dinamika
perubahan zone file antar DNS server. Biasanya perubahan zone file hanya
bersifat harian, sehingga sebaiknya selang waktu dipilih 1 hari (24x3600
detik)..

retry Menentukan berapa lama waktu (dalam detik) tunggu secondary server untuk
melakukan pemeriksaan ulang terhadap primary server bila primary server
tidak memberikan respons pada saat refresh. Karena adanya kemungkinan
primary server down, maka sebaiknya diberikan angka retry yang tidak terlalu
singkat, biasanya lebih dari 1 jam (3600 det)..

expire Menentukan berapa lama (dalam detik) zone file dipertahankan pada
secondary server jika secondary ini tidak dapat melakukan zone-refresh.
Setelah interval ini, maka secondary akan menghapus zone file ybs.
Sebaiknya digunakan nilai yang cukup besar (lebih dari 30 hari) dan untuk
link yang kuran reliable (sering down) sebaiknya sekitar 6 bulan atau 1 tahun.

minimum Menentukan nilai default TTL (time to live—dalam detik), yaitu interval waktu
yang diperbolehkan bagi sembarang name-server meng-cache data. Setelah
interval ini terlewati, name-server harus menghapus data-cache dan
mengambil data yang baru dari name-server authoritative..

Contoh :
; domain itb.ac.id.
@ IN SOA maingtw.paume.ITB.ac.id. cnrg.ITB.ac.id. (
1996100202 ;serial
86400 ;refresh every 12 hours
10800 ;retry every 3 hours
6048000 ;expire after 10 week
8640000 ;minimum TTL of 100 day
)

Name-Server (NS)
146
!

Fungsi Merupakan identifikasi authoritative server untuk suatu zone. Authoritative


zerver untuk suatu zone sebaiknya lebih dari satu sebagai tindakan preventif
apabila primary master tidak dapat diakses oleh secondary.

Format
[domain] IN NS server

Komponen NS record:

domain adalah domain-name yang di-otorisasi oleh server.

server Hostname kompute ryang merupakan authoritative server untuk domain-name


yang disebutkan sebelumnya. Komponen ini ditulis secara FQDN.

Contoh :
; domain itb.ac.id.
@ IN SOA maingtw.paume.ITB.ac.id. cnrg.ITB.ac.id. (
1996100202 ;serial
86400 ;refresh every 12 hours
10800 ;retry every 3 hours
6048000 ;expire after 10 week
8640000 ;minimum TTL of 100 day
)
IN NS maingtw.paume.ITB.ac.id.
IN NS dns.paume.ITB.ac.id.
IN NS gopher.EE.ITB.ac.id.

147
Address (A)
Fungsi Untuk memetakan hostname ke IP address.

Format

[host] IN A address

Komponen A record:

host nama simbolik yang akan diassosiasikan dengan mesin yang mempunyai address
yang disebutkan setelahnya.

address IP address mesin yang ditulis secara dotted-decimal.

Catatan Suatu host bisa bersifat multi-homing, yaitu terhubung kepada beberapa network
dengan menggunakan lebih dari satu network interface, sehingga record address
host tersebut bisa lebih dari satu.

Contoh :
; domain itb.ac.id.
@ IN SOA maingtw.paume.ITB.ac.id. cnrg.ITB.ac.id. (
1996100202 ;serial
86400 ;refresh every 12 hours
10800 ;retry every 3 hours
6048000 ;expire after 10 week
8640000 ;minimum TTL of 100 day
)
IN NS maingtw.paume.ITB.ac.id.
IN NS dns.paume.ITB.ac.id.
IN NS gopher.EE.ITB.ac.id.
; Address record
ns1 IN A 167.205.22.34
IN A 167.205.23.7
gerbang IN A 167.205.23.1
;

148
!

Mail eXchanger (MX)


Fungsi Digunakan untuk me-redirect mail untuk host ataupun suatu domain ke host
yang berfungsi sebagai mail server. MX record sangat berguna untuk domain
yang tidak menjalankan mail software. Mail yang ditujukan untuk host-host
yang terdapat pada domain ini akan dialihkan ke host yang menjalankan mail
software.

Format

[name] IN MX preference host

Komponen MX record:

name Berupa hostname atau domain tujuan pengiriman mail. Bila tujuan pengiriman
adalah suatu domain pada suatu zone file, maka bagian ini dapat dikosongkan.

preference Menentukan prioritas mail server yang akan digunakan untuk me-redirect mail
ke name. Sebuah host ataupun suatu domain bisa mempunyai beberapa mail
server dan mail server yang digunakan pertama kali adalah mail server dengan
prioritas tertinggi kecuali bila proses menghubungi host tersebut gagal maka
digunakan host dengan prioritas berikutnya.

host Adalah hostname dari mail server yang digunakan untuk me-redirect mail ke
host, ataupun domain yang didefinisikan pada field name.

Contoh :
; domain itb.ac.id.
@ IN SOA maingtw.paume.ITB.ac.id. cnrg.ITB.ac.id. (
1996100202 ;serial
86400 ;refresh every 12 hours
10800 ;retry every 3 hours
6048000 ;expire after 10 week
8640000 ;minimum TTL of 100 day
)
IN NS maingtw.paume.ITB.ac.id.
IN NS dns.paume.ITB.ac.id.
IN NS gopher.EE.ITB.ac.id.

149
IN MX 40 maingtw.paume.itb.ac.id.
; Address record
ns1 IN A 167.205.22.34
IN A 167.205.23.7
IN MX 10 ns1.ITB.ac.id.
gerbang IN A 167.205.23.1
IN MX 10 gerbang.ITB.ac.id.
;

o Bila suatu host akan mengirimkan mail ke mesin lain, maka


N t e host tersebut akan mencari nilai preference terendah (prioritas
tertinggi). Apabila host dengan prioritas tertinggi tidak
memberikan respon, maka host tersebut akan berusaha mengirim mail ke server
dengan prioritas kedua. Apabila proses ini masih gagal juga, maka host ybs, akan
mencari semua mail server yang ada pada MX record untuk host tersebut. Apabila
suatu host tidak mempunyai MX record, maka host akan berusaha mengirimkan mail
langsung ke host tujuan. Kondisi tanpa MX record ini sangat beresiko, karena tidak
jarang link terputus atau jaringan sedang down, sehingga mail tersebut mental.
Sebaiknya semua host mempunyai MX record. Karena remote-host akan mencoba
mengirimkan mail langsung ke MX record prioritas tertinggi, maka biasanya MX
record prioritas tertinggi diberikan pada host itu sendiri. Sehingga dapat dihindari
proses pengiriman yang lama dari satu host ke host yang lain. Berikut adalah contoh
MX record bagi suatu host dengan beberapa mail server (mail forwarder):
system IN A 167.205.22.98
IN MX 40 mail.bppt.go.id.
IN MX 30 maingtw.paume.itb.ac.id.
IN MX 10 system.paume.itb.ac.id.

Selang pemilihan preference MX record biasanya dibuat kelipatan 10, hanya untuk
mempermudah penyisipan terhadap MX record sebelumnya. MX record juga
digunakan untuk penyederhanaan pengiriman mail. Pengirim dapat mengirimkan
mail kepada user yang ada pada suatu domain tanpa harus mengetahui hostname
tempat user beraada. Misalkan ada user yang akan mengirimkan mail ke PresDir
Intel Corp., maka pengirim tersebut dapat mengirimkan mailyang ditujukan kepada
director@intel.com. Apabila pada zone file terdapat MX record untuk domain
intel.com, maka mail tersbut akan dikirimkan ke mail server untuk domain tersebut.
Mail server aka nmendistribusikan mail tersebut ke tujuan sebenarnya.

150
!

Canonical NAME (CNAME)


Fungsi Mendefinisikan alias name atau nickname untuk suatu host.

Format
[nickname] IN CNAME host

Komponen CNAME record:

nickname Adalah alias name untuk host yang tercantum pada host.

host Hostname yang alias name-nya tercantum pada nickname. Hostname harus
ditulis secara FQDN dan tidak dianjurkan berupa alias name (looping).

Host INFOrmation (HINFO)


Fungsi Mendeklarasikan informasi singkat tentang perangkat keras dan sistem
operasi yang digunakan pada suatu hostname.

Format

[host] IN HINFO hardware software

Catatan Tidak dianjurkan, konsekuensi pada aspek security.

Komponen CNAME record:

host Hostname dari mesin yang dimaksud.

hardware Field yang mengidentifikasi perangkat keras yang digunakan host. Biasanya
berisi nama mesin yang digunakan.

software Mengidentifikasi sistem operasi yang digunakan oleh host.

151
Well Known Services (WKS)
Fungsi Memberikan informasi tentang layanan-layanan yang disediakan oleh tiap-tiap
host.

Format

[host] IN WKS address protocol services

Catatan Tidak dianjurkan, konsekuensi pada aspek security.

Komponen WKS record:

host Hostname dari mesin yang dimaksud.

address IP address mesin.

protocol Transport protocol yang digunakan oleh services baik TCP ataupun UDP.

services Daftar service yang digunakan oleh host.

Contoh :
; contoh CNAME, HINFO, WKS record
@ IN SOA dns.paume.ITB.ac.id. cnrg.ITB.ac.id. (
95106271135 ;serial
86400 ;refresh every 12 hours
10800 ;retry every 3 hours
6048000 ;expire after 10 week
8640000 ;minimum TTL of 100 day
)
IN NS dns.paume.ITB.ac.id.
;
system IN A 167.205.22.98
IN HINFO PC-486/DX Novell3.12
dns IN A 167.205.22.120
IN HINFO HP9000/300 HP-UX-7.0
IN WKS TCP telnet smtp ftp
domain IN CNAME dns.paume.ITB.ac.id.
;

Konfigurasi Zone-File untuk Reverse-Domain


152
!

Untuk reverse-domain, digunakan PTR (pointer) record untuk memetakan IP address ke


domain-name, jadi kebalikan dari A (adress) record. Berikut contoh pemakaian PTR record:
; contoh PTR record
@ IN SOA dns.paume.ITB.ac.id. cnrg.ITB.ac.id. (
95106190900 ;serial
86400 ;refresh every 12 hours
10800 ;retry every 3 hours
6048000 ;expire after 10 week
8640000 ;minimum TTL of 100 day
)
IN NS dns.paume.ITB.ac.id.
IN NS maingtw.paume.ITB.ac.id.
IN NS gopher.ee.ITB.ac.id.
;
1 IN PTR maingtw.paume.itb.ac.id.
33 IN PTR maingtw.paume.itb.ac.id.
97 IN PTR travellers.paume.itb.ac.id.
98 IN PTR system.paume.itb.ac.id.
99 IN PTR nmi.paume.itb.ac.id.
100 IN PTR design.paume.itb.ac.id.
101 IN PTR itbgtw.itb.ac.id.
102 IN PTR gw-paume.itb.ac.id.
;

Konfigurasi Cache-File
Cache-file berisi informasi yang berhubungan name-server root-domain yang penting untuk
proses resolution. Berikut contoh file db.cache yang terakhir di-update tanggal 1
September 1995.
;
; contoh db.cache
; named.root 1 Sep 1995
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
. 3600000 IN NS B.ROOT-SERVERS.NET.
. 3600000 IN NS C.ROOT-SERVERS.NET.
. 3600000 IN NS D.ROOT-SERVERS.NET.
. 3600000 IN NS E.ROOT-SERVERS.NET.

153
. 3600000 IN NS F.ROOT-SERVERS.NET.
. 3600000 IN NS G.ROOT-SERVERS.NET.
. 3600000 IN NS H.ROOT-SERVERS.NET.
. 3600000 IN NS I.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
B.ROOT-SERVERS.NET. 3600000 IN A 128.9.0.107
C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90
E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10
F.ROOT-SERVERS.NET. 3600000 IN A 39.12.229.241
G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4
H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53
I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17

Keterangan:
• domain “.” melambangkan root-domain.
• 3600000 berarti TTL untuk masing-masing domain dan masing masing server. Angka
yang besar ini mengindikasikan bahwa record-record ini dipertahankan dalam waktu
yang lama.

154
!

Menjalankan DNS server


Setelah menyiapkan file konfigurasi (/etc/named.boot) dan zone file, maka tahap
selanjutnya adalah menjalankan DNS server tersebut. Implementasi BIND menggunakan
name-server daemon yand disebut named (dibaca name-d). Sintaks untuk menjalankan
daemon tersebut adalah sebagai berikut.

named [-d level] [-p port] [-b bootfile]

dengan:

-d level Digunakan untuk menentukan level penyimpanan informasi log


debugging dalam file /usr/tmp/named.run. Argument dari level
adalah bilangan dari 1 hingga 9. Semakin tinggi level penyimpanan,
maka semakin detil informasi yang disimpan dalam file
/usr/tmp/name.run dan file tersebut akan membesar dalam
waktu singkat

-p port Menentukan port UDP/TCP yang digunakan oleh named. Nilai


defaultnya adalah 53. Bila digunakan port lain ada kemungkinan
aplikasi standard tidak bisa mengakses named.

-b bootfile Menentukan bootscript yang digunakan saat menjalankan named. File


defaultnya adalah /etc/named.boot.

Perintah berikut akan menjalankan named dengan menggunakan nilai default:

#/etc/named

Bila digunakan bootscript selain named.boot (atau jika direktori yang digunakan
berbeda), dapat digunakan:

#/etc/named -b bootfile

Konfigurasi Resolver
155
Dalam BIND, resolver biasanya berupa rutin-library yang dikompilasi bersama-sama
program. Rutin ini akan membaca satu file konfigurasi /etc/resolv.conf yang berisi
informasi tentang domain dan DNS server untuk domain tersebut. Berikut adalah contoh file
/etc/resolv.conf:
;
; contoh file /etc/resolv.conf
;
domain ITB.ac.id
server 167.205.22.120
domain paume.ITB.ac.id
server 167.205.22.120
domain ee.ITB.ac.id
server 167.205.31.132
domain telkom.go.id
server 167.205.136.5
domain inkom.lipi.go.id
server 167.205.240.100
;

Keterangan:
• Untuk domain ITB.ac.id DNS servernya adalah mesin dengan IP address
167.205.22.120
• Untuk domain ee.ITB.ac.id DNS servernya adalah mesin dengan IP address
167.205.31.132
• Untuk sebuah domain bisa menggunakan lebih dari satu DNS server.

Utility nslookup
nslookup adalah aplikasi yang dapat digunakan untuk debugging instalasi name-server.
Software ini bagian dari paket BIND. Dengan menggunakan nslookup, user dapat
mengirim query ke berbagai name-server dan meminta informasi yang diinginkan. Sehingga
kita akan dapat mengetahui apakah DNS server yang telah kita pasang, berfungsi dengan
baik atau tidak. nslookup dapat dijalankan dalam dua mode, mode langsung dari
command line atau mode interaktif. Berikut adalah contoh penggunaan secara langsung dari
command line.
156
!

maingtw# nslookup cnrg.itb.ac.id.


Server: maingtw.paume.itb.ac.id
Address: 0.0.0.0

Name: cnrg.itb.ac.id.
Addresses: 167.205.22.117

Keterangan:

Informasi host yang diinginkan adalah host cnrg.itb.ac.id. Hasil query ke


DNS server (maingtw.paume.itb.ac.id.) memeriksa apakah domain-name
yang dicari oleh user adalah bagian dari otoritasnya. Kemudian setelah berhasil
mengidentifikasi itu, ia mencari data untuk host yang bersangkutan. Akhirnya DNS-
server memberikan jawaban final berupa sebuah IP address untuk
cnrg.itb.ac.id.

Berikut penggunaan nslookup secara interaktif:

maingtw# nslookup
Server: maingtw.paume.itb.ac.id
Address: 0.0.0.0

> ?
Commands: (identifiers are shown in uppercase, []means optional)
NAME- print info about the host/domain NAME using default server
NAME1,NAME2 - as above, but use NAME2 as server
help or ? - print info on common commands; see nslookup(1) for details
set OPTION - set an option
all - print options, current server and host
[no]debug - print debugging information
[no]d2 - print exhaustive debugging information
[no]defname - append domain name to each query
[no]recuse - ask for recursive answer to query
[no[vc - always use a virtual circuit
domain=NAME - set default domain name to NAME
srchlist=N1[/N2/.../N6] - set domain to N1 and search list to
N1,N2,etc.
root=NAMe - set root server to NAME
retry=X - set number of retries to X
timeout=X - set initial time-out interval to X seconds
querytype=X - set query type, e.g.,
A,ANY,CNAME,HINFO,MX,NS,PTR,SOA,TXT,WKS
type=X - synonym for querytype
class=X - set query class to one of IN (Internet), CHAOS
HESIOD or ANY
server NAME - set default server to NAME, using current
default server
lserver NAME - set default server to NAME, using initial server

157
finger [USER] - finger the optional NAME at the current default host
root - set current default server to the root
ls [opt] DOMAIN [>FILE] - list addresses in DOMAIN (optional:
output to FILE)
-a - list canonical names and aliases
-h - list HINFO (CPU type and operating system)
-s - list well-known services
-d - list all records
-t TYPE - list records of the given type (e.g.,A,CNAME,MX,etc)
view FILE - sort an ‘ls’ output file and view it with more
exit - exit the program, ^D also exits
>

Berikut beberapa perintah yang dapat digunakan pada prompt > nslookup:

1. Mencari IP address dari suatu host


> gopher.ee.itb.ac.id.
Server: maingtw.paume.itb.ac.id
Address: 0.0.0.0

Name: gopher.ee.itb.ac.id.
Addresses: 167.205.31.132

2. Mencari informasi lengkap tentang suatu host

> set type=any


> gopher.ee.itb.ac.id.
Server: maingtw.paume.itb.ac.id
Address: 0.0.0.0

gopher.ee.itb.ac.id. internet address = 167.205.31.132


gopher.ee.itb.ac.id. internet address = 167.205.8.80
gopher.ee.itb.ac.id. internet address = 167.205.8.101
ee.itb.ac.id nameserver = gopher.ee.itb.ac.id
ee.itb.ac.id nameserver = maingtw.paume.itb.ac.id
ee.itb.ac.id nameserver = dns.paume.itb.ac.id
gopher.ee.itb.ac.id. internet address = 167.205.8.80
gopher.ee.itb.ac.id. internet address = 167.205.31.132
gopher.ee.itb.ac.id. internet address = 167.205.8.101
maingtw.paume.itb.ac.id internet address = 167.205.31.131
maingtw.paume.itb.ac.id internet address = 167.205.22.1
maingtw.paume.itb.ac.id internet address = 167.205.22.33
maingtw.paume.itb.ac.id internet address = 167.205.22.123

158
!

dns.paume.itb.ac.id internet address = 167.205.22.120


>

3. Mencari MX record untuk suatu host

> set type=MX


> system
Server: maingtw.paume.itb.ac.id
Address: 0.0.0.0

system.paume.itb.ac.id. preference = 30, mail exchanger =


mail.iptek.net.id
system.paume.itb.ac.id. preference = 20, mail exchanger =
maingtw.paume.itb.ac.id
system.paume.itb.ac.id. preference = 10, mail exchanger =
system.paume.itb.ac.id
paume.itb.ac.id nameserver = gopher.ee.itb.ac.id
paume.itb.ac.id nameserver = maingtw.paume.itb.ac.id
paume.itb.ac.id nameserver = dns.paume.itb.ac.id
maingtw.paume.itb.ac.id internet address = 167.205.31.131
maingtw.paume.itb.ac.id internet address = 167.205.22.1
maingtw.paume.itb.ac.id internet address = 167.205.22.33
maingtw.paume.itb.ac.id internet address = 167.205.22.123
system.paume.itb.ac.id. internet address = 167.205.22.98
dns.paume.itb.ac.id internet address = 167.205.22.120
gopher.ee.itb.ac.id. internet address = 167.205.31.132
gopher.ee.itb.ac.id. internet address = 167.205.8.101
gopher.ee.itb.ac.id. internet address = 167.205.8.80
>

4. Pindah ke DNS server yang lain dan mencari informasi tentang domain co.id.

> server gopher.ee.itb.ac.id.


Default Server: gopher.ee.itb.ac.id.
Addresses: 167.205.31.132, 167.205.8.80, 167.205.8.101
> ls -t A co.id
[gopher.ee.itb.ac.id]
co.id. server = dns.paume.itb.ac.id.
159
gw.next 167.205.128.168
flight.atw 167.205.232.11
c0met.atw 167.205.232.3
t1ger.atw 167.205.128.164
w0ody.atw 167.205.232.10

160
!

7
Sendmail :
Instalasi dan
Cara Pengoperasian

Konfigurasi sendmail bisa jadi menakutkan bagi


pemula. Dunia ini kompleks, dan konfigurasi mail
merefleksikannya ☺
Meski demikian, dalam bab ini kita akan mempelajari
bagaimana cara menginstall dan memaintenance
sendmail, yang ternyata tidak terlalu kompleks.

161
Pendahuluan
Sendmail menerapkan fasilitas routing mail antar jaringan di bawah sistem operasi UNIX. Ia
tidak terikat pada salah satu protokol transport. Fungsinya kira-kira seperti switch crossbar,
meneruskan pesan dari satu domain ke domain yang lain. Dalam prosesnya, ia dapat
melakukan editing pada header pesan untuk menempatkan pesan sesuai dengan format yang
cocok dengan domain penerima. Semua fungsi ini dilakukan di bawah kontrol file
konfigurasi.

Karena persyaratan fleksibilitas sendmail, file konfigurasi tampak seperti sesuatu yang tak
tersentuh oleh manusia dan kompleks. Meski demikian, hanya ada sedikit konfigurasi dasar
yang perlu dibuat sesuai dengan tempat dijalankannya sendmail. Sedangkan, file konfigurasi
standar sudah dibuat. Konfigurasi yang lain dapat dibuat dengan menyesuaikan dari
konfigurasi yang ada.

Sendmail dibuat berdasarkan RFC1822 (Internet Mail Format Protocol), RFC821 (Simple Mail
Transport Protocol), RFC1123 (Internet Host Requirements), dan RFC1425 (SMTP Service
extensions).

Bagian pertama dari bab ini menggambarkan bagaimana melakukan instalasi dasar sendmail.
Bagian kedua menerangkan informasi tiap hari yang sebaiknya diketahui oleh administrator
untuk mengatur sistem mailnya. Bagian ketiga menjelaskan beberapa parameter yang perlu
diatur. Bagian empat mengandung informasi yang berhubungan dengan argument pada
command line. Bagian lima berisi informasi lebih detail mengenai file konfigurasi. Bagian ini
diperuntukkan bagi orang yang suka menderita dan harus menulis file konfigurasinya sendiri.
Bagian enam menjelaskan konfigurasi yang dapat dilakukan pada saat mengkompile
sendmail.

1 RFC = Request For Comments


162
!

Instalasi Dasar
Ada dua langkah dasar untuk menginstal sendmail. Bagian terberat adalah membuat tabel
konfigurasi. Ini adalah sebuah file yang akan dibaca sendmail ketika pertama kali dijalankan
(start up). File ini menjelaskan kepada mailer bagaimana menguraikan alamat (address),
bagaimana menulis-ulang (rewrite) header pesan, dan setting berbagai option. Meskipun tabel
konfigurasi cukup kompleks, sebuah konfigurasi biasanya dapat dibuat dengan melakukan
penyesuaian atas konfigurasi yang telah ada. Jadi tidak lagi berat bagi kita.

Bagian kedua adalah melakukan instalasi itu sendiri, seperti membuat file-file yang
dibutuhkan, dan sebagainya.

Mengkompile Sendmail
Bagian ini tidak akan dijelaskan secara detail, hanya pengenalan. Semua source code sendmail
ada dalam subdirektori src. Jika Anda menjalankan sistem 4.4BSD, Anda dapat mengkompile
dengan mengetik “make”. Pada sistem yang lain, barangkali Anda perlu melakukan sedikit
penyesuaian.

make versi lama

Jika Anda belum memiliki make versi terbaru, Anda perlu memakai ini:
# make -f Makefile.dist

Compilation flags
Sendmail mendukung dua format yang berbeda untuk database alias. Kedua format ini yaitu:
• NDBM, format New DBM, terdapat hampir di semua sistem saat ini. Format ini
memungkinkan dilakukannya pekerjaan yang kompleks, seperti multiple database,
menutup database yang terbuka saat tertentu.
• NEWDB, paket new database dari Berkeley. Jika Anda memiliki ini,
gunakanlah. Format ini dapat menangani catatan (record) yang panjang, multiple
open database, caching real in-memory, dan seterusnya.

163
Jika tak satu pun ada, sendmail akan membaca file alias ke dalam memory pada setiap kali
dipanggil. Ini akan memperlambat dan seharusnya dihindari.

Kompilasi dan Instalasi


Setelah melakukan konfigurasi sistem lokal di atas, Anda selanjutnya bisa mengompile dan
menginstal sistem. Kompilasi dapat dilakukan dengan perintah make yang ada di direktory
sendmail/src. Anda dapat menginstal menggunakan:
# make install

Perintah ini akan menginstal file biner di /usr/sbin dan membuat link dari /usr/bin/newaliases
dan /usr/bin/mailq ke /usr/sbin/sendmail. Juga akan otomatis diinstal halaman-halaman
manual.

File Konfigurasi
Sendmail tidak dapat bekerja tanpa file konfigurasi. Konfigurasi ini mendefinisikan sistem
mail yang dipakai di tempat ini (tempat disetupnya sendmail), bagaimana mengaksesnya,
bagaimana menyebarkan (forward) email ke remote mail system, dan sejumlah parameter tuning.
File konfigurasi ini akan dijelaskan lebih detail pada bagian lain bab ini.

Konfigurasi sendmail bisa jadi menakutkan bagi pemula. Dunia ini kompleks, dan
konfigurasi mail merefleksikannya ☺

Detail File-file untuk Instalasi


Ketika sendmail mulai dijalankan, pertama kali dia membaca file konfigurasinya yaitu
/etc/sendmail.cf. Beberapa item yang terdapat dalam file tersebut diantaranya adalah lokasi file-
file dan direktori lain yang dibutuhkan oleh sendmail. Lihat gambar dibawah ini.

164
!

Sendmail

file sendmail.cf

aliases sendmail.st sendmail.hf queue.dir

include file qf file

pipe through
df file
program

Gambar 7.1:
Struktur sendmail

Biasanya lokasi di file konfigurasi ditulis secara full-pathname, misal /var/spool/mqueue


dibandingkan mqueue. Selanjutnya, kita akan mengadakan perjalanan (tour) menjelajah file
konfigurasi ini. Dan sebagai langkah pertama, jalankan perintah berikut:

# grep “/[^0-9].*/” /etc/sendmail.cf

Output yang dihasilkan oleh perintah grep di atas kira-kira seperti ini:
OA/etc/aliases
OQ/var/spool/mqueue
OS/etc/sendmail.st
OH/usr/lib/sendmail.hf
Mlocal, P=/bin/mail,F=rlsDFMmnP, S=10, R=20, A=mail -d $u
Mprog, P=/bin/sh, F=lsDFeuP, S=10, R=20, A=sh -c $u
Muucp, P=/bin/uux, F=msDFMhuU, S=13, R=23,

Perhatikan, bahwa beberapa baris dimulai dengan huruf O, dan yang lain dengan huruf M.
Huruf O menandai sebuah baris sebagai baris Option konfigurasi. Option yang mengikutinya

165
menjelaskan lokasi file-file yang dipakai sendmail. Huruf yang mengikuti O adalah nama
Option. A, misalnya, mendefinisikan lokasi file aliases, dan seterusnya. Sedangkan baris yang
dimulai dengan M mendefinisikan delivery agents, yaitu sebuah program yang menangani
pengiriman ke mailbox pemakai lokal (Mlocal), menangani pengiriman melalui program
(Mprog), atau menforward melalui hubungan UUCP (Muucp).

Selanjutnya kita akan mempelajari file-file dibelakang option O dan M. Setelah itu, kita akan
melakukan modifikasi yang diperlukan sesuai dengan sistem yang akan kita buat, dan
melakukan beberapa pengujian. Subbab ini menjelaskan file-file yang dibutuhkan untuk
instalasi sendmail.

/usr/sbin/sendmail
File biner (yang bisa dijalankan langsung) sendmail berada di direktori /usr/sbin untuk sistem
4.4BSD atau ditempat lain untuk sistem lain (/usr/lib, /usr/ucblib). Setuid harus dimiliki oleh
root. Untuk alasan keamanan (security), /, /usr, dan /usr/sbin sebaiknya dimiliki oleh root,
mode 7553.

/etc/sendmail.cf
Ini adalah file konfigurasi sendmail. Sistem 4.4BSD, FreeBSD menempatkan file ini di
direktori /etc seperti di atas, dan sistem lain ada yang menempatkannya seperti
/usr/lib/sendmail.cf. File inilah yang seperti dikatakan sebelumnya, cukup kompleks dan bisa
jadi menakutkan. Ini disebabkan karena begitu simplenya sintaks yang dipakai. Tetapi yang
simple inilah yang menjadi tidak sederhana.

/usr/bin/newaliases
Perintah newaliases hanyalah merupakan link ke sendmail.
# ln -s /usr/sbin/sendmail /usr/bin/newaliases

Jika sendmail dijalankan sebagai newaliases, dia akan menggunakan flag -bi yang akan
memperbaharui database alias berdasarkan file aliases yang dibuat.

166
!

/var/spool/mqueue
Direktori /var/spool/mqueue harus dibuat untuk menyimpan antrian mail yang belum/akan
dikirim. Direktori ini harus dimiliki oleh root dengan mode 700. PATH sesungguhnya (sesuai
dengan keperluan lokal) dari direktori ini didefinisikan oleh option Q dalam file sendmail.cf.

/etc/aliases*
Alias sistem ditempatkan di /etc/aliases. Contoh alias ini biasanya ditaruh di lib/aliases yang
mengandung beberapa alias yang harus didefinisikan. Untuk pertamakali setup alias, conton
tersebut bisa dicopy:
# cp lib/aliases /etc/aliases
# vi /etc/aliases

Alias di atas perlu diedit sesuai dengan keperluan sistem Anda.

Normalnya, sendmail melihat versi file ini yang dibuat oleh rutin dbm(3) atau db(3). Database
tersebut disimpan di /etc/aliases.dir dan /etc/aliases.pag atau /etc/aliases/db tergantung dari
paket database yang Anda pakai. File ini dapat dibuat pertamakali sebagai file yang kosong
dengan mode 644:
# cp /dev/null /etc/aliases.dir
# cp /dev/null /etc/aliases.pag
# chmod 644 /etc/aliases.*
# newaliases

PATH sebenarnya dari file ini didefinisikan oleh option A dalam file sendmail.cf.

/etc/rc
Perlu untuk menjalankan sendmail sebagai daemon pada saat sistem sedang reboot. Daemon ini
menjalankan dua fungsi: mendengarkan soket SMTP untuk terjadinya koneksi (menerima
mail dari sistem lain) dan memproses antrian secara periodik untuk memastikan bahwa mail
bisa dikirimkan ketika host dapat dihubungi.

Untuk itu, tambahkan baris-baris perintah berikut dalam file /etc/rc (atau /etc/rc.local
tergantung sistem yang dipakai) pada blok dimana daemon dijalankan:
if [ -f /usr/sbin/sendmail -a -f /etc/sendmail.cf ]; then

167
(cd /var/spool/mqueue; rm -f [lnx]f*)
/usr/sbin/sendmail -bd -q30m &
echo -n ' sendmail' >/dev/console
fi

Perintah cd dan rm memastikan bahwa semua file lock telah dihapuskan. Lock file ini
tertinggal ketika sistem down ditengah pemrosesan mail. Baris yang sebenarnya menjalankan
sendmail memiliki dua flag: -bd yang membuat sendmail mendengarkan port SMTP, dan –
q30m yang menyebabkan sendmail memproses antrian tiap 30 menit.

Beberapa orang menggunakan script untuk sartup yang lebih komplek, seperti untuk
menghapus file qf dan df yang kosong. Contohnya:
# remove zero length qf files
for qffile in qf*
do
if [ -r $qffile ]
then
if [ ! -s $qffile ]
then
echo -n " <zero: $qffile>" > /dev/console
rm -f $qffile
fi
fi
done
# rename tf files to be qf if the qf does not exist
for tffile in tf*
do
qffile=`echo $tffile | sed 's/t/q/'`
if [ -r $tffile -a ! -f $qffile ]
then
echo -n " <recovering: $tffile>" > /dev/console
mv $tffile $qffile
else
echo -n " <extra: $tffile>" > /dev/console
rm -f $tffile
fi
done
# remove df files with no corresponding qf files
for dffile in df*
do
168
!

qffile=`echo $dffile | sed 's/d/q/'`


if [ -r $dffile -a ! -f $qffile ]
then
echo -n " <incomplete: $dffile>" > /dev/console
mv $dffile `echo $dffile | sed 's/d/D/'`
fi
done
# announce files that have been saved during disaster recovery
for xffile in [A-Z]f*
do
echo -n " <panic: $xffile>" > /dev/console
done

Jika Anda menjalankan versi UNIX yang tidak mendukung Berkeley TCP/IP, jangan
memasukkan flag -bd.

/usr/lib/sendmail.hf
File ini merupakan file help yang digunakan oleh perintah SMTP HELP. File ini dapat dicopy
dari lib/sendmail.hf.
# cp lib/sendmail.hf /usr/lib

PATH yang sebenarnya didefinisikan oleh option H dalam file sendmail.cf.

/etc/sendmail.st
Jika Anda ingin mengumpulkan statistik mengenai trafik mail, Anda perlu membuat file
/etc/sendmail.st
# cp /dev/null /etc/sendmail.st
# chmod 666 /etc/sendmail.st

File ini dibuat oleh program mailstats/mailstats.c. PATH sebenarnya dari file ini didefinisikan
oleh option S dalam file sendmail.cf.

/usr/bin/mailq
Jika sendmail dijalankan sebagai mailq, ia akan menjalankan flag -bp yang akan menampilkan
daftar antrian mail. Ini merupakan link ke /usr/sbin/sendmail.

169
Operasi Normal

Log Sistem
Log sistem didukung oleh program syslogd(8). Semua pesan dari sendmail dibawah fasilitas
LOG_MAIL.

Format
Setiap baris dari log sistem terdiri atas waktu, nama mesin yang membuat, kata “sendmail”,
dan pesan.

Level
Jika Anda memiliki syslogd(8) atau ekivalensinya, Anda bisa melakukan logging. Ada banyak
informasi yang bisa dicatat. Log disusun berdasarkan level yang meningkat. Pada level
terbawah, hanya situasi yang paling aneh yang akan dicatat. Pada level tertinggi, event yang
tidak penting pun akan dicatat. Berdasarkan konvensi, level log dibawah 10 dianggap cukup
berguna, level diatas 64 dipakai untuk proses debugging. Level dari 11-64 dicadangkan untuk
mode verbose yang mungkin diinginkan untuk beberapa tempat tertntu.

Level logging dapat diset untuk sendmail. Devaultnya adalah level 9. Level-level untuk log
adalah sebagai berikut:
0 No logging.
1 Serious system failures and potential security
problems.
2 Lost communications (network problems) and proto-
col failures.
3 Other serious failures.
4 Minor failures.
5 Message collection statistics.
6 Creation of error messages, VRFY and EXPN com-
mands.
7 Delivery failures (host or user unknown, etc.).
8 Successful deliveries.
9 Messages being deferred (due to a host being

170
!

down, etc.).
10 Database expansion (alias, forward, and userdb
lookups).
15 Automatic alias database rebuilds.
20 Logs attempts to run locked queue files. These
are not errors, but can be useful to note if your
queue appears to be clogged.
30 Lost locks (only if using lockf instead of
flock).

Antrian (The Mail Queue)


Antrian mail, harus diproses secara transparan. Bagaimanapun, Anda mungkin menjumpai
bahwa intervensi secara manual kadang-kadang dibutuhkan. Misalnya, jika host (atau
gateway) yang akan dihubungi sedang down untuk jangka waktu tertentu, antrian bisa semakin
panjang. Meskipun sendmail akan menangani kembali ketika host up, Anda bisa jadi
menjumpai performance yang buruk saat itu.

Menampilkan antrian
Daftar antrian dapat ditampilkan menggunakan perintah mailq (atau dengan memberikan flag
-bp pada sendmail):
# mailq

Perintah ini akan menghasilkan daftar ID antrian, ukuran pesan, tanggal pesan memasuki
antrian, pengirim dan penerima.

171
Memaksa antrian
Sendmail akan menjalankan antrian secara otomatis pada interval tertentu. Algoritmanya
adalah sendmail membaca dan mengurutkan antrian, kemudian berusaha memproses semua
job berdasarkan urutan. Ketika berusaha menjalankan job, sendmail pertama kali mengecek
apakah job terkunci (locked). Jika benar, sendmail mengabaikan job tersebut.

Tidak ada cara untuk memastikan bahwa hanya ada satu prosesor antrian pada satu saat,
karena tidak ada jaminan bahwa sebuah job tidak dapat terus-menerus diproses
(bagaimanapun, sendmail memasukkan sebua heuristik yang mencoba membatalkan job yang
menghabiskan waktu secara absurd). Karena algoritma penguncian (locking) ini, tidak
mungkin bagi satu job menyelesaikan seluruh antrian.

Bagaimanapun, sebuah host penerima yang tidak bisa diajak kerjasama atau penerima yang
tidak pernah bisa dihubungi, akan mengakumulasikan banyak proses dalam sistem Anda.
Celakanya, tidak ada cara umum yang sepenuhnya bsia memecahkan hal ini.

Dalam beberapa kasus, Anda mungkin menjumpai bahwa ketika sebagian besar host down
untuk beberapa hari bisa menghasilkan antrian besar yang tak terkirim. Hal ini akan
menyebabkan sendmail menghabiskan banyak waktu hanya untuk mensortir antrian. Situasi
ini dapat dipecahkan dengan memindahkan antrian ke sebuah tempat temporer dan
membuat sebuah antrian baru. Antrian yang lama dapat dijalankan kemudian ketika host
pengacau kembali aktif dengan baik.

Hal ini dapat dilakukan dengan memindahkan seluruh direktori antrian ke direktori
temporer:
# cd /var/spool
# mv mqueue omqueue; mkdir mqueue; chmod 700 mqueue

Anda kemudian harus menghentikan (kill) daemon yang sedang aktif (karena ia akan tetap
memproses direktori antrian yang lama) dan membuat daemon yang baru.

Untuk menjalankan antrian mail yang lama, gunakan perintah:

# /usr/sbin/sendmail -oQ/var/spool/omqueue -q

172
!

Flag -oQ menyatakan direktory antrian alternatif dan flag -q memberitahu sendmail agar
menjalankan tiap job dalam antrain saja. Anda bisa menambahkan flag -v untuk melihat apa
yang sedang terjadi.

Ketika antrian sudah habis sama sekali, Anda dapat menghapus direktori:
# rmdir /var/spool/omqueue

Datebase Alias
Database alias ada dalam dua bentuk. Pertama dalam bentuk teks, yang dibuat dalam file
/etc/aliases. Format alias ini adalah:
nama: nama1, nama2, ...

Hanya nama lokal yang bisa dimasukkan alias. Contoh dibawah ini:

Mail aliases dapat memberikan :


• Nama altenatif (nickname) untuk tiap individual user.
• Forwarding mail ke host lain
• mailing lists

Mail alias dari sendmail di definisikan di file /etc/aliases (di beberapa di system di file
etc/usr/lib/aliases ). Format dari pengisian entry di file aliases sebagai berikut:
alias: recipient[, recipient, ...]

alisas : nama alias atau alamat dari mail, dan recipient : nama/alamat kemana mail akan
di kirimkan, dapat berupa user name, nama alias lain, atau address lengkap dari mail lengkap
dengan nama user dan host name-nya, termasuk nama remote host untuk forwarding mail.
Dapat juga di gunakan untuk mengirimkan ke multiple recipient dari single alias atau lazim di
sebut dengan mailing list.

Alias dengan nickname dapat di gunakan untuk mencegah/menanggulangi pengejaan nama


yang sering salah dari tiap user. Kita juga dapat menggunakan alias untuk mengirimkan mail
dengan address yang spesifik misalnya : postmaster, sysadmin/root, hostmaster, dll ke user
yang sebenarnya yang bertanggung jawab dengan pekerjaan tersebut. Selain itu aliases dapat
juga untuk di gunakan menyederhanakan peng-address-an mail khususnya dalam
hubungannya dengan MX record (akan di bahas di routing).

173
contoh file aliases untuk mesin ns1.itb.ac.id:
#
# @(#)aliases 5.3 (Berkeley) 5/24/90 #
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail. #
# >>>>>>>>>> The program "newaliases" must be run after
# >> NOTE >> this file is updated for any changes to
# >>>>>>>>>> show through to sendmail. #
# Basic system aliases -- these MUST be present
MAILER-DAEMON: postmaster
postmaster: root

# General redirections for pseudo accounts


bin: root
daemon: root
games: root
ingres: root
nobody: root
system: root
toor: root
uucp: root

# Well-known aliases -- these should be filled in!


# Special names
root: admin
manager: admin@cnrg.itb.ac.id
dumper: admin@cnrg.itb.ac.id
operator: operator-mail@cnrg.itb.ac.id
postmaster: admin

Baris kosong dan baris yang diawali dengan tanda sharp “#” adalah komentar.

Bentuk kedua adalah yang diproses oleh program dbm(3) atau db(3). Format ini disimpan
dalam file /etc/aliases.dir dan /etc/aliases.pag. Ini adalah format yang sesungguhnya dipakai
oleh sendmail untuk memecahkan alias. Teknik ini dipakai untuk meningkatkan
performance.

174
!

Memperbaharui database alias


Versi database DB atau DBM akan memperbaharui database alias dengan memberi perintah:
# newaliases

Perintah ini sama dengan memberi flag -bi pada sendmail:


# /usr/sbin/sendmail -bi

Masalah yang potential terjadi


Ada sejumlah masalah yang dapat terjadi dengan database alias. Semuanya muncul dari
proses sendmail ketika mengakses versi DBM yang tidak lengkap (partially built). Ini dapat
terjadi dibawah dua kondisi: sebuah proses mengakses database ketika proses yang lain
sedang memperbaharuinya, atau proses yang memperbaharui database berhenti di tengah
jalan sebelum selesai, misal karena sistem crash atau proses dikill .

Sendmail memiliki dua teknik untuk menghadapi masalah ini. Pertama, ia mengabaikan
interupt ketika sedang melakukan pembaruan database. Kedua, pada akhir proses
pembaruan, ia menambahkan sebuah alias dengan bentuk:
@: @

yang secara normal tidak sah. Sebelum sendmail mengakses database, dia akan mengecek
apakah entri terakhir itu ada.

List owners
Jika kesalahan terjadi pada saat pengiriman ke alamat tertentu, katakan “x”, sendmail akan
melihat alias untuk ”owner-x” yang akan menerima kesalahan. Ini bermanfaat untuk sebuah
mailing list dimana anggota list tersebut tidak punya kontrol atas penanganan list itu sendiri;
dalam kasus ini, daftar maintener adalah pemilik list itu sendiri. Contoh:
# Mailing List
listproc: listproc@majordomo.itb.ac.id
herc: herc@majordomo.itb.ac.id
sysop-l: sysop-l@majordomo.itb.ac.id
itbnet-l: itbnet-l@majordomo.itb.ac.id
itbnet-in: itbnet-l@majordomo.itb.ac.id
icme96: icme96@majordomo.itb.ac.id

175
cnrg:
rudi@cnrg.itb.ac.id,aulia@itbgtw.itb.ac.id,daniel@cnrg.itb.ac.id,
arman, febi@hme.ee.itb.ac.id, ismail
sysadmin: admin, yc1dav
#initial name
yc1dav: onno
aulia: unung@system.paume.itb.ac.id
#
#owner:
owner-cnrg: arman@BICO.co.id
#

Pada contoh di atas, arman@BICO.co.id akan menerima pesan kesalahan yang terjadi karena
user ismail tidak ada dalam mesin lokal.

Isi alias owner dapat berupa pemakai tunggal (single user), atau sebuah alias. Contoh:
list: some, set, of, addresses
list-request: list-admin-1, list-admin-2, ...
owner-list: list-request

Per-User Forwarding (file .forward)


Sebagai alternatif bagi database alias, setiap user dapat membuat file dengan nama .forward
dalam home direktorinya. Jika file ini ada, sendmail akan meneruskan (redirect) mail untuk
user tersebut ke daftar alamat yang terdapat dalam file .forward. Contoh, jika dalam home
direktori ismail ada file .forward yang berisi:
ismail@cnrg.itb.ac.id.
ismail@hme.ee.itb.ac.id.

maka setiap mail yang datang untuk ismail akan dikirim kembali ke kedua alamat tersebut.

176
!

Argument
Beberapa argument penting sendmail dijelaskan berikut ini:

Queue Interval ( -q )
Lamanya waktu antara dilahirkannya sebuah proses untuk menjalankan antrian didefinisikan
oleh flag -q. Contoh:
# /usr/sbin/sendmail -q30m

Mode ini mengatur berapa lama sebuah pesan maksimum boleh berada dalam antrian. RFC
1123 seksi 5.3.1.1 menyatakan bahwa nilai ini setidaknya 30 menit minimal.

Daemon Mode
Jika Anda membolehkan mail masuk melalui koneksi IPC, Anda harus menjalankan daemon.
Ini dapat diset pada file /etc/rc dengan menambah flag -bd. Flag -bd dan -q dapat
dikombinasikan menjadi:
# /usr/sbin/sendmail -bd -q30m

Memaksa Antrian
Dalam beberapa kasus, Anda mungkin menjumpai antrian jadi macet karena alasan tertentu.
Anda dapat memaksa antrian berjalan dengan menggunakan flag -q (tanpa diikuti angka).
Akan lebih mengasikkan jika ditambahkan flag -v (verbose) untuk mengetahui apa yang
terjadi:
# /usr/sbin/sendmail -q -v

Anda juga bisa membatasi job hanya untuk antrian dengan ID tertentu, pengirim, dan
penerima, menggunakan salah satu modifier antrian. Contoh,
# /usr/sbin/sendmail -qRcnrg

membatasi job hanya untuk antrian yang mengandung string cnrg pada alamat penerima.
Demikian juga, -qSstring untuk pengirim (sender), -qIstring untuk identifier.

177
Debugging
Ada sejumlah besar flag untuk debug. Setiap flag debug memiliki sebuah bilangan dan
sebuah level, dimana semakin tinggi level berarti akan ditampilkan semakin banyak
informasi. Berdasarkan konvensi, level lebih besar dari 9 adalah absurd, artinya akan
ditampilkan begitu banyak informasi yang mungkin tidak Anda perlukan, kecuali untuk
keperluan debugging kode tertentu. Flag debug diset menggunakan option -d, dan sintaksnya
sebagai berikut:
debug-flag: -d debug-list
debug-list: debug-option [, debug-option ]
debug-option: debug-range [ . debug-level ]
debug-range: integer | integer - integer
debug-level: integer

dimana spasi hanya untuk kemudahan dalam membaca saja. Contoh:


-d12 Set flag 12 ke level 1
-d12.3 Set flag 12 ke level 3
-d3-17 Set flags 3 sampai 17 ke level 1
-d3-17.4 Set flags 3 sampai 17 ke level 4

Menggunakan File Configuration yang


Berbeda
File konfigurasi alternatif dapat ditentukan menggunakan flag -C, contoh:
# /usr/sbin/sendmail -Ctest.cf

menggunakan file konfigurasi test.cf sebagai ganti dari default /etc/sendmail.cf. Jika flag -C tidak
memiliki harga, ia akan diset sesuai default yaitu sendmail.cf dalam current directory.

Mengubah Harga Option


Option dapat ditimpa menggunakan flag -o. Contoh:
# /usr/sbin/sendmail -oT2m

mengatur option T (timeout) menjadi dua menit.

178
!

Logging Traffic
Banyak implementasi SMTP yang tidak menerapkan protokol secara penuh. Contoh,
beberapa SMTP berbasis PC tidak memahami baris continuation pada kode reply. Ini akan sulit
untuk dilacak. Jika Anda mencurigai masalah seperti ini, Anda dapat mengatur logging trafik
menggunakan flag -X. Contoh:
# /usr/sbin/sendmail -X /tmp/traffic -bd

akan mencatat semua trafik ke file /tmp/traffic.

Ini akan mencatat banyak data dengan cepat dan sebaiknya tidak dijalankan dalam operasi
normal. Semua trafik pesan baik yang masuk maupun keluar sendmail termasuk trafik SMTP
masuk, akan dicatat di file ini.

File sendmail.cf
File konfigurasi sendmail berada di /etc/sendmail.cf ( atau di system lain berada di
/usr/lib/sendmail.cf ). Di dalamnya berisi hampir seluruh konfigurasi dari sendmail
termasuk di dalamnya informasi yang di perlukan untuk route mail antara program mail user
dengan program pengirim mail (delivery mail program). File sendmail.cf mempunyai tiga
fungsi utama :
• Mendefinisikan lingkungan (environment) sendmail.
• Rewrite address ke dalam bentuk (form) syntak dari program penerima mail.
• map address ke dalam bentuk instruksi yang diperlukan untuk mengirimkan mail.

Bebarapa command diperlukan untuk memenuhi semua fungsi di atas. definisi makro dan
option command mendefinisikan lingkungan-nya. Rewrite rules akan merewrite address e-
mail. Karena banyak sekali Command dengan sintak pendek di dalam file sendmail.cf maka
jarang sekali system adminstrator membacanya, hanya sekali mengeditnya dan ternyata kita
bisa menghindarkan untuk mengedit file sendmail.cf anda dan mari kita lihat.

179
Lokasi contoh file sendmail.cf
Kita dapat mencari file contoh konfigurasi sendmail.cf yang cocok atau mendekati dengan
system kita dan menempatkan file tersebut ke /etc/sendmail.cf. Contoh konfigurasi
sendmail.cf biasanya sudah datang dalam system kita atau kita dapat download file
sendmail.tar dari tempat lain via anonymous ftp misalnya ke ftp.uu.net (versi terakhir dari
UC Berkeley terdapat di ftp.cs.berkeley.edu/ucb/sendmail), di file
mail/sendmail/sendmail.5.66.tar.Z. (IDA sendmail) di dalam file ini
terdapat beberapa contoh konfigurasi dengan lingkungan yang berbeda dan dapat di
temukan di direktory sendmail.5.66.cf.cf tiga contoh prototype ini di desain untuk
memudahkan memodifikasi dan di terapkan pada lingkungan jaringan yang berbeda. Tiga file
prototype tersebut adalah:
• tcpuucpproto.cf : untuk system yang menggunakan TCP/IP dan UUCP
• tcpproto.cf : untuk system yang menggunakan TCP/IP
• uucpproto.cf : untuk system yang menggunakan UUCP

Ketiga file di atas hampir identik, berbedaanya biasanya ada di bagian awal dan di akhir file,
kita dapat mengabaikan bagian lainnya dan lebih konsentrasi untuk sedikit melakukan
customized sesuai yang diperlukan.

Struktur sendmail.cf
Banyak file sendmail.cf mempunyai struktur yang sama karena kebanyakan di turunkan dari file
aslinya yang tidak begitu banyak. Maka dari itu system anda mungkin bisa sama dengan file
salah satu contoh di sini. Pada setiap system mempunyai struktur berbeda, tetapi fungsi dari
tiap bagian dapat anda temukan di lokasi berbeda dalam file sendmail.cf Di bawah ini akan kita
lihat struktur dari file sendmail.cf yang saya ambil dari protype file tcpuucpproto.cf di mana
dapat mewakili lingkungan jaringan dengan koneksi TCP/IP dan UUCP. Keterangan lebih
detail dari tiap bagian akan dibahas dalam sub-bab “modifikasi sendmail.cf”. Strukutur file
sendmail.cf sebagai berikut :

• Local Information

180
!

Definisi informasi mengenai internet host name, UUCP host name, dan lokal UUCP
connection, yang spesifik untuk tiap host. bagian ini harus di customized saat konfigurasi.

• General Macros

Definisi informasi mengenai domain name, “official hostname (hostname secara lengkap
termasuk domainnya), dan mail relay hosts. Informasi di sini spesifik untuk tiap lokal
jaringan, untuk itu bagian ini harus di customized saat konfigurasi.

• Classes

Definisi groups dana host name atau domain name di gunakan khusus untuk routing mail.
Biasanya tidak perlu dilakukan modifikasi .

• Version Number

Identifikasi versi sendmail.cf. Naikkan versi-nya tiap anda melakukan modifikasi konfigurasi-
nya.

• Special Macros

Definisi beberapa macro khusus yang digunakan oleh sendmail, berisi hal-hal yang berkaitan
dengan sendmail untuk identifikasi jika ada return error message, dan message sendmail
displai saat SMTP login. bagian ini tidak perlu di modifikasi.

• Options

Definisi option sendmail. bagian ini tidak perlu di modifikasi.

• Message procedure

Definisi macam-macam nilai awal message yang di gunakan oleh sendmail. Bagian ini tidak
perlu di modifikasi.

• Trusted Users

181
Definisi user yang mempunyai hak untuk menimpa address pengirim saat dia mengirimkan
mail. Bagian ini tidak perlu di modifikasi. Menambahkan user dalam daftar ini dapat
menjadi potensil masalah security.

• Format of headers

Definisi format dari header di mana sendmail akan menyisipkan ke dalam mail. Bagian ini
tidak perlu di modifikasi.

• Rewriting rules

Definisi aturan (rules) yang di gunakan untuk rewrite mail address. Rewrite Rules berisi
aturan umum yang dipakai oleh sendmail atau rewrite rules lain. Bagian ini tidak perlu di
modifikasi selama initialiasasi configurasi sendmail. Bagian ini perlu di modifikasi jika kita
akan menambahkan services baru atau memperbaiki masalah yang timbul.

• Mailers

Definisi instruksi yang digunakan oleh sendmail untuk memerintahkan program pengirim
mail. Spesifik rewrite rules yang berhubungan dengan setiap individual mailer juga di
definisikan di sini. bagian ini biasanya tidak perlu di modifikasi.

• Rule set Zero

Definisi spesial rewrite rule set, yang disebut rule set zero, yang di aplikasikan untuk
pengiriman address. Bagian ini tidak perlu di modifikasi,

• Machine-dependent Part of Rule Set Zero

Definisi dari bagian rule set zero yang spesifik untuk konfigurasi ini. Konfigurasi ini sesuai
dengan konfigurasi dari mailer system, artinya apakah system dapat mengirimkan
langsung UUCP atau SMTP mail dimana keduanya mempunyai rules rewrite yang
berbeda. atau system hanya bisa mengirimkan lewat UUCP. Anda biasanya tidak perlu
memodifikasi bagian ini.

Bagian-bagian diatas mungkin berbeda dengan file contoh yang ada dalam system anda,
namun demikian strukturnya kemungkinannya sama yaitu :

182
!

• Informasi yang berkenaan dengan customisasi host biasanya ada di awal file.
• Type-type command yang mirip, misalnya option command, header command, dll
biasanya dikelompokan.
• Sebagian besar isi file ini berisi rewrite rules
• Di akhir file ini biasanya berisi definisi campuran mailer dengan rewrite rules yang
berhubungan dengan individual mailers.

Sangat penting untuk di sadari bahwa sedikit sekali yang perlu di modifikasi dalam file
sendmail.cf, jika anda mendapatkan sample konfigurasi sendmail.cf yang cocok anda mungkin
hanya perlu memodifikasi beberapa baris di awal file.

Konfigurasi sendmail.cf
Setiap start-up. sendmail selalu membaca sendmail.cf. Karena alasan inilah mengapa syntak dari
perintah-perintah sendmail.cf di desain untuk mudah di parsing oleh sendmail, bukan oleh
manusia, sebagai konsekuensi-nya perintah-perintah dalam sendmail.cf sangat pendek bahkan
menurut standard UNIX. Perintah-perintah dan variabel hanya terdiri dari beberapa karakter,
dan mudah sekali membingungkan antara karakter perintah dan karakter variabel. Perintah
pendek ini susah sekali untuk di pecahkan, tetapi untuk membantunya mengingat-nya
biasanya karakter pertama dari baris perintah tersebut selalu perintah. Untuk lebih jelasnya
dapat dilihat dalam tabel berikut ini :

183
Command Syntax Keterangan

Define Macro Dxvalue Set makro x to value

Define Class Ccword1[word2]... Set class c to word1, word2,...

Define Class Fcfile Load class c from file

Set Option Oovalue set option o to value

Trusted Users Tuser1[user2...] Trusted users are user1 user2 ...

Set Precedence Pname=number Set name to precedence number

Define Mailers Mname,{field=value) Define mailer name

Define Header H[?mflag?]name:format Set header format

Set Ruleset Sn Start ruleset number n

Define Rule Rlbs rbs commnent Rewrite lbs patern to rbs format
Tabel 7.1:
Perintah-perintah dalam sendmail.cf

Perintah konfigurasi dan varibel tidak dibatasi dengan spasi, hal ini pula yang membuat
semakin sulit untuk dibaca. Mari kita lihat ilustrasi di gbr.5-2., dari ilustrasi kita lihat bahwa
perintah makro tersebut artinya masukkan nilai cnrg.itb.ac.id ke dalam makro D.

definisi perintah makro


nilai yang dimasukkan dalam makro

DDcnrg.itb.ac.id

nama makro yang didefinisikan

Gambar 7.2:
Ilustrasi perintah konfigurasi pada sendmail.cf

184
!

Perintah Mendefinisikan Macro


Perintah mendefinisikan makro (D) digunakan untuk mendefinisikan makro dan menyimpan
nilainya, dimana makro dan nilanya tersebut dapat digunakan oleh perintah lain di sendmail.
Namaan makro terdiri atas single karakter ASCII. Huruf kecil digunakan untuk nama
internal makro Sendmail itu sendiri. Sedankan huruf besar digunakan yang boleh kita
gunakan. Tidak berarti kita tidak boleh menggunakan huruf besar. Beberapa makro internal
sendmail ada yang harus kita definisikan dalam file sendmail.cf. Pada Tabel 7-2 adalah tabel
makro yang didefinisikan dalam file konfigurasi, tetapi hanya nilai yang di masukkan dalam
makro j yang biasanya di modifikasi.

Macro Value assign This macro Example

e SMTP entry message De$j Sendmail $v ready at $b

j site’s official domain name Dj$w.$d

l format of the UNIX from line DlFrom $g $d

n name used in error message DnMAILER-DAEMON

o set of operator in Address Do.:%\@!^=/

q default sender address format Dq$g$?x($x)$


Tabel. 7-2:
Makro sendmail yang dibutuhkan

Untuk mengambil nilai yang tersimpan dalam makro, perintahnya adalah $x, dimana x adalah
nama makro-nya. Sebagai contoh misalnya :
Dwcnrg
DDitb.ac.id
Dj$w.$D

Kode di atas mendefinisikan makro w, D, dan j. Setelah di exekusi, $w mengembalikan nilai


cnrg, $D mengembalikan nilai itb.ac.id, sedangkan nilai j mengembalikan nilai cnrg.itb.ac.id.,
dapat kita lihat dimana makro j berisi nilai dari w ($w), di tambah tanda titik, ditambah nilai
D ($D). Jika sebuah makro nilai-nya di isi dengan nilai yang merujuk ke makro lain, maka
nilainya adalah nilai dari makro yang di rujuk tersebut.

185
Dari contoh di atas D adalah makro yang kita definisikan, semantara j dan w adalah makro
yang mempunyai arti khusus dalam sendmail. Dalam tabel 7-3. kita dapat melihat daftar
makro internal sendmail, dimana kebanyakan tidak di set dalam sendmail.cf, tetapi di isi sendiri
oleh sendmail.
Nama Fungsi
a origination date in RFC 822 format
b current date in RFC 822 format
c hop count
d date in UNIX (ctime) format
e SMTP entry message
f sender “from” address
g sender address relative to the recipient
h recipient host
i queue id
j “official” domain name for this site
l foramt of the UNIX from line
n name of the daemon (for the error message)
o set of “operator “ in address
p sendmail’s pid
q default format of sender address
r protocol used
s sender’s host name
t numeric representation of the current time
u recipinet users
v version number of sendmail
w hostsname of this site
x full name of the sender
z home directory of the recipinet

Tabel 7-3
Daftar makro internal sendmail

Saat customizing file sendmail.cf anda, kadangkala di perlukan modifikasi beberapa definisi
makro, biasanya makro yang mendefinisikan informasi yang spesifik di tiap tempat misalnya
host name dan domain name.

Kondisi Bersyarat
Satu makro dalam Tabel 7-2 yaitu q, mempunyai ke istemewaan berbeda dengan yang lain
karena berisi conditional. Kita lihat sekarang :
186
!

Dq$g$?x ($x) $.

D adalah perintak makro. q makro yang akan di definisikan. dan $g nilai yang tersimpan
dalanm makro g. Bagaimana dengan $?x ($x)$. apa artinya ?. $?x adalah bentuk kondisional.
Untuk menguji nilai yang tersimpan dalam makro x apakah mempunyai nilai tertentu, jika ya
maka lakukan/isikan sesuatu itu . $ untuk mengakhiri konditional.

Kita lihat sekarang misalnya makro q di interpretasikan sebagai berikut : q adalah nilai yang
ada di makro g, dan jika x ada, atau nilai kosong, jadi jika g berisi rudi@cnrg.itb.ac.id dan x
berisi Rudi Nursasono maka q akan berisi :

rudi@cnrg.itb.ac.id Rudi Nursasono (ingat : Dq$g$?x ($x) $.)

Konditional dapat juga menggunakan bentuk “else, dengan tanda $|. Jadi systax dari
konditional selangkapnya adalah :
$?x text1 $| text2 $.
Di interpestasikan sebagai berikut :
jika ($?) x ada/benar;
gunakan text1;
else ($|) ; gunakan text2;
end if ($.)

Perintah pendefinisian Class


Dua perintah C dan F, mendefinisikan class dalam sendmail. Class adalah arrray berisi suatu
nilai. Class di gunakan untuk aneka nilai dimana di handle dengan cara yang sama, seperti
nama multiple untuk lokal host atau daftar host nama UUCP. Class memperbolehkan
sendmail untuk membandingkan melawan/bertentanngan,daripada melewan nilai tunggal.
Class menggunakan patern (pola) Symbol matches khusus antara lain $= untuk symbol
match semua nilai yang ada di class, dan $~ untuksumua nilai di luar class.

Seperti hal nya makro penamaam class menggunakan single karakter dan user-created class
menggunakan huruf besar. Nilai class bisa terdiri dari satu baris, beberapa baris, atau
mengambil(membaca) dari file. Misalnya, class V sering di dunakan untuk mendefinisikan
koneksi UUCP lokal, untuk memasukkan nilai bronson dan ora dapat dilakuka dalam satu baris
:
187
CVbronson ora

atau dalam bebrapa baris :


CVbronson
Cvora

Atau dengan membaca/mengambil dari nilai yang ada dalam file menggunakan perintah F .
Perintah F ini akan membaca file tersebut dan menyimpannya dalam suatu varibel Class.
Misalnya : kita akan mendefinisikan sebuah class w dan memasukkan nilai ke dalamnya
dengan sumua nilai yang ada dalam file /etc/sendmail.cw maka :
Fw/etc/seandmail.cw

Kita kadang perlu untuk memodifikasi bagian class dalam file sendmail.cf, biasanya
informasinya berkaitan dengan uucp, alias host name dan domain khusus untuk routing mail
. Jika anda system menggunakan koneksi uucp seperti TCP/IP anda harus memberi
perhatian khusus dalam mendefinsikan dan berhati-hatilah dalam implementasi ke
konfigurasui system anda.

Mari kita lihat contoh file konfigurasi sendmail.cf dengan barsis yang diawali dengan C atau F
(bagian.class) :
% grep ‘^[CF]’ tcpuucpproto.cf
Fw/usr/lib/sendmail.cw
CUYOUR_ALIASES_GO_HERE
CV YOUR
CV UCP
CV EIGHBOURS
CV GO
CV HERE
CIUUCP BITNET CSNET

Dari contoh grep di atas dapat kita lihat bahwa kita mendefinisikanclass w, U, V dan I. w
berisi hostname dan alias-nya dengan cara mengambil dari file. U berisi aliases UUCP hosts,
sedang V koneksi UUCp, dan I domain tiruan untuk routing mail. Dari contoh di atas kita
lihat nilainya belum di konfigurasi. Jika kita sudah meng-konfigurasi-kan, grep akan
menampilkan sebagai berikut :
CUlos
CVbronson
CVora
CVgenly
188
!

CVbabss
CVm10
CIUUCP BITNET

Perhatikan perintah F tidak ada lagi, system di atas di asumsikan tidak membaca host name
dari file /etc/sendmail.cw, hal tersebut mengambil host name yang benar dari dalam
sendmail. System mempunyai nama UUCP satu yaitu los. Sedangkan konensi system UUCP
adalah bronson, ora, genly, babss,dan m10. Mail domain tiruan (fake) dirubah untuk menghapus
CSNET. Sebaiknya orang (system administrator) yang melakukan (mengisi) class ini harus
mempunyai pengetahuan mengenai systemnya dan koneksi jaringan-nya. Ingat system anda
mengkin berbeda dengan contoh di atas, dan perhatikan variabel yang di gunakan apakah
sudah pernah dipakai, jadi berhati-hatilah mengisinya dan baca dengan baik-baik komentar,
petunjuk yang digunakan dalam file konfigurasi.

Perintah Set Option


Perintah set option (O) menentukan nilai option sendmail, yang merupakan internal option
set di dalam file sendmail.cf, tidak sama dengan argumen dalam perintah baris
(command-line) seperti dalam tabel.5-9. Perintah O di gunakan untuk men-set nilai yang
sesuai dengan instalasi anda. Nilai daro option ini dapat berupa string, boolean, atau intrval
waktu, sesuai dengan option tiap individual. Nilai yang di masukan ini akan di gunakan
secara langsung oleh sendmail. Disini tidak nilai yang dibuat oleh user (user-created).
Option-option yang ada sudah di definisikan dalam sendmail itu sendiri.. Option-option
yang ada itu dalam dilihat dalam Tabel.7-4 :

189
Nama Fungsi
Afile Define the name of the alias
aN Wait N minute for @:@; then rebuild the alias file
Bc Define the blank substituion character.
c Queue mail for the expensive mailers
D Rebulid in background mode
db Deliver in backgrouond mode
di Deliver interactively
dq deliver during the next queue run
ee Mail error message and always return 0 exit status
em Mail back error message
ep print error message
eq just return exit status, not error message
ew write back error messages
f Retain Unix-style “From” line
gn Set the default groups id for mailers to n
Hfile Define the nameof SMTP help file
I Use the BIND name server to resolve all host name
i Ignore dots in incoming messages
Ln Set the level of logging to n
Mxval Set macro x to val
m send to me, too
Nnet Define the name of the home networks
o Accept old format headers
Qdir Define the name of the queue directory
qn Define a factor n used to decide when to queue jobs
rt Set Interval t for read timeout
Sfile Define tha name of the statistics log file
s Always create the queue file before attempting delivery
Tt Set the queue timeout to t
un Set the default userid for mailers to n
v Run in verbose mode
Wpass Define password used for remote debugging
Xl Refuse SMTP connections if load average exceed l
xl Queue message if load average exceeds l
Y Deliver each queue job in a separate process
yn Lower priority of jobs by n for each recipient
Zn Decrease a job’s priority by n for each recipient
zn Factors used with precedence to determine message priority
Tabel 7-4
Sendmail options

190
!

Contoh option dalam file tcpuucpproto.cf dapat di lihat di bawah ini. Sebuah option
mendefinisikan file sendmail aliases yaitu /usr/lib/aliases. Anda dapat juga menetukan
file aliases sendmail di tempat lain dengan option ini. Option F mendefinisikan default mode
file sebagai 0600 untuk file temporary yang di hasilkan oleh sendmail di
/var/spool/mqueue. Option T di gunaka untuk menentukan interval timeout untuk mail
yang tidak bisa dikirim, di sini di set 3 hari (3d). Di bawah ini adalah contoh konfigurasi
option yang umum :
# location of alias file
OA/usr/lib/aliases
#temporary file mode
OF0600
#default timeout interval
OT3d

Kebanyakan bagian option ini tidak perlu dimodifikasi karena umumnya file configurasi
contoh yang di bawa oleh system sudah benar.

Mendefinisikan Trusted Users


Perintah T di gunakan untuk mendefinsikan daftar user yang mempunyai hak untuk
menimpa (override) address pengirim menggunakan flag mailer -f (tabel flag mailer dapat di
lihat di Tabel.7-5). Normalnya user yang mempunyai hak adalah root, uucp, daemon.
Berhati-hatilah menambahkan user selain yang di sebutkan sebelumnya, karena user tersebut
dapat mengisi dengan nama pengirim yang salah, dan jika di tangan user yang tidak baik
dapat menyebabkan masalah keamanan atau membuat mau organisasi anda. User yang di
beri hak dapat di tuliskandalam satu baris atau lebih, dan user yang di maksudkan harus
sesuai dengan yang tercantum dalam file /etc/passwd. Di bawah ini adalah contoh umum
yang sering di pakai, dan biasanya tidak perlu di modifikasi.
Troot
Tdaemon
Tuucp

Mendefinsikan Mail Precedence

191
Precedence adalah salah satu faktor yang di gunakan oleh sendmail untuk menentukan
prioritas pemasukan pesan ke Queue. Perintah P digunakan untuk mendefinisikan nilai
precedence ke user sendmail. Bilangan precedence yang besar, maka precedence message-nya juga
besar. Nilai default dari nilai precedence adalah 0. Jika nilai precedence-nya negatif berarti
mengidikasikan mail tersebut mempunyai prioritas yang rendah. Error message tidak akan di
kirimkan jika mail mempunyai precedence negatif, biasanya precedence ini di pakai untuk
pengiriman mail banyak (mass mailings). Nilai dari precedence yang umum umumnya seperti
berikut ini :
Pfirst-class=0
Pspecial-delivery=100
Pbulk=-60
Pjunk=-100

Untuk menentukan precedence yang di inginkan, user dapat menambahkan Precedence header di
dalam pesannya (mail), dengan menambahkan nama sesuai denga yang di definsikan di atas.
misalnya user ingin mengirim mail ke banyak tempat dan mengabaikan error message yang
mungkin terjadi dengan nilai precedence-nya -60 berati kita memasukkan dalam header mail kita
Precedence: bulk

Empat cntoh nilai precedence di atas bisa kita ganti sesuai dengan keinginan/keperluan yang
kita inginkan .

Mendefinisikan Mail Headers


Perintah H di gunaka untuk mendefinisikan format dari baris header untuk di sisipkan dalam
pesan (mail) kita. Format dari perintah header ini adalah perintah H, dengan optional flag
headernya di antara tanda tanya, nama header, colon, dan header template. Header template
terdiri dari kombinasi literal dan makro yang di masukan dalam baris header. Makro dalam
header template di lebarkan sebelum header di sisipkan dalam pesan (mail).

Fungsi dari header flag adalah mengendalikan apakah header akan di sisipkan atau tidak ke
dalam pesan untuk mailer yang khusus. Jika flag tidak di cantumkan berarti header digunakan
untuk semua jenis mailer, sebaliknya jika di cantumkan berarti header akan di sisipkan jika
mailer mempunyai flag yang sama dengan flag yang telah di definisi mailer. (mailer flag dapat
dilihat di Tabel.7-6). Header flag hanya mengontrol penyisipan, jika header telah di terima

192
!

oleh inputnya maka akan di lewatkan ke output tanpa melihat header flagnya. Contoh definsi
header dapat di lihat di bawah ini :
H?P?Return-Path: <$g>
Hrecieved: $?sfrom $s $.by $j ($v/$Z)
H?D?Recent-date: $a
H?D?Date: $a
H?F?Resent-From: $q
H?F?From: $q
H?x?Full-name: $x
Hsubject:
H?M?Resent-Message-Id: <$t.$i@$j>
H?M?Message-Id: <$t.$i@$j>

Definsi header di atas umumnya cukup untuk kebanyakan system, jadi tidak begitu perlu
untuk di modifikasi .

Mendefinisikan mailer
Perintah M di mendefinisikan untuk program pengiriman mail yang akan digunakan oleh
sendmail. Syntak dari perintah terebut adalah :
Mname, {field=value}

Name adalah nama sembarang yang di gunakan di internal-nya sendmail yang merujuk ke
mailer tersebut. Nama tidak menjadi masalah selama konsisten dengan nama yang ada di file
sendmail.cf yang merujuk ke mailer tersebut. Sebagai contoh : mailer menggunakan
SMTP sebagai pengirim mailnya dengan nama lokal domainnya misalnya tcpld di satu system,
dan dengan nama ether di system lain. Fungsi kedua system mailer itu sama, hanya namanya
yang berbeda.

Ada dua perkecualian yaitu, mailer yang mengirimkan mail ke lokal user (dalam satu mesin)
harus di sebut dengan local dan mailer yang mengirimkan ke program harus disebut prog.
Nama mailer diikuti dengan koma, sebagai pemisah dengan list dari sepasang
field=value yang mendefinisikan karakteristik dari mailer. Table.7-5. menunjukan
identifier single karakter dan isi field value yang saling berkaitan. Kebanyakan mail tidak
memerlukan semua field tersebut.

193
Field Maksud Isi Contoh
P Path Path of the mailers P=/bin/mail
F Flags sendmail flags for this mailers F=lsDFMe
S Sender Ruleset for senders addresses S=10
R Recipient Ruleset for recipient addresses R=20
A Argv The mailer’s argument vector A=sh -c $u
E Eol End-of-line string for the mailers E=\r\n
M Maxsize Maximum message length M=1000000
Tabel 7-5:
Definisi field mailers

Field P berisi lokasi /path dari file program pengirim mail-nya atau string literal [IPC] yang
mendukung dalam komunikasi antar proses. Definisi mailer yang men-spesifikasikan
P=[IPC] menggunakan sendmail untuk mengirim mail melalui SMTP. Path/lokasi dari
program pengirim mail berbeda dari satu system dengan system yang lain. tergantung dimana
file program itu tersimpan. Pastikan dimana letak/path dari program tersebut sebelum
memodifikasi field path ini.

Fielf Flag (F) berisi flag sendmail yang digunakan yang digunakan mailer tersebut, mailer
flag ini berhubungan/merujuk ke bagian mail header di atas, tetapi flag tidak hanya
mengkontrol penyisipan header. Flag dan fungsinya dapat di lihat pada Tabel.7-6.

194
!

Nama Fungsi
C Add @domain to address that do not have an @
D The mailer wants a Date: header line
E Add > to message lines that begin with From:.
e This an expensive mailer. See Sendmail options c
F The mailer wants a From: header line
f The mailer accepts a -f flag from trusted users
h Preserve uppercase in hosts names
I The mailers will be speaking SMTP to another sendmail
L Limit the line lengths as specified in FRC821
l This is a local mailer
M The mailers wants a Message-Id: header line
m The mailer can send to multiple users in one trasaction
n Don’t insert a UNIX-style From: line in the message
P The mailer wants a Return-Path:line
R Use the MAIL FROM: return-path rather than the return address
r The mailer accepts a -r flag trusted users
S Don’t reset the userid before calling the mailer
s Strip quotes off of the address before calling the mailer
U The mailer wants Unix-style From:lines
u Preserve uppercase in user names
X Prepend a dot to lines beginning with a dot
x The mailer want a Full-Name: header line

Tabel. 7-6:
Sendmail mailer Flags.

Field Sender (S) dan Recipent mengidentifikasikan ruleset yang digunakan untuk rewrite
alamat pengirim dan penerima untuk mailer ini. Setiap ruleset di identifikasikan dengan
nomer.

Field Arg (A) mendefinisikan vektor argumen yang di lewatkan ke mailer, berisi sekitar,
perluasan makro yang memberikan nama user penerima/recipient ($u), nama hosts
penerima.recipient ($h), dan alamat dari pengirim ($f). Makri ini diperluas sebelum vektor
argumen-nya di lewatkan ke mailer.

Dua field terakhir berfungsi sebagai definisi karakter yang akan di pakai sebagai tanda end-
of-line field (E), dengan defaultnya baris baru. Maxsize (M) mendefinisikan panjang
maximum pesan (mail) yang akan di tangani oleh mailer. Dua field ini sering diubah-ubah.
195
Contoh definisi Mailer yang umum :

Contoh definsi mailer di bawah ini diambil dari tcpuucpproto.cf :


Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u
Mprogl, P=/bin/sh, F=rlsDFMe, S=10, R=20, A=sh -c $u
Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n
Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n
Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000,
A=uux - r -z -a$f -gC $h!rmail ($u)

Keterangan :
• Definisi pengiriman mail lokal, selalu di namakan local. Definisi ini di perlukan
oleh sendmail.
• Definisi untuk pengiriman mail ke program, selalu dinamakan prog, Definisi ini
diperlukan oleh sendmail.
• Definisi untuk mail TCP/IP ke lokal domain, dalam hal ini dinamakan tcpld
• Definisi untuk mail TCP/IP ke Internet, dalam hal ini dinamakan tcp
• Definisi untuk mail UUCP, dalam hal ini dinamakan uucp

Field di bawah ini digunakan untuk mailer dengan uucp :

Muucp Mailer, didefinisikan dengan nama sembarang uucp.

P=/usr/bin/uux Path dari program yang digunakan mailer tersebut.

F=DFMhuU Arti dari Flag mailer ini adalah : memerlukan, Date (tanggal),
From (dari), dan Message-Id; hindarkan huruf besar untuk nama
host, user; baris “From” menggunaan UNIX-style. (lihat tabel 7-5).

S=13 Semua address Sender(pengirim) diproses menggunakan ruleset


13.

R=23 Semua address Recipient (penerima) diproses menggunakan ruleset


23.

M=100000 Mailer tidak akan memproses mail yang besarnya lebih dari 100.000
byte.

196
!

A=uux - -r -z -a$f -gC $h!mail ($u)

Arti dari setiap option dari vektor argumen di atas aslinya di


definisikan di manual (man page) untuk uux. Makro menambahkan
address dari pengirim ($f), recipient host ($h), dimana perintah
rmail di eksekusi, dan user recipient ($u). Setelah itu makro di
tambahkan baru di lewatkan ke /usr/bin/uux

Anda tidak perlu kuatir untuk memodifikasi definisi mailer jika anda menjalankan sendmail-
nya dengan TCP/IP, karena contoh yang di bawa oleh system anda biasanya sudah benar,
anda perlu memodifikasi-nya jika menjalankan-nya diluar itu.

Rewriting mail address


Rewrite rule merupakan jantung dari file sendmail.cf. Ruleset adalah kumpulan dari
individual rewrite rule untuk parsing address e-mail dari program mail user dan melakukan
rewrite (penulisan ulang) ke bentuk yang diperlukan/dikenal oleh program pengirimnya.
Setiap rewrite rule di definisikan dengan perintah R. Syntax dari perintah R sebagai berikut :
Rpatern transformation comment

Field dalam perintah R di batasi/dipisahkan oleh karakter tab. Field comment ini akan di
abaikan oleh system tetapi sangat vital jika anda ingin lebih mengerti apa yang sedang terjadi.
Field patern dan tranformation jantung dari perintah ini.

Patern Matching (pencocokan pola)


Rewrite rule mencocokan input dari address dengan patern(pola),jika di temukan kecocokan,
dilakukan penulisan ulang (rewrite) address dengan format baru menggunakan rule yang di
definisikan di transformation. Sebuah rule bisa memproses address yang sama
sampai beberapa kali, karena setelah di rewrite di bandingkan lagi patern-nya. Jika masih
cocok/match, di lakukan rewrite lagi sampai paternnya tidak cocok lagi. Patern di definisikan
menggunakan makro, classes, literal, dan metasymbol khusus. Makro, classes, dan literal
memberikan nilai yang kemudian di bandingkan dengan inputnya dan metasymbols men-
define rules untuk digunakan sebagai matching patern. Tabel.7-7 memperlihatkan
metasymbol untuk patern matching.
197
Symbol Meaning

$* Match zero or more tokens

$+ Match one or more tokens

$- Match exactly one token

$=x Match any token in class x

$~x Match any token not in class x

$x Match all token in macro x

$%x Match any token in NIS map named in macro x

$!x Match any token not in NIS map named in macro x

$%y Match any token in the NIS hosts.byname map

Tabel. 7-7:
Pattern matching symbols

Semua permintaan metasymbol match untuk sejumlah token. Token adalah string dari suatu
karakter di mail address di potong /dibatasi oleh operator. Operator adalah karakter yang di
definisikan sebagai makro o. Operator juga di hitung sebagai token saat address di parsing.
Misal :
becky@peanut.nuts.com

Address e-mail ini berisi 7 token : becky, @, peanut, ., nuts, ., dan com. Address ini akan
match/cocok dengan patern :
$-@$+

Address di atas cocok dengan patern ini karena :


• Hanya satu token sebelum @ yang match dengan symbol patern $-.
• Mempunyai @ yang match dengan @
• Mempunyai satu atau lebih token setelah @ yang match dengan sysmbol $+
198
!

Beberapa address: hostmaster@nic.dd.mil, chunt@nist.gov cocok/match dengan patern ini,


tetapi tidak dengan address lain seperti hunt%nbsenh@almond.nuts.com. Address ini tidak match
karena mempunyai tiga token: hunt, %.dan nbsenh, sebelum @. Jadi akan timbul ketidak
cocokan dengan datu token yang di symbolkan dengan symbol $- . Menggunakan tiga
symbol dan literal, patern dapat di bangun ke setiap type address e-mail.

Jika sebuah address match dengan patern, string dari address yang match metasymbols di
masukan ke indefinite tokens . String yang match di sebut dengan indefinite token karena
meraka bisa saja berisi lebih dari nilai satu token. Indefinite token di identifikasikan sebagai
bilangan sesuai dengan posisi relatif-nya terhadap patern dari metasymbol yang stringnya
match. Dengan kata lain, indefinite token menghasilkan match dengan metasymbol pertama
yaitu $1; match ke dua di sebut $2 dan ke tiga di sebut $3,..dan seterusnya. Misal : saat
address becky@peanuts.nuts.com match dengan patern $-@$+, menghasilkan dua indefinite
token. Yang pertama di identifikasikan sebagai $1 dan berisi sigle token becky yang match
dengan symbol $-. Sedang indefinite kedua adalah $2 dan berisi 5 token : peanuts, .,
nuts,.,dan com yang match dengan symbol $+. Indefinte token dibuat dengan patern
matching kemudian dapat di referensikan dengan nama ($1,$2,dll) daat rewriting address.

Transformasi address
Field transformasi dari sebelah kanandari rewrite rule, di definisilan sebagai format yang di
gunakan untuk rewriting rule, dengan hal yang sama untuk define patern : literal, makro,
spesial metasymbol. Literal dalam transformasinya di tuliskan ke dalam address yang benar-
benar bentuk baru. Makro di perluas dan kemudian di tuliskan. Metasymbol menjalankan
fungsi khusus seperti dalam Tabel.7-8.

Symbol Maksud

$n Substitute indefinite token n

$[names$] Substitute canonical name

$>n Call ruleset n

199
$@ Terminate ruleset

$: Terminate rewrite rule

Tabel 7-8:
Transformation Metasymbols

Symbol $n, dimana n adalah nomer yang digunakan untuk substitusi indefinite token.
Indefinite token di perluas/dibuka dan dituliskan sebagai address “baru”. Kita lihat sekarang
bagaimana indefinite token di gunakan. Address selalu di proses dengan beberapa rewrite
rules. Tidak ada satupun rule yang melakukan proses seluruhnya. Di asumsikan input address
adalah hunt@nbsenh.bitnet akan melewati beberapa preliminary proses dan sekarang adalah:
hunt<@nbsenh.bitnet>

Asumsikan rewrite rule-nya sekarang adalah :


R$+<$+.bitnet> $1%$2<@$B> use the Bitnet relay

Address match denga patern karena berisi satu atau lebih token sebelum literal <@,satu atau
lebih setelah <@, dan literal string .bitnet. Patern match menghasilkan dua indefinite token
yang di gunaka dalam transformasi untuk rewrite address.

Transformasi berisi indefinite token $1, sebuah literal %, indefinite token $2, sebuah literal
<@, makro B, dan literal >. Setelah patern matching, $1 berisi hunt dan $2 berisi nbsenh.
Asumsikan makro B sudah di definisikan di suatu tempat di file sendmail.cf sebagai
cunyvm.cuny.edu, suatu Bitnet relay host umum. Dalam kasus ini input address di tuliskan
kembali (rewriten ) sebagai :
hunt&nbsenh.<@cunyvm.cuny.edi>

Gambar. 7-3 mengilustrasikan rewrite address khusus. Terlihat token di turunkan dari input
address, dan bagaimana token di bandingkan lagi dengan patern. Juga terlihat indefinite
token di hasilkan oleh patern matching, dan bagiamana indefinite token, dan nilai lain dari
transformasi, yang di gunakan untuk menghasilkan rewrite address.

200
!

Address tokens hunt < @ nbsenh . bitnet >

pattern $+ < @ $+ . bitnet >

undefinite tokens hunt nbsenh

Transformasi $1 % $2 < @ $B >

rewriten address hunt % nbsenh < @ cunyvm.cuny.edu >


Gambar.7-3
Rewriting Address.

Setelah rewriting, address di bandingkan lagi dengan patern, Pada saat ini matching-nya gagal
karena tidak lagi berisi literal string.bitnet>. Lalu, tidak lama kemudian proses dengan
melakukan rewrite rule dan address di lewatkan/passed ke baris rule selanjutnya. Dari contoh
terlihat substitusi indefinite token adalah esesial untuk rewriting address yang fleksibel, tanpa
itu tidak mudah untuk memindahkan dari input address ke rewriten address.

Symbol $[name$] merubah hosts nickname atau IP address ke canonycal name dengan
melewatkan nilai name-nya ke name server untuk resolusi. Contoh, menggunakan name server
nuts.com, $[mil-gw$] mengembalikan almond.nuts,com dan $[[128.66.`1.2]$] mengembalikan
peanut.nuts.com.

Symbol $>n memanggil ruleset n dan melewatkan address yang di difinisikan oleh remainder
of transformation ke ruleset n untuk prosesing. Contoh :
$>9$1%$2

Transformasi di atas memanggil rule set 9 ($>9), dan melewatkan/mengumpankan isi $1,
literal % dan isi dari $2 ke ruleset 9 untuk memprosesnya. Saat ruleset 9 selesai di
eksekusi/dijalankan, menngembalikan rewriten address ke rule pemanggilan. Address e-mail
kembalian ini di bandingkan lagi ke patern ke dalam calling rule. Jika masih match, ruleset 9
di panggail lagi, rekursi sudah ada di dalam rewrite rule dan ada kemungkinan loop tak
201
hingga. Untuk itu disediakan paling tidak dua metasymbol untuk mencegah loop tak hingga
ini. (lihat Tabel.7-8).

Symbol $@ dan $: digunakan untuk mengkontrol proses. Jika transformasi dimulai dengan
symbol $2, seluruh ruleset di hentikan dan sisa transformasi adalah nilai yang dikembalikan
oleh ruleset. Jika transformasi di mulai dengan symbol $:, individual rule di eksekusi hanya
sekali. Gunakan Symbol $: untuk mencegah rekursif dan mencegah loop saat memanggil
ruleset lain.

Ada syntax rewrite rule khusus yang hanya di gunakan di ruleset 0. Ruleset 0 di definisikan
sebagai triple (mailer, hosts, user) yang spesifik untuk program pengiriman mail, recipient
hosts, dan recipient user. Syntax transformasi yang digunakan sebagai berikut :
$#mailer$@host$:user

contoh di bawah ini di ambil dari file tcpuucpproto,cf :


# resolve SMTP traffic
R$*<@$+>$* $#tcpld@$2$:$1<@$2>$3 user@host.domain

Misalnya kita asumsikan address e-mailnya david<@filbert.nuts.com> di proses dengan rule


ini, Address match dengan Patern R$*<@$+>$* karena :
• Address mempunyai nol atau lebih token (token david) yang match dengan symbol
pertama ($*)
• Address mempunyai literal <@
• Address mempunyai satu atau lebih token (5 token filbert.nuts.com) yang match
dengan yang di perlukan symbol $+.
• Address mempunyai literal >
• Address mempunyai nol atau lebih, dalam kasus nol ini, token yang match memenuhi
symbol terakhir $*.

Patern yang match ini menghasilkan dua indefinite token. Indefinite token $1 berisi david
dan $2 berisi filbert.nuts.com. Tidak ada matching yang terjadi, jadi $3 null. Indefinite token
ini di gunakan untuk rewrite address ke dalam triple :
$#tcpld$filbert.nuts.com$:david<$filbert.nuts.com>

Komponen dari triple adalah :

202
!

$#tcpld tcpld adalan nama internal dari mailer yang mengirimkan


message/mail.

$filbert.nuts.com filbert.nuts.com adalah recipient host.

$:david<$filbert.nuts.com> david<$filbert.nuts.com> adalah user


recipient-nya

Disini adalah satu variasi khusus dari syntax ini, yang hanya digunakan di ruleset 0, yang
meneruskan error message ke user.:
$#error$:message

message adalah text daro error message yang di kembalikan ke user, contoh :
R@ $#error$Invalid address

Rule ini mengembalikan message “invalid address” jika address tidak match dengan patern.

Set perintah di Ruleset


Ruleset adalah group yang berkaitan dengan rewrite rule yang di hubungkan dengan
bilangan/nomer. Perintah S memberi tanda awal dari ruleset da nmengedintifikasi rulesetnya
dengan nomer. Pada syntax perintah Sn, n adalah nomer yang mengidentifikasikan ruleset.
Umumnya, nomer yang digunakan berkisar antara 0 sampai 29.

Ruleset dapat berbentuk seperti subroutine, atau fungsi, yang didesain untuk memproses e-
mail address, yang dipanggil dari definisi mailer, dari individual rewrite rule, atau langsung di
panggil dari sendmail . Empat rule set mempunyai fungsi khusus dan di panggil langsung
dari sendmail yaitu :

Ruleset 3, ruleset paling besar dan komplek, ruleset pertama di digunakan pada addresses,
yang mengubah address ke bentuk canonical :
local-part@host.domain

Dalam kondisi khusus bagian @hosts.domain di tambahan oleh sendmail

setelah ruleset 3 berhenti. Kejadian ini hanya terjadi jika mail telah diterima dari mailer
dengan Flag di set ke C. Dalam contoh kita lihat hanya SMTP mailer yang menggunakan

203
flag ini. Jika flag ini di set ke C maka pengirim di tambahkan @host.domain ke seluruh
address di dalam mail yang hanya mempunya local-part

Proses ini dilakukan setelah ruleset 3 dan sebelum ruleset 1 dan 2. (dalam Gambar 5-4
diperlihatkan dengan kotak yang di beri tanda D.

Ruleset 0 di aplikasikan ke addresses digunakan untuk mengirimkan mail. Ruleset 0 di


lakukan setelah ruleset 3 dan hanya untuk recipient address sebenarnya digunakan untuk
pengiriman mail, Resolve address ke triple (mailer, host, user) tersusun/terdiri dari nama mailer
yang mengirimkan mail, recipient host name, dan recipient user nama.
• Ruleset 1 di aplikasikan ke seluruh address pengirim di dalam message.
• Ruleset 2 di aplikasikan ke seluruh address penerima di dalam message
• Ruleset 4 di aplikasikan ke seluruh address di dalam message dan digunakan untuk
translate internal format address ke dalam format external mail.

Gambar.7-4. menunjukan aliran dari message dan address melalui ruleset tersebut. Kotak

delivery
address
0 The (mailer, host, user) triple

sender
address 1 S
all all
addresses 3 D 4 addresses
recipient
address 2 R

D Sender domain information added

S Mailer-specific sender rewriting

R Mailer-specific recipient rewriting

Gambar 7-4:
Urutan Ruleset

D bukan menunjukan symbolik ruleset, ini adalah proses internal sendmail . Symbol S dan
R di gunakan untuk menempatkan ruleset. Meraka mempunyai nama numerik seperti halnya

204
!

semua ruleset normal, tetapi bukan tetap/fixed seperti dalam kasus ruleset 1, 2, 3, dan 4.
Nomer Ruleset S dan R di identifikasikan oleh field S dan R di bagian definsi mailer. setiap
mailer bisa mengkhusukan diri terhadap ruleset S dan R sendiri untuk membersihkan
spesifikasi-mailer dari pengirim dam penerima address sebelum message di kirimkan.

Modifikasi sendmail.cf
Modifile sendmail.cf terdiri dari satu baris yang mendefinisikan class w. Perintah ini membaca
nickname dari host dari file /usr/lib/sendmail.cw dan meletakkannnya pada pada class
w. Pada kebanyakan system sendmail mampu mendefinisikan dengan benar harga class w
secara internal. Class w hanya didefinisikan jika system dikenali dengan lebih dari satu
hostname.

205
Modifikasi General Macro
Bagian kedua dari file sendmail.cf berisi site-specific value. File sampel berisi baris-baris berikut
ini yang juga merupakan instruksi apa yang harus kita letakkan pada masing-masing baris.
#local domain name
DDYOUR_LOCAL_DOMAIN_GOES_HERE
# UUCP relay host
DRYOUR_UUCP_RELAY_GOES_HERE
# csnet relay host
DCYOUR_CSNET_RELAY_GOES_HERE
# bitnet relay host
DBYOUR_BITNET_RELAY_GOES_HERE
# my official hostname
Dj$w

Kita akan memodifikasi baris-baris ini untuk domain itb.ac.id. untuk macro D, UUCP relay
uunet.uu.net untuk macro R, Bitnet relay cunyum.cuny.edu untuk macro B. Karena CSNET
tidak ada lagi kita akan meng-comment-out baris macro C.
#local domain name
DDitb.ac.id
# UUCP relay host
DRuunet.uu.net
# csnet relay host
# DCYOUR_CSNET_RELAY_GOES_HERE
# bitnet relay host
DBcunyum.cuny.edu
# my official hostname
Dj$w

Macro j tidak perlu dimodifikasi karena macro w telah menginisialisasinya. Jika kita
menggunakan DNS maka macro w akan berisi fully qualified domain name. Jika w tidak
berisi fully qualified domain name, maka macro j harus diinisialisasi dengan Dj$w.$D.

206
!

Modifikasi Classes
Bagian berikutnya mendefinisikan class I. Pada contoh kita, class I memuat nama-nama
beberapa domain routing mail khusus. Domain ini memungkinkan pengguna yang tidak
berada di Internet dapat menerima mail dengan alamat yang bergaya Internet. Contohnya
mail yang ditujukan kepada serorang yang berada di Bitnet oleh seorang di Internet biasanya
menggunakan format user%bitnet-host@bitnet-relay. Address ini dikenal sebagai “% kudge”.
Dengan menggunakan Bitnet Domain palsu, mail dapat ditujukan ke user@bitnet-
host.BITNET. sendmail mengubah Bitnet Domain palsu dan me-rewrite ke dalam bentuk
yang benar, menggunakan % kuldge dan relay host yang didefinisikan di macro B.

Domain palsu juga digunakan untuk mengirim mail ke UUCP mail. Mail dapat dikirim
dengan sintaks UUCP normal, misalnya ora!los!craig. Atau dapat juga dikirim dengan
pseudeo format misalnya craig@los.ora.uucp.

Class I pada file tcpproto.cf tidak perlu modifikasi, kecuali karena tidak adanya CSNET, kita
harus edit class I dengan mendelete entry CSNET. Baris asli adalah sebagai berikut
CIUUCP BITNET CSNET

diubah menjadi:
CIUUCP BITNET

Modifikasi Version Number


Version Number tidak perlu dimodifikasi, tapi sebaiknya diganti setiap kali kita mengupdate
file sendmail.cf.

Modifikasi Option
Bagian Option mendefinisikan semua option pada sendmail. Beberapa option
mendefinisikan path dari file yang berhubungan dengan sendmail. Pada tcpproto.cf path
tersebut berada pada baris-baris dibawah ini:
# location of aliases file
OA/usr/lib/aliases
#location of help file

207
OH/usr/lib/sendmail.hf
# queue directory
OQ/usr/spool/mqueue
# status file
OS/usr/lib/sendmail.st

Option t yang mendefinisikan time zone harus kita sesuaikan dengan tempat kita masing-
masing. Misalnya untuk WIB, kita edit file sendmail.cf sehingga menjadi:
OtWIB

Option W digunakan untuk menyimpan “wizard password” yang memungkinkan kita


melakukan debug access ke sendmail, jika sendmail di-compile dengan option debug.
sendmail debug accecss merupakan problem yang dapat dieksplot\itasi oleh intruder. Untuk
mengetahui apakan sendmail dapat menerima debug access atau tidak dapat dilakukan
dengan perintah sebagai berikut:
% telnet localhost 25
Trying 127.0.0.1
Connected to localhost
Escape character is ‘^]’
220 maingtw.paume.itb.ac.id Sendmail 4.1/1.36 ready at Mon, 15 Jun
95 09:30:31 WIB
debug
500 Command unrecognized
quit
221 maingtw.paume.itb.ac.id closing connection
Connection closed by foreign host.

Pesan error di atas menyatakan bahwa debug access tidak diizinkan. Pada contoh kita option
W kita hapus karena kita tidak mnegizinkan remote debug access.

Modifikasi Rewrite Rules


Bagian berikutnya dari sendmail.cf mendefinisikan messages’ precedence, trusted user, dan
header. Tidak ada yang perlu modifikasi.

Bagian selanjutnya adalah rewrite rules dan mailer. Bagian ini merupakan inti dari sendmail.
Karena bagian ini didesian untuk dapat mengirim mail ke Internet, kita tidak perlu
memodifikasinya.

208
!

Yang perlu kita modifikasi adalah bagian yang mengandung CSNET, karena CSNET sudah
tidak ada lagi. Kemudian bagian yang mengandung .arpa karena domain itu sudah tdak
digunakan lagi.

Menguji sendmail.cf
sendmail memiliki beberapa tool yang dapat kita gunakan untuk menguji dan menkonfigurasi
serta debugging. Tool ini dapat kita panggil dari command line, yang dapat dilihat pada tabel
berikut ini.

Contoh berikut ini adalah tes sendmail dengan file test.cf


maingtw% /usr/lib/sendmail -Ctest.cf -t -v
To: hunt@nbsenh.bitnet
From: daniel
Subject: Test

Halo Hunt,
tes pake sendmail.
^D
hunt@nbsenh.bitnet... Connecting to cunyum.cuny.edu (tcp)...
Trying 128.228.1.2...connected
220 cunyum.cuny.edu on Wed, 27 Oct 94 12:23:09 EST
>>> HELO maingtw.paume.itb.ac.id
250 cunyum.cuny.edu is my domain name.
>>> MAIL From:<daniel@maingtw.paume.itb.ac.id>
250 Sender OK - send RCPTs.
>>> RCPT To:<hunt%nbsenh.BITNET@cunyum.cuny.edu>
250 Recipient OK - send RCPT or DATA.
>>> DATA
354 OK, send data, end with CRLF.CRLF
>>> .
250 Data received OK.
>>> QUIT
221 cunyum.cuny.edu closing connection
hunt@nbsenh.bitnet... Sent

209
Argument Fungsi

-f addr address pengirim adalah addr

-r addr bentuk lama dari -f

-h cnt drop mail jika diforward cnt kali

-F name set full username dengan name

-n tidak melakukan aliasing atau forwarding

-t kirim ke semua orang yang terdaftar di To: Cc: dan Bcc:

-bm deliver mail (default)

-ba jalan di mode arpanet2

-bs menggunakan SMTP pada sisi input

-bd jalan sebagai daemon

-bt jalan di mode test

-bv verivy address; tidak mengumpulkan atau mengirim mail

-bi menginisialisasi alias database

-bp print mail queue

-bz freeze konfigurasi

-q[time] memproses queued mail

-C file menggunakan file sebagai file konfigurasi

-d level set debugging level

-o xvalue set option x dengan harga tertentu (xvalue)

-e definisi bagaimana error dikembalikan

-i ignore dots pada mail yang masuk

2
Baca header From: untuk menemukan pengirim. Menggunakan tiga digit reply code, dan
mengakhiri baris error dengan <CRLF>
210
!

-m send to me too

-v jalan di verbose mode

-s addr bentuk alternatif dari -f

Kita ketik semua sebelum ^D. Setelah ^D akan muncul pesan-pesan seperti di atas yang
dikeluarkan oleh sendmail. Gambar di bawah ini menjelaskan apa-apa yang penting dan
memperlihatkan macro sendmail yang berhubungan dengan yang dijelaskan.

maingtw% /usr/lib/sendmail -Ctest.cf -t -v


To: hunt@nbsenh.bitnet
From: daniel
Subject: Test host penerima
(machro h)
Halo Hunt, mailer
tes pake sendmail.
^D
hunt@nbsenh.bitnet... Connecting to cunyum.cuny.edu (tcp)...
Trying 128.228.1.2...connected
220 cunyum.cuny.edu on Wed, 27 Oct 94 12:23:09 EST
>>> HELO maingtw.paume.itb.ac.id local hostname
250 cunyum.cuny.edu is my domain name. (macro w)
>>> MAIL From:<daniel@maingtw.paume.itb.ac.id>
250 Sender OK - send RCPTs. rewritten sender “ from”
>>> RCPT To:<hunt%nbsenh.BITNET@cunyum.cuny.edu> address (macro f)
250 Recipient OK - send RCPT or DATA.
>>> DATA rewritten recipient
354 OK, send data, end with CRLF.CRLF address (macro u)
>>> .
250 Data received OK.
>>> QUIT
221 cunyum.cuny.edu closing connection
hunt@nbsenh.bitnet... Sent

211
Menguji Rewrite Rules
Problem pada masalah pengalamatan disebabkan oleh rewrite rules. Dengan menggunakan
sendmail -bt kita dapat menguji rewrite rules, seperti di bawah ini.
maingtw # sendmail -bt
ADDRESS TEST MODE
Enter <ruleset> <address>
> 0 hunt@nbsenh.bitnet
rewrite: ruleset 3 input: “hunt” @ “nbsenh” “.” “bitnet”
rewrite: ruleset 8 input: “hunt” @ “nbsenh” “.” “bitnet”
rewrite: ruleset 8 returns: “hunt” @ “nbsenh” “.” “bitnet”
.
.
.
rewrite: ruleset 6 input: “hunt” “<“ “@” “nbsenh” “.” “bitnet” “>“
rewrite: ruleset 6 returns: “hunt” “<“ “@” “nbsenh” “.” “bitnet”
“>“
rewrite: ruleset 0 returns: $# “tcp” $@ “cunyum” “.” “cuny” “.”
“edu” $: “hunt” “<“ “@” “nbsenh” “.” “BITNET” “>“

> 1,14,4 daniel


rewrite: ruleset 3 input: “daniel”
rewrite: ruleset 8 input: “daniel”
rewrite: ruleset 8 returns: “daniel”
rewrite: ruleset 3 returns: “daniel”
rewrite: ruleset 1 input: “daniel”
rewrite: ruleset 1 returns: “daniel”
rewrite: ruleset 14 input: “daniel”
rewrite: ruleset 14 returns: “daniel” “%” “maingtw” “.” “paume” “.”
“itb” “.” “ac” “.” “id” “<“ “@” “>“
rewrite: ruleset 4 input: “daniel” “%” “maingtw” “.” “paume” “.”
“itb” “.” “ac” “.” “id” “<“ “@” “>“
rewrite: ruleset 4 returns: “daniel” “%” “maingtw” “.” “paume” “.”
“itb” “.” “ac” “.” “id” “@”
>^D

212
!

Jika dijalankan dengan option -bt, sendmail akan memunculkan prompt >. Pada prompt itu
kita dapat memasukkan ruleset number dan e-mail address. Address merupakan test data,
dan ruleset number merupakan ruleset yang akan ditest.

Ruleset 3 merupakan ruleset pertama yang dikenakan pada address, dan pada mode address
test diasumsikan merupakan yang pertama kali dikenakan pada address.

Untuk melihat mailer yang digunakan pada sendmail, gunakan ruleset 0 pada address
penerima. Pada contoh di atas, address penerima adalah hunt@nbsenh.bitnet. Jadi kita
masukkan 0 hunt@nbsenh.bitnet pada prompt. Field pertama dari harga yang dikeluarkan
oleh ruleset 0 adalah nama mailer. Ini memberitahu kita bahwa mailer yang digunakan adalah
tcp mailer. Setelah mengetahui mailer yang digunakan kita dapat menetukan ruleset yang
dipanggil untuk memproses alamat pengirim “From:”

Dengan memperhatikan Gambar 7-4, alamat pengirim melewati ruleset 3, ruleset 1, dan
ruleset yang ditetnukan oleh S, serta ruleset 4. Definisi mailer untuk tcp menentukan bahwa
ruleset S-nya adalah ruleset 14. Jadi ruleset yang memproses alamat pengirim adalah 3, 1, 14,
dan 4. Pada address test kita memasukkan 1, 14, 4 karena ruleset 3 dipanggil secara otomatis.

Test diatas menunjukkan bahwa alamat pengirim mengalami kesalahan pada ruleset 14.
Inspeksi baris-per-baris pada ruleset tersebut menunjukkan ada dua baris yang merefer
informasi yang tak terdefinisi pada konfigurasi kita yaitu class N dan macro A.
R$+<@$=N.$D> $@$1<@$2.$D> nic-reg host are ok
R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway

Komentar yang ada memberi kita petunjuk apa yang haru kita lakukan. Jelas bahwa class N
berhubungan dengan NIC-registration host. Setelah tahun 1989 kita telah menggunakan
DNS sehingga kita tidak perlu memperhatikan NIC host table lagi, sehingga kita bisa meng-
comment-out kemunculan baris ini di file sendmail.cf.

Baris selanjutnya lebih dekat ke problem yang kita hadapi. Ruleset ini muncul karena sekali
waktu sebuah host yang tidak berada di NIC host table yang lama harus mengirim mail ke
Internet melalui mail relay. Kita tidak harus mencantumkan mail relay host di alamat
pengirim karena record MX telah digunakan untuk menyampaikan mail ke tujuan yang
benar. Jadi kita juga dapat meng-comment out kemunculan baris ini di seluruh file sendmail.cf.

213
8
Membuat FTP Server dan
WEB Server

Dua buah service yang sangat banyak dipakai di


Internet adalah Web dan FTP. Pada bab ini akan
dibahas bagaimana cara membuat server Web dan
server FTP yang bisa diakses oleh orang lain melalui
Internet.

214
!

FTP Server

Pendahuluan
Di dunia internet saat ini, hampir semua host yang ada mensupport FTP baik sebagai klien
maupun sebagai server. FTP disebut juga sebagai File Transfer Protocol adalah sebuah
protokol yang digunakan untuk transfer file antara satu komputer dengan komputer yang
lain. FTP dapat mentransfer hampir semua data, mulai dari file dalam bentuk ASCII,
Executable File, Postscript, gambar dalam format JPG, GIF dan lain sebagainya.
Komunikasi FTP ini terjadi antara FTP server dengan kliennya.

Ada dua macam aksesibilitas yang ditawarkan oleh FTP server, yaitu : User FTP dan
anonymous FTP. User FTP adalah FTP yang diperuntukkan hanya untuk user dari mesin
FTP server tersebut, sedangkan anonymous FTP diperuntukkan untuk public karena semua
orang dapat mengakses data yang ada pada FTP server tersebut tentu saja dengan batasan-
batasan tertentu.

Pada dasarnya FTP server hanya menyediakan fasilitas bagi user berupa listing suatu
direktori, mengubah direktori tempat bekerja, mengirim dan menerima file. Jadi seorang
pengguna FTP (baik anonymous maupun user FTP) tidak dapat mengeksekusi suatu file dari
FTP server, yang bisa ia lakukan hanyalah terbatas pada file-file diatas.

Anonymous FTP menjadi pokok bahasan kita dalam bab ini, karena servis inilah yang
merupakan inti dari FTP server saat ini. Anonymous FTP diperuntukkan untuk publik, baik
user tersebut memiliki account di mesin itu atapun tidak. User yang mengisi nama user ketika
masuk ke FTP server dengan nama ftp atau anonymous diperbolehkan untuk masuk ke
dalam FTP server tersebut. Walaupun server tidak mengecek password yang diisi ketika
login, password yang diisi oleh user tadi di-log oleh komputer. Telah merupakan konvensi
untuk menanyakan alamat email user untuk password anonymous FTP, sehingga system
administrator dari komputer dapat mengetahui siapa pengguna FTP server tersebut.

Pengguna FTP server memiliki akses yang terbatas pada beberapa direktori (termasuk file di
dalamnya) yang sebelumnya telah diatur hak aksesnya. Direktori atau daerah ini disebut
215
sebagai “area anonymous FTP”. Pengguna anonymous FTP tidak dapat melihat direktori
lain selain direktori di mana ia diberi hak untuk mengakses. Hal inilah yang membuat FTP
adalah salah satu servis yang cukup aman dalam dunia informasi di internet.

FTP Server
FTP server terdiri dari dua bagian, yaitu : server, yang bertugas untuk melayani permintaan
dari klien yang meminta listing direktori, mengubah direktori (letak tempat kerja),
mengirimkan file dan menerima file. Nama dari program yang berfungsi untuk melayani hal-
hal di atas adalah ftpd (baca ftp daemon). Bagian kedua adalah file-file yang ada pada direktori
yang diperbolehkan untuk diakses oleh pengguna anonymous FTP.

Konfigurasi FTP server

ftpd biasanya dijalankan dan dikontrol oleh inetd, yang merupakan server utama dari UNIX
yang bisa menjalankan beberapa aplikasi secara bersamaan. Inetd mendengarkan permintaan
dari klien pada beberapa port yang telah dikenal, temasuk port untuk mengontrol FTP yaitu
port 21. Ketika klien dari FTP berusaha untuk membuat hubungan dengan FTP server yang
pertama dilakukan adalah mengirimkan paket TCP ke port 21 pada komputer tujuan, inetd
menerima paket tersebut, dan menentukan port tujuan sehingga dapat mulai menjalankan
aplikasi yang dibutuhkan untuk melayani permintaan tersebut melalui proses forking dan
executing. Karena aplikasi yang dituju adalah ftpd maka aplikasi inilah yang di-fork dan di
execute oleh inetd untuk menerima permintaan dari klien. Apabila pada saat yang bersamaan
ada klien lain yang meminta inetd untuk menjalankan ftpd, maka inetd akan menjalankan
kopi dari ftpd yang sudah berjalan dan melayani permintaan klien tersebut.

Konfigurasi yang digunakan sebagai kontrol bagaimana ftpd dijalankan adalah inetd.conf,
yang terlihat sebagai berikut :
ftp stream tcp nowait root /etc/ftpd ftpd -l

Biasanya, UNIX secara otomatis telah memasukkan entry ini kedalam inetd.conf sehingga
kita tidak perlu menambahkannya lagi. Sekarang kita akan membicarakan maksud dari entry
yang ada diatas.

Field pertama (ftp) menunjukkan protocol. Field ini digunakan untuk memberi tahu
port mana yang harus didengar (listened) oleh inetd untuk menerima permintaan dari klien.
216
!

Ketika inetd menerima paket pada port 21 (port standar untuk ftp) inetd akan membaca field
ftp untuk menentukan server yang harus distart.

Field yang kedua dan ketiga (stream dan tcp) menunjukkan cara komunikasi yang
digunakan oleh server. Pada konfigurasi di atas ditunjukkan bahwa komunikasi dilakukan
dengan menggunakan TCP, yang pada dasarnya merupakan aliran data berurutan antara dua
komputer. Sebagai catatan FTP hanya bisa berkomunikasi menggunakan TCP.

Entry nowait mengharuskan inetd untuk selalu menstart server baru ketika klien
mengirimkan permintaan ke server. Apabila digunakan option wait maka server akan
menstart server setelah klien telah selesai menggunakan server sebelumnya (bergantian).

Dua field terakhir (/etc/ftpd dan ftpd -l) menunjukkan path dari file eksekutable
ftpd sedangakan -l menunjukkan option ketika menjalankan ftpd (biasanya secara default
option ini tidak usah diset).

ftp user

Setelah selesai mengkonfigurasi FTP server untuk berjalan dibawah inetd maka kita perlu
menambahkan entry ftp user pada file /etc/passwd (dengan asumsi sistem operasi yang
anda gunakan adalah UNIX). Ftpd akan mengecek eksistensi dari ftp user sebelum ia
memperbolehkan adanya anonymous FTP. Apabila entry ftp user tidak terdapat pada file
/etc/passwd, ftpd akan menolak semua orang yang berusaha untuk memasukkan
nama anonymous atau ftp ketika masuk ke FTP server.

Entry ftp user pada file /etc/passwd harus memiliki user ID dan group ID yang unik
dan kita harus memastikan bahwa user tersebut tidak dapat log in melalui cara yang standar
seperti melalui telnet . Untuk ini kita harus mengeset field password pada entry ftp user pada
file /etc/passwd dengan * sehingga password dianggap tidak ada, dan login shell harus
diset ke /bin/false, atau /nonexistent sehingga UNIX tidak akan mengecek
password dan tidak memperbolehkan user masuk ke mesin itu selain melalui FTP.

Entry pada file /etc/passwd akan nampak sebagai berikut :

ftp:*:500:25: Anonymous FTP user :/user/ftp:/bin/false

217
Login direktori juga merupakan satu hal yang penting. Pengguna anonymous FTP hanya
diperbolehkan untuk mengakses file yang ada pada direktori tersebut.

Filesystem
File-file yang berada pada direktori yang disebutkan pada entry ftp user di file
/etc/passwd harus memiliki suatu struktur yang spesial dan di dalamnya harus memiliki
file-file yang bisa dieksekusi. Sebagai catatan direktori yang tercantum pada entry di file
/etc/passwd menjadi FTP server root directory. Sebagai contoh misal pada entry
disebutkan direktori yang boleh diakses oleh anonymous FTP ada pada direktory
/user/ftp, maka ketika user masuk, maka ia akan mendapatkan direktori tersebut sebagai
/ (pada unix / disebut root dan semua file yang ada pada direktori tersebut letaknya
direferensikan terhadap root ). Sehingga apabila ada file yang sebenarnya terletak pada
/user/ftp/bin, maka user akan mendapatkan direltori tersebut sebagai /bin saja.

Struktur direktori anonymous FTP

Kita harus membuat user ftp login direktori (yang tercantum pada entry di /etc/passwd)
dan membuat subdirektori berikut ini :

bin Direktori ini berisi file-file executable yang diperlukan oleh ftpd untuk menservis
permintaan anonymous FTP, biasanya file yang ada adalah ls (untuk listing direktori)
dan cd (untuk mengubah letak direktori)

etc Biasanya berisi password (bukan entry password /etc/passwd, file ini jangan
sampai diletakkan pada direktori ini karena harus disembunyikan eksistensinya dari
dunia luar)

pub Direktori ini berisi file-file yang disediakan untuk anonymous FTP.

Jangan sampai kita mengopi file passwd dan group ke direktori-direktori di atas.

218
!

Ijin dan Kepemilikan Direktori File

Berikut ini adalah hak-hak yang harus kita berikan pada subdirektori-subdirektori di atas :

login direktori harus dimiliki oleh root, bisa dibaca oleh orang lain, dan dapat dieksekusi
(dalam UNIX gunakan mode 555)

bin subdirektori ini harus dimiliki oleh root dan group wheel, staff atau yang lain.
Direktori harus bisa dieksekusi tetapi tidak dapat ditulis dan dibaca oleh user (mode
111)

etc harus dimiliki oleh root (mode 111)

pub harus dimiliki oleh root atau pengguna komputer yang mempunyai perkerjaan untuk
admininstrasi file-file yang ada di sini. Direktori ini jangan sampai mempunya file
permission writable karena kita harus melarang user untuk dapat menaruh file di ftp
archive ini ! gunakan mode 555.

Demikianlah beberapa cara untuk setting FTP server.

Memelihara Arsip FTP

Standar Ekstensi Nama File

Untuk mempermudah bagi user anonymous FTP untuk memperkirakan format dari file yang
akan mereka transfer adalah penting untuk menggunakan ekstensi nama file yang standar.
Sebagai contoh file dengan ekstensi .ps adalah file PostScripts, atau file image seperti .gif,
.jpg, dan lain-lain. Contoh lain adalah .Z adalah ekstensi dari file kompresan yang ada di
UNIX, begitu juga dengan .gz. Di bawah ini adalah beberapa contoh format file dan masing-
masing ekstensinya.

Program Kompresi Program Dekompresi Ekstensi file Contoh


compress uncompress .Z test.Z
gzip gunzip .gz atau test.gz
.z
pack unpack .z test.z
Stuffit unsit .Sit test.Sit
PackIt unpit .pit test.pit

219
PKZIP unzip41 .ZIP test.ZIP
zoo210 zoo210 .zoo test.zoo

Mengakses arsip FTP adalah seperti mengakses file yang ada di local file system, namun
tanpa alat navigasi. Sebagai contoh, user tidak dapat menggunakan perintah find untuk
mencari sebuah file. Oleh karena itu untuk mempermudah maka sebaiknya selalu disediakan
symbolic link ke arsip tertentu, file README atau file ls-lR.

WEB SERVER
Saat ini orang mengenal dunia internet identik dengan World Wide Web (WWW) atau
disebut web saja. World Wide Web adalah merupakan servis internet yang menyajikan
informasi dalam bentuk grafis dan juga memberikan kemampuan hyperlinking yang
membuatnya menjadi salah satu servis dengan perkembangan yang begitu pesat saat ini.
Dengan web kita dapat menghubungkan suatu kata/informasi dalam web tersebut dengan
informasi lain yang bisa berbentuk gambar, tulisan, film, suara dan lain sebagainya.

Yang dimaksud dengan hyperlinking adalah kemampuan web untuk menghubungkan satu
informasi yang ada di satu web server dengan informasi lain yang bisa saja ada di mesin web
server lain atau juga dalam mesin web server itu sendiri.

Dalam bab ini kita tidak akan membahas bahasa yang digunakan dalam pembuatan home
page, tetapi kita akan lebih membicarakan segi teknisnya.

World Wide Web Server


Software server yang digunakan oleh WWW disebut juga sebagai Web server. Server ini
dalam komunikasi dengan klien menggunakan protokol TCP dan selalu mendengarkan
permintaan dari klien pada port 80 (default). Ketika klien meminta “halaman” tertentu dari
home page, server akan mengirimkan halaman yang diinginkan ke klien.

Di bawah ini adalah beberapa contoh Web Server :

NCSA

220
!

Web Server NCSA adalah public domain Web server ditulis dalam C. Siapa saja
diperbolehkan mempergunakannya tanpa lisensi dari pembuat. NCSA Server kompatibel
dengan hampir semua Web browser HTTP/0.9 dan HTTP/1.0. Server ini mendukung
direktory aliasing sehingga permintaan dokumen dapat dilayani dari berbagai struktur
direktori. Anda dapat membuat server untuk menjalankan fasilitas searching, form HTML
dan clickable images map dan mengontrol akses.

Untuk memperolehnya sourcenya dapat diambil di :

http://hoohoo.ncsa.uiuc.edu/docs/setup/PreCompiled.html

CERN

Web Server CERN memiliki kesamaan dengan NCSA yaitu bahwa Web server tersebut
adalah public domain dan ditulis dalam C. Web server ini mendukung form, clickable iamge
map, script, fasilitas search (via CGI), dan juga menyediakan maping nama dokumen ke
nama file.

Untuk informasi lebih jelasnya dapat dilihat di :

ftp://info.cern.ch/pub/www/bin/

URL ini akan membawa anda ke arsip FTP tempat precompiled source dari Web server
CERN.

Plexus

Plexus adalah Web server yang merupakan public domain dan ditulis dalam Perl, tidak perlu
lisensi untuk menggunakannya. Plexus didesain agar mudah untuk digunakan dan memiliki
performansi yang baik, mendukung protokol baik HTTP/0.9 maupun HTTP/1.0

Untuk informasi dapat dilihat di

http://www.bsdi.com/server/doc/plexus.html

Sedangkan sourcenya dapat diperoleh di :

ftp://austin.bsdi.com/plexus/2.2.1/dist/Plexus-2.2.1.tar.Z

221
World Wide Web Browser
Pada lingkungan klien/server di dunia web, kendali terletak pada web browser. Web server
berfungsi untuk meminta data dari web server dengan URL (Uniform Resource Locator)
yang diberikan oleh pengguna. Data yang diberikan oleh web server diberi nama HTML
(Hypertext Markup Language), data ini diartikan sendiri oleh web browser dan ditampilkan
di layar sesuai dengan kemampuan web browser itu sendiri. URL menyatakan protokol yang
digunakan untuk mencapai server yang diinginkan (biasanya nama dari server yag
bersangkutan tempat data/informasi yang kita inginkan berada, path direktori data yang kita
inginkan, dan bisa juga nama file yang kita inginkan. Dibawah ini contoh dari URL :

http://nic.itb.ac.id./pub/cnrg.html

maksud dari URL di atas adalah kita menggunakan protokol http (protokol untuk meminta
data dalam bentuk web) untuk mencapai server bernama nic.itb.ac.id. pada server
itu terdapat direktori pub yang di dalamnya terdapat file cnrg.html. Semua data yang
bisa diartikan oleh web browser berekstensi htm atau html.

Apabila user memilih sebuah hyperlink, maka web browser akan meminta data dari URL
yang disebutkan (disebutkan dalam data yang diminta sebelumnya) dan mengulangi lagi tugas
diatas.

Di bawah ini hubungan antara web browser dengan sumber infotmasi lain di internet :

gopher Server

Web Browser Web Server Gateway Server lain

FTP Server

Ketika web browser berinteraksi dengan Gopher Server (salah satu bentuk sumber informasi
di internet) maka web browser menjadi klien gopher dan menggunakan protokol gopher.
Apabila web browser berinteraksi dengan web server maka browser akan menjadi klien web

222
!

server dan menggunakan protokol HTTP. Demikian juga apabila browser berinteraksi
dengan FTP server.

Yang dimaksud dengan gateway pada gambar di atas adalah kemampuan web server untuk
mengeksekusi perintah-perintah khusus yang dapat menampilkan informasi lain yang tidak
dapat ditampilkan dengan cara biasa. Dalam dunia web, gateway ini disebut CGI (common
Gateway Interfaces).

223
HTTP
Web browser dan server berkomunikasi menggunakan protokol HTTP (HyperText Transfer
Protocol). Protokol ini menganggap permintaan dokumen (HTML) dari browser sebagai
koneksi baru. Apabila ia telah memenuhi permintaan browser dan data telah ditransfer, maka
hubungan dengan browser akan ditutup. Negosiasi ini juga dibantu dengan adanya MIME
(Multimedia Internet Mail Extensions), yang membantu browser mengenal data yang
diterimanya. Informasi ini biasanya ditaruh di header dari data, contohnya

text/html image/gif

yang dimaksud dengan keterangan di atas adalah, data yang dikirim oleh web server ada dua
macam, yaitu text dalam bentuk html dan gambar dalam format gif. Browser menggunakan
keterangan di atas untuk menerjemahkan dan menampilkan data yang diterimanya.

Konfigurasi Web Server


Pembahasan instalasi web server ini ditujukan pada software APACHE web server yang
sudah tersedia dalam server UNIX FreeBSD. Instalasi dari software ini cukup mudah karena
cukup interaktif, anda dapat menginstall software ini pada saat anda menginstall FreeBSD
untuk pertama kalinya.

Instalasi Web Server


Web Server yang akan digunakan adalah apache-1.1.1. Source-nya mudah untuk diperoleh
karena sudah tersedia pada FreeBSD. Sebenarnya ada beberapa cara yang dapat digunakan
untuk instalasi Web Server ini. Salah satu caranya adalah dengan cara yang dilakukan seperti
instalasi FTP Server di atas. Pada instalasi kali ini kita akan menggunakan cara lain yaitu
dengan perintah pkg_add.

Caranya adalah sebagai berikut :

Ambillah source apache-1.1.1. Source ini bisa diambil dari CDROM FreeBSD atau dengan
ftp ke site di Internet yang menyediakan layanan ini, sebagai contoh site adalah ftp.itb.ac.id.

224
!

Letak source dari apache-1.1.1 ini biasanya ada di direktori /pub/FreeBSD/2.1.5-


RELEASE/packages-2.1.5/www dengan nama file apache-1.1.1.tgz.

Setelah diambil source tersebut extract-lah dengan perintah pkg_add.

# pkg_add apache-1.1.1.tgz

Biasanya file-file hasil extract tersebut disimpan di direktori /usr/local/www dan file httpd
yang terletak di /usr/local/sbin.

Di bawah ini adalah file-file yang merupakan konfigurasi dari web server :

httpd.conf File konfigurasi utama dari web server

srm.conf File resource dari web server

access.conf File untuk access control

biasanya file-file di atas diletakkan pada direktori /usr/local/www/server/conf. Editlah ke tiga


file tersebut agar menghasilkan konfigurasi yang sesuai dengan keinginan kita.

Konfigurasi dari httpd.conf


Di bawah ini kita bicarakan konfigurasi basic dari httpd.conf, kita batasi pembicaraan kita
pada option-option penting dari httpd.conf saja.
• Ubah User dan group dengan nama yang anda inginkan, option ini berhubungan
dengan proses dari unix yang membutuhkan user id (UID) dan group id (GID) ketika
server berjalan. Disarankan untuk menggunakan user www dan group www, untuk
keamanan dari server (dengan menambah entry di file /etc/master.passwd
dan /etc/group)
• Ubah ServerAdmin menjadi nama yang anda inginkan nama@domain.anda. Option
ini harus diisi karena menunjukkan e-mail address dari administrator web server ini,
sehingga apabila terjadi problem dapat dialamatkan ke alamat di atas.
• Ubah ServerRoot ke path direktori tempat menaruh file eksekutable dari httpd , file
ini apabila dieksekusi akan menjalankan http daemon yang bertugas untuk melayani
permintaan dari klien. Direktori ini juga menunjukkan letak file konfigurasi berada.

225
Secara default konfigurasi ini telah menunjuk ke tempat yang benar yaitu di
/usr/local/www/httpd
• Ubah ServerName menjadi www.domain.anda. Nama ini harus sesuai dengan record
yang telah ada pada name server dari domain anda.
• Ubah ServerType sesuai dengan keinginan anda, bisa dijalankan di bawah inetd (baca
dalam pembahasan ftp server) atau standalone. Secara default option ini diisi
standalone, sebaiknya anda biarkan option ini diisi standalone.

Konfigurasi dari srm.conf


• Ubah DocumentRoot ke path direktori tempat anda meletakkan dokumen HTML
anda
• Isi opsi UserDir menjadi enabled apabila anda ingin user pada komputer tersebut
dapat mempunyai home page sendiri, user dapat membuat home page pribadi
dengan membuat file index.html pada direktori public_html di home direktori
user, atau disabled apabila anda tidak ingin kejadian di atas terjadi (home page milik
user dapat dipanggil dengan URL http://mesin.anda/~username)

Konfigurasi access.conf
Default dari access.conf adalah :
<Directory /usr/local/www/cgi-bin>

ubah path di atas ke direktori dari cgi-bin anda

Options Indexes FollowSymlinks


</Directory)

<Directory /usr/local/www/data>

226
!

Ubah path di atas ke direktori dari data home page anda


Options Indexes FollowSymlinks
AllowOverride All
<Limit GET>
order allow,deny
allow from all
</limit>
</Directory>

Menjalankan server

Standalone startup

Apabila anda ingin menjalankan server secara standalone (server membaca konfigurasi sekali
pada waktu dieksekusi dan akan dijalankan terus menerus sampai prosesnya dimatikan) maka
anda reboot saja mesin anda.

Atau bisa juga anda login sebagai root, lalu ketik perintah sebagai berikut :
% httpd -d /tempat/http/eksekutable/berada
Jika letak dari file tersebut merupakan default-nya (biasanya ada di direktori
/usr/local/www/server/conf) cukup menjalankan daemonnya saja dengan :
% /usr/local/sbin/httpd

Inetd startup

Edit file /etc/inetd.conf, dengan entry sebagai berikut :


http stream tcp nowait www /tempat/eksekutable httpd

lalu restart inetd dengan mencari nomer process dari inetd dan ketik perintah
% kill -HUP <no_process>

227
Mapping URL to documents

Untuk menyimpan file HTML di web server, kita harus mengetahui bagaiamana cara URL di
map terhadap document tree dari server kita. Kita lihatURL minimal untuk dapat mencapai
web server yang kita miliki :
http://server.anda

Ketika pada URL tidak disertakan path direktori atau nama file, maka web server akan
menjawab permintaan tersebut dengan mengirimkan file index.html yang ada pada direktori
yang disebutkan di DocumentRoot (file index.html adalah startup file yang akan
diberikan ke klien, jadi file ini harus ada sebagai pembuka home page anda), atau apabila file
ini tidak ada maka secara otomatis server akan mengirim data yang serupa apabila kita
mengetik perintah ls di unix. Apabila pada URL kita sebutkan juga direktori dari data, maka
server akan mengartikan path tersebut sebagai berikut :
• Server akan melihat DocumentRoot pada file srm.conf. Direktori yang anda
sebutkan pada URL akan diganti dengan DocumentRoot ditambah direktori yang
anda sebutkan, sebagai misal :
http://nic.itb.ac.id./resource diartikan menjadi oleh server
mengambil data di direktori (bila DocumentRoot di /usr/local/www/data)
menjadi /usr/local/www/data/resource. Data yang ada dikirimkan ke
klien.
• Server akan melihat Alias atau ScriptAlias yang disebutkan di srm.conf,
misal di srm.conf disebutkan alias
Alias /icons/ /usr/local/www/icons/
maka apabila ada permintaan dengan URL
http://nic.itb.ac.id./icons
direktori icons di atas akan dipindah ke direktori yang disebutkan di alias,
alias di atas penting apabila anda ingin membuat banyak direktori yang tersebar di
beberapa tempat di web server.

228
!

Test Web server


untuk mengetes jalannya web server coba telnet ke mesin web server anda port 80
% telnet mesin.anda 80
Trying 167.205.123.1
Connected to mesin.ini
Escape Character is ‘^}’

HTTP/1.0 200 OK
Date: Saturday, 20 Aug 94 20:33 GMT
Server: Apache /1.2
MIME-version : 1.0
Content-type : text/html
Last Modified :

Connection Closed by foreign host

Di atas adalah contoh apabila anda mencoba untuk telnet ke port 80 dari mesin web server
anda, tampilan di mesin anda tidak harus sama dengan tampilan di atas. Apabila server anda
tidak mau di telnet berarti ada kesalahan konfigurasi.

229
9
Network Security

Pada bab ini akan dibahas secara singkat tentang


keamanan jaringan, meliputi:
• perencanaan security
• metoda-metoda yang dipakai
• software-software aplikasi

230
!

Network Security secara umum


Host/komputer yang terhubung ke network, mempunyai ancaman keamanan lebih besar
daripada host yang tidak terhubung kemana-mana. Dengan mengendalikan network security,
risiko tersebut dapat dikurangi. Namun network security biasanya bertentangan dengan
network access3, yaitu bila network access semakin mudah, maka network security makin
rawan, dan bila network security makin baik, network access makin tidak nyaman. Suatu
network didesain sebagai komunikasi data highway dengan tujuan meningkatkan akses ke
sistem komputer, sementara security didesain untuk mengontrol akses. Penyediaan network
security adalah sebagai aksi penyeimbang antara open access dengan security.

Disini network dikatakan sebagai highway, karena menyediakan akses yang sama untuk
semua, baik pengguna normal ataupun tamu yang tidak diundang. Sebagai analogi, keamanan
di rumah dilakukan dengan cara memberi kunci di pintu rumah, tidak dengan cara
memblokir jalan di depan rumah. Hal seperti ini juga diterapkan pada network security.
Keamanan dijaga untuk (setiap) host-host tertentu, tidak langsung pada networknya.

Keamanan untuk daerah dimana orang saling mengenal, pintu biasanya dibiarkan tidak
dikunci. Sedangkan di kota besar, pintu rumah biasanya menggunakan kunci-kunci
tambahan. Begitu pula yang dilakukan pada network. Untuk jaringan yang menghubungkan
host-host yang aman dan dikenal, tingkat keamanan host bisa tidak dijaga terlalu ketat. Bila
jaringan terhubung ke jaringan lain yang lebih terbuka, dan membuka peluang akses oleh
host yang tidak aman atau tidak dikenal, maka tidak bisa tidak, host-host di jaringan tersebut
membutuhkan pengamanan lebih. Ini bukan berarti keterbukaan hanya membawa akibat
buruk, sebab banyaknya fasilitas yang ditawarkan dengan keterbukaan jaringan ini
merupakan nilai lebih yang sangat membantu kemajuan network. Jadi network security
merupakan harga yang harus dibayar dari kemajuan jaringan komputer.

Pada bagian ini ditekankan kontrol sederhana yang dapat digunakan untuk meningkatkan
network security. Pendekatan yang beralasan kepada security, berdasarkan tingkat keamanan

3
Network Access : kemudahan dan layanan yang diberikan sistem jaringan komputer kepada user
231
yang diperlukan oleh sistem, adalah yang paling cost effective, baik dalam hal pengeluaran
yang diperlukan maupun dalam hal produktifitas yang dihasilkan.

Konsep dalam network security


Perencanaan security
Salah satu problem network security yang paling penting, dan mungkin salah satu yang paling
tidak enak, adalah menentukan kebijakan dalam network security. Kebanyakan orang
menginginkan solusi teknis untuk setiap masalah, berupa program yang dapat memperbaiki
masalah-masalah network security. Padahal, perencanaan keamanan yang matang
berdasarkan prosedur dan kebijakan dalam network security akan membantu menentukan
apa-apa yang harus dilindungi, berapa besar biaya yang harus ditanamkan dalam
melindunginya, dan siapa yang bertanggungjawab untuk menjalankan langkah-langkah yang
diperlukan untuk melindungi bagian tersebut.

Mengenali ancaman terhadap network security

Langkah awal dalam mengembangkan rencana network security yang efektif adalah dengan
mengenali ancaman yang mungkin datang. Dalam RFC 12444, Site security Handbook,
dibedakan tiga tipe ancaman :
• Akses tidak sah, oleh orang yang tidak mempunyai wewenang.
• Kesalahan informasi, segala masalah yang dapat menyebabkan diberikannya
informasi yang penting atau sensitif kepada orang yang salah, yang seharusnya tidak
boleh mendapatkan informasi tersebut.
• Penolakan terhadap service, segala masalah mengenai security yang menyebabkan
sistem mengganggu pekerjaan-pekerjaan yang produktif.

4RFC : Request For Comment, definisi-definisi standar yang menjadi dasar


perencanaan dan implementasi dalam networking
232
!

Disini ditekankan network security dari segi perangkat lunak, namun network security
sebenarnya hanyalah sebagian dari rencana keamanan yang lebih besar, termasuk rencana
keamanan fisik dan penanggulangan bencana.

Kontrol terdistribusi

Salah satu pendekatan dalam network security adalah dengan mendistribusikan tanggung
jawab kontrol terhadap segmen-segmen dari jaringan yang besar ke grup kecil dalam
organisasi. Pendekatan ini melibatkan banyak orang dalam keamanan, dan berjalan
berlawanan dengan prinsip kontrol terpusat.

Pada prinsipnya, tanggung jawab dan kontrol yang terdistribusi dalam grup-grup kecil
menciptakan lingkungan jaringan kecil yang terdiri dari trusted hosts. Meminjam analogi
keamanan kota, maka hal ini sesuai dengan sistem keamanan tingkat RT, dimana terjadi
kerjasama antar RT untuk menjaga lingkungan yang lebih besar. Jadi keamanan suatu segmen
dipercayakan kepada manajer jaringan pada segmen tersebut. Dengan terjaganya keamanan
tiap segmen, maka secara keseluruhan keamanan jaringan akan terjaga.

Dalam mendistribusikan kontrol network, digunakan berbagai cara. Salah satunya adalah
dengan memanfaatkan pembagian subnet5. Di setiap subnet terdapat subnet administrator
(admin subnet) yang bertanggungjawab untuk keamanan network dan mempunyai kekuasaan
untuk mengalokasikan / menetapkan IP address untuk device yang terhubung pada network.
Penetapan IP address memberi admin subnet suatu kontrol terhadap siapa yang terhubung
ke subnet. Sewaktu admin subnet menetapkan IP address untuk suatu sistem, dia juga
menetapkan tanggungjawab keamanan tertentu ke admin sistem tersebut. Demikian juga, bila
admin sistem menetapkan suatu account bagi user, maka ia memberikan tanggungjawab
keamanan tertentu kepada user. Hirarki ini mengalir dari admin network, ke admin subnet,
admin sistem, dan ke user. Mereka mendapat tanggungjawab, dan juga wewenang untuk
menurunkan tanggungjawabnya. Untuk itu, setiap user harus mengetahui tanggungjawabnya.

Dalam kontrol terdistribusi, informasi dari luar disaring dahulu oleh admin network,
kemudian disaring lagi oleh admin subnet, demikian seterusnya, sehingga user tidak perlu

5subnet : lihat Bab 3, Konfigurasi Routing


233
menerima terlalu banyak informasi yang tidak berguna. Bila informasi ke user berlebihan,
maka user akan mulai mengabaikan semua yang mereka terima.

Menentukan security policy6

Dalam network security, peranan manusia yang memegang tanggungjawab keamanan sangat
berperan. Network security tidak akan efektif kecuali orang-orangnya mengetahui
tanggungjawabnya masing-masing. Dalam menentukan network security policy, perlu
ditegaskan apa-apa yang diharapkan, dan dari siapa hal tersebut diharapkan. Selain itu,
kebijakan ini harus mencakup :
• Tanggung jawab keamanan network user, meliputi antara lain keharusan user untuk
mengganti passwordnya dalam periode tertentu, dengan aturan tertentu, atau
memeriksa kemungkinan terjadinya pengaksesan oleh orang lain, dll.
• Tanggung jawab keamanan system administrator, misalnya perhitungan keamanan
tertentu, memantau prosedur-prosedur yang digunakan pada host.
• Penggunaan yang benar sumber-sumber network, dengan menentukan siapa yang
dapat menggunakan sumber-sumber tersebut, apa yang dapat dan tidak boleh mereka
lakukan.
• Langkah-langkah yang harus diperbuat bila terdeteksi masalah keamanan, siapa yang
harus diberitahu. Hal ini harus dijelaskan dengan lengkap, bahkan hal-hal yang
sederhana seperti menyuruh user untuk tidak mencoba melakukan apa-apa atau
mengatasi sendiri bila masalah terjadi, dan segera memberitahu system administrator.

Metoda-metoda yang digunakan dalam network security

Pembatasan akses pada network


• Internal password authentification (password pada login system)

Password yang baik menjadi bagian yang paling penting namun sederhana dalam keamanan
jaringan. Sebagian besar dari masalah network security disebabkan password yang buruk.
Biasanya pembobolan account bisa terjadi hanya dengan menduga-duga passwordnya.

6security policy : kebijakan yang diambil berkaitan dengan keamanan jaringan


234
!

Sedangkan bentuk yang lebih canggih lagi adalah dictionary guessing, yang menggunakan
program dengan kamus ter-enkripsi, dibandingkan dengan password ter-enkripsi yang ada.
Untuk itu, file /etc/passwd harus dilindungi, agar tidak dapat diambil dengan ftp atau tftp
(berkaitan dengan file-mode). Bila hal itu bisa terjadi, maka tftp harus dinonaktifkan. Ada juga
sistem yang menggunakan shadow password, agar password yang ter-enkripsi tidak dapat
dibaca. Sering mengganti password dapat menjadi salah satu cara menghindari pembobolan
password. Namun, untuk password yang bagus tidak perlu terlalu sering diganti, karena akan
sulit mengingatnya. Sebaiknya password diganti setiap 3-6 bulan.

Algoritma enkripsi password tidak dapat ditembus, dalam arti password yang ter-enkripsi
tidak dapat didekripsikan. Yang paling mungkin adalah bila kata-kata dalam kamus di-
enkripsi, dan dibandingkan dengan password ter-enkripsi. Bila password yang digunakan
buruk, mudah ditemukan dalam kamus, maka akan mudah terbongkar.

Beberapa hal yang sebaiknya diperhatikan dalam memilih password :


⇒ Jangan memakai nama login.
⇒ Jangan memakai nama siapapun atau apapun.
⇒ Jangan memakai kata-kata singkatan.
⇒ Jangan memakai informasi pribadi yang berhubungan dengan pemilik account. Misalnya,
inisial, nomor telepon, jabatan, unit organisasi, dll.
⇒ Jangan memakai deretan kunci keyboard, seperti qwerty.
⇒ Jangan memakai semua yang disebut di atas walaupun dibalik urutannya, atau kombinasi
huruf besar kecil.
⇒ Jangan memakai password serba numerik.
⇒ Jangan memakai contoh password yang ada di buku keamanan jaringan, sebaik apapun
password tersebut.
⇒ Gunakan kombinasi angka dan campuran huruf besar kecil.
⇒ Gunakan minimal 6 karakter
⇒ Gunakan pilihan angka dan huruf yang kelihatannya acak.
⇒ Namun password sebaiknya yang gampang diingat. Hindari password yang sukar diingat,
sehingga harus ditulis dahulu untuk mengingatnya. Selain itu, password jangan terlalu
panjang. Ada juga software yang dapat menjaga agar user mematuhi peraturan-peraturan
235
yang dibuat. Sehingga dalam memasukan password, user dipaksa untuk memasukkan
password yang unik, dan sesuai dengan peraturan-peraturan tertentu.
• server-based password authentification

Termasuk dalam metoda ini misalnya sistem Kerberos server, TCP-wrapper, dimana setiap
service yang disediakan oleh server tertentu dibatasi dengan suatu daftar host dan user yang
boleh dan tidak boleh menggunakan service tersebut.

TGS

WorkStation Server
DB

Auth Svr

User
Kerberos System

TGS : Ticket Granting Server DB : Data Base system


Auth Svr : Authentification Server

Kerberos server diimplementasikan pada setiap service, dan dimulai ketika seorang user
melakukan login pada suatu sistem. Pada prinsipnya, saat seorang user melakukan login,
maka program login akan menghubungi Kerberos system untuk mendapatkan ‘ticket’ untuk
akses pada sistem yang disediakan. User sendiri tidak merasakan perbedaan (tidak perlu
memberikan password tambahan). Bila user akan menggunakan service-service pada server
lainnya, maka sistem dimana user tersebut login akan kembali menghubungi Kerberos
system untuk mendapatkan ticket baru untuk service pada server tersebut. Dengan cara ini,
dapat dihindari penyusupan melalui methoda ‘protocol spoofing’, dimana user dari sistem
lain yang berusaha menggunakan service-service yang dilindungi pada sistem tersebut, tidak
akan melalui Kerberos system lebih dahulu, sehingga permintaan servicenya akan ditolak
oleh server. Disini setiap server (penyedia service) hanya akan melayani permintaan yang
disertai ticket dari Kerberos. Tentu saja Kerberos system ini tidak berpengaruh bila si
penyusup sudah berhasil memasuki salah satu local account.

236
!

INETD
Telnet Client
User

Telnet Client TCP-Wrapper Log-File


User

Telnet Client Telnet Server Login


User

TCP-wrapper adalah sistem yang menggunakan metoda ‘access control’ dimana akses
terhadap suatu service ke server dibelokkan, dilakukan pengecekan terlebih dahulu asal dari
permintaan service tersebut, bila ada dalam daftar yang diperbolehkan, maka diteruskan ke
server yang sebenarnya.

• server-based token authentification

Metoda ini menggunakan authentification system yang lebih ketat, yaitu dengan penggunaan
token / smart card, sehingga untuk akses tertentu hanya bisa dilakukan oleh login tertentu
dengan menggunakan token khusus.

• Firewall dan Routing Control

Komputer dengan firewall menyediakan kontrol akses ketat antara sistem dengan sistem lain.
Konsepnya, firewall mengganti IP router dengan sistem host multi-home, sehingga IP
forwarding7 tidak terjadi antara sistem dengan sistem lain yang dihubungkan melalui firewall
tsb. Agar jaringan internal dapat berhubungan dengan jaringan diluarnya dalam tingkat
konektifitas tertentu, firewall menyediakan fingsi-fungsi tertentu.

7IP Forwarding : lihat Configuring routing.


237
Firewall

Router

Firewall mencegah paket IP diteruskan melalui layer IP. Namun, seperti host multi-home,
firewall menerima paket dan memprosesnya melalui layer aplikasi. Sebetulnya ada juga router
yang mempunyai fasilitas keamanan khusus seperti firewall, dan biasanya disebut ‘secure
router’ atau ‘secure gateway’. Namun firewall bukan router, karena tidak meneruskan
(forwarding) paket IP. Firewall sebaiknya tidak digunakan untuk memisahkan seluruh
jaringan internal dari jaringan luar. Firewall dapat dipakai untuk memisahkan beberapa
bagian dari jaringan internal yang sensitif terhadap jaringan non sensitif dan jaringan luar,
sedangkan antara jaringan non sensitif dengan jaringan luar digunakan router. Firewall seperti
ini disebut firewall internal. Memisahkan sistem bagian yang sensitif dengan yang non sensitif
biasanya sulit, sehingga umumnya digunakan firewall external, atau kombinasi keduanya.
Namun bila bagian yang sensitif dapat dipisahkan, dan digunakan firewall internal, maka
akan lebih baik, sebab tidak seluruh jaringan terisolasi dari jaringan luar.

ExternalNet
F InternalNet

ExternalNet InternalNet InternalNet


router Non- F Sensitive
sensitive

Dengan adanya firewall, semua paket ke sistem di belakang firewall dari jaringan luar tidak
dapat dilakukan langsung. Semua hubungan harus dilakukan dengan mesin firewall. Karena

238
!

itu sistem keamanan di mesin firewall harus sangat ketat. Dengan demikian lebih mudah
untuk membuat sistem keamanan yang sangat ketat untuk satu mesin firewall, daripada harus
membuat sistem keamanan yang ketat untuk semua mesin di jaringan lokal (internal).

Kerugiannya, host lokal tidak dapat mengakses jaringan luar. Untuk itu, firewall harus
menyediakan beberapa fungsi yang tidak ada di router :
⇒ DNS, name service untuk dunia luar. Name service untuk host lokal ditangani sistem
internal. Firewall menyediakan name service terbatas untuk jaringan luar. Name server ini
tidak menyediakan nama atau informasi tentang host lokal.
⇒ E-mail forwarding. Pada sistem firewall, sendmail dikonfigurasi untuk meneruskan mail
ke tiap user pada semua sistem internal. Setiap user dikenali melalui alias. Mail keluar di-
rewrite sehingga user internal seakan-akan ada pada sistem firewall. Nama login dengan
nama host internal tidak dikenal dari luar.
⇒ Service ftp. Semua transfer dengan ftp harus melalui firewall. Jadi dari luar hanya bisa ftp
ke sistem firewall. Anonymous ftp hanya ada di firewall. Dari dalam, untuk ftp keluar,
harus login dahulu ke firewall, baru bisa ftp keluar.
⇒ Telnet atau rlogin. Untuk bisa telnet atau rlogin dari atau keluar, maka harus rlogin atau
telnet dahulu ke firewall.

Hanya fasilitas tersebut diatas saja yang disediakan oleh firewall. Fasilitas lainnya, seperti NIS,
NFS, rsh, rcp, finger dll tidak boleh ada pada firewall. Pada sistem firewall, keamanan lebih
penting daripada fasilitas.

Sistem firewall bekerja dengan cara menginterupsi proses routing antara sistem yang
dilindungi dengan sistem luar. Jadi menggunakan metoda control routing. Dengan routing
table statis hal ini dapat dilakukan. Dalam routing table, ditentukan network mana saja yang
dapat berkomunikasi, dan lewat mana hubungan dilakukan. Jadi routing table-nya tidak
mempunyai default route, dan hanya mempunyai routing untuk host luar tertentu saja, selain
routing lokal. Misalnya, beberapa host ee.itb.ac.id pada subnet

167.205.8.64 (4 bit untuk host address) dengan routernya 167.205.8.80, dilindungi dengan
sistem routing control seperti firewall, untuk subnet tersebut. Host-host tersebut hanya
berhubungan dengan host lokal, dan host luar tertentu, yaitu dns.paume.itb.ac.id pada

239
address 167.205.22.120 dan maingtw.paume.itb.ac.id pada 167.205.31.131. Maka routing
table pada host hampton.ee.itb.ac.id dengan address 167.205.8.79 sebagai berikut :

Destination Gateway Interface


127.0.0.1 127.0.0.1 lo0
167.205.8.64 167.205.8.79 ed0
167.205.22.120 167.205.8.80 ed0
167.205.31.131 167.205.8.80 ed0

Disini tidak ada default route. Selain itu tidak boleh ada program dynamic routing protocol
yang sedang dijalankan atau yang dijalankan sewaktu startup sistem. Default routing pun
tidak boleh didefinisikan saat startup. Yang ada hanya route static tertentu saja yang
didefinisikan saat startup.

Cara seperti ini tingkat keamanannya tidak sekeras firewall, tidak membutuhkan program-
program khusus. Namun konfigurasi sistem harus dilakukan pada semua host pada sistem
tersebut, sedangkan pada firewall, konfigurasi sistem cukup dilakukan pada mesin firewall
saja. Namun cara di atas dapat menjadi alternatif yang mungkin dilakukan.

Metoda enkripsi

Salah satu cara pembatasan akses adalah dengan enkripsi. Proses enkripsi meng-encode data
dalam bentuk yang hanya dapat dibaca oleh sistem yang mempunyai kunci untuk membaca
data. Proses enkripsi dapat dengan menggunakan software atau hardware. Hasil enkripsi
disebut cipher. Cipher kemudian didekripsi dengan device dan kunci yang sama tipenya
(sama hardware/softwarenya, sama kuncinya). Dalam jaringan, sistem enkripsi harus sama
antara dua host yang berkomunikasi. Jadi diperlukan kontrol terhadap kedua sistem yang
berkomunikasi. Biasanya enkripsi digunakan untuk suatu sistem yang seluruhnya dikontrol
oleh satu otoritas.

Beberapa alasan penggunaan enkripsi :


• mencegah orang yang tidak berwenang melihat data-data sensitif
• mengurangi kemungkinan terbukanya data rahasia tanpa sengaja
• mencegah orang-orang yang mempunyai akses istimewa (mis: sistem admin) agar
tidak dapat melihat data pribadi
• untuk mempersulit usaha intruder memasuki sistem
240
!

Metoda enkripsi bukan solusi terbaik keamanan jaringan, karena ada enkripsi yang bisa
menyebabkan hilangnya data. Selain itu, enkripsi juga masih bisa dipecahkan. Pada sistem
unix, biasanya digunakan standar enkripsi crypt dan/atau des. Data encryption standard, des,
teknik enkripsi modern yang dibentuk tahun 70-an. Sedangkan crypt berdasar dari teknik
enkripsi mesin Enigma Jerman (perang dunia dua). Dari keduanya, des lebih bagus.

Program crypt dan des membaca data dari standar input, menghasilkan keluaran di standar
output, membutuhkan kunci untuk enkripsi. Kunci ini , seperti password harus sukar untuk
diduga, namun mudah untuk diingat. Hal-hal untuk password berlaku juga untuk kunci ini.
Penggunaan des dan crypt ini dapat dilihat dari manual perintah tersebut pada sistem.

Bila file yang di-enkripsi adalah file teks, maka kemungkinan file tersebut dapat di-dekripsi
oleh program pemecah enkripsi lebih besar, dibanding bila file data yang di-enkripsi tersebut
adalah file binary. Karena itu sebaiknya file-file data penting yang akan di-enkripsi sebaiknya
digabungkan dahulu dengan program tar, lalu di-compress atau dengan program gzip.
Hasilnya baru di-enkripsi.

Metoda enkripsi dalam pengiriman data yang dapat dilakukan ada bermacam-macam, antara
lain :
• Data Encryption Standard, des

Diperlukan satu kunci untuk meng-encode dan men-decode data.

• RSA Public/Private key concept

Pengirim data memerlukan satu Public key untuk meng-encode data, si penerima
data akan men-decode data dengan satu kunci khusus Private key yang hanya dimiliki
olehnya saja. Sistem ini lebih baik keamanannya daripada des, namun kurang cepat.
Misal : PGP

241
• Digital Envelope

Merupakan gabungan des dengan Public/Private key concept. Data dikirimkan


dengan ter-enkripsi des, dengan kunci tertentu. Kunci des tersebut kemudian
dienkripsi dengan Public key milik si penerima, dan digabungkan dengan data yang
sudah ter-enkripsi. Penerima data akan membuka kunci des yang ter-enkripsi dengan
Private key yang dimilikinya. Lalu kunci des yang dihasilkan digunakan untuk
membuka data. Disini digunakan des sebagai enkriptor data, karena kecepatannya
yang lebih baik dibandingkan penggunaan Public/Private key. Sedangkan
keamanannya terjamin oleh penggunaan Public/Private key terhadap kunci des yang
dipakai.

Public/Private key concept

Digital Envelope

Digital Signature Compare

• Digital Signature
242
!

Digunakan untuk data yang terbuka untuk umum (public accessible) namun dijaga
kebenarannya (seperti penggunaan checksum pada sistem kompresi file, sistem
transmisi data). Untuk itu pada data tersebut ditambahkan ‘signature’. Signature ini
dibuat dari data yang akan dikirimkan, yang diproses dengan algoritme tertentu
(hashing algorithm) menjadi ‘message digest’, lalu message digest tersebut di-encode
dengan Private key si pengirim, menjadi digital signature untuk data tersebut. Si
penerima dapat memastikan kebenaran (authentification) data yang dikirimkan
dengan men-decode digital signature menjadi message digest dengan menggunakan
Public key, lalu membandingkannya dengan message digest yang dibuat dari data
yang diproses dengan algoritme tertentu (dalam hal ini hashing algorithm).

Security Monitoring
Beberapa aplikasi memakai mekanisme keamanan tersendiri. Aplikasi-aplikasi ini harus
dikonfigurasikan dengan benar. Misalnya :
• Perintah remote pada unix; konfigurasi pada /etc/hosts.equiv, /etc/hosts.lpd
dan ~/.rhosts harus benar.
• Sendmail; alias uudecode dan decode sebaiknya dihapus dari /etc/aliases bila
tidak digunakan.
• NFS; pada NFS server, file /etc/exports yang mengatur akses ke filesystem
sebaiknya membatasi akses dari remotesystem ke filesystem. Hindari pemberian akses
root kepada remotesystem.

User root dapat login dari setiap secure terminal. Secure terminal ini didefinisikan di dalam
file /etc/ttys atau /etc/ttytab.

Contoh :

# ttys

console “/usr/etc/getty std.9600” pc on local secure


ttya “/usr/etc/getty std.9600” unknown on local secure
ttyb “/usr/etc/getty std.9600” unknown on local secure
ttyc “/usr/etc/getty std.9600” unknown on local secure
ttyd “/usr/etc/getty std.9600” unknown on local secure

243
Keyword secure menunjukkan root dapat login dari semua terminal. Untuk amannya,
sebaiknya hanya console saja yang mempunyai keyword secure. Atau semua terminal tidak
mengandung keyword secure, sehingga login root tidak dapat diakses langsung. Login root
hanya bisa diakses melalui login user yang mempunyai akses su (superuser).

Setiap software yang mengijinkan hubungan yang datang dari remote site, mempunyai
kemungkinan untuk digunakan secara tidak benar (adanya ‘intruder’). Karena itu program-
program systat, tftp, dan link sebaiknya dihapus dari file /etc/inetd.conf kecuali bila
memang memerlukannya. Pembatasan ekstrim : perintah remote unix, finger daemon, ftp,
telnet juga di-disable. Untuk site tertentu, hal ini tidak perlu dan tidak produktif.

Biasanya software terbaru dari vendor memiliki perbaikan, juga dalam hal security. Software
yang perlu di-update :
• sendmail
• fingerd
• ftpd

Cara mudahnya, dapat dilihat dari tanggal file. Bila sudah terlalu lama, maka perlu diganti
dengan yang baru. Bila tanggalnya masih baru, belum tentu sudah menggunakan yang
terbaru. Lebih baik lagi bila menghubungi vendornya untuk mendapatkan keterangan yang
diperlukan.

Salah satu elemen penting dari keamanan jaringan adalah pemantauannya. Dengan adanya
pemantauan yang teratur, maka penggunaan sistem oleh yang tidak berhak dapat dihindari.
Selain itu, seiring dengan waktu, maka sistem pun berubah. Keamanan jaringan dapat
terpengaruh oleh adanya perubahan ini. Hal ini dapat dideteksi dengan adanya pemantauan.

Untuk mendeteksi aktifitas yang tidak normal, maka perlu diketahui aktifitas yang normal.
Proses apa saja yang berjalan pada saat aktifitas normal. Siapa saja yang biasanya login pada
saat tersebut. Siapa saja yang biasanya login diluar jam kerja. Dan hal-hal lainnya. Hal ini
dapat diamati dengan perintah ls, who, ps. Perlu juga dibuat pengecekan file periodik,
perubahan apa saja yang sudah terjadi, dan apakah masih dapat diterima. Bila terjadi
keganjilan, maka perlu segera diperiksa.

Intruder biasanya meninggalkan file-file atau shell-script untuk membantu mereka masuk
kembali ke sistem. Periksa file-file dengan nama yang diawali dengan dot (.) seperti .mail, .xx,

244
!

... (dot, dot, dot), .. (dot, dot, spasi), ..^G (dot, dot, control-G), dll. Bila ada yang
mencurigakan, maka harus segera diperiksa lebih lanjut.

Selain itu perlu juga diperiksa file-file :


• /etc/inetd.conf, periksa program-program yang dijalankan dari file ini, pastikan
tidak ada program shell yang dijalankan dari sini. Periksa juga program-programnya,
apakah ada yang dimodifikasi. File /etc/inetd.conf ini seharusnya tidak boleh
dapat ditulis (write permission) oleh user lain.
• file-file untuk perintah remote unix, seperti /etc/hosts.equiv, /etc/hosts.lpd
~/.rhosts harus diperiksa untuk memastikan tidak terjadi perubahan yang
mencurigakan. Terutama entry tanda plus (+), dan entry host yang tidak berada
dalam ‘trusted network’. File-file ini seharusnya tidak boleh dapat ditulis oleh user
lain.
• /etc/passwd, pastikan file ini tidak baru saja dimodifikasi. Perhatikan user-user
baru, perubahan UID dan GID tiap account. File ini seharusnya tidak boleh dapat
ditulis oleh user lain (Kecuali bila ada yang baru mengganti password).
• file-file yang dijalankan oleh cron atau at, periksa dan cari file baru atau perubahan
yang tidak jelas.
• file executable, file binary, shell script, harus diperiksa terhadap kemungkinan
perubahan oleh intruder. Master checklist akan sangat membantu pemeriksaan ini.
File-file ini seharusnya tidak boleh dapat ditulis oleh user lain.

Bila hal-hal yang mencurigakan terjadi, maka perlu dijaga kemungkinan adanya intruder.
Perlu juga memberitahu orang-orang yang biasa menggunakan sistem untuk berhati-hati,
supaya masalah tidak menyebar ke sistem lain.

Dengan perintah find, dapat dicari file dengan ketentuan keamanan tertentu, terutama file
berupa program dengan setuid. Misal :
find / -user root -perm -4000 -print

akan mencari file mulai dari root directory (/), file yang dimiliki oleh root yang mempunyai
bit setuid, dan menampilkannya. Periksa file-file seperti ini. Umumnya (sebaiknya) shell
script tidak mempunyai bit setuid. Hal-hal lain yang mungkin menimbulkan masalah adalah
file dengan akses dapat ditulis oleh siapa saja (-perm -2), setgid file (-perm -2000), dan file
245
tanpa pemilik (-nouser -o -nogroup). File yang dimiliki oleh bukan valid user harus dihapus.
File yang dapat bebas ditulisi oleh siapa saja, dan file dengan bit setgid, harus diperiksa
kebenarannya. Umumnya file dengan nama berawalan dot (.) hanya dapat ditulis oleh pemilik
file saja, tidak boleh dapat ditulisi oleh umum, dan file shell script tidak boleh mempunyai bit
setgid.

Aktifitas login yang aneh, pada waktu yang tidak biasa dari lokasi yang tidak dikenal, dapat
mengindikasikan usaha masuknya intruder ke sistem. Selain perintah who, untuk
menampilkan siapa saja yang sedang login saat itu, ada juga perintah last, untuk menampilkan
siapa saja yang sudah pernah login. Perintah ini menampilkan isi file /var/log/wtmp
(FreeBSD 1.0e). Isinya menunjukkan siapa yang login ke sistem, terminal yang digunakan,
dari lokasi (address) mana, dan kapan (hari, tanggal, jam) mereka login, kapan (jam) mereka
logout, dan waktu login. Selain file ini, /var/log/messages (FreeBSD 1.0e) menunjukkan
standar error yang pernah terjadi, sehingga dapat digunakan untuk mengamati login ke root,
login gagal (fail), penggunaan su, dll.

COPS
Computer Oracle Password and Security adalah kumpulan program yang mengotomatisasi
banyak prosedur pemantauan komputer. COPS hanya mendeteksi masalah potensial yang
mungkin terjadi, tidak melakukan penyelesaian. COPS hanya membantu mempermudah
pemantauan sistem admin.

Fasilitas dalam COPS memeriksa :


• bit permission file, direktori, dan device
• isi dari /etc/passwd dan /etc/group
• isi dari /etc/hosts.equiv dan ~/.rhosts
• perubahan dalam status SUID

Setelah pemeriksaan dilakukan, COPS mengirimkan mail report hasil pemeriksaan ke sistem
admin. Kelebihan dari COPS adalah kesederhanaannya. Dengan menjalankan COPS pada
setiap periode tertentu, maka pemantauan keamanan jaringan dapat dilakukan relatif lebih
mudah.

246
!

Software aplikasi dalam network


security
Firewall
Sistem Firewall biasanya merupakan trademark software, sehingga instalasi dan
konfigurasinya tergantung kepada Firewall yang digunakan.

Contoh Firewall : Aimnet Firewall, BorderWare (JANUS) Firewall, dll.

Kontrol akses
Cara lain yang tidak seketat firewall adalah dengan kontrol akses. Router dan host-host yang
menggunakan kontrol akses akan memeriksa setiap address dari remote host yang meminta
service dengan access control list. Jika address itu ada pada list, maka service-request akan
dilayani. Kontrol akses tidak mem-bypass security check normal, tetapi menambahkan
pemeriksaan (validasi) dari service-request host. Kontrol akses ini biasa digunakan pada
terminal server, dan ada juga pada router. Salah satu contoh program kontrol akses adalah
program wrapper. Program wrapper ini merupakan Free-software, dan dapat diambil dari
anonymous ftp sites yang berhubungan dengan security. Program wrapper ini melakukan dua
fungsi dasar, mencatat request untuk service internet, dan menyediakan mekanisme kontrol
akses untuk sistem unix. Program daemonnya adalah tcpd. Program ini dijalankan melalui
/etc/inetd.conf pada tiap network service yang akan dilindungi dengan wrapper. Misal, pada
file inetd.conf terdapat baris sbb:

finger stream tcp nowait nobody /usr/etc/in.fingerd in.fingerd

Bila wrapper akan dipasang pada fingerd, maka barisnya diubah menjadi :
finger stream tcp nowait nobody /usr/etc/tcpd in.fingerd

Saat inetd menerima permintaan untuk fingerd, maka tcpd akan dijalankan, lalu tcpd akan
mencatat request fingerd, memeriksa informasi kontrol akses, dan jika diijinkan, akan
menjalankan finger.

247
Program wrapper ini hanya dapat dipasang pada service yang dijalankan dari inetd seperti
ftpd, tftpd, telnetd, rshd, rlogind, rexecd, dan fingerd. Jadi tidak dapat dipasang pada
program daemon lain seperti sendmail dan NFS.

File yang digunakan tcpd untuk mengontrol akses adalah /etc/hosts.allow dan
/etc/hosts.deny, yang berisi daftar host yang diperbolehkan untuk mengakses network
service dan daftar host yang dilarang. Program tcpd akan memeriksa host.allow dahulu, bila
ada dalam daftar, akan langsung berhenti, dan melayani service request. Bila tidak ada dalam
daftar, akan memeriksa file hosts.deny. Bila host tersebut ada dalam daftar kedua, maka
request untuk service tersebut akan ditolak, dan bila tidak ada dalam daftar , semua service-
request darinya akan ditolak. Selain itu tcpd bisa juga dijadikan program yang hanya
memonitor, tanpa memberi perlindungan, bila kedua file tidak ada. Format untuk kedua file
diatas :
service-list : host-list [:shell-command]

Service-list adalah daftar network service yang diterima atau ditolak tcpd melalui inetd.conf,
dipisahkan oleh koma. Service ini dikenali sebagai proses yang dipakai di field ke tujuh pada
entry inetd.conf. Pada contoh finger diatas, nama servicenya menjadi in.fingerd. Host-list
adalah daftar nama host, nama domain, internet address, network number, atau netgroup,
yang diterima atau ditolak untuk service pada service list. Khusus untuk domain name, harus
diawali dengan dot. Misalnya, domain paume.itb.ac.id, ditulis .paume.itb.ac.id, yang berarti
semua host pada domain tersebut. Untuk network number, sesuai dengan IP address dalam
address space. Misalnya, 167.205.8 berarti semua host, dengan IP number 167.205.8.1,
167.205.8.2 dst.

Contoh untuk host.allow :


ftpd, rlogind : .paume.itb.ac.id, .ee.itb.ac.id

ALL : LOCAL

248
!

Disini dapat digunakan dua keyword, yaitu ALL dan LOCAL. Keyword ALL dapat
digunakan pada service-list maupun host-list, sedangkan keyword LOCAL hanya bisa dipakai
pada host-list. Definisi lokal pada tcpd, bila pada hostname tidak ada dot.

Field ketiga (optional) adalah shell-command. Jika host ada dalam daftar, dan sesuai dengan
entry tertentu yang mengandung field shell-command, maka tcpd mencatat akses, memberi
atau menolak request, dan mengeksekusi shell-command. Perlu diingat, bahwa tcpd hanya
berpengaruh pada service yang dijalankan dari inetd.conf, dan hanya pada service yang
memanggil tcpd lebih dahulu.

COPS
COPS dapat diimplementasikan pada banyak sistem unix. Untuk sistem non-BSD atau
sistem lain yang tidak standar, perlu direkonfigurasi dengan program reconfig, untuk
merubah pathname untuk program-program yang diperlukan sewaktu memanggil COPS.
Ada juga versi perl scrypt, yang biasanya tergantung versi perl yang digunakan.

Untuk running COPS pertama kali, perlu meng-compile (make) program yang menggunakan
bahasa C. Disini biasanya ditemui masalah yang berhubungan dengan portabilitas. Biasanya
si pembuat program memberitahukan beberapa kemungkinan tidak-kompatibelnya program
dengan sistem tertentu, namun tidak semua menyediakan hal tersebut. Disini diperlukan
pengalaman dan pengetahuan admin dalam sistem yang digunakannya. Selain itu perlu
membaca dokumentasi dari program yang akan di-install.

249
10
Troubleshooting TCP/IP

Kunci troubleshooting adalah mengetahui apa


permasalahannya. Untuk dapat melakukan
troubleshooting dengan efektif, dibutuhkan pendekatan
ke permasalahan secara metodologis dan pemahaman
mendasar tentang bagaimana jaringan bekerja. Untuk
itu, pada bab ini akan dibahas cara-cara praktis
melakukan troubleshooting pada jaringan aktif.

250
!

Memahami Permasalahan
Untuk dapat mengetahui permasalahan dengan tepat, diperlukan pemahaman dasar tentang
TCP/IP, seperti diuraikan pada bab-bab awal buku ini. Terutama bagaimana TCP/IP
melewatkan data melalui jaringan, antar tiap-tiap host, dan antar lapisan protokol. Sementara,
pengetahuan tentang protokol sendiri tidak banyak diperlukan

Informasi lain yang harus diketahui setelah memeriksa sistem (baca:komputer) yang dipakai
user dan sistem yang lain adalah:
• Apakah masalah timbul pada satu atau lebih aplikasi dalam sistem?
• Jika satu aplikasi maka kemungkinan terjadi kesalahan konfigurasi pada local host atau
tidak diaktifkannya aplikasi tersebut pada remote host.
• Apakah terjadi pada satu, semua, atau beberapa remote host?
⇒ jika pada satu remote host, maka problem terletak di host tersebut.
⇒ jika pada semua remote host, maka kesalahan terletak pada komputer user.
⇒ jika pada subnet atau jaringan eksternal tertentu, maka masalah berhubungan
dengan tabel routing.
• Apakah masalah terjadi pada system lokal lain dalam subnet yang sama?
⇒ jika hanya terjadi pada local system (user host), maka konsentrasikan pemeriksaan
di sistem ini.
⇒ jika terjadi pada seluruh sistem dalam subnet yang sama, maka konsentrasikan
pemeriksaan pada router untuk subnet tersebut.

Beberapa Petunjuk dalam


Troubleshooting
• Dekati permasalahan dengan metodologi yang benar.
• Simpan catatan dari test-test yang telah Anda selesaikan berikut hasilnya.
• Jangan berasumsi terlalu banyak tentang penyebab timbulnya masalah.
251
• Perhatikan pesan kesalahan.
• Jangan terlalu tergantung pada laporan permasalahan dari user, tetapi alami sendiri
permasalahan tersebut dengan mencoba mengulangnya.
• Kebanyakan masalah disebabkan oleh faktor manusia.
• Jelaskan pemecahan masalahnya kepada user agar bisa menyelesaikan sendiri.
• Jangan berspekulasi dengan penyebab timbulnya masalah ketika berbicara dengan
user. Sebab dapat mengurangi kepercayaan mereka terhadap keandalan jaringan.
• Jangan mengabaikan hal-hal kecil. Periksa konektor, kabel, dan switch.

Diagnostic Tools
Banyak peralatan untuk mendiagnosa permasalahan mulai dari yang komersial berupa
hardware dan software yang mahal sampai software gratis yang tersedia di internet. Beberpa
juga telah built-in dalam sistem UNIX. Berikut ini tools yang telah tersedia dalam UNIX yang
akan kita pakai untuk troubleshooting:

ifconfig

deskripsi : memberi informasi tentang konfigurasi dasar interface.

fungsi : mengetahui IP address, masking subnet, dan alamat broadcast yang salah

arp

deskripsi : menyediakan informasi tentang translasi ethernet addr

ke IP address

fungsi : untuk mendeteksi system pada jaringan lokal yang dikon

figurasi dengan IP address yang salah.

252
!

netstat

deskripsi : menampilkan statistik tentang interface tiap jaringan,

socket jaringan, dan routing table secara detail.

ping

deskripsi : menampilkan statistik paket loss dan waktu delivery

fungsi : untuk mengetahui apakah remote host dapat dicapai

nslookup

deskripsi : merupakan tool untuk mengetahui name server dan informasi lain yang
tersimpan dalam Domain Name Service.

fungsi : untuk mengetahui name server dan nama host yang benar.

dig

deskripsi : seperti nslookup, tetapi tidak interaktif.

traceroute

deskripsi : menampilkan route yang dilalui paket dari system lokal

ke remote host

fungsi : mengetahui lokasi gateway yang bermasalah ketika menghubugi sebuah


remote host.

Memeriksa Sambungan
Perintah ping pada umumnya dilakukan pertama kali untuk menguji apakah remote host
dapat dicapai dari komputer anda atau tidak. Ketika perintah ini dijalankan, paket akan
dikirimkan dari lokal host ke remote host. Kemudian remote host akan memberikan respon
dengan mengirim paket ke local host. Dapat kita ketahui waktu yang ditempuh bolak-balik (rtt,
round trip time).

253
Ada dua kemungkinan kesalahan yang dapat diketahui setelah menjalankan perintah ini:
• jika paket dapat dikirimkan ke remote host dan mendapat respon, maka kemungkinan
kesalahan terjadi di lapisan atas (aplikasi).
• jika paket tidak dapat membuat round-trip, kemungkinan di lapisan bawah
(fisik,konfigurasi) terjadi kesalahan.

Ada kasus yaitu biasanya user mengeluh tidak bisa melakukan telnet atau ftp ke remote host.
Perintah ping sangat berguna di sini untuk menguji apakah host user memiliki sambungan ke
remote host.

Jika ping dengan host lain berhasil dan dengan host user juga berhasil, maka kemungkinan
remote host tidak menyediakan fasilitas telnet atau ftp. Atau mungkin remote host sedang off
ketika user mencoba aplikasi ini. Minta supaya user mencoba lagi.

Jika ping dari host anda berhasil dan ping dari host user gagal, maka pusatkan pengujian
pada host user. Kemungkinan routing dari user ke remote host salah. Bandingkan dengan
konfigurasi host anda.

Jika semua usaha ping gagal, perhatikan pesan kesalahan yang muncul. Ada beberapa tipe
dasar kesalahan:

unknown host

Nama remote host tidak dapat diterjemahkan ke dalam IP address. Kemungkinan kesalahan
pada server nama baik server lokal anda ataupun remote server. Coba ping langsung dengan
memakai nomor IP address. Jika berhasil, maka problem terletak pada name service.
Gunakan nslookup untuk menguji server lokal maupun remote dan untuk mengetahui
kebenaran nama service yang diberikan user. Jika ping gagal, kemungkinan pada jaringan
antara host anda dengan remote server terdapat problem.

254
!

network unreachable

Ini adalah masalah konfigurasi routing, dimana local host tidak memiliki route ke remote
host. Jika ping dengan IP address sudah dilakukan, ulangi ping dengan nama host,
barangkali IP yang diberikan salah. Gunakan netstat untuk mengecek tabel routing.
Jalankan ripquery untuk mengecek isi RIP yang telah diperbaharui. Jika rute ke remote host
tidak ada di tebel dan memakai rute default statik, maka perbaharui tabel tersebut dengan
menambahkan rute ke remote host. Ini seharusnya sudah membuat sambungan. Jika masih
belum, cek default gateway untuk routing.

no answer

Sebenarnya local host sudah memiliki rute ke remote host, tetapi remote host tidak memberi
respon. ping menampilkan pesan "100% packet loss". Pesan lain yang serupa, misalnya
pada telnet "Connection time out" dan pada sendmail "cannot connect".
Problem biasanya terletak pada lapisan bawah.

Beberapa penyebab antara lain:


• remote host sedang down
• konfigurasi pada local host atau remote salah
• gateway atau rangkaian antara local host dan remote host sedang down
• terjadi masalah dengan routing pada remote host.

Periksa konfugurasi lokal dengan netstat dan ifconfig. Periksa rute ke remote host dengan
traceroute. Kalau ada masalah dengan remote host, tidak ada jalan lain kecuali
memberitahu administratornya.

255
Perintah Ping

Format perintah ini:

ping host [packetsize] [count]

host nama atau IP address remote host

packetsize ukuran paket test dalam byte, diperlukan jika menyertakan count,
dengan harga default 56 byte.

count banyaknya paket yang harus dikirim selama test. Jika tidak diberikan, ping
akan mengirim paket terus-menerus sampai ditekan tombol interup (control-C).

Contoh:
maingtw # ping -s 56 -c 3 www.ee.itb.ac.id
PING www.ee.itb.ac.id (167.205.31.135): 56 data bytes
64 bytes from 167.205.31.135: icmp_seq=0 ttl=255 time=1.912 ms
64 bytes from 167.205.31.135: icmp_seq=1 ttl=255 time=8.726 ms
64 bytes from 167.205.31.135: icmp_seq=2 ttl=255 time=1.767 ms

--- www.ee.itb.ac.id ping statistics ---


3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.767/4.135/8.726 ms

icmp_seq = nomor urut paket yang diterima

time = waktu yang dibutuhkan bolak-balik dari lokal host ke remote host.

Pilihan -s diikuti oleh jumlah data (byte) yang dikirim dan


-c diikuti oleh jumlah paket. Jika pilihan ini tidak disertakan,
maka ping akan mengirim paket terus-menerus sampai Anda menekan tombol control-C
(^C). Contoh diatas dibuat di mesin maingtw (maingtw.paume.itb.ac.id).
Mesin ini menggunakan sistem operasi Free-BSD 2.00-RELEASE.
Sedangkan mesin dns.paume.itb.ac.id yang juga digunakan
berikut ini, menggunakan sistem operasi HP-UX versi lama.

256
!

Jika paket yang hilang tinggi, waktu responnya sangat lambat, atau paket yang kembali
melebihi yang seharusnya, maka kemungkinan terdapat problem pada hardware jaringan. Jika
ini terjadi pada WAN, tidak terlalu masalah. Tapi jika terjadi pada LAN Anda, maka ini
indikasi adanya masalah.

Pada LAN, round-trip time harus mendekati nol, tidak ada paket yang hilang, dan paket yang
kembali jumlahnya seperti yang diharapkan. Jika tidak, curigai adanya masalah pada hardware
jaringan. Rata-rata round-trip time pada contoh diatas adalah 4.135 mili detik.

Biasanya masalah timbul pada kabel terminator yang tidak sempurna, kabel segmen yang
jelek, pemasangan ethernet card yang tidak sempurna, dan pada sambungan repeater atau
transceiver.

Troubleshooting pada Lapisan


Network Access
"no answer" dan "cannot connect" merupakan indikasi adanya problem pada layer bawah
dari protokol jaringan. Pengujian dipusatkan pada tabel routing dan interface jaringan.
Perintah-perintah yang akan sering dipakai adalah: ifconfig, netstat dan arp.

Troubleshooting dengan perintah ifconfig

Perintah ini untuk memeriksa konfigurasi interface jaringan, terutama jika konfigurasi host
user sudah terpasang dan tidak dapat mencapai remote host, sementara host lain dalam jaringan
lokal yang sama bisa mencapainya. Contoh:

maingtw # ifconfig ed0


ed0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST>
mtu 1500 inet 167.205.22.123 netmask 0xffffffe0 broadcast
167.205.22.127

maingtw # ifconfig ed1

257
ed1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST>
mtu 1500 inet 167.205.31.131 netmask 0xffffffe0 broadcast
167.205.31.159

maingtw # ifconfig lo0


lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 65532
inet 127.0.0.1 netmask 0xff000000

Baris pertama berisi nama interface dan karakteristiknya:

UP Interface bisa dipakai. Kondisi lain adalah "DOWN". Jika interface "DOWN",
minta superuser untuk mengaktifkannya dengan perintah, misalnya,
ifconfig ed0 up. Jika masih belum bisa, chek kabel dan hardware
interfacenya. Dan coba lagi.

RUNNING Interface sedang operasional. Jika tidak "running" kemungkinan driver


interfacenya tidak cocok.

Baris kedua menampilkan IP address, subnet mask (dalam hexa-desimal), dan alamat
broadcast. Chek ketiganya dengan teliti. Dua kesalahan yang sering muncul adalah kesalahan
konfigurasi subnet mask dan IP address.

Subnet mask yang jelek dapat kita ketahui ketika sebuah host dapat mencapai host lain dalam
subnet lokal yang sama dan remote host dalam jaringan lain, tetapi tidak bisa mencapai host
dalam subnet lokal yang lain.

Tentang IP address, jika bagian network dari alamat tersebut yang salah, setiap ping akan
gagal dengan pesan "no answer". Gunakan ifconfig untuk mengetahui alamat yang
salah.

Jika bagian hostnya yang salah, agak sulit dideteksi masalahnya. Sebuah host yang hanya
berhubungan dengan host lain tanpa pernah menerima sambungan dari luar (incoming
connection), dapat beroperasi terus dengan alamat yang salah. Kasus yang lain ketika
seseorang menggunakan IP address anda pada mesinnya. Ini tidak dapat dideteksi dengan
ifconfig, karena kesalahan terletak pada remote host. Untuk ini arp akan sangat berguna.

258
!

Troubleshooting dengan Perintah arp

Perintah ini untuk menganalisa penerjemahan alamat dari IP address ke Ethernet address.
Ada tiga pilihan yang berguna:

-a menampilkan seluruh entry ARP dalam tabel

-d hostname menghapus sebuah entry dari tabel ARP

-s hostname ether-address

menambah sebuah entry baru ke dalam tabel ARP

Problem pada table ARP biasanya disebabkan karena dua sistem menggunakan IP address
yang sama. Masalah sebentar-sebentar muncul karena entry dalam tabel arp adalah alamat
yang memberikan respon paling cepat terhadap perintah ARP terakhir. Kadang-kadang host
yang "benar" memberi respon terlebih dahulu, dan kadang-kadang host yang "salah" memberi
respon lebih cepat.

Jika anda curiga ada duplikasi IP address, tampilkan tabel ARP misal:
maingtw # arp -a
system.paume.itb.ac.id (167.205.22.98) at 0:0:0:0:0:1
itbgtw.itb.ac.id (167.205.22.101) at 0:80:48:90:4f:d2
cnrg.itb.ac.id (167.205.22.107) at 2:0:0:0:0:1
dns.paume.itb.ac.id (167.205.22.120) at 8:0:9:2:9a:19
maingtw.paume.itb.ac.id (167.205.22.123) at 0:80:48:91:e8:40
permanent
gopher.ee.itb.ac.id (167.205.31.132) at 0:0:e8:c0:1:89
www.ee.itb.ac.id (167.205.31.135) at 0:0:e8:a1:6c:4c

Jika anda memiliki catatan Ethernet address tiap host, akan sangat mudah mengetahui
kesalahan pada tabel ARP tersebut. Jika tidak, tiga byte pertama dari Ethernet address
menyatakan kode vendor pembuat ethernet. Daftar prefix identitas ini dapat dijumpai di
Assigned Number RFC. Tabel pada halaman berikut berisi beberapa vendor yang dimaksud.

Dari tabel ARP tersebut, dapat kita ketahui bahwa dns.paume.itb.ac.id menggunakan mesin
keluaran Hewlett-Packard.

259
Prefix Manufacturer Prefic Manufacturer
00:00:0C Cisco 08:00:0B Unisys
00:00:0F NeXT 08:00:10 AT&T
00:00:10 Sytek 08:00:11 Tektronix
00:00:1D Cabletron 08:00:14 Excelan
00:00:65 Network General 08:00:1A Data General
00:00:6B MIPS 08:00:1B Data General
00:00:77 MIPS 08:00:1E Apollo
00:00:89 Cayman System 08:00:20 Sun
00:00:93 Proteon 08:00:25 CDC
00:00:A2 Wellfleet 08:00:2B DEC
00:00:A7 NCD 08:00:38 Bull
00:00:A9 Network System 08:00:39 Spider System
00:00:C0 Wertern Digital 08:04:6 Sony
00:00:C9 Emulex 08:04:7 Sequent
00:80:2D Xylogics Annex 08:00:5A IBM
00:AA:00 Intel 08:00:69 Silicon Graphics
00:DD:00 Ungermann-Bass 08:00:6E Excelan
00:DD:01 Ungermann-Bass 08:00:86 Imagen/QMS
02:07:01 MICOM/Interlan 08:00:87 Xyplex terminal
server
02:60:8C 3Com 08:00:89 Kinetics
08:00:02 3Com 08:00:8B Pyramid
08:00:03 ACC 08:00:90 Retix
08:00:05 Symbolics AA:00:03 DEC
08:00:08 BBN AA:00:04 DEC
08:00:09 Hewlett-Packard

Tabel 10.1
Vendor Ethernet Prefix

Mengecek Interface dengan netstat

Misalkan test terdahulu membuat anda curiga bahwa sambungan ke LAN tidak bagus.
Perintah netstat -i akan memberi informasi seperti dibawah ini:

260
!

maingtw # netstat -i
Name Mtu Network Address Ipkts Ier Opkts Oer Coll
rs rs
ed0 1500 <Link> 00.80.48.91.e8.40 547182 146 564053 2 817
ed0 1500 167.205.22 maingtw 547182 146 564053 2 817
ed1 1500 <Link> 00.80.48.81.c6.b3 924568 73 838287 70 7279
ed1 1500 167.205.31 ee-paume.ee.itb 924568 73 838287 70 7279
lp0* 1500 <Link> 0 0 0 0 0
lo0 65532 <Link> 72838 0 72838 0 0
lo0 65532 loopback localhost 72838 0 72838 0 0
sl0 552 <Link> 639890 3 679972 0 0
sl0 552 167.205.22 maingtw 639890 3 679972 0 0
sl1 552 <Link> 47209 3 53545 0 0
sl1 552 167.205.22 maingtw 47209 3 53545 0 0

Baris interface untuk loopback dapat diabaikan. Hanya empat parameter terakhir yang perlu
diperhatikan.

Jika interface dalam kondisi UP dan RUNNING dan ternyata sistem belum dapat mengirim
paket, maka Anda harus curiga dengan kabel drop dan interfacenya. Perbaiki kabelnya dan
coba lagi. Jika yakin kabelnya bagus dan tetap belum terpecahkan, periksa hardware
interfacenya. Kondisi terburuk Anda perlu memanggil vendor untuk reparasi.

Harga kesalahan input (Ierrs) dan kesalahan output (Oerrs) harus mendekati harga nol.
Kesalahan sebesar 100 sudah termasuk tinggi. Kesalahan output yang tinggi menunjukkan
terjadinya saturasi pada jaringan lokal atau sambungan fisik yang jelek antara host dengan
jaringan. Kesalahan input yang tinggi menunjukkan terjadinya saturasi pada jaringan,
overload pada lokal host atau adanya masalah pada bagian fisik jaringan. Untuk menguji
apakah bagian fisik jaringan yang rusak, gunakan perintah ping.

Tingginya nilai collision atau tabrakan (Collis) itu normal. Akan tidak normal jika
persentase paket output (Opkts) yang menyebabkan tabrakan sangat tinggi, ini
menunjukkan terjadinya saturasi pada jaringan. Persentase tabrakan lebih dari 5% itu sudah
membutuhkan perhatian. Jika persentasi tabrakan secara terus-menerus tinggi dan hampir
terjadi di setiap host, maka jaringan perlu dibagi manjadi beberapa subjaringan untuk
mengurangi beban trafik.

Persentase tabrakan dihitung dari persentasi nilai Collis terhadap Opkts. Dalam contoh
diatas, 817/564053 = 0,1 %. Aman.

Subdividing Ethernet
261
Jika collision rate jaringan Anda ternyata mencapai 5% atau lebih, maka Anda perlu
mengambil langkah pengurangan jumlah trafik yang melalui segmen jaringan Anda. Jalan
paling mudah adalah dengan membuat beberapa segment dari sebuah segmen, sehingga
setiap segmen akan memiliki lebih sedikit host dan tentunya trafik akan berkurang. Dan, cara
paling efektif membagi segmen kabel adalah dengan memotongnya dan menggabungkan
kembali melalui sebuah router atau bridge.

Router adalah divais yang memfilter trafik berdasarkan IP address dan membagi subnet
semula menjadi dua buah subnet. Router sering juga disebut sebagai gateway. Sedangkan
bridge memfilter trafik berdasarkan Ethernet address. Di sini, network tetap terdiri dari satu
subnet, tetapi subnet tersebut dibuat oleh dua buah Ethernet yang terpisah secara fisik. Pada
umumnya router digunakan pada jaringan yang besar, dan bridge digunakan untuk
menghubungkan segmen kabel.

Bridge lebih populer untuk membagi Ethernet, sebab:


• Bridge lebih murah dibandingkan router.
• Bridge tidak meminta perubahan IP address host, sementara dengan router, karena
terjadi perubahan subnet, maka membutuhkan pula perubahan IP address beberapa
host.
• Bridge memforward paket lebih cepat dari pada router, sebab hanya memproses
paket melalui lapisan yang lebih rendah, sementara router memproses paket sampai
pada lapisan IP.

Gambar di bawah menggambarkan sebuah jaringan sederhana yang dibagi dengan dua
macam cara. Dalam contoh pertama, router yang sudah ada sebelumnya, ditingkatkan
fungsinya untuk membagi jaringan menjadi dua. Pada contoh kedua, digunakan bridge.

Yang perlu diperhatikan dalam merencanakan subnet adalah kebutuhan akan layanan oleh
user. Jika seluruh service ditempatkan pada salah satu sisi dari bridge, maka trafik tidak akan
menurun secara berarti, dan kerja bridge bisa lebih keras. Sehingga, perlu dianalisa kebutuhan
service dari user, dan nantinya user yang membutuhkan suatu service tertentu lebih banyak
dari service yang lain, ditempatkan sesuai dengan penempatan server untuk service tersebut.

262
!

internet
Original network

name server

router

Workstation Workstation Workstation Workstation

Subnetted network internet

name server
router

Workstation Workstation Workstation Workstation

Bridged network internet

name server
router

bridge

Workstation Workstation Workstation Workstation

Gambar 10.1
Membagi jaringan dengan bridge

Problem pada hardware jaringan


Pada test sebelum ini, kita mungkin temukan problem pada hardware jaringan. Untuk
memperbaikinya, serahkan kepada orang yang berkompeten. Misal jika mengenai line

263
telepon, hubungi perusahaan telepon atau jika pada WAN, hubungi manajer jaringannya.
Tapi jika mengenai LAN Anda, dapat diselesaikan sendiri.

Memeriksa Tabel Routing


Pesan kesalahan "network unreachable" jelas-jelas menunjukkan adanya masalah pada
routing. Untuk melihat apakah rute ke host yang Anda tuju sudah ada di tabel routing,
gunakan perintah netstat -nr dan grep. Misal untuk melihat rute ke jaringan 167.205.
128.0:

maingtw # netstat -nr|grep '167.205.128'


167.205.128.64 167.205.31.130 UG 0 283 ed1
167.205.128.128 167.205.31.132 UG 0 180 ed1

Jika test dilakukan pada sistem yang tidak memiliki rute dalam tabel routing, tidak akan
muncul respon apapun. Misalnya ada kasus seorang user tidak dapat telnet ke
gopher.ee.itb.ac.id. Test ping memberikan hasil sebagai berikut:

maingtw # ping gopher.ee.itb.ac.id 56 2


PING gopher.ee.itb.ac.id:56 data bytes
sendto: Network is unreachable
ping: Wrote gopher.ee.itb.ac.id 64 chars, ret=-1
sendto: Network is unreachable
ping: Wrote gopher.ee.itb.ac.id 64 chars, ret=-1

----gopher.ee.itb.ac.id PING statistics----


2 packets transmitted, 0 packets recieved, 100% packets loss

Berdasarkan pesan "network unreachable", periksa tabel routing dengan netstat. Kita
tahu IP address gopher.ee.itb.ac.id adalah 167.205.8.80. Karena rute itu bersifat network
oriented, maka kita periksa rute ke jaringan 167.205.8.0:

maingtw # netstat -nr | grep '167.205.8.0'


maingtw #

264
!

Tidak ada rute khusus ke jaringan 167.205.8.0. Kemudian periksa rute defaultnya:

maingtw # netstat -nr|gerp def


default 167.205.136.15 UG 9 125302 sl0

Jika rute default diatas valid, maka permasalahan bukan di tabel routing. Jika netstat tidak
memberikan jawaban seperti yang diinginkan, maka ini adalah permasalahan ruting lokal.
Untuk memecahkannya ada dua pendekatan tergantung dari jenis routing yang digunakan.

Jika Anda menggunakan routing statik, tambahkan rute yang hilang dengan perintah route
add. Kebanyakan sistem yang menggunakan routing statik tergantung pada rute default.
Gateway untuk rute default ini harus benar. Sehingga semua rute yang hilang bisa memakai
rute default ini. Jika Anda menggunakan routing dinamik, pastikan bahwa program routing
telah berjalan.

Pada tabel ARP diatas, rute default yang dipakai maingtw adalah 167.205.136.15. IP address
ini ternyata adalah milik mesin yang berada di Telekom (Pusrenbangti Gegerkalong) yang
jelas berada di luar jaringan PAU atau ITB. Jika ada upaya menghubungi gopher, karena
tidak ada ruting ke gopher, maka akan dilewatkan ke Telkom. Disini kecil kemungkinan
mesin di Telkom tersebut memiliki rute ke gopher secara langsung. Yang dia ketahui adalah
gateway jaringan ITB yaitu maingtw. Sehingga, hubungan ke gopher tidak akan terjadi.

Maka untuk memecahkannya, perlu dibuat routing baru ke gopher dari maingtw sebagai
berikut:

maingtw # route add 167.205.8.80 167.205.22.123 1

Karena untuk menghubungi gopher dari maingtw tidak perlu gateway lagi, maka yang
menjadi gateway adalah maingtw itu sendiri, sehingga di sini kita tulis IP address maingtw
(167.205.22.123) sebagai gatewaynya.

Tracing routes
Jika tabel routing lokal dan suplier RIP benar, kemungkinan masalah yang masih timbul
adalah di luar local host atau jaringan lokal. Masalah pada remote routing dapat menyebabkan

265
pesan kesalahan "no answer" atau "network unreachable". Tapi pesan "network
unreachable" bisa juga karena sesuatu yang 'down' antara local host dengan network yang
dituju. Untuk ini, traceroute dapat membantu menemukan lokasi masalah.

traceroute merunut rute paket UDP dari local host ke remote host. Kemudian
menampilkan nama dan IP address setiap gateway sepanjang rute ke remote host tersebut.

Yang terpenting dari keluaran traceroute adalah:


• 1. Apakah paket dapat mencapai tujuan?
• 2. Jika tidak, dimana dia berhenti?

Misalkan kita ingin menampilkan rute ke www.umanitoba.ca dari local host


maingtw.paume.itb.ac.id:

maingtw # traceroute www.umanitoba.ca


traceroute to spica.cc.umanitoba.ca (130.179.16.50), 30 hops max, 40 byte
packets
1 * * *
2 * * prb-er51.telkom.go.id (167.205.136.1) 4909.335 ms
3 * 192.168.54.2 (192.168.54.2) 5052.630 ms 7778.900 ms
4 * * 192.168.50.1 (192.168.50.1) 10816.991 ms
5 * bppt-sprint.iptek.net.id (202.46.2.2) 5565.484 ms *
6 * * *
7 * * *
8 * * *
9 * fix-west-cpe.SanFrancisco.mci.net (192.203.230.18) 7038.551 ms *
10 * * *
11 * * core-fddi-0.SanFrancisco.mci.net (204.70.2.161) 4294.919 ms
12 * core-hssi-2.Denver.mci.net (204.70.1.37) 2843.251 ms 3756.625 ms
13 core-hssi-3.Washington.mci.net (204.70.1.13) 2632.945 ms 3357.703 ms
3313.537 ms
14 core-hssi-3.NewYork.mci.net (204.70.1.6) 4541.408 ms 4148.503 ms 4650.213
ms
15 border3-fddi0-0.NewYork.mci.net (204.70.2.19) 3252.295 ms 4269.670 ms
2650.108 ms
16 canet-network.NewYork.mci.net (204.70.46.6) 4456.251 ms * 4964.228 ms
17 psp.qc.canet.ca (192.70.164.221) 6808.072 ms 5248.506 ms *
18 psp.mb.canet.ca (192.70.164.41) 5576.959 ms * 5999.823 ms
19 * regional1.mb.canet.ca (192.68.64.101) 5320.669 ms 7189.042 ms
20 * spica.cc.umanitoba.ca (130.179.16.50) 7423.951 ms *

Trace ini memperlihatkan bahwa paket dapat mencapai tujuan dengan round-trip travel time
dari local host ke www.umanitoba.ca sekitar 7500 ms.

Dibawah ini contoh traceroute dari maingtw.paume.itb.ac.id ke


spica.cc.umanitoba.ca dimana paket tidak bisa mencapai tujuan:

maingtw # traceroute spica.cc.umanitoba.ca

266
!

traceroute to spica.cc.umanitoba.ca (130.179.16.50), 30 hops max, 40


byte packets
1 * * *
2 * * prb-er51.telkom.go.id (167.205.136.1) 4909.335 ms
3 * 192.168.54.2 (192.168.54.2) 5052.630 ms 7778.900 ms
4 * * 192.168.50.1 (192.168.50.1) 10816.991 ms
5 * bppt-sprint.iptek.net.id (202.46.2.2) 5565.484 ms *
6 * * *
7 * * *
8 * * *
9 * fix-west-cpe.SanFrancisco.mci.net (192.203.230.18) 7038.551 ms *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
....
30 * * *

Ketika traceroute gagal mengirim paket ke tujuan, dia akan menampilkan urutan tiga
buah tanda asterik (*) di tiap hop sampai hitungan mencapai 30. Jika ini terjadi, hubungi
administrator dari gateway terakhir yang ditampilkan oleh traceroute dan adminirtrator
host tujuan (nic.ddn.mil). Jelaskan masalah ini agar mereka bisa membantu.

Memeriksa Name Service


Prosedur ini digunakan untuk mendiagnosa kesalahan ketika pesan kesalahan "unkonown
host" muncul, yaitu menggunakan perintah nslookup. Ada tiga keutamaan dari
nslookup terutama untuk troublesooting permasalahan nama server lain yaitu
kemampuannya untuk:
• menemukan server yang berwenang atas remote domain, dengan menggunakan
pertanyaan NS;
• mendapatkan seluruh catatan tentang remote host, dengan menggunakan pertanyaan
ANY;
• browse seluruh entry dalam remote zone dengan menggunakan perintah ls dan view
dari nslookup.

Banyak masalah disebabkan oleh kesalahan dalam penulisan host name. Berikut ini beberapa
contoh aktual berdasarkan laporan gangguan:
267
Beberapa sistem beroperasi, yang lain tidak
Seorang user melaporkan bahwa dia bisa menghubungi host name tertentu dari
workstasionnya dan tidak dapat meresolve host name yang sama dari sistem sentral (server).
Tetapi sistem sentral dapat meresolve host name yang lain. Dengan nslookup untuk
memeriksa remote server:

maingtw # nslookup
Default Server: maingtw.paume.itb.ac.id
Address: 0.0.0.0

>set type=NS
>www.ee.itb.ac.id
Server: maingtw.paume.itb.ac.id
Address: 0.0.0.0

www.ee.itb.ac.id nameserver = dns.paume.itb.ac.id


www.ee.itb.ac.id nameserver = gopher.ee.itb.ac.id
dns.paume.itb.ac.id internet address = 167.205.22.120
gopher.ee.itb.ac.id internet address = 167.205.8.80

> server dns.paume.itb.ac.id


Default Server: dns.paume.itb.ac.id
Address: 167.205.22.120

> set type=ANY


> www.ee.itb.ac.id
Server: dns.paume.itb.ac.id
Address: 167.205.22.120

www.ee.itb.ac.id internet address = 167.205.31.135


www.ee.itb.ac.id internet address = 167.205.8.90

>server gopher.ee.itb.ac.id
Default Server: gopher.ee.itb.ac.id
Address: 167.205.8.80
> www.ee.itb.ac.id
268
!

Server: gopher.ee.itb.ac.id
Address: 167.205.8.80

*** gopher.ee.itb.ac.id can’t find www.ee.itb.ac.id: Non-existent


domain ***

Pada kasus di atas, kita set type query menjadi NS untuk memperoleh catatan nama server.
Kita dapatkan dua buah server: dns.paume.itb.ac.id dan
gopher.ee.itb.ac.id. Berikutnya kita set type query dengan ANY untuk melihat
beberapa catatan yang berhubungan dengan host name yang ditanyakan. Kemudian default
server diset menjadi dns.paume.itb.ac.id. Server ini bekerja dengan baik karena
memberikan catatan alamat. Lalu, server diset menjadi gopher.ee.itb.ac.id.
Ternyata tidak ada catatan yang diberikan.

Langkah berikutnya adalah menguji dengan type query SOA, untuk melihat apakah kedua
server memberikan catatan yang sama:

>set type=SOA
>www.ee.itb.ac.id
Server: gopher.ee.itb.ac.id
Address: 167.205.8.80

www.ee.itb.ac.id origin=www.ee.itb.ac.id
mail address = www.ee.itb.ac.id
serial =1995062300
refresh=10800
retry=900
expire=604800
minimum=86400

>server dns.paume.itb.ac.id
Default Server: dns.paume.itb.ac.id
Address: 167.205.22.120

>www.ee.itb.ac.id
Server: dns.paume.itb.acid
Address: 167.205.22.120
www.ee.itb.ac.id origin=www.ee.itb.ac.id
mail address=www.ee.itb.ac.id

269
serial=1995062300
refresh=10800
retry=900
expire=604800
minimum=86400

>exit

Jika SOA memiliki catatan serial number yang berbeda, barangkali zone file atau host name
belum dimasukkan ke server sekunder. Jika serial number sama dan data berbeda,
kemungkinan terjadi kesalahan dalam transerfer file. Hal ini bisa dilihat dengan nslookup
dengan set query=HINFO. Ada pesan “ paket size error”.

dig, Alternatif lain buat nslookup

dig queries biasanya berupa perintah satu baris. Berbeda dengan nslookup yang
merupakan perintah yang interaktif. Tetapi perintah dig memiliki fungsi yang sama dengan
nslookup. Keduanya bekerja dengan baik.

Misalnya, kita akan menggunakan dig untuk menanyakan catatan NS buat domain
ee.itb.ac.id kepada server lokal. Perintahnya adalah sebagai berikut:

maingtw # dig ee.itb.ac.id ns


; <<>> Dig 2.1 <<>> ee.itb.ac.id ns
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6
;; flags: qr aa rd ra; Ques: 1, Ans: 3, Auth: 3, Addit: 8
;; QUESTIONS:
;; ee.itb.ac.id, type = NS, class = IN
;; ANSWERS:
ee.itb.ac.id. 2592000 NS maingtw.paume.itb.ac.id.
ee.itb.ac.id. 2592000 NS dns.paume.itb.ac.id.
ee.itb.ac.id. 2592000 NS gopher.ee.itb.ac.id.
;; AUTHORITY RECORDS:
ee.itb.ac.id. 2592000 NS maingtw.paume.itb.ac.id.
ee.itb.ac.id. 2592000 NS dns.paume.itb.ac.id.
ee.itb.ac.id. 2592000 NS gopher.ee.itb.ac.id.

270
!

;; ADDITIONAL RECORDS:
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.33
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.123
maingtw.paume.itb.ac.id. 8640000 A 167.205.31.131
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.1
dns.paume.itb.ac.id. 8640000 A 167.205.22.120
gopher.ee.itb.ac.id. 2592000 A 167.205.8.101
gopher.ee.itb.ac.id. 2592000 A 167.205.8.80
gopher.ee.itb.ac.id. 2592000 A 167.205.31.132

;; Total query time: 37 msec


;; FROM: maingtw.paume.itb.ac.id to SERVER: default -- 0.0.0.0
;; WHEN: Sun Jul 2 10:06:34 1995
;; MSG SIZE sent: 30 rcvd: 276

Kita dapatkan tiga buah server yang dapat memberi catatan informasi tentang domain
ee.itb.ac.id dan ketiga-tiganya memiliki otoritas tersebut. Ditampilkan pula
catatan tambahan mengenai ketiga server yaitu tentang IP addressnya.

Sekarang kita coba melakukan perintah yang sama dengan tipe ANY pada dua server
yaitu maingtw dan dns.paume.itb.ac.id. Berikut ini perintahnya:

maingtw # dig ee.itb.ac.id any


; <<>> Dig 2.1 <<>> ee.itb.ac.id any
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6
;; flags: qr aa rd ra; Ques: 1, Ans: 6, Auth: 3, Addit: 10
;; QUESTIONS:
;; ee.itb.ac.id, type = ANY, class = IN

271
;; ANSWERS:
ee.itb.ac.id. 2592000 SOA gopher.ee.itb.ac.id.
cnrg.itb.ac.id. (
917076938 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
3600000 ; expire (41 days 16 hours)
2592000 ) ; minimum (30 days)
ee.itb.ac.id. 2592000 NS dns.paume.itb.ac.id.
ee.itb.ac.id. 2592000 MX 60 mail.iptek.net.id.
ee.itb.ac.id. 2592000 MX 50 www.ee.itb.ac.id.
ee.itb.ac.id. 2592000 NS gopher.ee.itb.ac.id.
ee.itb.ac.id. 2592000 NS maingtw.paume.itb.ac.id.

;; AUTHORITY RECORDS:
ee.itb.ac.id. 2592000 NS dns.paume.itb.ac.id.
ee.itb.ac.id. 2592000 NS gopher.ee.itb.ac.id.
ee.itb.ac.id. 2592000 NS maingtw.paume.itb.ac.id.

;; ADDITIONAL RECORDS:
dns.paume.itb.ac.id. 8640000 A 167.205.22.120
www.ee.itb.ac.id. 2592000 A 167.205.8.90
www.ee.itb.ac.id. 2592000 A 167.205.31.135
gopher.ee.itb.ac.id. 2592000 A 167.205.8.101
gopher.ee.itb.ac.id. 2592000 A 167.205.8.80
gopher.ee.itb.ac.id. 2592000 A 167.205.31.132
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.33
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.123
maingtw.paume.itb.ac.id. 8640000 A 167.205.31.131
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.1

;; Total query time: 77 msec


;; FROM: maingtw.paume.itb.ac.id to SERVER: default -- 0.0.0.0
;; WHEN: Sun Jul 2 10:08:04 1995
;; MSG SIZE sent: 30 rcvd: 400

Kita dapatkan informasi lebih lengkap yang terdiri dari jenis NS, MX dan SOA serta A.
Jadi, sebetulnya dengan perintah dig atau nslookup yang menggunakan tipe ANY
sudah cukup, sebab mencakup semua tipe query yang lain. Untuk tipe query A,
272
!

ditampilkan host-host yang memiliki domain ee.itb.ac.id yaitu www.ee.itb.ac.id dengan


dua buah IP address.

Sekarang kita coba perintah tersebut pada server dns.paume.itb.ac.id:

maingtw # dig @dns.paume.itb.ac.id ee.itb.ac.id any


; <<>> Dig 2.1 <<>> @dns.paume.itb.ac.id ee.itb.ac.id any
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr aa rd ra; Ques: 1, Ans: 6, Auth: 0, Addit: 10
;; QUESTIONS:
;; ee.itb.ac.id, type = ANY, class = IN

;; ANSWERS:
ee.itb.ac.id. 2592000 SOA gopher.ee.itb.ac.id.
cnrg.itb.ac.id. (
917076938 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
3600000 ; expire (41 days 16 hours)
2592000 ) ; minimum (30 days)
ee.itb.ac.id. 2592000 NS gopher.ee.itb.ac.id.
ee.itb.ac.id. 2592000 NS maingtw.paume.itb.ac.id.
ee.itb.ac.id. 2592000 NS dns.paume.itb.ac.id.
ee.itb.ac.id. 2592000 MX 60 mail.iptek.net.id.
ee.itb.ac.id. 2592000 MX 50 www.ee.itb.ac.id.

;; ADDITIONAL RECORDS:
gopher.ee.itb.ac.id. 2592000 A 167.205.8.101
gopher.ee.itb.ac.id. 2592000 A 167.205.8.80
gopher.ee.itb.ac.id. 2592000 A 167.205.31.132
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.123
maingtw.paume.itb.ac.id. 8640000 A 167.205.31.131
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.1
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.33
dns.paume.itb.ac.id. 8640000 A 167.205.22.120
www.ee.itb.ac.id. 2592000 A 167.205.31.135
www.ee.itb.ac.id. 2592000 A 167.205.8.90
273
;; Total query time: 30 msec
;; FROM: maingtw.paume.itb.ac.id to SERVER: dns.paume.itb.ac.id
167.205.22.120
;; WHEN: Sun Jul 2 10:08:43 1995
;; MSG SIZE sent: 30 rcvd: 358

Kita dapatkan catatan yang sama. Dapat dilihat parameter-parameter pada SOA di kedua
server adalah sama.

Server dapat ditulis dengan nama atau IP addressnya. Jika Anda akan melakukan
troubleshooting buat remote domain, tentukan authoritatif server untuk domain tersebut. Dalam
contoh diatas, kita menanyakan nama server untuk top-level domain (ee.itb.ac.id). Jika Anda
tidak menentukan server secara eksplisit, dig akan menggunakan name server lokal atau
name server yang didefinisikan di file /etc/resolve.conf.

Item terakhir pada perintah satu baris dari sample diatas adalah type querynya. Tipe query ini
akan menentukan tipe informasi DNS dan sama dengan item yang dimasukkan dalam
nslookup yaitu pada perintah set type. Tabel dibawah ini menunjukkan tipe-tipe query
yang bisa diajukan.

Tipe pertanyaan Catatan DNS yang diminta


a Address records
any Seluruh tipe records
mx Mail Exchanger records
ns Name Server record
soa Start of Authority records
hinfo Host Info Records
axfr All records in the zone
txt Text records

Tabel 10.2
Tipe pertanyaan pada dig

Fungsi nslookup ls diganti oleh tipe query axfr dan txt.


274
!

dig juga memiliki sebuah pilihan yang berguna untuk mengetahui host name ketika anda
hanya mengetahui IP address. Domain in-addr.arpa mengubah alamat (address) ke host
name, dan dig menyediakan jalan yang mudah untuk mengajukan query pada domain
tersebut, yaitu menggunakan dig dengan pilihan -x.

Misalnya kita ingin mengetahui host name dari mesin yang memiliki IP address
167.205.22.124:

maingtw # dig -x 167.205.22.124


.; <<>> Dig 2.1 <<>> -x
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6
;; flags: qr aa rd ra; Ques: 1, Ans: 1, Auth: 3, Addit: 8
;; QUESTIONS:
;; 124.22.205.167.in-addr.arpa, type = ANY, class = IN
;; ANSWERS:
124.22.205.167.in-addr.arpa. 64000 PTR www.itb.ac.id.
;; AUTHORITY RECORDS:
22.205.167.IN-ADDR.ARPA. 64000 NS dns.paume.itb.ac.id.
22.205.167.IN-ADDR.ARPA. 864000 NS maingtw.paume.itb.ac.id.
22.205.167.IN-ADDR.ARPA. 864000 NS gopher.ee.itb.ac.id.

;; ADDITIONAL RECORDS:
dns.paume.itb.ac.id. 8640000 A 167.205.22.120
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.33
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.123
maingtw.paume.itb.ac.id. 8640000 A 167.205.31.131
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.1
gopher.ee.itb.ac.id. 2592000 A 167.205.8.101
gopher.ee.itb.ac.id. 2592000 A 167.205.8.80
gopher.ee.itb.ac.id. 2592000 A 167.205.31.132

;; Total query time: 55 msec


;; FROM: maingtw.paume.itb.ac.id to SERVER: default -- 0.0.0.0
;; WHEN: Sun Jul 2 10:14:01 1995
;; MSG SIZE sent: 45 rcvd: 293

275
Jawaban dari pertanyaan kita adalah www.itb.ac.id dan disamping itu juga
ditampilkan output yang lain. Bagi kita, hanya informasi yang penting saja yang menjadi
jawabannya. Kita juga bisa mengetahui informasi lain tetang www.itb.ac.id dengan
perintah berikut:

maingtw # dig www.itb.ac.id any


; <<>> Dig 2.1 <<>> www.itb.ac.id any
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6
;; flags: qr aa rd ra; Ques: 1, Ans: 1, Auth: 6, Addit: 11
;; QUESTIONS:
;; www.itb.ac.id, type = ANY, class = IN

;; ANSWERS:
www.itb.ac.id. 8640000 CNAME www.ee.itb.ac.id.

;; AUTHORITY RECORDS:
itb.ac.id. 8640000 NS dns.paume.itb.ac.id.
itb.ac.id. 8640000 NS maingtw.paume.itb.ac.id.
itb.ac.id. 8640000 NS gopher.ee.itb.ac.id.
itb.ac.id. 8640000 NS caddsys.iptek.net.id.
itb.ac.id. 8640000 NS sdnid.sdn.or.id.
itb.ac.id. 8640000 NS nomad.extern.ui.ac.id.

;; ADDITIONAL RECORDS:
dns.paume.itb.ac.id. 8640000 A 167.205.22.120
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.33
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.123
maingtw.paume.itb.ac.id. 8640000 A 167.205.31.131
maingtw.paume.itb.ac.id. 8640000 A 167.205.22.1
gopher.ee.itb.ac.id. 2592000 A 167.205.8.101
gopher.ee.itb.ac.id. 2592000 A 167.205.8.80
gopher.ee.itb.ac.id. 2592000 A 167.205.31.132
caddsys.iptek.net.id. 86400 A 202.46.1.2
sdnid.sdn.or.id. 134290 A 192.215.248.222
nomad.extern.ui.ac.id. 47890 A 192.215.248.220

;; Total query time: 28 msec

276
!

;; FROM: maingtw.paume.itb.ac.id to SERVER: default -- 0.0.0.0


;; WHEN: Sun Jul 2 10:14:27 1995
;; MSG SIZE sent: 31 rcvd: 393

Dengan tipe ANY, kita dapatkan catatan lebih banyak lagi, dan dari perintah di atas, kita
ketahui bahwa www.itb.ac.id itu memiliki canonical name (nama lain) yaitu
www.ee.itb.ac.id.

277
Filename: Networking
Directory: C:\My Documents\Amal 's Music\Tcpip&jaringan
Template: C:\MSOffice\Templates\Buku Training.dot
Title: 2
Subject:
Author: Ismail Fahmi
Keywords:
Comments:
Creation Date: 6/22/01 3:30 PM
Change Number: 4
Last Saved On: 6/22/01 3:38 PM
Last Saved By: Khairun Nisa
Total Editing Time: 9 Minutes
Last Printed On: 6/22/01 3:59 PM
As of Last Complete Printing
Number of Pages: 277
Number of Words: 49,356 (approx.)
Number of Characters: 306,008 (approx.)