1、实验环境:
准备一台 ROS 设备,一个国内互联网,一个海外通道,一份国内路由地址表(CN.rsc)文件,一份海外网站列表(gwflist.rsc)文件
2、实验目的
实现Mikrotik下的pc国内外网站访问正常,及PC的DNS 不管设置那个ip都可以解析。
3、实验步骤:
3.1、将CN.rsc,gwflist.rsc文件上传到ROS设备上
这两份文件可以从这位大神这里https://github.com/ruijzhan/chnroute 获取(非常感谢),不过我用的ROS版本是V6的版本,在gwflist.rsc文件里面导入的话会报错,需要对文件进行以下修改下,拿掉address-list 这列参数,然后保存上传
3.2、导入上面两份文件:
3.2.1、导入CN.rsc文件
[century@MikroTik] > import file-name=CN.rsc
导入后的结果:
3.2.2、利用脚本修改gfwlist.rsc里面的dnsserver 地址
命令行:
/system script
add dont-require-permissions=no name=gfwlist owner=century policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
":global dnsserver 8.8.8.8\r\
\n\r\
\nimport file-name=gfwlist.rsc\r\
\n"
界面操作:
脚本:
:global dnsserver 8.8.8.8
import file-name=gfwlist.rsc
3.2.3、开启设备的DNS server设置,及修改dns缓存大小情况,及查看刚才导入的gwflist文件列表情况
命令行:
/ip dns
set allow-remote-requests=yes cache-size=20480000KiB servers=114.114.114.114,223.5.5.5.5
查看gwflist导入的情况
3.2.4、配置Mangle 策略匹配非CN地址,做mark routing 标记为Oversea标记
命令行:
/ip firewall mangle
add action=mark-routing chain=prerouting dst-address-list=!CN new-routing-mark=Oversea passthrough=yes src-address=192.168.88.0/24
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface=ether10
add action=src-nat chain=srcnat comment="Oversea internet" out-interface=gre-tunnel900-to-oversea to-addresses=海外地址
界面操作:
3.2.5、 配置NAT转发及DNS劫持
NAT配置:
DNS劫持配置:
命令行:
/ip firewall filter
add action=fasttrack-connection chain=forward dst-port=53 protocol=udp
/ip firewall nat
add action=redirect chain=dstnat dst-port=53 protocol=udp to-ports=53
界面操作:
3.2.6、配置路由
命令行:
/ip route
add distance=1 gateway=海外ip地址网关(自行替换) routing-mark=Oversea
add distance=1 gateway=192.168.203.254
add distance=1 dst-address=8.8.8.8/32 gateway=海外ip地址网关(自行替换)
界面操作:
4、测试验证
4.1、测试设备上的域名解析情况
由于设备上做了策略,如果直接ping海外网站是ping不通的,但是可以解析出来或者我们可以利用以下命令来验证解析情况
[century@MikroTik] > put [resolve www.youtube.com server=8.8.8.8]
142.251.130.14
设备上的dns cache情况
如果dns缓存有问题的话可以用以下命令清除缓存
[century@MikroTik] > ip dns cache flush
PC端解析海外网站情况
PC端解析国内网站情况
4.2、测试下网页浏览情况
用ip111.cn测试分流情况
国内网站打开情况:
4.3、测试dns劫持情况
PC的dns随意改个IP,我改成10.1.1.1,(随意改)
依旧能正常解析:
网页打开测试: