主从dns服务器搭建
A. 如何搭建一个公共DNS服务器
一、服务器环境
必须为centos6.x的 环境 centos7.x不能按照本教程 centos5.x未测试
二、安装并启动DNSMASQ
yum install -y dnsmasqservice dnsmasq start
三、dnsmasq配置
1、Dnsmasq的配置文件路径为:/etc/dnsmasq.conf
# ll -d /etc/dnsmasq.conf -rw-r--r-- 1 root root 21237 Feb 23 00:17 /etc/dnsmasq.conf
2、编辑/etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq.conf //dnsmasq 会从这个文件中寻找上游dns服务器strict-order //去掉前面的#addn-hosts=/etc/dnsmasq.hosts //在这个目里面添加记录listen-address=127.0.0.1,192.168.1.123//监听地址 如果想对所有计算机服务,则为0.0.0.0
3、修改/etc/resolv.conf
echo 'nameserver 127.0.0.1' > /etc/resolv.conf
4、创建resolv.dnsmasq.conf文件并添加上游dns服务器的地址
touch /etc/resolv.dnsmasq.confecho 'nameserver 119.29.29.29' > /etc/resolv.dnsmasq.conf
5、创建dnsmasq.hosts文件
cp /etc/hosts /etc/dnsmasq.hostsecho 'addn-hosts=/etc/dnsmasq.hosts' >> /etc/dnsmasq.conf
提示:resolv.dnsmasq.conf中设置的是真正的Nameserver,可以用电信、联通等公共的DNS。
三、DNSmasq启动
1、设置Dnsmasq开机启动并启动Dnsmasq服务:
chkconfig dnsmasq on/etc/init.d/dnsmasq restart
2、netstat -tunlp|grep 53 查看Dnsmasq是否正常启动:
# netstat -tlunp|grep 53tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 2491/dnsmasq tcp 0 0 :::53 :::* LISTEN 2491/dnsmasq udp 0 0 0.0.0.0:53 0.0.0.0:* 2491/dnsmasq udp 0 0 :::53 :::* 2491/dnsmasq
3、dig smallxu.me,第一次是没有缓存,所以时间是400多
4、第二次再次测试,因为已经有了缓存,所以查询时间已经变成了2.
为了防止故意进行DNS劫持,这里不贴出
四、DNSMASQ的配置
1、本地DNS使用
这里我们本地DNS可以使用服务器中配置的IP,这样我们本机就使用到自己的DNS,备用DNS可以用一个第三方公用DNS。
2、屏蔽网站/广告
vi /etc/dnsmasq.conf
如果我们需要屏蔽某个网站或者广告,可以修改上面的文件
address=/itbulu.com/127.0.0.1address=/smallxu.me/127.0.0.1
比如我希望无法打开这两个网站,就在配置文件中添加指定的IP或者其他劫持的IP,比如我们打开某个网站被指定到其他的服务器或者网站中,就这样被劫持的。同样的,我们也可以将广告目录屏蔽。
添加后 smallxu.me和itbulu.com将会被解析到127.0.0.1
第五、Dnsmasq配置和使用总结
Dnsmasq实际功能不仅仅局限在上面的搭建我们本地需要的DNS服务器功能,如果真就这么简单的用法,那我们也没有必要用一台服务器配置。使用点第三方公共DNS还是没有问题的,有点广告也无妨。
B. 如何搭建根dns 服务器 centos6.5
1、安装与配置
[root@localhost ~]# yum -y install bind bind-chroot bind-util bind-libs DNS服务器所需的软件包
3、注意事项
客户端必须要跟服务器端通信(能ping通)及关闭selinux
二、主域名服务器配置
1、配置(可以与缓存服务器共享一台主机)
2、客户端测试
三、从域名服务器搭建与配置
1、重新开启一台linux虚拟主机(CentOS 6.5),网卡ip为192.168.1.124
2、服务的安装与配置
3、客户端测试
4、注意事项:
(1)、如果还是无法解析,请返回主域名服务器的/var/named目录给区域配置文件加上权限(单纯是为了练习的话,就加到最大权限777吧)
(2)、以上的练习都是在关闭防火墙与seLinux的状态下操作的,如果防火墙开启,可自行去添加规则
四、还有根据接口来配置的DNS服务器,在此就不做介绍了,可自行去查阅资料练。
C. win10如何搭建DNS服务器
1、 安装DNS服务
开始—〉设置—〉控制面板—〉添加/删除程序—〉添加/删除Windows组件—〉“网络服务”—〉选择“域名服务系统(DNS)”—〉按确定进行安装
2、 创建DNS正相解析区域
开始—〉程序—〉管理工具—〉选择DNS,打开DNS控制台—〉右击“正相搜索区域”—〉选择“新建区域”—〉选择“标准主要区域”(或“Active Directory 集成区域”或“标准辅助区域”)--〉输入域名“abc.com” —〉输入要保存的区域的文件名“abc.com.dns”— 〉按完成,完成创建
创建主机记录等:
右击“abc.com”—〉“新建主机” —〉在名称处输入“www”,在“IP地址”处输入“192.168.0.3”,—〉按“添加主机”完成
3、 创建DNS反向解析区域
开始—〉程序—〉管理工具—〉选择DNS,打开DNS控制台—〉右击“反向搜索区域”—〉选择“新建区域”—〉选择“标准主要区域”—〉输入用来标示区域的“网络ID”—〉输入要保存的区域的文件名“0.168.192.in-addr.arpa.dns”—〉按完成,完成创建
创建指针PTR:
右击“192.168.1.x.subnet”—〉选择“新建指针”—〉在“主机IP号”中输入2—〉在“主机名”中输入ftp—按 “确定”完成添加
4、 启用DNS循环复用功能
如www.abc.com对应于多个IP地址时DNS每次解析的顺序都不同
右击选择“DNS服务器”—〉属性—〉高级—〉选择“启用循环”(round robin)--〉选择“启用netmask 排序”—〉按“ 确定”返回
注:如所有的IP和域名服务器在同一子网时需要取消“启用netmask排序”,才能实现循环复用功能。即启用循环时 ,当主机的IP和dns在同一个子网时将始终排在最前面,当都在一个子网时就不进行循环,只有去除了“启用netmask排序” 时才能实现循环复用。
DNS服务器会优先把与自己的网络ID相同的记录返回给客户端
5、 创建标准辅助区域,实现DNS区域复制
在另一台DNS服务器上,右击“正向搜索区域”—〉选择“新建区域”—〉选择“标准辅助区域”—〉输入“abc.com”—〉输入主域名服务器的IP地址—〉选择“完成”
可手工要求同步:
在辅域名服务器上右击“abc.com”的域—〉选择“从主服务器传输”
并且可以设置允许传输的域名服务器:
在主域名服务器上右击“abc.com”的域—〉选择“属性”—〉选择“区域复制”—〉在“允许复制”前打勾,并选择允许复制的主机(到所有服务器、只有在“名称服务器”选项卡中列出的服务器、只允许到下列服务器)
完成服务器类型的转换:
右击区域—〉选择 “属性”—〉选择“类型”的“更改”按钮—〉选择要更改的区域类 型—〉按“确定”
6、 实现DNS唯高速缓存服务器
创建一个没有任何区域的DNS服务器—〉右击DNS服务器—〉选择“属性”—〉选择“转 发器”中的“启用转发器”—〉输入转发器的IP地址—〉按“确定”完成
清除“唯高速缓存”中的cache内容:
右击“DNS服务器”—〉选择“清除缓存”
或者选择“DNS服务器”—〉在菜单中选择“查看”,高级—〉右击“缓存的查找”—〉选择“清除缓存”
(客户端清空DNS缓存—)ipconfig /flushdns)
7、 DNS的委派(子域的转向)
在原域名服务器上建立“subdomain.abc.com”的主机—〉右击abc.com的域,选择“新建委派”—〉将subdomain.abc.com的域代理给subdomain.abc.com的主机—〉在subdomain.abc.com上建立“正向标准区域”subdomain.abc.com—〉添加相关主机记录
8、 设置 DNS区域的动态更新
右击选择DNS上区域—〉选择“属性”—〉选择“常规”中的“允许动态更新”,选是— 〉然后按 “确定”—〉在本机的DHCP服务器中—〉右击选择DHCP服务器—〉选择“属性”—〉选择“DNS”—〉选择“为不支持动态更新的DNS客户启用更新”—〉在客户端使用ipconfig /registerdns来更新域名的注册信息
注意客户端需要将完整的计算机名改成myhost.abc.com
9、 配置DNS客户端
在客户端计算机上打开tcp/ip属性对话框,在dns服务器地址栏输入dns服务器的ip地址
手工配置最多可配置12个 DNS服务器 .
D. 简单介绍DNS的工作原理,写出搭建DNS服务器的简要步骤
DNS 即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制。其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。
下面对DNS的工作流程及原理进行简要说明
DNS的查询流程:需要解析服务的Client先查看本机的/etc/hosts;若无结果,则client查看本地的DNS缓存服务器;若无结果,则查找所属域的首选DNS服务器;若此时本地首选DNS服务器仍无法解析,则会想根域名服务器进行查询或选择转发解析请求。
DNS的查询规则:递归式查询,即client向支持递归查询的DNS Server发出解析请求,则自DNS服务器不论是自身直接解析还是无法解析想根发出请求,总会由其向client返回一个结果;迭代式查询,即接收client解析请求的DNS Server,若其能够解析则直接返回结果,若其不能解析将把解析请求交给其他DNS服务器,而不是自己亲自将解析过程完成。
所谓的“根”服务器:根服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。
DNS记录的类型:
A:Address 域名向ip地址转换的记录;
PTR:Printer ip地址向域名转换的记录;
NS:代表域内的dns服务器;
MX:代表域内的邮件服务器;
CNAME:域名的别名;
SOA:start of authority用于标示域内主DNS服务器。
提供DNS服务的软件:BIND即Berkeley Internet Name Domain有加州大学伯克利分校研发是当今提供dns服务应用最广的软件。
下面让我们进入正题,以下内容包括:DNS的缓存服务器、主/从服务器、子域授权、转发以及视图的配置步骤。
DNS缓存服务器
Ps:为了更好的体会和理解dns的配置文件和域解析文件,作者在此只安装bind包,以手动编辑的方式生成这几个必须的文件。
1.安装bind包
yum install bind
2.创建住配置文件/etc/named.conf
options {
directory "/var/named"; #告知工作目录
};
zone “.” IN {
type hint; #声明根域
file "named.ca"; #根信息存放文件
};
zone "localhost" IN { #本地正解定义
type master; #类型为master
file "localhost.zone"; #正解文件名
};
zone "0.0.127.in-addr.arpa" IN { #本地反解定义
type master;
file "named.local"; #反解文件名
};
chown :named /etc/named.conf
#修改属组给named
3.创建3个解析文件
named.ca
dig -t NS . > /var/named/named.ca
#向跟服务器发起查询并重定向到目标文件
localhost.zone
vim localhost. zone
$TTL 86400
#默认的ttl值
@ IN SOA localhost. admin.localhost. (
#主DNS服务器localhost.
2011081601
#时间+序列号01
1H
#刷新时间:每隔多久来master查询更新
10M
#重试时间间隔
7D
&n
E. windows2008主备dns怎么搭建
windows2008搭建dns是通过新建dns角色服务器来实现。工具/原料:windows2008方法步骤:1.打开2008系统之后,打开服务器管理器找到角色----右侧有一个添加角色;2.接着进入角色新建向导页面,默认进行下一步;3.等待片刻扫描服务器角色之后,勾选dns服务器(注意搭建dns服务器要求固定ip地址);4.打开网络和共享中心,找到本地连接属性。打开点击internetv4属性,常规选项卡里面选择手动配置ip;5..如果服务器是固定ip,直接进行下一步向导;6.提示对话框确认安装dns服务器,点击【安装】继续;7.点击安装之后,进入安装阶段需要等待几分钟;8.安装好之后,如果关闭了windowsupdate会提示一个警告。建议激活windowsupdate服务;9.再次返回服务器管理器角色服务里面,可以看到dns服务器。
F. DNS服务器怎么搭建
dns服务器搭建配置方法:
2008搭建dns是通过新建dns角色服务器来实现,打开2008系统之后,打开服务器管理器找到角色----右侧有一个添加角色
接着进入角色新建向导页面,默认进行下一步
等待片刻扫描服务器角色之后,勾选dns服务器(注意搭建dns服务器要求固定IP地址)
再次返回服务器管理器角色服务里面,可以看到dns服务器
另外:
1..设置公网DNS转发:关于怎么添加dns记录的相关方法,咗嚛会另外一篇经验提供内部邮箱解析设置案例。
2.除此之外,dns服务器还要设置一个外部转发器,对于不能解析的地址进行外网dns解析
客户端怎么设置dns,内部电脑的话,把dns部分首选dns设置为服务器的ip地址。辅助dns设置一个能够正常连接的公网IP即可,如果都是动态分配的到路由器上设置分配首选dns为内部dns
G. DNS服务器建立的详细步骤
搭建DNS服务器前提是有自己的的域名DNS,
你可以去域名注册商那注册两个你域名下的DNS,指向你所要搭建DNS的服务器.可以去cnnic上查询是否注册成功.然后把自己域名的DNS修改成你注册的这个DNS,建议用测试的域名先测试正常后,再修改正式使用域名的DNS,该项操作会造成域名解析短暂中断,请谨慎操作.
至于搭建DNS服务器的软件,推荐使用winmydns.当然还有bind9或MyDNS,这些你可以搜下教程.
winmydns是基于Windows平台的,比较容易使用.
很多服务商都是使用winmydns软件搭建的,像dnsceo的就是,解析快.也稳定.应该可以满足你的需求的.
H. 如何搭建DNS服务器
dns服务器搭建配置方法:
2008搭建dns是通过新建dns角色服务器来实现,打开2008系统之后,打开服务器管理器找到角色----右侧有一个添加角色
接着进入角色新建向导页面,默认进行下一步
等待片刻扫描服务器角色之后,勾选dns服务器(注意搭建dns服务器要求固定IP地址)
再次返回服务器管理器角色服务里面,可以看到dns服务器
另外:
1..设置公网DNS转发:关于怎么添加dns记录的相关方法,咗嚛会另外一篇经验提供内部邮箱解析设置案例。
2.除此之外,dns服务器还要设置一个外部转发器,对于不能解析的地址进行外网dns解析
客户端怎么设置dns,内部电脑的话,把dns部分首选dns设置为服务器的ip地址。辅助dns设置一个能够正常连接的公网IP即可,如果都是动态分配的到路由器上设置分配首选dns为内部dns
I. linux怎么配置dns缓存服务器和主从服务器
BIND安装
软件下载地址:http://www.isc.org/software/bind,目前最新版本是BIND 9.8.1-P1。
安装依赖:
yum -y install gcc openssl-devel
开始安装bind.
wget ftp://ftp.isc.org/isc/bind9/9.8.1-P1/bind-9.8.1-P1.tar.gz
tar xzf bind-9.8.1-P1.tar.gz
cd bind-9.8.1-P1
./configure --prefix=/usr/local/bind
make && make install
执行完成后,bind已经安装到了/usr/local/bind目录。
配置主dns服务器
配置bind主要是两种文件,一是主配置文件named.conf,二是区域文件zone(包括正解析,反解析)。
在下面的配置中,我们的主dns服务器是ns1.qbtop.com 23.19.81.191,从dns服务器是ns2.qbtop.com 23.19.81.194(这两个dns都已经在godaddy注册好了)。
下面操作仅在主dns服务器23.19.81.191执行。
主配置文件named.conf
首先执行rndc-confgen -a生成/etc/rndc.key密钥文件。
/usr/local/bind/sbin/rndc-confgen -a
vi /usr/local/bind/etc/named.conf
写入如下内容:
include "/usr/local/bind/etc/rndc.key";
controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndckey"; }; };
logging {
channel default_syslog { syslog local2; severity notice; };
channel audit_log { file "/var/log/bind.log"; severity notice; print-time yes; };
category default { default_syslog; };
category general { default_syslog; };
category security { audit_log; default_syslog; };
category config { default_syslog; };
category resolver { audit_log; };
category xfer-in { audit_log; };
category xfer-out { audit_log; };
category notify { audit_log; };
category client { audit_log; };
category network { audit_log; };
category update { audit_log; };
category queries { audit_log; };
category lame-servers { audit_log; };
};
options {
directory "/usr/local/bind/etc";
pid-file "/usr/local/bind/var/run/bind.pid";
transfer-format many-answers;
interface-interval 0;
allow-query { any; };
};
zone "qbtop.com" {
type master;
file "qbtop.com.zone";
allow-transfer { 23.19.81.194; };
};
zone "81.19.23.in-addr.arpa" {
type master;
file "81.19.23.in-addr.arpa";
allow-transfer { 23.19.81.194; };
};
named.conf文件说明:
上面的named.conf文件包括三部分:key,controls,logging,options,zone。
logging:设置日志服务器和日志信息的发送地。
options:控制服务器的全局配置选项和为其它语句设置默认值
zone:定义一个域,比如正解析域和反解析域。
logging是定义日志的,不需要深究,主要是options和zone。
在options中:
directory "/usr/local/bind/etc":定义bind的工作目录为/usr/local/bind/etc,配置文件中所有使用的相对路径,指的都是在这里配置的目录下。
pid-file "/usr/local/bind/var/run/bind.pid":把bind程序运行的pid写入文件bind.pid。
transfer-format many-answers:使用更加有效的域传输格式many-answers。
allow-query { any; }:允许所有用户查询dns。
在zone中:
这里定义了两个zone,一个是正解析zone qbtop.com,一个是反解析zone 81.19.23.in-addr.arpa。
他们的参数基本相同:
type master:定义dns服务器为主dns。
file "qbtop.com.zone":定义此zone的文件名。
allow-transfer { 23.19.81.194; }:允许向从dns 23.19.81.194传输dns数据。
唯一不同的是zone名称的定义,正解析zone名称的定义是受权的域名,可以是顶级域名,也可以是二级域名,或多级。反解析zone名称定义规定前部分ip倒着写。如ip 192.168.1.2,名称定义为1.168.192.in-addr.arpa。
正解析qbtop.com.zone
vi /usr/local/bind/etc/qbtop.com.zone
写入如下内容:
$TTL 3600
@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
2012022301 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN NS ns1.qbtop.com.
@ IN NS ns2.qbtop.com.
ns1 IN A 23.19.81.191
ns2 IN A 23.19.81.194
aaa IN A 23.19.81.191
bbb IN A 23.19.81.191
文件说明:
$TTL 3600:指示为每个没有特殊TTL设置的RR给出了一个默认的TTL。
@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
2012022301 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
定义SOA记录,包括Zone的名字,一个技术联系人和各种不同的超时值。
@ IN NS ns1.qbtop.com.
@ IN NS ns2.qbtop.com.
设置两个ns记录ns1.qbtop.com和ns2.qbtop.com。
ns1 IN A 23.19.81.191
ns2 IN A 23.19.81.194
aaa IN A 23.19.81.191
bbb IN A 23.19.81.191
设置主机为ns1,ns2,aaa和bbb的A记录。
反解析文件81.19.23.in-addr.arpa
反解析zone可以不设置。
vi /usr/local/bind/etc/81.19.23.in-addr.arpa
写入如下内容:
$TTL 3600
@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
2012022301 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN NS ns1.qbtop.com.
@ IN NS ns2.qbtop.com.
191 IN PTR ns1.qbtop.com.
194 IN PTR ns2.qbtop.com.
说明:
上部分是定义SOA记录,下部分是设置IP反解析。
如设置IP 23.19.81.191反解析成ns1.qbtop.com,23.19.81.194反解析成ns2.qbtop.com。
配置从DNS服务器
下面我们来配置从DNS服务器。配置从DNS服务器只需要配置主配置文件named.conf,zone文件不需配置,因为这是从主DNS服务器获取的。
首先建立目录slaves用来存放从主dns获取的zone文件。
mkdir /usr/local/bind/etc/slaves
写入如下内容:
logging {
channel default_syslog { syslog local2; severity notice; };
channel audit_log { file "/var/log/bind.log"; severity notice; print-time yes; };
category default { default_syslog; };
category general { default_syslog; };
category security { audit_log; default_syslog; };
category config { default_syslog; };
category resolver { audit_log; };
category xfer-in { audit_log; };
category xfer-out { audit_log; };
category notify { audit_log; };
category client { audit_log; };
category network { audit_log; };
category update { audit_log; };
category queries { audit_log; };
category lame-servers { audit_log; };
};
options {
directory "/usr/local/bind/etc";
pid-file "/usr/local/bind/var/run/bind.pid";
transfer-format many-answers;
interface-interval 0;
allow-query { any; };
};
zone "qbtop.com" {
type slave;
file "slaves/qbtop.com.zone";
masters { 23.19.81.191; };
};
zone "81.19.23.in-addr.arpa" {
type slave;
file "slaves/81.19.23.in-addr.arpa";
masters { 23.19.81.191; };
};
文件说明:
从dns跟主dns主要的区别是zone的定义,type slave定义此dns服务器为从dns,masters { 23.19.81.191; }定义主dns的IP。
启动BIND
1、在启动BIND之前,我们需要执行/usr/local/bind/sbin/named-checkconf检查named.conf配置文
件,和执行/usr/local/bind/sbin/named-checkzone zone名称
zone文件名,如/usr/local/bind/sbin/named-checkzone qbtop.com
/usr/local/bind/etc/qbtop.com.zone。
然后调试模式启动bind,/usr/local/bind/sbin/named -g,g参数的意思是前台执行bind,这会输出启动的信息,发现没有严重的错误后,再把g参数删除重新以/usr/local/bind/sbin/named方式后台启动bind。
2、设置开机启动,在/etc/rc.d/rc.local中加入/usr/local/bind/sbin/named。
手动添加记录
1、直接添加删除或修改zone文件里的记录
2、执行rndc reload zone名称重载,如rndc reload qbtop.com