Tôi đã làm một chút nghiên cứu.
Điều đầu tiên tôi học được là có thể gán DHCP thuê dựa trên các tiêu chí khác với địa chỉ MAC.
Từ câu hỏi thường gặp về dhcp :
ID khách hàng là gì?
Cái được gọi là ID khách cho mục đích của giao thức DHCP là bất cứ thứ gì được sử dụng bởi giao thức để xác định máy khách. Theo mặc định, việc triển khai DHCP thường sử dụng địa chỉ MAC của máy khách cho mục đích này, nhưng giao thức DHCP cho phép các tùy chọn khác. Một số triển khai DHCP có tùy chọn thiết lập để chỉ định ID khách bạn muốn. Một thay thế cho địa chỉ MAC chỉ đơn giản là một chuỗi ký tự bạn chọn. Trong mọi trường hợp, để DHCP hoạt động, bạn phải chắc chắn rằng không có ứng dụng khách nào khác đang sử dụng ID khách mà bạn chọn và bạn phải chắc chắn rằng máy chủ DHCP sẽ chấp nhận nó.
Sau đó, mặc dù dường như không được hỗ trợ bởi giao diện web luci trên openWRT, bản thân dnsmasq hỗ trợ client_id và nhiều địa chỉ MAC (với một số cảnh báo).
Từ trang người đàn ông dnsmasq :
-G, --dhcp-host = [hwaddr] [, id: client_id | *] [, set: tag] [, ipaddr] [, tên máy chủ] [, thuê_time] [, bỏ qua] Chỉ định mỗi tham số máy chủ cho máy chủ DHCP . Điều này cho phép một máy có địa chỉ phần cứng cụ thể luôn được phân bổ cùng tên máy chủ, địa chỉ IP và thời gian thuê. Một tên máy chủ được chỉ định như thế này sẽ ghi đè bất kỳ máy khách DHCP nào được cung cấp trên máy. Nó cũng được phép sử dụng địa chỉ phần cứng và bao gồm tên máy chủ, trong trường hợp đó, địa chỉ IP và thời gian thuê sẽ áp dụng cho bất kỳ máy nào yêu cầu tên đó. Ví dụ: --dhcp-host = 00: 20: e0: 3b: 13: af, wap, infinite bảo dnsmasq cung cấp cho máy có địa chỉ phần cứng 00: 20: e0: 3b: 13: af tên wap và vô hạn Cho thuê DHCP. --dhcp-host = lap, 192.168.0.199 yêu cầu dnsmasq luôn phân bổ máy lap địa chỉ IP 192.168.0.199.
(...)
Nó được phép sử dụng mã định danh máy khách thay vì địa chỉ phần cứng để xác định máy chủ bằng cách thêm tiền tố với 'id:'. Do đó: --dhcp-host = id: 01: 02: 03: 04, ..... đề cập đến máy chủ lưu trữ với số nhận dạng khách hàng 01: 02: 03: 04. Nó cũng được phép chỉ định ID khách dưới dạng văn bản, như thế này: --dhcp-host = id: clientidastext, .....
(...)
Trong trường hợp đặc biệt, có thể bao gồm nhiều hơn một địa chỉ phần cứng. ví dụ: --dhcp-host = 11: 22: 33: 44: 55: 66,12: 34: 56: 78: 90: 12.192.168.0.2 Điều này cho phép một địa chỉ IP được liên kết với nhiều địa chỉ phần cứng và cho phép dnsmasq từ bỏ hợp đồng thuê DHCP đến một trong những địa chỉ phần cứng khi người khác yêu cầu thuê. Coi chừng đây là một điều nguy hiểm, nó sẽ chỉ hoạt động đáng tin cậy nếu chỉ có một trong các địa chỉ phần cứng hoạt động bất cứ lúc nào và không có cách nào để dnsmasq thực thi điều này. Chẳng hạn, việc phân bổ địa chỉ IP ổn định cho máy tính xách tay có cả giao diện có dây và không dây là rất hữu ích.
Tôi đã chọn giải pháp đa mac (vì tôi đã không cố gắng tìm hiểu làm thế nào tôi có thể chỉ định id khách hàng ở phía máy khách, đây là điều phải được thực hiện cho từng khách hàng riêng biệt và thay thế đa mac là một giải pháp cho tất cả các thiết bị di động trong nhà.)
Tôi phá vỡ giao diện luci và thêm trực tiếp vào /etc/dnsmasq.conf dòng sau:
dhcp-hostsfile = / etc / dnsmasq-dhcphosts.conf
và /etc/dnsmasq-dhcphosts.conf chứa các dòng có định dạng sau:
mac1, mac2, ip
(Tôi giữ cấu hình này trong một tệp riêng biệt để tránh bị ghi đè bởi bản cập nhật tiếp theo.)
Hoạt động tốt.