我见过最好的Linux教程——DNS服务器搭建
恰同学少年,风华正茂。
前言
说到DNS,相信大家非常的耳熟,那是因为在访问网站时都需要用到服务,可以说是掌握了网页的命脉啊
Dns服务器主要是用于帮助用户方便访问网站,在访问某一网站时,可以通过dns服务器来进行解析,
这样就可以在不知道主机ip地址的情况下通过它的名字来进行访问。
那DNS究竟是怎么样进行运作,有应该如何的安装呢?这一篇文章就来为大家揭开dns神秘的面纱。
Dns服务简介
在正式开始学习前,我先为大家介绍个文件
/etc/hosts哈哈,大家对这个文件肯定不陌生吧,没错他就是dns的前身,最早期没有dns的主机,就是利用
/etc/hosts文件来实现域名解析这个功能的,每一台主机上都保存了一份本地网中全部主机及其对应的ip地址清单。
好家伙 看着头都大了
但是人脑对于一连串的数字字母,记忆起来确实很吃力,这样,当需要访问某一个主机时就要先查询对方的ip地址,确实很麻烦 也增加了访问网页的复杂性,为了解决这个难题,BIND就应运而生啦, 这一套分布式管理主机ip地址的系统就是目前全世界使用最广泛的域名解析系统
DNS查询原理
在dns的系统中提供dns解析的主机被称为dns服务器或者域名服务器,而进行“域名查询“请求的主机,则被成为dns客户端,不过在dns客户端中,也有简单的dns查询服务,其中包括
/etc/host.conf resolv和
hosts3
在这里就不为大家具体解释这三个文件了。
通常在进行测试调试过程中需要某一个网站的解析 我通常就喜欢用hosts 文件来进行解析 。
因为确实是方便啊 嘿嘿嘿。
后面会为大家简单介绍一下hosts文件的使用方法
切入正题
在客户端发送查询信息中包含最重要的一条信息:
被指定的dns域名 必须为完全合格域名(FQDN)
Ps :(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。(通过符号“.”)。
说一下 当客户端需要域名解析是 并不是直接向域名解析服务器进行解析,而是首先在本机进行域名解析的操作 如果解析不到,才向域名解析服务器发送解析请求。
linux客户端默认解析就是首先查询host文件 如果host文件中查询不到 才会向dns服务器发送请求
hosts文件的使用方法
第一部分的内容是主机的ip地址 第二部分是域名 第三部分是主机的别名
DNS服务器安装搭建
Linux系统下假设DOS服务器通常时使用Bind程序来实现的。Bind是最知名域名服务器软件,他完整的实现了DNS协议规定的各种功能。可以在各种主流的操作系统平台上运行,并且被作为许多供应商的unix标准配置封装在产品中。
Bind基础命令
yum install -y bind bind-utils ##Bind安装包 utils是一个bind测试工具(可选择)
service named start ##开启命令
service named stop ##关闭服务命令
service named restart ##重新启动服务命令
chkconfig named on ##设置开机自启动
安装成功 我们继续往下走
与其他服务器相比,Bind的配置文件结构要复杂得多,而且在配置文件不正确的时候,Bind也无法运行。我先讲一套最简单的配置文件,使Bind能正常运行起来,并具有初步的域名解析功能。
我们首先进入主配置文件
[root@Demo ~]# vim /etc/named.conf
10 options { 11 listen-on port 53 { any; }; ##开启端口监听 DNS为53号端口 12 listen-on-v6 port 53 { ::1; }; 13 directory "/var/named"; 14 dump-file "/var/named/data/cache_dump.db"; 15 statistics-file "/var/named/data/named_stats.txt"; 16 memstatistics-file "/var/named/data/named_mem_stats.txt"; 17 allow-query { any; }; ##允许所有 18 recursion yes; 19 20 dnssec-enable no ; ##可选择yes 21 dnssec-validation no; ##可选择yes 22 dnssec-lookaside auto; 23 24 /* Path to ISC DLV key */ 25 bindkeys-file "/etc/named.iscdlv.key"; 26 27 managed-keys-directory "/var/named/dynamic"; 28 }; 29 30 logging { 31 channel default_debug { 32 file "data/named.run"; 33 severity dynamic; 34 }; 35 }; 36 37 zone "." IN { ##定义一个名为“.”的区 查询类为IN 38 type hint; ## 类型为hint 39 file "named.ca"; ##区文件是named.ca 40 }; 41 42 include "/etc/named.rfc1912.zones"; ##辅助区域配置文件,除了根域之外,其余所有区域配置都建议在这个配置文件中,主要为了方便管理,不会轻易破坏主配置文件。 43 include "/etc/named.root.key"; 44 ~
进入文件 创建正反向解析区域
[root@Demo ~]# vim /etc/named.rfc1912.zones
修改内容如下:
13 zone "Demo.com" IN { ##定义域名 14 type master; 15 file "named.localhost"; ##正向解析文件 16 allow-update { none; }; 17 }; 31 zone "0.168.192.in-addr.arpa" IN { ##定义IP地址段 32 type master; 33 file "named.loopback"; ##反向解析文件 34 allow-update { none; }; 35 };
进入正向解析文件
[root@Demo ~]# vim /var/named/named.localhost
添加需要解析的域名:
1 $TTL 1D 2 @ IN SOA @ rname.invalid. ( 3 0 ; serial 4 1D ; refresh 5 1H ; retry 6 1W ; expire 7 3H ) ; minimum 8 NS @ 9 A 127.0.0.1 10 AAAA ::1 11 www A 192.168.0.1 12 test A 192.168.0.2 13 demo A 192.168.0.3
进入反向解析文件
[root@Demo ~]# vim /var/named/named.loopback
添加反向解析
1 $TTL 1D 2 @ IN SOA @ rname.invalid. ( 3 0 ; serial 4 1D ; refresh 5 1H ; retry 6 1W ; expire 7 3H ) ; minimum 8 NS @ 9 A 127.0.0.1 10 AAAA ::1 11 PTR localhost. 12 1 PTR www.Demo.com 13 2 PTR test.Demo.com 14 3 PTR demo.Demo.com
完成重启dns服务
[root@Demo ~]# service named restart Stopping named: [ OK ] Starting named: [ OK ] [root@Demo ~]#
使用nslookup测试 解析成功
测试时要将DNS服务器的ip地址添加到网卡地址中哦
[root@Demo ~]# echo "DNS1=192.168.1.103" >> /etc/sysconfig/network-scripts/ifcfg-eth0
然后重启网卡服务和DNS服务器
[root@Demo ~]# nslookup > www.Demo.com Server: 192.168.1.103 Address: 192.168.1.103#53 Name: www.Demo.com Address: 192.168.0.1 > 192.168.0.2 Server: 192.168.1.103 Address: 192.168.1.103#53 2.0.168.192.in-addr.arpa name = test.Demo.com.0.168.192.in-addr.arpa. >
这样一个简单的DNS服务器就完成了 后面我会在为大家讲包括子域DNS、辅助DNS、缓存DNS还有rndc控制域名服务器等
后面我会再为大家写一篇对DNS主配置文件和关于DNS的配置文件的一些详解。
- 我见过最好的Linux教程——FTP文件传输协议原来这么简单
- 我见过最好的Linux教程——送你一台属于你自己的DHCP服务器
- 我见过最好的Linux教程——关于用户的实战操作命令以及详细参数详解
- 我见过最好的Linux教程——超详细Vim文本编辑器详解
- 我见过最好的Linux教程——超详细用户组的实例操作命令
- 我见过最好的Linux教程——史上最详细的用户详解(用户配置文件详解)
- 我见过最好的Linux教程——关于网络命令ifconfig详解
- Linux搭建DNS服务器
- Linux CentOS服务器搭建与初始化配置教程
- 零基础学习教程之Linux下搭建android开发环境
- Red Hat Linux DNS服务器搭建
- Linux下DNS服务器搭建详解
- Siege—最好的Linux下Web服务器性能/压力测试工具,Siege使用教程详细说明
- 目前见过最好的入门教程
- linux搭建单区域DNS服务器
- VMware安装Ubuntu教程,Linux下搭建Android开发环境
- Linux负载均衡环境搭建-1 Linux下安装Nginx详细图解教程
- ubuntu(linux)搭建LAMP全教程
- Linux下DNS服务器搭建详解 推荐
- Linux centeros 6.5 搭建nexus maven私服搭建教程