|
本帖最后由 atshot 于 2018-10-2 23:06 编辑
好久不来,分享一个使用Dnsmasq实现另类客户端分流的方法,相信大家家里一定有这样的场景:
想换个新固件,刷新的时候老婆吐槽网络断了。
家里有两条宽带,一个带宽小但是玩游戏效果好,一个带宽大适合用于BT下载。
在同一个无线环境下,不同的客户端需要使用不同的链路出局。
下面就共享一个通过DHCP为客户端指定不同的网关来实现分流的方法,拓扑图大致如下
所需的设备或链路
不少于两个路由器,至少一个路由器运行着Dnsmasq
一根能多拨的宽带,能否叠加无所谓;或者直接两根宽带。
拓扑简介
将所有的路由器的LAN使用网线对接起来,路由器的WAN口分别接到不同的链路上。
必要配置
仅保留运行Dnsmasq的路由器的DHCP功能,其它路由器的DHCP均关闭。
将每个路由器的LAN口IP地址修改为互不冲突且在同一个网段的地址。 三个路由器通过多拨共享同一根外网,带宽很悲催的是不叠加的,也就是复用一下链路。
为Dnsmasq增加配置
不同的Dnsmasq版本可能使用了不同的配置文件,在配置文件中增加如下文本,并重启Dnsmasq或者路由器即可。
dhcp-host=00:0B:AC:11:22:33,set:altdnsgw,10.0.0.11,hostname,12d
dhcp-option=tag:altdnsgw,option:dns-server,114.114.114.115
dhcp-option=tag:altdnsgw,option:router,10.0.0.3
原理解析
通过为不同的客户端指定固定IP地址,并为每个解析增加专门的option即可实现。
详细解析
dhcp-host=00:0B:AC:11:22:33,set:altdnsgw,10.0.0.11,hostname,12d
#为mac地址是00:0B:AC:11:22:33主机名为hostanme的主机分配10.0.0.11的IP地址,并标记为使用altdnsgw选项,分配的租约是12天
dhcp-option=tag:altdnsgw,option:dns-server,114.114.114.114
#指定altdnsgw的dns服务器为114.114.114.114
dhcp-option=tag:altdnsgw,option:router,10.0.0.3
#指定altdnsgw的网关为10.0.0.3
注意:这个altdnsgw只是个tag,理论上写什么都行,只要上下保持一致就行。另外,后面的主机名和分配租约不写也可以。
我自己的应用场景
Router1是个K3C,它用来做Wifi覆盖,下面用过一台AC9扩展覆盖范围
Router2是个K2p,它主要用来给扫地机器人,电饭煲,电风扇等物联网链路提供稳定的互联网接入
Router3是个X86版本的Openwrt,它上面运行了KMS服务器,$$R等各种奇怪的服务
附录
查找dnsmasq使用的配置文件的方法
运行ps | grep dnsmasq ,输出中一般包含了配置文件的路径,查看这个文件,如果其中存在conf-file,则可以编辑conf-file后面指向的文件内容,如果不存在conf-file,则可以直接编辑输出中的文件路径。
举例:我的路由器运行ps | grep dnsmasq输出为/usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf.cfg01411c,打开这个文件,其中通过conf-file指定了两个文件分别是/etc/dnsmasq.conf和/usr/share/dnsmasq/rfc6761.conf,则理论上编辑这三个文件都可以生效,但是第一个文件是运行时配置文件,它可能会被其它文件覆盖,所以编辑后两个文件成功率比较高,另外,无论编辑哪个文件,要确保三个文件中不会出现重复的内容,否则会出现冲突,最终的运行时配置以哪个为准就难说了。
参考链接:
http://www.linksysinfo.org/index ... ific-clients.72461/
https://openwrt.org/zh/docs/guid ... hcp_configuration?s[]=dns&s[]=dhcp&s[]=configuration
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|