Linux下DNS简单部署(主从域名服务器)
一、DNS简介
DNS(Domain Name System),域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。DNS服务器的作用就是就好比生活中的电话簿、114查号台一样,为各种网络程序找到对应目标主机的IP地址或对应的主机域名。
二、DNS功能
每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。
主机名到IP地址的映射有两种方式:
1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。
正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的)
反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时。)
根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色:
1)缓存域名服务器,也称为 唯高速缓存服务器
通过向其他域名服务器查询获得域名->IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度
2)主域名服务器
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有域名->IP地址的映射记录
3)从域名服务器(通俗一点就是用于备份DNS服务器的)
也称为 辅助域名服务器
其维护的 域名->IP地址记录 来源于主域名服务器
搭建DNS服务应用的软件为:BIND(Berkeley Internet Name Daemon)
三、DNS服务环境部署记录
1)安装DNS服务所需要的软件包 [root@test ~]# yum -y install bind bind-chroot bind-util bind-libs ------------------------------------------------------------------------------------------------ 解释: bind 提供了域名服务的主要程序及相关文件 bind-utils 提供了对DNS服务器的测试工具程序(如nslookup、dig等) bind-chroot 为bind提供一个伪装的根目录以增强安全性(将“/var/named/chroot/”文件夹作为BIND的根目录) ------------------------------------------------------------------------------------------------2)DNS服务器的配置(服务端要能联网) [root@test ~]# cp /etc/named.conf /etc/named.conf.bak [root@test ~]# vim /etc/named.conf options {listen-on port 53 { any; }; #使用53端口监听,默认监听的是127.0.0.1,这里修改为any(或者直接修改为服务端的ip地址,如服务器ip为192.168.1.24)listen-on-v6 port 53 { ::1; }; #监听ipv6的IP地址选项directory "/var/named"; #DNS的根目录,由于安装了bind-chroot的所致,因此服务的实际工作目录为/var/named/chroot/var/nameddump-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; }; #允许查询的主机,默认为localhost,这里修改为anyrecursion yes; #可以递归查询dnssec-enable yes;dnssec-validation yes;dnssec-lookaside auto;bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic"; };logging { #named服务的日志文件信息channel default_debug {file "data/named.run";severity dynamic;}; }; zone "." IN { #根(.)域的配置及信息(也可以通过其它上级域名转发功能来配置缓存域名服务器,可以去了解下)type hint;file "named.ca"; };[root@test ~]# chmod 770 /var/named/ [root@test ~]# ls -lh /etc/named.conf -rw-r-----. 1 root named 984 Nov 20 2015 /etc/named.conf [root@test ~]# /etc/init.d/named start Generating /etc/rndc.key: [ OK ] Starting named: [ OK ] [root@test ~]# ps -ef|grep name named 1592 1 0 15:03 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot root 1614 32378 0 15:03 pts/0 00:00:00 grep name[root@test ~]# netstat -tunlp|grep named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1592/named tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1592/named tcp 0 0 ::1:53 :::* LISTEN 1592/named tcp 0 0 ::1:953 :::* LISTEN 1592/named udp 0 0 127.0.0.1:53 0.0.0.0:* 1592/named udp 0 0 ::1:53 :::* 1592/named3)客户端测试 将上面服务器的ip地址添加到客户端的/etc/resolv.conf文件里 [root@test2 ~]# cat /etc/resolv.conf nameserver 192.168.1.24 //此处的192.168.1.24是上面DNS服务器的ip地址[root@test2 ~]# ping www.baidu.com PING www.a.shifen.com (119.75.213.51) 56(84) bytes of data. 64 bytes from 119.75.213.51: icmp_seq=1 ttl=55 time=2.58 ms 64 bytes from 119.75.213.51: icmp_seq=2 ttl=55 time=2.29 ms .......[root@test2 ~]# dig www.baidu.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55147 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5;; QUESTION SECTION: ;www.baidu.com. IN A;; ANSWER SECTION: www.baidu.com. 1100 IN CNAME www.a.shifen.com. www.a.shifen.com. 200 IN A 119.75.213.50 www.a.shifen.com. 200 IN A 119.75.213.51;; AUTHORITY SECTION: a.shifen.com. 1100 IN NS ns4.a.shifen.com. a.shifen.com. 1100 IN NS ns2.a.shifen.com. a.shifen.com. 1100 IN NS ns3.a.shifen.com. a.shifen.com. 1100 IN NS ns1.a.shifen.com. a.shifen.com. 1100 IN NS ns5.a.shifen.com.;; ADDITIONAL SECTION: ns5.a.shifen.com. 1100 IN A 119.75.222.17 ns3.a.shifen.com. 1100 IN A 61.135.162.215 ns4.a.shifen.com. 1100 IN A 115.239.210.176 ns1.a.shifen.com. 1100 IN A 61.135.165.224 ns2.a.shifen.com. 1100 IN A 180.149.133.241;; Query time: 1 msec ;; SERVER: 192.168.1.233#53(192.168.1.233) ;; WHEN: Wed Jun 21 15:12:20 2017 ;; MSG SIZE rcvd: 260------------注意事项------------- 客户端必须要跟服务器端能够通信(能ping通)及关闭selinux---------------------------------------扩展------------------------------------------- 上面在/etc/named.conf文件里没有自定义域名去进行解析设置,下面说下自定义域名的设置: 1) DNS主域名服务器配置[root@test ~]# cp /etc/named.conf /etc/named.conf2.bak [root@test ~]# vim /etc/named.conf #追加下面内容,即添加wangshibo.com域名配置。如果有多个域名,就如下添加多个类似配置。 ...... zone "wangshibo.com" IN { #指定区名。正向解析type master; #服务器类别,master为主域名file "wangshibo.com_zone"; #正向解析区域文件名wangshibo.com_zone,在/var/named目录下创建allow-transfer {192.168.1.23;}; #指定从(辅助)域名服务器IP。即DNS从服务器的ip是192.168.1.23 }; zone "1.168.192.in-addr.arpa" IN { #域名对应的ip地址网段为192.168.1.0,此处必须按照相 。反向解析 同的格式写type master;file "192.168.1.zone"; #反向解析文件名192.168.1.zoneallow-transfer {192.168.1.23;}; };[root@test ~]# vim /var/named/wangshibo.com_zone $TTL 1D @ IN SOA ns1.wangshibo.com. mail.www.wangshibo.com. (2014102101 #主DNS的此解析文件没改动一次,都要修改一次这个值,然后重启naned或rndc reload重启,从DNS就会自动同步过去1D 1H 1W 3H ) @ IN NS ns1.wangshibo.com. #主域名的域名地址。NS是域名服务器 ns1.wangshibo.com. IN A 192.168.1.24 #主域名的ip地址 @ IN NS ns2.wangshibo.com. #从域名的域名地址。NS是域名服务器 ns2.wangshibo.com. IN A 192.168.1.23 #从域名的ip地址 @ IN MX 10 mail.ww.wangshibo.com. #邮件服务器的域名地址 mail.www.wangshibo.com. IN A 192.168.1.4 www.wangshibo.com. IN A 192.168.1.2 ftp.wangshibo.com IN A 192.168.1.3 win7.wangshibo.com. IN A 192.168.1.224 linux.wangshibo.com. IN CNAME ns1.wangshibo.com. smb.wangshibo.com. IN CNAME ns1.wangshibo.com. dhcp.wangshibo.com. IN CNAME ns1.wangshibo.com.[root@test ~]# vim /var/named/192.168.1.zone $TTL 1D @ IN SOA ns1.wangshibo.com. mail.www.wangshibo.com. (2014102101 #主DNS的此解析文件没改动一次,都要修改一次这个值,然后重启naned或rndc reload重启,从DNS就会自动同步过去1D1H 1W 3H ) @ IN NS ns1.wangshibo.com. @ IN NS ns2.wangshibo.com. 24 IN PTR ns1.wangshibo.com. 23 IN PTR ns2.wangshibo.com. @ IN MX 10 mail.www.wangshibo.com. 4 IN PTR mail.www.wangshibo.com. 2 IN PTR www.wangshibo.com. 3 IN PTR ftp.wangshibo.com. 23 IN PTR win7.wangshibo.com.[root@test ~]# /etc/init.d/named restart Stopping named: [ OK ] Starting named: [ OK ]在客户端测试 [root@test2 ~]# cat /etc/resolv.conf search wangshibo.com nameserver 192.168.1.24[root@test2 ~]# dig www.wangshibo.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> www.wangshibo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29152 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2;; QUESTION SECTION: ;www.wangshibo.com. IN A;; ANSWER SECTION: www.wangshibo.com. 86400 IN A 192.168.1.2;; AUTHORITY SECTION: wangshibo.com. 86400 IN NS ns2.wangshibo.com. wangshibo.com. 86400 IN NS ns1.wangshibo.com.;; ADDITIONAL SECTION: ns1.wangshibo.com. 86400 IN A 192.168.1.24 ns2.wangshibo.com. 86400 IN A 192.168.1.23;; Query time: 1 msec ;; SERVER: 192.168.1.24#53(192.168.1.24) #注意这行,说明是主DNS从域名服务器解析的 ;; WHEN: Wed Jun 21 15:39:09 2017 ;; MSG SIZE rcvd: 1191) DNS从域名服务器配置 从域名服务器的ip为192.168.1.23 服务的安装过程在上面已介绍,此处省略 [root@test33 ~]# cp /etc/named.conf /etc/named.conf.bak [root@test33 ~]# vim /etc/named.conf options {listen-on port 53 { any; };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;bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic"; };logging { channel default_debug {file "data/named.run";severity dynamic;}; }; zone "." IN { type hint;file "named.ca"; };zone "wangshibo.com" IN {type slave;file "wangshibo.com_zone";masters {192.168.1.24;}; }; zone "1.168.192.in-addr.arpa" IN {type slave;file "192.168.1.zone";masters {192.168.1.24;}; };[root@test33 ~]# chmod 770 /var/named/ [root@test33 ~]# ll /var/named/ -d drwxrwx---. 6 root named 4096 Jun 21 15:44 /var/named/[root@test33 ~]# service named restart Stopping named: [ OK ] Generating /etc/rndc.key: [ OK ] Starting named: [ OK ]客户端测试 [root@test2 ~]# dig @192.168.1.23 www.wangshibo.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> @192.168.1.23 www.wangshibo.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12862 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2;; QUESTION SECTION: ;www.wangshibo.com. IN A;; ANSWER SECTION: www.wangshibo.com. 86400 IN A 192.168.1.2;; AUTHORITY SECTION: wangshibo.com. 86400 IN NS ns2.wangshibo.com. wangshibo.com. 86400 IN NS ns1.wangshibo.com.;; ADDITIONAL SECTION: ns1.wangshibo.com. 86400 IN A 192.168.1.24 ns2.wangshibo.com. 86400 IN A 192.168.1.23;; Query time: 1 msec ;; SERVER: 192.168.1.23#53(192.168.1.23) #注意这行,说明是从DNS从域名服务器解析的 ;; WHEN: Wed Jun 21 15:53:47 2017 ;; MSG SIZE rcvd: 119最后,在客户机的/etc/resolv.conf文件里添加上面主从DNS地址,就可以正常解析上面在/var/named/192.168.1.zone里设置的域名了 # vim /etc/resolv.conf nameserver 192.168.1.24 nameserver 192.168.1.23-----------------------------------------注意事项-------------------------------------------- a)如果还是无法解析,请返回主域名服务器的/var/named目录给区域配置文件加上权限(单纯是为了练习的话,可以加到最大权限到777) b)以上的练习都是在关闭防火墙与seLinux的状态下操作的,如果防火墙开启,可自行去添加规则
最后务必查看下/var/log/messages日志的内容,查看DNS主从是否启动正常,是否实现了同步。
本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/7060119.html,如需转载请自行联系原作者
Linux下DNS简单部署(主从域名服务器)相关推荐
- Linux下DNS服务器部署
DNS介绍 DNS查询过程 DNS资源记录类型 bind的安装和配置 bind概述 bind安装 bind配置 配置文件参数介绍 配置示例 Master DNS服务器配置示例 Slave DNS服务器 ...
- linux下dns服务器部署,linux系统下部署DNS服务器
一.实验环境: 准备一台cos7系统的虚拟机 二.实验要求:物理机和虚拟机要能相互通信 三.实验步骤: 1)安装bind.bind-chroot软件包 yum -y install bind bind ...
- 教你在Linux下构建主、从域名服务器!
Linux下构建主.从域名服务器 实验背景: 小诺公司目前搭建了邮件服务器.web服务器,现在需要使用Linux搭建一台DNS服务器为上面的服务提供域名解析,考虑到DNS服务器的安全性,还需要搭建 ...
- 华为关于LINUX的认证,华为认证:华为TA128在LINUX下的简单设置
华为认证:华为TA128在LINUX下的简单设置 华为认证:华为TA128在LINUX下的简单设置,来看看吧. 现以LINUX RH7为例说明TA128在LINUX下的使用方法. 启动您的X,如果还没 ...
- linux下最简单多线程单文件socks5代理proxy服务器程序(仅一个c文件,带详细注解)
2020.9.11 网上看的都比较复杂,GITHUB找了一个多线程的相对简单的MicroSocks项目,花了几周时间(没办法,菜鸟一个)改了一下,改成单文件,测试OK. /* wxl_socks5_p ...
- 用C语言编写一个Linux下的简单shell程序
这是一个简单的C程序,展示了如何进行系统调用执行logout cd ls pwd pid rm mkdir mv cp等命令,这是一个简单的命令解释程序shell,其源代码如下: #include & ...
- Linux下kafka的部署
Linux下kafka的部署 转载于:https://www.cnblogs.com/wuzm/p/11323797.html
- linux上用的端口转发工具,linux下最简单好用的的端口转发工具
linux下最简单好用的的端口转发工具 解压安装 tar zxvf rinetd.tar.gz make make install 编辑配置 vi /etc/rinetd.conf 0.0.0.0 8 ...
- dns日志级别 linux,linux下DNS服务器视图view及日志系统详解
linux下DNS服务器视图view及日志系统详解DNS服务器ACL:在named.conf文件中定义ACL功能如同bash当中定义变量,便于后续引用 ACL格式: acl ACL名称 { IP地址1 ...
最新文章
- 扬州市大学计算机专业录取分数线,“计算机网络技术”专业录取分数线
- shell 批量添加用户健壮版
- oracle中聚合比较函数,Oracle聚合函数/分析函数
- Java实现图的深度和广度优先遍历算法
- Python 爬虫 大量数据清洗 ---- sql语句优化
- View-屏幕坐标 Content-网页(内容)坐标 mScrollX和mScrollY-屏幕坐标偏移
- 百度三轮面试回来,想和Java程序员分享一下。
- java 函数式编程 示例_功能Java示例 第8部分–更多纯函数
- python与c的联系_Python与C的通信#
- android 不通过数据线打印日志_人人都可写代码-Android零基础编程-开发调试、APK编译04...
- OpenShift Security (1) - 红帽多集群安全管理 RHACS 的主要功能和技术架构
- python简单爬虫代码-python爬虫超简单攻略,带你写入门级的爬虫,抓取上万条信息...
- [原创]HierarchyView的实现原理和Android设备无法使用HierarchyView的解决方法
- python是如何进行内存管理的_Python是如何进行内存管理的?
- 开源转场库HYBControllerTransitions
- 林子雨 慕课答案2021新版
- 计算两点间距离C++
- 浅述SATA接口Raid、AHCI、IDE三种模式
- fn键台式计算机在哪,fn键在哪?小鱼教您fn键使用方法
- 喜马拉雅难登“喜马拉雅”
热门文章
- python自定义随机数_python:numpy.random模块生成随机数
- android 线性布局位置,android – 如何在线性布局中更改视图的位置.
- mysql使用sha256密码,MySQL5.6启用sha256_password插件
- python病毒扫描器_基于Python的病毒扫描机制
- Java学习总结:24
- Java项目:化妆品商城系统(java+Springboot+ssm+mysql+jsp+maven)
- 振动力学基础与matlab应用_【日文好书推荐】振动与噪声控制技术for机械设计者...
- APP转让时提示:您必须移除要转让的 App 的所有构建版本和测试员,并清除“测试信息”下的所有信息
- srcache_nginx redis 构建缓存系统应用一例
- UNIX网络编程--ioctl操作(十七)