RouterOS v7.6增加了match subdomain的功能(7.6仅命令行,在7.8加入winbox),也就是在写入主域名,后自动匹配前缀的子域名,例如.cn,如能匹配到sina.com.cn,自动匹配前面的所有二级,三层以及四级域名,如果要匹配baidu.com,加上match-subdomain=yes,代表*.baidu.com,可以代替使用正则表达式写法:regexp=”*.\\.baidu\\.com”

如下面的设置,将*.baidu.com的域名FWD到223.5.5.5,同时解析的IP放入定义address-list=baidu的地址列表中

/ip dns static
add address-list=baidu forward-to=223.5.5.5 match-subdomain=yes name=baidu.com type=FWD

 

这样降低了设置难度,我尝试将国内的域名做了域名转发测试,所有国内域名转发到223.5.5.5,创建一个.rsc导入,一共64126条

验证能正常解析是使用,但由于64126条记录,对CPU消耗较高(测试设备是RB5009),查询时间有点迟钝,可能对于更高性能的x86 CPU处理要轻松点,如果有兴趣的朋友可以测试下,下载文件(此下载文件未设置address-list,仅适用于v7.6以上版本):domain

操作与注意:

操作方式,通过winbox登录,将文件拖动到RouterOS的file根路径,在打开命令行使用/import xxx_domain.rsc ,特别注意规则很多,导入时间可能长达数分钟,根据硬件性能导入时间有所不同,导入这个域名的脚本观察需要消耗100-150MB左右的内存,导入完成后内存消耗恢复正常,RouterOS在导入大规模脚本时,内存占用如此之高,因此对于128-256M的RB设备是无法支持的,这类低内存的RB设备就不要尝试了。在重启设备,启动完成加载域名的过程也很长,CPU一直会有较高的占用,直到域名加载完成。这种大量脚本写入对ROM的损伤很大,hEX和hAP ac2这类16M的存储,反复写几次可能导致FLASH报废,设备就无法正常使用

如果RouterOS需要考虑大量域名转发的解决方案,可以考虑搭建独立的DNS服务器,如DnsMasq,mosDNS等,

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章很值,打赏犒劳作者一下