13
2025
04
00:26:42

DNS服务器分流方案

DNS服务器分流方案

一、 DNS介绍

DNS 是什么?

DNS是 Domain Name System 的缩写也就是域名解析系统,它的作用非常简单,就是根据域名查出对应的 IP地址。

可以把它想象成一本巨大的电话本,比如当你要访问域名www.humeng.cn,首先要通过DNS查出它的IP地址是123.58.34.9

为什么需要DNS?

易于记忆和使用、层级结构和分级管理、灵活性和可扩展性、IP地址变动处理、负载均衡和故障转移(GSLB)、安全性和防护

DNS服务器:就是一台翻译名字到IP的软件。

wps1 20241204081744 iakmlq6

域名的形式:

wps2 20241204081744 1dhve1l

  1. cn: 一级域名. 表示这是一个企业域名。同级的还有 “net”(网络提供商), “org”(⾮非盈利组织) 等。

  2. humeng: 二级域名,指公司名。

  3. www: 表示主机域名为 www

DNS资源记录

wps3 20241204081744 n8n08nz

wps4 20241204081744 t21xrkr

wps5 20241204081744 f1jtmjg
wps6 20241204081744 berkha4

递归查询和迭代查询的区别

DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代

DNS递归名称解析:在DNS递归名称解析中,当所配置的本地名称服务器解析不了时,后面的查询工作是由本地名称服务器替代DNS客户端进行的(以本地名称服务器为中心),只需要本地名称服务器向DNS客户端返回最终的查询结果即可

DNS迭代名称解析:(或者叫迭代查询)的所有查询工作全部是DNS客户端自己进行(以DNS客户端自己为中心)。在条件之一满足时就会采用迭代名称解析方式:

  • 在查询本地名称服务器时,如果客户端的请求报文中没有申请使用递归查询,即在DNS请求报头部的RD字段没有置1。相当于说”你都没有主动要求我为你进行递归查询,我当然不会为你工作了”

  • 客户端在DNS请求报文中申请使用的是递归查询(也就是RD字段置1了),但在所配置的本地名称服务器上是禁用递归查询(DNS服务器一般默认支持递归查询的),即在应答DNS报文头部的RA字段置0

递归

dns递归

迭代

dns迭代

二、 现有DNS情况

1、113.106.88.2、112.95.235.2:有解析权,主要用来反解析或一些域名解析(策略路由)

2、113.106.88.4:国内解析,转发至202.96.134.133;202.96.128.86,有对一些客户网段做转发选择(单路由)

3、113.106.88.5、113.106.88.6:国内外解析,互为主备。国内:114.114.114.114 ; 202.96.134.134,国外:8.8.8.8,210.0.128.250; 210.0.128.251

4、SDW dns10.88.232.4:配有IP88.2、88.4、88.5、88.6,转发到外部网络88.6

目前说的智能DNS只有国内和香港出口的分流选择,一些有美国IP业务的反馈访问缓慢问题,为了解决这个问题以及让后续dns更加符合客户的需求,根据来源IP灵活选择相应DNS服务器,所以增加部署多出口分流DNS,可以根据来源IP和特定域名来转发到不同公用DNS服务器上解析

三、 多出口分流DNS工作流

wps7 20241204081744 cbvt9p5

IP归属主/备DNSZone
广东电信202.96.128.86/202.96.134.166
广东移动211.136.192.6/211.136.20.204
广东联通210.21.196.6/221.5.88.88
香港IP114.114.114.1148.8.8.8/1.0.0.1
美国IP114.114.114.1148.8.4.4/1.1.1.1

多出口分流DNS转发服务器主要功能是根据客户端IP属性和域名将请求转发到相应的公用DNS服务器上,工作过程:

1、客户端发出域名解析请求(客户端IP可能是电信、联通、移动、香港、美国)

2、经过防火墙等设备到达多出口分流DNS服务器,首先判断是否在白名单,不在白名单IP列表则拒绝,解析终止,在白名单则进行下一步匹配

3、根据配置文件中IP列表匹配视图,转发请求到配置好的公用DNS,目前配置有电信、移动、联通、国外等DNS,分国内、香港、美国出口。

4、路由器根据收到的请求数据包修改源IP为相应的公用DNS IP,根据请求包中的来源dns分发到不同出口

5、公用DNS答复给多出口分流DNS后再回复给客户端

6、客户端收到回复,解析完成

四、 安装部署

1、关闭selinux,NetworkManager,防火墙开放53端口

2、安装bind,yum install -y bind*(当前版本9.11.4)

3、主配置文件/etc/named.conf,解析库文件目录/var/named

IP归属主DNS备DNS
广东电信202.96.128.86202.96.134.166
广东移动211.136.192.6211.136.20.204
广东联通210.21.196.6221.5.88.88
香港IP8.8.8.81.0.0.1
美国IP8.8.4.41.1.1.1

配置

主配置文件/etc/named.conf

1、allow-query:定义白名单(必须,在一个广义局域网内)

修改主配置文件/etc/named.conf

在主 DNS 的全局部分添加如下记录:

acl "idc_all" {

127.0.0.1;

14.18.41.0/24;

} //指定允许哪些地址进行转发

};

options {

listen-on port 53 { any; }; //监听哪些主机,any 为预定义 ACL,表示所有

allow-query { idc_all;}; //允许查询的主机范围

…}

2、定义不同view,配合acl(如果IP太多,可写入文件中,更清晰明了)

view ctnet {

   match-clients { ct; };

   include "/var/named/ct.zone"; //电信的 IP 则读取这个 ZONE 文件

   forwarders{ 202.96.128.86;202.96.134.166; }; //指定转发到指定 DNS 服务器

}

五、 测试

1、将测试端分别放在不同的ACL中,看日志,是否走对应的view,以及对比解析情况

解析测试

vim /var/named/hk.zone

wps8 20241204081744 w6xt23m

nslookup www3.l.google.com

nslookup www3.l.google.com 10.200.4.229

2、结果查询:

日志:/var/named/name.log

tail -f /var/named/log/named.log |grep 172.28.12.37

抓包tcpdump

tcpdump host 172.28.12.37

tcpdump -i eth0 udp port 53|grep 172.28.12.37

dig命令使用语法

dig [-t TYPE] name [@SERVER] [+trace]

-t TYPE:表示解析类型

A:查询A记录

NS:查询ns

axfs:查询全量传送,即查询所有的资源记录(生产环境必须关闭)

-x:查询反向解析记录

@SERVER:表示以指定的DNS服务器进行解析,如果不写,dig 会依次使用 /etc/resolv.conf 里的地址作为 DNS 服务器

+trace:表示跟踪解析过程,可不写

+short:表示以短格式显示解析的内容,即只显示域名解析后的IP

nslookup 使用语法

nslookup -qt = type domain [dns-server]

dns-server:表示使用指定的DNS

-qt:表示解析类型

domain: 要查询的域名




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://zblog.hqyman.cn/post/10485.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: