DNS小記
DNS 是計算機域名系統 (Domain Name System 或Domain Name Service) 的縮寫,它是由解析器和域名服務器組成的。域名服務器是指保存有該網絡中所有主機的域名和對應IP地址,並具有將域名轉換爲IP地址功能的服務器。其中域名必須對應一個IP地址,而IP地址不一定有域名。域名系統採用類似目錄樹的等級結構。域名服務器爲客戶機/服務器模式中的服務器方,它主要有兩種形式:主服務器和轉發服務器。將域名映射爲IP地址的過程就稱爲“域名解析”。在Internet上域名與IP地址之間是一對一(或者多對一)的,也可採用DNS輪循實現一對多,域名雖然便於人們記憶,但機器之間只認IP地址,它們之間的轉換工作稱爲域名解析,域名解析需要由專門的域名解析服務器來完成,DNS就是進行域名解析的服務器。DNS 命名用於 Internet的 TCP/IP網絡中,通過用戶友好的名稱查找計算機和服務。當用戶在應用程序中輸入 DNS 名稱時,DNS 服務可以將此名稱解析爲與之相關的其他信息,如 IP 地址。因爲,你在上網時輸入的網址,是通過域名解析系統解析找到了相對應的IP地址,這樣才能上網。其實,域名的最終指向是IP。
解析過程
第一步:客戶機提出域名解析請求,並將該請求發送給本地域名服務器。
第二步:當本地域名服務器收到請求後,就先查詢本地緩存,如果有該紀錄項,則本地域名服務器就直接把查詢結果返回。
第三步:如果本地緩存中沒該紀錄,則本地域名服務器就直接把請求發給根域名服務器,然後根域名服務器再返回給本地域名服務器一個所查詢域(根 子域)主域名服務器地址。
第四步:本地服務器再向第一步返回該域名服務器發送請求,然後接受請求服務器查詢自己緩存,如果沒該紀錄,則返回相關下級域名服務器地址。
第五步:重複第四步,直到找到正確紀錄。
第六步:本地域名服務器把返回 結果保存到緩存,以備下一次使用,同時還將結果返回給客戶機。
DNS服務器類型
主dns服務器 用於記錄DNS數據
輔助dns服務器 是主DNS記錄的副本
cache-only 不負責任何一個區域,只用作緩存
存根服務器 存放某一區域的DNS服務器指向
DNS的查詢方式
1.遞歸查詢:也就是DNS客戶端送出查詢要求後,如果DNS服務器內沒有需要的數據,則DNS服務器會代替客戶端向其他的DNS服務順查詢。
2.循環查詢:一般DNS服務器與DNS服務器之間的查詢屬於這種查詢方式。當第一臺DNS服務器在向第2臺DNS服務器提出查詢要求後,如果第2臺DNS服務器內沒有所需要的數據,則它會提供第3臺DNS服務器的IP地址給第1臺
3.反向查詢:可以讓DNS客戶端利用IP地址查詢其主機名稱。
DNS配置實例1
實例背景:某公司的北京總公司與分公司共用一臺DNS服務器,地址爲192.168.2.100;該公司的上海分公司的DNS服務器地址爲192.168.2.101
配置步驟:
搭建北京總公司DNS服務器
安裝DNS服務器所需要的包
#mount /dev/cdrom /mnt/cdrom
#cd /mnt/cdrom/Server
#ll bind*
-r--r--r-- 23 root root 976248 2009-01-07 bind-9.3.4-10.P1.el5.i386.rpm
-r--r--r-- 23 root root 43071 2009-01-07 bind-chroot-9.3.4-10.P1.el5.i386.rpm
-r--r--r-- 26 root root 2663285 2009-01-07 bind-devel-9.3.4-10.P1.el5.i386.rpm
-r--r--r-- 26 root root 446167 2009-01-07 bind-libbind-devel-9.3.4-10.P1.el5.i386.rpm
-r--r--r-- 27 root root 855681 2009-01-07 bind-libs-9.3.4-10.P1.el5.i386.rpm
-r--r--r-- 23 root root 230400 2009-01-07 bind-sdb-9.3.4-10.P1.el5.i386.rpm
-r--r--r-- 23 root root 171405 2009-01-07 bind-utils-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh bind-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh bind-chroot-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh bind-libs-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh bind-utils-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh caching-nameserver-9.3.4-10.P1.el5.i386.rpm
切換到DNS服務器跟目錄下
# cd /var/named/chroot/
# ll
drwxr-x--- 2 root named 4096 03-06 20:37 dev
drwxr-x--- 2 root named 4096 03-06 22:14 etc
dr-xr-xr-x 133 root root 0 03-06 20:28 proc
drwxr-x--- 6 root named 4096 03-06 20:37 var
#cd /etc/
#ll
-rw-r--r-- 1 root root 405 02-09 09:59 localtime
-rw-r----- 1 root named 1195 2009-01-06 named.caching-nameserver.conf
-rw-r----- 1 root named 1043 03-06 22:06 named.rfc1912.zones
-rw-r----- 1 root named 113 03-06 20:36 rndc.key
編輯主配置文件
#cp -p named.caching-nameserver.conf named.conf
#vim named.conf
編輯區域聲明文件
#vim named.rfc1912.zones
編輯區域數據文件
#cd ../var/named
#cp -p localhost.zone sun.com.db
#vim sun.com.db
#cp -p sun.com.db bj.sun.com.db
#vim bj.sun.com.db
檢測區域文件
#named-checkzone sun.com /var/named/chroot/var/named/sun.com.db
檢測主配置文檔
#named-checkconf /var/named/chroot/etc/named.conf
#service named start
搭建上海DNS
安裝所需要的包
#rpm -ivh bind-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh bind-chroot-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh bind-libs-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh bind-utils-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh caching-nameserver-9.3.4-10.P1.el5.i386.rpm
編輯主配文件
# cd /var/named/chroot/etc/
#cp -p named.caching-nameserver.conf named.conf
#vim named.conf
編輯區域聲明文件
#vim named.rfc1912.zones
編輯區域數據庫
#cp -p localhost.zone sh.sun.com.db
#vim sh.sun.com.db
檢測區域文件
#named-checkzone sh.sun.com /var/named/chroot/var/named/sh.sun.com.db
檢測主配置文檔
#named-checkconf /var/named/chroot/etc/named.conf
#service named start
客戶端地址爲192.168.2.100首選將客戶端DNS指向192.168.2.100,此時能成功解析出來所有DNS服務器內的主機域名
然後將客戶端DNS指向192.168.2.101,可以看出當上海分公司的客戶端通過此區域的DNS無法解析到北京DNS服務器的主機域名
此時需要在此服務器上配置區域轉發
#vim /var/named/chroot/etc/named.conf
此時所有DNS域名內的主機都可以解析
DNS配置實例2
實例背景:某內網內有DNS服務器,當外網用戶訪問時DNS解析出的內網中的地址爲內網出口地址,當內網用戶訪問時DNS解析出的事實際地址
配置步驟:
配置DNS服務器
安裝所需要的包
#rpm -ivh bind-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh bind-chroot-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh bind-libs-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh bind-utils-9.3.4-10.P1.el5.i386.rpm
#rpm -ivh caching-nameserver-9.3.4-10.P1.el5.i386.rpm
編輯主配文件
# cd /var/named/chroot/etc/
#cp -p named.caching-nameserver.conf named.conf
#vim named.conf
編輯區域數據庫
#cp -p localhost.zone server.com.db
#vim server.com.db
#cp -p server.com.db server.com.db1
#vim server.com.db1
檢測區域文件
#named-checkzone server.com /var/named/chroot/var/named/server.com.db
檢測主配置文檔
#named-checkconf /var/named/chroot/etc/named.conf
#service named start
配置網關
#route add default gw 192.168.2.254
配置防火牆
配置網卡參數
#ifconfig eth0 192.168.3.254
#ifconfig eth1 192.168.2.254
查看路由
#route -n
打開數據包轉發功能
#vim /etc/sysctl.conf
ipv4_foward=1
#sysctl -t
配置NAT轉化
#iptables -t nat -A PREROUTING -d 192.168.3.245 -p udp --dport 53 -j DNAT --to 192.168.2.100
查看詳細參數
#iptables -t nat -L -v
當內網用戶請求解析時
當外網用戶請求解析時