14、DNS服务与mariadb安装

1、简述DNS服务器原理,并搭建主-辅服务器。

1)DNS服务器原理

DNS(Domain Name System)域名系统,是解决互联网上机器命名的一种系统。
DNS查询类型:递归查询、迭代查询
DNS名称解析:
 从名称到IP的查询叫做正向解析
 从IP到名称的查询叫做反向解析。
 如果DNS服务器至少解析了一个或一个以上的域叫做DNS主服务器或者DNS辅助服务器,如果不负责任何解析叫做DNS缓存服务器。

DNS的解析过程:
  1. 当客户端访问时,先查自己的hosts文件,如有过则返回结果;
  2. 当客户端hosts文件中没有结果时,则查本地缓存,有则返回结果;
  3. 本地缓存没有结果时,则首先会找TCP/IP参数中设置的首选DNS服务器,即本地DNS服务器,此服务器收到查询时,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户端,完成解析,此解析具有权威性;
  4. 如果要查询的域名由本地DNS服务器区域解析,则去查服务器缓存,如果该服务器中缓存了此网址的映射关系,则调用映射完成解析,此解析不具有权威性;
  5. 如果本地DNS服务器解析失败,则根据本地DNS服务器是否设置转发器进行查询。
     ①如果未设置转发模式,则本地DNS将请求发至13台根DNS,根DNS在收到请求后pad域名的管理者,并返回负责该域名服务器的IP,本地DNS服务器收到IP后,如自己无法解析,则会找管理该域名的下一级DNS服务器给本地DNS服务器,本地DNS服务器收到地址后,就会查询网址的域服务器,一直迭代查询直至找到域名主机;
     ②如果是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,如不能解析,则继续转发至上上级,依次迭代循环,直至找到域名主机。
     不管是本地DNS服务器用的是转发还是根提示,最终都是把结果返回给本地DNS服务器,然后由本地DNS服务器将结果返回给客户端。
2)搭建主从服务器

主服务器:192.168.45.202
从服务器:192.168.45.203
1)搭建主DNS服务器
第一步:安装bind,并启动服务

[root@centos7 ~]# yum install bind -y
[root@centos7 ~]# systemctl start named

第二步:修改bind全局配置文件/etc/named.conf,修改listen-on 和allow-query


第三步:在解析区域文件中添加主服务器解析区域
vim /etc/named.rfc1912.zones

 zone "yyt.com" IN {
      type master;
      file "yyt.com.zone";
  };

第四步:配置主服务器解析区域文件yyt.com.zone,并关联从DNS服务器
cp /var/named/localhost /var/named/yyt.com.zone
vim /var/named/yyt.com.zone

 $TTL 1D
 @   IN SOA  master.yyt.com. admin.yyt.com. (
                       2   ; serial
                       1D  ; refresh
                       1H  ; retry
                       1W  ; expire
                       3H )    ; minimum
       NS  master
       NS ns1 #关联从DNS服务器地址
 ns1 A 192.168.45.203
 master A 192.168.45.202
 ftp A 1.1.1.1
 db A 2.2.2.2
 www CNAME websrv
 websrv A 192.168.45.202

第五步:重新启动named服务
[root@centsystemctl start named
2)搭建从服务器
第一步:安装bind并启动服务

[root@centos7 ~]# yum install bind -y
[root@centos7 ~]# systemctl start named

第二步:修改bind全局配置文件/etc/named.conf,注销listen-on 和allow-query行

options {
#       listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
#       allow-query     { localhost; };

第三步:在解析区域文件中添加从服务器解析区域,type设置为slave,并指定master服务器
vim /etc/named.rfc1912.zones

zone "yyt.com" IN {
        type slave; #
        masters { 192.168.45.202; };
        file "slaves/yyt.com.zone.slave";
};

第四步:由于在建立主服务器zone文件中已经关联了从服务器地址,所以在从服务器的named.rfc1912.zones文件中设置好从服务器zone之后,启动服务,就会自动创建从服务器zone文件yyt.com.zone.slave

[root@centos7 ~]# systemctl start named
[root@centos7 ~]# cd /var/named/slaves/
[root@centos7 slaves]# ll
total 4
-rw-r--r-- 1 named named 456 Jul 22 00:19 yyt.com.zone.slave

3)验证主从同步
将主服务器zone文件中添加一条解析,并修改序号之后,重启服务
vim /var/named/yyt.com.zone

$TTL 1D
@   IN SOA  master.yyt.com. admin.yyt.com. (
                     3   ; serial
                     1D  ; refresh
                     1H  ; retry
                     1W  ; expire
                     3H )    ; minimum
     NS  master
     NS ns1
ns1 A 192.168.45.203
master A 192.168.45.202
ftp A 1.1.1.1
db A 2.2.2.2
www CNAME websrv
websrv A 192.168.45.202
ftp A 3.3.3.3 #新增解析
* A 192.168.45.202

主服务器重启服务,并查看从服务器的zone文件是否有变化

[root@centos7 named]# rndc reload
server reload successful
[root@centos7 slaves]# ll
total 4
-rw-r--r-- 1 named named 462 Jul 22 19:46 yyt.com.zone.slave

2、搭建并实现智能DNS。

第一步:安装bind,并启动服务

[root@centos7 ~]# yum install bind -y
[root@centos7 ~]# systemctl start named

第二步:配置named.conf

acl henannet {
        192.168.45.0/24;
};

acl othernet {
        any;
};

options {
        listen-on port 53 { localhost; };
        ...
        allow-query     { any; };
        ...
};

第三步:建立zone文件

[root@centos7 named]# cp named.localhost yyt.com.zone.hn -p
[root@centos7 named]# cp named.localhost yyt.com.zone.other -p

vim /var/named/yyt.com.zone.hn

$TTL 1D
@       IN SOA  ns1 admin (
       0       ; serial
       1D      ; refresh
       1H      ; retry
       1W      ; expire
       3H )    ; minimum
        NS      ns1
ns1 A 192.168.45.204
www A 192.168.45.100

vim /var/named/yyt.com.zone.other

$TTL 1D
@       IN SOA  ns1 admin (
       0       ; serial
       1D      ; refresh
       1H      ; retry
       1W      ; expire
       3H )    ; minimum
        NS      ns1
ns1 A 192.168.45.204
www A 8.8.8.8

第四步:在named.conf文件中建立view

view view_henan {
        match-clients { henannet; };
        zone "." IN {
                type hint;
                file "named.ca";
        };
        zone "yyt.com" IN {
                type master;
                file "yyt.com.zone.hn";
        };
        include "/etc/named.rfc1912.zones";
        include "/etc/named.root.key";
};

view view_other {
        match-clients { othernet; };
        zone "." IN {
                type hint;
                file "named.ca";
        };
        zone "yyt.com" IN {
                type master;
                file "yyt.com.zone.other";
        };
        include "/etc/named.rfc1912.zones";
        include "/etc/named.root.key";
};

第五步:重启named服务

[root@centos7 ~]# systemctl restart named
使用其他机器进行验证:

用192.168.45.204进行解析,返回henannet区域IP192.168.45.100

[root@centos7 ~]# dig -t A www.yyt.com @192.168.45.204

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> -t A www.yyt.com @192.168.45.204
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58930
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.yyt.com.           IN  A

;; ANSWER SECTION:
www.yyt.com.        86400   IN  A   192.168.45.100

;; AUTHORITY SECTION:
yyt.com.        86400   IN  NS  ns1.yyt.com.

;; ADDITIONAL SECTION:
ns1.yyt.com.        86400   IN  A   192.168.45.204

;; Query time: 1 msec
;; SERVER: 192.168.45.204#53(192.168.45.204)
;; WHEN: Wed Jul 22 23:22:29 CST 2020
;; MSG SIZE  rcvd: 90

用192.168.0.129进行解析,返回other IP 8.8.8.8

[root@centos7 ~]# dig -t A www.yyt.com @192.168.0.129

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> -t A www.yyt.com @192.168.0.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41646
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.yyt.com.           IN  A

;; ANSWER SECTION:
www.yyt.com.        86400   IN  A   8.8.8.8

;; AUTHORITY SECTION:
yyt.com.        86400   IN  NS  ns1.yyt.com.

;; ADDITIONAL SECTION:
ns1.yyt.com.        86400   IN  A   192.168.45.204

;; Query time: 1 msec
;; SERVER: 192.168.0.129#53(192.168.0.129)
;; WHEN: Wed Jul 22 23:23:11 CST 2020
;; MSG SIZE  rcvd: 90

3、编译安装Mariadb,并启动后可以正常登录

第一步:准备数据目录和用户

mkdir /data/mysql
useradd -r -s /sbin/nologin -d /data/mysql/ mysql
chown mysql.mysql /data/mysql

第二步:安装相关依赖包

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

第三步:解压源文件

[root@centos7 data]# tar -xvf mariadb-10.2.25.tar.gz

第四步:源码编译安装,此步骤过程比较漫长

cd 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
make && make install

第五步:准备环境变量

echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

第六步:生成数据库文件

cd /app/mysql/
scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql

第七步:准备配置文件

cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf

第八步:准备启动脚本

cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

第九步:启动服务

chkconfig --add mysqld
service mysqld start
[root@centos7 etc]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.2.25-MariaDB-log Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> 

安装完成,可以正常登陆。

你可能感兴趣的:(14、DNS服务与mariadb安装)