[摘要]因为业务特性对DNS请求量比较大(其实也没有多大,UDP流量也就50M+),然后整个网段的UDP53请求被运营商残忍地Block掉,所有机器无法解析域名。。。然后与IDC与运营商各种电话,发现流程非常繁琐,而且时间无法保证,重点是业务受到了严重影响,于是只能努力寻求其他解决方案。
初步想法是找台该IDC没有被block的ip地址,然后搭建dns,我们中转出去,后来经过沟通没有这样的IP存在,也就是说整个IDC被我们搞挂了,所有客户都无法解析域名啦,对这个表示非常sorry。。
另外就是猜测运营商是通过IP地址+协议+端口封的请求,是不是可以修改DNS的默认请求,下面就是这样的测试,后来发现成功鸟,不过这也只是临时解决方案,最终还是要找运营商把限制解开,这个暂且不提,下面是如何通过DNS非标准端口绕过封堵的过程。
具体操作如下:
需要搭建两台unbound服务器,远离就是通过本地DNS缓存与DNS forward功能:
DNS1:10.20.30.40:53(内网)
DNS2:80.70.60.50:5553(公网)
DNS请求流程:
10.20.30.0/24(内部服务器) –> 10.20.30.40:53(DNS1) –> 80.70.60.50:5553(DNS2)
##DNS2:80.70.60.50
DNS1 unbound配置:
cat /etc/unbound/unbound.conf
interface: 80.70.60.50
port: 5553
root-hints: "/etc/unbound/named.cache"
access-control: 10.20.30.0/24 allow
1
2
3
4
5
cat /etc/unbound/unbound.conf
interface: 80.70.60.50
port: 5553
root-hints: "/etc/unbound/named.cache"
access-control: 10.20.30.0/24 allow
DNS2本机的dns配置
# cat /etc/resolv.conf
nameserver 8.8.8.8
1
2
# cat /etc/resolv.conf
nameserver 8.8.8.8
##DNS1: 10.20.30.40
DNS1 unbound配置:
cat /etc/unbound/unbound.conf
interface: 10.20.30.40
port: 53
forward-zone:
name: "."
forward-addr: 80.70.60.50@5553
1
2
3
4
5
6
cat