OpenWRT默认的DHCP Server服务器是Dnsmasq,借助Dnsmasq可以实现根据网址段分配不同网关(旁路由),也可以实现根据MAC地址/IP地址分配不同网关。
我使用的是iStoreOS,就以iStoreOS操作界面为案例。
应用场景
我家里目前是使用iStoreOS作为主路由(192.168.0.1),另外nas上虚拟了一个iStoreOS作为旁路由(192.168.0.2)作为科学上网使用,你懂的。以前的做法是,在需要科学上网的设备上使用静态IP,然后网关处设置成旁路由网关(192.168.0.2),这样就能实现科学上网,但如果某些设备不支持静态IP设置,或者操作起来比较麻烦,就不太容易实现了,于是有了这个教程和记录,在DHCP端实现给不同IP的设备分配不同的网关。
具体操作如下
- 打开“网络”-“接口”,在“lan”后面点击编辑,在弹出的对话框选择“DHCP 服务器”-“高级设置”,其中的“DHCP 选项”增加两条“3,192.168.0.1”和“6,192.168.0.1”,其中“3,192.168.0.1”表示指派192.168.0.1 作为网关(注意3和英文逗号),“6,192.168.0.1”表示指派 192.168.100.1 作为 DNS 服务器(注意6和英文逗号)。这里的设置是其他不需要科学的设备走的是主路由的网关和DNS。PS:如果iStoreOS作为主路由,不提供科学服务,由旁路由提供科学等服务,内网部分主机需要科学,大部分主机都不需要科学,这一步忽略(因为默认网关就是主路由)。
- 打开“网络”-“DHCP/DNS”-“标签”,在“添加”按钮左边输入“t_proxy”,点击“添加”按钮,然后也是“DHCP 选项”输入两条“3,192.168.0.2”和“6,192.168.0.2”,保存应用。这里设置的是标签为“t_proxy”的设备走的是旁路由的网关和DNS。
- 打开“网络”-“DHCP/DNS”-“静态地址分配”,点击“添加”(如果之前已经配置了要科学的主机,那编辑相应条目即可),输入主机名称(可以用英文大小写,数字,下划线,必填),选择要科学的主机的MAC;如果不需要固定IP,“IPv4地址”可以选择未指定;最关键的是在“标签”选项中选择“t_proxy”(如果没出现,保存下刷新页面再回来选)。然后保存应用即可。
对于每一个需要科学的设备都要添加。内网主机重新插网线或连wifi,应该就会获取到指定的网关和DNS了。