1、简述DNS服务器原理,并搭建主-辅服务器
DNS的工作原理及过程分下面几个步骤:
第一步:客户机提出域名解析请求,并将该请求送出给本地的域名办事器。
第二步:当本地的域名办事器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名办事器就直接把查询的结果返回。
第三步:如果本地的缓存中没有该纪录,则本地域名办事器就直接把请求发给根域名办事器,然后根域名办事器再返回给本地域名办事器一个所查询域(根的子域) 的主域名办事器的地址。
第四步:本地办事器再向上一步返回的域名办事器送出请求,然后接受请求的办事器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名办事器的地址。
第五步:重复第四步,直到找到正确的IP
主-辅服务器
##主服务器(192.168.8.7)
[root@matserA ~]# vim /etc/named.rfc1912.zones
zone "magedu.com" {
type master;
file "magedu.com.zone";
};
[root@matserA ~]# vim /etc/named.conf
options {
// listen-on port 53 { 127.0.0.1; };
allow-query { any; };
allow-transfer {192.168.8.17;}; 添加一行
[root@matserA ~]# vim /var/named/magedu.com.zone
$TTL 1D
@ IN SOA master.magedu.com. admin(1 1D 1H 1W 2D)
NS ns1
NS ns2
ns1 A 192.168.8.7
ns2 A 192.168.8.17
master A 192.168.8.7
ftp A 192.168.8.9
db A 192.168.8.8
www CNAME websrv
websrv A 2.2.2.3
websrv A 2.2.2.4
[root@matserA ~]# systemctl start named
##从服务器(192.168.8.17)
[root@CentOS7 ~]# vim /etc/named.rfc1912.zones
zone "magedu.com" {
type slave;
masters {192.168.8.7;};
file "slaves/magedu.com.zone.slave";
};
[root@CentOS7 ~]# vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
allow-query { any; };
allow-transfer {none;};
检测
[root@CentOS7 ~]# dig ftp.magedu.com @192.168.8.7
2、搭建并实现智能DNS
[root@CentOS7 /etc]# cat /etc/named.conf #一
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
allow-transfer {none;};
dnssec-enable no;
dnssec-validation no;
acl shanghainet { #最下面加
172.16.6.0/24;
172.16.7.0/24;
};
acl beijingnet {
192.168.8.0/24;
192.168.9.0/24;
};
acl chengdunet {
172.31.0.0/16;
172.32.0.0/16;
};
acl othernet {
any;
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view view_shanghai {
match-clients {shanghainet;};
include "/etc/named.rfc1912.zones.sh";
};
view view_beijing {
match-clients {beijingnet;};
include "/etc/named.rfc1912.zones.bj";
};
view view_chengdu {
match-clients {chengdunet;};
include "/etc/named.rfc1912.zones.cd";
};
view view_other {
match-clients {othernet;};
include "/etc/named.rfc1912.zones";
};
include "/etc/named.root.key";
#######################################
[root@CentOS7 ~]# vim /etc/named.rfc1912.zones
zone "magedu.com" {
type master;
file "magedu.com.zone.other";
};
[root@CentOS7 ~]# vim /etc/named.rfc1912.zones.sh
zone "magedu.com" {
type master;
file "magedu.com.zone.sh";
};
[root@CentOS7 ~]# vim /etc/named.rfc1912.zones.bj
zone "magedu.com" {
type master;
file "magedu.com.zone.bj";
};
[root@CentOS7 ~]# vim /etc/named.rfc1912.zones.cd
zone "magedu.com" {
type master;
file "magedu.com.zone.cd";
};
[root@matserA /etc]# chgrp named /etc/named.rfc*
[root@matserA /etc]# chmod 640 /etc/named.rfc*
#####################################################
[root@CentOS7 /etc]# cat /var/named/magedu.com.zone.sh
$TTL 1D
@ IN SOA ns1 admin (1 1H 1H 1D 3H)
NS ns1
ns1 A 192.168.8.17
www CNAME websrv
websrv A 172.16.6.8
websrv A 172.16.7.8
[root@CentOS7 /etc]# cat /var/named/magedu.com.zone.bj
$TTL 1D
@ IN SOA ns1 admin (1 1H 1H 1D 3H)
NS ns1
ns1 A 192.168.8.17
www CNAME websrv
websrv A 192.168.8.8
websrv A 192.168.9.8
[root@CentOS7 /etc]# cat /var/named/magedu.com.zone.cd
$TTL 1D
@ IN SOA ns1 admin (1 1H 1H 1D 3H)
NS ns1
ns1 A 192.168.8.17
www CNAME websrv
websrv A 172.31.0.7
websrv A 172.32.7.7
[root@CentOS7 /etc]# cat /var/named/magedu.com.zone.other
$TTL 1D
@ IN SOA ns1 admin (1 1H 1H 1D 3H)
NS ns1
ns1 A 192.168.8.17
www CNAME websrv
websrv A 8.8.8.8
websrv A 9.9.9.9
[root@CentOS7 /etc]# chgrp named /var/named/magedu.com*
3、编译安装Mariadb,并启动后可以正常登录
#####做准备用户和数据目录#####
[root@CentOS7 ~]# yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel libdb4-cxx-devel #安装环境
[root@CentOS7 ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql
[root@CentOS7 ~]# mkdir /data/mysql
[root@CentOS7 ~]# chown mysql.mysql /data/mysql
[root@CentOS7 ~]# tar xvf mariadb-10.2.25.tar.gz
[root@CentOS7 ~]# cd mariadb-10.2.25/
#################################################编译开始
[root@CentOS7 ~/mariadb-10.2.25]#cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
[root@CentOS7 ~/mariadb-10.2.25]# make -j 8 && make install
#############################################编译完成
[root@CentOS7 ~/mariadb-10.2.25]# cd /app/mysql/
[root@CentOS7 /app/mysql]# ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql #生成数据库
[root@CentOS7 /app/mysql]# cp support-files/my-huge.cnf /etc/my.cnf #准备配置文件
[root@CentOS7 /app/mysql]# cp support-files/mysql.server /etc/init.d/mysqld #准备启动脚本
[root@CentOS7 /app/mysql]# chkconfig --add mysqld #启动服务
[root@CentOS7 /app/mysql]# service mysqld start
[root@CentOS7 /app/mysql]# echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh #准备环境变量
[root@CentOS7 /app/mysql]# . /etc/profile.d/mysql.sh
[root@CentOS7 /app/mysql]# mysql #启动