编译安装DNS-bind-9.9.0初始化设置
最新Linux服务器搭建之九:DNS服务器bind9
L i n u x服务器搭建之九:D N S服务器
b i n d9
Linux服务器搭建之九:DNS服务器(bind9)
Linux操作系统平台:Xubuntu
账户:root
主要软件包:bind9
bind9服务器搭建流程:
0.【apt-get install bind9】安装bind9软件包:
1.【/etc/】目录下有个bind目录,bind9的文件配置目录:
2.【/etc/bind】目录里的配置文件:
3.vim编辑named.conf.local文件,在里面修改信息为下图那样:(配置域名文件)
(原来有个模子的,直接修改即可,是我即将解析的域名,你可自己想一个新的)
4.【cp db.local 】将文件db.local复制为
:
5.vim编辑cat 文件,在原先的模子上修改为下面那样即可:(配置解析文件)
(主要修改了:[1],[2]192.168.170.184(本机IP),其他的基本默认了)
6.【service bind9 start】启动bind9服务器:(忘记截图了)还是【nslookup】命令查询域名是否解析成功:
刚才解析的和现在解析的在同一个IP上,这样的话可以实现一机多站了,节省网站服务器开支。
(还有一种常见的DNS域名解析服务器搭建是Redhat平台上的,由于那个软件有些过时了,配置文件非常麻烦,我就选择Xubuntu平台进行DNS搭建了)。
源码安装bind
(注意:$表示普通用户权限,#表示超级用户权限)/yangzhawen/article/details/505034261.1 解压、安装$ tar xvzf bind-9.10.3-P2.tar.gz && cd bind-9.10.3-P2/$ ./configure --prefix=/usr/local/bind --enable-threads --enable-largefile --disable-ipv6 --without-openssl$ make$ sudo make install安装好以后查看其版本:# /usr/local/bind/sbin/named -vBIND 9.10.6 <id:9d1ea0b>1.2 主配置文件#cd /usr/local/bind/etc/#/usr/local/bind/sbin/rndc-confgen > rndc.conf#cat rndc.conf > rndc.key#tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf#gedit /usr/local/bind/etc/named.confoptions {directory "/usr/local/bind/var";pid-file "named.pid";};zone "." {type hint;file "named.ca";};*****************备注options {directory "/usr/local/bind/var"; //域名文件存放的绝对路径pid-file "named.pid"; //如果bind启动,自动会在/usr/local/bind/var/目录生成一个named.pid文件,打开文件就是named进程的ID};zone "." IN {type hint; //根域名服务器file "named.ca"; //存放在/usr/local/bind/var/目录,文件名为named.ca};1.3 挖掘DNS工具,查看根# dig -t NS .产生named.ca文件# dig -t NS . >/usr/local/bind/var/named.ca********************************* 1.4 运行DNS服务** #/usr/local/bind/sbin/named** #tail /var/log/syslog********************************1.5 检查状态# /usr/local/bind/sbin/rndc statusWARNING: key file (/usr/local/bind/etc/rndc.key) exists, but using default configuration file (/usr/local/bind/etc/rndc.conf)version: BIND 9.10.3-P2 <id:f9be8b2>boot time: Tue, 12 Jan 2016 03:14:10 GMTlast configured: Tue, 12 Jan 2016 03:14:10 GMTCPUs found: 1worker threads: 1UDP listeners per interface: 1number of zones: 99debug level: 0xfers running: 0xfers deferred: 0soa queries in progress: 0query logging is OFFrecursive clients: 0/0/1000tcp clients: 0/100server is up and running查看日志文件#cat /var/log/syslog | grep named配置DNS(通过自己的计算机解析DNS)---可选# echo "nameserver 127.0.0.1" >/etc/resolv.conf************************************************************* 添加本地DNS服务器解析文件# ln -s /usr/local/bind/etc/named.conf /etc/2.1正向解析# gedit /etc/named.conf#正向解析zone "localhost"{type master;file "localhost.zone";};zone ""{type master;file ".zone";};# gedit /usr/local/bind/var/localhost.zone$TTL 38400@ IN SOA localhost. root (2009040701 ;serial1H ;refresh15M ;retry1W ;expire1D ) ;TTLIN NS @IN A 127.0.0.1# gedit /usr/local/bind/var/.zone$TTL 38400@ IN SOA . root (2009040701 ;serial1H ;refresh15M ;retry1W ;expire1D ) ;TTL@ IN NS bind@ IN MX 10 mailbind IN A 192.168.1.140mail IN A 192.168.1.140storage IN A 192.168.50.88node01 IN A 192.168.50.100node02 IN A 192.168.50.200*****************************************************链接bind命令ln -s /usr/local/bind/sbin/* /usr/bin/可能要先删掉/usr/local/sbin才行重新加载# rndc reload×××××××××××××××××××××××××××××××××××××××××××××××××××××××2.2 反向解析文件# gedit /etc/named.conf#反向解析zone"0.0.127.in-addr.arpa" in {type master;file "named.local";allow-update { none; };};zone "50.168.192.in-addr.arpa" in {type master;file "jinri.local";allow-update { none; };};# gedit /usr/local/bind/var/named.local------------------------------------------$TTL 384000.0.127.in-addr.arpa. IN SOA . root( 2009040701 ;serial3H ; refresh15M ;retry1W ;expiry1D) ;minimumIN NS .1 IN PTR .# gedit /usr/local/bind/var/jinri.local------------------------------------------$TTL 3840050.168.192.in-addr.arpa. IN SOA . root(2009040701;serial3H ; refresh15M ;retry1W ;expiry1D) ;minimumIN NS .88 IN PTR .100 IN PTR .200 IN PTR .**************************************************************#检测配置文件#named-checkconf×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××#小测试ndsc@kvm:~$ dig @192.168.103.35; <<>> DiG 9.9.5-3ubuntu0.16-Ubuntu <<>> @192.168.103.35;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62057;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096;; QUESTION SECTION:;. IN A;; ANSWER SECTION:. 38400 IN A 192.168.50.100;; AUTHORITY SECTION:. 38400 IN NS .;; ADDITIONAL SECTION:. 38400 IN A 192.168.1.140;; Query time: 0 msec;; SERVER: 192.168.103.35#53(192.168.103.35);; WHEN: Mon Oct 16 20:59:06 CST 2017;; MSG SIZE rcvd: 96-------------------------------------------------------------------ndsc@kvm:~$ nslookup> Server: 10.10.50.1Address: 10.10.50.1#53Non-authoritative answer:*** Can't find : No answer >。
bind9服务器配置手册---适合新手
DNS配置过程一、安装软件包这里要装两个软件包,一个是bind,这个是DNS的主配置文件,另外一个是caching-nameserver,这个是为了提高bind的安全性的一个软件包。
装好了我们就来配置我们的dns吧。
二、配置服务器按照常规,我们先来看看他给我们装了那些目录文件。
分析出哪些是重要的。
Rpm -ql bind 我们可以看到主配置文件在/etc下面,但是当我们在这里却找不到named.conf 这个文件,所以我们要创建我们的配置文件。
但是在/etc下面,有两个跟named相关的文档,一个是named.caching-nameserver.conf 和named.rfc1912.zone,我们把这两个文件合并起来,就是我们的配置文档的内容,把名字改成named.conf,然后再把里面做细微的改动,我们的配置文档模版就行了。
有一个问题我们必须注意,开始我们装了一个caching的软件包来提高我们的安全性,所以我们会看到两个目录有named.conf文件,一个是/var/named/chroot//etc目录下,还有一个就是/etc/named.conf这两个目录,其中前面那个才是文件的真正宿主目录,后面的只是一个软连接。
包括区域文件,真正的宿主目录在/var/named/chroot//var/named 这个目录下面,在/var/named目录下的只是个软连接,所以我们做的时候也要做软连接。
这个是模版,根据这个模版我们建一个的区域文件。
主配置文件弄好了,下面我们来设置我们的区域文件。
我们刚才在主配置文件设置了两个区域文件,一个是.zone和.local 前面那个是正向解析文件,后面那个是反向解析的。
我们现在去建区域文件。
在/var/named下面我们可以看到有很多默认的区域配置文件。
我们就拿一个来做模版。
同样复制一个反向解析的模版。
进行编辑。
配置示例DNS-BIND9
DNS-BIND 域名服务器安装与配置简介讲义国防科大计算机学院2004年6DNS-BIND 安装与配置简介1. BIND安装与配置BIND是目前最著名的 DNS(The Internet Domain Name System) 服务器――BIND(The Berkeley Internet Name Domain)。
1.1. 下载下载 BIND最新代码:/index.pl?/sw/bind/1.2. 安装(1)、安装$ gzip -d bind-9.2.4rc6.tar.gz$ tar xvf bind-9.2.4rc6.tar$cd bind-9.2.4rc6$ ./configure --prefix=/usr/local/bind$ make depend$ make$ make install(2)、创建链接$ mkdir -p /usr/local/bind/var/run$ mkdir -p /usr/local/bind/var/named$ mkdir -p /usr/local/bind/etc$ touch /usr/local/bind/etc/named.conf$ touch /usr/local/bind/etc/rndc.conf$ ln -sf /usr/local/bind/etc/named.conf /etc/named.conf$ ln -sf /usr/local/bind/etc/rndc.conf /etc/rndc.conf$ ln -sf /usr/local/bind/var/named /var/$ ln -sf /usr/local/bind/sbin/rndc /usr/sbin/rndc$ ln -sf /usr/local/bind/sbin/named /usr/sbin/named1.3. 配置 DNS1.3.1. BIND 的配置文件下面假定我们需要建立一台企业网的DNS主服务器,应用条件如下:(a)企业使用的二个C类网段地址:192.168.25.xxx, 192.168.26.yyy(b)企业域名为 ,并已注册,主域名服务器地址 192.168.25.188,主机名为 ,辅域名服务器地址 192.168.25.168,外部域名服务器为:202.106.0.98(c) 企业的 WWW服务器地址为 192.168.25.1, 名字为(d) 企业的 Mail 服务器地址为 192.168.25.2, 名字为(e) 企业的 Database 服务器地址为 192.168.25.3, 名字为(f) 企业的 ftp 服务器地址为 192.168.25.3, 名字为(g) 企业的 proxy 服务器地址为 192.168.25.4, 名字为(h)拒绝服务的二个C类网段地址:192.0.0.xxx, 192.1.0.yyy(i)企业网通过路由器与Internet连接(1)、创建共享密钥BIND 提供了一种安全机制――TSIG(Transaction SIGnatures ),使用共享密钥进行安全的DNS通知、更新。
Bind9编译安装
Bind9 编译安装一、准备 BIND9 源代码/index.pl将最新的 BIND9 源代码包下载到 /usr/local/src 下。
二、编译安装 BIND9# cd /usr/local/src# tar xzvf bind-9*.gz# cd bind-9*# ./configure \--prefix=/usr/local/bind9 \--enable-threads \--enable-static \--enable-ipv6=no注:如果需要支持 IPv6 ,则将 --enable-ipv6=no 改为 --enable-ipv6=yes 。
# make# make install三、配置 BIND9 环境1. 建立 BIND9 需要的目录(1) 配置文件目录:# mkdir /usr/local/bind9/etc(2) 域数据文件目录:# mkdir -p /usr/local/bind9/var/named(3) BIND9 运行时目录:# mkdir /usr/local/bind9/var/run(4) BIND9 日志目录# mkdir /usr/local/bind9/var/logs2. 创建 BIND9 系统文件:# touch /usr/local/bind9/var/run/named.pid# touch /usr/local/bind9/var/named_dump.db# touch /usr/local/bind9/var/run/named.stats3. 下载最新的 named.ca 根 DNS 服务器数据文件# cd /usr/local/bind9/var/named# wget ftp:///domain/named.root# mv named.root named.ca四、创建 BIND9 配置文件1. 创建包含root server 和 locahost. 以及 . 域的默认 named.conf 文件(见附带的 named.conf);# vi /usr/local/bind9/etc/named.conf2. 创建 localhost. 域数据文件和反解文件(见附带的 localhost.zone、localhost.rzone);# vi /usr/local/bind9/var/named/localhost.zone# vi /usr/local/bind9/var/named/localhost.rzone3. 创建 . 域数据文件和反解文件(见附带的 .zone、localhost.rzone);# vi /usr/local/bind9/var/named/.zone# vi /usr/local/bind9/var/named/.rzone五、配置 RNDC# /usr/local/bind9/sbin/rndc-confgen > /usr/local/bind9/etc/rndc.conf打开刚刚创建的 rndc.conf ,查看 # End of rndc.conf 以下部分的注释信息,按照说明对 named.conf 进行修改。
BIND简易教程(1):安装及基本配置
BIND简易教程(1):安装及基本配置⾸先,为什么说是简易教程呢?因为BIND的功能实在太多,全写出来的话要连载好久,我觉得我没有那么多精⼒去写;⽽我了解的仅仅是有限的⼀点点,不敢造次。
百度上的⽂章也是⼀抓⼀⼤把呐!所以,教点基本使⽤⽅法,有需求的同学可以再翻翻BIND管理员⼿册。
那么,还是直接开始说正题吧。
本次还是像PowerDNS⼀样是⼀个连载,写三篇。
⽬录:BIND简易教程(1):安装及基本配置(本篇)⾸先说说安装。
安装是⾮常简单的,在ubuntu下直接apt-get install bind9 bind9-doc dnsutilstar zxvf bind-9.10.4-P2.tar.gzcd bind-9.10.4-P2sudo ./configure --sysconfdir=/etc/bind --with-libtoolsudo makesudo make installconfigure的参数视⾃⼰具体情况⽽定。
我习惯把所有配置⽂件放在/etc/bind下⾯,就加上--sysconfdir,如果不加的话,name.conf默认在/etc 下⾯,很乱;--with-libtool据说加上之后能让编译出来的⽂件是.so⽽⾮.a,占⽤空间较⼩。
不过我加上这个参数之后make编译会报错,我对这种编译⽅式不是很熟,所以就放弃了。
安装还是很简单的。
装好的bind主要由三部分构成:解析库(配置⽂件)、解析器(named)、管理器(rndc),解析库是以named.conf为中⼼的⼀堆配置⽂件,具体配置⽅法我们后⾯讲;named程序是bind的后台进程,是负责解析域名的;rndc是bind的远程管理程序,可以动态的添加/删除域名,查看bind状态,重新加载等。
在这⾥,我们主要使⽤的是解析库。
bind配置⽂件提供了两个⾮常巧妙的语法规则:注释和include。
注释⽤// 和# 均可,满⾜了不同程序猿的喜好;include则可以将不同类型的配置分开来,放在不同的⽂件中。
DNS原理与解析+BIND9编译安装与配置
DNS原理与解析+BIND9编译安装与配置1. DNS的本质是什么 Domain Name System = DNS(域名系统)其实就是⼀个数据库,适⽤于TCP/IP程序的分层的,分布式的数据库,同时也是⼀种重要的⽹络协议。
DNS存储了⽹络中的IP地址与对应主机的信息,邮件路由信息和其他⽹络应⽤⽅⾯的信息,⽤户通过询问解决库(解决库发送询问并对DNS回应进⾏说明)在DNS上查询信息。
1.1 DNS的作⽤是什么 DNS是⽹络分层⾥的应⽤层协议,事实上他是为其他应⽤层协议⼯作的,简单来说就是把域名,或者说主机名转化为IP地址(同时也提供反向域名查询功能),类似字典,⽐如访问实际访问的是它的IP地址,因为机器识别的是拥有固定格式和含义的IP地址,⽽域名却是千奇百怪,甚⾄可以是中⽂,不利于识别。
还有⽐如公司内部的域验证,通过分配给员⼯的域账号登录内⽹就必须通过DNS来找到域名权限服务器,来认证⾝份,故有些书上说:DNS是Internet⾥不可缺少的东西。
1.2 使⽤host命令进⾏DNS查询 host命令⽤来DNS查询。
如果命令参数是域名,则输出关联的IP;如果命令参数是IP,则输出关联的域名。
[root@study ~]# host is an alias for . has address 110.242.68.3 has address 110.242.68.4[root@study ~]# host 110.242.68.33.68.242.110.in-addr.arpa domain name pointer .1.3 为什么叫域名系统(DNS),什么是域名 ⼈和⼈要相互认识,需要名字作为辅助,⽽对于⽹络世界,在Internet内也需要⼀种命名系统来做类似的事情,该系统使⽤了域来划分,任何⼀个⽹络⾥的主机(或者路由器)都有独⼀⽆⼆的域名(类似国家代码),域⼜能继续划分为⼦域(类似每个国家有不同的省份),⼦域还能继续划分(每个省都有⾃⼰的各个城市的代码)......在Internet内对应的就是顶级域名(com,net,cn,org等等),⼆级域名......注意这仅仅是⼀种逻辑的划分。
bind9dns服务器搭建
Minimum )
Hostname
存放本 Zone 的域名服务器的主机名
Contact
管理域的管理员的邮件地址
SerialNumber
本区配置数据的序列号,用于从服务器判断何时获取最新的区数据
改写本地win的dns为192.168.98.3
C:\Users\Administrator>nslookup
默认服务器: UnKnown
Address: 192.168.98.13
测试dns服务器配置中的ip
>
服务器: UnKnown
Address: 192.168.98.13
nc IN A 192.168.98.49
反向:
(2)cat db.192
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA . . (
119.75.218.70
Aliases:
反向测试:
> 192.168.98.30
服务器: UnKnown
Address: 192.168.98.13
名称:
Address: 192.168.98.30
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS .
@ IN A 192.168.98.13
oa IN A 192.168.98.30
Windows XP 上安装 Bind9 DNS 服务器笔记
Windows XP 上安装Bind9 DNS 服务器笔记文章来源:/windows-xp-%E4%B8%8A%E5%AE%89%E8%A3%85-bind9-dns-%E6%9 C%8D%E5%8A%A1%E5%99%A8%E7%AC%94%E8%AE%B0.html1,从https:///downloadables/11下载得到BIND9.6.0-P1.zip2,解压,运行BindInstall.exe ,安装位置不变,服务的账户名为named 不变,密码随便设置,我设置的是123456 。
下面的三个选项勾选前两个即可。
点击Install,如图:Bind9 安装界面3,开Cmd,转到C:\Windows\system32\dns\bin 目录下,运行rndc-confgen.exe 产生默认的配置文件>rndc-confgen.exe >temp.conf>cat temp.conf# Start of rndc.confkey “rndc-key” {algorithm hmac-md5;secret “GnEDdo4iFTiPxEfvQJYE/Q==”;};options {default-key “rndc-key”;default-server 127.0.0.1;default-port 953;};# End of rndc.conf# Use with the following in named.conf, adjusting the allow list as needed:# key “rn dc-key” {# algorithm hmac-md5;# secret “GnEDdo4iFTiPxEfvQJYE/Q==”;# };## controls {# inet 127.0.0.1 port 953# allow { 127.0.0.1; } keys { “rndc-key”; };# };# End of named.conf4,在C:\Windows\System32\dns\etc\ 目录下建立rndc.conf文件,把刚才生成的temp.conf的前半部分复制到里面>cat rndc.conf# Start of rndc.confkey “rndc-key” {algorithm hmac-md5;secret “khlj1YwaAoj7PuH+zFpkJA==”;};options {default-key “rndc-key”;default-server 127.0.0.1;default-port 953;};# End of rndc.conf5,在C:\Windows\System32\dns\etc\ 目录下建立named.conf文件,把刚才生成的temp.conf的后半部分复制到里面,并修改为如下样式>cat named.confoptions {forwarders {202.112.14.151;218.6.200.139;208.67.222.222;202.112.14.161;61.139.2.69;208.67.220.220;};allow-query {any;};allow-transfer {any;};};key “rndc-key” {algorithm hmac-md5;secret “GnEDdo4iFTiPxEfvQJYE/Q==”;};controls {inet 127.0.0.1 port 953allow { 127.0.0.1; } keys { “rndc-key”; };};zone “.” {type hint;file “c:\windows\system32\dns\etc\named.root”;};zone “localhost”{type master;file “c:\windows\system32\dns\etc\localhost.zone”;}6,named.root文件可以在这里获得: /zones/named.root>cat named.root; This file holds the information on root name servers needed to; initialize cache of Internet domain name servers; (e.g. reference t his file in the “cache . ”; configuration file of BIND domain name servers).;; This file is made available by InterNIC; under anonymous FTP as; file /domain/named.root; on server ; -OR- ;; last update: Dec 12, 2008; related version of root zone: 2008121200;; formerly ;. 3600000 IN NS .. 3600000 A 198.41.0.4. 3600000 AAAA 2001:503:BA3E::2:30 ;; FORMERLY ;. 3600000 NS .. 3600000 A 192.228.79.201;; FORMERLY ;. 3600000 NS .. 3600000 A 192.33.4.12;; FORMERLY ;. 3600000 NS .. 3600000 A 128.8.10.90;; FORMERLY ;. 3600000 NS .. 3600000 A 192.203.230.10;; FORMERLY ;. 3600000 NS .. 3600000 A 192.5.5.241. 3600000 AAAA 2001:500:2F::F;; FORMERLY ;. 3600000 NS .. 3600000 A 192.112.36.4;; FORMERLY ;. 3600000 NS .. 3600000 A 128.63.2.53. 3600000 AAAA 2001:500:1::803F:235 ;; FORMERLY ;. 3600000 NS .. 3600000 A 192.36.148.17;; OPERATED BY VERISIGN, INC.;. 3600000 NS .. 3600000 A 192.58.128.30. 3600000 AAAA 2001:503:C27::2:30;; OPERATED BY RIPE NCC;. 3600000 NS .. 3600000 A 193.0.14.129. 3600000 AAAA 2001:7FD::1;; OPERATED BY ICANN;. 3600000 NS .. 3600000 A 199.7.83.42. 3600000 AAAA 2001:500:3::42;; OPERATED BY WIDE;. 3600000 NS .. 3600000 A 202.12.27.33. 3600000 AAAA 2001:DC3::35; End of File7,local.zone内容示例如下:>cat local.zone$TTL 86400$ORIGIN localhost.@ 1D IN SOA @ root (42 ; serial (d. adams)3H ; refresh15M ; retry1W ; expiry1D ) ; minimum1D IN NS @1D IN A 127.0.0.18,named.local内容示例如下:>cat named.local$TTL 86400@ IN SOA localhost. root.localhost. (1997022700 ; Serial28800 ; Refresh14400 ; Retry3600000 ; Expire86400 ) ; MinimumIN NS localhost.1 IN PTR localhost9,修改C:\Windows\system32\dns\etc 权限(现在文件夹选项里取消“使用简单文件共享”),如下图所示:添加用户查找用户设置权限10,在服务中开启ISC Bind 服务,并将本地连接的首选服务器更换为127.0.0.1 即可。
Linux下源代码编译bind9.6安装和配置DNS服务器
Linux下源代码编译bind9.6安装和配置DNS服务器Linux下源代码编译bind9.6安装和配置DNS服务器/products/BIND/ 下载bind最新bind-9.6.1rc1.tar.gz#./configure --prefix=/usr/local/named --enable-threads #--enable-threads开启多线程处理能力#make#make install#cd /var/named这是bsd的一个简单配置文件:options {directory "/var/named";#我去哪找解析文件pid-file "/var/run/named/pid";进程文件放这吧dump-file "/var/dump/named_dump.db";statistics-file "/var/stats/named.stats";listen-on { 192.168.0.83; };监听notify yes;logging {channelquery_log {file "query.log";日志名severity info;级别和syslog差不多的那种print-time yes;print-category yes;};category queries {#分类Once a customized channel has been defined, a category option is used to categorize the channel and begin logging when named is restartedquery_log;};};forwarders {221.228.255.1;159.226.5.65;};#我解析不了就给他};include "acl.conf";view "test" {match-clients {xxx; }; #在acl.conf中定义recursion no;zone "." {type hint;file "named.root"; #dig >named.root或者这下:ftp:///domain/};全球的根域名服务器zone "0.0.127.IN-ADDR.ARPA" {type master;file "localhost.rev"; #sh make-localhost或:$TTL 86400 @ IN SOA @ root.localhost (1 ; serial28800 ; refresh 告诉某个区的辅域名服务器相隔多久检查该区的数据是否是最新的7200 ; retry 如果辅域名服务器超过刷新时间后无法访问主域名服务器那么就每隔一段重试时间就试着联系一次,重试时间通常比刷新时间要短604800 ; expire 如果期满时间内辅助域名服务器还是无法与主域名服务器联系上那么就宣布这个区失效,停止关于该区的任何查询应答86400 ; ttl否定缓存ttl值)官方推荐:刷新:24小时重试2小时期满30天默认ttl 4天IN NS localhost.@ IN A 127.0.0.1};zone ""{type master;file "fashionfree.fwd";};#zone "0.168.192.in-addr.arpa" {# type master;# file "master/test75.rev";#};使用rndc-confgen>rndc.conf生成key文件然后通过tail -n10 rndc.conf | head -n9 | sed -e s/#\ //g >>named.conf将key文件写入name.confkey "rndc-key" {algorithm hmac-md5;secret "YMVkQroow6D4rYGffjOkQw==";};controls {inet 127.0.0.1/* port 953allow { 127.0.0.1/any; } keys { "rndc-key"; };};这决定rndc用户要用什么加密密钥来验证身份才能给域名服务器发送控制消息rndc是bind 软件引进的远程控制通道,代替unix信号来控制named 进程,可以用来对配置进行重新载入#named -c named.confnotify — Controls whether named notifies the slave servers when a zone is updated. It accepts the following options:yes — Notifies slave servers.no — Does not notify slave servers.explicit — Only notifies slave servers specified in an also-notify list within a zone statement.allow-update — Specifies the hosts that are allowed to dynamically update information in their zone. The default is to deny all dynamic update requests.acl.conf:acl "CNC" {58.16.0.0/16;xx.xx.xx.xx/xx;}allow-recursion设定哪台主机可以进行递归查询。
使用bind设置DNS服务器的方法
使⽤bind设置DNS服务器的⽅法DNS(Domain Name Server,域名服务器)是进⾏域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。
域名系统Domain Name System,我们更通常称为 DNS 的系统,可以将域名翻译或转换为与该域关联的 IP 地址。
DNS 是能够让你通过名称找到⾃⼰喜欢的⽹站⽽不是在浏览器中输⼊ IP 地址的原因。
本指南将向你展⽰如何配置⼀个主 DNS 系统以及客户端。
以下是本⽂⽰例中使⽤的系统细节:dns01.fedora.local (192.168.1.160)- 主 DNS 服务器client.fedora.local (192.168.1.136)- 客户端DNS 服务器配置使⽤ sudo 安装 bind 包:$ sudo dnf install bind bind-utils -ybind 包提供了 /etc/named.conf配置⽂件,来供你配置 DNS 服务器。
编辑 /etc/named.conf ⽂件:sudo vi /etc/named.conf查找以下⾏:listen-on port 53 { 127.0.0.1; };添加主 DNS 服务器的 IP 地址,如下所⽰:listen-on port 53 { 127.0.0.1; 192.168.1.160; };查找以下⾏:allow-query { localhost; };添加本地⽹络范围。
该⽰例系统使⽤的 IP 地址在 192.168.1.X 的范围内。
指定如下:allow-query { localhost; 192.168.1.0/24; };指定转发和反向区域。
区域⽂件Zone file就是具有系统上 DNS 信息(例如 IP 地址和主机名)的⽂本⽂件。
转发区域⽂件forward zone file使得将主机名转换为 IP 地址成为可能。
DNS(bind)服务器安装和配置
DNS(bind)服务器安装和配置⼀、前⾔DNS 域名系统(英⽂:Domain Name System,缩写:DNS)是因特⽹的⼀项服务。
它作为将域名和IP地址相互映射的⼀个分布式数据库,能够使⼈更⽅便地访问互联⽹。
DNS使⽤TCP和UDP端⼝53(TCP 53端⼝⽤于dns服务器⾃⼰同步数据,UDP 53端⼝⽤于查询解析)。
是⼀个域名服务,应⽤层协议。
DNS查询原理及名词解释:dns查询:迭代查询、递归查询如下图,从客户端到本地DNS服务器是属于递归查询,⽽DNS服务器之间的交互查询就是迭代查询。
总结:1.递归查询:⼀般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本⾝不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;2.迭代查询(反复查询):⼀般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的⾝份,向其它根域名服务器继续发出查询请求报⽂(即替主机继续查询)”也就是递归就是交给下⼀个服务器解决(下⼀个就相当于客户了,所以他也可以选择去递归,或者迭代)(迭代就是返回给当前的,当前⾃⼰再去处理)递归即递给服务器,所有操作都有服务器来完成。
DNS解析正向解析区域和反向解析区域正向解析是将域名映射为IP地址--> 202.108.22.5反向解析是将IP地址映射为域名202.108.22.5 --> 注意:⼆者的名称空间,⾮为同⼀个空间,即⾮为同⼀棵树;因此,也不是同⼀个解析库;主-从DNS服务器主DNS服务器:维护所负责解析的域数据库的那台服务器;读写操作均可进⾏;从DNS服务器:从主DNS服务器那⾥或其它的从DNS服务器那⾥“复制”⼀份解析库;但只能进⾏读操作;“复制”操作的实施⽅式:序列号:serial, 也即是数据库的版本号;主服务器数据库内容发⽣变化时,其版本号递增;刷新时间间隔:refresh, 从服务器每多久到主服务器检查序列号更新状况;重试时间间隔:retry, 从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔;过期时长:expire,从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据;停⽌提供服务;否定答案的缓存时长:主服务器”通知“从服务器随时更新数据;区域传送:全量传送:axfr, 传送整个数据库;增量传送:ixfr, 仅传送变量的数据;区域(zone)和域(domain):域:FQDN --> IP正向解析库;区域IP --> FQDN反向解析库;区域区域数据库⽂件:资源记录:Resource Record, 简称rr;记录有类型:A, AAAA, PTR, SOA, NS, CNAME, MXSOA:Start Of Authority,起始授权记录;⼀个区域解析库有且只能有⼀个SOA记录,⽽且必须放在第⼀条;NS:Name Service,域名服务记录;⼀个区域解析库可以有多个NS记录;其中⼀个为主的;A: Address, 地址记录,FQDN --> IPv4;AAAA:地址记录, FQDN --> IPv6;CNAME:Canonical Name,别名记录;PTR:Pointer,IP --> FQDNMX:Mail eXchanger,邮件交换器;优先级:0-99,数字越⼩优先级越⾼;资源记录的定义格式:语法:name [TTL] IN RR_TYPE valueSOA:name: 当前区域的名字;例如”.”,或者“2.3.4.in-addr.arpa.”;value:有多部分组成(1) 当前区域的区域名称(也可以使⽤主DNS服务器名称);(2) 当前区域管理员的邮箱地址;但地址中不能使⽤@符号,⼀般使⽤点号来替代;(3) (主从服务协调属性的定义以及否定答案的TTL)例如:. 86400 IN SOA . . (2017010801 ; serial2H ; refresh10M ; retry1W ; expire1D ; negative answer ttl)View CodeNS:name: 当前区域的区域名称value:当前区域的某DNS服务器的名字,例如.;注意:⼀个区域可以有多个ns记录;例如:. 86400 IN NS .. 86400 IN NS .MX:name: 当前区域的区域名称value:当前区域某邮件交换器的主机名;注意:MX记录可以有多个;但每个记录的value之前应该有⼀个数字表⽰其优先级;例如:. IN MX 10 .. IN MX 20 .A:name:某FQDN,例如.value:某IPv4地址;例如:. IN A 1.1.1.1. IN A 1.1.1.2. IN A 1.1.1.1AAAA:name:FQDNvalue: IPv6PTR:name:IP地址,有特定格式,IP反过来写,⽽且加特定后缀;例如1.2.3.4的记录应该写为4.3.2.1.in-addr.arpa.; value:FQND例如:4.3.2.1.in-addr.arpa. IN PTR .CNAME:name:FQDN格式的别名;value:FQDN格式的正式名字;例如:. IN CNAME .注意:(1) TTL可以从全局继承;(2) @表⽰当前区域的名称;(3) 相邻的两条记录其name相同时,后⾯的可省略;(4) 对于正向区域来说,各MX,NS等类型的记录的value为FQDN,此FQDN应该有⼀个A记录;⼆、安装DNS(bind)服务器配置好⽹络和yum源同步服务器时间主机及⾓⾊分配:安装软件包,备份配置⽂件[root@master ~]# yum -y install bind-utils bind bind-devel[root@master ~]# cp /etc/named.conf /etc/named.conf-bak配置bind成为主服务器编辑主配置⽂件:vim /etc/named.confoptions {listen-on port 53 { 192.168.0.11; 127.0.0.1; }; #或者any// listen-on-v6 port 53 { ::1; }; #没有IPv6地址,所以先注释directory "/var/named"; #指定资源记录⽬录位置dump-file "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query { any; };recursion yes; #允许递归dnssec-enable yes;// dnssec-validation yes;/* Path to ISC DLV key */// bindkeys-file "/etc/named.iscdlv.key";// managed-keys-directory "/var/named/dynamic";};编辑区域配置⽂件并配置正向区域⽂件DNS zone命名规范:1.26个英⽂字母2.0-9⼗个数字3.-(英⽂连词号)4.最多63字节长度如果不符合以上条件bind不⽀持,如果想要强⾏使⽤,在master-view⽂件上配置 check-names ignore;[root@master ~]# tail -4 /etc/named.rfc1912.zones #添加⼀个区域zone "" IN { #引号中为⾃定义名称type master; #配置类型为masterfile ".zone"; #指定⽂件名称,路径在directory指定的⽬录下};[root@master ~]# cd /var/named/[root@master named]# vim .zone$TTL 86400$ORIGIN .@ IN SOA . (20171126011H5M7D1D ) IN NS ns1 #指定该名由哪个DNS服务器来进⾏解析 IN NS ns2 IN MX 10 mx1ns1 IN A 192.168.0.11ns2 IN A 192.168.0.12mx1 IN A 192.168.0.13www IN A 192.168.0.11www IN A 192.168.0.12ftp IN CNAME www检查语法[root@master named]# named-checkconf #检查全部[root@master named]# named-checkzone "" /var/named/.zone #只检查指定zone zone /IN: loaded serial 2017112601OK设置权限(当前⽤户为root,bind服务器⽤户为named,所以需要设置named⽤户对新建⽴的⽂件有读取权限) [root@master named]# chown :named .zone[root@master named]# chmod 640 .zone[root@master named]# ll .zone-rw-r----- 1 root named 288 11⽉2811:35 .zone启动服务[root@master named]# service named start #启动Generating /etc/rndc.key: [确定]启动 named: [确定][root@master named]# netstat -tunlp|grep :53 #检查端⼝tcp 00192.168.0.11:530.0.0.0:* LISTEN 31056/namedtcp 00127.0.0.1:530.0.0.0:* LISTEN 31056/namedudp 00192.168.0.11:530.0.0.0:* 31056/namedudp 00127.0.0.1:530.0.0.0:* 31056/named[root@master named]# rndc status #检查状态version: 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4CPUs found: 1worker threads: 1number of zones: 20debug level: 0xfers running: 0xfers deferred: 0soa queries in progress: 0query logging is OFFrecursive clients: 0/0/1000tcp clients: 0/100server is up and running测试:测试⼯具主要有三个dig host nslookup,具体⽤法有兴趣可以⾃⼰查找资料[root@master named]# dig -t A @192.168.0.11; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> -t A @192.168.0.11;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13376;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 #aa代表权威应答;; QUESTION SECTION:;. IN A;; ANSWER SECTION:. 86400 IN A 192.168.0.11 #解析结果. 86400 IN A 192.168.0.12;; AUTHORITY SECTION:. 86400 IN NS .. 86400 IN NS .;; ADDITIONAL SECTION:. 86400 IN A 192.168.0.11. 86400 IN A 192.168.0.12;; Query time: 0 msec;; SERVER: 192.168.0.11#53(192.168.0.11);; WHEN: Tue Nov 2811:44:362017;; MSG SIZE rcvd: 135配置反向区域:[root@master named]# vim /etc/named.rfc1912.zones[root@master named]# tail -4 /etc/named.rfc1912.zones #在区域配置⽂件最后添加如下四⾏zone "0.168.192.in-addr.arpa" IN { #0.168.192表⽰解析⽹段不变的字段,这⾥是因为实验只解析192.168.0.0⽹段type master;file "192.168.0.zone";}; [root@master named]# vim 192.168.0.zone[root@master named]# cat 192.168.0.zone$TTL 86400$ORIGIN 0.168.192.in-addr.arpa.@ IN SOA . (20171126011H5M7D1D )IN NS .IN NS .11 IN PTR .11 IN PTR .12 IN PTR .12 IN PTR .12 IN PTR .同样需要配置⽂件的权限[root@master named]# chmod 640192.168.0.zone[root@master named]# chown :named 192.168.0.zone[root@master named]# named-checkconf #检查语法[root@master named]# rndc reload #启动server reload successful⽇志可以查看/var/log/messages[root@master named]# tail /var/log/messagesNov 2811:58:49 localhost named[31056]: received control channel command 'reload'Nov 2811:58:49 localhost named[31056]: loading configuration from'/etc/named.conf'Nov 2811:58:49 localhost named[31056]: using default UDP/IPv4 port range: [1024, 65535]Nov 2811:58:49 localhost named[31056]: using default UDP/IPv6 port range: [1024, 65535]Nov 2811:58:49 localhost named[31056]: sizing zone task pool based on 8 zonesNov 2811:58:49 localhost named[31056]: Warning: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones Nov 2811:58:49 localhost named[31056]: reloading configuration succeededNov 2811:58:49 localhost named[31056]: zone 0.168.192.in-addr.arpa/IN: loaded serial 2017112601Nov 2811:58:49 localhost named[31056]: reloading zones succeededNov 2811:58:49 localhost named[31056]: zone 0.168.192.in-addr.arpa/IN: sending notifies (serial 2017112601)测试是否可以解析:[root@master named]# host -t ptr 192.168.0.11192.168.0.11Using domain server:Name: 192.168.0.11Address: 192.168.0.11#53Aliases:11.0.168.192.in-addr.arpa domain name pointer .11.0.168.192.in-addr.arpa domain name pointer .[root@master named]# dig -x 192.168.0.12 @192.168.0.11; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> -x 192.168.0.12 @192.168.0.11;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54159;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2;; QUESTION SECTION:;12.0.168.192.in-addr.arpa. IN PTR;; ANSWER SECTION:12.0.168.192.in-addr.arpa. 86400 IN PTR .12.0.168.192.in-addr.arpa. 86400 IN PTR .12.0.168.192.in-addr.arpa. 86400 IN PTR .;; AUTHORITY SECTION:0.168.192.in-addr.arpa. 86400 IN NS .0.168.192.in-addr.arpa. 86400 IN NS .;; ADDITIONAL SECTION:. 86400 IN A 192.168.0.11. 86400 IN A 192.168.0.12;; Query time: 0 msec;; SERVER: 192.168.0.11#53(192.168.0.11);; WHEN: Tue Nov 2812:01:572017;; MSG SIZE rcvd: 174三、配置slave服务器及主从同步检测是否可以和主服务器进⾏全量区域传送(默认是允许所有,不安全,后⾯会介绍如何配置只允许指定的主机可以传送)[root@slave ~]# dig -t axfr @192.168.0.11; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t axfr @192.168.0.11;; global options: +cmd. 86400 IN SOA . . 2017112601360030060480086400 . 86400 IN NS .. 86400 IN NS .. 86400 IN MX 10 .. 86400 IN CNAME .. 86400 IN A 192.168.0.13. 86400 IN A 192.168.0.11. 86400 IN A 192.168.0.12. 86400 IN A 192.168.0.11. 86400 IN A 192.168.0.12. 86400 IN SOA . . 2017112601360030060480086400 ;; Query time: 2 msec;; SERVER: 192.168.0.11#53(192.168.0.11);; WHEN: Tue Nov 2812:04:202017;; XFR size: 11 records (messages 1, bytes 281)安装软件包[root@slave ~]# yum install bind-utils bind bind-devel -y编辑主配置⽂件options {listen-on port 53 { 192.168.0.12; 127.0.0.1; };// listen-on-v6 port 53 { ::1; };directory "/var/named";dump-file "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query { any; };recursion yes;// dnssec-enable yes;dnssec-validation yes;// dnssec-lookaside auto;/* Path to ISC DLV key */// bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";};编辑zone配置⽂件[root@slave ~]# tail -4 /etc/named.rfc1912.zonestype slave; #类型为slavemasters { 192.168.0.11; }; #指定master的地址file "slaves/.zone"; #指定同步后⽂件的存放位置};启动服务[root@slave ~]# service named startGenerating /etc/rndc.key: [确定]启动 named: [确定][root@slave ~]# netstat -tunlp|grep 53注意: 要想主dns变更时通知从服务器,主dns上正向解析必须配置NS记录指定到从服务器,如当前主dns配置slave服务器配置完成(仅对),进⾏测试[root@slave slaves]# ll /var/named/slaves #查看主dnszone⽂件是否传输到slave服务器-rw-r--r-- 1 named named 491 11⽉2813:27 .zone可以查看⼀下,⽐我们⾃⼰定义的貌似要详细[root@slave slaves]# cat .zone$ORIGIN .$TTL 86400 ; 1 day IN SOA . . (2017112601 ; serial3600 ; refresh (1 hour)300 ; retry (5 minutes)604800 ; expire (1 week)86400 ; minimum (1 day))NS .NS .MX 10 .$ORIGIN .ftp CNAME wwwmx1 A 192.168.0.13ns1 A 192.168.0.11ns2 A 192.168.0.12www A 192.168.0.11A 192.168.0.12现在再测试master服务器变更,slave服务器是否同步添加⼀条记录,删除⼀条记录删除www对应的192.168.0.12的记录,添加⼀条pop3的记录,同时⼿动将序列号+1重载服务,⽣产环境不建议restart[root@master named]# named-checkconf[root@master named]# rndc reloadserver reload successful[root@master named]# tail /var/log/messagesNov 2813:43:11 localhost named[31056]: using default UDP/IPv6 port range: [1024, 65535]Nov 2813:43:11 localhost named[31056]: sizing zone task pool based on 8 zonesNov 2813:43:11 localhost named[31056]: Warning: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones Nov 2813:43:11 localhost named[31056]: reloading configuration succeededNov 2813:43:11 localhost named[31056]: reloading zones succeededNov 2813:43:11 localhost named[31056]: zone /IN: loaded serial 2017112602Nov 2813:43:11 localhost named[31056]: zone /IN: sending notifies (serial 2017112602)Nov 2813:43:11 localhost named[31056]: client 192.168.0.12#15508: query '/SOA/IN' deniedNov 2813:43:11 localhost named[31056]: client 192.168.0.12#45259: transfer of '/IN': AXFR-style IXFR started #开始传输Nov 2813:43:11 localhost named[31056]: client 192.168.0.12#45259: transfer of '/IN': AXFR-style IXFR ended #结束传输在slave服务器上查看变更是否同步[root@slave slaves]# cat /var/named/slaves/.zone$ORIGIN .$TTL 86400 ; 1 day IN SOA . . (2017112602 ; serial3600 ; refresh (1 hour)300 ; retry (5 minutes)604800 ; expire (1 week)86400 ; minimum (1 day))NS .NS .MX 10 .$ORIGIN .ftp CNAME wwwmx1 A 192.168.0.13ns1 A 192.168.0.11ns2 A 192.168.0.12pop3 A 192.168.0.12 #pop3已经同步过来了www A 192.168.0.11主从复制注意事项:1、应当为⼀台独⽴的名称服务器2、主服务器的区域解析库⽂件中必须有⼀条NS记录指向从服务器3、从服务器只需要定义区域,⽽⽆需提供解析库⽂件,解析库⽂件应当放置在/var/named/slaves⽬录下4、主从服务器时间应该同步5、bind程序应当保持⼀致,如果不⼀致,应当从⾼,主低6.要想主服务器变更后⽴即通知从服务器,应当⼿动将主区域解析库⽂件的序列号+1反向区域同步:配置过程和正向类似,主dns上反向解析必须配置NS记录指定到从服务器地址[root@localhost ~]# tail -5 /etc/named.rfc1912.zones #添加⼀个新的zonezone "0.168.192.in-addr.arpa" IN {type slave;masters { 192.168.0.11; };file "slaves/192.168.0.zone";};重载named-checkconfrndc reload主服务器变更记录,测试从服务器是否同步,此处忽略。
Bind9安装设置指南(dns服务器)
Bind9安装设置指南(dns服务器)Bind9 安装设置指南你可以免费:拷贝、分发、呈现和表演当前作品制作派生作品是必须基于以下条款:署名。
你必须明确标明作者的名字。
.非商业用途。
你不可将当前作品用于商业目的。
保持一致。
如果你基于当前作品更改、变换或构造新作品,你应当按照与当前协议完全相同的协议分发最终作品。
对于任何二次使用或分发,你必须让其他人明确当前作品的授权条款在得到作者的明确允许下,这里的某些条款可以放弃目录[隐藏]1 HOWTO Setup BIND9 DNS Server (如何安装设置 Bind9 DNS服务器)o 1.1 Repositories 软件库o 1.2 Installing BIND9 (安装 BIND9)o1.3 BIND9 Scenarios1.3.1 Caching Server(缓冲服务器)1.3.2 Master Server(主服务器)1.3.3 Slave Server(从服务器)1.3.4 Hybrids(混和模式)1.3.5 Stealth Servers(私密服务器)1.4 DNS Record Types(DNS 记录类型)1.4.1 Address Records(地址记录)1.4.2 Alias Records(别名记录)1.4.3 Mail Exchange Records(邮件交换记录)1.4.4 Name Server Records(域名服务器记录)oo 1.5 Configuring BIND9(配置 BIND9)1.5.1 Caching Server(缓冲服务器)1.5.2 Master Server(主服务器)1.5.3 Slave Server(从服务器)o 1.6 Chrooting BIND91.6.1 The Chroot Enviroment(Chroot 环境)1.6.2 BIND9's Configuration(BIND9 的配置)1.6.3 Ubuntu's syslogd Daemon Configuration (Ubuntu 的 syslogd 守护进程配置)1.6.4 Restart the syslog server and BIND9(重启syslog 服务及 BIND9)1.7 Starting, Stopping, and Restarting BIND9(开始、停止和重启 BIND9)1.7.1 Status(状态)1.8 Tips & Tricks(提示与技巧)1.9 Additional Possibilities(附加功能)1.10 Further Information(更多信息)1.10.1 Online Recources(在线资源)1.10.2 Printed Resources(印刷资源)oooo[编辑]HOWTO服务器)原文出处:原文作者:Setup BIND9 DNS Server (如何安装设置 Bind9 DNS授权许可:创作共享协议 Attribution-ShareAlike 2.0GNU 自由文档许可证翻译人员:FireHare校正人员:purewind贡献人员:适用版本:本指南是写给那些想学习如何配置和维护DNS 服务器的人,例如为某个网络或者 DNS zones(DNS 域)提供 Domain Name(域名)服务[编辑]Repositories软件库BIND9 已经包含在Ubuntu 核心库中,BIND9 并不需要启用其它附加库。
LINUX配置DNS服务器
LINUX配置DNS服务器在Linux系统中配置DNS服务器是非常简单的,可以使用bind软件包来设置。
bind是一款开源的DNS服务器软件,常用于配置本地域名解析或搭建局域网DNS服务器。
以下是使用bind软件包在Linux系统上配置DNS服务器的步骤:1. 安装bind软件包:在Linux系统上使用包管理工具如apt、yum等安装bind软件包。
在Debian/Ubuntu系统上,可以使用以下命令安装bind软件包:```sudo apt-get updatesudo apt-get install bind9```在其他Linux发行版上,类似的命令也适用。
- `options`部分:配置DNS服务器的全局选项,如监听的IP地址、允许的查询类型等。
- `zone`部分:配置DNS服务器的区域,可以添加自定义的区域文件。
- `include`部分:可以包含其他配置文件,如将自定义的配置文件放在其他路径下。
示例配置:```optionsdirectory "/var/cache/bind";listen-on { any; };allow-query { any; };};type master;};```示例配置:```3600 ; Refresh1800 ; Retryns1 IN A 192.168.1.10ns2 IN A 192.168.1.11```4. 启动bind服务:完成以上配置后,可以使用以下命令启动bind 服务:```sudo service bind9 start```可以使用`status`参数检查服务状态:```sudo service bind9 status```如果服务启动成功,可以在系统日志中查看bind的运行日志。
5. 配置客户端:在需要使用DNS服务器的客户端上,可以将DNS服务器的IP地址指定为客户端的DNS配置。
可以在网络配置中指定DNS服务器的IP地址,或直接修改客户端的`resolv.conf`文件。
centos下安装dns(bind9)和web管理(namedmanager)
centos下安装dns(bind9)和web管理(namedmanager)#系统初始化环境:CentOS release6.2(Final)x86_64setenforce0iptables-F//如果要安全些只开启相应的80,53udp,53tcp端口sed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config#安装lamp环境yum-y install mysql mysql-server mysql-devel httpd php php-mysql wget make gccservice httpd startservice mysqld startchkconfig httpd onchkconfig mysqld onmysqladmin-u root password sjtest123配置系统主机名,httpd的servername名,类似#安装namedyum install bind*chkconfig named onnamed配置文件cp/usr/share/doc/bind-9.8.2/sample/*/var/named/chroot/-Recho>/var/named/chroot/etc/named.confvi/var/named/chroot/etc/named.confoptions{listen-on port53{any;};directory"/var/named";dump-file"/var/named/data/cache_dump.db";statistics-file"/var/named/data/named_stats.txt";memstatistics-file"/var/named/data/named_mem_stats.txt";allow-query{any;};recursion yes;forward first;forwarders{114.114.114.114;8.8.8.8;};querylog0;recursive-clients50000;};logging{channel default_debug{file"data/named.run";severity dynamic;};};include"/etc/named.rfc1912.zones";启动bind服务service named start后发现namedmanager最好还是用在非chroot的环境,以避免不必要的麻烦:去除chrootservice named stopyum remove bind-chrootcp/var/named/chroot/etc/*/etc/cp-p/var/named/chroot/var/named/*/var/named/#安装namedmanagercd/etc/yum.repos.d/wget /config/centos/6/amberdms-c6-public.repoyum install namedmanager-www namedmanager-bindchkconfig--level35namedmanager_logpush onchown named.root/etc/dmanager.conf初始化数据cd/usr/share/namedmanager/resources/./autoinstall.pl#输入mysql的passwdcrontab-e加入:*****php-q/usr/share/namedmanager/bind/namedmanager_bind_configwriter.php>> /var/log/namedmanager_bind_configwriter#配置namedmanagervi/etc/named.conf加入:include"/etc/dmanager.conf";vi/etc/namedmanager/config-bind.php更改相关项:$config["api_url"]="https://xx.xx.xx.xx/namedmanager";["api_server_name"]="";//此处必须与web配置里的Name Server名称一致$config["api_auth_key"]="mykey";#namedmanager的web管理https://xx.xx.xx.xx/namedmanager默认用户名和密码分别为:setup和setup123New Server里:add newserver:Name Server FQDN*://这个也写在了apache 的servername里Primary Nameserver*:勾上API Authentication Key*:mykeyDomains/Zones里:addd new domain:Domain Type*:Standard DomainEmail Administrator Address*:你的mailConfigurationDEFAULT_HOSTMASTER:admin@ADMIN_API_KEY:mykey关于作者:本文作者热爱linux,致力于学习centos的各种技巧总结,用最方便的方法去配置相应的服务.网站:。
Linux运维实战之DNS(bind)服务器的安装与配置
Linux运维实战之DNS(bind)服务器的安装与配置上次博⽂我们讨论了DNS的基础,本次博⽂我们重点来看看如何配置⼀台DNS服务器。
【本次博⽂的主要内容】bind服务器简介(包括客户端⼯具dig的介绍)配置正向解析DNS服务器配置反向解析DNS服务器配置辅助DNS服务器并在主辅之间实现区域传送⼀、BIND服务器简介:Bind是Berkeley Internet Name Domain Service的简写,它是⼀款实现DNS服务器的开放源码软件。
Bind原本是美国DARPA资助伯克利⼤学(Berkeley)开设的⼀个研究⽣课题,后来经过多年的变化发展,已经成为世界上使⽤最为⼴泛的DNS服务器软件,⽬前Internet上半数以上的DNS服务器有都是⽤Bind来架设的。
【什么是“服务”及服务的特性】1、什么是套接字:套接字socket,简单来说就是IP:port(IP地址端⼝对)。
以电话系统为例,电话的通话双⽅相当于相互通信的两个进程,区号是它的IP地址;区内⼀个单位的交换机相当于⼀台主机,主机分配给每个⽤户的局内号码相当于socket号。
任何⽤户在通话之前,⾸先要使⽤⼀部电话,相当于申请⼀个socket;同时要知道对⽅的号码,相当于对⽅有⼀个固定的socket。
然后向对⽅拨号呼叫,相当于发出连接请求(假如对⽅不在同⼀区内,还要拨对⽅的区号,相当于给出⽹络地址)。
对⽅假如在场并空闲(相当于通信的另⼀主机开机且可以接收连接请求),拿起电话话筒,双⽅就可以正式通话,相当于连接成功。
双⽅通话的过程,是⼀⽅向电话机发出信号和对⽅从电话机接收信号的过程,相当于向socket发送数据和从socket接收数据。
通话结束后,⼀⽅挂起电话相当于关闭socket,撤销连接。
端⼝:TCP:0~65535UDP:0~65535⼩于1024的端⼝为知名端⼝;Linux系统中0~1023的端⼝只有root⽤户有开放关闭的权利(服务都是以root⽤户⾝份启动,之后以⼀个系统⽤户的⾝份运⾏。
DNS源代码包编译安装
DNS源代码包编译安装1.源代码包名为bind-9.2.3.tar.gz2.将压缩包解压缩后编译安装:--tar xzvf bind-9.2.3.tar.gz –C /usr/local/src--C:大写C指定解压到的目录--cd /usr/local/src 进入解压后源码包的目录--./configure –prefix=/usr/local/bind--make--make install3.创建可执行文件的链接文件,默认在安装后,相关可执行文件存放在/usr/local/bind/sbin目录下,也可不做链接,但是在操作过程中,需要输入绝对路径才可执行相关命令----------软链接--ln –s /usr/local/bind/sbin/rndc /usr/sbin/rndc--ln –s /usr/local/bind/sbin/named /usr/sbin/named--/usr/sbin 下存放了root管理员所能执行的相关命令4.在/usr/local/bind/创建etc目录,此目录下存放了rndc.conf可执行文件--mkdir /usr/local/bind/etc5.在/usr/local/bind/下创建/var/run目录--mkdir –p /usr/local/bind/var/run--p:递归创建var和run目录,在/var/run/目录下无须做任何设置,dns 服务在启动的时候,会在run目录下生成named.pid的文件(进程文件)6.安装模版文件.( CD2)--rpm –ivh –nodeps /mnt/cdrom/RedHat/RPMS/caching-nameserver -7.2-7 noarch.rpm --此rpm包不安装也可以,但需要手工创建相应的配置文件.--caching-nameserver的rpm包是和(CD1)中的bind—rpm包配合使用的,且有两个rpm包之间有相互依存关系,所以此处在安装的过程中使用了—nodeps的参数,(忽略依赖关系,强行安装),此处安装只是为了生成四个配置文件:>/etc/named.conf –主配置文件>/var/namd/ 目录下:--localhost.zone –正向区域数据文件--named.local—反向区域数据文件--named.ca—存储了相关的internet上13台根域名服务器的相关信息7.生成相关配置文件(控制管道钥匙链)--/usr/local/bind/sbin/rndc-confgen (执行此命令生成配置文件)8.将第7步所生成的配置文件的End of rndc.conf所指向的文件拷贝到/usr/local/bind/etc/rndc.conf文件中(etc目录第四步创建)--vi /usr/local/bind/etc/rndc.conf >新建rndc.conf文件并编辑9. 将第7步所生成的配置文件的End named.conf所指向的带有#号的所有注释行拷贝到/etc/named.conf文件中,并将#注释删除如下图所示: key-----controls段为新添加的文件内容:注意:此文件中原有的controls{ }和include ―/etc/rndc.key‖项须删除.d –c /etc/named.conf ---启用DNS服务stat –ant 查看53#端口是否启用12.执行本地正反向解析-------nslookup13.编译安装到此部分基本结束,创建区域及添加相关信息和RPM包安装配置方式相同(可参照Bind服务器-DNS(rpm包安装).doc)。
DNS bind9 简单配置
localhost正向区文件,用于将名字localhost转换成本地回送IP地址(127.0.0.1)
db.127
localhost反向区文件,用于将本地回送IP(127.0.0.1)转化成名字localhost
named.conf
设置一般的named参数,指向该服务器使用的数据库信息源
1
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
2
#nameserver 192.168.1.162
3
#nameserver 8.8.8.8
4
search
5
nameserver localhost
ns
IN
A
192.168.1.162
www IN
A
192.168.1.162
webserver
IN
CNAME www
//生 存 记 录 字 //说 明 下 面 的 //SOA 后 面指
//通 常 的 格 式 //这 里 来 告 诉 //如 果 slave更 //这 里 用 来 记 //和 上 面 的 TTL
20
type master;
21
file "/etc/bind/db.0";
22};
23
24zone "255.in-addr.arpa" {
25
type master;
26
file "/etc/bind/db.255";
27};
type有以下取值: master:表示定义的是主域名服务器 slave:表示定义的是辅助域名服务器 hint:表示是互联网中根域名服务器
用bind9架设自己的智能DNSSparklesWorkshop
用bind9架设自己的智能DNSSparklesWorkshop用bind9架设自己的智能DNSPosted on October 25, 2007 by Sparkle中国的南北网络问题,是许多做网站的人的心病除了使用双通或者多通机房以外,还可以通过多台镜像服务器的方法来提高用户的访问速度但是,如果使用的双通机房并不是单IP的,或者使用多台镜像的做法,就会面临多个不同的服务器IP的问题最早的时候,很多镜像服务器都是使用不同的域名的,比如说www1和www2,或者www和cnc这样的做法,对用户相当不友好,而且不方便推广,比如说,你要告诉朋友一个网站,还要问他是什么线路才能给网址吗,或者可能你还不知道这个网站有一个专为网通的线路所设置的镜像用统一的域名,然后根据用户的线路自动判断引导到不同的镜像服务器,正是智能DNS的功用(智能DNS其实是CDN的其中一部分,是最前端的部分)现在还是有一些地方使用多域名,比如说下载网站的下载镜像服务器,因为智能DNS有一定的缺陷(并不一定选择到正确的线路,下面说),也提供给用户自由选择线路的权利目前也有一些公司提供智能DNS解释服务,把你的域名NS指到他们服务器,然后输入网通和电信服务器的IP就ok了也有一些公司提供比较完整的CDN服务,比如比较出名的就是chinacache,不少中型网站是使用他们的服务最初的bind是不支持通过来源选择不同的ip的,因此只能通过iptables的辅助来实现智能DNS,方法也很简单,在DNS服务器上面启动两份bind,都不要用默认的端口,两份分别解析不同的线路,然后再用iptables将默认端口的DNS请求根据来源IP发送到不同的bind实例这种方法缺点很明显,需要多个bind实例,如果需要更多的线路解释那就还要再开bind实例,另外iptables对来源的解释也会导致iptables太多规则现在的bind支持了根据来源选择的功能,我不确定是不是bind9的新特性,不过bind9是重写过的,相比漏洞百出的bind8来说,稳定和安全很多,以下的配置以bind9为基础我使用的是CentOS,由于bind服务没有其他服务(比如apache,squid)要求那么高,所以也没有必要自己编译一份,我是用过yum 安装的,版本不是最新的稳定版装好之后,可以用过/etc/init.d/named start成功启动服务有一个文件named.conf出现在/etc下,就是bind的主config 文件,我们只要改动他(我只说明智能DNS实现部分,其他的bind设置自行修改,呵呵)另外一个小技巧,可以通过/usr/sbin/named -g -u named来启动bind,可以立刻看到输出信息,方便调试我们是通过bind9的view功能来分离判断的首先,我们需要一份网通的IP列表,这是一份在网上流传的列表,呵呵acl “CNC” {58.16.0.0/16;58.17.0.0/17;58.17.128.0/17;58.18.0.0/16;58.19.0.0/16;58.20.0.0/16;58.21.0.0/16;58.22.0.0/15;58.240.0.0/15;58.242.0.0/15;58.244.0.0/15;58.248.0.0/13;60.0.0.0/13; 60.8.0.0/15; 60.10.0.0/16; 60.11.0.0/16; 60.12.0.0/16; 60.13.0.0/18; 60.13.128.0/17;60.14.0.0/15; 60.16.0.0/13; 60.24.0.0/14; 60.30.0.0/16; 60.31.0.0/16; 60.208.0.0/13;60.216.0.0/15;60.218.0.0/15;60.220.0.0/14;61.48.0.0/13; 61.133.0.0/17;61.134.96.0/19;61.134.128.0/17;61.135.0.0/16;61.137.128.0/17;61.138.0.0/17;61.138.128.0/18;61.139.128.0/18;61.148.0.0/15;61.156.0.0/16;61.159.0.0/18;61.161.128.0/17;61.162.0.0/16;61.163.0.0/16;61.167.0.0/16;61.168.0.0/16;61.176.0.0/16;61.179.0.0/16;61.181.0.0/16;61.182.0.0/16;61.189.0.0/17; 125.32.0.0/16; 125.40.0.0/13; 202.96.0.0/18; 202.96.64.0/21; 202.96.72.0/21; 202.97.128.0/18; 202.97.224.0/21; 202.97.240.0/20; 202.98.0.0/21; 202.98.8.0/21; 202.99.64.0/19; 202.99.96.0/21; 202.99.128.0/19; 202.99.160.0/21; 202.99.168.0/21; 202.99.176.0/20; 202.99.208.0/20; 202.99.224.0/21; 202.99.232.0/21;202.99.240.0/20; 202.102.128.0/21; 202.102.224.0/21; 202.102.232.0/21; 202.106.0.0/16; 202.107.0.0/17; 202.108.0.0/16; 202.110.0.0/17; 202.111.128.0/18; 203.93.8.0/24; 203.93.192.0/18; 210.13.128.0/17; 210.14.160.0/19; 210.14.192.0/19; 210.15.32.0/19; 210.15.96.0/19; 210.15.128.0/18; 210.21.0.0/16; 210.52.128.0/17; 210.53.0.0/17; 210.53.128.0/17; 210.74.96.0/19; 210.74.128.0/19; 210.82.0.0/15; 218.8.0.0/14; 218.12.0.0/16; 218.21.128.0/17; 218.24.0.0/14; 218.56.0.0/14; 218.60.0.0/15;218.68.0.0/15; 218.104.0.0/14; 219.154.0.0/15; 219.156.0.0/15; 219.158.0.0/17; 219.158.128.0/17; 219.159.0.0/18; 220.252.0.0/16; 221.0.0.0/15; 221.2.0.0/16; 221.3.0.0/17; 221.3.128.0/17; 221.4.0.0/16; 221.5.0.0/17; 221.5.128.0/17; 221.6.0.0/16; 221.7.0.0/19; 221.7.32.0/19; 221.7.64.0/19; 221.7.96.0/19; 221.8.0.0/15; 221.10.0.0/16; 221.11.0.0/17; 221.11.128.0/18; 221.11.192.0/19; 221.12.0.0/17; 221.12.128.0/18; 221.13.0.0/18; 221.13.64.0/19;221.13.128.0/17; 221.14.0.0/15; 221.192.0.0/15; 221.194.0.0/16; 221.195.0.0/16; 221.196.0.0/15; 221.198.0.0/16; 221.199.0.0/19; 221.199.32.0/20; 221.199.128.0/18; 221.199.192.0/20; 221.200.0.0/14; 221.204.0.0/15; 221.206.0.0/16; 221.207.0.0/18; 221.207.64.0/18; 221.207.128.0/17; 221.208.0.0/14; 221.212.0.0/16; 221.213.0.0/16; 221.216.0.0/13; 222.128.0.0/14; 222.132.0.0/14; 222.136.0.0/13; 222.160.0.0/15; 222.162.0.0/16; 222.163.0.0/19; 222.163.32.0/19; 222.163.64.0/18;222.163.128.0/17;};如果觉得有哪些部分不是很准确的话,可以自行修改由于这个部分太长了,所以写在一个专门的文件然后include进named.conf比较容易维护例如,我们把上面这段配置保存为cnc_acl.conf然后在named.conf写入include “/data/named/cnc_acl.conf”;即可接下来就是view的配置,假设域名是,呵呵view “view_cnc” {match-clients { CNC; };zone “” {type master;file “/data/named/cnc_xyz”;};};view “view_any” {match-clients { any; };zone “” {type master;file “/data/named/any_xyz”;};};就这样就足够了然后我们需要cnc\_xyz和any_xyz两个具体的zone file两个文件基本是一模一样的,就是指向不同的ip$TTL 2h. IN SOA . . (200710222h40m1w2h). IN NS .. IN MX 1 .ns IN A 1.1.1.1mail IN A 1.1.1.1www IN A 1.1.1.1根据不同的线路把www指向不同的IP即可这样,我们就实现了自己的智能DNS后话,目前许多大型网站都是用这个来实现不同的线路来源访问不同的镜像,甚至还做到地区级别,例如,在佛山机房部署了一台镜像服务器,就将广东省的访问都指向这台服务器另外,刚刚提到智能DNS也有缺陷,这里详细描述一下,bind9通过用户的来源IP来返回不同的解释IP,而实际上,并不是实际用户直接访问我们的DNS,而是用户所使用的DNS(比如说广州ADSL用户的默认DNS)负责访问我们的DNS,网通的DNS就保存有我们网通的IP,如果用户自行修改了DNS,比如说电信的用户硬要用网通的DNS,或者网通的用户使用国外的DNS(比如opendns之类的),就会导致判断失误This entry was posted in 互联网 and tagged dns. Bookmark the permalink.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译安装DNS-bind-9.9.0初始化设置
编译安装DNS-bind-9.9.0初始化设置
操作系统是CentOS-6.2-i386-minimal.iso
[root@bind9 ~]# uname -a
Linux bind9.9 2.6.32-220.el6.i686 #1 SMP Tue Dec 6 16:15:40 GMT 2011 i686 i686 i386
GNU/Linux
bind9.9.0的编译安装成败就在此一举了,继续看看吧
一、要准备好bind-9.9.0的源代码包,放到root目录下,一般是bind-9.9.0.tar.gz.通过命令:[root@bind9 ~]# tar xvf bind-9.9.0.tar.gz
解压并归档后有个目录:bind-9.9.0
[root@bind9 ~]# cd bind-9.9.0
[root@bind9 bind-9.9.0]# ./configure --prefix=/usr/local/named
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking whether make sets $(MAKE)... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/root/bind-9.9.0':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
[root@bind9 bind-9.9.0]#
提示没有安装gcc
[root@bind9 bind-9.9.0]# yum install gcc
[root@bind9 bind-9.9.0]# ./configure --prefix=/usr/local/named
checking for OpenSSL library... configure: error: OpenSSL was not found in any of /usr
/usr/local /usr/local/ssl /usr/pkg /usr/sfw; use --with-openssl=/path
If you don't want OpenSSL, use --without-openssl
[root@bind9 bind-9.9.0]#
提示没有OpenSSL
[root@bind9 bind-9.9.0]# yum install openssl
[root@bind9 bind-9.9.0]# ./configure --prefix=/usr/local/named
checking for OpenSSL library... configure: error: OpenSSL was not found in any of /usr
/usr/local /usr/local/ssl /usr/pkg /usr/sfw; use --with-openssl=/path
If you don't want OpenSSL, use --without-openssl
[root@bind9 bind-9.9.0]#
安装完还是提示Openssl,还的安装如下包
[root@bind9 bind-9.9.0]# yum install openssl-devel
[root@bind9 bind-9.9.0]# ./configure --prefix=/usr/local/named
checking whether to use purify... no
configure: error: Internal symbol table requires perl but no perl is found. Install perl or explicitly disable the feature by --disable-symtable.
[root@bind9 bind-9.9.0]#
又提示perl没装,没办法,继续安装吧
[root@bind9 bind-9.9.0]# yum install perl
[root@bind9 bind-9.9.0]# ./configure --prefix=/usr/local/named
config.status: creating lib/tests/include/Makefile
config.status: creating lib/tests/include/tests/Makefile
config.status: creating unit/Makefile
config.status: creating unit/unittest.sh
config.status: creating config.h
config.status: executing chmod commands
./configure: line 29289: make: command not found
[root@bind9 bind-9.9.0]#
哎呦还是没成功,接着往下看
[root@bind9 bind-9.9.0]# yum groupinstall "Development Tools"
[root@bind9 bind-9.9.0]# yum groupinstall "Development Libraries"
[root@bind9 bind-9.9.0]# ./configure --prefix=/usr/local/named
这下没有错误提示了。
正在安装配置才正式开始
[root@bind9 bind-9.9.0]# make
making all in /root/bind-9.9.0/doc/xsl
make[2]: Entering directory `/root/bind-9.9.0/doc/xsl'
make[2]: Leaving directory `/root/bind-9.9.0/doc/xsl'
making all in /root/bind-9.9.0/doc/doxygen
make[2]: Entering directory `/root/bind-9.9.0/doc/doxygen'
make[2]: Leaving directory `/root/bind-9.9.0/doc/doxygen'
make[1]: Leaving directory `/root/bind-9.9.0/doc'
[root@bind9 bind-9.9.0]# make install
make[1]: Leaving directory `/root/bind-9.9.0/doc'
/bin/sh ./mkinstalldirs /usr/local/named/bin \
/usr/local/named/var/run /usr/local/named/etc
mkdir /usr/local/named/var
mkdir /usr/local/named/var/run
mkdir /usr/local/named/etc
/bin/sh ./mkinstalldirs /usr/local/named/share/man/man1
/usr/bin/install -c isc-config.sh /usr/local/named/bin
/usr/bin/install -c -m 644 ./isc-config.sh.1 /usr/local/named/share/man/man1 /usr/bin/install -c -m 644 ./bind.keys /usr/local/named/etc
[root@bind9 bind-9.9.0]#
大功告成。