Saya melakukan sedikit riset.
Hal pertama yang saya pelajari adalah bahwa dimungkinkan untuk menetapkan penyewaan DHCP berdasarkan kriteria selain alamat MAC.
Dari FAQ dhcp :
Apa itu ID Klien?
Apa yang disebut ID Klien untuk keperluan protokol DHCP adalah apa pun yang digunakan oleh protokol untuk mengidentifikasi komputer klien. Secara default, implementasi DHCP biasanya menggunakan alamat MAC klien untuk tujuan ini, tetapi protokol DHCP memungkinkan opsi lain. Beberapa implementasi DHCP memiliki opsi pengaturan untuk menentukan ID klien yang Anda inginkan. Salah satu alternatif untuk alamat MAC hanyalah string karakter pilihan Anda. Bagaimanapun, agar DHCP berfungsi, Anda harus yakin bahwa tidak ada klien lain yang menggunakan ID klien yang Anda pilih, dan Anda harus yakin server DHCP akan menerimanya.
Kemudian, meskipun tampaknya tidak didukung oleh antarmuka web luci di openWRT, dnsmasq sendiri mendukung client_id, dan beberapa alamat MAC (dengan beberapa peringatan).
Dari halaman manual dnsmasq :
-G, --dhcp-host = [hwaddr] [, id: client_id | *] [, atur: tag] [, ipaddr] [, nama host] [, rent_time] [, abaikan] Tentukan per parameter host untuk server DHCP . Hal ini memungkinkan mesin dengan alamat perangkat keras tertentu untuk selalu dialokasikan nama host, alamat IP, dan waktu sewa yang sama. Nama host yang ditentukan seperti ini mengabaikan semua yang disediakan oleh klien DHCP pada mesin. Juga diperbolehkan untuk meninggalkan alamat perangkat keras dan memasukkan nama host, dalam hal ini alamat IP dan waktu sewa akan berlaku untuk mesin apa pun yang mengklaim nama itu. Misalnya --dhcp-host = 00: 20: e0: 3b: 13: af, wap, infinite memberitahu dnsmasq untuk memberikan mesin dengan alamat perangkat keras 00: 20: e0: 3b: 13: af nama wap, dan infinite Sewa DHCP. --dhcp-host = lap, 192.168.0.199 memberitahu dnsmasq untuk selalu mengalokasikan putaran mesin pada alamat IP 192.168.0.199.
(...)
Diperbolehkan menggunakan pengidentifikasi klien daripada alamat perangkat keras untuk mengidentifikasi host dengan mengawali dengan 'id:'. Dengan demikian: --dhcp-host = id: 01: 02: 03: 04, ..... mengacu pada host dengan pengidentifikasi klien 01: 02: 03: 04. Anda juga dapat menentukan ID klien sebagai teks, seperti ini: --dhcp-host = id: clientidastext, .....
(...)
Sebagai kasus khusus, dimungkinkan untuk memasukkan lebih dari satu alamat perangkat keras. misalnya: --dhcp-host = 11: 22: 33: 44: 55: 66,12: 34: 56: 78: 90: 12,192.168.0.2 Ini memungkinkan alamat IP untuk dikaitkan dengan beberapa alamat perangkat keras, dan memberikan izin dnsmasq untuk meninggalkan penyewaan DHCP ke salah satu alamat perangkat keras ketika yang lain meminta sewa. Berhati-hatilah karena ini adalah hal yang berbahaya untuk dilakukan, itu hanya akan bekerja dengan andal jika hanya satu dari alamat perangkat keras yang aktif setiap saat dan tidak ada cara bagi dnsmasq untuk menegakkan ini. Misalnya, berguna untuk mengalokasikan alamat IP yang stabil ke laptop yang memiliki antarmuka kabel dan nirkabel.
Saya memilih solusi multi-mac (karena saya tidak mencoba mencari tahu bagaimana saya bisa menentukan id klien di sisi klien, yang merupakan sesuatu yang harus dilakukan untuk setiap klien yang terpisah, dan alternatif multi-mac adalah satu solusi untuk semua portabel di rumah.)
Saya menghindari antarmuka luci, dan menambahkan langsung ke /etc/dnsmasq.conf baris berikut:
dhcp-hostsfile = / etc / dnsmasq-dhcphosts.conf
dan /etc/dnsmasq-dhcphosts.conf berisi baris dengan format berikut:
mac1, mac2, ip
(Saya menyimpan konfigurasi ini dalam file terpisah untuk mencegah agar tidak ditimpa oleh pembaruan berikutnya.)
Bekerja dengan baik.