8ad4c3576d
- Fixed verifyAssignment being too strict for new clients - Fixed parseRequestedIP string conversion bug - Fixed response sent to 0.0.0.0 instead of broadcast address - Added SO_BROADCAST support for UDP socket - Fixed session persistence after page refresh (localStorage) - Added in-memory session store for auth middleware - Added config reloader so DHCP server picks up web UI changes dynamically
4.9 KiB
4.9 KiB
使用场景示例
场景一:家庭网络管理
背景
你有一个家庭网络,想管理所有设备的 IP 分配,并为重要设备(NAS、打印机)分配固定 IP。
配置步骤
- 配置 DHCP 地址池
{
"dhcp": {
"enabled": true,
"interface": "eth0",
"network": "192.168.1.0",
"netmask": "255.255.255.0",
"gateway": "192.168.1.1",
"dns_servers": ["192.168.1.1", "114.114.114.114"],
"lease_time": 86400,
"ip_pool_start": "192.168.1.100",
"ip_pool_end": "192.168.1.200"
}
}
- 为 NAS 添加静态绑定
- 登录 Web 界面
- 进入 DHCP → 静态 IP 绑定
- 点击"新增绑定"
- 输入:
- MAC 地址:
00:11:22:33:44:55(NAS 的 MAC) - IP 地址:
192.168.1.10 - 主机名:
my-nas - 描述:
家庭 NAS 存储
- MAC 地址:
- 为打印机添加静态绑定
- MAC 地址:
AA:BB:CC:DD:EE:FF - IP 地址:
192.168.1.20 - 主机名:
printer - 描述:
客厅打印机
效果
- 手机、电脑等设备自动获取
192.168.1.100-200范围内的 IP - NAS 和打印机始终使用固定 IP,方便访问
- 在 Web 界面可以看到所有在线设备
场景二:小型办公室网络
背景
10 人办公室,需要内部 DNS 解析公司服务器,并管理员工设备。
配置步骤
- 配置内部 DNS 记录
登录 Web 界面 → DNS 管理 → 新增记录:
| 域名 | 类型 | 值 | TTL | 用途 |
|---|---|---|---|---|
| oa.company.local | A | 192.168.1.50 | 300 | OA 系统 |
| file.company.local | A | 192.168.1.51 | 300 | 文件服务器 |
| git.company.local | A | 192.168.1.52 | 300 | Git 服务器 |
| www.company.local | CNAME | file.company.local | 300 | 公司官网 |
- 为员工电脑绑定 IP
- 记录每个员工的 MAC 地址
- 分配固定 IP 方便管理
- 例如:
192.168.1.101- 张三的电脑
- 查看 DNS 查询日志
- 监控内部域名解析情况
- 排查网络问题
效果
- 员工可以通过
oa.company.local访问 OA 系统 - 不需要配置 hosts 文件
- 集中管理所有网络资源
场景三:开发测试环境
背景
开发人员需要模拟 DNS 环境,测试域名解析。
配置步骤
- 修改 DNS 端口(避免冲突)
{
"dns": {
"enabled": true,
"listen_addr": "127.0.0.1",
"listen_port": 5353,
"upstream": ["8.8.8.8"]
}
}
- 添加测试域名
# 创建测试记录
curl -X POST http://localhost:8080/api/dns/records \
-H "X-Session-ID: xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "api.test.local",
"type": "A",
"value": "127.0.0.1",
"ttl": 60
}'
- 配置系统 DNS
# Linux
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
# 或使用 dnsmasq 转发
- 测试解析
dig @127.0.0.1 -p 5353 api.test.local
效果
- 本地开发环境模拟生产 DNS
- 快速切换不同测试场景
- 查看完整的 DNS 查询日志
场景四:树莓派网络服务
背景
在树莓派上运行轻量级 DHCP+DNS 服务,作为家庭网络的核心。
硬件要求
- 树莓派 3B+ 或更高
- 8GB SD 卡
- 有线网络连接
安装步骤
- 安装 Docker
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker pi
- 部署服务
git clone <your-repo>
cd dhcp-dns-manager
docker-compose up -d
- 设置开机自启
docker-compose enable
- 配置网络接口
{
"dhcp": {
"interface": "eth0"
}
}
效果
- 低功耗 24 小时运行
- 替代路由器 DHCP 功能
- 提供快速本地 DNS 解析
场景五:网络隔离测试
背景
测试不同网段的网络隔离策略。
配置多网段(需要多个实例)
实例 1 - 网段 A
{
"dhcp": {
"network": "192.168.10.0",
"ip_pool_start": "192.168.10.100",
"ip_pool_end": "192.168.10.200"
},
"web": {
"port": 8081
}
}
实例 2 - 网段 B
{
"dhcp": {
"network": "192.168.20.0",
"ip_pool_start": "192.168.20.100",
"ip_pool_end": "192.168.20.200"
},
"web": {
"port": 8082
}
}
效果
- 隔离测试环境和生产环境
- 模拟复杂网络拓扑
- 验证防火墙规则
最佳实践
1. IP 地址规划
192.168.1.1 - 网关
192.168.1.2-50 - 静态设备(服务器、打印机)
192.168.1.51-99 - 预留
192.168.1.100-200 - DHCP 动态分配
192.168.1.201-254 - 预留
2. DNS 命名规范
设备类型.位置.域名
- nas.home.local
- printer.office.local
- server.dc.local
3. 安全建议
- 修改默认密码
- 限制 Web 界面访问 IP
- 启用 HTTPS(反向代理)
- 定期备份数据库
4. 监控建议
- 监控 DHCP 地址池使用率
- 设置告警(地址池 > 80%)
- 定期查看 DNS 查询日志
选择适合你的场景开始使用吧!🚀