Bisakah saya memiliki beberapa server DHCP di satu jaringan?

86

Ini adalah Pertanyaan Canonical tentang Server DHCP Redundan.

Apakah mungkin untuk memiliki lebih dari satu server DHCP pada LAN yang sama? Apa implikasi dari melakukan ini?

  1. Apa yang terjadi jika ada lebih dari satu server DHCP yang tersedia? Bagaimana klien saya tahu yang mana yang harus digunakan?
  2. Bagaimana saya bisa memiliki server DHCP yang memasok alamat ke lebih dari satu segmen subnet \ jaringan?
  3. Bagaimana saya dapat mengkonfigurasi beberapa server DHCP untuk memasok alamat untuk subnet yang sama .
Rob Moir
sumber
1
Gagasan di balik pertanyaan ini adalah untuk memberikan jawaban yang pasti untuk semua pertanyaan "Bagaimana saya bisa memiliki lebih dari satu DHCP Server" yang membuat gila pengguna kami yang lebih biasa. Semoga ini menjadi salah satu jawaban kanonik kami ( meta.serverfault.com/questions/1986/… )
Rob Moir
2
RTFM? tools.ietf.org/html/draft-ietf-dhc-failover-12#section-5.3 (dan rfc 3074) sudah mendefinisikan perilaku ini, dan linux dhcpd mengimplementasikannya manpages.ubuntu.com/manpages/precise/en/man5/ …
Dani_l
2
@Dani_l mungkin Anda harus mengikuti tautan 'pertanyaan kanonik' dalam pertanyaan dan juga mungkin meninjau penulis jawaban atas pertanyaan saya di sini sebelum memberi tahu saya bahwa saya perlu RTFM.
Rob Moir
2
Saya tidak memberi tahu ANDA untuk membaca manual. Saya hanya menunjukkan bahwa ada manual. Pertanyaannya kanonik, tetapi, jika berlaku, saya yakin itu harus mencakup referensi ke prosedur "resmi", jika ada. Dalam hal ini, IETF / RFC ada, dan itu resmi.
Dani_l

Jawaban:

97

Saya berasumsi pengetahuan dasar tentang apa yang DHCP lakukan dan bagaimana mengkonfigurasi server DHCP Anda dalam jawaban ini, tetapi sebelum kita berbicara tentang beberapa server DHCP di jaringan yang sama, mari kita pertama-tama dengan cepat membatasi kembali bagaimana klien menerima alamat IP dari DHCP di tingkat paling dasar.

DHCP pada jaringan sederhana berfungsi menggunakan prinsip DORA.

  • Discovery - klien menyiarkan pesan di segmen jaringan lokal yang terhubung, untuk menemukan server DHCP yang tersedia.

  • Penawaran - server DHCP yang dikonfigurasi sesuai menerima permintaan dari klien, dan menawarkannya alamat dari kumpulan alamat yang tersedia.

  • Request - Klien membalas penawaran, meminta alamat yang diterima dalam Penawaran.

  • Pengakuan - Server mengakui permintaan, menandai alamat yang digunakan dalam kumpulan alamatnya, dan memberi tahu klien tentang berapa lama sewa alamat valid untuk, dan informasi lainnya yang diperlukan.

Perangkat apa pun pada segmen jaringan dapat berupa server DHCP; itu tidak harus menjadi router atau pengontrol domain atau perangkat "khusus" lainnya di jaringan.

Ketika perangkat di jaringan Anda pertama kali meminta alamat IP atau mencapai akhir sewa mereka (atau Anda memaksa mereka untuk memeriksa sewa mereka masih valid), mereka hanya akan menyiarkan permintaan untuk server DHCP, dan akan menerima penawaran dari yang pertama Server DHCP membalas . Ini penting untuk diingat ketika kita melihat opsi untuk beberapa server DHCP di bawah ini.

Beberapa server DHCP PT 1: Rentang beberapa subnet.

Jika Anda memiliki beberapa VLAN atau segmen jaringan fisik yang dipisahkan menjadi subnet yang berbeda, dan Anda ingin memberikan layanan DHCP ke perangkat di semua subnet itu, maka ada dua cara untuk melakukan ini.

  1. Jika saklar router / layer 3 yang memisahkan mereka dapat bertindak sebagai agen relai BOOTP / DHCP, maka Anda dapat terus menyimpan semua server DHCP di satu atau dua bagian pusat jaringan Anda dan mengonfigurasi server DHCP Anda untuk mendukung berbagai rentang alamat. Untuk mendukung ini, router atau sakelar layer 3 Anda harus mendukung spesifikasi agen relai BOOTP yang dicakup dalam bagian 4 RFC 1542 .

  2. Jika router Anda tidak mendukung agen relai BOOTP RFC 1542, atau jika beberapa segmen jaringan Anda tersebar secara geografis melalui tautan lambat, maka Anda perlu menempatkan satu atau lebih server DHCP di setiap subnet. Server DHCP 'lokal' ini hanya akan melayani kebutuhan segmen lokalnya sendiri, dan tidak ada interaksi antara server DHCP dan server DHCP lainnya. Jika ini yang Anda inginkan maka Anda dapat dengan mudah mengkonfigurasi setiap server DHCP sebagai server mandiri, dengan rincian kumpulan alamat untuk subnetnya sendiri, dan tidak khawatir tentang server DHCP lain di bagian lain jaringan. Ini adalah contoh paling mendasar dari memiliki lebih dari satu server DHCP di jaringan yang sama.

Beberapa server DHCP PT 2: Server DHCP yang melayani segmen jaringan yang sama.

Ketika kebanyakan orang bertanya tentang "beberapa DHCP Server di jaringan yang sama", yang biasanya mereka tanyakan adalah ini; mereka ingin lebih dari satu server DHCP yang mengeluarkan rentang alamat jaringan yang sama untuk klien, baik untuk membagi beban antara beberapa server atau untuk menyediakan redundansi jika satu server sedang offline.

Ini sangat mungkin, meskipun memerlukan beberapa pemikiran dan perencanaan.

Dari sudut pandang “lalu lintas jaringan”, proses DORA yang dijabarkan pada awal jawaban ini menjelaskan bagaimana lebih dari satu server DHCP dapat hadir pada segmen jaringan; klien hanya menyiarkan permintaan Discovery dan server DHCP pertama yang merespons dengan Penawaran adalah 'pemenang'.

Dari sudut pandang server, setiap server akan memiliki kumpulan alamat yang dapat dikeluarkan untuk klien, yang dikenal ruang lingkup alamatnya. Server DHCP yang melayani subnet yang sama tidak boleh memiliki lingkup "bersama" tunggal, tetapi mereka harus memiliki lingkup "split".

Dengan kata lain, jika Anda memiliki rentang alamat DHCP untuk diberikan kepada klien dari 192.168.1.100 hingga 192.168.1.200, maka kedua server harus dikonfigurasikan untuk melayani bagian terpisah dari rentang itu, sehingga server pertama mungkin menggunakan bagian dari lingkup itu mulai dari 192.168.1.100 hingga 192.168.1.150 dan server kedua akan mengeluarkan 192.168.1.151 hingga 192.168.1.200.

Membagi ruang lingkup DHCP, menunjukkan pengecualian

Implementasi DHCP yang lebih baru dari Microsoft memiliki wizard untuk membuat pemisahan lingkup Anda seperti ini mudah dilakukan, dijelaskan dalam artikel Technet yang mungkin layak dilihat bahkan jika Anda tidak menggunakan implementasi Microsoft DHCP, karena menggambarkan prinsip-prinsip yang dibicarakan. di sini dengan cukup baik dan jawaban ini sudah cukup lama.

Memisahkan ruang lingkup - praktik terbaik

Satu hal yang akan Anda dengar disebut sebagai praktik terbaik adalah aturan 80/20 untuk pemisahan cakupan DHCP, yang berarti bahwa satu server akan melayani 80% dari alamat dalam lingkup itu dan server DHCP lainnya, yang secara efektif 'cadangan' akan melayani 20% dari alamat.

Gagasan di balik pemisahan alamat 80/20 adalah karena 80% alamat yang tersedia semoga memadai untuk semua alamat yang diperlukan pada subnet, dan penyewaan DHCP biasanya dikeluarkan untuk beberapa hari; jadi jika server DHCP utama Anda mati selama beberapa jam, maka tidak mungkin lebih dari 20% mesin di subnet itu perlu memperbarui alamatnya selama downtime, membuat kumpulan alamat 20% cukup.

Ini masih saran yang masuk akal, tetapi mengasumsikan dua hal:

  1. Bahwa Anda dapat memecahkan masalah dengan server DHCP "utama" Anda dengan cukup cepat untuk menghindari melelahkan kumpulan kecil alamat pada server DHCP cadangan Anda.
  2. Bahwa Anda tidak tertarik pada load balancing.

Hari-hari ini (seperti yang Anda lihat dari contoh saya) saya cenderung lebih suka 50/50, yang saya pikir merupakan jawaban yang lebih realistis untuk poin-poin di atas.

Hal lain yang perlu dipertimbangkan ketika membuat cakupan Anda pada server DHCP adalah mengkonfigurasi cakupan penuh ke setiap server dan mengecualikan rentang yang diberikan oleh server DHCP lainnya. Ini memiliki manfaat "mendokumentasikan diri sendiri" informasi DHCP untuk subnet lengkap pada setiap server DHCP yang akan meningkatkan kejelasan bagi siapa pun yang mencoba memahami apa yang sedang terjadi, dan juga dalam hal salah satu server DHCP Anda sedang offline untuk suatu saat, Anda dapat mengkonfigurasi ulang rentang pengecualian sementara di server lain untuk memungkinkannya mengambil slack.

Menggabungkan ide-ide ini

Terakhir, perlu diingat bahwa Anda dapat menggabungkan prinsip-prinsip yang dibahas di atas - Anda dapat menempatkan semua server DHCP Anda ke dalam satu atau lebih VLAN "server pusat" dan menggunakan agen relay BOOTP di semua router Anda untuk mengirim semua permintaan DHCP dari yang sangat besar dan tersegmentasi jaringan ke layanan DHCP terpusat (yang saya lakukan, lihat di bawah). Atau Anda dapat memiliki server DHCP yang didistribusikan di seluruh jaringan Anda, dengan server DHCP "utama" di subnet lokalnya dan server DHCP "cadangan" pada segmen jaringan "terdekat" yang menyediakan sejumlah kecil alamat sebagai cadangan - Anda bahkan bisa memiliki dua server DHCP di segmen jaringannya sendiri yang dikonfigurasikan untuk menyediakan kisaran alamat 80/20 untuk satu sama lain. Pilihan yang paling masuk akal akan tergantung pada bagaimana jaringan fisik dan logis Anda saling memetakan.

Server DHCP melayani lingkup pemisah ke beberapa subnet

Rob Moir
sumber
3
Dalam hal lingkup pemisahan: Harap diingat bahwa reservasi DHCP harus diatur pada kedua bagian. Menyinkronkannya bisa sangat merepotkan jika Anda harus sering melakukan pembaruan.
Tonny
4
Bisakah Anda menguraikan teknik untuk memastikan bahwa server DHCP cadangan tidak terkena selama server DHCP utama berjalan? Dari apa yang dapat saya baca, jika ada probabilitas yang sama untuk mendapatkan respons dari kedua server, server cadangan akan secara statistik kehabisan alamat, segera setelah jumlah total sewa melebihi dua kali ukuran kumpulan cadangan. Ini mungkin membuat server cadangan tidak berharga untuk klien baru, ketika server DHCP utama sedang down ... kan?
Niels B.
3
@NielsB. jika Anda melakukan sesuatu seperti split 80/20 maka Anda dapat mengatur penundaan dalam respons server cadangan ( blogs.technet.com/b/teamdhcp/archive/2009/01/22/… ). Saya tidak repot-repot dengan ini karena saya menggunakan 50/50 split sendiri, tetapi itu akan berhasil.
Rob Moir
13

Saya mengadopsi pendekatan ini beberapa tahun yang lalu untuk jaringan ukuran kecil hingga menengah (500 pengguna) dengan manfaat yang besar. DHCP berhenti menjadi satu titik kegagalan. Dengan mengaitkan alamat MAC dan IP secara permanen, kami memastikan bahwa kedua server DHCP memberikan respons yang sama untuk setiap permintaan DHCP. Mengetahui alamat IP setiap aset jaringan juga menyederhanakan administrasi jaringan, dan DNS dapat menjalankan database yang sama. Sistem ini menggunakan Internet Software Corporation BIND dan DNS, dan skrip terkait dapat diunduh di https://web.archive.org/web/20121031051901/http://www.pearbright.com/index.php/download/25- dns-dhcp-unduh .

Alternatif adalah menggunakan failover DHCP ISC yang benar: https://kb.isc.org/article/AA-00502/0/A-Basic-Guide-to-Configuring-DHCP-Failover.html

Peter Talbot
sumber
2
OP secara khusus meminta jawaban penjelasan untuk pertanyaan ini. Anda mungkin ingin merevisi jawaban Anda untuk mengembangkannya.
Brent Pabst
3
fwiw, sementara jawaban ini singkat dan saya tidak akan pernah menolak lebih detail dalam set pertanyaan dan jawaban kanonik, saya pikir itu cukup baik karena menyebutkan metode yang sedikit berbeda dalam melakukan redundansi DHCP.
Rob Moir
1
@DJ Pon3 Saya setuju: Saya menjalankan pengaturan yang sama dengan DHCP multi-situs besar Anda (meskipun lebih sedikit VLAN) dan saya menggunakan pendekatan yang sama seperti Peter Talbot untuk 3/4 dari VLAN tersebut.
Tonny
1
Tautan rusak sekarang :(
Sergey Vlasov