通常我们使用RouterOS的DNS主要是用于实现DNS缓存功能,即由RouterOS实现DNS服务器解析功能,除了这个功能,RouterOS可以实现对内网域名解析劫持,即实现路由网关的A记录查询。
注意:要实现RouterOS路由网关的域名A记录查询,必须满足:
1、 开启DNS缓存功能
2、 客户端设置RouterOS路由器IP为DNS(RouterOS配置的任意IP地址,路由可达即可)
3、 如果不设置RouterOS上配置的IP,就需要做dst-nat重定向,即将所有TCP或UDP的53端口重定向到RouterOS本地
做A记录的作用是,将特定的域名解析指定到某一台服务器获取,例如企业网络的办公OA、CRM系统等通过域名访问,或者一些指定网站或页面的缓存等。
具体配置
首先要打开RouterOS中DNS菜单,设置外部DNS服务器为61.139.2.69,启用Allow Remote Requests参数,允许向远端返回DNS请求,即开启DNS缓存功能。
下面是添加A记录操作,打开Static菜单,并在Static菜单中新建一条规则,将test.test.com指向192.168.88.1的地址
添加后启用规则,这样所有向test.test.com的DNS请求,都解析为192.168.88.1,不过在配置后,我们还需要打开Cache菜单,清空DNS缓存,避免遗留缓存无法让A记录生效。
我们进入Cache菜单后,点击Flush Cache清空缓存:
DNS重定向
如果客户端没有自动获取或者设置RouterOS网关作为DNS,可以将内网向外的所有DNS请求都通过dst-nat重定向到内网,即强制所有用户向外网的dns请求都到本地网关解析。
进入ip firewall nat,在该菜单下配置dst-nat规则,添加一条chain=dstnat,protocol=udp,port=53
设置action参数为redirect,指定到本地的53端口
规则添加完成后:
当然TCP下的DNS 53端口重定向也是类似的配置操作。