DNS高速缓存
DNS相關資料:
1.什么是DNS
?DNS(Domain Name System域名系統)
?????? 是互聯網上存儲域名和ip映射關系的一個分布式數據庫,它負責把域名轉換成ip地址,或ip地址轉換為域名。DNS運行于TCP/UDP的53端口上。
2.什么是高速緩存DNS
?????? DNS服務器可以高速緩存從其他DNS服務器收到的DNS記錄,也可以在DNS客戶服 務中使用高速緩存,將其作為DNS客戶端保存在最近的查詢過程中得到的信息高速緩存的方法
3.DNS高速緩存的作用
?????? 當某個訪問請求解析過一個域名以后,該解析記錄就放置在緩存中,以后再有同樣的解析請求,就直接從緩存中提供結果,加快了訪問者的應答速度。
DNS服務器部署
簡介:
??????? DNS(Domain Name Server)是基于tcp和udp協議的服務;實現IP與域名之間的映射;就像我們生活中的身份證號與名字之間的 映射一樣。
?????? 在互聯網這個大環境中,我們平時上網使用的都是類似于www.baidu.com的域名,這是我們人類易讀的互聯網,但是在實際的數據傳輸中,我們用到的都是ip地址,計算機無法直接識別我們常用的域名,因此我們就需要一個在我們和計算機之間做翻譯的服務,而這個服務就是DNS。DNS是基于tcp和udp協議的服務,用于我們日常的域名解析幫助我們在域名和ip地址中相互轉換,DNS所用端口為53端口,在linux中dns服務的服務名為named,安裝包為bind,一般情況下我們可以在linux系統中直接通過“yum -y install bind”即可安裝我們需要的DNS服務。
??????? 我們的域名作為數據存儲在世界上13臺根DNS服務器上,當我們需要查找域名時就會去這13臺服務器去訪問然后就會告訴你你詢問的域名所對應的ip
?? DNS解析過程:
客戶端先查看瀏覽器緩存和本地host文件,本地DNS解析緩存,沒有的話就交給本地域名解析服務器(由運營商提供),本地域名緩存解析服務器收到解析請求后,先看本地緩存有沒有,如果沒有直接找域名根服務器,根收到www.google.com這個請求時,會說不明白在哪里,但是根節點服務器會返回.com給本地域名解析服務器,然后本地域名解析服務器再找.com,找到后,再找google.com,最終找到www.google.com這個主機
DNS分布
DNS查詢過程
解析:
(1)將域名,主機名解析對應的ip地址 ? ? ???? 正向解析
(2)將IP地址解析成對應的主機名,域名 ? ? 反向解析 ? ?
詳細的請求的順序為:
- 客戶端Host文件標識
- 客戶緩存
- 服務器區域設定
- 服務器緩存
- 其它服務器
環境:
[root@foundation1 ~]#??????????? //主機:172.25.1.250
[root@server1 ~]#?????????????????? //(服務器端)server1:17225.1.1
[root@server2 ~]#?????????????????? //(客戶端)??? server2:17225.1.2
DNS高速緩存
服務器端:
[root@server1 named]# systemctl start named ?
[root@server1 named]# systemctl enable named
[root@server1 named]# systemctl stop firewalld
[root@server1 named]# systemctl disable firewalld
[root@server1 named]# yum install -y bind????????????? //下載所需軟件
[root@server1 named]# vim /etc/named.conf
options {
??????? listen-on port 53 { any; };??????????? ?? //設置默認ip為所有 ????????????????????????????
??????? listen-on-v6 port 53 { ::1; };???????????????????????????????????????????????
??????? directory?????? "/var/named";
??????? dump-file?????? "/var/named/data/cache_dump.db";
??????? statistics-file "/var/named/data/named_stats.txt";
??????? memstatistics-file "/var/named/data/named_mem_stats.txt";
??????? allow-query { any; };???????????????????????????????????? //設置所有訪問均允許 ??????????????????
??????? forwarders {172.25.1.250;};???????????????????????? //dns高速緩存,指向其它DNS服務器?? ?????????????????????????????????????????
??????? dnssec-validation no;???????????????????? //不做互聯網認證
[root@server1 named]# systemctl restart named
[root@server1 ~]# netstat -antlp | grep named
[root@server1 named]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=172.25.1.250?????????????? //設置網關為主機
[root@server1 named]# systemctl restart network
[root@server1 named]# vim /etc/resolv.conf?????????? //配置主配置文件
nameserver 192.168.43.1????????????????? //設置所需的dns
?
在客戶端查詢域名對應ip:
[root@server2 ~]# vim /etc/resolv.conf ????????????????? //將所需測試的主機設置為dns
[root@server2 ~]# dig www.baidu.com
耗時為1
[root@server2 ~]# dig www.baidu.com
耗時為0
//這說明DNS的高速緩存已經配置成功,顯示出了dns緩存的目的,訪問速度加快了
?
DNS正向解析
服務器端:
[root@server1 ~]# vim /etc/named.conf
#?????? forwarders {172.25.1.250;};???????????????? //注釋掉其中的forwarders那行,取消向其他主機詢問,自己充當DNS
[root@server1 ~]# vim? /etc/named.rfc1912.zones ? ? ? ? ? ? ? ? ? //也是named的配置文件,單獨列出
zone"westos.com"IN{????????????????????? ##域名
??? type master;
??? file"westos.com.zone";???? ##正向解析域名文件
??? allow-update{none;};
?? };
[root@server1 ~]# cd /var/named
[root@server1 named]# cp -p named.localhost westos.com.zone ? ? ? ?? ??? //利用該模板生成正向解析域名文件
[root@server1 named]# vim westos.com.zone??????????????????????? ##編輯域名解析文件
$TTL 1D?????????????????????? //生存期,?默認單位為秒,另可設定為[W|D|H|M]?
@?????? IN SOA?? dns.westos.com. root.westos.com. (
??????????????????????????????????????? 0?????? ; serial
??????????????????????????????????????? 1D????? ; refresh
??????????????????????????????????????? 1H????? ; retry
??????????????????????????????????????? 1W????? ; expire
??????????????????????????????????????? 3H )??? ; minimum
??????? NS??? dns.westos.com.
dns???? A???? 172.25.1.100??????? ??????? //地址解析服務端
hello?? A???? 172.25.1.200 ????????????? //自定義域名解析?????????
?
- ????????NS??????@???????? ? ? ? ? ? ? ;?直接輸入域名,訪問@??
- ????????A?????? 127.0.0.1????????? ;?直接輸入域名,解析到的IPV4的IP??
- ????????AAAA????::1????? ? ? ? ? ?? ;?直接輸入域名,解析到的IPV6的IP??
?????
注釋:
@ 相當于子配置文件中“ ”中所寫的值,SOA相當于授權
1D 表示數據內容自動保存一天
[root@server1 named]# systemctl restart named
在客戶端測試:
[root@server2 ~]# vim /etc/resolv.conf
nameserver 172.25.1.1????????????????????????? //確認添加nameserver 172.25.1.1
[root@server2 ~]# dig? hello.westos.com
[root@server2 ~]# dig? dns.westos.com
正向輪詢域名解析
服務器端:
[root@server1 named]# vim westos.com.zone
$TTL 1D
@?????? IN SOA?? dns.westos.com. root.westos.com. (
??????????????????????????????????????? 0?????? ; serial
??????????????????????????????????????? 1D????? ; refresh
??????????????????????????????????????? 1H????? ; retry
??????????????????????????????????????? 1W????? ; expire
??????????????????????????????????????? 3H )??? ; minimum
??????? NS??? dns.westos.com.
dns???? A???? 172.25.1.100
hello?? A???? 172.25.1.200
www??? CNAME? node1.westos.com.
node1?? A???? 172.25.1.110
node1 ? A???? 172.25.1.220
//CNAME 表示把規范名稱轉化為不規范名稱
[root@server1 named]# systemctl restart named
在客戶端測試
[root@server2 ~]# dig www.westos.com
[root@server2 ~]# dig www.westos.com
此時可以看到自動交替訪問兩個ip
DNS反向解析
服務器端:
vim /etc/named.rfc1912.zones??????????? //將正向解析注釋掉
zone "1.25.172.in-addr.arpa" IN {??????????????????? //域名對應的ip反向寫,表示的是172.25.1這個ip段
??????? type master;
??????? file "westos.com.ptr";??????????????? //域名反向解析文件
??????? allow-update { none; };
};
[root@server1 named]# pwd
[root@server1 named]# cp -p named.localhost westos.com.ptr?????????????? //用該模板拷貝出反向解析域名文件
[root@server1 named]# vim westos.com.ptr???????????? //編輯域名反向解析文件??????
$TTL 1D
@????? IN? SOA? dns.westos.com.? root.westos.com. (
??????????????????????????????????????? 0?????? ; serial
??????????????????????????????????????? 1D????? ; refresh
??????????????????????????????????????? 1H????? ; retry
??????????????????????????????????????? 1W????? ; expire
??????????????????????????????????????? 3H )??? ; minimum
????? ? ? NS????? ? ?? dns.westos.com.
dns???? A???????????? 172.25.1.150??????? ????? ? ? ?? ??? //地址解析服務端
222???? PTR ????? hello.westos.com. ???? ????????? //反向解析的自定義內容
111???? PTR ????? linux.westos.com. ????
[root@server1 named]# systemctl restart named
在客戶端測試:
dig -x 172.25.254.111
dig -x 172.25.254.222????????? //其中 -x 表示反向
DNS集群-----主從DNS
環境:
服務器端:???? 主DNS(server1):??? 172.25.1.1???????????????????? 從DNS(server3):??? 172.25.1.3
客戶端:????????? server2:??? 172.25.1.2
三臺主機均配置好yum源
服務器端:
主DNS:
[root@server1 ~]# vim /etc/named.rfc1912.zones
?zone "westos.com" IN {
????? type master;
????? file "westos.com.zone";
??????? allow-update { none; };
??????? allow-transfer{172.25.1.2;};
??????? also-notify{172.25.1.2;};?????????????????????????????? //從DNS的ip
?};
systemctl restart named
從DNS:
[root@server3 ~]# yum install -y bind
[root@server3 ~]# systemctl start named
[root@server3 ~]# vim /etc/named.conf
options {
??????? listen-on port 53 { any; };
??????? listen-on-v6 port 53 { ::1; };
??????? directory?????? "/var/named";
??????? dump-file?????? "/var/named/data/cache_dump.db";
??????? statistics-file "/var/named/data/named_stats.txt";
??????? memstatistics-file "/var/named/data/named_mem_stats.txt";
??????? allow-query???? { any; };
[root@server3 ~]# vim /etc/named.rfc1912.zones
zone "westos.com" IN {
??????? type slave;?????????????? //將其設置為slave(備)
??????? masters{172.25.1.1;};??????????????? //主dns的ip
??????? file "westos.com.zone";
??????? allow-update{ none; };
};
[root@server3 ~]# systemctl restart named
在服務端測試:
[root@server2 ~]# vim /etc/resolv.conf????????????? //修改nameserver為從DNS的ip
[root@server2 ~]# dig hello.westos.com
主DNS修改后測試,則從DNS自動更新
[root@server1 named]# vim westos.com.zone
$TTL 1D
@?????? IN SOA?? dns.westos.com. root.westos.com. (
??????????????????????????????????????? 0?????? ; serial
??????????????????????????????????????? 1D????? ; refresh
??????????????????????????????????????? 1H????? ; retry
??????????????????????????????????????? 1W????? ; expire
??????????????????????????????????????? 3H )??? ; minimum
?????? NS??? dns.westos.com.
dns???? A???? 172.25.1.100
hello? CNAME? www
www???? A???? 172.25.1.115
www???? A???? 172.25.1.116
//修改后的域名解析文件
客戶端進行測試:
[root@server2 ~]# dig hello.westos.com
DNS的雙向解析
實現內外網的分離
?
vim /etc/named.conf
注釋掉
/*
zone"."IN{???????? ?
??? type? hint;
??? file"westos.ca";??? ?
??? };
include "/etc/named.rfc1912.zones;"
include "/etc/named.root.key";
*/
view localhost {
?? ?match-clients {172.25.254.106;};
?? ?zone "." IN {
?? ?? type? hint;
?? ?? };? ?
include "/etc/named.rfc1912.zones;"
?? ?};
view Anynet {
?? ?match-clients {any;};
?? ?zone "." IN {
?? ?? type? hint;
?? ?? file "named.ca";
?? ?? };? ?
include "/etc/named.rfc1912.inter";
?? ?};?????????????????????? ##實現內外網分離
zone到key";
實現內外網的分離
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter? ##外網配置文件
vim /etc/named.rfc1912.inter
zone"westos.com"IN{?????????? ?
??? type master;
??? file"westos.com.inter";
??? allow-update{none;};
cd /var/named
cp -p westos.com.zone??? westos.com.inter
vim westos.com.inter???????????? ##外網域名解析文件
客戶端測試
vim /etc/resolv.conf????????? ##為兩個網絡段的客戶端配置nameserver
dig www.westos.com
DNS的遠程更新(稍后補充)
- 基于正常認證方式的遠程更新
- 基于key認證的遠程更新
- ?
DNS動態域名解析(稍后補充)
總結
- 上一篇: Apache服务器部署(2)
- 下一篇: haproxy实现高可用及负载均衡