关于6.47的DNS除了新增了DoH功能外,还增加了静态条目多种类型,

*) dns – added support for forwarding DNS queries of static entries to specific server;
*) dns – added support for multiple type static entries;

静态条目规则中增加了type属性,增加了各种DNS记录参数包含:A, AAAA, CNAME, FWD, MX, NS, NXDOMAIN, SRV, TXT。A记录在RouterOS早期就支持,特别是FWD(forward转发功能),可以将指定域名转发到指定的DNS服务器,对于多线路需求的用户来说非常有用,因为不同运营商的DNS不同,返回的服务器IP地址也不同,因此多线路调整不仅涉及网关路由,还涉及DNS解析。

我们用www.taobao.com做一个实例,RouterOS默认DNS服务器为电信,转发DNS服务器用联通,电脑DNS服务器指向RouterOS的192.168.88.1。

首先确保DNS配置,启用了本地缓存

解析www.taobao.com如下:

当前返回的是电信IP地址

添加www.taobao.com的域名转发配置如下:

/ip dns static

add disabled=no forward-to=119.6.6.6 name=www.taobao.com type=FWD

配置完成后,需要执行一次flush,清空缓存

[admin@MikroTik] > /ip dns cache flush

配置完成后解析结果如下:

已经成功转发到联通DNS,返回的是联通服务器IP地址

这个操作仅仅是转发了淘宝主站的一个域名,淘宝网的域名组成有很多个,不仅仅是这些,万里长征才迈出第一步,如果想把淘宝网站都转发到指定的DNS服务器,那么需要进行网站分析,可以通过chrome浏览器的F12开发者模式,打开淘宝页面,进行查看,会显示所有页面浏览记录

我们随便抓取一个png图片文件,他的域名是img.alicdn.com,当然windows cmd下也可以查看

因此我们要转发的是img.alicdn.com,后面还有很多域名,都需要逐个分析,这个是告诉大家方法。

可以用则表达式去匹配主域名,如img.alicdn.com,这个只是其中一个,那么我们可以配匹为

/ip dns static

 add regexp=”.*\\.alicdn\\.com” forward-to=119.6.6.6

正则表达式的写法在命令行如上,涉及到命令转译,因此在winbox中写法如下:

如果对网站结构不太了解,只能逐步分析其域名的关联性,不能偷懒的。

对于转发还有一点需要补充,我使用的BIND DNS应用中forward有两个类型分别是:

  • forward frist:只转发一次,如果失败别则使用主DNS解析
  • forward only,只做转发操作,及时失败也继续转发

我测试了RouterOS的DNS转发,类型是forward only,也就是转发的DNS服务器失败了,也继续转发到该DNS服务器,会导致转发域名解析失败。这个你要记住,如果转发DNS服务器中断,要用脚本监测及时修补。