1筐喳、簡(jiǎn)述DNS服務(wù)器原理姑原,并搭建主-輔服務(wù)器悬而。
? ??1)、在瀏覽器中輸入www.baidu.com 域名页衙,操作系統(tǒng)會(huì)先檢查自己本地的hosts文件是存在這個(gè)網(wǎng)址映射關(guān)系,如果存在會(huì)優(yōu)先調(diào)用本地的IP地址映射阴绢,完成域名解析店乐。
????2)、如果本地hosts里沒有對(duì)應(yīng)域名的映射呻袭,則查找本地DNS解析器緩存眨八,是否有這個(gè)網(wǎng)址映射關(guān)系,如果有直接返回應(yīng)答左电,完成域名解析廉侧。
????3)、如果hosts與本地DNS解析器緩存都沒有相應(yīng)的網(wǎng)址映射關(guān)系篓足,首先會(huì)找TCP/ip參數(shù)中設(shè)置的首選DNS服務(wù)器段誊,在此我們叫它本地DNS服務(wù)器,此服務(wù)器收到查詢時(shí)栈拖,如果要查詢的域名连舍,包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機(jī)涩哟,完成域名解析索赏,此解析具有權(quán)威性。
? ? 4)贴彼、如果要查詢的域名潜腻,不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已緩存了此網(wǎng)址映射關(guān)系器仗,則調(diào)用這個(gè)IP地址映射融涣,完成域名解析,此解析不具有權(quán)威性精钮。
????5)暴心、如果本地DNS服務(wù)器本地區(qū)域文件與緩存解析都失效,則根據(jù)本地DNS服務(wù)器的設(shè)置(是否設(shè)置轉(zhuǎn)發(fā)器)進(jìn)行查詢杂拨,如果未用轉(zhuǎn)發(fā)模式专普,本地DNS就把請(qǐng)求發(fā)至13臺(tái)根DNS,根DNS服務(wù)器收到請(qǐng)求后會(huì)判斷這個(gè)域名(.com)是誰(shuí)來(lái)授權(quán)管理弹沽,并會(huì)返回一個(gè)負(fù)責(zé)該頂級(jí)域名服務(wù)器的一個(gè)IP檀夹。本地DNS服務(wù)器收到IP信息后筋粗,會(huì)去.com域的這臺(tái)服務(wù)器請(qǐng)求解析。.com域的服務(wù)器收到請(qǐng)求后炸渡,如果自己無(wú)法解析娜亿,它就會(huì)找一個(gè)管理.com域的下一級(jí)DNS服務(wù)器地址(baidu.com)給本地DNS服務(wù)器。當(dāng)本地DNS服務(wù)器收到這個(gè)地址后蚌堵,就會(huì)請(qǐng)求baidu.com域服務(wù)器买决,重復(fù)上面的動(dòng)作,進(jìn)行查詢吼畏,直至找到www.baidu.com主機(jī)最終完成域名解析督赤。
????6)、如果用的是轉(zhuǎn)發(fā)模式泻蚊,此DNS服務(wù)器就會(huì)把請(qǐng)求轉(zhuǎn)發(fā)至上一級(jí)DNS服務(wù)器躲舌,由上一級(jí)服務(wù)器進(jìn)行解析,上一級(jí)服務(wù)器如果不能解析性雄,或找根DNS或把轉(zhuǎn)請(qǐng)求轉(zhuǎn)至上上級(jí)没卸,以此循環(huán)。不管是本地DNS服務(wù)器用是是轉(zhuǎn)發(fā)秒旋,還是根提示约计,最后都是把結(jié)果返回給本地DNS服務(wù)器,由此DNS服務(wù)器再返回給客戶機(jī)迁筛。
從客戶端到本地DNS服務(wù)器是屬于遞歸查詢病蛉,而DNS服務(wù)器之間的交互查詢就是迭代查詢。
? ? 主輔DNS服務(wù)器搭建
? ? ? ? 主DNS:192.168.2.238? ?從DNS:192.168.2.239? ? ?測(cè)試域名:www.dnstest.com? 客戶端機(jī)器:192.168.2.240
? ? ? ? 1)在主從服務(wù)器上安裝bind包??yum -y install bind
? ? ? ? 2)修改主服務(wù)器dns配置文件? vim /etc/named.conf
????????????將此行注釋運(yùn)行所有機(jī)器訪問(wèn)dns瑰煎,dns默認(rèn)53端口是監(jiān)聽在本機(jī)铺然,
????????????//? ? ? listen-on port 53 { localhost; };
????????????允許所有主機(jī)查詢
????????????allow-query? ? { any; };
????????????//? ? ? 安全限制,只允許dns從服務(wù)器查詢
? ? ? ? ? ? ?allow-transfer { 192.168.2.239; };
? ? ? ? 3)添加解析的域酒甸,創(chuàng)建解析域的數(shù)據(jù)庫(kù)文件
? ??????????vim /var/named/dnstest.com.zone
? ??????????$TTL 1D
????????????@? ? IN? ? ? SOA? master.dnstest.com admin.dnstest.com. (
? ? ? ? ? ? ? ? ? ? ? ? 1
? ? ? ? ? ? ? ? ? ? ? ? 1D
? ? ? ? ? ? ? ? ? ? ? ? 1H
? ? ? ? ? ? ? ? ? ? ? ? 1W
? ? ? ? ? ? ? ? ? ? ? ? 3H )
? ? ? ????????NS? ? master
? ? ? ? ? ? ? ?NS? ? slave1
????????????master IN? A? ? 192.168.2.238
????????????slave1 IN? A? ? 192.168.2.239
????????????www? ? CNAME? ? webapp
????????????webapp IN? A? ? 192.168.2.238
????????????webapp IN? A? ? 192.168.2.239
? ? ? ? 4)添加域配置,type指定類型為dns主服務(wù)器魄健,file指定域解析的數(shù)據(jù)庫(kù)文件
????????????vim /etc/named.rfc1912.zones
? ??????????????zone "dnstest.com" {
? ? ? ????????????? type master;
? ? ? ? ????????????file "dnstest.com.zone";
????????????????};
? ? ? ? 5)啟動(dòng)dns服務(wù)并驗(yàn)證主DNS服務(wù)域名解析
? ? ? ? ? ?在客戶端機(jī)器上驗(yàn)證 dig -t A www.dnstest.com @192.168.2.238? ?
? ? ? ? ? ? ?6)從DNS服務(wù)器配置
? ??????????????修改從服務(wù)器dns配置文件
????????????????vim /etc.named.conf
????????????????將此行注釋運(yùn)行所有機(jī)器訪問(wèn)dns,dns默認(rèn)53端口是監(jiān)聽在本機(jī)插勤,
????????????????//? ? ? listen-on port 53 { localhost; };
????????????????允許所有主機(jī)查詢
????????????????allow-query? ? { any; };
????????????????//? ? ? 安全限制沽瘦,不允許任何dns服務(wù)器與當(dāng)前dns服務(wù)器同步數(shù)據(jù)
? ? ? ? ????????????allow-transfer { none; };
? ? ? ? 7)添加同步域配置,
????????????vim /etc/named.rfc1912.zones
????????????zone "kang.com" IN {
? ? ? ????????????? type slave;
? ? ? ? ????????????masters {192.168.2.238;};
? ? ? ? ????????????file "slaves/dnstest.com.zone.slave";
????????????????};
? ? ? ? 8)啟動(dòng)從節(jié)點(diǎn)上的dns服務(wù)器农尖,查看主節(jié)點(diǎn)數(shù)據(jù)庫(kù)文件是否同步成功
? ? ? ? ? ? ? ? systemctl? ? ?start? ? ?named
????????????????ls /var/named/slaves/? ?文件同步成功
? ? ? ? 9)驗(yàn)證使用從節(jié)點(diǎn)解析域名是否正常析恋,同時(shí)測(cè)試將主服務(wù)器dns服務(wù)停止使用dns從節(jié)點(diǎn)是否還能正常解析域名
? ??????????dig -t A www.dnstest.com @192.168.2.239
? ? 停止主DNS服務(wù)器,驗(yàn)證從服務(wù)器是否解析正常
dig -t A www.dnstest.com @192.168.2.239
? ? ? ? 10)DNS主從服務(wù)器搭建完成盛卡。
2助隧、搭建并實(shí)現(xiàn)智能DNS。
? ? ? ? 實(shí)驗(yàn)環(huán)境:?dns服務(wù)器1臺(tái):192.168.2.241? ? ?客戶端1臺(tái):192.168.2.238滑沧,192.168.6.41并村,127.0.0.1
? ? ? ? www.dnstest.com? A記錄解析的IP分別是:192.168.2.239巍实、192.168.6.181、119.29.29.29
? ? ? ? 1)在dns服務(wù)端安裝bind包? yum -y install bind
? ? ? ? 2)修改named.conf 哩牍,定義各地的ip地址列表棚潦,注意事項(xiàng)小網(wǎng)段定義在前,大網(wǎng)段定義在后膝昆,否則不能實(shí)現(xiàn)智能解析
? ??????????acl beijingnet { 192.168.2.0/24;? };
????????????acl?shenzhennet { 192.168.6.0/24;? };
????????????acl othernet { any;? };
? ? ? ? 3)在/var/named/目錄下創(chuàng)建3個(gè)區(qū)域數(shù)據(jù)庫(kù)文件,實(shí)際生產(chǎn)環(huán)境ns解析服務(wù)器可使用對(duì)應(yīng)區(qū)域的IP丸边,這里實(shí)驗(yàn)使用同一個(gè)地址,同時(shí)修改3個(gè)文件的權(quán)限chgrp named dnstest.com.zone.*
? ? ? ? ? ? ? ?dnstest.com.zone.beijing
????????????$TTL 1D
????????????@? IN SOA ns1 admin ( 1 1H 1H 1D 3H )
? ? ? ????????????NS? ns1
????????????????ns1? A? ? 192.168.2.241
????????????????www? A? ? 192.168.2.239
? ? ? ? ? ? ? ?dnstest.com.zone.shenzhen
????????????$TTL 1D
????????????@? IN SOA ns1 admin ( 1 1H 1H 1D 3H )
? ? ? ????????????NS? ns1
????????????????ns1? A? ? 192.168.2.241
? ? ? ? ? ? ? ?www? A? ? 192.168.6.181
? ? ? ? ? ? ? ?dnstest.com.zone.other
????????????$TTL 1D
????????????@? IN SOA ns1 admin ( 1 1H 1H 1D 3H )
? ? ? ????????????NS? ns1
????????????????ns1? A? ? 192.168.2.241
????????????????www? A? ? 119.29.29.29
? ??? ? 4)定義bind view,定了view后荚孵,必須將所有的zone放到view中
????????在vim named.conf中定義
????????view view_beijing {
????????match-clients { beijingnet; };
????????include? "/etc/named.named.rfc1912.zones.beijing";
????????};
????????view view_shanghai {
????????match-clients { shenzhennet; };
????????include? "/etc/named.named.rfc1912.zones.shenzhen";
????????};
????????view view_other {
????????match-clients { othernet; };
????????include? "/etc/named.named.rfc1912.zones";
????????};
? ??????5)將/etc/named.named.rfc1912.conf放到view中妹窖,將view中定義的zone配置段放到/etc/named.named.rfc1912.zones文件中,便于管理
????????zone "dnstest.com" {
? ????????type master;
? ????????file "dnstest.com.zone.beijing";
????????};
????????zone "dnstest.com" {
? ????????type master;
? ????????file "dnstest.com.zone.shenzhen";
????????};
????????zone "dnstest.com" {
? ????????type master;
? ????????file "dnstest.com.zone.other";
????????};
? ? ? ? 6)將named.conf文件中的如下配置段放入到/etc/named.named.rfc1912.zones文件中
????????zone "." IN {
????????type hint;
????????file "named.ca"
????????};
? ? ? ? 7)將/etc/named.named.rfc1912.zones復(fù)制3份处窥,分別修改里面的zone為定義的區(qū)域嘱吗,同時(shí)修改3個(gè)文件的權(quán)限chgrp named dnstest.com.zone.*
????????cp /etc/named.named.rfc1912.zones /etc/named.named.rfc1912.zones.beijing
????????zone "dnstest.com" {
? ????????type master;
????????? file "dnstest.com.zone.beijing"
????????};
????????cp /etc/named.named.rfc1912.zones /etc/named.named.rfc1912.zones.shenzhen
????????zone "dnstest.com" {
? ????????type master;
????????? file "dnstest.com.zone.shenzhen"
????????};
????????/etc/named.named.rfc1912.zones 為other配置文件
????????zone "dnstest.com" {
? ????????type master;
? ????????file "dnstest.com.zone.other"
????????};
? ? ? ? 8)啟動(dòng)dns服務(wù)器玄组,并在不同網(wǎng)段的客戶端機(jī)器上驗(yàn)證www.dnstest.com域名的dns解析
? ? ? ? ? ? 在192.168.2.0網(wǎng)段客戶端機(jī)器上驗(yàn)證beijingdns解析? dig?www.dnstest.com @192.168.2.241? ? ??
? ??在192.168.6.0網(wǎng)段客戶端機(jī)器上驗(yàn)證beijingdns解析? dig?www.dnstest.com @192.168.2.241? ? ? ??
在其他網(wǎng)段客戶端機(jī)器上驗(yàn)證other解析滔驾,dig?www.dnstest.com? ?@127.0.0.1
3、編譯安裝Mariadb俄讹,并啟動(dòng)后可以正常登錄
? ? 1)下載并解壓mariadb源碼包 wget https://github.com/MariaDB/server/archive/mariadb-10.2.18.tar.gz
????????tar?xf?mariadb-10.2.18.tar.gz
? ? 2)安裝編譯時(shí)所需依賴包
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
? ? 3)創(chuàng)建程序運(yùn)行用戶和mariadb數(shù)據(jù)存放目錄
? ? ????mkdir -p /root/data/mysql
????????useradd -r -s /sbin/nologin -d /data/mysql/
? ??????chown mysql.mysql /data/mysql/
? ? 4)編譯安裝
????????cmake . \
????????-DCMAKE_INSTALL_PREFIX=/data/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=utf8mb4 \
????????-DDEFAULT_COLLATION=utf8mb4_general_ci
? ? ?5)安裝
? ? ? ? ? ? make -j 4 && make install?
? ? ? ? 6)配置mariadb環(huán)境變量
? ??????????echo 'PATH=/data/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
? ? ? ? ????加載環(huán)境變量? ? source?/etc/profile.d/mysql.sh
? ? ????7)初始化數(shù)據(jù)庫(kù)
? ? ? ? ? ? 進(jìn)入到mariadb程序安裝目錄? cd /data/app/mysql/
? ? ? ? ? ? ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
? ? ? ? 8)準(zhǔn)備mariadb配置文件
? ??????????cp /data/app/mysql/support-files/my-huge.cnf /etc/my.cnf
? ? ? ? 9)準(zhǔn)備mariadb啟動(dòng)腳本
? ??????????cp /data/app/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
? ? ? ? 10)?啟動(dòng)mariadb服務(wù)
? ??????????????chkconfig --add mysqld哆致;systemctl start mysqld? ? ? ??
? ? ? ? 11)修改登錄密碼,數(shù)據(jù)庫(kù)安裝完成患膛。
? ??????????mysqladmin -uroot password "new_password";