提示:从RouterOS 7.5版本开始DNS statice的静态策略支持解析结果添加到地址列表(address-list),7.6加入到winbox配置中,就无需在使用脚本去获取DNS cache的域名和IP对应关系,直接将解析结果加入到指定的address-list中。
如下的配置,将www.github.com解析的IP放入out地址列表
下面的dns解析操作仅供参考
RouterOS的/ip firewall address-list支持填写域名,并自动解析返回IP地址,但仅支持明文域名,无法通过正则表达式去匹配泛域名。一般大型网站,都是由多个二级或者三级域名组成,图片、下载、视频和css都是单独的域名,如某宝网站可以通过浏览器的F12抓取域名,如下图:
可以看到域名g-search2.alicdn.com
然后在windows的cmd下通过nslookup命令解析,可以看到g-search2.alicdn.com是CNAME到了img.alicdn.com.danuoyi.alicdn.com域名,解析的IPv4和IPv6地址
C:\Users\yus>nslookup g-search2.alicdn.com服务器: UnKnownAddress: 192.168.80.1非权威应答:名称: g-search2.alicdn.com.danuoyi.tbcache.comAddresses: 182.140.130.252Aliases: g-search2.alicdn.com C:\Users\yus>nslookup gw.alicdn.com服务器: UnKnownAddress: 192.168.80.1 非权威应答:名称: gw.alicdn.com.danuoyi.tbcache.comAddresses: 240e:d9:a003:1400:3::3fb240e:d9:c202:300:3::3f3118.112.14.5182.140.130.251182.242.89.225219.144.108.251Aliases: gw.alicdn.com
还有g-search1.alicdn.com 、g-search3.alicdn.com和gw.alicdn.com,同样在cmd命令下操作解析,分别转发到了gw.alicdn.com.danuoyi.tbcache.com和g-search1/2/3.alicdn.com.danuoyi.tbcache.com。由于域名过多,如果通过/ip firewall address-list一个个添加非常繁琐。可以选择DNS cache使用正则表达式去抓取这些域名的IP
首先需要开启DNS服务,在cache列表中看到这些域名解析信息如域名、IP和类型等:
分别转发到了gw.alicdn.com.danuoyi.tbcache.com和g-search2.alicdn.com.danuoyi.tbcache.com,他们的共同点是相同二级域名danuoyi.tbcache.com,这样使用脚本进行匹配,匹配原则是包含域名,且type为A记录的IP地址加入到一个address-list中
在/system scripts编写以下脚本,这里还包含了另外一个域名danuoyi.alicdn.com(此脚本运行在RouterOS v7)
v7脚本文本如下:
:local namestr {"*.danuoyi.tbcache.com";"*.danuoyi.alicdn.com"}:local n [:len $namestr] :for i from=0 to=($n-1) do={:local websit [:pick $namestr $i]:foreach i in=[/ip dns cache find name~"$websit" type=A] do={:local ipadd [/ip dns cache get $i data]:do {/ip firewall address-list add address=$ipadd list=ali } on-error={}}}
v6脚本文本如下:
:local namestr {".*.danuoyi.tbcache.com";".*.danuoyi.alicdn.com"}:local n [:len $namestr] :for i from=0 to=($n-1) do={:local websit [:pick $namestr $i]:foreach i in=[/ip dns cache find name~"$websit" type=A] do={:local ipadd [/ip dns cache get $i data]:do {/ip firewall address-list add address=$ipadd list=ali } on-error={}}}
然后在/system scheduler计划任务中加入在script中创建的脚本名称,interval是间隔5秒执行,也就是每5秒抓取一次dns cache列表的域名
涉及相关域名的IP地址将会被加入到ali地址列表中(/ip firewall address-list可以看到),如何调用这个地址列表,就是管理员自己发挥了。
2023-12-13T11:46:19
2023-12-13T11:48:22
2024-01-09T17:24:18
2024-01-09T17:23:33
2024-01-09T17:22:33
2024-01-09T17:22:03
2024-01-09T17:21:36
2024-01-08T11:34:31
2024-01-08T11:34:10
2024-01-08T11:33:31