一、DNS相關介紹 DNS(Domain Name System)功能變數名稱系統協議,作為功能變數名稱和IP地址相互映射的一個分散式資料庫,能夠使用戶更方便的訪問互聯網,而不用挨個記住IP地址。通過主機名,最終得到該主機名對應的IP地址的過程叫做功能變數名稱解析(或主機名解析)。DNS協議號是udp53。DNS伺服器的作 ...
一、DNS相關介紹
DNS(Domain Name System)功能變數名稱系統協議,作為功能變數名稱和IP地址相互映射的一個分散式資料庫,能夠使用戶更方便的訪問互聯網,而不用挨個記住IP地址。通過主機名,最終得到該主機名對應的IP地址的過程叫做功能變數名稱解析(或主機名解析)。DNS協議號是udp53。DNS伺服器的作用就是就好比通訊錄一樣,為各種網路程式找到對應目標主機的IP地址或對應的主機功能變數名稱。每個IP地址都可以有一個主機名,主機名由一個或多個字元串組成,字元串之間用小數點隔開。有了主機名,就不要死記硬背每台IP設備的IP地址,只要記住相對直觀有意義的主機名就行了。這就是DNS協議所要完成的功能。
主機名到IP地址的映射有兩種方式:
1、靜態映射,每台設備上都配置主機到IP地址的映射,各設備獨立維護自己的映射表,而且只供本設備使用;
2、動態映射,建立一套功能變數名稱解析系統(DNS),只在專門的DNS伺服器上配置主機到IP地址的映射。
在解析功能變數名稱時,可以首先採用靜態功能變數名稱解析的方法,如果靜態功能變數名稱解析不成功,再採用動態功能變數名稱解析的方法。可以將一些常用的功能變數名稱放入靜態功能變數名稱解析表中,這樣可以大大提高功能變數名稱解析效率。正向解析:根據主機名稱(功能變數名稱)查找對應的IP地址(實際應用中最多的),反向解析:根據IP地址查找對應的主機功能變數名稱(不常用,一般用於搭建郵件伺服器時)。
根據伺服器與所提供功能變數名稱解析記錄的關係,將DNS伺服器分為不同的角色:
1、緩存功能變數名稱伺服器,也稱為高速緩存伺服器,通過向其他功能變數名稱伺服器查詢獲得功能變數名稱->IP地址記錄,將功能變數名稱查詢結果緩存到本地,提高重覆查詢時的速度
2、主功能變數名稱伺服器,特定DNS區域的官方伺服器,具有唯一性,負責維護該區域內所有功能變數名稱->IP地址的映射記錄
3、從功能變數名稱伺服器(通俗一點就是用於備份DNS伺服器的),也稱為輔助功能變數名稱伺服器其維護的功能變數名稱->IP地址記錄,來源於主功能變數名稱伺服器搭建DNS服務,應用的軟體為:BIND(Berkeley Internet Name Daemon)
二、搭建過程
1 1. 安裝必要軟體包 2 [root@SZH1 ~]# yum -y install bind bind-chroot bind-util bind-libs 3 解釋: 4 bind 提供了功能變數名稱服務的主要程式及相關文件 5 bind-utils 提供了對DNS伺服器的測試工具程式(如nslookup、dig等) 6 bind-chroot 為bind提供一個偽裝的根目錄以增強安全性(將“/var/named/chroot/”文件夾作為BIND的根目錄) 7 8 2. 修改dns配置文件 9 修改前先備份 10 [root@SZH1 ~]# cp -p /etc/named.conf /etc/named.conf.bak // 參數-p表示備份文件與源文件的屬性一致。 11 [root@SZH1 ~]# cat /etc/named.conf 12 options { 13 listen-on port 53 { any; }; 14 listen-on-v6 port 53 { any; }; 15 directory "/var/named"; 16 dump-file "/var/named/data/cache_dump.db"; 17 statistics-file "/var/named/data/named_stats.txt"; 18 memstatistics-file "/var/named/data/named_mem_stats.txt"; 19 recursing-file "/var/named/data/named.recursing"; 20 secroots-file "/var/named/data/named.secroots"; 21 allow-query { any; }; 22 23 /* 24 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. 25 - If you are building a RECURSIVE (caching) DNS server, you need to enable 26 recursion. 27 - If your recursive DNS server has a public IP address, you MUST enable access 28 control to limit queries to your legitimate users. Failing to do so will 29 cause your server to become part of large scale DNS amplification 30 attacks. Implementing BCP38 within your network would greatly 31 reduce such attack surface 32 */ 33 recursion yes; 34 35 dnssec-enable yes; 36 dnssec-validation yes; 37 # dnssec-lookaside auto; 38 /* Path to ISC DLV key */ 39 bindkeys-file "/etc/named.root.key"; 40 41 managed-keys-directory "/var/named/dynamic"; 42 43 pid-file "/run/named/named.pid"; 44 session-keyfile "/run/named/session.key"; 45 }; 46 zone "szh.com" IN { 47 type master; 48 file "szh.com_zone"; 49 allow-update { none; }; 50 }; 51 zone "110.168.192.in-addr.arpa" IN { 52 type master; 53 file "192.168.110.zone"; 54 allow-update { none; }; 55 56 };include "/etc/named.rfc1912.zones"; 57 58 這兩個zone我在配置文件里直接上的,我看很多人說要在/etc/named.rfc1912.zones文件中添加,但因為配置文件中存在最後一行,所以同意生效。 59 保存退出後輸入named-checkconf // 檢查named.conf是否有語法問題。 60 61 3. 查看named進程運行是否正常 62 [root@SZH1 ~]# systemctl start named // 開啟named進程 63 [root@SZH1 ~]# ps -eaf|grep named // 檢查進程 64 [root@SZH1 ~]# netstat -nult|grep :53 // 檢查監聽埠 65 66 4. 添加正向解析 67 [root@SZH1 named]# cat szh.com_zone 68 $TTL 1D 69 @ IN SOA @ rname.invalid. ( 70 0 ; serial 71 1D ; refresh 72 1H ; retry 73 1W ; expire 74 3H ) ; minimum 75 NS @ 76 A 192.168.110.230 77 AAAA ::1 78 ns A 192.168.110.230 79 vcenter A 192.168.110.231 80 81 [root@SZH1 named]# chown :named /var/named/szh.com_zone //授權 named 用戶 82 83 [root@SZH1 named]# named-checkzone "szh.com" "/var/named/szh.com_zone" //檢查區域文件是否正確 84 85 5. 添加反向解析 86 [root@SZH1 named]# cat 192.168.110.zone 87 $TTL 1D 88 @ IN SOA @ rname.invalid. ( 89 0 ; serial 90 1D ; refresh 91 1H ; retry 92 1W ; expire 93 3H ) ; minimum 94 NS @ 95 A 192.168.110.230 96 AAAA ::1 97 230 PTR ns.szh.com. 98 231 PTR vcenter.szh.com. 99 100 [root@SZH1 named]# chown :named /var/named/192.168.110.zone //授權 named 用戶 101 102 [root@SZH1 named]# named-checkzone "110.168.192.in-addr.arpa" "/var/named/192.168.110.zone " //檢查區域文件是否正確 103 104 6. 重啟服務,檢查dns是否生效 105 [root@SZH1 named]# systemctl restart named 106 [root@SZH1 named]# nslookup 107 > vcenter.szh.com 108 Server: 192.168.110.230 109 Address: 192.168.110.230#53 110 111 Name: vcenter.szh.com 112 Address: 192.168.110.231 113 ------------------------------------------------------dns配置成功-------------------------------------------------------------