linux下DNS主从复制,view视图,转发,子域授权

我们知道相同网段内各网络设备之间是基于mac通信,而跨网络的不同主机之间是基于IP地址通信。随着世界主机数量爆炸式的增长,对于记住数目众多IP和想访问未知对方IP的主机成为一个痛点。通过基于人们熟知的文字访问主机应运而生。

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

DNS是一项十分基础服务,今天我们实现在linux下安装bind,DNS主从复制,view视图,转发,子域授权等功能。

安装包

bind-9.8.2-0.37.rc1.el6.x86_64.rpm

bind-libs-9.8.2-0.37.rc1.el6.x86_64.rpm

bind-utils-9.8.2-0.37.rc1.el6.x86_64.rpm

可直接使用 yum install -y bind安装自动解决依赖关系或者使用rpm分别安装各个包。

编辑/etc/named.conf配置文件

[[email protected] ~]# cp /etc/named.conf /etc/named.conf_bak  #先备份
[[email protected] ~]# vi /etc/named.conf    #先简单配置下
options {
    listen-on port 53 { 10.0.0.7; };  #监听IP及端口
    directory   "/var/named";
    allow-query     { any; };   #允许所有IP查询
    recursion yes;    #允许递归

};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "named.ca";
};
zone "magedu.com" IN {   #配置正向解析domain为magedu
    type master;     #模式为master
    file "magedu/magedu.zone";  #区域文件存放地点
};
zone "0.0.10.a.in-addr.arpa" IN {  #配置反像解析
    type master;     #模式为master
    file "magedu/10.0.0.zone";  
};
#include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
[[email protected] magedu]# named-checkconf  #检查配置文件

创建目录magedu,用于存放magedu域正向,反向解析文件

[[email protected] ~]# cd /var/named/
[[email protected] named]# mkdir magedu
[[email protected] named]# chown -R root:named magedu   #设置属主和数组
[[email protected] named]# chmod -R 750 magedu     #设置权限为750,否则会提示权限问题
[[email protected] named]# ls
data  dynamic  magedu  named.ca  named.empty  named.localhost  named.loopback  slaves

创建正向解析和反向解析文件

[[email protected] named]# cd magedu/
[[email protected] magedu]# vi magedu.zone   #创建正向解析文件
$TTL 600
@       IN      SOA     magedu.com.     dnsadmin.magedu.com. (
                                        20150915001
                                        3m
                                        3m
                                        3d
                                        1d)
        IN      NS      ns1.magedu.com.
ns1     IN      A       10.0.0.7
www     IN      A       10.0.0.11
bao     IN      A       10.0.0.12
[[email protected] magedu]# vi 10.0.0.zone  #创建反向解析文件
$TTL 600
@       IN      SOA     magedu.com.     dnsadmin.magedu.com. (
                                        20150915001
                                        3m
                                        3m
                                        3d
                                        1d)
        IN      NS      ns1.magedu.com.
7       IN      PTR     ns1.magedu.com.
11      IN      PTR     www.magedu.com.
12      IN      PTR     bao.magedu.com.
~                                          
[[email protected] magedu]# chmod 640 10.0.0.zone magedu.zone  #设置权限
[[email protected] magedu]# named-checkzone  magedu.com magedu.zone  #检查配置文件是否正确
zone magedu.com/IN: loaded serial 2971045817
OK
[[email protected] magedu]# named-checkzone 0.0.10.a.in-addr.arpa 10.0.0.zone 
zone 0.0.10.a.in-addr.arpa/IN: loaded serial 2971045817
OK

启动named,验证DNS是否能够正解,反解

[[email protected] magedu]# /etc/init.d/named start  #启动配置named
Starting named:                                            [  OK  ]
[[email protected] magedu]# dig -t A www.magedu.com @10.0.0.7  #正解www.magedu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -t A www.magedu.com @10.0.0.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19681
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		600	IN	A	10.0.0.11

;; AUTHORITY SECTION:
magedu.com.		600	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		600	IN	A	10.0.0.7

;; Query time: 4 msec
;; SERVER: 10.0.0.7#53(10.0.0.7)
;; WHEN: Tue Sep 15 21:06:12 2015
;; MSG SIZE  rcvd: 82

[[email protected] magedu]# dig -x 10.0.0.11 @10.0.0.7  #反解10.0.0.11

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -x 10.0.0.11 @10.0.0.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9952
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;11.0.0.10.in-addr.arpa.		IN	PTR

;; ANSWER SECTION:
11.0.0.10.in-addr.arpa.	600	IN	PTR	www.magedu.com.

;; AUTHORITY SECTION:
0.0.10.in-addr.arpa.	600	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		600	IN	A	10.0.0.7

;; Query time: 1 msec
;; SERVER: 10.0.0.7#53(10.0.0.7)
;; WHEN: Tue Sep 15 21:24:41 2015
;; MSG SIZE  rcvd: 102

经验证,DNS已OK

view视图,可以实现,不同客户端IP解析域名时得到不同解析,而相同IP每次解析IP相同,模拟智能DNS实现区域负载的目的。

下面搭建view视图

修改配置文件/etc/named.conf

options {
        listen-on port 53 { 10.0.0.7; };  #由于没有加路由,只有让不同网段使用不同的DNS
        listen-on port 53 { 192.168.0.106; };
        directory       "/var/named";
        allow-query     { any; };
        recursion yes;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view  "lan" {   #配置一个叫lan的视图
        match-clients { 192.168.0.0/24; };  #设置不同网段使用不同的解析文件
zone "." IN { 
        type hint;
        file "named.ca";
};
zone "magedu.com" IN {
        type master;
        file "magedu/magedu.zone";
};
zone "0.0.10.in-addr.arpa" IN {
        type master;
        file "magedu/10.0.0.zone";
};
};
view  "wlan" {   #配置一个叫wlan的视图
        match-clients { 10.0.0.0/24; };
zone "." IN {
        type hint;
        file "named.ca";
};
zone "magedu.com" IN {
        type master;
        file "magedu/magedu.zone.wlan";
};
zone "0.0.10.in-addr.arpa" IN {
        type master;
        file "magedu/10.0.0.zone.wlan";
};
};

#include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

根据/etc/named.conf配置,需要新加magedu.zone.wlan,10.0.0.zone.wlan配置文件

[[email protected] magedu] cp 10.0.0.zone 10.0.0.zone.wlan  #嘿嘿,偷个懒,然后再修改下里面内容
[[email protected] magedu] cp magedu.zone magedu.zone.wlan
[[email protected] magedu] chwon :named magedu.zone.wlan 10.0.0.zone.wlan  #修改属组
[[email protected] magedu] vi 10.0.0.zone.wlan 
$TTL 600
@		IN		SOA		magedu.com.		dnsadmin.magedu.com. (
										20150915003
										3m
										3m
										3d
										1d)
		IN		NS		ns1.magedu.com.
7		IN		PTR		ns1.magedu.com.
111 #原来的11改成了111 		IN		PTR		www.magedu.com.
122 #原来的12改成了122		IN		PTR		bao.magedu.com.
[[email protected] magedu] vi magedu.zone.wlan
$TTL 600
@		IN		SOA		magedu.com.		dnsadmin.magedu.com. (
										20150915003
										3m
										3m
										3d
										1d)
		IN		NS		ns1.magedu.com.
ns1		IN		A		10.0.0.7
www		IN		A		10.0.0.111  #把原来的11改成了111
bao		IN		A		10.0.0.122  #把原来的12改成了122

根据lan和wlan配置文件,如果是10.0.0.0/24网段的主机去dig -t a www.magedu.com则会返回10.0.0.111。

如果是192.168.0.0/24网段的主机去dig -t a www.magedu.com则会返回10.0.0.11。

下面我们验证是否正确

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:4e:f0:1a brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.105/24 brd 192.168.0.255 scope global eth0  #192.168.0.105
    inet6 fe80::20c:29ff:fe4e:f01a/64 scope link   
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:4e:f0:2e brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.8/24 brd 10.0.0.255 scope global eth1  #10.0.0.8
    inet6 fe80::20c:29ff:fe4e:f02e/64 scope link 
       valid_lft forever preferred_lft forever
[[email protected] ~]# dig -t a www.magedu.com @10.0.0.7

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t a www.magedu.com @10.0.0.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43891
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		600	IN	A	10.0.0.111
#使用10.0.0.7解析的结果

;; AUTHORITY SECTION:
magedu.com.		600	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		600	IN	A	10.0.0.7

;; Query time: 8 msec
;; SERVER: 10.0.0.7#53(10.0.0.7)
;; WHEN: Tue Sep 15 22:11:09 2015
;; MSG SIZE  rcvd: 82
[[email protected] ~]# dig -t a www.magedu.com @192.168.0.106

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t a www.magedu.com @192.168.0.106
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51307
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		600	IN	A	10.0.0.11
#使用192.168.0.106的ip解析的结果 

;; AUTHORITY SECTION:
magedu.com.		600	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		600	IN	A	10.0.0.7

;; Query time: 4 msec
;; SERVER: 192.168.0.106#53(192.168.0.106)
;; WHEN: Tue Sep 15 22:16:44 2015
;; MSG SIZE  rcvd: 82
时间: 2024-12-25 03:33:58

linux下DNS主从复制,view视图,转发,子域授权的相关文章

linux下DNS服务器之视图和轮询

案例4 视图  viwer 拓扑图: 1.查看帮助 [[email protected] ~]# vim /usr/share/doc/bind-9.8.2/sample/etc/named.conf [[email protected] ~]# cd /var/named/chroot/etc 2.[[email protected] etc]# vim named.conf 添加视图: 36 view    "lan-view" 37 { 38 zone "."

Linux下DNS服务器搭建详解

 Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析. 下面对DNS的工作流程及原理进行简要说明 DNS的查询流程:需要解析服务的Client先查看本机的/etc/hosts:若无结果,则client查看本地的DNS缓存服务器:若无结果,则查找所属域的首选DNS服务器:若此时本地首选DN

DNS的view视图功能

在一个庞大的网络中,由于网络的复杂性等原因造成的,我们访问某些互联网资源时,速度会非常慢,而这些资源的提供商,比如购物网站,他们为了让客户访问速度提升,于是会将多个业务服务器会放在不同的网络中,而我们期望访问到离我们最近的服务器,以达到最快的速度访问,这个时候我们的DNS服务器解析的功能就要能指向到不同网络中的对应的固定的服务器,这种功能的实现就需要用到DNS的view功能,这个时候DNS服务器起到的是分网的效果. DNS的View功能,需要在DNS服务配置文件中来定义,在视图中需要最先需要定义

Linux下使用Apache实现域名转发(Tomcat/JBOSS)

Linux下安装.配置JDK就不细说了,网上的资料很多; 在安装apache时可能会遇到诸多问题,譬如APR not found,pcre-config for libpcre not found等问题,这都是和系统的具体环境有关,详细的解决办法这里不细说,推荐几个解决的方案,可以综合起来根据具体情况排查问题,千万不要过于依赖某一个方案,要对症下药,链接地址: http://www.cnblogs.com/JemBai/archive/2012/11/07/2759139.html http:/

linux下mysql主从复制(第二篇读写分离) mycat 中间件

linux下mysql主从复制(第二篇读写分离) mycat 中间件 接着上篇文档补全,mysql 读写分离,在上篇文章案例下准备好Mycat-server-1.4-release-20151019230038-win.tar.gz 解压包 1.解压后的文件如下: 1.1 接下来进入到conf 目录下配置四个文件server.xml.schema.xml.rule.xml.log4j.xml 下面一一介绍 1.2 首先在我们主服务上面test 库下新建两张表如下: CREATETABLE`t_u

linux下DNS服务器视图view及日志系统详解

DNS服务器ACL:在named.conf文件中定义ACL功能如同bash当中定义变量,便于后续引用 ACL格式: acl ACL名称 { IP地址1或子网段1; IP地址2或子网段2; }; 例如:将内网172.17.0.0/16及192.168.1.0/24,127.0.0.0/8写成ACL acl intra { 172.17.0.0/16; 192.168.1/0/24; 127.0.0.0/8; }; 引用ACL: allow-recursion { intra; }; 2.视图vie

linux下打开关闭数据包转发

Linux下默认是禁止数据包转发的,但在某些特殊场合需要使用这一功能,所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包.这通常就是路由器所要实现的功能. 使能数据转发功能: echo 1 > /proc/sys/net/ipv4/ip_forward 禁止数据转发功能: echo 0 > /proc/sys/net/ipv4/ip_forward 版权声明:本文为博主原创文章,未经博主允许不得转载.

Linux 下DNS详解

配置之前先了解一下bind DNS服务器软件:BIND是一种开源的DNS(Domain Name System)协议的实现,包含对域名的查询和响应所需的所有软件.它是互联网上最广泛使用的一种DNS服务器,对于类UNIX系统来说,已经成为事实上的标准. 为了构架DNS服务器来解析域名或ip地址,我们得安装BIND和caching-nameserver.为了TCP和UDP53数据包能通过,我们也有必要配置路由器. 安装 BIND 软件包 1.安装 # yum -y install bind cach

LINUX下DNS的查看和配置

linux下好像没有专门的DNS查看命令. 用ifconfig命令也是看不到DNS的信息.(也可能是我不知道) 本机的DNS配置信息是在:/etc/resolv.conf [[email protected] etc]#cat resolv.conf nameserver xxx.xxx.xxx.xxx //这个就是你配置的或者是DHCP分配给你的DNS服务器地址,你也可以手动的修改此地址 dig和nslookup都能查 网关route add default gw {IP-ADDRESS} {