bevel 发表于 2015-4-6 17:51:23

实在不行,来此求助,关于DNS解析分流

本人绝非伸手党,ROUTEROS VPN分流本人已搞掂,为了防止DNS污染和DNS劫持,已经设置DNS SErver为香港的公共DNS,同时,将DNS的流量也走VPN,这样,可以防止更上级的ISP劫持,实际上,在测试中,发现,如果DNS解析不走VPN的话,就算你把DNS Server设成国外的DNS,一样也会被劫持,进而被污染。
那么问题来了,由于我将所有DNS解析走了VPN,在实际使用中,发现国内的一些域名会被解析为一些莫名其妙的IP,以下为例 :
当走VPN解析时,nslookup得到的alibaba.com的IP是:205.204.96.36,这是一个美国的ip,而实际上,如果在nslookup时,指定server 202.96.134.133,会发现www.alibaba.com的真正ip是42.156.172.33,这才是阿里真正的ip另一个例子是www.ip138.com这个网址,走vpn解析,得到的是: 203.133.25.28,这是一个台湾ip,而如果指定server 114.114.114.114,则可以得到正确IP: 220.112.203.94,这是网宿CDN的IP.

从上面的分析发现,国内的一些站点应该是按来访问位置来解析ip,这是CDN的基本手法。
我的问题是,我想避免DNS污染的时,将我指定的域名的解析,路由到国内的DNS上,其他的,路由到国外的DNS上,这样,就可以完美解决问题。
我在Routeros官网和google上看到一些人的解决方法是L7标记,但那个,我认为太浪费资源了。
有一些人提出利用NAT中的DST-NAT将content包含域名的数据包路由到指定的dns server,但在测试中,发现这招不灵。

恳请大家集思广议,给小弟些指教。

511789068 发表于 2015-4-6 21:55:52

用代理配合标记路由解决

bevel 发表于 2015-4-7 04:14:27

已经解决:
我利用了DNS染染的特点,根据content标记发往目标dns服务器的udp 53端口的数据包,对于想让国内解析的域名,就标记为novpn,然后将novpn标记的数据包走普通线路,由于isp会劫持这些数据包,所以,这些域名相当于是用了国内dns在解析。初步来看,运作稳定

bevel 发表于 2015-4-7 18:12:17

进一步解决:
用Prerouting标记DNS数据包后,再在NAT中做一个DST-NAT,将这些标记的数据包DST-NAT至国内的任一个DNS,可完美进行DNS分流,这样做的好处是不依赖于DNS劫持 ,而且DNS解析速度变快。
可以做一个脚本,从记事本文 档中抽取域名关键词批量加入到Mangle中,定期执行,这样,只要维护这个关键词列表即可轻松实现DNS分流。

amilus668 发表于 2015-11-26 23:03:36

bevel 发表于 2015-4-7 18:12
进一步解决:
用Prerouting标记DNS数据包后,再在NAT中做一个DST-NAT,将这些标记的数据包DST-NAT至国内的 ...

可以上图说明一下吗?谢谢
页: [1]
查看完整版本: 实在不行,来此求助,关于DNS解析分流