Linux学习(十四)

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

1、简述DNS服务器原理
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器; 
第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回; 
第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址; 
第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址; 
第五步:重复第四步,直到找到正确的纪录;
第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户 。
2、DNS服务器主从搭建

二台主机,一台当主服务器(192.1685.11/24),一台当从服务器(192.168.5.12/24),配置 shanghb.com 域的主从架构 

(1)l两天主机安装BIND服务
yum install -y bind

(2)修改主服务配置文件/etc/named.conf

vim /etc/named.conf
//  listen-on port 53 { 127.0.0.1; };        #注释此项
//  allow-query     { localhost; };          #注释此项
allow-transfer {192.168.5.12;};             #添加此项

(3)新建域解析文件 /var/named/shanghb.com.zone

cp  /var/named/named.localhost  /var/named/shanghb.com.zone -p
vim shanghb.com.zone

$TTL 1D
@ IN SOA ns1 admin   (1 1D 10M 1W 1D)
           NS      ns1
           NS      ns2
ns1       A       192.168.5.11
ns2       A       192.168.5.12
www     A       192.168.5.11

(4)在主服务器域文件 /etc/named.rfc1912.zones 中添加"shanghb.com"域

vim /etc/named.rfc1912.zones 
#添加以下内容
zone "shanghb.com"  IN {                      #添加此项
    type master;
    file "shanghb.com.zone";
}

named-checkconf        #检查配置文件   
named-checkzone    shanghb.com  /var/named/shanghb.com.zone #检查数据库文件

rndc reload      #同步信息

(5)配置从服务器主配置文件 /etc/named.conf

vim /etc/named.conf
//  listen-on port 53 { 127.0.0.1; };    #注释此项
//  allow-query     { localhost; };    #注释此项
allow-transfer {none;};    #添加此项

(6)并在从服务器的域文件 /etc/named.rfc1912.zones 中添加域信息

vim /etc/named.rfc1912.zones 
#添加以下内容
zone "shanghb.com" IN {
        type slave;
        master {192.168.5.11;};
        file "slaves/shanghb.com.zone.slave";
};

ls  /var/named/slaves/
cat /var/named/slaves/shanghb.com.zone.slave

(7)启动主从服务器的DNS服务,并测试

systemctl start named

dig www.shanghb.com @192.168.5.11

dig www.shanghb.com@192.168.5.12

dig -t axfr shanghb.com @192.168.5.11
dig -t axfr shanghb.com @192.168.5.12

二、搭建并实现智能DNS

二台主机,各两块网卡,一个网卡(192.168.5.0/24)另外一个网卡(172.17.0.0/16)假设通过192.168.5.0/24网段访问DNS服务器,则智能解析到 1.1.1.1,通过172.17.0.0/16网段访问DNS服务器,则智能解析到 2.2.2.2,其它网段的解析到 3.3.3.3

(1)在DNS服务器上安装BIND服务

yum install -y bind

(2)在DNS服务器上配置文件/etc/named.conf的 acl 和 view

vim /etc/named.conf 

acl bjnet {    
        192.168.5.0/24;
};
acl tjnet {
        172.17.0.0/16;
};
acl othernet {
        any;
};



view view_bjnet{
        match-clients { bjnet; };
        include "/etc/named.rfc1912.zones.bjnet";
};
view view_tjnet{
        match-clients { tjnet; };
        include "/etc/named.rfc1912.zones.tjnet";
};
view view_other{
        match-clients { othernet; };
        include "/etc/named.rfc1912.zones.other";
};

删除以下内容:
    zone "." IN {
        type hint;
        file "named.ca";
    };
    
    include "/etc/named.rfc1912.zones";

(3)配置域文件

vim /etc/named.rfc1912.zones

zone "." IN {
    type hint;
    file "named.ca";
};


cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bjnet -p
vim /etc/named.rfc1912.zones.bjnet

zone "shanghb.com" IN {
        type master;
        file "shanghb.com.zone.bjnet";
};

cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.tjnet -p
vim /etc/named.rfc1912.zones.tjnet

zone "shanghb.com." IN {
        type master;
        file "shanghb.com.zone.tjnet";
};

cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.other -p
vim /etc/named.rfc1912.zones.other

zone "shanghb.com" IN {
        type master;
        file "shanghb.com.zone.other";
};

(4)配置解析文件

cd /var/named/

cp named.localhost  shanghb.com.zone.bjnet -p

$TTL 1D 
@ IN SOA ns1 admin (1 1D 10M 1W 1D) 
               NS      ns1 
ns1             A      192.168.5.11  
webserver       A      1.1.1.1
www         CNAME      webserver

cp named.localhost  shanghb.com.zone.tjnet -p

$TTL 1D 
@ IN SOA ns1 admin (1 1D 10M 1W 1D) 
               NS      ns1 
ns1             A      192.168.5.11  
webserver       A      2.2.2.2
www         CNAME      webserver

cp named.localhost  shanghb.com.zone.other -p

$TTL 1D 
@ IN SOA ns1 admin (1 1D 10M 1W 1D) 
               NS      ns1 
ns1             A      192.168.5.11  
webserver       A      3.3.3.3
www         CNAME      webserver

(5)客户端验证

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

(1) 准备源码文件到服务器

ll mariadb-10.2.25.tar.gz

(2) 解压安装包,并创建mysql用户和数据目录

tar -zxvf mariadb-10.2.25.tar.gz
useradd -r -s /sbin/nologin -d /data/mysql mysql
mkdir /data/mysql
chown mysql:mysql /data/mysql


(3) 安装相应依赖包

yum install -y 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 libdb-cxx-devel

(4) cmake编译安装

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \           [MySQL安装的根目录]
-DDEFAULT_CHARSET=utf8 \                            [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci \               [设置默认字符校对]
-DENABLED_LOCAL_INFILE=1 \                          [启用加载本地数据]
-DENABLE_DOWNLOADS=1 \                              [编译时允许自主下载相关文件]
-DEXTRA_CHARSETS=all \                              [使MySQL支持所有的扩展字符]
-DSYSCONFDIR=/etc \                                 [MySQL配置文件所在目录]
-DWITHOUT_TOKUDB=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \                   [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                   [MySQL的数据库引擎]
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \                 [MySQL的数据库引擎]
-DWITH_DEBUG=0 \                                    [禁用调试模式]
-DWITH_MEMORY_STORAGE_ENGINE=1 \                    [MySQL的数据库引擎]
-DWITH_MYISAM_STORAGE_ENGINE=1 \                    [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                  [MySQL的数据库引擎]
-DWITH_PARTITION_STORAGE_ENGINE=1  \                [MySQL的数据库引擎]
-DWITH_READLINE=1 \                                 [MySQL的readline library]
-DWITH_SSL=system \                                 [通讯时支持ssl协议]
-DWITH_ZLIB=system \                                [允许使用zlib library]
-DWITH_LOBWRAP=0 \
-DMYSQL_DATADIR=/data/mysql \                       [MySQL数据库文件存放目录]
-DMYSQL_USER=mysql \                                [MySQL用户名] 
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \       [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 \                             [MySQL的监听端口]
-DMYSQL_MAINTAINER_MODE=0

如果CMAKE编译失败,删除CMakeCache.txt。

make && make install

(5) 安装完成后,配置环境变量

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

. /etc/profile.d/mysql.sh

echo $PATH

/app/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

(6) 初始化数据库,生成数据库文件

cd /app/mysql

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

(7) 准备配置文件与启动脚本

mv /etc/my.cnf /etc/my.cnf.bak

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

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

(8) 启动数据库服务并登录测试

chkconfig --add mysqld

service mysqld start

ss  -ntlp|grep 3306

mysql

posted @ 2020-07-19 23:26  eric_shang  阅读(140)  评论(0编辑  收藏  举报