1宇驾、簡述DNS服務(wù)器原理兰迫,并搭建主-輔服務(wù)器。
DNS(Domain Name Service的縮寫)的作用就是根據(jù)域名查出IP地址馏段。IP地址是由32位二進制數(shù)字組成柜砾,人們很難記住這些IP湃望,相反,大家愿意使用比較容易記憶的主機名字局义。而電腦在處理IP數(shù)據(jù)報文時喜爷,是使用IP地址的冗疮,因為它是固定長度萄唇。
DNS查詢的類型對于客戶端來說是遞歸查詢,對于DNS服務(wù)器來說术幔,絕大多數(shù)是迭代查詢的另萤。DNS名稱解析中,從名稱到IP的查詢叫做正向解析诅挑,而從IP到名稱的查詢叫做反向解析四敞。如果DNS服務(wù)器至少解析了一個或一個以上的域叫做DNS主服務(wù)器或者DNS輔助服務(wù)器,如果不負責任何解析叫做DNS緩存服務(wù)器拔妥。
現(xiàn)在互聯(lián)網(wǎng)規(guī)模很大忿危,DNS被設(shè)計成一個分布式的數(shù)據(jù)庫系統(tǒng),他分布的功能就是把一個大的數(shù)據(jù)庫切割成很多小的數(shù)據(jù)庫没龙,來分別提供一部分數(shù)據(jù)的處理铺厨。全球一共分布了13臺DNS根服務(wù)器,名字為A至M硬纤。
搭建主從dns
#實驗機器
DNS主服務(wù)器:10.0.0.7
DNS從服務(wù)器:10.0.0.17
web服務(wù)器解滓、測試端:10.0.0.8
#前提條件
關(guān)閉防火墻、Selinux筝家、時間同步
#實現(xiàn)步驟
1洼裤、主DNS配置
[root@Centos7 ~]# dnf install bind -y
vim /etc/named.conf
#注釋掉下面兩行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#加上下面行,只允許從服務(wù)器進行區(qū)域傳輸
allow-transfer { 10.0.0.17溪王; };
vim /etc/named.rfc1912.zones
#加上這段
zone "magedu.org" {
type master;
file "magedu.org.zone";
};
#DNS區(qū)域數(shù)據(jù)庫文件
cp -p /var/named/named.localhost /var/named/magedu.org.zone
#如果沒有-p腮鞍,需要改權(quán)限值骇。chgrp named magedu.org.zone
vim /var/named/magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
NS slave
master A 10.0.0.7
slave A 10.0.0.17
www A 10.0.0.8
[root@centos7 ~]# named-checkconf
[root@centos7 ~]# named-checkzone magedu.org /var/named/magedu.org.zone
zone magedu.org/IN: loaded serial 1
OK
systemctl start named #第一次啟動服務(wù)
rndc reload #不是第一次啟動服務(wù)
2、從服務(wù)器
[root@centos7 ~]# yum install bind -y
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#不允許其它主機進行區(qū)域傳輸
allow-transfer { none;};
vim /etc/named.rfc1912.zones
zone "magedu.org" {
type slave;
masters { 10.0.0.7; };
file "slaves/magedu.org.slave";
};
systemctl start named
[root@centos7 slaves]# ll /var/named/slaves/magedu.org.slave
-rw-r--r-- 1 named named 277 Aug 29 18:31 /var/named/slaves/magedu.org.slave
#3缕减、客戶端
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=10.0.0.7
DNS2=10.0.0.17
#驗證從DNS服務(wù)器是否可以查詢
[root@localhost ~]# dig www.magedu.org
[root@localhost ~]# curl www.magedu.org
2雷客、搭建并實現(xiàn)智能DNS。
設(shè)置服務(wù)器雙IP
#三臺服務(wù)器
#192.168.2.173 #服務(wù)器
#192.168.2.157 #模擬北京
#129.16.0.7 #模擬上海
[root@localhost ~]# ip a a 129.16.0.8/16 dev ens192 label ens192:1
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:ac:26:1e brd ff:ff:ff:ff:ff:ff
inet 192.168.2.173/24 brd 192.168.2.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet 129.16.0.8/16 scope global ens192:1
valid_lft forever preferred_lft forever
inet6 fe80::3b03:7295:36b3:5dad/64 scope link noprefixroute
valid_lft forever preferred_lft forever
設(shè)置模擬上海IP
[root@shanghaiclient ~]# ip a a 129.16.0.7/16 dev ens192 label ens192:1
[root@shanghaiclient ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:ac:6c:a2 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.158/24 brd 192.168.2.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet 129.16.0.7/16 scope global ens192:1
valid_lft forever preferred_lft forever
inet6 fe80::deaf:42f5:93ec:36d0/64 scope link noprefixroute
valid_lft forever preferred_lft forever
服務(wù)器安裝NDS服務(wù)以及相關(guān)配置
[root@localhost ~]# yum -y install bind ; systemctl enable --now named
[root@localhost ~]# vim /etc/named.conf
#添加下面內(nèi)容
acl beijingnet {
192.168.2.0/24;
};
acl shanghainet {
129.16.0.0/16;
};
acl othernet {
any;
};
#注釋掉下面兩行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#其它略
# 創(chuàng)建view
view beijingview {
match-clients { beijingnet;};
include "/etc/named.rfc1912.zones.bj";
};
view shanghaiview {
match-clients { shanghainet;};
include "/etc/named.rfc1912.zones.sh";
};
view otherview {
match-clients { othernet;};
include "/etc/named.rfc1912.zones.other";
};
include "/etc/named.root.key";
實現(xiàn)區(qū)域配置文件
[root@localhost ~]# cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bj
[root@localhost ~]# vim /etc/named.rfc1912.zones.bj
#添加下面內(nèi)容
zone "yezeng.org" IN {
type master;
file "yezeng.org.zone.bj";
};
zone "." IN {
type hint;
file "named.ca";
};
[root@localhost ~]# cp /etc/named.rfc1912.zones.bj /etc/named.rfc1912.zones.sh
[root@localhost ~]# cp /etc/named.rfc1912.zones.bj /etc/named.rfc1912.zones.other
[root@localhost ~]# vim /etc/named.rfc1912.zones.sh
#添加下面內(nèi)容
zone "yezeng.org" IN {
type master;
file "yezeng.org.zone.sh";
};
zone "." IN {
type hint;
file "named.ca";
};
[root@localhost ~]# vim /etc/named.rfc1912.zones.other
#添加下面內(nèi)容
zone "yezeng.org" IN {
type master;
file "yezeng.org.zone.other";
};
zone "." IN {
type hint;
file "named.ca";
};
#修改文件權(quán)限
[root@localhost named]# chgrp named /etc/named.rfc1912.zones.bj
[root@localhost named]# chgrp named /etc/named.rfc1912.zones.sh
[root@localhost named]# chgrp named /etc/named.rfc1912.zones.other
生成區(qū)域數(shù)據(jù)庫文件
[root@localhost ~]# cd /var/named/
[root@localhost named]# vim yezeng.org.zone.bj
$TTL 1D
@ IN SOA ns1 admin ( 1 1D 1H 1W 2H)
NS ns1
ns1 A 192.168.2.173
www A 192.168.2.200
[root@localhost named]# vim yezeng.org.zone.sh
$TTL 1D
@ IN SOA ns1 admin ( 1 1D 1H 1W 2H)
NS ns1
ns1 A 192.168.2.173
www A 129.16.0.200
[root@localhost named]# vim yezeng.org.zone.other
$TTL 1D
@ IN SOA ns1 admin ( 1 1D 1H 1W 2H)
NS ns1
ns1 A 192.168.2.173
www A 127.0.0.1
客戶端進行訪問測試
#模擬北京
[root@beijingclient ~]# host www.yezeng.org 192.168.2.173
Using domain server:
Name: 192.168.2.173
Address: 192.168.2.173#53
Aliases:
www.yezeng.org has address 192.168.2.200
#模擬上海
[root@shanghaiclient ~]# host www.yezeng.org 129.16.0.8
Using domain server:
Name: 129.16.0.8
Address: 129.16.0.8#53
Aliases:
www.yezeng.org has address 129.16.0.200
#本地訪問
[root@localhost named]# host www.yezeng.org 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
www.yezeng.org has address 127.0.0.1
3桥狡、通過編譯搅裙、二進制安裝MySQL5.7多實例
#1、安裝相關(guān)包
[root@localhost ~]# yum -y install libaio numactl-libs
#2裹芝、創(chuàng)建用戶和組
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql
#3部逮、準備程序文件
[root@localhost ~]# wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
[root@localhost ~]# wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
[root@localhost ~]# tar xf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@localhost ~]# ll /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -s mysql-5.7.29-linux-glibc2.12-x86_64/ mysql
[root@localhost local]# chown -R root.root /usr/local/mysql/
#4、準備環(huán)境變量
[root@localhost local]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@localhost local]# . /etc/profile.d/mysql.sh
#5嫂易、準備配置文件
[root@localhost ~]# cp /etc/my.cnf{,.bak}
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
#6兄朋、生成數(shù)據(jù)庫文件,并提取root密碼
[root@localhost ~]# mysqld --initialize --user=mysql --datadir=/data/mysql
[root@localhost ~]# grep password /data/mysql/mysql.log
2021-03-23T01:31:47.545591Z 1 [Note] A temporary password is generated for root@localhost: g++hZj+BI8lH
[root@localhost ~]# awk '/temporary password/{print $NF}' /data/mysql/mysql.log
g++hZj+BI8lH
#7怜械、準備服務(wù)腳本和啟動
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# chkconfig --add mysqld
Starting MySQL. SUCCESS!
[root@localhost ~]# service mysqld status
SUCCESS! MySQL running (8590)
#8颅和、修改口令
mysqladmin -uroot -p'g++hZj+BI8lH' password 123456
#9、測試登錄
mysql -uroot -p123456
4缕允、整理MySQL數(shù)據(jù)類型
mysql 中數(shù)據(jù)類型主要有三種
文本.數(shù)字 ,日期/時間
文本類型:char 定長,varchar變長,都是最多65535,char多了會截取,varchar少了自動補長.text最多65535,blob也是最多65535,blob可存二進制,圖片音樂轉(zhuǎn)存,enum和set枚舉,enum65535個,set64個可多選.longtext,mediumtext和mediumblog存的可以更大.
數(shù)字: int1 和int 10沒啥區(qū)別,int10會補0,float,dobule存的不精確,decimal精確,不精確計算可用bcadd,bcsub系列
日期: date 日期,datetime日期加時間,timestamp時間戳,time()時間,
***int(10)跟存儲沒關(guān)系,只是補0的顯示寬度, float|double(M,D) m長度,d小數(shù)長度,會四舍五入,decimal默認整數(shù),time時間加上日期自動轉(zhuǎn)換成小時.set可多個標簽,enum一個性別,
float 單精度總長為8 ,double雙精度總長為16.如果超過了精度的總長度則實際存儲仍未總長度.timestamp會隨著掐字段的修改而自動更新,所以這個字段存儲的是自動更新的內(nèi)容.