搭建本地DNS服务器

DNS解析流程:

以Linux系统为例,当客户端需要解析www.csdn.net域名时

1.首先客户端会查询浏览器中的DNS缓存(如果从浏览器开始进行DNS解析),如查询成功则返回相应IP地址。

2.如果没有查到则去查询操作系统DNS缓存,如查询成功则返回相应IP地址。

3.如果操作系统DNS缓存中仍然没有查到相应的IP地址,则下一步会查询该客户端中的hosts文件(DNS配置文件)。

4.如果仍未查询到结果,则客户端会向其本地DNS服务器发送DNS解析请求。(本地DNS服务器地址是通过DHCP服务获取的或者自己手动配置的)

之前几步称为递归查询

5.如果本地DNS服务器中依旧没有我们查询的域名的IP地址,则本地域名服务器会去向根DNS服务器去查询该域名的IP地址。

6.如果根DNS服务器也不知道该域名的地址,根DNS服务器则会根据收到的请求判断这个域名(.net)是谁来授权管理,并会返回一个负责该域名的顶级域名服务器的一个IP 给本地DNS服务器。

注意:本地DNS服务器查询时是根据域名从后往前的,也就是先查. ,再查.net ,再查.csdn ,最后再查www

7.本地DNS服务器收到该IP后会继续向该IP进行查询,如果管理(.net)的顶级域名服务器也无法解析到该域名对应的IP,则会返回管理csdn.net的权限域名服务器的IP给本地DNS服务器。

8.以此循环直到找到该域名的解析或者没有找到该域名的解析,此时本地DNS服务器会把解析的结果返回给客户端,以供客户端进行下一步操作。

5——8步称为迭代查询,都是由本地DNS服务器和其他各种DNS服务器进行交流的

DNS服务器配置

yum install bind -y

# 下载完进入/etc/named.conf进行配置

listen-on port 53 { any;}; 
# 监听所有IP通过53号端口访问dns服务 也可以指定IP或网段

directory   "/var/named"; 
# dns的工作目录

allow-query {any;}; 
# 指定能够进行DNS查询的客户端 可以指定IP 网段 和any所有人

DNS正向解析和反向解析

# 在/etc/named.conf文件中加入
# 正向解析
zone "csdn.com" IN {
           type master;
           file "csdn.zone"; 
 # 该路径为相对路径,绝对路径为前面指定的dns工作目录加file中的路径
};
# 反向解析
# 这里区域名中的的IP地址必须倒着写
zone "211.168.192.in-addr.arpa" IN {
        type master;
        file "named.192.168.211";
# 该路径为相对路径,绝对路径为前面指定的dns工作目录加file中的路径
    };

正向

# 在/var/named/csdn.zone中加入
$TTL 1D   #缓存时间
# 第一个@默认为配置文件中区域的名字即csdn.com
# dns.csdn.com 指定使用哪个dns服务器
# 这里也可以写@代表为dns. + csdn.com
#xxxx.qq.com 是邮箱
@ IN SOA dns.csdn.com xxxx.qq.com (
                               0      
#序列号来判断该dns是新是旧
                               1D     
#更新频率,定义slave多久向master要求数据更新
                               1H     
#重新尝试时间,如果slave无法与master连接则定义多久尝试重连
                               1W
#失效时间,如果一直尝试连接失败,
#则当超过定义的时间后slave不会再尝试连接并删除该区域文件信息
                               3H 
#缓存时间,该记录会被其他dns服务器缓存中保持多久
)
   IN NS dns.csdn.com.
#指定可使用的dns服务器,可以指定多条,但此时不能写第二个@
#取而代之的是指定的dns服务器(SOA 后面那个参数)

#指定域名转换为IP地址
dns IN A 192.168.211.126
#表示的是dns.csdn.com
mail IN A 192.168.211.127
# mail + 区域名(csdn.com)
ftp.csdn.com. IN A 192.168.211.128
# 也可以直接指定完整域名
www.csdn.com. IN A 192.168.79.129
web IN CNAME www
# 意思为web.csdn.com 转化为和www.csdn.com一样的IP地址

反向

# 在/var/named/named.192.168.211 中写入

$TTL 1D
@ IN SOA dns.csdn.com. XXXX.csdn.com (
                                 0
                                 1D
                                 1H
                                 1W
                                 3H )
    IN NS dns.csdn.com.
126 IN PTR dns.csdn.com.
127 IN PTR mail.csdn.com.
128 IN PTR ftp.csdn.com.
100 IN PTR nfs.csdn.com
#把IP转换为域名
#区域192.168.211 + 126|127|128|100

测试

host 域名|IP  dns服务器IP地址

nslookup 域名|IP dns服务器IP地址

dig -t A 域名 @dns服务器IP地址

dig -x IP地址 @dns服务器IP地址

DNS主从同步

主机A(192.168.79.129)为主DNS服务器,主机B(192.168.79.128)为从DNS服务器

主DNS服务器配置

# 先在主机A的/etc/named.conf文件下加入allow-transfer {192.168.79.128;};

# 在listen-on 和directory 那个位置加 ,写入从DNS服务器的地址

# 之后在相应区域的文件中加入 IN NS slave.csdn.com.

# 和slave.csdn.com. IN A 192.168.79.128

从DNS服务器配置

# /etc/named.conf 中加入
listen-on port 53 { 192.168.79.129;192.168.79.128; };


zone "csdn.com" IN {
               type slave;
               file "slaves/csdn.zone";
               masters {192.168.79.129;};
 
};

 之后systemctl restart named 重启俩个服务器的named服务

之后主从服务器都配置完成

在主机B从dns服务器上查询

之后主DNS服务器如要更新数据让从DNS服务器也同步的话

主DNS服务器在相应区域对应的文件下加入 域名 IN A IP地址

之后把序列号改成比原来大的数即可(序列号位置上面有写)

记得添加后把序列号改大,只有这样从DNS服务器才能认为该dns解析文件是新的,

否则从DNS服务器会认为该文件是旧的所以不会进行同步。

DNS view

实现 根据请求地址的IP来返回同一域名的不同IP

案例:

假如现有俩个服务器,且这俩个服务器一个在西安,一个在上海。

现要求西安的IP进行DNS解析时把域名解析成西安服务器的IP

上海的IP进行DNS解析时把域名解析成上海服务器的IP

且这俩个域名是相同的

这里便可以用view视图来解决问题

# 把配置文件改一下 把原本的区域放入视图中
#上海
view "shanghai"{
match-clients{192.168.79.128;};
#匹配的IP
zone "." IN {
        type hint;
        file "named.ca";
};
zone "csdn.com" IN {
           type master;
           file "csdn.zone";
};
zone "211.168.192.in-addr.arpa" IN {
        type master;
        file "named.192.168.211";
    };
include "/etc/named.rfc1912.zones";
};
#西安
view "xian"{
match-clients{192.168.79.129;};
#匹配的IP
zone "." IN {
        type hint;
        file "named.ca";
};
zone "csdn.com" IN {
           type master;
           file "csdn2.zone";
};
include "/etc/named.rfc1912.zones"; 
};

像上图中的match-clients就是匹配进行dns解析的请求方的地址,匹配上的话就用这个区域的dns解析。其余和之前的配置一样

不同IP访问同一个DNS服务器,相同的域名解析出不同的IP

nfs自动挂载

yum install autofs -y

下载完后进入/etc/auto.master

# 加入
/nfs  /etc/autofs/auto.nfs
# 挂载父目录,之后挂载的所有目录都在这个目录里       
# 配置文件的位置,决定该刚才配置的父目录里有哪几个挂载目录

进入设置的配置文件/etc/autofs/auto.nfs

#加入
shared 192.168.79.129:/nfs/shared
upload 192.168.79.129:/nfs/upload

#挂载目录的名字 
#nfs服务器的名字 
#nfs服务对应共享文件夹的位置

然后重启autofs服务即可,之后当客户端进入nfs文件夹中挂载的目录时,autofs就会帮我们自动挂载相应的nfs服务器上的目录。当我们退出挂载目录一段时间后autofs就会自动帮我们卸载该目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值