- 更新:2022-04-30 15:24:13
- 首发:2022-04-24 08:10:27
- 教程
- 16268
OpenWRT默认的DHCP Server服务器是Dnsmasq,借助Dnsmasq可以实现根据网址段分配不同网关(旁路由),也可以实现根据MAC地址/IP地址分配不同网关。
换句话说,可以实现一个OpenWRT下搭配多个旁路由,方便针对不同的设备指定其实用的旁路由是哪一个。
Dnsmasq为小型网络提供网络基础设施:DNS、DHCP、Router Advertisement 和 Network boot。它设计轻巧,资源占用少,适用于资源有限的路由器和防火墙。它还被广泛用于在智能手机和便携式热点上,并支持虚拟化框架中的虚拟网络。支持的平台包括Linux(带有glibc和uclibc)、Android、*BSD和Mac OS X。Dnsmasq包含在大多数Linux发行版以及FreeBSD、OpenBSD和NetBSD的端口系统中。Dnsmasq提供全面的IPv6支持。
应用场景
- OpenWRT作为主路由,其它OpenWRT/路由器系统作为旁路由,可以实现一个主路由搭配多个旁路由,用于新OpenWRT系统测试调试或均衡负载。只要是同一个网段的IP都可以设置为旁路由,包括但不仅限于ESXi中的多个OpenWRT系统。
- OpenWRT作为主路由,只让部分指定设备(网址段、MAC地址、IP地址)上网时候走旁路由,其余设备不走旁路由。类似于爱快在DHCP绑定MAC和IP静态地址后可以指定网关。
基础要求
- 既然是配置旁路由为网关,因此必然是要求旁路由和主路由处于同一个网段(例如处于192.168.1.0/24中的两个地址,可以互相访问)。
- 主路由必须作为DHCP Server(
lan
接口启用DHCP,OpenWRT中,该服务是默认由Dnsmasq实现)。
设置方法
由于目前OpenWRT的GUI(页面)中没有可视化配置的方法,设置需要通过修改配置文件进行。
先在可视化管理后台,进入网络
-接口
-LAN
,移动到最下方,查看当前DHCP服务器分配相关设置信息。
修改vim /etc/dnsmasq.conf
文件。
dhcp-range=set:OTHER,192.168.1.100,192.168.1.250
dhcp-option=tag:OTHER,3,192.168.1.254
dhcp-option=tag:OTHER,6,192.168.1.254
第一行代表设置组OTHER
的网址段范围是192.168.1.100-192.168.1.250
。需要特别注意,不要在该行最末尾添加有效期(例如12h
),否则将变为修改DHCP服务器相关配置。网段范围必须包含于上图设置中DHCP服务器的分配范围,例如启动是100,客户数150,则意味着DHCP服务器的分配范围是192.168.1.100-192.168.1.250
,而此处标记的dhcp-range
范围必须在此范围之内,否则设置是无效的。
第二行则确定该组的网关地址是192.168.1.254
。
第三行确定该组的DNS服务器为网关地址。
重启dnsmasq
生效:
/etc/init.d/dnsmasq restart
同理,也可以针对不同网口设置同一网段不同IP地址段(这种情况下则需要加上不同地址段的有效期,同时可视化管理后台中针对LAN接口的DHCP配置不再可用)。
如果需要针对MAC地址进行设置,第一行替换为:
dhcp-host=A1:B2:C3:D4:E5:F6,set:OTHER
如果需要针对某一个IP地址,则绑定MAC和IP后设置MAC地址即可。
第二行则确定改组的网关地址是
192.168.1.254
。第三行确定改组的DNS服务器为网关地址。
我猜你是想说 该组 。
是的,谢谢!
感谢回复! Clang 在生成时沿用了 GCC 的版本号标识,我是不是可以理解为Clang 18.1.4生成时使用的就是GCC4.8,所以我后续使用gcc 9.4
gcov
就会有不兼容的问题抱歉,这块我也不太清楚,尝试寻求AI的帮助吧。
我在这个过程中遇到了各种问题- -,现在在UDC core: g_serial: couldn't find an available UDC卡住了,请问大佬有什么解决方案吗,还是说我前置的设置就错了呢,> 这个需求很特殊。是可以的,但是比较困难,需要修改驱动配置。
好思路呀!!
关于hex编辑器,网上没找到特别好用的(小白没办法),最后在vscode上扩展一搜hex,第一个安装一下就可以用vscode进行hex编译了