1、简述DNS服务器原理,并搭建主-辅服务器
DNS服务器原理:参考:DNS原理及其解析过程
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
第五步:重复第四步,直到找到正确的纪录。
第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
搭建主-辅服务器(CentOS8:192.168.9.105作为主DNS服务器,7:192.168.9.103作为从服务器,6测,并实现正反解析):
1️⃣安装DNS软件包bind和域名解析工具nslookup软件包bind-utils
yum install -y bind bind-utils
2️⃣修改DNS配置文件,允许本网段监听端口和允许任何网段访问DNS服务器
vim /etc/named.conf
主区域:
从区域:
语法检查:named-checkconf
3️⃣修改区域配置文件
vim /etc/named.rfc1912.zones
主区域:
从区域:
4️⃣在主服务器上编辑正向和反向区域数据库文件
cd /var/named
复制模板:cp -p named.localhost abc.com.zone
vim abc.com.zone
正向区域数据库文件:
反向区域数据库文件:
数据配置文件检查:named-checkzone abc.com abc.com.zone
rndc reload
后可同步到从服务器上,无须手动配置文件:
5️⃣更新加载数据文件,启动或重启服务,且查看服务监听状态,UDP:53
rndc reload
systemctl start named
或 systemctl restart named
netstat -anput | grep named
6️⃣测试机上设置DNS服务器的IP地址
7️⃣测试
验证域名查询:
验证从DNS域名服务器查询主机地址信息:
验证正向解析:
验证反向解析:
💡主从同步方式:
推:修改主DNS服务器区域数据,添加从DNS服务器,且需修改版本号serial
拉:等待时间更新同步
2、搭建并实现智能DNS
1️⃣主配置文件上定义地址列表(假设三个区域分别为aqnet:192.168.9.0/24、sqnet:192.68.0.0/16、dqnet:any)
vim /etc/named.conf
2️⃣创建三个数据库
复制模板:
修改数据库:
aq:
sq:
dq:
3️⃣写zone文件
将/etc/named.conf下的zone放到/etc/named.rfc1912.zones下
参考下边做成三个/etc/named.rfc1912.zones数据
4️⃣创建view,vim /etc/named.conf
⚠测试
参考:💡基于Internet架构的DNS服务
实战案例:实现Internet的DNS服务架构_kingdom_xu的博客-优快云博客
3、编译安装Mariadb,并启动后可以正常登录
二进制安装:源码安装:参考:Mariadb二进制安装
下载源码安装包:MariaDB 10.5.8 Stable - MariaDB
1️⃣环境准备
准备逻辑卷(可做可不做):
安装依赖包: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
2️⃣准备用户和数据目录
useradd -r -s /sbin/nologin -d /data/mysql/ mysql
chown mysql.mysql /data/mysql/
3️⃣解压包
tar xf mariadb-10.5.8.tar.gz
4️⃣进入目录下cd mariadb-10.5.8/
执行: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=/app/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make -j 4 && make install
如果出错,执行rm -f CMakeCache.txt
5️⃣准备环境变量
echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mydql.sh
. /etc/profile.d/mysql.sh
6️⃣生成数据库文件
cd /apps/mysql
scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql
7️⃣准备配置文件
cp /apps/mysql/support-files/my-huge.cnf /etc/my.cnf
8️⃣准备启动脚本
cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld
9️⃣添加服务并启动
chkconfig --add mysqld ; service mysqls start
💡指定字符集utf8mb4
mariaDB设置:
#vim /etc/my.conf
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
skip-character-set-client-handshake=true
mysql设置:
[client]
default-character-set= utf8mb4
[mysql]
default-character-se
= utf8mb4
验证:
/etc/init.d/mariadb reload
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';