最近也遇到相同的问题,不过我们这里的情况更加复杂一点,我们还有一个私有dns服务器,所有的业务网段下发的dns服务器都指向了这个私有dns服务器,这样问题就更严重了,因为dns服务器请求上游dns解析的时候从哪条专线出去我们不能左右(当然可以设置只能从哪个专线出去,但是指定了其中一条后,另一条还是的解析依然不是准确的或者最快的),用户终端解析到ip后从哪个专线出去更不能左右(同上,也能左右,下文会说)。
我们是联通、电信两条专线等价路由出去,做的负载均衡,基于源地址负载。如果是一个isp,什么问题都没有,指定一个这个isp当地的dns就行,私有dns把这个isp的dns设置成上游dns就行,但是两个isp的话你设置哪个isp的dns另外一条专线都不是最快的,我这些天看了下资料。有如下可以参考的方案,各有优缺点。
1.取消私有dns,直接下发公有dns,这是我认为的算是最简单快捷的方法。因为指定了源地址负载均衡,从不同的isp出去后,到公有dns解析,解析出来的地址就是你这个isp相对应的最优链路。
2.启用浮动静态路由,这样私有dns服务器配置的上游dns为优先级更高的这条专线的dns就行,缺点是有一条专线浪费了。
3.策略路由,在不同的业务网段下发不同dns地址,将这些网段通过策略路由从对应的专线路由出去,缺点是这么多网段中间的平衡不好把控,如果有连接各地的vpn的话,acl要写的更多,还得deny掉相各地内网之间vpn流。
4.明细路由,写吧,麻烦的一批,路由表条目都不一定够用。