目錄(持續更新)
基礎-第0章-安裝
基礎-第1章-基本操作
基礎-第2章-磁盤及文件系統管理
基礎-第3章-獲得幫助
基礎-第4章-用戶及權限基礎
基礎-第5章-網絡基本配置
基礎-第6章-管道,重定向及文本處理
基礎-第7章-系統啟動詳解
進階-第1章-日志服務
進階-第2章-DNS域名服務器
進階-第3章-FTP文件共享服務
進階-第4章-NFS文件共享服務
進階-第5章-SMB文件共享服務
進階-第6章-WEB服務Apache篇
進階-第7章-電子郵件服務
進階-第8章-Linux服務基礎及管理
高級-第1章-LVM邏輯卷
高級-第2章-高級權限ACL
高級-第3章-RAID提升速度及冗余
高級-第4章-高級網絡-網卡綁定,子端口
高級-第5章-SELinux安全系統基礎
高級-第6章-IPTable防火墻基礎
高級-第7章-Linux遠程管理-SSH、VNC
第2章 DNS域名服務器
第一節 DNS基礎及域名系統架構
-
域名
IP地址難記,所以使用域名管理www.google.com www.linuxprobe.com 嚴格域名最后還有一個 "." 但一般不寫 域名分為三部分用“.”分割 -類型 表示域名的類型 -域名 域名城 -主機名 該域中的某臺主機名稱 www. linuxcast. net 主機名 域名 類型
-
DNS
每個域名代表一個IP,而DNS就是用來在IP與域名之間進行轉換服務 www.linuxcast.net 61.1.1.1 DNS(Domain Name System)服務有DNS服務器提供 1.本機PC訪問www.linucast.net -------------------> DNS服務器 61.134.1.4 DNS請求 2.DNS服務器 61.134.1.4 -------------------> 本機PC www.linucast.net=61.1.1.1 3.本機PC訪問61.1.1.1 -------------------> www.linucast.net:61.1.1.1網站
-
DNS客戶端
日常使用支持計算機一般都是作為一個DNS客戶端使用 應用程序,服務,進程通過操作系統底層的功能發起對DNS服務器的查詢對指定域名解析 linux中一般只用系統底層提供的gethostbyname()功能進行域名解析 解析可以基本基于以下幾種方式: - 文件 (/etc/hosts,/etc/networks)指定域名與IP的匹配 - DNS (/etc/resolv.conf 目前已經能手動修改)指定DNS服務器 (改用/etc/sysconfig/network-scripts/ifcfg-eth0) - NIS 已淘汰 可以通過配置文件/ect/nsswitch.conf控制查詢順序 hosts:files dns files就是指查詢host文件
-
DNS專用查詢命令
命令host可以用進行DNS查詢 host www.bilibili.com 命令dig用于進行DNS查詢,輸出較為詳細的信息 dig www.bilibili.com 命令host,dig都不會使用/ect/nsswitch.conf的配置,只會通過/etc/resolv.conf進行DNS查詢 DNS查詢 DNS是樹狀結構,查詢是根據域名從右到左查詢,每一級有一個獨立或多個服務器 www.bilibili.com. . root DNS Server 根服務器(返回頂級域名服務器位置) com net org cn gov ... Top Level Server 頂級域名服務器(返回授權服務器位置) bilibili Authoritative Server:bilibili.com 授權服務器(返回來源服務器位置) www mail ftp ... Resource Recaord:www.bilibili.com 來源服務器(返回網站服務位置) dig +trace www.bilibili.com (該命令+trace存疑)
-
DNS查詢類型
遞歸查詢 client ----> 當地DNS服務器 <-------> "." 當地DNS服務器 <-------> "net" 當地DNS服務器 <-------> "bilibili.com" client <---- 當地DNS服務器 循環查詢 逐級返回 每次消耗大量緩存 client ----> 當地DNS服務器 -------> "." "." -------> "net" "net" -------> "bilibili.com" "net" <------- "bilibili.com" "." <------- "net" 當地DNS服務器 <------- "." client <---- 當地DNS服務器 實際應用中兩者都會使用
-
資源記錄
在DNS上,信息通過一個叫資源里路的格式保存 資源記錄 - NAME 名字 - CLASS 通常是IN (internet) - TYPE 類型 A為IPV4地址 AAAA為IPV6地址 CNAME別名,名稱對等 MX為郵件記錄 - RDATA 信息內容 例: NAME CLASS TYPE RDATA www IN A 192.168.1.1 mail IN A 192.168.1.2 server1 IN CNAME www IN MX 10 mail.bilibili.com
-
資源記錄類型
DNS的資源記錄可以記錄很多類型的資源,不僅僅是IP地址, 常見的資源記錄 A IPV4地址 AAAA IPV6地址 MX 郵件記錄 CNAME 別名 PTR 指針(逆向解析) SRV 服務資源
-
DNS服務器類型
Primary DNS Server (Master) 一個域的主服保存該域的zone配置文件,域內所有配置更改都在這里進行 Secondary DNS Server (Slave) 從主服務器抓取配置文件,作為主服務的冗余負載 Caching only Server DNS服務器緩存服務不負責任和zone文件,僅僅依靠緩存為客戶端提供服務,常用于負載均衡及加速訪問使用
-
ZONE
在DNS服中一個域用過一個zone文件保存該域信息zone文件格式標準化配置如下: STTL ID @IN SOA @rname.invalid.( 0 ;serial 配置文件的修改次數 1D ;refresh 刷新時間 1D就是1DAY 1H ;retry 重試時間 1H即使1HOUR 1W ;expire 3H) ;minimum NS @ MX 10 mail.linuxcast.net 定義郵件服務 www IN A 192.168.1.100 定義站點服位置 mail IN A 192.168.1.200 定義郵件服務位置
-
高級查詢
dig -t mx qq.com dig -x www.bilibili.com dig -t soa bilibili.com
第二節 BIND服務基礎及域主服務器配置
-
BIND
現在使用的最廣泛的DNS服務器軟件BIND 最早為伯克利大學學生編寫 現在最新為9 BIND支持現今絕大多數OS BIND服務的名稱為named 我們可以通過以下命令安裝BIND yum install -y bind bind-chroot bind-utils DNS默認使用UDP,TCP協議,默認使用端口53(domain),953(mdc)
-
BIND配置文件
配置文件主要位置: /etc/named.conf -BIND服務主配置文件 /var/named/ -zone文件 如果安裝了bind-chroot,BIND會被封裝到一個偽根目錄,配置文件的位置變為: /var/named/chroot/etc/named.conf /var/named/chroot/var/named/ chroot是通過相關巍峨見封裝在一個偽根目錄內,已達到安全防護的目的, 一旦該程序被攻破,只能訪問偽根目錄的內容,而不是真實的根目錄
-
BIND模板配置文件
在不同于其他服務,BIND在安裝后不會有任何預制的配置文件, 但是在BIDN文檔文件夾 (/usr/share/doc/bind-9.9.4) BIND為我們提供了配置文件模板,可以直接拷貝過來: cp -rv /usr/share/doc/bind-9.9.4/sample/ect/* /var/named/chroot/etc/ cp -rv /usr/share/doc/bind-9.9.4/sample/var/* /var/named/chroot/var/ 示例中的主配置文件內容較多, 實驗環境下我們可以刪減不需要的內容,配置named.conf 最小化配置如下: options{ listen-on port 53 {127.0.0.1;}; directory "/var/named"; }; 或者 options{ directory "/var/named"; listen-on port 53 {127.0.0.1;}; listen-on-v6 port 53 {127.0.0.1;}; }; 注:ubuntu中該代碼在named.conf.options文件中
-
域主服務器配置
一個域的主服務器是這個域的信息權威服務器,所有這個域的信息都是由域的主服務器控制, 配置一個域的主服務器需要一下幾個步驟 1.在bind的主配置文件中添加該域的定義 2.在/var/named/chroot/var/named中創建該域的zone信息 3.編輯zone文件,添加需要的信息 4.啟動bind服務或使bind刷新配置 5.使用host或dig命令檢測域信息是否正常
-
配置域主服務器-1
在bind的主配置文件中添加域bilibili.com的定義 配置文件位置: /var/named/chroot/etc/named.conf options { directory "/var/named"; listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; }; 在主配置文件中添加一行域的zone定義:(ubuntu中代碼參考在named.conf.default-zones文件) zone"bilibili.com"{ type master file"bilibili.com.zone" 文件名可以隨便,ubuntu中使用絕對路徑形式(由于centos中上面的option已定義了查找目錄) };
-
配置域主服務器-2
為定義的域添加zone配置文件 zone文件位置 /var/named/chroot/var/named/bilibili.com.zone zone文件內容 zone文件內容比較復雜,手工輸入很容易出錯,所以一般使用默認的named.localhost配置文件作為模板 cp named.localhost bilibili.com.zone 添加一個資源記錄(RR) IN MX 10 mail.bilibili.com www IN A 192.168.1.111 mail IN A 192.168.1.222 確保配置文件都有讀權限
-
配置域主服務器-3
1.啟動bind服務或刷新配置 service named start service named reload 2.將本機的DNS配置指向本機 /etc/resolv.conf (debian系不能單純修改該文件 需要修改網卡配置或者找到/etc/resolvconf/resolv.conf.d/base文件修改) nameserver 127.0.0.1 3.使用命令host或dig驗證DNS配置 host www.bilibili.com dig www.bilibili.com
-
錯誤排查
DNS語法復雜晦澀,容易出錯,bind提供了語法檢查命令 命令named-checkconf 檢查主配置文件 named-checkconf /var/named/chroot/etc/named.conf 無返回 則無錯誤 命令named-checkzone 檢查zone配置文件 named-checkzone bilibili.com bilibili.com.zone
第三節 BIND服務從服務器與緩存服務器配置
-
域從服務器
一個域從服務器為了備份負載均衡使用,所有DNS信息由主服務器提供 配置如下 1.在bind的主配置文件愛你中添加該域的定義 2.啟動bind服務或者bind刷新配置 3.查看域的zone文件是否正常抓到/var/named/slaves 4.使用host或者dig命令檢測域信息是否正常
-
配置域從服務器-1
在bind的主配置文件中添加從域bilibili.com的配置信息 配置文件位置 /var/named/chroot/etc/named.conf 在主配置文件中添加一行域的zone定義 zone"bilibili.com"{ type slave masters{192.168.1.1;}; file"slaves/linuxcast.net.zone"; };
-
配置域從服務器-2
1.重啟bind服務或刷新配置 service named start service named reload 2.查看zone文件是否正常抓取下來 vim /var/named/chroot/var/named/slaves/bilibili.com.zone 3.將本機的DNS指向自己 vim /etc/resolv.conf nameserver 127.0.0.1 4.使用命令host或dig驗證DNS配置 host www.bilibili.com dig www.bilibili.com
-
配置緩存服務器
一個DNS服務可以既不是主也不是從服務 接到DNS后緩存服務會遞歸查詢解析,會將結果緩存 這樣的服務稱為CACHING NAME SERVER 通常在局域網中配置緩存是為了加速訪問網絡 也可為緩存服務配置一個上游DNS服務器地址,緩存服務器可以給客戶提供一個上游DNS的地址 forwarders{218.0.0.1;} ; (上游DNS服務器地址) 也可以通過以下選項讓服務器轉發所有dns到forwarders服務器: forward only;