07-Linux中DNS详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了07-Linux中DNS详解相关的知识,希望对你有一定的参考价值。
九、配置主从DNS服务器实现域名解析容错
1、实验环境
zhangyujia.com(192.168.80.100)为主区域,com(192.168.80.200)为辅助区域。
2、修改zhangyujia.com(192.168.80.100)的区域配置文件——
vi /etc/named.rfc1912.zones
[named.rfc1912.zones]
zone "zhangyujia.com" IN {
type master;
file "named.zhangyujia.com";
allow-update { none; };
notify yes; #添加此条目(我这个区域如果有变化是否通知辅助区域:是)
allow-transfer { 192.168.80.200; }; #允许那些DNS把区域文件拷贝走
also-notify { 192.168.80.200; }; #如果有变化了通知那些DNS服务器
};
3、保存并退出,重启服务。
4、配置辅助DNS服务器com(192.168.80.200),创建区域——
vi /etc/named.rfc1912.zones
[named.rfc1912.zones]
zone "zhangyujia.com" IN {
type slave; #辅助区域
file "named.zhangyujia.com";
masters { 192.168.80.100; }; #主DNS服务器,可以写多个
};
5、保存并退出,重启服务。
6、验证:
a.查看区域传输(到底复没复制)——
tail -n 20 /var/log/messages
若看见
transfer of ‘zhangyujia.com/IN‘ from 192.168.80.100#53: Transfer completed: 1 messages, 10 records, 285 bytes, 0.001 secs (285000 bytes/sec)
类似的话则为复制成功。
b.测试DNS是否容错——
在Windows系统上配置两个DNS,进行ping操作,把这两个DNS的网卡任意拔掉一个,如果发现地址还能解析到,则证明DNS容错成功。
c.修改zhangyujia.com(192.168.80.100),测试辅助服务器是否修改能实现容错并通知给com(192.168.80.200)——
vi /var/named/named.zhangyujia.com
[named.zhangyujia.com]
$TTL 1D
@ IN SOA webserver.zhangyujia.com. zhangyj_public.163.com. (
12 ;serial #修改
1D ;refresh
1H ;retry
1W ;expire
3H ;minimum
);
IN NS webserver.zhangyujia.com.
IN NS ftpLinux.zhangyujia.com. #增加(com)
IN MX 10 mail
ftpLinux IN A 192.168.80.200 #增加(com)
webserver IN A 192.168.80.100
www IN A 10.7.1.53
ftp IN A 10.7.1.18
mail IN A 10.7.1.5
smtp IN CNAME mail
www IN TXT "This is a web"
oa IN A 11.11.11.11 #增加
web IN A 22.22.22.22 #增加
保存并退出,重启named服务,使用下列命令在com(192.168.80.200)查看日志——
tail -n 20 /var/log/messages
若发现
Jan 21 20:16:28 com named[2690]: zone zhangyujia.com/IN: transferred serial 12
说明DNS已经通知到了辅助DNS。
d.还可以断开zhangyujia.com的网卡,并ping web.zhangyujia.com,如果IP地址是22.22.22.22,则本实验成功。
e.把zhangyujia.com的网卡接上,在windows系统使用nslookup来进行测试——
> set type=soa
> zhangyujia.com
回车后,可看到有两个DNS负责域名解析。
Server: UnKnown
Address: 192.168.80.100
zhangyujia.com
primary name server = webserver.zhangyujia.com
responsible mail addr = zhangyj_public.163.com
serial = 12
refresh = 86400 (1 day)
retry = 3600 (1 hour)
expire = 604800 (7 days)
default TTL = 10800 (3 hours)
zhangyujia.com nameserver = webserver.zhangyujia.com
zhangyujia.com nameserver = ftpLinux.zhangyujia.com
webserver.zhangyujia.com internet address = 192.168.80.100
ftpLinux.zhangyujia.com internet address = 192.168.80.200
十、配置智能域名解析(只有LinuxDNS服务器才有)
0、应用场景
a.一个网站会在三大运营商的机房内都部署,用户用哪个运营商上网,他会根据你的网络环境来自动解析到对应运营商的IP的服务器。
b.一个企业有一个网站,在外网的IP是1.1.1.1,在内网访问的IP是2.2.2.2。如果我在公司上这个网站则解析到的IP是2.2.2.2,如果我在公司外上这个网站则解析到的ip是1.1.1.1。
1、实验环境
a.www.zhangyujia.com这个网站他在电信的IP地址是11.11.11.11,在联通的IP地址是22.22.22.22。
b.电信客户使用的IP是:192.168.80.0/25,联通客户使用的IP是:192.168.80.128/25。
PS:做实验时建议初始化一个干净的环境。(建议在配置好DNS重启之后)
2、删除主配置文件根区域定义,因为实现智能域名解析需要将所有的区域添加到view中——
vi /etc/named.conf
[named.conf]
#删除此部分(注意“listen-on port 53”、“allow-query”、“dnssec-enable”、“dnssec-validation”是否为最佳值)。
zone "." IN {
type hint;
file "named.ca";
};
3、删除区域定义配置文件"named.rfc1912.zones"并重新创建。
rm /etc/named.rfc1912.zones
vi /etc/named.rfc1912.zones
4、插入内容。
[named.rfc1912.zones]
view "dianxin" { #电信
match-clients { 192.168.80.0/25; }; #定义电信的客户端网段
zone "." IN {
type hint;
file "named.ca"; #根区域定义
};
zone "zhangyujia.com" IN {
type master;
file "named.zhangyujia.com.dianxin"; #电信区域文件名
allow-update { none; };
};
};
view "liantong" { #联通
match-clients { 192.168.80.128/25; }; #定义联通的客户端网段
zone "." IN {
type hint;
file "named.ca"; #根区域定义
};
zone "zhangyujia.com" IN {
type master;
file "named.zhangyujia.com.liantong"; #联通区域文件名
allow-update { none; };
};
};
5、创建电信运营商的区域文件(可复制之前的进行添加)并保存。
vi /var/named/named.zhangyujia.com.dianxin
[named.zhangyujia.com.dianxin]
$TTL 1D
zhangyujia.com. IN SOA webserver.zhangyujia.com. [email protected] (
0 ;serial
1D ;refresh
1H ;retry
1W ;expire
3H ;minimum
);
zhangyujia.com. IN NS webserver.zhangyujia.com.
zhangyujia.com. IN MX 10 mail
webserver IN A 192.168.80.100
www IN A 11.11.11.11 #添加或修改
6、创建联通运营商的区域文件(可复制之前的进行添加)并保存。
vi /var/named/named.zhangyujia.com.liantong
[named.zhangyujia.com.liantong]
$TTL 1D
zhangyujia.com. IN SOA webserver.zhangyujia.com. [email protected] (
0 ;serial
1D ;refresh
1H ;retry
1W ;expire
3H ;minimum
);
zhangyujia.com. IN NS webserver.zhangyujia.com.
zhangyujia.com. IN MX 10 mail
webserver IN A 192.168.80.100
www IN A 22.22.22.22 #添加或修改
7、重启DNS服务。
8、验证:根据上文“1、实验环境”在Windows客户端中正确的配置ip在ping www.zhangyujia.com即可得出不同结果。
十一、使用DNS支持镜像Web站点实现访问负载均衡
1、更改配置文件——
vi /var/named/named.zhangyujia.com.liantong
2、添加记录(相同域名可以写一个www也可以),保存并重启服务。
[named.zhangyujia.com.liantong]
www IN A 33.33.33.33
www IN A 44.44.44.44
3、验证:
在Windows客户端输入nslookup——
> www.zhangyujia.com
Server: UnKnown
Address: 192.168.80.100
Name: www.zhangyujia.com
Addresses: 44.44.44.44, 22.22.22.22, 33.33.33.33
> www.zhangyujia.com
Server: UnKnown
Address: 192.168.80.100
Name: www.zhangyujia.com
Addresses: 22.22.22.22, 33.33.33.33, 44.44.44.44
> www.zhangyujia.com
Server: UnKnown
Address: 192.168.80.100
Name: www.zhangyujia.com
Addresses: 33.33.33.33, 44.44.44.44, 22.22.22.22
多输入几次,如果发现“Addresses”属性第一个每次都不同,则实验成功。
PS:如果不希望每次访问网站都按照顺序进行负载均衡,可以这么设置——
vi /etc/named.conf
[named.conf]
#在options中添加
rrset-order { order random; };
PS:rrset-order 支持三个参数:fixed, random, cyclic。
fix 会将多个A记录按配置文件的顺序固定给出
random 会随机给出
cyclic 会循环给出
十二、直接域名和泛域名
1、概念
a.直接域名:实现直接使用域名(http://zhangyujia.com/)来访问网站;
b.泛域名:当要创建很多域名(a.zhangyujia.com,b.zhangyujia.com,...),并且它们都解析到同一台服务器时,一个泛域名*.zhangyujia.com就完成了所有操作,非常省事(应用场景例如博客);
2、配置直接域名。
vi /var/named/named.zhangyujia.com.liantong #我是接上一项来做的实验,当然也可以还原到一个干净的系统
#像这样直接添加一条对应的地址,保存并重启服务
zhangyujia.com. IN A 192.168.80.22
3、验证:在客户端ping zhangyujia.com,若得出ip地址与添加的记录相同,则配置成功。
4、配置泛域名。(优先级比较低)
vi /var/named/named.zhangyujia.com.liantong
#我是接上一项来做的实验,当然也可以还原到一个干净的系统
#像这样直接添加一条对应的地址,保存并重启服务
* IN A 55.55.55.55
5、验证:在客户端ping mail(随便写点内容均可).zhangyujia.com,若得出ip地址与添加的记录相同,则配置成功。
(已完结)
欢迎关注
新浪微博:https://weibo.com/yougazhang0506
微信公众平台:张雨嘉
我的网站:http://www.zhangyujia.cn
51CTO博客:http://blog.51cto.com/11099293
CSDN博客:http://blog.csdn.net/u013260195
以上是关于07-Linux中DNS详解的主要内容,如果未能解决你的问题,请参考以下文章