安裝配置DNS伺服器、DDNS的配置
DNS和DDNS的安裝和配置
一、DNS簡介
1、DNS伺服器的工作原理
域名服務(DNS)是一種分散式資料庫,它提供從機器名到數字IP地址的對映。
DNS服務最常用的軟體是BIND(Berkeley Internet Name Domain),BIND提供瞭解析器和名字伺服器軟體,解析器作實際的查詢工作,名字伺服器負責響應。BIND將名字伺服器分成三個部分:
1. 主伺服器包含了一個域的全部資料
2. 次伺服器則有效地從主伺服器複製DNS資料庫
3. 緩衝伺服器通過緩衝查詢來建立例外的DNS資料庫
域名體系層次結構圖如下
2、DNS的分類
1)唯快取記憶體域名伺服器(Cache-only Server)
不包含域名資料庫,它每次從某臺遠端伺服器取得域名伺服器查詢的資訊。一旦取得一個回答,就將它放入快取記憶體中,下次查詢相同的資訊就用此回答。
2)主域名伺服器(primary Name Server)
主域名伺服器是特定域所有資訊的權威來源,從域管理員構造的本地檔案中載入域資訊,該檔案包含伺服器具有的部分域結構的最精確資訊。主域名伺服器需要配置一組完整的檔案。
3)輔助域名伺服器(Second Name Server)
輔助域名伺服器用來從主域名伺服器中轉移一整套域資訊,它是可選的配置選項。區檔案從主域名伺服器轉移出來,作為磁碟檔案儲存在輔助域名伺服器中。輔助域名伺服器不需要配置本地區檔案,只需要配置主配置檔案(named.conf),快取記憶體初始化檔案(named.ca)和回送檔案(named.local)。
3、本次實驗各檔案之間的關係示意圖
二、安裝DNS(Domain Name System)
yum install bind -y
systemctl start named #此時開啟需要讀取一個檔案/etc/rndc.key檔案,但這個檔案預設不存在,所以需要在主機上敲鍵盤生成該檔案,然後就可以開啟服務
若是想檢視某一個服務的埠,可以檢視檔案cat /etc/services | grep domain,以domain服務為例
主配置檔案: /etc/name.conf
子配置檔案: /etc/named.rfc1912.zones
資料目錄: /var/named
三、配置
1、簡單配置,非權威DNS
這裡進行測試必須瞭解dig命令,dig命令是常用的域名查詢工具,可以用來測試域名系統是否正常
當使用客戶端dig www.baidu.com命令時,出現報錯說連線超時,則需要檢視服務端的埠,是否是迴環埠,若是,則需要改變。
當出現dig狀態是status: SERVFAIL,則表示地址解析的dns伺服器也不知道該如何訪問,則可新增下面配置的18行來進行修改,寫入一個知道的ip地址
[root@server ~]# vim /etc/named.conf
--> 11 listen-on port 53 { any; }; #表示向所有客戶主機開啟這個53埠
17 allow-query { any; }; #表示允許所有主機連線該dns伺服器
18 forwarders { 172.25.254.250; }; #表示當客戶端主機沒有服務端dig訪問的內容時,則訪問這個主機來進行訪問
[root@server ~]# systemctl restart named #重啟服務
客戶端,進行地址解析
[root@localhost ~]# vim /etc/resolv.conf
--> nameserver 172.25.254.170 #dns服務端主機ip
測試
[[email protected] images]# dig www.qq.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> www.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13418
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 11
...
;; Query time: 0 msec #第一次時間會較長,後面時間較短
;; SERVER: 172.25.254.250#53(172.25.254.250)
;; WHEN: Sat Nov 25 09:53:52 EST 2017
;; MSG SIZE rcvd: 302
2、權威DNS的正向解析
通過域名得到相對應的ip地址
在一個沒有連線外網的主機上進行dns伺服器配置如下:
[root@server ~]# vim /etc/named.conf
--> 11 listen-on port 53 { any; }; #表示向所有客戶主機開啟這個53埠
17 allow-query { any; }; #表示允許所有主機連線該dns伺服器
[root@server ~]# systemctl restart named
此時,用客戶端進行測試:
[root@localhost ~]# dig www.westos.com
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 53264
修改服務端
可以直接在/etc/named.conf主配置檔案裡面修改,但會造成排錯不好找,而且如果新增的很多之後,會使得檔案太長。所以可以在該檔案包含的檔案/etc/named.rfc1912.zones檔案中修改。
[root@server ~]# vim /etc/named.rfc1912.zones
--> 25 zone "westos.com" IN { #""中的內容表示客戶端請求的域名地址
26 type master; #配置為主DNS伺服器
27 file "named.westos.zone"; #去訪問這個檔案,這個檔案本身並沒有,需要自己建立
28 allow-update { none; };
29 };
[root@server ~]# cd /var/named/
[root@server named]# cp -p named.localhost named.westos.zone
[root@server named]# vim named.westos.zone
--> $TTL 1D
##表示快取可以儲存一天
@ IN SOA dns.westos.com. root.westos.com. (
##@表示/etc/named.rfc1912.zones/檔案裡面zone "westos.com" IN引號裡面的內容,沒有以'.'結尾的會預設新增@所表示的資訊
##dns.westos.com. 預設複製過來的檔案是一個@符
##root.westos.com. 管理員
0 ; serial
1D ; refresh
##表示一天後重新重新整理
1H ; retry
##若沒有得到答案,1小時後再次詢問
1W ; expire
3H ) ; minimum
##3小時內若答案沒有修改,則回答原來的答案,可以防止DOS攻擊
NS dns.westos.com. ##nameserver
dns A 172.25.254.170
www A 172.25.254.50 ##所提供該域名服務的ip地址
[root@server named]# systemctl restart named
客戶端重新進行測試:
[[email protected] ~]# dig www.westos.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> www.westos.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9458
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
...
;; QUESTION SECTION:
;www.westos.com. IN A
;; ANSWER SECTION:
www.westos.com. 86400 IN A 172.25.254.50
;; AUTHORITY SECTION:
westos.com. 86400 IN NS dns.westos.com.
;; ADDITIONAL SECTION:
dns.westos.com. 86400 IN A 172.25.254.170
;; Query time: 0 msec
;; SERVER: 172.25.254.170#53(172.25.254.170)
;; WHEN: Sat Nov 25 10:39:08 EST 2017
;; MSG SIZE rcvd: 93
3、權威DNS的反向解析
客戶端輸入dig -x ip,顯示出想要的域名
[[email protected] ~]# dig -x 172.25.254.55
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 48122
[[email protected] named]# vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN { ##反響解析應該注意地址應該反方向寫
type master;
file "westos.loopback";
allow-update { none; };
};
[[email protected] named]# cp -p named.loopback westos.loopback
[[email protected] named]# vim westos.loopback ##內容解釋和2中一樣
$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.254.55
55 PTR www.westos.com. ##測試輸入的需要反響解析的ip所對應的域名內容
[[email protected] named]# systemctl restart named
此時再次進行測試:
[[email protected] ~]# dig -x 172.25.254.55
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25237
;; QUESTION SECTION:
;55.254.25.172.in-addr.arpa. IN PTR
;; ANSWER SECTION:
55.254.25.172.in-addr.arpa. 86400 IN PTR www.westos.com.
;; AUTHORITY SECTION:
254.25.172.in-addr.arpa. 86400 IN NS dns.westos.com.
;; ADDITIONAL SECTION:
dns.westos.com. 86400 IN A 172.25.254.170
...
4、dns的雙向解析
使內網和外網不同的人解析到不同的ip地址
[root@server named]# vim /etc/named.conf
view localnet {
match-clients { 172.25.254.70; }; ##表示內網解析到的
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones"; ##內王訪問的檔案
include "/etc/named.root.key";
};
view othernet { ##外網
match-clients { any; }; ##除了172.25.254.70這個ip地址之外的ip
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inter"; ##外網要訪問這個檔案,該檔案需要自己建立
include "/etc/named.root.key";
};
[root@server named]# cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
[root@server named]# vim /etc/named.rfc1912.inter
zone "westos.com" IN {
type master;
file "named.westos.inter"; ##把需要區分內外網的域名外網訪問檔案重新建立修改
allow-update { none; };
};
[root@server named]# cp -p named.westos.zone named.westos.inter
[root@server named]# vim named.westos.inter
$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 1.1.1.170
www A 1.1.1.50 ##改為想要顯示的外網的地址
不同客戶端進行測試
內網ip測試172.25.254.70:
[[email protected] ~]# dig www.westos.com
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58908
;; QUESTION SECTION:
;www.westos.com. IN A
;; ANSWER SECTION:
www.westos.com. 86400 IN A 172.25.254.50
;; AUTHORITY SECTION:
westos.com. 86400 IN NS dns.westos.com.
;; ADDITIONAL SECTION:
dns.westos.com. 86400 IN A 172.25.254.170
;; Query time: 0 msec
;; SERVER: 172.25.254.170#53(172.25.254.170)
;; WHEN: Sat Nov 25 11:48:40 EST 2017
;; MSG SIZE rcvd: 93
外網ip測試:
[[email protected] named]# dig www.westos.com
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50415
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.westos.com. IN A
;; ANSWER SECTION:
www.westos.com. 86400 IN A 1.1.1.50
;; AUTHORITY SECTION:
westos.com. 86400 IN NS dns.westos.com.
;; ADDITIONAL SECTION:
dns.westos.com. 86400 IN A 1.1.1.170
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Nov 25 11:48:03 EST 2017
;; MSG SIZE rcvd: 93
可以看出不同ip所得到的ip地址是不同的
5、主從DNS伺服器的同步
為了緩解主機的壓力,可以建立一個輔助DNS的伺服器,和主的DNS進行同步,使有的客戶端可以通過輔助DNS得到結果
主DNS配置:
vim /etc/named.rfc1912.inter
also-notify { 172.25.254.175; };
systemctl restart named
輔助DNS配置:
vim /etc/named.conf any any
[[email protected] named]# vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type slave;
masters { 172.25.254.170; };
file "slaves/westos.com.inter";
allow-update { none; };
};
[[email protected] named]# systemctl restart named
測試:用兩個外網主機,resolv.conf分別寫為主和輔助的DNS,進行dig測試
6、DNS的遠端更新
1)基於ip的更新
在主DNS上面更改
vim /etc/named.rfc1912.inter
allow-update { 172.25.254.175; };
systemctl restart named
測試:
在175主機上
輸入nsupdate命令,進行同步
server 172.25.254.170 ##主DNS
update add bbs.westos.com 86400 A 1.1.1.3 ##新增
send
server 172.25.254.170
update delete www.westos.com ##刪除
send
2)基於金鑰的更新
cp -p /etc/rndc.key /etc/westos.key
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
vim /etc/westos.key
將裡面的名稱改為westos,並將secret後面引號裡面的具體數值改為生成的金鑰
vim /etc/named.conf
新增
include "/etc/westos.key";
vim /etc/namde.rfc1912.inter
allow-update { key wesots; };
測試:
scp Kwestos.+157+07295.* root@172.25.254.175:/mnt
在175主機上執行命令
nsupdate -k Kwestos.+157+07295.key
進行和基於ip的一樣的測試
四、DDNS
修改dns
vim /etc/named.conf
include "/etc/westos.key";
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localnet { #內網
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "named.westos.zone";
allow-update { key westos; }; ##有westos key的客戶端主機可以訪問
};
vim named.westos.zone
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.170
修改dhcp
安裝dhcp,修改配置檔案
vim /etc/dhcp/dhcpd.conf
option domain-name "westos.com";
option domain-name-servers 172.25.254.170;
ddns-update-style interim;
subnet 172.25.254.0 netmask 255.255.255.0 {
range 172.25.254.197 172.25.254.210;
option routers 172.25.254.170;
}
key westos {
algorithm hmac-md5;
secret "GgUPXCeBC7rQOk2pw8XYmw==";
};
zone westos.com. {
primary 127.0.0.1;
key westos;
}
重啟兩項服務,然後配置客戶端
客戶端的ip設為dhcp模式,並且配置主機名為www.westos.com,在進行dig www.westos.com會顯示的是得到dhcp的ip的ip地址
相關推薦
安裝配置DNS伺服器、DDNS的配置
DNS和DDNS的安裝和配置 一、DNS簡介 1、DNS伺服器的工作原理 域名服務(DNS)是一種分散式資料庫,它提供從機器名到數字IP地址的對映。 DNS服務最常用的軟體是BIND(Berkeley Internet Name Domain),
linux 安裝配置DNS伺服器
VM虛擬的環境CENTOS 5.6 IP:192.168.1.170 本地XP系統 IP:192.168.1.108 一.。安裝DNS LINUX安裝DNS主要要安裝2個程式: yum install bind*
dns伺服器搭建及配置測試流程
1、使用 bind(Berkeley Internet Name Domain)搭建 DNS(Domain Name System)伺服器 安裝。 yum -y install bind-chroot 可先查詢是否已經安裝: rpm -q bind rpm -q bind-ch
CentOS通過bind配置DNS伺服器
一、建立DNS主伺服器 1、安裝bind並配置主配置檔案 主伺服器為CentOS 7,主服務地址為172.16.11.55 安裝bind [[email protected] ~]# yum install bind 安裝完成後檢
AndroidStudio2.3.3安裝、配置及NDK、Cmake配置遇到的問題彙總
##從入門到放棄系列## ###1、報錯 1.1 CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage 解決方法:在Module:app的build.gradle中新增: ndk{ a
DNS伺服器搭建與配置
DNS服務簡介: DNS(Domain Name System–域名系統),是因特網的一項服務。它作為將域名和IP地址相互對映的一個分散式資料庫,能夠使人更方便地訪問網際網路。是一個應用層的協議DNS使用TCP和UDP埠53。 DNS是一個分散式資料庫,命名系統
Ubuntu Linux 學習篇 配置DNS伺服器
BIND9 DNS(Domain Name Server,域名伺服器)是進行域名(domain name)和與之相對應的IP地址 (IP address)轉換的伺服器。DNS中儲存了一張域名(domain name)和與之相對應的IP地址 (IP address)的表,以解析訊息的域名。 域名是
Ubuntu採用bind9配置DNS伺服器
Ubuntu採用bind9配置DNS伺服器 最近公司專案需要用到dns伺服器,就搭建了dns伺服器。 1. BIND9 的安裝與配置1.1 bind簡介BIND (Berkeley Inter
MySql 配置主從伺服器、配置主主伺服器
1、準備工作: 阿里雲的centos 兩臺伺服器:(mysql版本儘量保持一致,主伺服器的版本不能高於從伺服器) 主伺服器:ip1; 從伺服器:ip2; 待同步的資料庫:slaveDB; 同步主從資料庫資料,保持主從資料一致! 需要注意的是!!!
為雲伺服器Windows Server2012 配置DNS伺服器
一、安裝DNS伺服器 1.開啟伺服器管理器,點選新增角色和功能 2.一直下一步,選擇基於角色或基於功能的安裝 3.選擇目標伺服器,只有一臺 4.新增DNS伺服器 5.一直下一步直到安裝成功 二、配置DNS伺服器 之前安裝好了DNS伺服器,但是還需要進一步的配置。
網路作業系統 第十章 DNS伺服器管理與配置
習題 1、什麼是域名系統?描述域名解析的過程。 1)域名系統:Domain Name System縮寫DNS,是因特網的一項核心服務域名系統作為可以將域名和IP地址相互對映的一個分散式資料庫,能夠使人更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的IP數串 2) &nb
第十一章 DNS伺服器管理與配置
1.如何在WindowsServer 2008 系統中使用IIS進行多站點配置與管理? 1)執行“開始”–“程式”–“管理工具”–“伺服器管理器”開啟: 選擇“WEB伺服器(IIS)”,注意:首次安裝IIS的時候,當你點選“下一步”的時候會提示“是否新增WEB伺服器所需的功能”對話方塊。 提示在安裝
Linux如何配置ftp伺服器、給ftp伺服器新增訪問使用者
先是安裝:emerge vsftpd,然後按照下面的操作步驟即可配置ftp(主要就是修改/etc/vsftpd/vsftpd.conf)。在linux中新增ftp使用者,並設定相應的許可權,操作步驟如下面綠色字型所示(一個機器上只要裝了ftp服務,可以任意建立一個使用
[轉]Ubuntu配置DNS伺服器--bind(已測試)
每次重啟計算機之後這個檔案都會被自動改寫,所以每次重啟後需要手動設定此檔案f. 測試:使用nslookup 測試tonybox2:~# nslookup> set type=any> mydebian.orgServer: 192.168.102.47Address: 192.168.102.47
Hadoop 通過bind9配置DNS伺服器替代hosts的IP對映(ubuntu版)
最開始搭建hadoop叢集時,我是用hosts的ip對映實現的各個主機名與IP之間的對映關係。 但是,hosts的ip對映的缺點是,當我們在叢集裡面增加一個機器時,所有機器都要更新他們的hosts檔案,這樣就顯得很繁瑣。 通過查詢資料,可以使用bind9配置DNS來替代原先
Kali Linux橋接模式配置DNS伺服器
操作環境: 虛擬機器作業系統: Kali Linux 2017.2 虛擬化軟體: VMWare Workstation 14 pro 操作前的準備:
在Debian上用Bind 配置DNS伺服器
1 什麼是DNS 初學者可能不理解DNS到底是什麼,幹什麼用。我是在1998年大學畢業時才聽說這個詞的。那時我在聊天室碰到濰坊資訊港的一個網管,我恬不知恥地說我也是個網管,他說也維護DNS嗎?我說,DNS是什麼? ——DNS,DomainName Service,或者Dom
四條命令快速在Ubuntu16.04上配置DNS伺服器
1. apt install dnsmasq -y 2. vim /etc/dnsmasq.d/resolv.conf address=/xxx.yyy.com/21.xx.xx.x 3. service dnsmasq start 4. iptables -I INPU
路由器虛擬伺服器、DMZ配置,讓你的網站在外網能夠訪問
部落格資料(ASP.NET MVC3 馬倫) http://www.cnblogs.com/fly_dragon/ http://www.cnblogs.com/zhangziqiu/archive/2009/02/27/aspnet-mvc-1.html http:/
centos7 下部署Git以及git的使用(如需配置dns則需要提前配置好)
1.要生成新的SSH金鑰對,請使用以下命令: ssh-keygen -t rsa -C "[email protected]" -b 4096 查詢生產密匙 cat ~/.ssh/id_rsa.pub 複製密匙 貼上到gitlab的ssh密匙上,新增密