DNS:域名系統(Domain Name System)
?DNS協議是用來將域名轉換為IP地址或將IP地址轉換為相應的域名
DNS使用TCP和UDP端口53,給用戶提供解析時一般使用UDP53
對于每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。
DNS采用分布式數據庫結構提供服務:
頂級域名:.com .net .org .edu 以及國家或地區域名
高一級的服務器會存放下一級服務器的位置信息
域名從右向左可以體現層級結構,如下圖所示:
?
DNS服務類型
主要服務器:
本地創建數據文件,又稱權威服務器
輔助服務器:
本地有數據文件,從主服務器更新而來
緩存服務器:
本地無數據文件,利用緩存給客戶提供服務,提高重復查詢的效率
對客戶端來講,各服務器作用相同,都是進行域名解析、
域名訪問web服務,實驗內容圖示:
配置web服務:
首先卸載httpd,避免造成干擾
可以先卸載rpm包的httpd,避免給初學者造成干擾
rpm? -q? httpd
rpm? -e? httpd? --nodeps
下載httpd
wget https://dlcdn.apache.org/httpd/httpd-2.4.58.tar.bz2
無法驗證 dlcdn.apache.org 的由 “/C=US/O=Let's Encrypt/CN=R3” 頒發的證書
在后面添加:--no-check-certificate
tar解包,進入解包后的目錄
tar xf httpd-2.4.58.tar.bz2
cd httpd-2.4.58
配置(檢測軟硬件環境,定制安裝參數)
yum -y install gcc apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre
./configure --prefix=/usr/local/httpd
編譯,安裝
make && make install
echo $????????????
ls /usr/local/httpd??????????
啟動軟件,測試
/usr/local/httpd/bin/apachectl start
netstat? -lntp | grep? httpd
關閉防火墻
systemctl? stop? firewalld
setenforce?????? 0
- 配置dns服務
- 安裝:
yum -y install bind bind-chroot
vim /etc/named.conf
options {
?????? ?listen-on port 53 { any; };??????? #設置為在53端口監聽。any;
表示允許任何IP地址的主機連接到服務器
??????? listen-on-v6 port 53 { ::1; };???? #::1;
表示只允許本地IPv6地址(即localhost)連接到服務器
??????? directory?????? "/var/named";??? #指定了BIND服務器存儲數據文件的目錄。在這里,數據文件存儲在/var/named
目錄下
??????? dump-file?????? "/var/named/data/cache_dump.db";?????? #指定了緩存數據庫的dump文件的路徑,用于記錄緩存中的數據
??????? statistics-file "/var/named/data/named_stats.txt";?????? #指定了用于記錄BIND服務器運行統計信息的文件路徑
??????? memstatistics-file "/var/named/data/named_mem_stats.txt";???? #指定了用于記錄BIND服務器內存使用統計信息的文件路徑
??????? recursing-file? "/var/named/data/named.recursing";?????????? #指定了用于記錄遞歸查詢的文件路徑
??????? secroots-file?? "/var/named/data/named.secroots";?????????? #指定了用于記錄DNSSEC根密鑰的文件路徑
??????? allow-query???? { any; };?????? #指定了允許查詢的主機。any;
表示允許任何主機查詢服務器???
vim /etc/named.rfc1912.zones
添加:
zone "zhanshen.com" IN {
??????? type master;
??????? file "test.com";
??????? allow-update {none;};
};
cd /var/named
cp -a named.localhost test.com
vim test.com
添加:
??????? $TTL 1D
@?????? IN SOA? zhanshen.com. rname.invalid. (
??????????????????????????????????????? 0?????? ; serial
??????????????????????????????????????? 1D????? ; refresh
??????????????????????????????????????? 1H????? ; retry
??????????????????????????????????????? 1W????? ; expire
??????????????????????????????????????? 3H )??? ; minimum
??????? NS????? dns
dns?????????? A?????? 192.168.10.4
www??????? A?????? 192.168.10.3?
讓我們逐行解釋:
$TTL 1D
: 這是指定默認生存時間(Time-To-Live)為1天,即資源記錄在DNS緩存中的存活時間為1天
@ IN SOA www.zhanshen.com. rname.invalid. (
: 這是SOA(Start of Authority)記錄,指定了該區域的起始授權信息。具體解釋如下:
-
@
: 表示當前域名(www.zhanshen.com)。IN
: 表示Internet類別。SOA
: 表示Start of Authority。www.zhanshen.com.
: 域名的主要名稱服務器。rname.invalid.
: 負責管理該域名的郵箱地址。這里的?rname.invalid.
?僅用作示例,并不是真實的郵箱地址。0
: 序列號,用于標識DNS區域文件的版本號。1D
: 刷新時間,表示多久后從主服務器重新獲取數據(1天)。1H
: 重試時間,表示如果無法從主服務器獲取數據,多久后再次嘗試(1小時)。1W
: 過期時間,表示多久后數據被認為無效(1周)。3H
: 最小時間,表示對資源記錄的緩存過期時間(3小時)。
NS www.zhanshen.com.
: 指定了一個名稱服務器(Name Server),即www.zhanshen.com是該域名的主要名稱服務器。
www A 192.168.10.3
: 指定了一個A記錄,將www.zhanshen.com解析為IPv4地址192.168.10.3。
naws AAAA ::1
: 指定了一個AAAA記錄,將naws.zhanshen.com解析為IPv6地址::1。
這段文本定義了一個簡單的DNS區域文件,指定了域名www.zhanshen.com的基本DNS資源記錄
DNS中可注冊的記錄類型
A?????????????????????????????? 主機記錄,正向查詢記錄
PTR????????????????? 指針記錄,反向查詢記錄
SOA????????????????? 權威機構,主從復制時,從服務器的認證服務
NS??????????????????? 名稱服務,指定服務器名
MX?????????????????? 郵件交換器
CNAME?????????? 別名記錄,用于發布,隱藏真實服務器名
啟動
systemctl? start? named-chroot
netstat -lnutp | grep named
測試
nslookup www.test.com 127.0.0.1
關閉防火墻
systemctl? stop? firewalld
setenforce?????? 0
注意:別忘了在網卡設置里刪除指定的dns
客戶端訪問web服務
編輯網卡配置文件
vim? /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
ONBOOT=yes???????????????????????????????????
IPADDR=192.168.111.131
NETMASK=255.255.255.0
GATEWAY=192.168.111.2?????????????? #同網段通信,網關可不配置
DNS1=192.168.111.130????????????????? #實際dns服務器ip
- 通過域名訪問網站測試:
curl? www.test.com
提醒:測試時關閉web服務器、dns服務器的防火墻