Bind 安装(以下安装是以源码包为主)

安装包下载

rpm下载地址:https://pkgs.org/download/bind 输入Bind搜索,依赖bind-utils、bind-libs、bind-license

rpm安装时才需要安装依赖

rpm所有版本下载地址:
http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=1&dl=40&search=bind-9.9&field[]=1&field[]=2

tar所有版本下载地址:ftp://ftp.isc.org/isc

tar下载地址:https://ftp.isc.org/isc/bind9/9.15.1/bind-9.15.1.tar.gz

可视化管理插件:https://gitee.com/opendevops/codo-dns

解压安装包

tar xvfz bind-9.15.1.tar.gz

如果你的 tar 命令不支持z选项(用于解压gz后缀的压缩包),你可以分两步做:

gunzip bind-9.3.0.tar.gz
tar xvf bind-9.3.0.tar

这样源代码就解压到bind-9.15.1目录中了。

编译安装

cd bind-9.15.1
./configure --prefix=/usr/local/named  --enable-threads

参数说明:

正像单词的意思一样,configure 是编译前对源代码进行针对具体操作系统的编译参数配置,有很多选项可以选

择,大家可以用 --help 选项来查看所有可用的选项,这里介绍几个最常用的选项:

参数名 描述
–prefix=/usr/local/bind 设置bind的安装目录,默认是/usr/local,有的人喜欢将bind安装在单独的目录就可 以如此设置
–sysconfdir=/etc/bind 设置named.conf配置文件放置的目录,默认是"$prefix/etc"
–localstatdir=/var 设置 run/named.pid 放置的目录,默认是"$prefix/var"
–with-libtool 将BIND的库文件编译为动态共享库文件,这个选项默认是未选择的,如果不选这个选项,那么编译后的named命令会比较大,lib目录中的库文件都是.a后缀的,如果选上这个选项,那么编译后的named命令会很小,lib目录中的库文件则是.so后缀
–enable-threads 如果你的系统有多个CPU,那么可以使用这个选项

如果 ./configure 没有报错的话,那么就可以开始编译源代码了。

执行  make

编译需要一小会时间,编译完成后则开始安装BIND,安装需要 root 用户权限,所以要先转换成root用户。

执行  make install

至此安装完成,执行以下命令查看。

cd /usr/local/named/sbin/
./named -v #查看版本

创建运行用户

#创建用户named用户,使用named用户运行dns

groupadd named
useradd -g named -s /sbin/nologin named #设置不能登入

创建配置文件目录

mkdir /usr/local/named/zones        #保存dns zone配置文件的目录
mkdir /usr/local/named/log          #保存日志就新建这个目录
touch /usr/local/named/etc/named.conf #保存DNS配置文件

#配置主配置文件

cd /usr/local/named/etc/
/usr/local/named/sbin/rndc-confgen > rndc.conf
cat rndc.conf > rndc.key
chmod 777 /usr/local/named/zones/
tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf

#配置named.conf解析

ln -s /usr/local/named/etc/named.conf /etc/named.conf
vi /usr/local/named/etc/named.conf

named.conf 内容说明:

#rndc控制密钥
key "rndc-key" {algorithm hmac-sha256;secret "c6iamWqbzArFvUn7BUt27c8MNUU+G9TkVz8ADbnXNRI=";
};#服务监听端口
controls {inet 127.0.0.1 port 953allow { 127.0.0.1; } keys { "rndc-key"; };
};
#配置zone配置文件目录
options {directory "/usr/local/named/zones";pid-file "named.pid"; rrset-order {order cyclic;};#轮询访问
};#配置log日志服务
logging
{channel dnsquery.log{file "/usr/local/named/log/dnsquery.log" versions 3 size 10M;severity info;print-time yes;};category queries { dnsquery.log; };
};
view "internal"
{#配置根DNS服务器配置文件,以下配置中file的路径都是相对directory指定的路径,及必须放到directory目录下zone "." {#可不配做type hint;file "named.root";#根 dns 服务器的信息#下载地址ftp://ftp.rs.internic.net/domain/named.cache named.cache 重命名为 named.root};zone "localhost" IN{#本地解析,可不配做type master;file "localhost.zone";allow-update {none;};};zone "0.0.127.in-addr.arpa" IN{#可不配做type master;file "localhost.local";allow-update {none;};};zone "keeplived.com" IN{type master;file "keeplived.zone";allow-update {none;};};zone "shiny.com" IN{#正向解析type master;file "shiny.zone";allow-update {none;};};zone "192.168.1.in-addr.arpa" IN{#反向解析,一般是邮箱才需要配置反向解析type master;file "shiny.local";allow-update {none;};};
};#localhost.zone 正向解析配置
$TTL 86400
@       IN      SOA     localhost.      admin.localhost.(20190617011H5M7D1D )IN      NS      localhost.
localhost.      IN      A       127.0.0.1#localhost.local 反向解析配置
$TTL 86400
@       IN      SOA     localhost.      admin.localhost.(20190617011H5M7D1D )IN      NS      localhost.
1       IN      PTR     localhost.#shiny.zone正向解析配置
#admin.163.com 为邮箱,随意指定一个,@为本域,即shiny.com
$TTL 7200
@       IN      SOA     shiny.com.      admin.163.com.(20190617011H5M7D1D )
@       IN      NS      www.shiny.com.
www     IN      A       192.168.1.221IN      A       192.168.1.222 #一个域名对应多个地址(可以实现负载,ttl设置成1 或者 0)#shiny.local反向解析配置(根据需要进行配置,一般是邮箱服务才需要)
$TTL 7200
@       IN      SOA     192.168.1.in-addr.arpa.      admin.163.com.(20190617011H5M7D1D )
@       IN      NS      www.shiny.com.
221     IN      PTR     www.shiny.com.
222     IN      PTR     www.shiny.com.

#授予named访问权限

chown -R named:named /usr/local/named

运行DNS服务

/usr/local/named/sbin/named -g -u named & #-g 打印启动日志 -u 指定用户
tail -f /var/log/message #查看启动日志
/usr/local/named/sbin/named restart #重启服务
/usr/local/named/sbin/rndc status #检查DNS服务器运行状态
dig 域名 #查看域名解析是否成功
#更改配置时可以通过reload及时生效
/usr/local/named/sbin/rndc reload

Linux DNS配置

vi /etc/resolv.conf
nameserver 域名服务器地址

resolv.conf的关键字主要有四个,分别是:
nameserver //定义DNS服务器的IP地址
domain //定义本地域名
search //定义域名的搜索列表
sortlist //对返回的域名进行排序

#Window刷新本地域名缓存,Linux无需刷新
ipconfig /flushdns #当服务器域名对应IP调整后,如果要马上生效,客户端需要刷新缓存

#域配置项说明

配置项 说明
TTL time to live 生存时间,默认为秒
@ 表示相应的域名,表示一个域名定义的开始这里代表gr.org
IN 表示后面的数据使用的是INTERNET标准
SOA 表示授权开始
ns.gr.org. 该域的主域名服务器
root.gr.org. 管理员邮件地址(这里的邮件地址中的用.来代替常见的邮件地址的@.)
20150317 serial(d. adams)表示配置文件的修改版本,格式是年月日当日修改的次数,每次修改时都应该修改这个数字,要不然所做修改的不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你你的所配置的DNS服务器数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没意义的
6H refresh,定义以单位(M分,H时,W周,默认是秒即不带单位)的刷新频率,即规定从域名服务器多长时间查询一个主服务器,以服务器的数据的是最新的
30M retry,以30分钟的时间间隔重试,即当从服务器试图在主服务器上查询更新时,而连接失败了,则这个值规定了从服务器多长时间后重试
1W expire,规定从服务器在向主服务器更新失败之后清除记录的时间
15M minimum TTL,规定缓冲服务器不能与主服务器联系上的清除记录时间
NS net server,表示该主机是域名服务器
A address,定义了一条A记录,表示该主机名到IP地址的对应记录
MX mail exchange,定义一条邮件记录
CNAME 定义了对应主机的一个别名
PTR 指一条反向域名解析PTR记录,类似A记录(PTR指针记录由IP地址提供商提供)

#DNS负载均衡优点

  1. 将负载均衡的工作交给DNS,省去了网站管理维护负载均衡服务器的麻烦。
  2. 技术实现比较灵活、方便,简单易行,成本低,使用于大多数TCP/IP应用。
  3. 对于部署在服务器上的应用来说不需要进行任何的代码修改即可实现不同机器上的应用访问。
  4. 服务器可以位于互联网的任意位置。
  5. 同时许多DNS还支持基于地理位置的域名解析,即会将域名解析成距离用户地理最近的一个服务器地址,
    这样就可以加速用户访问,改善性能

#DNS负载均衡缺点

  1. 目前的DNS是多级解析的,每一级DNS都可能缓存A记录,当某台服务器下线之后,即使修改了A记录,
    要使其生效也需要较长的时间,这段时间,DNS任然会将域名解析到已下线的服务器上,最终导致用户访问失败。
  2. 不能够按服务器的处理能力来分配负载。DNS负载均衡采用的是简单的轮询算法,不能区分服务器之间的差异,
    不能反映服务器当前运行状态,所以其的负载均衡效果并不是太好。
  3. 可能会造成额外的网络问题。为了使本DNS服务器和其他DNS服务器及时交互,保证DNS数据及时更新,
    使地址能随机分配,一般都要将DNS的刷新时间设置的较小,但太小将会使DNS流量大增造成额外的网络问题。

配置文件例子:
named.conf

key "rndc-key" {algorithm hmac-sha256;secret "YrKX8ketu7iMDv32tndictV7ZmhKU+SuW1bhQhvmGPY=";
};controls {inet 127.0.0.1 port 953allow { 127.0.0.1; } keys { "rndc-key"; };
};options {directory "/usr/local/named/zones";pid-file "named.pid"; rrset-order {order cyclic;};#轮询访问
};logging
{channel dnsquery.log{file "/usr/local/named/log/dnsquery.log" versions 3 size 10M;severity info;print-time yes;};category queries { dnsquery.log; };
};view "internal"
{zone "." {type hint;file "/usr/local/named/etc/named.root";};zone "shiny.com" IN{type master;file "shiny.zone";allow-update {none;};};
};

shiny.zone

$TTL 7200
@       IN      SOA     shiny.com.      admin.163.com.(20191030011H5M7D1D )
@       IN      NS      www.shiny.com.
www     IN      A       192.168.1.221

Linux Bind 安装相关推荐

  1. Linux bind安装问题-无法提供查询转发解析

    Linux bind 安装完成无法提供查询转发解析 需要将主配置文件/etc/named.conf文件中的dns安全扩展"dnssec-enable"与"dnssec-v ...

  2. Linux卸载安装bind,Bind编译安装详解

    Bind编译安装详解 Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广 ...

  3. 红旗Linux网卡Bind,请教一下在红旗linux中安装网卡RTL8168/8111的问题

    请教一下在红旗linux中安装网卡RTL8168/8111的问题 发布时间:2008-05-23 10:18:06来源:红联作者:宇宙中的微尘 在用make clean modules时,出错.显示 ...

  4. Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/redis-server.

    此文首发于我的个人博客:Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/r ...

  5. linux下安装mysql的方式_linux下安装mysql的两种方式

    linux下安装mysql的两种方式 1 源码安装 1 创建mysql用户: useradd mysql passwd mysql 2 解压缩下载的mysql包: tar -zxvf mysql-5. ...

  6. linux下安装配置redis服务

    2019独角兽企业重金招聘Python工程师标准>>> linux下安装配置redis服务 2016年03月25日 15:39:31 coding_everyday 阅读数:3530 ...

  7. Linux下安装搭建Memcached集群环境

    由于项目需要,需要搭建memcached集群环境,遂开始调研相关技术 网络上有不少linux下安装memcached的教程,对于我这个linux零基础的来说,想立马在linux下安装memcached ...

  8. Linux下安装Redis及搭建主从

    Linux下安装Redis 首先在官网下载对应版本的redis包,这里本人使用的是redis-4.0.8.tar.gz.   然后在服务器中存放redis包的路径下执行tar –vxf redis-4 ...

  9. 如何在Red Hat Linux上安装和配置FreeIPA

    目的 我们的目标是在Red Hat Enterprise Linux上安装和配置独立的FreeIPA服务器. 操作系统和软件版本 操作系统: Red Hat Enterprise Linux 7.5 ...

  10. linux下安装mysql5.7方法与常见问题

    linux上安装mysql5.7 1.下载tar包,这里使用wget从官网下载 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7 ...

最新文章

  1. JavaEE Tutorials (15) - 对Java持久化API应用使用二级缓存
  2. GANs学习系列(8):Deep Convolutional Generative Adversarial Nerworks,DCGAN
  3. 计算机组成原理第4章-指令系统
  4. HR 问“你目前有几个 Offer”,聪明人会怎么说?你呢!
  5. ostream作为函数返回值_GO语言基础函数
  6. Linux下Makefile学习笔记
  7. Android 高级Drawable资源---复合Drawable----变换Drawable---RotateDrawable用法实例
  8. 石子合并(GarsiaWachs算法)
  9. [转载] Java内存管理-你真的理解Java中的数据类型吗(十)
  10. 好导师、选好题、保持创新; 然后坚定地执行: SCI论文是一切
  11. python 热力图_python高维数据型图表热力图、树形图
  12. 在 windows 上安装免安装版的mysql
  13. C/C++[codeup 1926]EXCEL排序
  14. 戴尔t40服务器接显示器,Dell PowerEdge T40 机架式服务器
  15. 5年做100款游戏是什么体验?“高产”开发者的10条心得
  16. 疯狂java讲义第七章课后习题答案
  17. BCM94360Z4刷蓝牙固件魔改, Mac真正免驱无线网卡,实现原装网卡一样完美黑苹果,啊哈哈
  18. linux命令行计算器 bc命令用法
  19. 医院客户关系管理系统
  20. selenium碰到 href = ‘/‘ 这样的一个链接怎么办

热门文章

  1. 【微信小程序】上传字体文件自定义字体family
  2. 20sccm_SCCM 2016 使用PXE 部署操作系统(一)
  3. cts测试linux指令skip,CTS测试命令详细
  4. mysql innerdb 索引,MySQL系列-InnoDB索引优化AHI、Change buffer
  5. Python学习笔记3——条件语句及循环语句
  6. URL、域名、子域名、主机名
  7. python实现电脑自动拨号换ip(pppoe)
  8. PMP知识点:项目经理必备的11种人际关系技能
  9. 马哥教育 mysql_马哥教育第二十三MySQL基础应用入门
  10. CSS width中的max-content,min-content,fit-content的区别