天天看點

DNS搭建

一. DNS原理

DNS 為Domain Name System(域名系統)的縮寫,它是一種将ip位址轉換成對應的主機名或将主機名轉換成與之相對應ip位址的一種服務機制。其中通過域名解析出ip位址的叫做正向解析,通過ip位址解析出域名的叫做反向解析。DNS使用TCP和UDP, 端口号都是53, 但它主要使用UDP,伺服器之間備份使用TCP。全世界隻有13台“根”伺服器,1個主根伺服器放在美國,其他12台為輔根伺服器。

使用A記錄和CNAME進行域名解析的差別A記錄就是把一個域名解析到一個IP位址(Address,特制數字IP位址),而CNAME記錄就是把域名解析到另外一個域名。其功能是差不多,CNAME将幾個主機名指向一個别名,其實跟指向IP位址是一樣的,因為這個别名也要做一個A記錄的。但是使用CNAME記錄可以很友善地變更IP位址。如果一台伺服器有100個網站,他們都做了别名,該台伺服器變更IP時,隻需要變更别名的A記錄就可以了。

二. 使用bind搭建DNS伺服器

安裝bind

yum install -y bind

cp /etc/named.conf /etc/named.conf.bak

/etc/named.conf any:可以由任何ip監聽53端口 allow-query:當寫本機時 2、配置檔案 定義了本機正向、反向解析;新增fengche.com的域名驗證 以下兩項必須得添加,才能轉發出去(通路外網) forward first;  forwarders { 202.96.128.86;202.96.134.33; }; any:任何主機都可以通路

vim /etc/named.conf 

//

// named.conf

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver (as a localhost DNS resolver only).

// See /usr/share/doc/bind*/sample/ for example named configuration files.

options {

listen-on port 53 { any; };

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; };

recursion yes;

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

zone "." IN {

type hint;

file "named.ca";

zone "localhost" IN {

type master;

file "localhost.zone";

zone "0.0.127.in-addr.arpa" IN {

file "named.local";

zone "fengche.com" IN {

file "fengche.com.zone";

zone "3.168.192.in-addr.arpa" IN {

file "192.168.zone";

#include "/etc/named.rfc1912.zones";

#include "/etc/named.root.key";

3、正向解析本地主機的配置檔案

[root@dns-server named]# vi localhost.zone

@ IN SOA localhost. admin.localhost. (

2017120110 ;serial #序列号

1H ;refresh #伺服器更新時間

10M ;retry #重新更新時間

7D ;expire #失效時間

1D ;minmun #緩存時間

)

@ IN NS localhost.

localhost. IN A 127.0.0.1

4、反向解析本地主機的配置檔案

[root@dns-server named]# vi named.local

$TTL 86400

2017120110

1H

10M

7D

1D

1 IN PTR localhost

5、正向解析fengche.com的配置檔案

[root@dns-server named]# vi /var/named/fengche.com.zone

@ IN SOA fengche.com. admin.fengche.com. (

1W

3H

@ IN NS ns.fengche.com. ;域名解析記錄

ns IN A 192.168.3.180

www IN A 192.168.3.83 ;主機記錄

mail IN A 192.168.3.90

test IN CNAME mail.fengche.com ;别名記錄

ts IN CNAME mail.fengche.com

6、反向解析192.168.3.X的ip位址

[root@dns-server named]# vim /var/named/192.168.zone

$TTL 600

@ IN SOA ns.fengche.com. admin.fengche.com. (

@ IN NS ns.fengche.com.

10 IN PTR ns.fengche.com.

11 IN PTR mail.fengche.com.

73 IN PTR www.fengche.com.

7、更改權限

chown named /etc/named.conf

8、生成named.ca檔案

cd /var/named/

dig -t NS . > named.ca

三、驗證配置檔案

檢測配置是否有問題: named-checkconf 

檢測正解析: named-checkzone "localhost" /var/named/localhost.zone 

named-checkzone "fengche.com" /var/named/fengche.com.zone

檢測反解析: named-checkzone "0.0.127.in-addr.arpa" /var/named/named.local

named-checkzone "3.168.192.in-addr.arpa" /var/named/192.168.zone

rndc-confgen -r /dev/urandom -a #這一步是生成 rndc.key, 如果沒有這個key namd 是啟動不了的。

chown named:named /etc/rndc.key

四、啟動

/etc/init.d/named start

netstat -lnp |grep named // 檢視一下named程序是否監聽了53端口

五、驗證

測試正向解析:

dig @127.0.0.1 localhost.

dig @127.0.0.1 www.fengche.com

測試反向解析:

dig @127.0.0.1 -x 127.0.0.1

dig @127.0.0.1 -x 192.168.3.73 #檢視是否是配置檔案中定義的www.fengche.com

測試别名:

dig test.fengche.com #檢視是否是mail.fengche.com

在linux伺服器上驗證:

設定dns伺服器為192.168.3.180

[root@centos7 ~]# vi /etc/resolv.conf 

nameserver 192.168.3.180

驗證通過:

[root@centos7 ~]# nslookup

www.fengche.com Server: 192.168.3.180 Address: 192.168.3.180#53

Name: www.fengche.com

Address: 192.168.3.83

mail.fengche.com

Name: mail.fengche.com

Address: 192.168.3.90

本文轉自 jiekegz  51CTO部落格,原文連結:http://blog.51cto.com/jacksoner/2046401

繼續閱讀