Sabtu, 12 Desember 2009

Konfigurasi Router O.S.

Apa sih Mikrotik Router OS itu ? Mikrotik Router OS adalah sistem operasi dan perangkat lunak yang dapat digunakan untuk menjadikan komputer menjadi router network (PC Router) yang handal, mencakup berbagai fitur yang dibuat untuk ip network dan jaringan wireless, cocok digunakan oleh ISP, Lembaga Pendidikan, Perusahaan Komersial, Provider Hotspot. Sebelum mengetikan apapun, pastikan anda telah berada pada root menu dengan mengetikan "/" 1. Set IP untuk masing-masing ethernet card # ip address add address=192.168.0.2/24 interface=ether1 # ip address add address=192.168.10.2/24 interface=ether2 Untuk menampilkan hasil perintah di atas ketikkan perintah berikut : # ip address print Kemudian lakukan testing dengan mencoba nge-ping ke gateway atau ke komputer yang ada pada LAN. Jika hasilnya sukses, maka konfigurasi IP anda sudah benar. #ping 192.168.0.1 #ping 192.168.10.1 2. Menambahkan Routing # ip route add gateway=192.168.0.1 3. Setting DOmain Name Server (DNS) #ip dns set primary-dns=202.129.188.5 allow-remote-requests=yes #ip dns set secondary-dns=202.129.188.1 allow-remote-requests=yes Karena koneksi ini menggunakan wirelles provider Inet, maka DNS yang aku pakai ya punya provider Inet. Silahkan sesuaikan DNS provider anda. Setelah itu coba anda lakukan ping ke www.ragnarok.co.id atau ke www.yahoo.com, misalnya: #ping www.ragnarok.co.id #ping www.yahoo.com Jika hasilnya sukses berarti settingan DNs sudah benar. 4. Source NAT (Network Address Translation)/ masqureading Agar semua komputer yang ada di LAN bisa terhubung ke internet juga, maka anda perlu menambahkan NAT (masqureade) pada mikrotik. #ip firewall nat add chain=srcnat action=masquerade out-interface=ether1 Sekarang coba lakukan ping ke www.yahoo.com dari komputer yang ada di LAN (komputer client) #ping www.yahoo.com Jika hasilnya sukses, maka settingan masquerade sudah benar

Langkah-langkah berikut adalah dasar-dasar setup mikrotik yang dikonfigurasikan untuk jaringan sederhana sebagai gateway server.

1. Langkah pertama adalah install Mikrotik RouterOS pada PC atau pasang DOM.

2. Login Pada Mikrotik Routers melalui console :

MikroTik v2.9.39

Login: admin

Password: (kosongkan)

Sampai langkah ini kita sudah bisa masuk pada mesin Mikrotik. User default adalah admin dan tanpa password, tinggal ketik admin kemudian tekan tombol enter.

3. Untuk keamanan ganti password default

[admin@Mikrotik] > password

old password: *****

new password: *****

retype new password: *****

[admin@ Mikrotik] >

4. Mengganti nama Mikrotik Router, pada langkah ini nama server akan kita ganti menjadi “r-WLI” (bebas, disesuaikan dengan nama jaringan kita…)

[admin@Mikrotik] > system identity set name=r-WLI

[admin@r-WLI] >

5. Melihat interface pada Mikrotik Router

[admin@r-WLI] > interface print

Flags: X - disabled, D - dynamic, R - running

# NAME TYPE RX-RATE TX-RATE MTU

0 R ether1 ether 0 0 1500

1 R ether2 ether 0 0 1500

[admin@r-WLI] >

6. Memberikan IP address pada interface Mikrotik. Misalkan ether1 akan kita gunakan untuk koneksi ke Internet dengan IP 192.168.0.1 dan ether2 akan kita gunakan untuk network local kita dengan IP 172.16.0.1

[admin@r-WLI] > ip address add address=192.168.0.1 /

netmask=255.255.255.0 interface=ether1

[admin@r-WLI] > ip address add address=172.16.0.1 /

netmask=255.255.255.0 interface=ether2

7. Melihat konfigurasi IP address yang sudah kita berikan

[admin@r-WLI] >ip address print

Flags: X - disabled, I - invalid, D - dynamic

# ADDRESS NETWORK BROADCAST INTERFACE

0 192.168.0.1/24 192.168.0.0 192.168.0.63 ether1

1 172.16.0.1/24 172.16.0.0 172.16.0.255 ether2

[admin@r-WLI] >

8. Memberikan default Gateway, diasumsikan gateway untuk koneksi internet adalah 192.168.0.254

[admin@r-WLI] > /ip route add gateway=192.168.0.254

9. Melihat Tabel routing pada Mikrotik Routers

[admin@r-WLI] > ip route print

Flags: X - disabled, A - active, D - dynamic,

C - connect, S - static, r - rip, b - bgp, o - ospf

# DST-ADDRESS PREF-SRC G GATEWAY DISTANCE INTERFACE

0 ADC 172.16.0.0/24 172.16.0.1 ether2

1 ADC 192.168.0.0/26 192.168.0.1 ether1

2 A S 0.0.0.0/0 r 192.168.0.254 ether1

[admin@r-WLI] >

10. Tes Ping ke Gateway untuk memastikan konfigurasi sudah benar

[admin@r-WLI] > ping 192.168.0.254

192.168.0.254 64 byte ping: ttl=64 time

11. Setup DNS pada Mikrotik Routers

[admin@r-WLI] > ip dns set primary-dns=192.168.0.10 /

allow-remoterequests=no

[admin@r-WLI] > ip dns set secondary-dns=192.168.0.11 /

allow-remoterequests=no

12. Melihat konfigurasi DNS

[admin@r-WLI] ip dns> pr

primary-dns: 192.168.0.10

secondary-dns: 192.168.0.11

allow-remote-requests: no

cache-size: 2048KiB

cache-max-ttl: 1w

cache-used: 21KiB

[admin@r-WLI] ip dns>

13. Tes untuk akses domain, misalnya dengan ping nama domain

[admin@r-WLI] > ping yahoo.com

216.109.112.135 64 byte ping: ttl=48 time=250 ms 10 packets transmitted, 10 packets received, 0% packet loss round-trip min/avg/max = 571/571.0/571 ms [admin@r-WLI] >

Jika sudah berhasil reply berarti seting DNS sudah benar.

14. Setup Masquerading, Jika Mikrotik akan kita pergunakan sebagai gateway server maka agar client computer pada network dapat terkoneksi ke internet perlu kita masquerading.

[admin@r-WLI]> ip firewall nat add action=masquerade /

outinterface=ether1 chain:srcnat

[admin@r-WLI] >

15. Melihat konfigurasi Masquerading

[admin@r-WLI]ip firewall nat print

Flags: X - disabled, I - invalid, D - dynamic

0 chain=srcnat out-interface=ether1 action=masquerade

[admin@r-WLI] >

Setelah langkah ini bisa dilakukan pemeriksaan untuk koneksi dari jaringan local. Dan jika berhasil berarti kita sudah berhasil melakukan instalasi MikroTik Router sebagai Gateway server. Setelah terkoneksi dengan jaringan Mikrotik dapat dimanage menggunakan WinBox yang bisa didownload dari MikroTik.com atau dari server mikrotik kita.

Misal Ip address server mikrotik kita 192.168.0.1, via browser buka http://192.168.0.1 dan download WinBox dari situ. Jika kita menginginkan client mendapatkan IP address secara otomatis maka perlu kita setup dhcp server pada Mikrotik. Berikut langkah-langkahnya :

1. Buat IP address pool /ip pool add name=dhcp-pool ranges=172.16.0.10-172.16.0.20

2. Tambahkan DHCP Network dan gatewaynya yang akan didistribusikan ke client Pada contoh ini networknya adalah 172.16.0.0/24 dan gatewaynya 172.16.0.1 /ip dhcp-server network add address=172.16.0.0/24 gateway=172.16.0.1

3. Tambahkan DHCP Server ( pada contoh ini dhcp diterapkan pada interface ether2 ) /ip dhcp-server add interface=ether2 address-pool=dhcp-pool

4. Lihat status DHCP server

[admin@r-WLI] > ip dhcp-server pr

Flags: X - disabled, I - invalid

# NAME INTERFACE RELAY ADDRESS-POOL LEASE-TIME ADD-ARP

x dhcp1 ether2 dhcp_pool1 4w2d yes

[admin@r-WLI] >

Tanda X menyatakan bahwa DHCP server belum enable maka perlu dienablekan terlebih dahulu pada langkah 5.

5. Jangan Lupa dibuat enable dulu dhcp servernya /ip dhcp-server enable 0

Kemudian cek kembali dhcp-server seperti langkah 4, jika tanda X sudah tidak ada berarti sudah aktif.

6. Tes Dari client

Run dari Comman Prompt

Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\EsDat>ping www.yahoo.com

Pinging www.yahoo-ht3.akadns.net [69.147.114.210] with 32 bytes of data:

Reply from 124.158.129.5: bytes=32 time=34ms TTL=59 Reply from 124.158.129.5: bytes=32 time=24ms TTL=59 Reply from 124.158.129.5: bytes=32 time=41ms TTL=59 Reply from 124.158.129.5: bytes=32 time=29ms TTL=59

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

7. Untuk bandwith controller, bisa dengan sistem simple queue ataupun bisa dengan mangle

[admin@r-WLI] queue simple> add name=Komputer01 /

interface=ether2 target-address=172.16.0.1/24 max-limit=65536/131072

[admin@r-WLI] queue simple> add name=Komputer02 /

interface=ether2 target-address=172.16.0.2/24 max-limit=65536/131072

dan seterusnya…

Senin, 07 Desember 2009

Mikrotik: membuat hotspot baypass traffic IIX

Versi mikrotik yang saya pakai masih 2.9.50 belum upgrade ke versi 3.x. Saya memakai 2 interface ethernet.

> interface print
Flags: X - disabled, D - dynamic, R - running
#    NAME            TYPE             RX-RATE    TX-RATE    MTU
0  R WAN             ether            0          0          1500
1  R LAN             ether            0          0          1500

Untuk memisahkan traffic inter dan lokal saya mengambil script yang di tulis di mikrotik.co.id. Terutama untuk firewall mangle-nya.

/ip firewall mangle
add chain=prerouting action=mark-connection new-connection-mark=iix-con \
 passthrough=yes in-interface=LAN dst-address-list=nice comment="marking iix" \
 disabled=no
add chain=prerouting action=mark-packet new-packet-mark=iix \
 passthrough=no connection-mark=iix-con comment="" disabled=no
add chain=prerouting action=mark-packet new-packet-mark=inter \
 passthrough=no comment="marking internasional" disabled=no

Fitur hotspot di mikrotik secara otomatis akan membuat queue simple untuk setiap user yang login. Pada kondisi ini semua traffic akan masuk kedalam queue-nya, baik internasional atau lokal.

Untuk mensiasati hal ini perlu dibuatkan dibuatkan rule queue baru untuk menangani traffic internasional dan lokal.

/queue simple
add name="INTER" target-addresses=172.16.1.0/24 dst-address=0.0.0.0/0 \
interface=all parent=none packet-marks=inter direction=both priority=1 \
queue=default-small/default-small limit-at=0/0 max-limit=512000/512000 \
total-queue=default-small disabled=no

add name="LOKAL" target-addresses=172.16.1.0/24 dst-address=0.0.0.0/0 \
interface=LAN parent=none packet-marks=iix direction=both priority=1 \
queue=default-small/default-small limit-at=0/0 max-limit=0/0 \
total-queue=default-small disabled=no

Berikutnya, edit user profile seperti contoh dibawah:

[xxx@xxx] ip hotspot user profile> print
Flags: * - default
0 * name="default" address-pool=hs-pool-2 keepalive-timeout=2m
  status-autorefresh=1m shared-users=1 rate-limit="64k/64k 128k/128k"
  on-login=:foreach i in [/queue simple find dynamic=yes] do={ /queue simple
           set $i parent="INTER" }\r\n\r\n:foreach n in=[/queue simple find
           priority=1] do={ /queue simple move $n [:pick [/queue simple
           find] 0] }\r\n\r\n:foreach n in=[/queue simple find priority=2]
           do={ /queue simple move $n [:pick [/queue simple find] 0] }
  transparent-proxy=no

Pastikan address-pool nya sesuai dengan yang di tempat anda.

Hostspot dengan pemisahan pembatasan internasional dan baypass lokal selesai sudah dan siap dipergunakan.

hotspot bypass iix Mikrotik: membuat hotspot baypass traffic IIX

DHCP

Apa Itu DHCP ?

Apa itu DHCP? DHCP merupakan singkatan dari Dynamic Host Configuration Protocol.

Apa kegunaan dari DHCP? Guna dari DHCP sangatlah besar dalam suatu jaringan komputer. DHCP digunakan agar komputer-komputer yang terdapat pada suatu jaringan komputer bisa mengambil konfigurasi (baik itu IP address, DNS address dan lain sebagainya) bagi mereka dari suatu server DHCP. Intinya dengan adanya DHCP maka akan mampu mengurangi pekerjaan dalam mengadministrasi suatu jaringan komputer berbasis IP yang besar. Bayangkan jika suatu jaringan komputer yang terdiri dari 1000 komputer dan Anda harus mengeset IP address pada masing-masing komputer secara manual. Payah bukan?

Tanya Jawab Seputar DHCP (Dynamic Host Configuration Protocol)

  1. Siapa yang menciptakan DHCP? Bagaimana mereka menciptakan DHCP? DHCP dibuat dan didesain oleh kelompok kerja Dynamic Host Configuration pada Internet Engineering Task Force (IETF). IETF sendiri merupakan organisasi yang mendefinisikan berbagai macam protokol dalam hubungannya dengan internet. Selanjutnya, definisi dari DHCP itu sendiri dituangkan ke dalam suatu dokumen RFC (Request for Comments) dan kemudian Internet Activities Board (IAB) mengkaji statusnya untuk kemudian menjadi suatu standar di internet. Sampai dengan bulan Maret 1996, status DHCP merupakan suatu Internet Proposed Standard Protocol dan sifatnya Elective. Sementara itu BOOTP saat itu merupakan Internet Draft Standard Protocol dan sifatnya Recommended. Untuk melihat lebih jauh mengenai standarisasi internet pada saat itu, silakan akses atau baca RFC1920.

  2. Bagaimana perbedaannya DHCP dibandingkan dengan BOOTP dan RARP? DHCP berbasiskan pada BOOTP dan masih kompatibel dengan teknologi sebelumnya. Perbedaan utamanya adalah BOOTP didesain untuk manual pre-configuration dari informasi host di dalam suatu server database, sementara itu DHCP digunakan untuk memberi alokasi alamat jaringan secara dinamis dan juga konfigurasi penting lainnya bagi host-host yang baru bergabung ke dalam jaringan. Sebagai tambahan, DHCP membolehkan suatu metode recovery dan juga relokasi dari suatu alamat jaringan melalui suatu mekanisme leasing.RARP merupakan suatu protokol yang digunakan oleh Sun dan vendor lainnya yang mana membolehkan suatu komputer untuk mencari nomor IP-nya sendiri, yang mana salah satu parameter-parameter protokol diberikan ke client system dengan DHCP atau BOOTP. RARP tidak mendukung parameter-parameter lainnya dan menggunakannya. Sebuah server hanya mampu untuk melayani LAN tunggal. Sementara itu DHCP dan BOOTP didesain agar mereka bisa di-route pada jaringan.
  3. Bagaimana jika alamat IP pada client diberikan secara otomatis tanpa menggunakan DHCP server? Secara teoritis hal ini sangat mungkin, dimana suatu client atau komputer bisa mengambil sembarang IP address bagi dia sendiri dan kemudian mem-broadcast suatu request kepada komputer-komputer lainnya untuk melihat apakah alamat IP tersebut sudah digunakan atau belum. Appletalk didesain dengan ide seperti itu dan MacTCP pada Apple bisa dikonfigurasi seperti hal tersebut. Namun demikian, metode alokasi IP seperti itu memiliki beberapa kelemahan, yaitu:

    1. Komputer yang memerlukan IP address permanen bisa saja dimatikan dan hal itu membuatnya kehilangan IP address nya dan IP address tersebut bisa digunakan oleh komputer lainnya. Ini bisa berakibat pada masalah kesulitan mencari service yang ada pada jaringan dan juga resiko pada masalah keamanan.

    2. Jika pemberikan IP address ini harus diberikan dengan mengikuti suatu range tertentu, maka hal ini akan menimbulkan masalah karena kita harus menentukan range-nya pada masing-masing komputer. Ini akan bisa mengakibatkan terjadinya hidden configuration error dan kesulitan dalam mengganti range-nya di kemudian hari.

  4. Dapatkah DHCP memberi alamat IP ke dalam jaringan secara statis? Ya. Ini bisa diibaratkan bahwa setiap client di dalam jaringan komputer yang menerapkan DHCP selalu akan menerima IP yang sama selamanya. Ini sangat mungkin diimplementasikan dan menurut dokumen RFC, ini merupakan suatu alokasi alamat secara manual tetapi dilakukan secara tersentralisasi.

  5. Dapatkah suatu client BOOTP melakukan booting dari DHCP server? Bisa saja selama DHCP server secara spesifik ditulis untuk juga menghandle BOOTP query.

  6. Dapatkah suatu client DHCP melakukan booting dari BOOTP server? Bisa saja selama client DHCP ditulis secara spesifik untuk menjawab pesan dari suatu BOOTP server.

  7. Bisakah suatu DHCP server menjadi backup bagi DHCP server yang lain? Anda bisa saja memiliki beberapa DHCP server dalam suatu jaringan. Selama server-server DHCP tersebut identik dan memiliki alokasi yang sama bagi semua client dalam jaringan tersebut, maka apabila salah satu DHCP server mati, data konfigurasi bisa diambil dari server DHCP lain yang masih hidup. Untuk itu diperlukan suatu metode komunikasi server-to-server pada server-server DHCP.

  8. Di mana DHCP didefinisikan? Anda bisa membaca dokumen RFC1541, RFC1534 dan RFC1533. Untuk membacanya silakan Anda menuju ke http://ds.internic.net/ds/dspg1intdoc.html

  9. Di mana saya bisa baca-baca hal yang lebih luas lagi mengenai DHCP ini? Silakan Anda ke alamat http://www.bucknell.edu/~droms/dhcp/ atau ke http://info.isoc.org/HMP/PAPER/127/html/paper.html atau seperti biasa, Anda bisa cari di Google atau Yahoo! dengan keyword DHCP tutorial.

  10. Fitur apa saja yang ditawarkan oleh DHCP? DHCP server mengenal tiga macam jenis alokasi, yaitu:

    1. Manual allocation: dimana administrator server membuat konfigurasi pada server yang mencatat MAC address dari setiap komputer dan untuk setiap MAC address tersebut sudah ditentukan masing-masing IP address-nya.

    2. Automatic allocation: dimana administrator server membuat konfigurasi pada server yang mana hanya mengandung IP address yang nantinya akan diberikan kepada komputer client. Sekali suatu alamat IP terasosiasi dengan suatu MAC address pada komputer, maka ia akan secara permanen diasosiasikan dengan MAC address tersebut sampai administrator server merubahnya secara manual.

    3. Dynamic allocation: hal ini sama halnya seperti automatic allocation, tetapi server akan mencatat status peminjaman IP address (leases) dan akan memberikan alamat IP yang lease-nya sudah expire kepada client DHCP atau komputer yang lainnya.

Referensi

  • OSS/CIT (Operational Support Service), DHCP FAQ, 2004, University at Buffalo

DHCP SERVER

DHCP (Dynamic Host Configuration Protocol) adalah protokol yang berbasis arsitektur client/server yang dipakai untuk memudahkan pengalokasian alamat IP dalam satu jaringan. Sebuah jaringan lokal yang tidak menggunakan DHCP harus memberikan alamat IP kepada semua komputer secara manual. Jika DHCP dipasang di jaringan lokal, maka semua komputer yang tersambung di jaringan akan mendapatkan alamat IP secara otomatis dari server DHCP. Selain alamat IP, banyak parameter jaringan yang dapat diberikan oleh DHCP, seperti default gateway dan DNS server. Sumber : Wikipedia.

Setting DHCP Server pada OpenSUSE sangat mudah dan proses konfigurasinya hanya membutuhkan 4 langkah singkat. Berikut adalah tahapannya :

INSTALASI

  1. Buka YAST. Masukkan password root jika login sebagai user normal
  2. dhcp1

  3. Pilih menu Software | Software Management
  4. dhcp2

  5. Pada pilihan filter, pilih Pattern
  6. dhcp3

  7. Pilih DHCP & DNS Server. Berikan tanda centang pada pilihan yang ada
  8. dhcp4

  9. Klik Accept dan tunggu hingga instalasi selesai
  10. Tutup YAST

KONFIGURASI

  1. Buka YAST
  2. Pilih menu Network Service | DHCP Server
  3. dhcp5

  4. Jika ada konfirmasi penggunaan Knetworkmanager, klik Continue
  5. Pada wizard pertama, tentukan Network Card yang dijadikan sebagai jalur pemberian IP melalui DHCP. Pilih network card dan klik tombol Selec. Klik Next.
  6. dhcp6

  7. Pada wizard kedua, tentukan nama domain, alamat name server, gateway dll. Setelah selesai, klik Next.
  8. dhcp7

  9. Pada wizard ketiga, tentukan Alokasi IP Addres yang akan diberikan. Misalny, jika kita sudah memiliki cadangan IP statik (untuk keperluan server, Access Point dll) dari IP 192.168.0.1-192.168.0.100, maka kita bisa mendefinisikan IP Range 192.168.0.101-192.168.0.254
  10. dhcp8

  11. Terakhir, pilih apakah DHCP Server diaktifkan secara otomatis saat booting ataukah dijalankan secara manual. Untuk server sebaiknya tentukan agar berjalan secara otomatis pada saat booting.
  12. dhcp9

Coba test salah satu klien untuk menggunakan IP DHCP dan check apakah DHCP Server mampu meresponnya dengan memberikan alokasi IP Address.

Dynamic Host Configuration Protocol

1. Pendahuluan

  Dynamic Host Configuration Protocol (DHCP) menyediakan konfigurasi
  parameter ke Internet host. DHCP terdiri dari dua komponen: sebuah
  protokol untuk menyampaikan host-parameter konfigurasi tertentu dari
  DHCP server ke host dan sebuah mekanisme untuk alokasi jaringan
  alamat untuk host.

  DHCP dibangun pada model client-server, dimana DHCP server ditentukan
  host mengalokasikan alamat jaringan dan memberikan parameter konfigurasi
  host dikonfigurasi untuk secara dinamis. Seluruh sisa dari
  dokumen, istilah "server" mengacu ke host menyediakan initialization
  parameter melalui DHCP, dan istilah "klien" mengacu ke host
  meminta initialization parameter dari server DHCP.

  Sebuah host tidak boleh bertindak sebagai server DHCP yang dikonfigurasi secara eksplisit kecuali
  untuk melakukannya oleh administrator sistem. Keragaman hardware dan
  protokol implementasi di Internet akan menghalangi diandalkan
  operasi jika tuan rumah acak diizinkan untuk merespon permintaan DHCP.
  Sebagai contoh, IP membutuhkan pengaturan dari banyak parameter dalam
  implementasi protokol perangkat lunak. Karena IP dapat digunakan pada banyak
  berbeda jenis perangkat keras jaringan, nilai untuk parameter tersebut
  tidak dapat ditebak atau dianggap telah benar default. Juga,
  skema alokasi alamat dibagikan tergantung pada polling / pertahananmekanisme untuk penemuan alamat yang sudah digunakan. IP
  host mungkin tidak selalu dapat mempertahankan alamat jaringan mereka, sehingga
  bahwa seperti skema alokasi alamat didistribusikan tidak dapat
  dijamin untuk menghindari duplikasi alokasi alamat jaringan.

  DHCP mendukung tiga mekanisme untuk alokasi alamat IP. Di
  "alokasi otomatis", DHCP memberikan alamat IP permanen ke
  klien. Dalam "alokasi dinamis", DHCP memberikan alamat IP ke
  klien untuk jangka waktu terbatas (atau sampai klien secara eksplisit
  relinquishes alamat). Dalam "alokasi manual", sebuah klien IP
  alamat yang diberikan oleh administrator jaringan, dan DHCP digunakan
  hanya untuk menyampaikan alamat yang ditugaskan ke klien. A khusus
  jaringan akan menggunakan satu atau lebih dari mekanisme ini, tergantung pada
  kebijakan dari administrator jaringan.

  Dynamic alokasi adalah hanya salah satu dari tiga mekanisme yang
  memungkinkan penggunaan kembali otomatis alamat yang tidak lagi dibutuhkan oleh
  klien yang ditugaskan. Dengan demikian, alokasi dinamis
  terutama berguna untuk menetapkan sebuah alamat kepada klien yang akan
  terhubung ke jaringan hanya sementara atau untuk berbagi terbatas
  renang alamat IP di antara sekelompok klien yang tidak memerlukan
  alamat IP permanen. Alokasi dinamis mungkin juga menjadi pilihan yang baik
  untuk menetapkan alamat IP untuk klien baru yang permanen
  terhubung ke jaringan di mana alamat IP yang cukup langka
  bahwa penting untuk merebut kembali mereka ketika klien lama pensiun.
  Memungkinkan alokasi manual DHCP digunakan untuk menghilangkan kesalahan-rawan
  proses secara manual mengkonfigurasi host dengan alamat IP dalam
  lingkungan di mana (untuk alasan apapun) itu diinginkan untuk mengelola
  Alamat IP di luar mekanisme DHCP.

  Format pesan DHCP didasarkan pada format pesan BOOTP,
  untuk menangkap perilaku agen relai BOOTP digambarkan sebagai bagian dari
  BOOTP spesifikasi [7, 21] dan untuk memungkinkan interoperabilitas yang ada
  BOOTP klien dengan server DHCP. Menggunakan agen relai BOOTP menghilangkan
  perlunya memiliki sebuah server DHCP pada jaringan fisik masing-masing
  segmen.

Perubahan 1,1 RFC 1541

  Dokumen ini pembaruan protokol DHCP spesifikasi yang muncul di
  RFC1541. Sebuah jenis pesan DHCP baru, DHCPINFORM, telah ditambahkan; lihat
  bagian 3.4, 4.3 dan 4.4 untuk rincian. Mekanisme yang mengklasifikasikan
  mengidentifikasi klien DHCP server DHCP telah diperluas untuk mencakup
  "vendor" kelas sebagaimana didefinisikan dalam bagian 4.2 dan 4.3. Minimum
  lease time pembatasan telah dihapus. Akhirnya, banyak editorial
  perubahan yang telah dibuat untuk memperjelas teks sebagai hasil dari pengalaman
  diperoleh dalam tes interoperabilitas DHCP.

1,2 Terkait Kerja

  Ada beberapa Internet protokol dan mekanisme yang terkait
  alamat beberapa bagian konfigurasi host dinamik masalah. Itu
  Reverse Address Resolution Protocol (RARP) [10] (melalui
  ekstensi didefinisikan dalam Dynamic RARP (DRARP) [5]) secara eksplisit
  masalah alamat alamat jaringan penemuan, dan mencakup
  alamat IP otomatis mekanisme. The Trivial File Transfer
  Protokol (TFTP) [20] menyediakan transportasi dari boot image dari
  boot server. Internet Control Message Protocol (ICMP) [16]
  menyediakan host untuk menginformasikan router tambahan melalui "ICMP
  redirect "pesan. ICMP juga dapat memberikan informasi subnet mask
  melalui "topeng ICMP permintaan" pesan dan informasi lainnya melalui
  yang (obsolete) "permintaan informasi ICMP" pesan. Host dapat menemukan
  ICMP router melalui mekanisme penemuan router [8].

  BOOTP adalah mekanisme transportasi untuk koleksi konfigurasi
  informasi. BOOTP juga extensible, dan ekstensi resmi [17]
  telah ditetapkan untuk beberapa parameter konfigurasi. Morgan
  diusulkan ekstensi untuk BOOTP untuk alamat IP dinamis tugas [15].
  Network Information Protocol (NIP), yang digunakan oleh proyek Athena
  MIT, adalah sebuah mekanisme untuk didistribusikan alamat IP dinamis
  [19]. Resource Location Protocol RLP [1] menyediakan lokasi
  layanan tingkat tinggi. Sun Microsystems workstation diskless menggunakan
  prosedur boot yang mempekerjakan RARP, TFTP dan mekanisme yang disebut RPC
  "bootparams" untuk menyampaikan informasi konfigurasi dan operasi
  kode untuk sistem diskless host. (Sun Microsystems, Sun Workstation
  dan SunOS adalah merek dagang dari Sun Microsystems, Inc) Beberapa Minggu
  jaringan juga menggunakan DRARP dan instalasi otomatis mekanisme untuk
  mengotomatisasi konfigurasi host baru di jaringan yang sudah ada.

  Dalam kerja terkait lainnya, jalan minimal transmission unit (MTU)
  penemuan algoritma dapat menentukan MTU dari internet yang sewenang-wenang
  path [14]. The Address Resolution Protocol (ARP) telah diusulkan
  sebagai protokol transport untuk lokasi dan seleksi sumber daya [6].
  Akhirnya, Host Persyaratan RFC [3, 4] menyebutkan spesifik
  persyaratan untuk host konfigurasi ulang dan menyarankan skenario untuk
  konfigurasi awal diskless host.

Soal 1,3 definisi dan isu-isu

  DHCP ini didesain untuk menyediakan klien DHCP dengan konfigurasi
  parameter yang didefinisikan dalam RFC Persyaratan Host. Setelah mendapat
  parameter melalui DHCP, sebuah klien DHCP harus mampu pertukaran paket
  dengan host lain di internet. TCP / IP stack parameter
  diberikan oleh DHCP tercantum dalam Lampiran A.

  Tidak semua parameter yang diperlukan untuk baru diinisialisasi
  klien. Seorang klien dan server dapat bernegosiasi untuk transmisi
  hanya orang-parameter yang diperlukan oleh klien atau spesifik untuk sebuah
  subnet tertentu.

  DHCP memungkinkan tetapi tidak memerlukan konfigurasi klien
  parameter tidak terkait langsung dengan protokol IP. DHCP juga tidak
  alamat pendaftaran tidak dikonfigurasi baru klien dengan Domain
  Name System (DNS) [12, 13].

  DHCP tidak dimaksudkan untuk digunakan dalam mengkonfigurasi router.

1,4 Persyaratan

  Sepanjang dokumen ini, kata-kata yang digunakan untuk mendefinisikan
  signifikansi persyaratan tertentu dikapitalisasi. Kata-kata
  adalah:

     o "HARUS"

       Kata ini atau kata sifat "REQUIRED" berarti bahwa
       item adalah kebutuhan mutlak spesifikasi ini.

     o "TIDAK HARUS"

       Ungkapan ini berarti bahwa item larangan mutlak
       spesifikasi ini.

     o "HARUS"

       Kata ini atau kata sifat "RECOMMENDED" berarti bahwa ada
       mungkin ada alasan yang sah dalam keadaan tertentu untuk mengabaikan
       item ini, tetapi implikasi penuh harus dipahami dan
       kasus ditimbang dengan seksama sebelum memilih kursus yang berbeda.

     o "TIDAK BOLEH"

       Ungkapan ini berarti bahwa mungkin ada alasan yang sah dalam
       keadaan tertentu ketika perilaku yang terdaftar dapat diterima
       atau bahkan berguna, tetapi implikasi penuh harus dipahami
       dan kasus ditimbang dengan hati-hati sebelum menerapkan semua perilaku
       dijelaskan dengan label ini.
     o "MUNGKIN"

       Kata ini atau kata sifat "OPTIONAL" berarti bahwa item ini
       benar-benar opsional. Satu vendor dapat memilih untuk menyertakan item
       karena membutuhkan pasar tertentu atau karena
       meningkatkan produk, misalnya; vendor lain dapat menghilangkan
       item yang sama.

1,5 Terminologi

  Dokumen ini menggunakan istilah-istilah berikut:

     o "klien DHCP"

     Seorang klien DHCP adalah host internet menggunakan DHCP untuk mendapatkan
     parameter konfigurasi seperti alamat jaringan.

     o "server DHCP"

     Sebuah server DHCP adalah host Internet yang mengembalikan konfigurasi
     parameter untuk klien DHCP.

     o "agen relai BOOTP"

     Sebuah BOOTP relay agent atau agen relay adalah host atau router Internet
     yang melewati DHCP DHCP pesan antara klien dan server DHCP.
     DHCP ini dirancang untuk menggunakan agen relay yang sama perilaku sebagaimana ditentukan
     dalam protokol BOOTP spesifikasi.

     o "mengikat"

     Yang mengikat adalah kumpulan parameter konfigurasi, termasuk
     paling tidak sebuah alamat IP, yang berhubungan dengan atau "terikat" DHCP
     klien. Bindings dikelola oleh server DHCP.

Desain 1,6 gol

  Daftar berikut memberikan tujuan desain umum untuk DHCP.

     o DHCP harus menjadi mekanisme, bukan kebijakan. DHCP harus
       memungkinkan administrator sistem lokal konfigurasi kontrol
       parameter mana yang dikehendaki; misalnya, administrator sistem lokal
       harus mampu menerapkan kebijakan lokal mengenai alokasi
       dan akses ke sumber daya lokal di mana yang diinginkan.

     o Klien seharusnya tidak memerlukan konfigurasi manual. Setiap klien
       harus dapat menemukan konfigurasi lokal sesuai
       parameter tanpa campur tangan pengguna dan memasukkan orang
       parameter ke dalam konfigurasi sendiri.

     o Jaringan seharusnya tidak memerlukan konfigurasi manual untuk setiap
       klien. Dalam keadaan normal, manajer jaringan
       seharusnya tidak perlu memasukkan konfigurasi per-klien
       parameter.

     o DHCP seharusnya tidak memerlukan server pada setiap subnet. Untuk memungkinkan
       skala dan ekonomi, DHCP harus bekerja di router atau melalui
       intervensi dari agen relai BOOTP.

     o klien DHCP harus siap untuk menerima banyak tanggapan
       untuk permintaan untuk konfigurasi parameter. Beberapa instalasi
       mungkin mencakup beberapa, tumpang tindih server DHCP untuk meningkatkan
       kehandalan dan meningkatkan kinerja.

     o DHCP harus hidup berdampingan dengan statis dikonfigurasi, non-berpartisipasi
       host dan dengan implementasi protokol jaringan yang ada.

     o DHCP harus beroperasi dengan agen relai BOOTP perilaku sebagai
       digambarkan oleh RFC 951 dan RFC 1542 [21].

     o DHCP harus memberikan layanan kepada klien BOOTP yang ada.

  Daftar berikut memberikan tujuan desain khusus untuk transmisi
  parameter lapisan jaringan. DHCP harus:

     o Jaminan bahwa alamat jaringan tertentu tidak akan di
       digunakan oleh lebih dari satu klien DHCP pada satu waktu,

     o Simpan konfigurasi klien DHCP klien DHCP di reboot. Sebuah
       Klien DHCP harus, jika memungkinkan, akan ditugaskan sama
       parameter konfigurasi (misalnya, alamat jaringan) sebagai tanggapan
       untuk setiap permintaan,

     o Simpan konfigurasi klien DHCP server di reboot, dan,
       bila mungkin, sebuah klien DHCP harus diserahkan sama
       meskipun parameter konfigurasi DHCP restart dari mekanisme,

     o Biarkan penugasan otomatis parameter konfigurasi baru
       tangan klien untuk menghindari konfigurasi untuk klien baru,

     o Dukungan tetap atau permanen konfigurasi alokasi
       parameter untuk klien tertentu.

2. Ringkasan Protokol

  Dari klien sudut pandang, DHCP adalah perpanjangan dari BOOTP
  mekanisme. Perilaku ini memungkinkan klien BOOTP yang ada untuk
  beroperasi dengan DHCP server tanpa memerlukan perubahan ke
  klien 'inisialisasi perangkat lunak. RFC 1542 [2] merinci
  interaksi antara BOOTP dan DHCP klien dan server [9]. Ada
  adalah beberapa yang baru, pilihan transaksi yang mengoptimalkan interaksi
  antara klien dan server DHCP yang dijelaskan dalam bagian 3 dan
  4.

  Gambar 1 memberikan format pesan DHCP dan tabel 1 menggambarkan
  masing-masing kolom-kolom pada pesan DHCP. Angka-angka dalam tanda kurung
  mengindikasikan ukuran setiap field dalam oktet. Nama-nama untuk bidang
  diberikan pada gambar akan digunakan di seluruh dokumen ini untuk merujuk
  kolom-kolom pada pesan DHCP.

  Ada dua perbedaan utama antara DHCP dan BOOTP. Pertama,
  DHCP mendefinisikan mekanisme klien yang dapat diberi
  alamat jaringan untuk sewa yang terbatas, sehingga memungkinkan untuk serial penugasan kembali
  alamat jaringan klien yang berbeda. Kedua, DHCP menyediakan
  mekanisme untuk klien untuk mendapatkan semua konfigurasi IP
  parameter yang diperlukan dalam rangka untuk beroperasi.

  DHCP memperkenalkan perubahan kecil dalam terminologi dimaksudkan untuk memperjelas
  arti dari salah satu bidang. Apa adalah "penjual ekstensi" lapangan
  di BOOTP telah kembali dinamakan "pilihan" di bidang DHCP. Demikian pula,
  item data pengajuan yang digunakan di dalam BOOTP "vendor
  ekstensi "lapangan, yang sebelumnya disebut sebagai" vendor
  ekstensi, "sekarang disebut hanya" pilihan. "

  0 1 2 3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+
  | Op (1) | htype (1) | hlen (1) | hop (1) |
  +---------------+---------------+---------------+- --------------+
  | Xid (4) |
  +-------------------------------+----------------- --------------+
  | Secs (2) | flag (2) |
  +-------------------------------+----------------- --------------+
  | Ciaddr (4) |
  +------------------------------------------------- --------------+
  | Yiaddr (4) |
  +------------------------------------------------- --------------+
  | Siaddr (4) |
  +------------------------------------------------- --------------+
  | Giaddr (4) |
  +------------------------------------------------- --------------+
  | |
  | Chaddr (16) |
  | |
  | |
  +------------------------------------------------- --------------+
  | |
  | Sname (64) |
  +------------------------------------------------- --------------+
  | |
  | File (128) |
  +------------------------------------------------- --------------+
  | |
  | Pilihan (variabel) |
  +------------------------------------------------- --------------+

                 Gambar 1: Format pesan DHCP

  DHCP mendefinisikan 'baru klien identifier' pilihan yang digunakan untuk lulus
  eksplisit pengenal klien server DHCP. Perubahan ini menghilangkan
  yang overloading dari 'chaddr' bidang dalam pesan BOOTP, dimana
  'chaddr' digunakan baik sebagai alamat hardware untuk transmisi BOOTP
  membalas pesan dan sebagai pengenal klien. The 'klien identifier'
  adalah kunci opaque, tidak harus ditafsirkan oleh server, misalnya,
  the 'klien identifier' mungkin berisi alamat hardware, identik dengan
  isi 'chaddr' lapangan, atau mungkin berisi jenis lain
  identifier, seperti nama DNS. The 'klien identifier' dipilih oleh seorang
  HARUS klien DHCP yang unik untuk klien di dalam subnet yang
  klien terpasang. Jika klien menggunakan 'klien identifier' dalam
  satu pesan, itu harus menggunakan identifier yang sama dalam semua berikutnya
  pesan, untuk memastikan bahwa semua server dengan benar mengidentifikasi klien.

  DHCP menjelaskan interpretasi dari 'siaddr' bidang sebagai
  alamat server untuk digunakan pada langkah berikutnya dari klien
  proses bootstrap. Sebuah server DHCP dapat kembali alamat sendiri dalam
  'siaddr' lapangan, jika server siap untuk memasok berikutnya
  bootstrap layanan (misalnya, pengiriman sistem operasi dieksekusi
  gambar). Sebuah server DHCP selalu kembali alamat sendiri dalam 'server
  identifier 'pilihan.

  Octets FIELD DESCRIPTION
  ----- ------ -----------

  Pesan op pada 1 kode / jenis pesan.
                   1 = BOOTREQUEST, 2 = BOOTREPLY
  htype 1 Tipe alamat hardware, lihat bagian ARP dalam "Assigned
                   Bilangan "RFC; e.g., '1 '= 10mb ethernet.
  Hardware 1 alamat hlen panjang (mis. '6 'untuk 10mb
                   ethernet).
  Klien 1 hop set ke nol, secara opsional digunakan oleh agen relay
                   ketika booting melalui agen relai.
  xid 4 Transaksi ID, nomor acak yang dipilih oleh
                   klien, yang digunakan oleh klien dan server untuk menghubungkan
                   pesan dan tanggapan antara klien dan
                   server.
  secs 2 Diisi oleh klien, detik berlalu sejak klien
                   alamat mulai proses perolehan atau pembaharuan.
  flags 2 Flags (lihat gambar 2).
  ciaddr 4 Client alamat IP, hanya diisi jika klien dalam
                   TERIKAT, REBINDING memperbarui atau negara dan dapat merespon
                   untuk ARP permintaan.
  yiaddr 4 'Anda' (klien) alamat IP.
  siaddr 4 alamat IP server berikutnya untuk digunakan dalam bootstrap;
                   kembali dalam DHCPOFFER, DHCPACK oleh server.
  4 Relay giaddr agen alamat IP, digunakan dalam booting melalui
                   relay agen.
  16 Klien chaddr alamat hardware.
  64 sname nama host server opsional, nol mengakhiri string.
  128 file Boot nama file, null dihentikan string; "generik"
                   nama atau null di DHCPDISCOVER, sepenuhnya memenuhi syarat
                   direktori-nama path di DHCPOFFER.
  Pilihan var parameter opsional lapangan. Melihat opsi
                   dokumen untuk daftar pilihan yang ditetapkan.

          Tabel 1: Deskripsi fields dalam pesan DHCP

  The 'Pilihan' lapangan sekarang variabel panjang. Seorang klien DHCP harus
  siap untuk menerima pesan DHCP dengan sebuah 'pilihan' sekurang-kurangnya bidang
  panjang 312 oktet. Persyaratan ini menyiratkan bahwa klien DHCP harus
  bersiaplah untuk menerima pesan sampai 576 oktet, minimum IP

  ukuran datagram IP host harus siap menerima [3]. DHCP
  klien dapat menegosiasikan penggunaan DHCP yang lebih besar pesan melalui
  'maksimum ukuran pesan DHCP' pilihan. Bidang pilihan mungkin lebih lanjut
  diperluas ke 'file' dan 'sname' fields.

  Dalam kasus klien menggunakan DHCP untuk konfigurasi awal (sebelum
  klien TCP / IP perangkat lunak telah sepenuhnya dikonfigurasi), DHCP
  memerlukan penggunaan kreatif klien TCP / IP perangkat lunak dan liberal
  interpretasi dari RFC 1122. TCP / IP software HARUS menerima dan
  maju ke lapisan IP setiap paket IP dikirim ke klien
  alamat hardware sebelum alamat IP dikonfigurasi; DHCP server
  dan agen relai BOOTP mungkin tidak dapat memberikan pesan DHCP
  klien yang tidak dapat menerima unicast hardware datagrams sebelum
  TCP / IP perangkat lunak dikonfigurasi.

  Untuk bekerja di sekitar beberapa klien yang tidak dapat menerima IP unicast datagrams
  sebelum TCP / IP perangkat lunak dikonfigurasi seperti yang dibahas di sebelumnya
  paragraf, DHCP menggunakan 'bendera' field [21]. Bit paling kiri
  didefinisikan sebagai PENYIARAN (B) flag. Semantik bendera ini adalah
  dibahas dalam bagian 4.1 dari dokumen ini. Bit yang tersisa dari
  lapangan bendera dicadangkan untuk penggunaan masa depan. Mereka HARUS diatur ke nol oleh
  diabaikan oleh klien dan server dan relay agen. Gambar 2 memberikan
  format 'bendera' lapangan.

                                   1 1 1 1 1 1
               0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               | B | MBZ |
               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               B: BROADCAST flag

               MBZ: HARUS KOSONG (dicadangkan untuk penggunaan di masa depan)

               Gambar 2: Format 'bendera' bidang

Konfigurasi parameter 2,1 repositori

  Layanan pertama yang disediakan oleh DHCP adalah untuk memberikan persistent storage
  parameter jaringan untuk klien jaringan. Model DHCP
  persistent storage adalah bahwa layanan DHCP toko nilai kunci entry
  untuk setiap klien, di mana kuncinya adalah beberapa identifikasi unik (untuk
  contoh, sebuah IP subnet nomor pengenal yang unik dalam
  subnet) dan berisi nilai parameter konfigurasi untuk
  klien.

  Sebagai contoh, mungkin kunci pasangan (IP-subnet-nomor, hardware -
  alamat) (catatan bahwa "hardware-address" harus diketik oleh

  jenis hardware untuk mengakomodasi kemungkinan duplikasi hardware
  alamat yang dihasilkan dari bit-masalah memesan dalam campuran media,
  bridge jaringan) memungkinkan untuk serial atau bersamaan penggunaan kembali sebuah
  alamat hardware pada subnet yang berbeda, dan untuk alamat hardware
  yang mungkin tidak secara global unik. Bergantian, mungkin kunci yang
  pasangan (IP-subnet-nomor, nama host), yang memungkinkan server untuk menetapkan
  parameter cerdas untuk klien DHCP yang telah dipindahkan ke
  subnet yang berbeda atau telah berubah alamat hardware (mungkin karena
  antarmuka jaringan gagal dan digantikan). Mendefinisikan protokol
  bahwa kunci akan (IP-subnet-nomor, hardware-address), kecuali apabila
  persediaan secara eksplisit klien menggunakan sebuah identifier 'klien
  identifier 'pilihan. Seorang klien dapat query layanan DHCP untuk
  mengambil parameter konfigurasi. Antarmuka klien ke
  parameter konfigurasi repositori terdiri dari pesan protokol untuk
  parameter konfigurasi permintaan dan tanggapan dari server
  membawa parameter konfigurasi.

Dinamis 2,2 alokasi alamat jaringan

  Kedua layanan yang disediakan oleh DHCP adalah alokasi sementara atau
  jaringan tetap (IP) alamat kepada klien. Mekanisme dasar
  dinamis alokasi alamat jaringan sederhana: seorang klien
  permintaan penggunaan alamat untuk jangka waktu tertentu. Itu
  mekanisme alokasi (kumpulan dari server DHCP) tidak menjamin
  untuk mengalokasikan kembali bahwa alamat yang diminta dalam waktu dan upaya untuk
  kembali alamat jaringan yang sama setiap kali permintaan klien yang
  alamat. Dalam dokumen ini, periode di mana alamat jaringan
  dialokasikan kepada klien disebut sebagai "sewa" [11]. Itu
  klien dapat memperluas sewa dengan permintaan berikutnya. Klien dapat
  mengeluarkan pesan ke alamat melepaskan kembali ke server ketika
  klien tidak lagi membutuhkan alamat. Klien dapat meminta
  tugas permanen dengan meminta sewa yang tak terbatas. Bahkan ketika
  menugaskan "permanen" alamat, server mungkin memilih untuk memberikan
  panjang tetapi non-sewa tak terbatas untuk memungkinkan deteksi kenyataan bahwa
  klien telah pensiun.

  Dalam beberapa lingkungan akan perlu untuk menetapkan kembali jaringan
  alamat karena kelelahan yang tersedia alamat. Dalam
  lingkungan, mekanisme alokasi akan menggunakan kembali alamat yang
  sewa telah berakhir. Server harus menggunakan informasi apapun
  tersedia dalam informasi konfigurasi repositori untuk memilih
  alamat kembali. Sebagai contoh, server dapat memilih paling
  baru-baru ini alamat ditugaskan. Sebagai konsistensi cek, yang mengalokasikan
  HARUS menyelidiki server digunakan kembali mengalokasikan alamat sebelum alamat,
  misalnya, dengan permintaan echo ICMP, dan klien HARUS menyelidiki
  baru menerima alamat, e.g., dengan ARP.

3. The Client-Server Protokol

  DHCP menggunakan format pesan BOOTP didefinisikan pada RFC 951 dan diberikan dalam
  Tabel 1 dan Gambar 1. The 'op' lapangan dari setiap pesan yang dikirim dari DHCP
  klien ke server berisi BOOTREQUEST. BOOTREPLY digunakan dalam
  'op' bidang masing-masing DHCP pesan yang dikirim dari server ke klien.

  Empat oktet pertama dari 'pilihan' DHCP bidang pesan
  berisi (desimal) nilai 99, 130, 83 dan 99, masing-masing (ini
  sihir adalah cookie yang sama seperti yang didefinisikan dalam RFC 1497 [17]). Itu
  sisa pilihan '' lapangan terdiri dari daftar tagged
  parameter yang disebut "pilihan". Semua "vendor ekstensi"
  tercantum dalam RFC 1497 juga pilihan DHCP. RFC 1533 memberikan
  lengkap pilihan yang ditetapkan untuk digunakan dengan DHCP.

  Beberapa pilihan telah didefinisikan sejauh ini. Satu pilihan tertentu --
  yang "jenis pesan DHCP" pilihan - harus disertakan dalam setiap DHCP
  pesan. Opsi ini mendefinisikan "type" dari pesan DHCP.
  Opsi tambahan mungkin diperbolehkan, diperlukan, atau tidak diperbolehkan,
  tergantung pada jenis pesan DHCP.

  Sepanjang dokumen ini, DHCP pesan yang mencakup 'pesan DHCP
  ketik 'opsi akan disebut oleh jenis pesan, misalnya, seorang
  Pesan DHCP dengan 'jenis pesan DHCP' pilihan tipe 1 akan disebut
  sebagai "DHCPDISCOVER" pesan.

Klien-server 3,1 interaksi - mengalokasikan alamat jaringan

  Ringkasan berikut protokol pertukaran antara klien dan
  server mengacu pada pesan DHCP yang dijelaskan pada tabel 2. Itu
  timeline diagram pada Gambar 3 menunjukkan hubungan waktu dalam sebuah
  khas interaksi client-server. Jika klien sudah tahu dengan
  alamat, beberapa langkah yang dapat dihilangkan; ini interaksi disingkat
  dijelaskan dalam bagian 3.2.

  1. Klien menyiarkan pesan DHCPDISCOVER pada fisik lokal
     subnet. Pesan yang MUNGKIN DHCPDISCOVER termasuk pilihan yang menyarankan
     nilai untuk alamat jaringan dan sewa durasi. BOOTP relay
     agen dapat menyampaikan pesan pada server DHCP tidak sama
     subnet fisik.

  2. Setiap server akan merespons dengan pesan yang DHCPOFFER mencakup
     alamat jaringan yang tersedia di 'yiaddr' lapangan (dan lainnya
     konfigurasi DHCP parameter dalam opsi). Server tidak perlu
     cadangan alamat jaringan yang ditawarkan, meskipun protokol akan
     bekerja lebih efisien jika server mengalokasikan menghindari ditawarkan
     alamat jaringan klien lain. Ketika mengalokasikan sebuah alamat baru,
     HARUS server periksa apakah alamat jaringan yang ditawarkan tidak

     telah digunakan, misalnya, server mungkin probe alamat yang ditawarkan
     dengan ICMP Echo Request. Server HARUS dilaksanakan sehingga
     MUNGKIN administrator jaringan memilih untuk menonaktifkan probe yang baru
     dialokasikan alamat. Server mentransmisikan pesan DHCPOFFER
     kepada klien, dengan menggunakan agen relai BOOTP jika perlu.

  Pesan Gunakan
  ------- ---

  DHCPDISCOVER - Klien broadcast untuk menemukan server yang tersedia.

  DHCPOFFER - Server ke klien dalam menanggapi DHCPDISCOVER dengan
                  tawaran parameter konfigurasi.

  DHCPREQUEST - Klien pesan ke server baik (a) meminta
                  ditawarkan parameter dari satu server dan secara implisit
                  menurun menawarkan dari semua orang lain, (b) membenarkan
                  kebenaran alamat yang dialokasikan sebelumnya setelah,
                  misalnya, sistem reboot, atau (c) memperpanjang sewa pada
                  alamat jaringan tertentu.

  DHCPACK - Server ke klien dengan parameter konfigurasi,
                  berkomitmen termasuk alamat jaringan.

  DHCPNAK - Server ke klien klien menunjukkan pengertian jaringan
                  alamat tidak benar (misalnya, klien telah pindah ke baru
                  subnet) atau klien sewa sebagai kadaluarsa

  DHCPDECLINE - Client untuk server menunjukkan alamat jaringan sudah
                  digunakan.

  DHCPRELEASE - Client untuk server jaringan melepaskan alamat dan
                  membatalkan sisa sewa.

  DHCPINFORM - Klien ke server, meminta hanya untuk konfigurasi lokal
                  parameter; klien sudah memiliki eksternal dikonfigurasi
                  alamat jaringan.

                         Tabel 2: DHCP pesan

               Server Client Server
           (tidak dipilih) (dipilih)

                 v v v
                 | | |
                 | Begins initialization |
                 | | |
                 | _____________/| \ ____________ |
                 | / DHCPDISCOVER | DHCPDISCOVER \ |
                 | | |
             Menentukan | Menentukan
            konfigurasi | konfigurasi
                 | | |
                 | \ | ____________/ |
                 | \ ________ | / DHCPOFFER |
                 | DHCPOFFER \ | / |
                 | \ | |
                 | Mengumpulkan balasan |
                 | \ | |
                 | Memilih konfigurasi |
                 | | |
                 | _____________/| \ ____________ |
                 | / DHCPREQUEST | DHCPREQUEST \ |
                 | | |
                 | | Melakukan konfigurasi
                 | | |
                 | | _____________/|
                 | | / DHCPACK |
                 | | |
                 | Inisialisasi lengkap |
                 | | |
                 . . .
                 . . .
                 |               |               |
                 | Graceful shutdown |
                 | | |
                 | | \ ____________ |
                 | | DHCPRELEASE \ |
                 | | |
                 | | Membuang sewa
                 | | |
                 v v v
    Gambar 3: Diagram Urutan pesan yang dipertukarkan antara DHCP
              client and servers when allocating a new network address

 3. The client receives one or more DHCPOFFER messages from one or more
    server. The client may choose to wait for multiple responses.
    The client chooses one server from which to request configuration
    parameters, based on the configuration parameters offered in the
    DHCPOFFER messages.  The client broadcasts a DHCPREQUEST message
    that MUST include the 'server identifier' option to indicate which
    server it has selected, and that MAY include other options
    specifying desired configuration values.  The 'requested IP
    address' option MUST be set to the value of 'yiaddr' in the
    DHCPOFFER message from the server.  This DHCPREQUEST message is
    broadcast and relayed through DHCP/BOOTP relay agents. Membantu
    ensure that any BOOTP relay agents forward the DHCPREQUEST message
    to the same set of DHCP servers that received the original
    DHCPDISCOVER message, the DHCPREQUEST message MUST use the same
    value in the DHCP message header's 'secs' field and be sent to the
    same IP broadcast address as the original DHCPDISCOVER message.
    The client times out and retransmits the DHCPDISCOVER message if
    the client receives no DHCPOFFER messages.

 4. The servers receive the DHCPREQUEST broadcast from the client.
    Those servers not selected by the DHCPREQUEST message use the
    message as notification that the client has declined that server's
    offer.  The server selected in the DHCPREQUEST message commits the
    binding for the client to persistent storage and responds with a
    DHCPACK message containing the configuration parameters for the
    requesting client.  The combination of 'client identifier' or
    'chaddr' and assigned network address constitute a unique
    identifier for the client's lease and are used by both the client
    and server to identify a lease referred to in any DHCP messages.
    Any configuration parameters in the DHCPACK message SHOULD NOT
    conflict with those in the earlier DHCPOFFER message to which the
    client is responding.  The server SHOULD NOT check the offered
    network address at this point. The 'yiaddr' field in the DHCPACK
    messages is filled in with the selected network address.

    If the selected server is unable to satisfy the DHCPREQUEST message
    (e.g., the requested network address has been allocated), the
    server SHOULD respond with a DHCPNAK message.

    A server MAY choose to mark addresses offered to clients in
    DHCPOFFER messages as unavailable.  The server SHOULD mark an
    address offered to a client in a DHCPOFFER message as available if
    the server receives no DHCPREQUEST message from that client.

 5. The client receives the DHCPACK message with configuration
    parameter. The client SHOULD perform a final check on the
    parameters (e.g., ARP for allocated network address), and notes the
    duration of the lease specified in the DHCPACK message.  At this

    point, the client is configured.  If the client detects that the
    address is already in use (e.g., through the use of ARP), the
    client MUST send a DHCPDECLINE message to the server and restarts
    the configuration process.  The client SHOULD wait a minimum of ten
    seconds before restarting the configuration process to avoid
    excessive network traffic in case of looping.

    If the client receives a DHCPNAK message, the client restarts the
    configuration process.

    The client times out and retransmits the DHCPREQUEST message if the
    client receives neither a DHCPACK or a DHCPNAK message. Klien
    retransmits the DHCPREQUEST according to the retransmission
    algorithm in section 4.1.  The client should choose to retransmit
    the DHCPREQUEST enough times to give adequate probability of
    contacting the server without causing the client (and the user of
    that client) to wait overly long before giving up; e.g., a client
    retransmitting as described in section 4.1 might retransmit the
    DHCPREQUEST message four times, for a total delay of 60 seconds,
    before restarting the initialization procedure.  If the client
    receives neither a DHCPACK or a DHCPNAK message after employing the
    retransmission algorithm, the client reverts to INIT state and
    restarts the initialization process.  The client SHOULD notify the
    user that the initialization process has failed and is restarting.

 6. The client may choose to relinquish its lease on a network address
    by sending a DHCPRELEASE message to the server. Klien
    identifies the lease to be released with its 'client identifier',
    or 'chaddr' and network address in the DHCPRELEASE message. Jika
    client used a 'client identifier' when it obtained the lease, it
    MUST use the same 'client identifier' in the DHCPRELEASE message.

3.2 Client-server interaction - reusing a previously allocated network
   alamat

  If a client remembers and wishes to reuse a previously allocated
  network address, a client may choose to omit some of the steps
  described in the previous section.  The timeline diagram in figure 4
  shows the timing relationships in a typical client-server interaction
  for a client reusing a previously allocated network address.

  1. The client broadcasts a DHCPREQUEST message on its local subnet.
     The message includes the client's network address in the
     'requested IP address' option. As the client has not received its
     network address, it MUST NOT fill in the 'ciaddr' field. BOOTP
     relay agents pass the message on to DHCP servers not on the same
     subnet.  If the client used a 'client identifier' to obtain its
     address, the client MUST use the same 'client identifier' in the
     DHCPREQUEST message.

  2. Servers with knowledge of the client's configuration parameters
     respond with a DHCPACK message to the client.  Servers SHOULD NOT
     check that the client's network address is already in use; the
     client may respond to ICMP Echo Request messages at this point.

               Server          Client          Server

                 v               v               v
                 |                |               |
                 |              Begins            |
                 |          initialization        |
                 |                |               |
                 |                /|\             |
                 |   _________ __/ | \__________  |
                 | /DHCPREQU EST  |  DHCPREQUEST\ |
                 |/               |              \|
                 |                |               |
              Locates             |            Locates
           configuration          |         configuration
                 |                |               |
                 |\               |              /|
                 | \              |  ___________/ |
                 |  \             | /  DHCPACK    |
                 |   \ _______    |/              |
                 |     DHCPACK\   |               |
                 |          Initialization        |
                 |             complete           |
                 |               \|               |
                 |                |               |
                 |           (Subsequent          |
                 |             DHCPACKS           |
                 |             ignored)           |
                 |                |               |
                 |                |               |
                 v                v               v

    Figure 4: Timeline diagram of messages exchanged between DHCP
              client and servers when reusing a previously allocated
              network address

     If the client's request is invalid (e.g., the client has moved
     to a new subnet), servers SHOULD respond with a DHCPNAK message to
     klien. Servers SHOULD NOT respond if their information is not
     guaranteed to be accurate.  For example, a server that identifies a
     request for an expired binding that is owned by another server SHOULD
     NOT respond with a DHCPNAK unless the servers are using an explicit
     mechanism to maintain coherency among the servers.

     If 'giaddr' is 0x0 in the DHCPREQUEST message, the client is on
     the same subnet as the server.  The server MUST
     broadcast the DHCPNAK message to the 0xffffffff broadcast address
     because the client may not have a correct network address or subnet
     mask, and the client may not be answering ARP requests.
     Otherwise, the server MUST send the DHCPNAK message to the IP
     address of the BOOTP relay agent, as recorded in 'giaddr'. Itu
     relay agent will, in turn, forward the message directly to the
     client's hardware address, so that the DHCPNAK can be delivered even
     if the client has moved to a new network.

  3. The client receives the DHCPACK message with configuration
     parameter. The client performs a final check on the parameters
     (as in section 3.1), and notes the duration of the lease specified
     in the DHCPACK message.  The specific lease is implicitly identified
     by the 'client identifier' or 'chaddr' and the network address. Di
     this point, the client is configured.

     If the client detects that the IP address in the DHCPACK message
     is already in use, the client MUST send a DHCPDECLINE message to the
     server and restarts the configuration process by requesting a
     new network address.  This action corresponds to the client
     moving to the INIT state in the DHCP state diagram, which is
     described in section 4.4.

     If the client receives a DHCPNAK message, it cannot reuse its
     remembered network address.  It must instead request a new
     address by restarting the configuration process, this time
     using the (non-abbreviated) procedure described in section
     3.1. This action also corresponds to the client moving to
     the INIT state in the DHCP state diagram.

     The client times out and retransmits the DHCPREQUEST message if
     the client receives neither a DHCPACK nor a DHCPNAK message. Itu
     client retransmits the DHCPREQUEST according to the retransmission
     algorithm in section 4.1.  The client should choose to retransmit
     the DHCPREQUEST enough times to give adequate probability of
     contacting the server without causing the client (and the user of
     that client) to wait overly long before giving up; e.g., a client
     retransmitting as described in section 4.1 might retransmit the

     DHCPREQUEST message four times, for a total delay of 60 seconds,
     before restarting the initialization procedure.  If the client
     receives neither a DHCPACK or a DHCPNAK message after employing
     the retransmission algorithm, the client MAY choose to use the
     previously allocated network address and configuration parameters
     for the remainder of the unexpired lease.  This corresponds to
     moving to BOUND state in the client state transition diagram shown
     in figure 5.

  4. The client may choose to relinquish its lease on a network
     address by sending a DHCPRELEASE message to the server. Itu
     client identifies the lease to be released with its
     'client identifier', or 'chaddr' and network address in the
     DHCPRELEASE message.

     Note that in this case, where the client retains its network
     address locally, the client will not normally relinquish its
     lease during a graceful shutdown.  Only in the case where the
     client explicitly needs to relinquish its lease, e.g., the client
     is about to be moved to a different subnet, will the client send
     a DHCPRELEASE message.

3.3 Interpretation and representation of time values

  A client acquires a lease for a network address for a fixed period of
  time (which may be infinite).  Throughout the protocol, times are to
  be represented in units of seconds.  The time value of 0xffffffff is
  reserved to represent "infinity".

  As clients and servers may not have synchronized clocks, times are
  represented in DHCP messages as relative times, to be interpreted
  with respect to the client's local clock.  Representing relative
  times in units of seconds in an unsigned 32 bit word gives a range of
  relative times from 0 to approximately 100 years, which is sufficient
  for the relative times to be measured using DHCP.

  The algorithm for lease duration interpretation given in the previous
  paragraph assumes that client and server clocks are stable relative
  to each other.  If there is drift between the two clocks, the server
  may consider the lease expired before the client does. Untuk
  compensate, the server may return a shorter lease duration to the
  client than the server commits to its local database of client
  informasi.

3.4 Obtaining parameters with externally configured network address

  If a client has obtained a network address through some other means
  (e.g., manual configuration), it may use a DHCPINFORM request message

  to obtain other local configuration parameters.  Servers receiving a
  DHCPINFORM message construct a DHCPACK message with any local
  configuration parameters appropriate for the client without:
  allocating a new address, checking for an existing binding, filling
  in 'yiaddr' or including lease time parameters.  The servers SHOULD
  unicast the DHCPACK reply to the address given in the 'ciaddr' field
  of the DHCPINFORM message.

  The server SHOULD check the network address in a DHCPINFORM message
  for consistency, but MUST NOT check for an existing lease. Itu
  server forms a DHCPACK message containing the configuration
  parameters for the requesting client and sends the DHCPACK message
  directly to the client.

3.5 Client parameters in DHCP

  Not all clients require initialization of all parameters listed in
  Appendix A.  Two techniques are used to reduce the number of
  parameters transmitted from the server to the client.  First, most of
  the parameters have defaults defined in the Host Requirements RFCs;
  if the client receives no parameters from the server that override
  the defaults, a client uses those default values.  Second, in its
  initial DHCPDISCOVER or DHCPREQUEST message, a client may provide the
  server with a list of specific parameters the client is interested
  in.  If the client includes a list of parameters in a DHCPDISCOVER
  message, it MUST include that list in any subsequent DHCPREQUEST
  pesan.

  The client SHOULD include the 'maximum DHCP message size' option to
  let the server know how large the server may make its DHCP messages.
  The parameters returned to a client may still exceed the space
  allocated to options in a DHCP message.  In this case, two additional
  options flags (which must appear in the 'options' field of the
  message) indicate that the 'file' and 'sname' fields are to be used
  for options.

  The client can inform the server which configuration parameters the
  client is interested in by including the 'parameter request list'
  pilihan. The data portion of this option explicitly lists the options
  requested by tag number.

  In addition, the client may suggest values for the network address
  and lease time in the DHCPDISCOVER message.  The client may include
  the 'requested IP address' option to suggest that a particular IP
  address be assigned, and may include the 'IP address lease time'
  option to suggest the lease time it would like.  Other options
  representing "hints" at configuration parameters are allowed in a
  DHCPDISCOVER or DHCPREQUEST message.  However, additional options may

  be ignored by servers, and multiple servers may, therefore, not
  return identical values for some options.  The 'requested IP address'
  option is to be filled in only in a DHCPREQUEST message when the
  client is verifying network parameters obtained previously. Itu
  client fills in the 'ciaddr' field only when correctly configured
  with an IP address in BOUND, RENEWING or REBINDING state.

  If a server receives a DHCPREQUEST message with an invalid 'requested
  IP address', the server SHOULD respond to the client with a DHCPNAK
  message and may choose to report the problem to the system
  administrator.  The server may include an error message in the
  'message' option.

3.6 Use of DHCP in clients with multiple interfaces

  A client with multiple network interfaces must use DHCP through each
  interface independently to obtain configuration information
  parameters for those separate interfaces.

3.7 When clients should use DHCP

  A client SHOULD use DHCP to reacquire or verify its IP address and
  network parameters whenever the local network parameters may have
  changed; e.g., at system boot time or after a disconnection from the
  local network, as the local network configuration may change without
  the client's or user's knowledge.

  If a client has knowledge of a previous network address and is unable
  to contact a local DHCP server, the client may continue to use the
  previous network address until the lease for that address expires.
  If the lease expires before the client can contact a DHCP server, the
  client must immediately discontinue use of the previous network
  address and may inform local users of the problem.

4. Specification of the DHCP client-server protocol

  In this section, we assume that a DHCP server has a block of network
  addresses from which it can satisfy requests for new addresses. Tiap
  server also maintains a database of allocated addresses and leases in
  local permanent storage.

4.1 Constructing and sending DHCP messages

  DHCP clients and servers both construct DHCP messages by filling in
  fields in the fixed format section of the message and appending
  tagged data items in the variable length option area.  The options
  area includes first a four-octet 'magic cookie' (which was described
  in section 3), followed by the options.  The last option must always

  be the 'end' option.

  DHCP uses UDP as its transport protocol.  DHCP messages from a client
  to a server are sent to the 'DHCP server' port (67), and DHCP
  messages from a server to a client are sent to the 'DHCP client' port
  (68). A server with multiple network address (e.g., a multi-homed
  host) MAY use any of its network addresses in outgoing DHCP messages.

  The 'server identifier' field is used both to identify a DHCP server
  in a DHCP message and as a destination address from clients to
  server. A server with multiple network addresses MUST be prepared
  to to accept any of its network addresses as identifying that server
  in a DHCP message.  To accommodate potentially incomplete network
  connectivity, a server MUST choose an address as a 'server
  identifier' that, to the best of the server's knowledge, is reachable
  from the client.  For example, if the DHCP server and the DHCP client
  are connected to the same subnet (i.e., the 'giaddr' field in the
  message from the client is zero), the server SHOULD select the IP
  address the server is using for communication on that subnet as the
  'server identifier'.  If the server is using multiple IP addresses on
  that subnet, any such address may be used.  If the server has
  received a message through a DHCP relay agent, the server SHOULD
  choose an address from the interface on which the message was
  recieved as the 'server identifier' (unless the server has other,
  better information on which to make its choice).  DHCP clients MUST
  use the IP address provided in the 'server identifier' option for any
  unicast requests to the DHCP server.

  DHCP messages broadcast by a client prior to that client obtaining
  its IP address must have the source address field in the IP header
  set to 0.

  If the 'giaddr' field in a DHCP message from a client is non-zero,
  the server sends any return messages to the 'DHCP server' port on the
  BOOTP relay agent whose address appears in 'giaddr'. If the 'giaddr'
  field is zero and the 'ciaddr' field is nonzero, then the server
  unicasts DHCPOFFER and DHCPACK messages to the address in 'ciaddr'.
  If 'giaddr' is zero and 'ciaddr' is zero, and the broadcast bit is
  set, then the server broadcasts DHCPOFFER and DHCPACK messages to
  0xffffffff. If the broadcast bit is not set and 'giaddr' is zero and
  'ciaddr' is zero, then the server unicasts DHCPOFFER and DHCPACK
  messages to the client's hardware address and 'yiaddr' address. Di
  all cases, when 'giaddr' is zero, the server broadcasts any DHCPNAK
  messages to 0xffffffff.

  If the options in a DHCP message extend into the 'sname' and 'file'
  fields, the 'option overload' option MUST appear in the 'options'
  field, with value 1, 2 or 3, as specified in RFC 1533. Jika

  'option overload' option is present in the 'options' field, the
  options in the 'options' field MUST be terminated by an 'end' option,
  and MAY contain one or more 'pad' options to fill the options field.
  The options in the 'sname' and 'file' fields (if in use as indicated
  by the 'options overload' option) MUST begin with the first octet of
  the field, MUST be terminated by an 'end' option, and MUST be
  followed by 'pad' options to fill the remainder of the field. Sembarang
  individual option in the 'options', 'sname' and 'file' fields MUST be
  entirely contained in that field.  The options in the 'options' field
  MUST be interpreted first, so that any 'option overload' options may
  be interpreted.  The 'file' field MUST be interpreted next (if the
  'option overload' option indicates that the 'file' field contains
  DHCP options), followed by the 'sname' field.

  The values to be passed in an 'option' tag may be too long to fit in
  the 255 octets available to a single option (e.g., a list of routers
  in a 'router' option [21]).  Options may appear only once, unless
  otherwise specified in the options document.  The client concatenates
  the values of multiple instances of the same option into a single
  parameter list for configuration.

  DHCP clients are responsible for all message retransmission. Itu
  client MUST adopt a retransmission strategy that incorporates a
  randomized exponential backoff algorithm to determine the delay
  between retransmissions.  The delay between retransmissions SHOULD be
  chosen to allow sufficient time for replies from the server to be
  delivered based on the characteristics of the internetwork between
  the client and the server.  For example, in a 10Mb/sec Ethernet
  internetwork, the delay before the first retransmission SHOULD be 4
  seconds randomized by the value of a uniform random number chosen
  from the range -1 to +1.  Clients with clocks that provide resolution
  granularity of less than one second may choose a non-integer
  randomization value.  The delay before the next retransmission SHOULD
  be 8 seconds randomized by the value of a uniform number chosen from
  the range -1 to +1.  The retransmission delay SHOULD be doubled with
  subsequent retransmissions up to a maximum of 64 seconds. Klien
  MAY provide an indication of retransmission attempts to the user as
  an indication of the progress of the configuration process.

  The 'xid' field is used by the client to match incoming DHCP messages
  with pending requests.  A DHCP client MUST choose 'xid's in such a
  way as to minimize the chance of using an 'xid' identical to one used
  by another client. For example, a client may choose a different,
  random initial 'xid' each time the client is rebooted, and
  subsequently use sequential 'xid's until the next reboot.  Selecting
  a new 'xid' for each retransmission is an implementation decision. Sebuah
  client may choose to reuse the same 'xid' or select a new 'xid' for
  each retransmitted message.

  Normally, DHCP servers and BOOTP relay agents attempt to deliver
  DHCPOFFER, DHCPACK and DHCPNAK messages directly to the client using
  uicast delivery.  The IP destination address (in the IP header) is
  set to the DHCP 'yiaddr' address and the link-layer destination
  address is set to the DHCP 'chaddr' address.  Unfortunately, some
  client implementations are unable to receive such unicast IP
  datagrams until the implementation has been configured with a valid
  IP address (leading to a deadlock in which the client's IP address
  cannot be delivered until the client has been configured with an IP
  alamat).

  A client that cannot receive unicast IP datagrams until its protocol
  software has been configured with an IP address SHOULD set the
  BROADCAST bit in the 'flags' field to 1 in any DHCPDISCOVER or
  DHCPREQUEST messages that client sends.  The BROADCAST bit will
  provide a hint to the DHCP server and BOOTP relay agent to broadcast
  any messages to the client on the client's subnet.  A client that can
  receive unicast IP datagrams before its protocol software has been
  configured SHOULD clear the BROADCAST bit to 0.  The BOOTP
  clarifications document discusses the ramifications of the use of the
  BROADCAST bit [21].

  A server or relay agent sending or relaying a DHCP message directly
  to a DHCP client (i.e., not to a relay agent specified in the
  'giaddr' field) SHOULD examine the BROADCAST bit in the 'flags'
  lapangan. If this bit is set to 1, the DHCP message SHOULD be sent as
  an IP broadcast using an IP broadcast address (preferably 0xffffffff)
  as the IP destination address and the link-layer broadcast address as
  the link-layer destination address.  If the BROADCAST bit is cleared
  to 0, the message SHOULD be sent as an IP unicast to the IP address
  specified in the 'yiaddr' field and the link-layer address specified
  in the 'chaddr' field.  If unicasting is not possible, the message
  MAY be sent as an IP broadcast using an IP broadcast address
  (preferably 0xffffffff) as the IP destination address and the link-
  layer broadcast address as the link-layer destination address.

4.2 DHCP server administrative controls

  DHCP servers are not required to respond to every DHCPDISCOVER and
  DHCPREQUEST message they receive.  For example, a network
  administrator, to retain stringent control over the clients attached
  to the network, may choose to configure DHCP servers to respond only
  to clients that have been previously registered through some external
  mekanisme. The DHCP specification describes only the interactions
  between clients and servers when the clients and servers choose to
  interact; it is beyond the scope of the DHCP specification to
  describe all of the administrative controls that system
  administrators might want to use.  Specific DHCP server

  implementations may incorporate any controls or policies desired by a
  network administrator.

  In some environments, a DHCP server will have to consider the values
  of the vendor class options included in DHCPDISCOVER or DHCPREQUEST
  messages when determining the correct parameters for a particular
  klien.

  A DHCP server needs to use some unique identifier to associate a
  client with its lease.  The client MAY choose to explicitly provide
  the identifier through the 'client identifier' option.  If the client
  supplies a 'client identifier', the client MUST use the same 'client
  identifier' in all subsequent messages, and the server MUST use that
  identifier to identify the client.  If the client does not provide a
  'client identifier' option, the server MUST use the contents of the
  'chaddr' field to identify the client. It is crucial for a DHCP
  client to use an identifier unique within the subnet to which the
  client is attached in the 'client identifier' option.  Use of
  'chaddr' as the client's unique identifier may cause unexpected
  results, as that identifier may be associated with a hardware
  interface that could be moved to a new client.  Some sites may choose
  to use a manufacturer's serial number as the 'client identifier', to
  avoid unexpected changes in a clients network address due to transfer
  of hardware interfaces among computers.  Sites may also choose to use
  a DNS name as the 'client identifier', causing address leases to be
  associated with the DNS name rather than a specific hardware box.

  DHCP clients are free to use any strategy in selecting a DHCP server
  among those from which the client receives a DHCPOFFER message. Itu
  client implementation of DHCP SHOULD provide a mechanism for the user
  to select directly the 'vendor class identifier' values.

4.3 DHCP server behavior

  A DHCP server processes incoming DHCP messages from a client based on
  the current state of the binding for that client.  A DHCP server can
  receive the following messages from a client:

     o DHCPDISCOVER

     o DHCPREQUEST

     o DHCPDECLINE

     o DHCPRELEASE

     o DHCPINFORM




Droms                       Standards Track                    [Page 26]

RFC 2131          Dynamic Host Configuration Protocol         March 1997


  Table 3 gives the use of the fields and options in a DHCP message by
  a server.  The remainder of this section describes the action of the
  DHCP server for each possible incoming message.

4.3.1 DHCPDISCOVER message

  When a server receives a DHCPDISCOVER message from a client, the
  server chooses a network address for the requesting client.  If no
  address is available, the server may choose to report the problem to
  the system administrator. If an address is available, the new address
  SHOULD be chosen as follows:

     o The client's current address as recorded in the client's current
       binding, ELSE

     o The client's previous address as recorded in the client's (now
       expired or released) binding, if that address is in the server's
       pool of available addresses and not already allocated, ELSE

     o The address requested in the 'Requested IP Address' option, if that
       address is valid and not already allocated, ELSE

     o A new address allocated from the server's pool of available
       addresses; the address is selected based on the subnet from which
       the message was received (if 'giaddr' is 0) or on the address of
       the relay agent that forwarded the message ('giaddr' when not 0).

  As described in section 4.2, a server MAY, for administrative
  reasons, assign an address other than the one requested, or may
  refuse to allocate an address to a particular client even though free
  addresses are available.

  Note that, in some network architectures (e.g., internets with more
  than one IP subnet assigned to a physical network segment), it may be
  the case that the DHCP client should be assigned an address from a
  different subnet than the address recorded in 'giaddr'.  Thus, DHCP
  does not require that the client be assigned as address from the
  subnet in 'giaddr'.  A server is free to choose some other subnet,
  and it is beyond the scope of the DHCP specification to describe ways
  in which the assigned IP address might be chosen.

  While not required for correct operation of DHCP, the server SHOULD
  NOT reuse the selected network address before the client responds to
  the server's DHCPOFFER message.  The server may choose to record the
  address as offered to the client.

  The server must also choose an expiration time for the lease, as
  berikut

  o IF the client has not requested a specific lease in the
    DHCPDISCOVER message and the client already has an assigned network
    address, the server returns the lease expiration time previously
    assigned to that address (note that the client must explicitly
    request a specific lease to extend the expiration time on a
    previously assigned address), ELSE

  o IF the client has not requested a specific lease in the
    DHCPDISCOVER message and the client does not have an assigned
    network address, the server assigns a locally configured default
    lease time, ELSE

  o IF the client has requested a specific lease in the DHCPDISCOVER
    message (regardless of whether the client has an assigned network
    address), the server may choose either to return the requested
    lease (if the lease is acceptable to local policy) or select
    another lease.

Field      DHCPOFFER            DHCPACK             DHCPNAK
-----      ---------            -------             -------
'op'       BOOTREPLY            BOOTREPLY           BOOTREPLY
'htype'    (From "Assigned Numbers" RFC)
'hlen'     (Hardware address length in octets)
'hops'     0                    0                   0
'xid'      'xid' from client    'xid' from client   'xid' from client
          DHCPDISCOVER         DHCPREQUEST         DHCPREQUEST
          message              message             message
'secs'     0                    0                   0
'ciaddr'   0                    'ciaddr' from       0
                               DHCPREQUEST or 0
'yiaddr'   IP address offered   IP address          0
          to client            assigned to client
'siaddr'   IP address of next   IP address of next  0
          bootstrap server     bootstrap server
'flags'    'flags' from         'flags' from        'flags' from
          client DHCPDISCOVER  client DHCPREQUEST  client DHCPREQUEST
          message              message             message
'giaddr'   'giaddr' from        'giaddr' from       'giaddr' from
          client DHCPDISCOVER  client DHCPREQUEST  client DHCPREQUEST
          message              message             message
'chaddr'   'chaddr' from        'chaddr' from       'chaddr' from
          client DHCPDISCOVER  client DHCPREQUEST  client DHCPREQUEST
          message              message             message
'sname'    Server host name     Server host name    (unused)
          or options           or options
'file'     Client boot file     Client boot file    (unused)
          name or options      name or options
'options'  options              options

Option                    DHCPOFFER    DHCPACK            DHCPNAK
------                    ---------    -------            -------
Requested IP address      MUST NOT     MUST NOT           MUST NOT
IP address lease time     MUST         MUST (DHCPREQUEST) MUST NOT
                                      MUST NOT (DHCPINFORM)
Use 'file'/'sname' fields MAY          MAY                MUST NOT
DHCP message type         DHCPOFFER    DHCPACK            DHCPNAK
Parameter request list    MUST NOT     MUST NOT           MUST NOT
Message                   SHOULD       SHOULD             SHOULD
Client identifier         MUST NOT     MUST NOT           MAY
Vendor class identifier   MAY          MAY                MAY
Server identifier         MUST         MUST               MUST
Maximum message size      MUST NOT     MUST NOT           MUST NOT
All others                MAY          MAY                MUST NOT

          Table 3:  Fields and options used by DHCP servers

  Once the network address and lease have been determined, the server
  constructs a DHCPOFFER message with the offered configuration
  parameter. It is important for all DHCP servers to return the same
  parameters (with the possible exception of a newly allocated network
  address) to ensure predictable client behavior regardless of which
  server the client selects.  The configuration parameters MUST be
  selected by applying the following rules in the order given below.
  The network administrator is responsible for configuring multiple
  DHCP servers to ensure uniform responses from those servers. Itu
  server MUST return to the client:

  o The client's network address, as determined by the rules given
    earlier in this section,

  o The expiration time for the client's lease, as determined by the
    rules given earlier in this section,

  o Parameters requested by the client, according to the following
    rules:

       -- IF the server has been explicitly configured with a default
          value for the parameter, the server MUST include that value
          in an appropriate option in the 'option' field, ELSE

       -- IF the server recognizes the parameter as a parameter
          defined in the Host Requirements Document, the server MUST
          include the default value for that parameter as given in the
          Host Requirements Document in an appropriate option in the
          'option' field, ELSE

       -- The server MUST NOT return a value for that parameter,

    The server MUST supply as many of the requested parameters as
    possible and MUST omit any parameters it cannot provide. Itu
    server MUST include each requested parameter only once unless
    explicitly allowed in the DHCP Options and BOOTP Vendor
    Extensions document.

  o Any parameters from the existing binding that differ from the Host
    Requirements Document defaults,

  o Any parameters specific to this client (as identified by
    the contents of 'chaddr' or 'client identifier' in the DHCPDISCOVER
    or DHCPREQUEST message), e.g., as configured by the network
    administrator,

  o Any parameters specific to this client's class (as identified
    by the contents of the 'vendor class identifier'
    option in the DHCPDISCOVER or DHCPREQUEST message),
    e.g., as configured by the network administrator; the parameters
    MUST be identified by an exact match between the client's vendor
    class identifiers and the client's classes identified in the
    server,

  o Parameters with non-default values on the client's subnet.

  The server MAY choose to return the 'vendor class identifier' used to
  determine the parameters in the DHCPOFFER message to assist the
  client in selecting which DHCPOFFER to accept.  The server inserts
  the 'xid' field from the DHCPDISCOVER message into the 'xid' field of
  the DHCPOFFER message and sends the DHCPOFFER message to the
  requesting client.

4.3.2 DHCPREQUEST message

  A DHCPREQUEST message may come from a client responding to a
  DHCPOFFER message from a server, from a client verifying a previously
  allocated IP address or from a client extending the lease on a
  network address.  If the DHCPREQUEST message contains a 'server
  identifier' option, the message is in response to a DHCPOFFER
  pesan. Otherwise, the message is a request to verify or extend an
  existing lease.  If the client uses a 'client identifier' in a
  DHCPREQUEST message, it MUST use that same 'client identifier' in all
  subsequent messages. If the client included a list of requested
  parameters in a DHCPDISCOVER message, it MUST include that list in
  all subsequent messages.

  Any configuration parameters in the DHCPACK message SHOULD NOT
  conflict with those in the earlier DHCPOFFER message to which the
  client is responding.  The client SHOULD use the parameters in the
  DHCPACK message for configuration.

  Clients send DHCPREQUEST messages as follows:

  o DHCPREQUEST generated during SELECTING state:

     Client inserts the address of the selected server in 'server
     identifier', 'ciaddr' MUST be zero, 'requested IP address' MUST be
     filled in with the yiaddr value from the chosen DHCPOFFER.

     Note that the client may choose to collect several DHCPOFFER
     messages and select the "best" offer.  The client indicates its
     selection by identifying the offering server in the DHCPREQUEST
     pesan. If the client receives no acceptable offers, the client
     may choose to try another DHCPDISCOVER message. Oleh karena itu,
     servers may not receive a specific DHCPREQUEST from which they can
     decide whether or not the client has accepted the offer. Karena
     the servers have not committed any network address assignments on
     the basis of a DHCPOFFER, servers are free to reuse offered
     network addresses in response to subsequent requests.  As an
     implementation detail, servers SHOULD NOT reuse offered addresses
     and may use an implementation-specific timeout mechanism to decide
     when to reuse an offered address.

  o DHCPREQUEST generated during INIT-REBOOT state:

     'server identifier' MUST NOT be filled in, 'requested IP address'
     option MUST be filled in with client's notion of its previously
     assigned address. 'ciaddr' MUST be zero. The client is seeking to
     verify a previously allocated, cached configuration. Server SHOULD
     send a DHCPNAK message to the client if the 'requested IP address'
     is incorrect, or is on the wrong network.

     Determining whether a client in the INIT-REBOOT state is on the
     correct network is done by examining the contents of 'giaddr', the
     'requested IP address' option, and a database lookup. If the DHCP
     server detects that the client is on the wrong net (i.e., the
     result of applying the local subnet mask or remote subnet mask (if
     'giaddr' is not zero) to 'requested IP address' option value
     doesn't match reality), then the server SHOULD send a DHCPNAK
     message to the client.

     If the network is correct, then the DHCP server should check if
     the client's notion of its IP address is correct. If not, then the
     server SHOULD send a DHCPNAK message to the client. If the DHCP
     server has no record of this client, then it MUST remain silent,
     and MAY output a warning to the network administrator. Ini
     behavior is necessary for peaceful coexistence of non-
     communicating DHCP servers on the same wire.

     If 'giaddr' is 0x0 in the DHCPREQUEST message, the client is on
     the same subnet as the server.  The server MUST broadcast the
     DHCPNAK message to the 0xffffffff broadcast address because the
     client may not have a correct network address or subnet mask, and
     the client may not be answering ARP requests.

     If 'giaddr' is set in the DHCPREQUEST message, the client is on a
     different subnet.  The server MUST set the broadcast bit in the
     DHCPNAK, so that the relay agent will broadcast the DHCPNAK to the
     client, because the client may not have a correct network address
     or subnet mask, and the client may not be answering ARP requests.

  o DHCPREQUEST generated during RENEWING state:

     'server identifier' MUST NOT be filled in, 'requested IP address'
     option MUST NOT be filled in, 'ciaddr' MUST be filled in with
     client's IP address. In this situation, the client is completely
     configured, and is trying to extend its lease. This message will
     be unicast, so no relay agents will be involved in its
     transmisi. Because 'giaddr' is therefore not filled in, the
     DHCP server will trust the value in 'ciaddr', and use it when
     replying to the client.

     A client MAY choose to renew or extend its lease prior to T1. Itu
     server may choose not to extend the lease (as a policy decision by
     the network administrator), but should return a DHCPACK message
     regardless.

  o DHCPREQUEST generated during REBINDING state:

     'server identifier' MUST NOT be filled in, 'requested IP address'
     option MUST NOT be filled in, 'ciaddr' MUST be filled in with
     client's IP address. In this situation, the client is completely
     configured, and is trying to extend its lease. This message MUST
     be broadcast to the 0xffffffff IP broadcast address.  The DHCP
     server SHOULD check 'ciaddr' for correctness before replying to
     the DHCPREQUEST.

     The DHCPREQUEST from a REBINDING client is intended to accommodate
     sites that have multiple DHCP servers and a mechanism for
     maintaining consistency among leases managed by multiple servers.
     A DHCP server MAY extend a client's lease only if it has local
     administrative authority to do so.

4.3.3 DHCPDECLINE message

  If the server receives a DHCPDECLINE message, the client has
  discovered through some other means that the suggested network
  address is already in use.  The server MUST mark the network address
  as not available and SHOULD notify the local system administrator of
  a possible configuration problem.

4.3.4 DHCPRELEASE message

  Upon receipt of a DHCPRELEASE message, the server marks the network
  address as not allocated.  The server SHOULD retain a record of the
  client's initialization parameters for possible reuse in response to
  subsequent requests from the client.

4.3.5 DHCPINFORM message

  The server responds to a DHCPINFORM message by sending a DHCPACK
  message directly to the address given in the 'ciaddr' field of the
  DHCPINFORM message.  The server MUST NOT send a lease expiration time
  to the client and SHOULD NOT fill in 'yiaddr'.  The server includes
  other parameters in the DHCPACK message as defined in section 4.3.1.

4.3.6 Client messages

  Table 4 details the differences between messages from clients in
  various states.

  -------------------------------------------------- -------------------
  |              |INIT-REBOOT  |SELECTING    |RENEWING     |REBINDING |
  -------------------------------------------------- -------------------
  |broad/unicast |broadcast    |broadcast    |unicast      |broadcast |
  |server-ip     |MUST NOT     |MUST         |MUST NOT     |MUST NOT  |
  |requested-ip  |MUST         |MUST         |MUST NOT     |MUST NOT  |
  |ciaddr        |zero         |zero         |IP address   |IP address|
  -------------------------------------------------- -------------------

             Table 4: Client messages from different states

4.4 DHCP client behavior

  Figure 5 gives a state-transition diagram for a DHCP client. Sebuah
  client can receive the following messages from a server:

        o DHCPOFFER

        o DHCPACK

        o DHCPNAK

  The DHCPINFORM message is not shown in figure 5.  A client simply
  sends the DHCPINFORM and waits for DHCPACK messages.  Once the client
  has selected its parameters, it has completed the configuration
  proses.

  Table 5 gives the use of the fields and options in a DHCP message by
  a client.  The remainder of this section describes the action of the
  DHCP client for each possible incoming message.  The description in
  the following section corresponds to the full configuration procedure
  previously described in section 3.1, and the text in the subsequent
  section corresponds to the abbreviated configuration procedure
  described in section 3.2.

--------                               -------
|        | +-------------------------->|       |<-------------------+ | INIT-  | |     +-------------------->| INIT  |                    |
| REBOOT |DHCPNAK/         +---------->|       |<---+               | |        |Restart|         |            -------     |               |  --------  |  DHCPNAK/     |               |                        |     |      Discard offer   |      -/Send DHCPDISCOVER               | -/Send DHCPREQUEST         |               |                        |     |      |     |      DHCPACK            v        |               |  -----------     |   (not accept.)/   -----------   |               | |           |    |  Send DHCPDECLINE |           |                  | | REBOOTING |    |         |         | SELECTING |<----+            | |           |    |        /          |           |     |DHCPOFFER/  |  -----------     |       /            -----------   |  |Collect     |     |            |      /                  |   |       |  replies   | DHCPACK/         |     /  +----------------+   +-------+            | Record lease, set|    |   v   Select offer/                         | timers T1, T2   ------------  send DHCPREQUEST      |               |     |   +----->|            |             DHCPNAK, Lease expired/   |
   |   |      | REQUESTING |                  Halt network         |
   DHCPOFFER/ |            |                       |               |
   Discard     ------------                        |               |
   |   |        |        |                   -----------           |
   |   +--------+     DHCPACK/              |           |          |
   |              Record lease, set    -----| REBINDING |          |
   |                timers T1, T2     /     |           |          |
   |                     |        DHCPACK/   -----------           |
   |                     v     Record lease, set   ^               |
   +----------------> -------      /timers T1,T2   |               |
              +----->|       |<---+                |               |                |      | BOUND |<---+                |               |   DHCPOFFER, DHCPACK, |       |    |            T2 expires/   DHCPNAK/    DHCPNAK/Discard     -------     |             Broadcast  Halt network                |       | |         |            DHCPREQUEST         |                +-------+ |        DHCPACK/          |               |                     T1 expires/   Record lease, set |               |                  Send DHCPREQUEST timers T1, T2     |               |                  to leasing server |                |               |                          |   ----------             |               |                          |  |          |------------+               |                          +->| RENEWING |                            |
                           |          |----------------------------+
                            ----------
         Figure 5:  State-transition diagram for DHCP clients







Droms                       Standards Track                    [Page 35]

RFC 2131          Dynamic Host Configuration Protocol         March 1997


4.4.1 Initialization and allocation of network address

  The client begins in INIT state and forms a DHCPDISCOVER message.
  The client SHOULD wait a random time between one and ten seconds to
  desynchronize the use of DHCP at startup.  The client sets 'ciaddr'
  to 0x00000000.  The client MAY request specific parameters by
  including the 'parameter request list' option.  The client MAY
  suggest a network address and/or lease time by including the
  'requested IP address' and 'IP address lease time' options. Itu
  client MUST include its hardware address in the 'chaddr' field, if
  necessary for delivery of DHCP reply messages.  The client MAY
  include a different unique identifier in the 'client identifier'
  option, as discussed in section 4.2.  If the client included a list
  of requested parameters in a DHCPDISCOVER message, it MUST include
  that list in all subsequent messages.

  The client generates and records a random transaction identifier and
  inserts that identifier into the 'xid' field.  The client records its
  own local time for later use in computing the lease expiration. Itu
  client then broadcasts the DHCPDISCOVER on the local hardware
  broadcast address to the 0xffffffff IP broadcast address and 'DHCP
  server' UDP port.

  If the 'xid' of an arriving DHCPOFFER message does not match the
  'xid' of the most recent DHCPDISCOVER message, the DHCPOFFER message
  must be silently discarded.  Any arriving DHCPACK messages must be
  silently discarded.

  The client collects DHCPOFFER messages over a period of time, selects
  one DHCPOFFER message from the (possibly many) incoming DHCPOFFER
  messages (e.g., the first DHCPOFFER message or the DHCPOFFER message
  from the previously used server) and extracts the server address from
  the 'server identifier' option in the DHCPOFFER message.  The time
  over which the client collects messages and the mechanism used to
  select one DHCPOFFER are implementation dependent.
















Droms                       Standards Track                    [Page 36]

RFC 2131          Dynamic Host Configuration Protocol         March 1997


Field      DHCPDISCOVER          DHCPREQUEST           DHCPDECLINE,
          DHCPINFORM                                  DHCPRELEASE
-----      ------------          -----------           -----------
'op'       BOOTREQUEST           BOOTREQUEST           BOOTREQUEST
'htype'    (From "Assigned Numbers" RFC)
'hlen'     (Hardware address length in octets)
'hops'     0                     0                     0
'xid'      selected by client    'xid' from server     selected by
                                DHCPOFFER message     client
'secs'     0 or seconds since    0 or seconds since    0
          DHCP process started  DHCP process started
'flags'    Set 'BROADCAST'       Set 'BROADCAST'       0
          flag if client        flag if client
          requires broadcast    requires broadcast
          reply                 reply
'ciaddr'   0 (DHCPDISCOVER)      0 or client's         0 (DHCPDECLINE)
          client's              network address       client's network
          network address       (BOUND/RENEW/REBIND)  address
          (DHCPINFORM)                                (DHCPRELEASE)
'yiaddr'   0                     0                     0
'siaddr'   0                     0                     0
'giaddr'   0                     0                     0
'chaddr'   client's hardware     client's hardware     client's hardware
          address               address               address
'sname'    options, if           options, if           (unused)
          indicated in          indicated in
          'sname/file'          'sname/file'
          option; otherwise     option; otherwise
          unused                unused
'file'     options, if           options, if           (unused)
          indicated in          indicated in
          'sname/file'          'sname/file'
          option; otherwise     option; otherwise
          unused                unused
'options'  options               options               (unused)

Droms                       Standards Track                    [Page 37]

RFC 2131          Dynamic Host Configuration Protocol         March 1997


Option                     DHCPDISCOVER  DHCPREQUEST      DHCPDECLINE,
                          DHCPINFORM                     DHCPRELEASE
------                     ------------  -----------      -----------
Requested IP address       MAY           MUST (in         MUST
                          (DISCOVER)    SELECTING or     (DHCPDECLINE),
                          MUST NOT      INIT-REBOOT)     MUST NOT
                          (INFORM)      MUST NOT (in     (DHCPRELEASE)
                                        BOUND or
                                        RENEWING)
IP address lease time      MAY           MAY              MUST NOT
                          (DISCOVER)
                          MUST NOT
                          (INFORM)
Use 'file'/'sname' fields  MAY           MAY              MAY
DHCP message type          DHCPDISCOVER/ DHCPREQUEST      DHCPDECLINE/
                          DHCPINFORM                     DHCPRELEASE
Client identifier          MAY           MAY              MAY
Vendor class identifier    MAY           MAY              MUST NOT
Server identifier          MUST NOT      MUST (after      MUST
                                        SELECTING)
                                        MUST NOT (after
                                        INIT-REBOOT,
                                        BOUND, RENEWING
                                        or REBINDING)
Parameter request list     MAY           MAY              MUST NOT
Maximum message size       MAY           MAY              MUST NOT
Message                    SHOULD NOT    SHOULD NOT       SHOULD
Site-specific              MAY           MAY              MUST NOT
All others                 MAY           MAY              MUST NOT

            Table 5:  Fields and options used by DHCP clients

  If the parameters are acceptable, the client records the address of
  the server that supplied the parameters from the 'server identifier'
  field and sends that address in the 'server identifier' field of a
  DHCPREQUEST broadcast message.  Once the DHCPACK message from the
  server arrives, the client is initialized and moves to BOUND state.
  The DHCPREQUEST message contains the same 'xid' as the DHCPOFFER
  pesan. The client records the lease expiration time as the sum of
  the time at which the original request was sent and the duration of
  the lease from the DHCPACK message.    The client SHOULD perform a
  check on the suggested address to ensure that the address is not
  already in use.  For example, if the client is on a network that
  supports ARP, the client may issue an ARP request for the suggested
  request.  When broadcasting an ARP request for the suggested address,
  the client must fill in its own hardware address as the sender's
  hardware address, and 0 as the sender's IP address, to avoid
  confusing ARP caches in other hosts on the same subnet. Jika

  network address appears to be in use, the client MUST send a
  DHCPDECLINE message to the server. The client SHOULD broadcast an ARP
  reply to announce the client's new IP address and clear any outdated
  ARP cache entries in hosts on the client's subnet.

4.4.2 Initialization with known network address

  The client begins in INIT-REBOOT state and sends a DHCPREQUEST
  pesan. The client MUST insert its known network address as a
  'requested IP address' option in the DHCPREQUEST message. Klien
  may request specific configuration parameters by including the
  'parameter request list' option.  The client generates and records a
  random transaction identifier and inserts that identifier into the
  'xid' field.  The client records its own local time for later use in
  computing the lease expiration.  The client MUST NOT include a
  'server identifier' in the DHCPREQUEST message.  The client then
  broadcasts the DHCPREQUEST on the local hardware broadcast address to
  the 'DHCP server' UDP port.

  Once a DHCPACK message with an 'xid' field matching that in the
  client's DHCPREQUEST message arrives from any server, the client is
  initialized and moves to BOUND state.  The client records the lease
  expiration time as the sum of the time at which the DHCPREQUEST
  message was sent and the duration of the lease from the DHCPACK
  pesan.

4.4.3 Initialization with an externally assigned network address

  The client sends a DHCPINFORM message. The client may request
  specific configuration parameters by including the 'parameter request
  list' option. The client generates and records a random transaction
  identifier and inserts that identifier into the 'xid' field. Itu
  client places its own network address in the 'ciaddr' field. Itu
  client SHOULD NOT request lease time parameters.

  The client then unicasts the DHCPINFORM to the DHCP server if it
  knows the server's address, otherwise it broadcasts the message to
  the limited (all 1s) broadcast address.  DHCPINFORM messages MUST be
  directed to the 'DHCP server' UDP port.

  Once a DHCPACK message with an 'xid' field matching that in the
  client's DHCPINFORM message arrives from any server, the client is
  initialized.

  If the client does not receive a DHCPACK within a reasonable period
  of time (60 seconds or 4 tries if using timeout suggested in section
  4.1), then it SHOULD display a message informing the user of the
  problem, and then SHOULD begin network processing using suitable

  defaults as per Appendix A.

4.4.4 Use of broadcast and unicast

  The DHCP client broadcasts DHCPDISCOVER, DHCPREQUEST and DHCPINFORM
  messages, unless the client knows the address of a DHCP server. Itu
  client unicasts DHCPRELEASE messages to the server. Karena
  client is declining the use of the IP address supplied by the server,
  the client broadcasts DHCPDECLINE messages.

  When the DHCP client knows the address of a DHCP server, in either
  INIT or REBOOTING state, the client may use that address in the
  DHCPDISCOVER or DHCPREQUEST rather than the IP broadcast address.
  The client may also use unicast to send DHCPINFORM messages to a
  known DHCP server.  If the client receives no response to DHCP
  messages sent to the IP address of a known DHCP server, the DHCP
  client reverts to using the IP broadcast address.

4.4.5 Reacquisition and expiration

  The client maintains two times, T1 and T2, that specify the times at
  which the client tries to extend its lease on its network address.
  T1 is the time at which the client enters the RENEWING state and
  attempts to contact the server that originally issued the client's
  network address.  T2 is the time at which the client enters the
  REBINDING state and attempts to contact any server. T1 MUST be
  earlier than T2, which, in turn, MUST be earlier than the time at
  which the client's lease will expire.

  To avoid the need for synchronized clocks, T1 and T2 are expressed in
  options as relative times [2].

  At time T1 the client moves to RENEWING state and sends (via unicast)
  a DHCPREQUEST message to the server to extend its lease. Klien
  sets the 'ciaddr' field in the DHCPREQUEST to its current network
  alamat. The client records the local time at which the DHCPREQUEST
  message is sent for computation of the lease expiration time. Itu
  client MUST NOT include a 'server identifier' in the DHCPREQUEST
  pesan.

  Any DHCPACK messages that arrive with an 'xid' that does not match
  the 'xid' of the client's DHCPREQUEST message are silently discarded.
  When the client receives a DHCPACK from the server, the client
  computes the lease expiration time as the sum of the time at which
  the client sent the DHCPREQUEST message and the duration of the lease
  in the DHCPACK message.  The client has successfully reacquired its
  network address, returns to BOUND state and may continue network
  processing.

 If no DHCPACK arrives before time T2, the client moves to REBINDING
  state and sends (via broadcast) a DHCPREQUEST message to extend its
  lease.  The client sets the 'ciaddr' field in the DHCPREQUEST to its
  current network address.  The client MUST NOT include a 'server
  identifier' in the DHCPREQUEST message.

  Times T1 and T2 are configurable by the server through options.  T1
  defaults to (0.5 * duration_of_lease).  T2 defaults to (0.875 *
  duration_of_lease).  Times T1 and T2 SHOULD be chosen with some
  random "fuzz" around a fixed value, to avoid synchronization of
  client reacquisition.

  A client MAY choose to renew or extend its lease prior to T1. Itu
  server MAY choose to extend the client's lease according to policy
  set by the network administrator.  The server SHOULD return T1 and
  T2, and their values SHOULD be adjusted from their original values to
  take account of the time remaining on the lease.

  In both RENEWING and REBINDING states, if the client receives no
  response to its DHCPREQUEST message, the client SHOULD wait one-half
  of the remaining time until T2 (in RENEWING state) and one-half of
  the remaining lease time (in REBINDING state), down to a minimum of
  60 seconds, before retransmitting the DHCPREQUEST message.

  If the lease expires before the client receives a DHCPACK, the client
  moves to INIT state, MUST immediately stop any other network
  processing and requests network initialization parameters as if the
  client were uninitialized.  If the client then receives a DHCPACK
  allocating that client its previous network address, the client
  SHOULD continue network processing.  If the client is given a new
  network address, it MUST NOT continue using the previous network
  address and SHOULD notify the local users of the problem.

4.4.6 DHCPRELEASE

  If the client no longer requires use of its assigned network address
  (e.g., the client is gracefully shut down), the client sends a
  DHCPRELEASE message to the server.  Note that the correct operation
  of DHCP does not depend on the transmission of DHCPRELEASE messages.

5. Pengakuan

  The author thanks the many (and too numerous to mention!) members of
  the DHC WG for their tireless and ongoing efforts in the development
  of DHCP and this document.

  The efforts of J Allard, Mike Carney, Dave Lapp, Fred Lien and John
  Mendonca in organizing DHCP interoperability testing sessions are
  gratefully acknowledged.

  The development of this document was supported in part by grants from
  the Corporation for National Research Initiatives (CNRI), Bucknell
  University and Sun Microsystems.

6. Referensi

  [1] Acetta, M., "Resource Location Protocol", RFC 887, CMU, December
      1983.

  [2] Alexander, S., and R. Droms, "DHCP Options and BOOTP Vendor
      Extensions", RFC 1533, Lachman Technology, Inc., Bucknell
      University, October 1993.

  [3] Braden, R., Editor, "Requirements for Internet Hosts --
      Communication Layers", STD 3, RFC 1122, USC/Information Sciences
      Institute, October 1989.

  [4] Braden, R., Editor, "Requirements for Internet Hosts --
      Application and Support, STD 3, RFC 1123, USC/Information
      Sciences Institute, October 1989.

  [5] Brownell, D, "Dynamic Reverse Address Resolution Protocol
      (DRARP)", Work in Progress.

  [6] Comer, D., and R. Droms, "Uniform Access to Internet Directory
      Services", Proc. of ACM SIGCOMM '90 (Special issue of Computer
      Communications Review), 20(4):50--59, 1990.

  [7] Croft, B., and J. Gilmore, "Bootstrap Protocol (BOOTP)", RFC 951,
      Stanford and SUN Microsystems, September 1985.

  [8] Deering, S., "ICMP Router Discovery Messages", RFC 1256, Xerox
      PARC, September 1991.

  [9] Droms, D., "Interoperation between DHCP and BOOTP", RFC 1534,
      Bucknell University, October 1993.

  [10] Finlayson, R., Mann, T., Mogul, J., and M. Theimer, "A Reverse
       Address Resolution Protocol", RFC 903, Stanford, June 1984.

  [11] Gray C., and D. Cheriton, "Leases: An Efficient Fault-Tolerant
       Mechanism for Distributed File Cache Consistency", In Proc. of
       the Twelfth ACM Symposium on Operating Systems Design, 1989.

  [12] Mockapetris, P., "Domain Names -- Concepts and Facilities", STD
       13, RFC 1034, USC/Information Sciences Institute, November 1987.

  [13] Mockapetris, P., "Domain Names -- Implementation and
       Specification", STD 13, RFC 1035, USC/Information Sciences
       Institute, November 1987.

  [14] Mogul J., and S. Deering, "Path MTU Discovery", RFC 1191,
       November 1990.

  [15] Morgan, R., "Dynamic IP Address Assignment for Ethernet Attached
       Hosts", Work in Progress.

  [16] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792,
       USC/Information Sciences Institute, September 1981.

  [17] Reynolds, J., "BOOTP Vendor Information Extensions", RFC 1497,
       USC/Information Sciences Institute, August 1993.

  [18] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700,
       USC/Information Sciences Institute, October 1994.

  [19] Jeffrey Schiller and Mark Rosenstein. A Protocol for the Dynamic
       Assignment of IP Addresses for use on an Ethernet. (Available
       from the Athena Project, MIT), 1989.

  [20] Sollins, K., "The TFTP Protocol (Revision 2)",  RFC 783, NIC,
       June 1981.

  [21] Wimer, W., "Clarifications and Extensions for the Bootstrap
       Protocol", RFC 1542, Carnegie Mellon University, October 1993.

7. Pertimbangan Keamanan

  DHCP is built directly on UDP and IP which are as yet inherently
  insecure.  Furthermore, DHCP is generally intended to make
  maintenance of remote and/or diskless hosts easier.  While perhaps
  not impossible, configuring such hosts with passwords or keys may be
  difficult and inconvenient.  Therefore, DHCP in its current form is
  quite insecure.

  Unauthorized DHCP servers may be easily set up.  Such servers can
  then send false and potentially disruptive information to clients
  such as incorrect or duplicate IP addresses, incorrect routing
  information (including spoof routers, etc.), incorrect domain
  nameserver addresses (such as spoof nameservers), and so on.
  Clearly, once this seed information is in place, an attacker can
  further compromise affected systems.

  Malicious DHCP clients could masquerade as legitimate clients and
  retrieve information intended for those legitimate clients. Di mana
  dynamic allocation of resources is used, a malicious client could
  claim all resources for itself, thereby denying resources to
  legitimate clients.

8. Author's Alamat

     Ralph Droms
     Computer Science Department
     323 Dana Engineering
     Bucknell University
     Lewisburg, PA 17837

     Phone: (717) 524-1145
     EMail: droms@bucknell.edu

A. Host Configuration Parameters

  IP-layer_parameters,_per_host:_

  Be a router                     on/off                 HRC 3.1
  Non-local source routing        on/off                 HRC 3.3.5
  Policy filters for
  non-local source routing        (list)                 HRC 3.3.5
  Maximum reassembly size         integer                HRC 3.3.2
  Default TTL                     integer                HRC 3.2.1.7
  PMTU aging timeout              integer                MTU 6.6
  MTU plateau table               (list)                 MTU 7
  IP-layer_parameters,_per_interface:_
  IP address                      (address)              HRC 3.3.1.6
  Subnet mask                     (address mask)         HRC 3.3.1.6
  MTU                             integer                HRC 3.3.3
  All-subnets-MTU                 on/off                 HRC 3.3.3
  Broadcast address flavor        0x00000000/0xffffffff  HRC 3.3.6
  Perform mask discovery          on/off                 HRC 3.2.2.9
  Be a mask supplier              on/off                 HRC 3.2.2.9
  Perform router discovery        on/off                 RD 5.1
  Router solicitation address     (address)              RD 5.1
  Default routers, list of:
          router address          (address)              HRC 3.3.1.6
          preference level        integer                HRC 3.3.1.6
  Static routes, list of:
          destination             (host/subnet/net)      HRC 3.3.1.2
          destination mask        (address mask)         HRC 3.3.1.2
          type-of-service         integer                HRC 3.3.1.2
          first-hop router        (address)              HRC 3.3.1.2
          ignore redirects        on/off                 HRC 3.3.1.2
          PMTU                    integer                MTU 6.6
          perform PMTU discovery  on/off                 MTU 6.6

  Link-layer_parameters,_per_interface:_
  Trailers                       on/off                 HRC 2.3.1
  ARP cache timeout              integer                HRC 2.3.2.1
  Ethernet encapsulation         (RFC 894/RFC 1042)     HRC 2.3.3

  TCP_parameters,_per_host:_
  TTL                            integer                HRC 4.2.2.19
  Keep-alive interval            integer                HRC 4.2.3.6
  Keep-alive data size           0/1                    HRC 4.2.3.6

Kunci:

  MTU = Path MTU Discovery (RFC 1191, Proposed Standard)
  RD = Router Discovery (RFC 1256, Proposed Standard)