DNS部署

一、DNS系统说明

目前后端系统的应用均采用硬IP的方式访问,虽然简单易辩,但是不利于系统的扩展和迁移。现搭建主备两台内网DNS服务器,建立严格的监控机制,以保证DNS的高可用性。DNS解析记录的修改和查看采用web界面形式,并通过管理员和guest用户分别控制权限.

DNS系统采用最新的Bind-DLZ+mysql架构,解析记录存在mysql数据库表中。这样可以避免传统Bind的以下几个问题:

1、Bind解析记录存储在zone文件中,容易因编辑错误出现问题

2、Bind需要将解析数据加载到内存,如果数据过多,会消耗大量内存

3、Bind解析记录修改,需重启才能生效

4、Bind启动会解析zone文件,数据量大会影响启动时间

二、DNS部署


     DNS服务器上均需要安装以下依赖包:

              yum -y install gcc python-devel bind-utils openssl openssl-devel lrzsz wget unzip libaio perl mysql-devel

     配置libmysql_client 依赖包

              mv /usr/local/mysql/lib/mysql /usr/local/mysql/lib/mysql_bak &&  ln -s /usr/lib64/mysql /usr/local/mysql/lib/



     1、在10.160.29.200和10.160.29.100上分别部署mysql,且配置200为master,100为slave.部署步骤略

cp /usr/local/percona/lib/libmysql* /usr/local/percona/lib/mysql/

2、在141与167上部署bind-dlz

2.1、安装bind-9.9.6-P1

cd /data/soft
                  wget http://172.16.100.221/yx_soft_repo/bind-9.9.6-P1.tar.gz
                  tar xzf bind-9.9.6-P1.tar.gz && cd bind-9.9.6-P1

./configure --prefix=/data/app/bind/ --disable-openssl-version-check --with-dlz-mysql=/usr/local/mysql && make&&make install

2.2、配置bind

cd /data/app/bind/etc && ../sbin/rndc-confgen -r /dev/urandom >rndc.conf &&  mkdir -p /data/app/bind/logs/ && mkdir -p /var/lib/named/log/

named.conf配置

key "rndc-key" {

algorithm hmac-md5;

secret "bBpwKOY8xDX4mozyMlJuCA==";

};

acl goodclients {

10.180.0.0/16;

localhost;

localnets;

};

options {

dump-file "/var/log/named_dump.db";

zone-statistics yes;

statistics-file "/var/lib/named/log/named.stats";

recursion yes;

allow-query { goodclients; };

forwarders {

202.106.196.115;

114.114.114.114;

8.8.8.8;

8.8.4.4;

};

};

controls {

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { "rndc-key"; };

};

dlz "Mysql zone" {

database "mysql

{host=192.168.200.222 dbname=dns ssl=false port=3306 user=dnsadmin pass=Dn5}

{select zone from dns_records where zone = ‘$zone$‘ and  view = ‘any‘ limit 1}

{select ttl,type,mx_priority,case when lower(type)=‘txt‘ then concat(‘\"‘,data,‘\"‘) when lower(type)    =  ‘soa‘  then   concat_ws(‘ ‘,  data,  resp_person,  serial,  refresh,  retry,  expire,  minimum)   else   data   end   as   mydata   from   dns_records where zone = ‘$zone$‘   and host = ‘$record$‘ and view = ‘any‘}";

};

logging {

channel query_log {

file "/data/app/bind/logs/query.log" versions 3 size 20m;

severity info;

print-time yes;

print-category yes;

};

category queries {

query_log;

};

};

2.3、数据库配置

root/Admin123$

mysql -uroot -p --socket=/data/3306/mysql.sock

create database dns;

use dns;

创建数据库表

CREATE TABLE `dns_records` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`zone` varchar(255) NOT NULL,

`host` varchar(255) NOT NULL DEFAULT ‘@‘,

`type` enum(‘MX‘,‘CNAME‘,‘NS‘,‘SOA‘,‘A‘,‘PTR‘) NOT NULL,

`data` varchar(255) DEFAULT NULL,

`ttl` int(11) NOT NULL DEFAULT ‘800‘,

`view` char(20) DEFAULT ‘any‘,

`mx_priority` int(11) DEFAULT NULL,

`priority` int(3) DEFAULT ‘255‘,

`refresh` int(11) NOT NULL DEFAULT ‘3600‘,

`retry` int(11) NOT NULL DEFAULT ‘3600‘,

`expire` int(11) NOT NULL DEFAULT ‘86400‘,

`minimum` int(11) NOT NULL DEFAULT ‘3600‘,

`serial` bigint(20) NOT NULL DEFAULT ‘2008082700‘,

`resp_person` varchar(64) NOT NULL DEFAULT ‘root.domain.com.‘,

`primary_ns` varchar(64) NOT NULL DEFAULT ‘ns1.domain.com.‘,

`data_count` int(11) NOT NULL DEFAULT ‘0‘,

PRIMARY KEY (`id`),

KEY `type` (`type`),

KEY `host` (`host`),

KEY `zone` (`zone`)

) ENGINE=MyISAM AUTO_INCREMENT=95 DEFAULT CHARSET=gbk

数据通过dns管理web界面增加

grant all privileges on dns.* to [email protected]‘10.160.29.%‘ identified by ‘Dn5‘;

2.4、启停脚本

/etc/init.d/named start

三、DNS压力测试

使用bind自带压力测试软件queryperf,对DNS进行压力测试

测试方法:

/usr/local/bind/bin/queryperf -d test.txt -s 10.160.29.200

四、DNS记录修改

基于django web.py框架开发的DNS在线修改和查找的web应用,访问地址是http://192.168.200.222:8003/。管理员用户可在线增删改查DNS解析记录,guest用户可无密码访问,查找相应的IP或者域名解析记录。

五、DNS监控

     DNS监控以下内容:

存活状态:

响应时间:

QPS:

时间: 2024-10-10 15:19:10

DNS部署的相关文章

DNS单机部署以及智能dns部署

dns理论 dns的出现 网络出现的早期是使用IP地址通讯的,那时就几台主机通讯.但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和Windows也继承保留了这个文件).这个文件中记录着主机名称和IP地址的对应表.这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了. 但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文件服务器上集中存放h

Kubernetes Dashboard 与DNS部署

前面的博文中介绍了k8s集群的部署,这里主要介绍部署kube-dns和Dashboard. 环境说明 Node-1(Master): 10.0.0.1Node-2: 10.0.0.2Node-3: 10.0.0.3 集群使用二进制安装,并已部署flannel网络插件. kube-DNS 在进行如下的操作时,你必须已经部署好了K8S的集群,如果你还没有这样的集群,请参考我之前的博文. 1.在官网找到对应的yaml文件,地址为:https://github.com/kubernetes/kubern

【入门】广电行业DNS、DHCP解决方案详解(三)——DNS部署架构及案

DNS系统部署架构 宽带业务DNS架构 互动业务DNS架构 案例介绍 案例一 案例二 本篇我们将先介绍DNS系统部署架构体系,并向大家分享两个案例,深化大家对DNS系统的理解,最后我们也会讨论安全防护问题. DNS系统部署架构 宽带业务DNS架构 宽带业务的DNS架构主要提供宽带网络宽带用户进行互联网访问,DNS系统主要以递归查询为主,它的架构以缓存递归分离的方式和原则进行搭建部署.例如,最小的部署方式为两个缓存.两个递归.一个管理共五台设备.两个缓存通过OSPF的架构实现冗余,当然如果数据量比

VCSA 6.7 U2无DNS部署

何老师在VCSA 6.5部署的是时候就解释过,生产环境或测试环境推荐使用DNS解析,如果确实没有DNS,无论是生产环境还是测试环境,VCSA部署是没有问题的.整体的部署和常规部署相同,何老师对于重点细节进行说明. 第1步,运行VCSA 6.7部署程序,中间一些截图参考何老师相关部署文章即可 第2步,配置VCSA虚拟机网络,FQDN填写虚拟机分配的IP地址,注意如果没有DNS服务器,请填写VCSA虚拟机IP,不要随意填写网关或其他IP,因为填写的IP不能解析第二阶段会报错导致部署失败. 第3步,确

CentOS 7 DNS部署

CentOS 7DNS服务器架设 项目背景和要求 要保证即能够解析内网域名bigcloud.local的解析,又能解析互联网的域名. 主DNS服务器:ZZYH1.BIGCLOUD.LOCAL 辅助DNS服务器:ZZYH2.BIGCLOUD.LOCAL 包含以下域的信息: 1.bigcloud.local域的信息: FQDN IP地址 备注 zzyh1.bigcloud.local 192.168.188.15 DNS1服务器 zzyh2.bigcloud.local 192.168.188.16

DNS部署(四)之lvs+keepalived+bind架构高可用负载均衡DNS系统

1.网络拓扑 2.环境描述 系统描述 IP地址 作用 LB-master 192.168.1.105 主备负载均衡器(同时做web和DNS调度) LB-backup 192.168.1.106 DNS-master 192.168.1.107 VIP:192.168.1.30(LVS DNS节点互为主辅同步) DNS-backup 192.168.1.108 Web节点组 192.168.1.201-203 VIP:192.168.1.40(LVS web节点) 3.配置LVS调度器keepal

linux dns 部署命令

安装DNS步骤: 1.挂载光盘并安装主程序和伪装包 mount /dev/cdrom /mnt cd /mnt/Packages/ rpm -ivh bind-9.7.0-5.P2.el6.i686.rpm rpm -ivh bind-chroot-9.7.0-5.P2.el6.i686.rpm 2.复制主配置文件和区域配置文件并改变所有者为named cp -p /etc/named.conf /var/named/chroot/etc/ cp -p /var/named/named.empt

企业级DNS服务集群架构设计及BIND部署配置实战

DNS(域名解析系统) 简单地说就是一个IP地址和域名之间的转换系统,方便用户通过域名访问正确的服务地址,而不用记住不易区分的具体IP.DNS协议运行在UDP协议之上,使用端口53. DNS解析流程 以访问www.qq.com为例,当用户在浏览器中输入网址点击回车以后,会经过以下查找IP过程,也就是DNS解析过程: 1)本地计算机host文件 2)如果本地没有解析记录,则开始递归查询本地域名服务器LOCAL DNS(也就是你网络中配置的首选和备选DNS) 3)LDNS也没有则会去查询根服务器,并

通解DNS(下)

当我为继续写<通解DNS(下)>的时候,我才发现,我遇到了一些难题,在解决这些问题的时候,我才理解到了DNS与之关联的技术还是比较复杂的  -丁胖胖 六.DNS中特殊的@与FQDN 在DNS设置中,@符号是一个比较特殊的符号,它用来代表ZONE,所以在如z00w00.local这样的ZONE文件中,所以在SOA中有一个"responsible mail addr"配置的地方,你不会找到@符号,但那确实是一个E-MAIL地址(图6.1) (图6.1) FQDN-Fully Q