DNS 簡介git
網絡通訊中,數據鏈路層使用 MAC 地址,網絡層使用 IP 地址,傳輸層使用端口號;數據庫
每臺計算機都須要有本身的 IP 地址,這樣才能保證信息傳輸的正確性,可是 IP 地址由數字構成,難以記憶和表達它的實際用途,因此用形象的域名來代替 IP 地址方便交流和記憶;vim
網絡通訊中數據包的傳輸仍是須要靠 IP 地址來進行,IP 地址填寫在數據包的頭部,才能進行數據的傳輸,當 www.test.com 向 www.test1.com 發送信息的時候,首先必須將這兩個域名轉化成實際的 IP 地址;緩存
DNS 服務就是完成域名到 IP 或者 IP 到域名的解析(翻譯),而安裝了 DNS 服務的計算機就是 DNS 服務器;安全
實現域名解析的方法主要有:服務器
1)hosts 文件,要求全部互相解析的機器必須都配置;網絡
2)NIS 集中管理域名,只適合局域網;session
3)DNS 實現域名的層次化,分佈式管理;tcp
1、安裝 DNS分佈式
DNS 服務有 BIND 軟件提供:yum install bind bind-utils bind-chroot
2、配置 DNS 服務器
DNS 服務的主要配置有:
/etc/named.conf 主要配置文件,配置端口、安全、日誌等
/etc/named.rfc1912.zones 定義正反解區域相關
正向解析:經過域名查找 IP;
反向解析:經過 IP 查找域名;
/var/named/ 正反解數據庫
一、配置 /etc/named.conf
cp /etc/named.conf /etc/named.conf.bk
DNS 配置文件中註釋爲雙斜槓 //
vim /etc/named.conf
####################################################################
options {
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; //容許全部的主機進行 DNS 查詢
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;
//dnssec-enable yes;
//dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
添加接收到查詢請求時,會先轉發到forwarders指定的DNS,查不到再執行遞歸
forward first;
forwarders { //(接上面)固然,在轉發以前,還會先查本地緩存
DNS IP1;
DNS IP2;
};
####################################################################
二、配置 /etc/named.rfc1912.zones
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bk
vim /etc/named.rfc1912.zones
定義 baidu.com 正向解
####################################################################
zone "baidu.com" IN {
type master;
file "baidu.com.zone";
};
####################################################################
定義 zone 文件 baidu.com.zone
三、配置 /var/named/ 數據庫文件
建立正向解析數據庫文件 /var/named/baidu.com.zone
vim /var/named/baidu.com.zone
####################################################################
$TTL 600
@ IN SOA dns.baidu.com. admin.baidu.com. (
2015091901
1H
5M
3D
12H
)
IN NS dns
dns IN A xxx.xxx.xxx.xxx
www IN A xxx.xxx.xxx.xxx
####################################################################
四、啓動服務
systemctl start named ------- 啓動 DNS 服務
systemctl status named ------- 查看 DNS 服務狀態
systemctl stop named ------- 中止 DNS 服務
systemctl enable named ------ 開機自啓 DNS
五、測試
nslookup www.baidu.com
####################################################################
Server: 10.143.22.118
Address: 10.143.22.118#53 ------- DNS 服務器地址
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 220.181.112.244
Name: www.a.shifen.com
Address: 220.181.111.188 ------- DNS 服務器解析的地址
####################################################################
六、端口
DNS 需開啓 53 tcp udp 端口
阿里雲 Centos 7 上默認使用 firewall 控制防火牆,須要打開 53 端口;
firewall-cmd --add-port=53/tcp
firewall-cmd --add-port=53/udp
須要永久生效添加選項:--permanent
Centos 7 默認沒有安裝 iptables,若是要使用 iptables:
yum install iptables.services
systemctl enable firewalld
systemctl stop firewalld
默認安裝完 iptables 以後,會有下面兩條規則:
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A INPUT -j REJECT --reject-with icmp-host-prohibited
會攔截掉轉發和接收的 icmp 包;未細研究,註釋掉便可;
七、解析文件
vim /etc/resolv.conf