一、简述DNS服务器原理,并搭建主-辅服务器.
域名系统(Domain Name System)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。分为正向与反向域名解析,适用C/S,端口路53/udp,53/tcp,属于应用层协议;
DNS工作原理:
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该源纪录项,则本地的域名服务器就直接把查询的结果返回。
第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
第四步:本地服务器再向上一步返度回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。知
第五步:重复第四步,直到找道到正确的纪录。
第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
主DNS服务器配置
1、 安装bind服务
yum install bind -y
2、 DNS基础配置
修改监听地址、允许查询主机列表
建议:修改为localhost表示所有ip(不建议用ip,防止主机修改ip时导致dns不可用)
vim/etc/named.conf
options{
listen-onport53{localhost;};#表示监听localhosts
...
allow-query{any;};#表示允许所有地址
allow-transfer{192.168.44.17;};#主服务器建议添加此配置仅允许从服务器抓取配置
}
或者可以直接注释掉
注://单行注释,/*多行注释;C语言风格
options{
//listen-onport53{127.0.0.1;};#表示监听localhosts
...
//allow-query{localhost;};#表示允许所有地址
}
#使配置生效
rndcreload或servicenamedreload
3、 配置解析库文件
vim/var/named/xiaohui.com.zone
$TTL1D
@INSOAmaster.yanwei.comadmin.xiaohui.com(
0;serial
1D;refresh
1H;retry
1W;expire
3H);minimum
NSmaster
masterA192.168.122.7
slaveA192.168.122.17
ftpA1.1.1.1
dbA2.2.2.2
wwwCNAMEwebsrv
websrvA192.168.122.27
4、 配置主DNS服务器解析域
方法一、在dns配置中添加区域文件配置
vim /etc/named.conf
zone "yanwei.com" IN {
type master;
file "yanwei.com.zone";
};
指明mage域是主dns服务器,区域数据库的文件是哪个。
方法二、一般建议区域配置放在专门的区域配置文件里面。
vim /etc/named.rfc1912.zones
zone "yanwei.com" IN {
type master;
file "yanwei.com.zone";
};
5、检查配置文件和解析库文件语法
主配置文件语法检查:
named-checkconf
解析库文件语法检查:
named-checkzone "xiaohui.com" /var/named/xiaohui.com.zone
6、 重启服务
systemctl start named
7、测试
host www.xiaohui.com 192.168.122.7
从DNS服务器配置
1、安装bind服务
yum install bind -y
2、DNS基础配置
修改监听地址、允许查询主机列表
建议:修改为localhost表示所有ip(不建议用ip,防止主机修改ip时导致dns不可用)
vim /etc/named.conf
options {
listen-on port 53 { localhost; }; #表示监听localhosts
...
allow-query { any; }; #表示允许所有地址
allow-transfer {none;}; #拒绝传送,从服务器建议添加此配置防止被抓取数据
}
#或者可以直接注释掉
#注://单行注释,/*多行注释;C语言风格
options {
// listen-on port 53 { 127.0.0.1; }; #表示监听localhosts
...
// allow-query { localhost; }; #表示允许所有地址
allow-transfer {none;};
}
#使配置生效
rndc reload 或 service named reload
3、配置从DNS服务器解析域
vim /etc/named.rfc1912.zones
zone "xiaohui.com" {
type slave;
masters {192.168.122.7;};
file "slaves/xiaohui.com.zone.slave";
};
4、检查配置文件和解析库文件语法
主配置文件语法检查:
named-checkconf
解析库文件语法检查:
named-checkzone "yanwei.com" /var/named/yanwei.com.zone
5、重启服务
systemctl start named
重启服务后会自动从主服务器同步解析库文件,但是内容是加密的二进制数据。
二、搭建并实现智能DNS。
1、DNS基础配置
vim /etc/named.conf
acl beijingnet {
192.168.44.0/24;
};
acl shanghainet {
172.16.0.0/16;
};
acl othernet {
any;
};
options {
// listen-on port 53 { 127.0.0.1; }; #表示监听localhosts
...
// allow-query { localhost; }; #表示允许所有地址
}
#关联ACL和解析域配置文件
view view_beijing{
match-clients { beijingnet; };
include "/etc/named.rfc1912.zones.bj";
};
view view_shanghai{
match-clients { shanghainet; };
include "/etc/named.rfc1912.zones.sh";
};
view view_other{
match-clients { othernet; };
include "/etc/named.rfc1912.zones";
};
//include "/etc/named.rfc1912.zones"
2、配置区域库文件
vim /var/named/yanwei.com.zone.bj
$TTL 1D
@ IN SOA ns1 admin ( 1 1H 1H 1D 3H)
NS ns1
ns1 A 192.168.44.7
www A 192.168.44.100
vim yanwei.com.zone.sh
$TTL 1D
@ IN SOA ns1 admin ( 1 1H 1H 1D 3H)
NS ns1
ns1 A 192.168.44.7
www A 172.16.0.100
vim xiaohui.com.zone.other
$TTL 1D
@ IN SOA ns1 admin ( 1 1H 1H 1D 3H)
NS ns1
ns1 A 192.168.122.7
www A 8.8.8.8
3、配置解析域配置文件
vim /etc/named.rfc1912.zones.bj
zone "xiaohui.com" {
type master;
file "xiaohui.com.zone.bj";
};
vim /etc/named.rfc1912.zones.sh
zone "xiaohui.com" {
type master;
file "xiaohui.com.zone.sh";
};
vim /etc/named.rfc1912.zones
zone "xiaohui.com" {
type master;
file "xiaohui.com.zone";
};
#使配置生效
rndc reload 或 service named reload
#重启服务
systemctl restart named
4、检查配置文件和解析库文件语法
主配置文件语法检查:
named-checkconf
解析库文件语法检查:
named-checkzone "xiaohui.com" /var/named/xiaohui.com.zone
三、编译安装Mariadb,并启动后可以正常登录
#安装依赖包
yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boostdevel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssldevel libevent-devel libaio-devel
#做准备用户和数据目录
useradd –r –s /sbin/nologin –d /data/mysql/ mysql
mkdir /data/mysql
chown mysql.mysql /data/mysql
tar xvf mariadb-10.2.18.tar.gz
#cmake 编译安装
cd mariadb-10.2.18/
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
#提示:如果出错,执行rm -f CMakeCache.txt
#准备环境变量
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
#登录测试
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)]>