前言:
最近整理一些之前的學習筆記。
過去都是存儲在本地,這次傳到網絡留待備用。web
DNS
- 域名系統(Domain Name System)
- 做爲將域名和IP地址相互映射的一個分佈式數據庫,可以令人更方便地訪問互聯網
- 目前,每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符
- 協議: TCP/UDP
- 默認端口: 53
- DNS服務器的功能:
- 正向解析:根據註冊的域名查找對應的ip地址
- 反向解析:根據ip地址查找對應的註冊域名,不經常使用
FQDN(Full Qualified Domain Name),完整合格域名shell
全部完整的域名都會以 .(點) 結尾:數據庫
根域 . ┌─────┬─────┼─────┬─────┬─────┬──────┬─ .com .cn .us .tw .kr .hk ....... #一級DNS服務器 ┌─────┴────┬─────────┬─────────┬─ .com.cn .net.cn .org.cn .edu.cn #二級DNS服務器 ├─────────────────┬───────────────┬─ .lala.com.cn .haha.com.cn .xixi.com.cn #三級DNS服務器 ├─────────────────────┬─ web1.lala.com.cn tts.lala.com.cn #完整主機名
常見的頂級域名/一級域名:vim
國家/地區域 | .cn | .us | .kr | .hk | .tw | ... |
---|---|---|---|---|---|---|
組織域 | .com | .net | .edu | .org | .gov | ... |
資源記錄 | 名稱 | 意義 |
---|---|---|
A | Address地址 IPv4 | 此記錄列出特定主機名的 IP 地址 |
AAAA | Address地址 IPv6 | |
NS | Name Server域名服務器 | 此記錄指定負責給定區域的名稱服務器 |
SOA | Start of Authority受權狀態 | |
MX | Mail Exchanger郵件交換 | 此記錄列出了負責接收發到域中的電子郵件的主機 |
CNAME | Canonical Name規範名 | 此記錄指定標準主機名的別名 |
PTR | Pointer指針 |
一、本地hosts文件 二、本地DNS緩存 三、本地DNS服務器 四、發起迭代查詢
BIND域名服務
- Berkeley Internet Name Domain , 伯克利因特網域名服務
- 是目前世界上使用最爲普遍的DNS服務器軟件,支持各類unix平臺和windows平臺
- 官網: https://www.isc.org/
- 軟件:
- bind , 域名服務包
- bind-chroot , 提供虛擬根支持,依賴bind
- 系統服務: named
- 協議端口: TCP/UDP 53
- 運行時的虛擬根路徑: /var/named/chroot
- 主配置文件: /etc/named.conf //設置負責本機解析的域名
- 地址庫文件: /var/named //主機名與ip地址的對應關係
svr7.test.cn ---> 192.168.4.7 pc207.test.cn ---> 192.168.4.207 www.test.cn ---> 192.168.4.100
]# yum -y install bind bind-chroot
]# vim /etc/named.conf options { listen-on port 53 { 192.168.4.7; }; #監聽服務器的地址和端口 directory "/var/named"; #默認,指定地址庫文件存放路徑 allow-query { any; }; #容許任何客戶機查詢 }; zone "test.cn" IN { #指定本機負責解析的域名 type master; #指定本機爲權威的主DNS服務器 file "test.cn.zone"; #指定地址庫文件爲test.cn.zone }; ]# named-checkconf /etc/named.conf #檢查配置文件語法
]# cd /var/named/ #準備模板文件 ]# cp -p named.localhost test.cn.zone #權限屬性不變拷貝模板 ]# ls -l test.cn.zone -rw-r----- 1 root named 152 6月 21 2007 test.cn.zone ]# vim test.cn.zone #編輯區域文件 $TTL 1D ;TTL=Time To Live=生存時間 @ IN SOA @ rname.invalid. ( ;SOA=Start Of Authority=受權信息開始,@區域名 0 ; serial,序列號 ;分號; 開始的部分表示註釋 1D ; refresh,刷新時間 1H ; retry,重試時間間隔 1W ; expire,過時時間 3H ) ; minimum,沒法解析時否認答案的TTL值 test.cn. NS svr7 ;NS=NameServer,聲明test.cn.域名的DNS服務器爲svr7.test.cn. svr7 A 192.168.4.7 ;指定svr7.test.cn.的ip地址爲192.168.4.7 www A 1.1.1.1 ftp A 2.2.2.2 ]# named-checkzone test.cn test.cn.zone #檢查配置文件,命令 區域名 配置文件 zone test.cn/IN: loaded serial 0 OK #檢查結果ok
]# systemctl restart named ]# systemctl enable named
]# echo 'nameserver 192.168.4.7 > /etc/resolv.conf'
]# host svr7.test.cn svr7.test.cn has address 192.168.4.7
]# nslookup www.test.cn Server: 192.168.4.7 Address: 192.168.4.7#53 Name: www.test.cn Address: 1.1.1.1
]# vim /etc/named.conf #追加新的區域 zone "qq.com" IN { type master; file "qq.com.zone"; };
]# cp -p /var/named/test.cn.zone /var/named/qq.com.zone ]# vim qq.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum qq.com. NS svr7 svr7 A 192.168.4.7 www A 3.3.3.3 ftp A 4.4.4.4
]# systemctl restart named
]# nslookup www.qq.com Server: 192.168.4.7 Address: 192.168.4.7#53 Name: www.qq.com Address: 3.3.3.3
接上例windows
#服務端 ]# vim qq.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum qq.com. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.11 ;配置www的負載均衡 www A 192.168.4.12 www A 192.168.4.13 ftp A 4.4.4.4 ]# systemctl restart named #客戶端測試 ]# nslookup www.qq.com Server: 192.168.4.7 Address: 192.168.4.7#53 Name: www.qq.com Address: 192.168.4.12 Name: www.qq.com Address: 192.168.4.13 Name: www.qq.com Address: 192.168.4.11
服務器: ]# cd /var/named ]# vim qq.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum qq.com. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.11 www A 192.168.4.12 www A 192.168.4.13 ftp A 4.4.4.4 * A 1.2.3.4 ;泛域名解析 ]# systemctl restart named 客戶端: ]# host ftp.qq.com ftp.qq.com has address 4.4.4.4 ]# host fan.qq.com fan.qq.com has address 1.2.3.4
web1.qq.com------》192.168.10.1 web2.qq.com------》192.168.10.2 web3.qq.com------》192.168.10.3 web4.qq.com------》192.168.10.4 ...... web50.qq.com------》192.168.10.50
函數: $GENERATE 生成連續範圍的數字緩存
服務器: ]# cd /var/named/ ]# vim qq.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum qq.com. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.11 www A 192.168.4.12 www A 192.168.4.13 ftp A 4.4.4.4 * A 1.2.3.4 ;泛域名解析 $GENERATE 1-50 web$ A 192.168.10.$ ;使用$GENERATE函數生成有規律的泛域名解析 ]# systemctl restart named #客戶端 ]# host web.qq.com web.qq.com has address 1.2.3.4 ]# host web1.qq.com web1.qq.com has address 192.168.10.1 ]# host web11.qq.com web11.qq.com has address 192.168.10.11 ]# host web50.qq.com web50.qq.com has address 192.168.10.50
接上例服務器
父域 www.test.cn 總公司 svr7 服務器 192.168.4.7 子域 www.bj.test.cn 北京分公司 pc207 服務器 192.168.4.207
]# cd /var/named ]# vim test.cn.zone test.cn. NS svr7 bj.test.cn. NS pc207.bj ;指定子域的DNS服務器 svr7 A 192.168.4.7 pc207.bj A 192.168.4.207 www A 1.1.1.1 ftp A 2.2.2.2 ]# systemctl restart named
]# yum -y install bind bind-chroot #安裝軟件 ]# vim /etc/named.conf #修改配置文件 options { directory "/var/named"; }; zone "bj.test.cn" IN { ;解析子域域名 type master; file "bj.test.cn.zone"; }; ]# cd /var/named ]# cp -p named.localhost bj.test.cn.zone ]# vim bj.test.cn.zone #編輯區域文件 $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum bj.test.cn. NS pc207 ;設置域服務器 pc207 A 192.168.4.207 www A 11.12.13.14 ]# systemctl restart named #重啓服務 ]# systemctl enable named
]# nslookup www.bj.test.cn 192.168.4.207 Server: 192.168.4.207 Address: 192.168.4.207#53 Name: www.bj.test.cn Address: 11.12.13.14
]# yum -y install bind bind-chroot
]# cat /etc/resolv.comf nameserver 172.40.1.10 ]# vim /etc/named.conf options { directory "/var/named"; forwarders { 172.40.1.10; }; #當本地緩存中沒有對應的解析時指定去172.40.1.10解析 }; ]# systemctl restart named
]# nslookup www.360.com 192.168.4.254
根據源地址集合將客戶機分類,不一樣客戶機得到不一樣結果(待遇有差異)。網絡
格式:負載均衡
view "視圖名" { match-clients { IP; } //匹配客戶端地址 zone "解析的域名" { ... 地址庫1; } };
view "nsd" { match-clients { 192.168.4.207; } #匹配客戶端的地址 zone "test.cn" { ...... 地址庫1; }; }; view "abc" { match-clients { any; } zone "test.cn" { ...... 地址庫2; }; };
實例,環境及需求:分佈式
操做步驟 虛擬機A 1.修改配置文件/etc/named.conf view "nsa" { match-client { 192.168.4.207; }; zone "test.cn" { type master; file "test.cn.nsd"; }; }; view "abc" { match-client { any; }; zone "test.cn" { type master; file "test.cn.abc"; }; }; 2.創建地址庫文件 ]# vim /var/named/test.cn.nsd test.cn. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.100 ]# vim /var/named/test.cn.abc test.cn. NS svr7 svr7 A 192.168.4.7 www A 1.2.3.4 3.重啓named服務 ]# systemctl restart named 4.在虛擬機A、B分別測試解析
]# vim /etc/named.conf options { directory "/var/named"; }; acl 變量名 { 地址1; 地址2; 地址3; 地址4;...}; view "nsd" { match-clients { 變量名; }; zone "test.cn" { type master; file "test.cn.nsd"; }; }; view "abc" { match-clients { any; }; zone "test.cn" { type master; file "test.cn.abc"; }; };