M-63.第九周作業(yè)

1幔烛、簡述DNS服務(wù)器原理,并搭建主-輔服務(wù)器厨埋。

一、DNS是什么

DNS(Domain Name Service的縮寫)的作用就是根據(jù)域名查出IP地址捐顷。IP地址是由32位二進制數(shù)字組成荡陷,人們很難記住這些IP,相反迅涮,大家愿意使用比較容易記憶的主機名字废赞。而電腦在處理IP數(shù)據(jù)報文時,是使用IP地址的叮姑,因為它是固定長度唉地。

DNS查詢的類型對于客戶端來說是遞歸查詢,對于DNS服務(wù)器來說传透,絕大多數(shù)是迭代查詢的渣蜗。DNS名稱解析中,從名稱到IP的查詢叫做正向解析旷祸,而從IP到名稱的查詢叫做反向解析。如果DNS服務(wù)器至少解析了一個或一個以上的域叫做DNS主服務(wù)器或者DNS輔助服務(wù)器讼昆,如果不負(fù)責(zé)任何解析叫做DNS緩存服務(wù)器托享。

現(xiàn)在互聯(lián)網(wǎng)規(guī)模很大,DNS被設(shè)計成一個分布式的數(shù)據(jù)庫系統(tǒng)浸赫,他分布的功能就是把一個大的數(shù)據(jù)庫切割成很多小的數(shù)據(jù)庫闰围,來分別提供一部分?jǐn)?shù)據(jù)的處理。全球一共分布了13臺DNS根服務(wù)器既峡,名字為A至M羡榴。


二、DNS的域名解析過程


用戶使用瀏覽器輸入網(wǎng)址時域名解析過程:

客戶訪問時运敢,先查自己的hosts文件校仑,有則返回

客戶hosts中沒有就去查自己的緩存,有則返回

客戶緩存沒有就去找dns服務(wù)器

dns服務(wù)器先找根服務(wù)器獲得頂級域服務(wù)器地址

dns服務(wù)器在找頂級域服務(wù)器去獲得二級域服務(wù)器地址

dns服務(wù)器從二級域服務(wù)器獲得最終的IP地址

客戶端從dns服務(wù)器中得到IP地址

DNS區(qū)域數(shù)據(jù)庫文件

資源記錄(Resource Record)的類型有以下幾個:

SOA:起始授權(quán)記錄传惠,只能有一個迄沫,必須放在第一條

NS:域名服務(wù)記錄,其中一個為主卦方,可以有多個

A:IPv4地址記錄

AAAA:IPv6地址記錄

CNAME:別名記錄

PTR:反向解析記錄

MX:郵件交換器

相關(guān)測試工具及命令

dig命令

用于測試DNS系統(tǒng)羊瘩,其不會查詢hosts文件,使用格式:

dig [-t RR_TYPE] name [@SERVER] [query options]

常用的查詢選項包括:

+[no]trace:跟蹤解析過程;

+[no]recurse:進行遞歸解析尘吗;

其常用用法包括:

反向解析測試:dig -x IP

測試區(qū)域傳送:dig -t [axfr|ixfr] DOMAIN [@server]

host命令

其用法類似于dig命令逝她,使用格式為:

host [-t RR_TYPE] name SERVER_IP

nslookup命令

nslookup命令有兩種使用模式,一種是命令模式睬捶,另一個交互模式黔宛。

其命令模式的使用格式為:nslookup [-options] [name] [server]

而交互模式的使用格式為:

nslookup>

server IP:以指定的IP為DNS服務(wù)器進行查詢;

set q=RR_TYPE:要查詢的資源記錄類型侧戴;

name:要查詢的名稱宁昭;

rndc命令

rndc命令為named服務(wù)的控制命令,其常用的用法有以下:

rndc status:顯示服務(wù)器狀態(tài)

rndc reload:在不停止DNS服務(wù)器工作的情況下酗宋,重新加載配置文件和區(qū)域文件

rndc flush:清理DNS緩存

bind中的安全相關(guān)的配置

bind有四個內(nèi)置的acl

none:沒有一個主機积仗;

any:任意主機;

local:本機蜕猫;

localnet:本機所在的IP所屬的網(wǎng)絡(luò)寂曹;

訪問控制指令:

allow-query {}; 允許查詢的主機;白名單回右;

allow-transfer {}; 允許向哪些主機做區(qū)域傳送隆圆;默認(rèn)為向所有主機;

allow-recursion {}; 允許哪些主機向當(dāng)前DNS服務(wù)器發(fā)起遞歸查詢請求翔烁;

allow-update {}; DDNS渺氧,允許動態(tài)更新區(qū)域數(shù)據(jù)庫文件中內(nèi)容;

三蹬屹、搭建主輔DNS服務(wù)器

環(huán)境說明

DNS主服務(wù)器:192.168.10.10

DNS輔服務(wù)器:192.168.10.11

DNS子域主服務(wù)器:192.168.10.12

1.設(shè)置主DNS服務(wù)器

安裝軟件

[root@localhost~]# yum -y install bind #安裝bind

[root@localhost~]# yum -y install bind-utils #安裝bind工具包

[root@localhost~]# systemctl start named #啟動服務(wù)

[root@localhost~]# netstat -tunlp #查看狀態(tài)

ActiveInternetconnections(only servers)

Proto? ?Recv-QSend-Q? ?Local? Address????Foreign? Address? State? ? ?PID/Program? name

tcp? ? ? ? ? ? ? ? ?0? ? ? ? ? 0? ?127.0.0.1:53? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? ? LISTEN 1323/named

tcp? ? ? ? ? ? ? ? ?0? ? ? ? ? 0? ?0.0.0.0:22? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? ? LISTEN891/sshd?

?tcp? ? ? ? ? ? ? ? ?0? ? ? ? ? 0? ?127.0.0.1:953? ? ?0.0.0.0:*? ? ? ? ? ? ? ? LISTEN1323/named?

?tcp? ? ? ? ? ? ? ? ?0? ? ? ? ? 0? ?127.0.0.1:25? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? ?LISTEN994/master?

?tcp6? ? ? ? ? ? ? ?0? ? ? ? ? 0? ? ::1:53? ? ? ? ? ? ? ? ? :::*? ? ? ? ? ? ? ? ? ? ? ? LISTEN1323/named?

?tcp6? ? ? ? ? ? ? ?0? ? ? ? ? ?0? ?:::22????????????????????:::*????????????????????????LISTEN891/sshd?

?tcp6? ? ? ? ? ? ? ? 0? ? ? ? ? ?0? ::1:953? ? ? ? ? ? ? ? :::*? ? ? ? ? ? ? ? ? ? ? ? LISTEN1323/named?

?tcp6????????????????0? ? ? ? ? ?0? ::1:25? ? ? ? ? ? ? ? ? :::*????????????????????????LISTEN994/master?

?udp? ? ? ? ? ? ? ? ?0? ? ? ? ? ?0? 127.0.0.1:53? ? ?0.0.0.0:*????????????????1323/named?

?udp? ? ? ? ? ? ? ? ?0? ? ? ? ? ?0? 127.0.0.1:323? ?0.0.0.0:*????????????????639/chronyd?

?udp6? ? ? ? ? ? ? ?0????????????0? ::1:53? ? ? ? ? ? ? ?:::*????????????????????????1323/named?

?udp6????????????????0? ? ? ? ? ?0? ::1:323? ? ? ? ? ? ?:::*????????????????????????639/chronyd

#其中53端口被監(jiān)聽侣背,953端口被rndc監(jiān)聽

配置環(huán)境

[root@localhost ~]# vim /etc/resolv.conf #修改DNS配置文件

nameserver 192.168.10.10

[root@localhost ~]# vim /etc/named.conf

listen-on port 53 { 192.168.10.10; }; #修改監(jiān)聽通信地址IP

allow-query? ? { any; };? #允許任何人連接,設(shè)置成any

dnssec-enable no;

dnssec-validation no;

#關(guān)閉dnssec,設(shè)置為no

配置解析一個正向區(qū)域

[root@localhost ~]# vim /etc/named.rfc1912.zones

zone "test.com" IN {

? ? ? ? type master;? #定義主類型

? ? ? ? file "test.com.zone";? #這是相對路徑慨默,在/var/named下

};

建立區(qū)域數(shù)據(jù)文件

[root@localhost ~]# vim /var/named/test.com.zone

$TTL 3600

$ORIGIN test.com.? #補一個后綴

@ IN SOA ns1.test.com. dnsadmin.test.com. (

? ? ? ? 2018053101

? ? ? ? 1H

? ? ? ? 10M

? ? ? ? 3D

? ? ? ? 1D )

? ? ? ? IN NS ns1? #前面有補后綴可以簡寫贩耐,否則寫全稱最后要有點號

? ? ? ? IN MX 10 mx1

? ? ? ? IN MX 20 mx2

ns1 IN A 192.168.10.10

MX1 IN A 192.168.10.21

MX2 IN A 192.168.10.22

www IN A 192.168.10.10

web IN CNAME www

bbs IN A 192.168.10.23

bbs IN A 192.168.10.24

修改權(quán)限,檢測語法

[root@localhost ~]# chgrp named /var/named/test.com.zone

[root@localhost ~]# chmod o= /var/named/test.com.zone

#修改新鍵的區(qū)域數(shù)據(jù)文件權(quán)限

[root@localhost named]# named-checkconf

[root@localhost named]# named-checkzone test.com /var/named/test.com.zone

zone test.com/IN: loaded serial 2018053101

OK

#檢測語法

服務(wù)器重載配置文件和區(qū)域數(shù)據(jù)文件

[root@localhost named]# rndc status

number of zones: 101

[root@localhost named]# rndc reload

server reload successful

[root@localhost named]# rndc status

number of zones: 102

#查看狀態(tài)可以看到重載后數(shù)字加1

DNS主服務(wù)器正向解析測試

[root@localhost ~]# dig -t -A www.test.com

;; Warning, ignoring invalid type -A

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t -A www.test.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18274

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.test.com.? ? ? ? ? IN? A

;; ANSWER SECTION:

www.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; AUTHORITY SECTION:

test.com.? ? ? 3600? ? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; Query time: 1 msec

;; SERVER: 192.168.10.10#53(192.168.10.10)

;; WHEN: Thu May 31 21:55:26 EDT 2018

;; MSG SIZE? rcvd: 91

[root@localhost named]# dig -t A web.test.com

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A web.test.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65204

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;web.test.com.? ? ? ? ? IN? A

;; ANSWER SECTION:

web.test.com.? ? ? 3600? ? IN? CNAME? www.test.com.

www.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; AUTHORITY SECTION:

test.com.? ? ? 3600? ? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; Query time: 1 msec

;; SERVER: 192.168.10.10#53(192.168.10.10)

;; WHEN: Thu May 31 21:11:25 EDT 2018

;; MSG SIZE? rcvd: 109

[root@localhost ~]# host -t A bbs.test.com

bbs.test.com has address 192.168.10.23

bbs.test.com has address 192.168.10.24

[root@localhost ~]# host -t A bbs.test.com

bbs.test.com has address 192.168.10.23

bbs.test.com has address 192.168.10.24

[root@localhost ~]# host -t A bbs.test.com

bbs.test.com has address 192.168.10.24

bbs.test.com has address 192.168.10.23

配置解析一個反向區(qū)域

[root@localhost ~]# vim /etc/named.rfc1912.zones

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

? ? ? ? type master;

? ? ? ? file "192.168.10.zone";

};

建立反向區(qū)域數(shù)據(jù)文件

[root@localhost ~]# vim /var/named/192.168.10.zone

$TTL 3600

$ORIGIN 10.168.192.in-addr.arpa.

@ IN SOA ns1.test.com. nsadmin.test.com. (

? ? ? ? 2018060101

? ? ? ? 1H

? ? ? ? 10M

? ? ? ? 3D

? ? ? ? 12H )

? ? ? ? IN NS ns1.test.com.? #反向解析此處不能簡寫

10 IN PTR ns1.test.com.

21 IN PTR mx1.test.com.

22 IN PTR mx2.test.com.

23 IN PTR bbs.test.com.

24 IN PTR bbs.test.com.

10 IN PTR www.test.com.

修改反向區(qū)域文件權(quán)限厦取,檢測語法

[root@localhost named]# chgrp named /var/named/192.168.10.zone

[root@localhost named]# chmod o= /var/named/192.168.10.zone

[root@localhost named]# named-checkconf

[root@localhost named]# named-checkzone 10.168.192.in-addr.arpa /var/named/192.168.10.zone

zone 10.168.192.in-addr.arpa/IN: loaded serial 2018060101

OK

重載配置文件和區(qū)域數(shù)據(jù)文件

[root@localhost named]# rndc status

number of zones: 102

[root@localhost named]# rndc reload

server reload successful

[root@localhost named]# rndc status

number of zones: 103

主服務(wù)器反向解析測試

[root@localhost named]# dig -x 192.168.10.10

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -x 192.168.10.10

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25958

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;10.10.168.192.in-addr.arpa.? ? IN? PTR

;; ANSWER SECTION:

10.10.168.192.in-addr.arpa. 3600 IN PTR ns1.test.com.

10.10.168.192.in-addr.arpa. 3600 IN PTR www.test.com.

;; AUTHORITY SECTION:

10.168.192.in-addr.arpa. 3600? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; Query time: 1 msec

;; SERVER: 192.168.10.10#53(192.168.10.10)

;; WHEN: Thu May 31 22:26:03 EDT 2018

;; MSG SIZE? rcvd: 129

2.設(shè)置輔DNS服務(wù)器

[root@localhost ~]# yum -y install bind bind-utils

[root@localhost ~]# systemctl start named.service

[root@localhost ~]# vim /etc/resolv.conf

nameserver 192.168.10.11

[root@localhost ~]# vim /etc/named.conf

listen-on port 53 { 192.168.10.11; };

allow-query? ? { any; };

dnssec-enable no;

dnssec-validation no;

配置11輔服務(wù)器的正向區(qū)域

[root@localhost ~]# vim /etc/named.rfc1912.zones

zone "test.com" IN {? ? #正向區(qū)域

? ? ? ? type slave;

? ? ? ? file "slaves/test.com.zone";? #區(qū)域數(shù)據(jù)文件位置

? ? ? ? masters { 192.168.10.10; };? #定義正向區(qū)域主服務(wù)器IP

};

[root@localhost ~]# named-checkconf

來到10主服務(wù)器上去配置文件

[root@localhost ~]# vim /var/named/test.com.zone

$TTL 3600

$ORIGIN test.com.

@ IN SOA ns1.test.com. dnsadmin.test.com. (

? ? ? ? 2018053102? #每次修改文件時手動加1潮太,從服務(wù)器才會更新

? ? ? ? 1H

? ? ? ? 10M

? ? ? ? 3D

? ? ? ? 1D )

? ? ? ? IN NS ns1

? ? ? ? IN NS ns2? #增加A記錄指向11輔服務(wù)器

? ? ? ? IN MX 10 mx1

? ? ? ? IN MX 20 mx2

ns1 IN A 192.168.10.10

ns2 IN A 192.168.10.11? #輔服務(wù)器IP

MX1 IN A 192.168.10.21

MX2 IN A 192.168.10.22

www IN A 192.168.10.10

web IN CNAME www

bbs IN A 192.168.10.23

bbs IN A 192.168.10.24

[root@localhost ~]# named-checkzone test.com /var/named/test.com.zone

zone test.com/IN: loaded serial 2018053102

OK

[root@localhost ~]# rndc reload

server reload successful

[root@localhost ~]# rndc status

server is up and running

#檢測語法,檢測狀態(tài)都正常

來到11輔服務(wù)器

[root@localhost ~]# rndc reload

server reload successful

[root@localhost slaves]# ll /var/named/slaves/

total 4

-rw-r--r-- 1 named named 533 May 31 23:17 test.com.zone

#正向區(qū)域數(shù)據(jù)文件已經(jīng)同步過來

測試用11輔服務(wù)器解析網(wǎng)址

[root@localhost slaves]# dig -t A www.test.com @192.168.10.11

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A www.test.com @192.168.10.11

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45851

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.test.com.? ? ? ? ? IN? A

;; ANSWER SECTION:

www.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; AUTHORITY SECTION:

test.com.? ? ? 3600? ? IN? NS? ns2.test.com.

test.com.? ? ? 3600? ? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

ns2.test.com.? ? ? 3600? ? IN? A? 192.168.10.11

;; Query time: 0 msec

;; SERVER: 192.168.10.11#53(192.168.10.11)

;; WHEN: Thu May 31 23:20:16 EDT 2018

;; MSG SIZE? rcvd: 125

進一步對主輔服務(wù)器進行測試,來到10主服務(wù)器

[root@localhost ~]# vim /var/named/test.com.zone

$TTL 3600

$ORIGIN test.com.

@ IN SOA ns1.test.com. dnsadmin.test.com. (

? ? ? ? 2018053103? #序列號加1

? ? ? ? 1H

? ? ? ? 10M

? ? ? ? 3D

? ? ? ? 1D )

? ? ? ? IN NS ns1

? ? ? ? IN NS ns2

? ? ? ? IN MX 10 mx1

? ? ? ? IN MX 20 mx2

ns1 IN A 192.168.10.10

ns2 IN A 192.168.10.11

MX1 IN A 192.168.10.21

MX2 IN A 192.168.10.22

www IN A 192.168.10.10

web IN CNAME www

bbs IN A 192.168.10.23

bbs IN A 192.168.10.24

pop3 IN A 192.168.10.25? #增加一條A記錄

[root@localhost ~]# rndc reload

server reload successful

#重載配置

來到11輔服務(wù)器

[root@localhost ~]# systemctl status named.service

● named.service - Berkeley Internet Name Domain (DNS)

? Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)

? Active: active (running) since Thu 2018-05-31 22:38:36 EDT; 54min ago

? Process: 1090 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)

? Process: 1087 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)

Main PID: 1093 (named)

? CGroup: /system.slice/named.service

? ? ? ? ? └─1093 /usr/sbin/named -u named -c /etc/named.conf

May 31 23:17:11 localhost.localdomain named[1093]: zone test.com/IN: transferred serial 2018053102

May 31 23:17:11 localhost.localdomain named[1093]: transfer of 'test.com/IN' from 192.168.10.10#53: Transfer completed.../sec)

May 31 23:17:11 localhost.localdomain named[1093]: zone test.com/IN: sending notifies (serial 2018053102)

May 31 23:30:31 localhost.localdomain named[1093]: client 192.168.10.10#2372: received notify for zone 'test.com'

May 31 23:30:31 localhost.localdomain named[1093]: zone test.com/IN: refresh: unexpected rcode (REFUSED) from master 1....0#0)

May 31 23:30:31 localhost.localdomain named[1093]: zone test.com/IN: Transfer started.

May 31 23:30:31 localhost.localdomain named[1093]: transfer of 'test.com/IN' from 192.168.10.10#53: connected using 19...46792

May 31 23:30:31 localhost.localdomain named[1093]: zone test.com/IN: transferred serial 2018053103

May 31 23:30:31 localhost.localdomain named[1093]: transfer of 'test.com/IN' from 192.168.10.10#53: Transfer completed.../sec)

May 31 23:30:31 localhost.localdomain named[1093]: zone test.com/IN: sending notifies (serial 2018053103)

Hint: Some lines were ellipsized, use -l to show in full.

#輔服務(wù)器不需要reload虾攻,此時看到自動更新到新序列號铡买,文件也傳輸過來了

[root@localhost ~]# dig -t A pop3.test.com @192.168.10.11

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A pop3.test.com @192.168.10.11

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24355

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;pop3.test.com.? ? ? ? IN? A

;; ANSWER SECTION:

pop3.test.com.? ? ? 3600? ? IN? A? 192.168.10.25

;; AUTHORITY SECTION:

test.com.? ? ? 3600? ? IN? NS? ns1.test.com.

test.com.? ? ? 3600? ? IN? NS? ns2.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

ns2.test.com.? ? ? 3600? ? IN? A? 192.168.10.11

;; Query time: 1 msec

;; SERVER: 192.168.10.11#53(192.168.10.11)

;; WHEN: Thu May 31 23:54:58 EDT 2018

;; MSG SIZE? rcvd: 126

配置11輔服務(wù)器反向區(qū)域

[root@localhost ~]# vim /etc/named.rfc1912.zones

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

? ? ? ? type slave;

? ? ? ? file "slaves/192.168.10.zone";

? ? ? ? masters { 192.168.10.10; };

};

[root@localhost ~]# named-checkconf

配置10主服務(wù)器反向區(qū)域的數(shù)據(jù)文件

[root@localhost ~]# vim /var/named/192.168.10.zone

$TTL 3600

$ORIGIN 10.168.192.in-addr.arpa.

@ IN SOA ns1.test.com. nsadmin.test.com. (

? ? ? ? 2018060102

? ? ? ? 1H

? ? ? ? 10M

? ? ? ? 3D

? ? ? ? 12H )

? ? ? ? IN NS ns1.test.com.

? ? ? ? IN NS ns2.test.com.? #增加PTR記錄指向11輔服務(wù)器

10 IN PTR ns1.test.com.

11 IN PTR ns2.test.com.? #11輔服務(wù)器名稱

21 IN PTR mx1.test.com.

22 IN PTR mx2.test.com.

23 IN PTR bbs.test.com.

24 IN PTR bbs.test.com.

10 IN PTR www.test.com.

[root@localhost ~]# named-checkzone 10.168.192.in-addr.arpa /var/named/192.168.10.zone

zone 10.168.192.in-addr.arpa/IN: loaded serial 2018060102

OK

[root@localhost ~]# rndc reload

server reload successful

#檢測語法,重載配置

來到11輔服務(wù)器

[root@localhost ~]# rndc reload

server reload successful

[root@localhost ~]# ll /var/named/slaves/

total 8

-rw-r--r-- 1 named named 600 Jun? 1 02:23 192.168.10.zone

-rw-r--r-- 1 named named 574 Jun? 1 02:10 test.com.zone

#反向區(qū)域的數(shù)據(jù)文件也已經(jīng)同步過來

測試在11輔服務(wù)器反向解析IP

[root@localhost ~]# dig -x 192.168.10.10 @192.168.10.11

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -x 192.168.10.10 @192.168.10.11

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50592

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;10.10.168.192.in-addr.arpa.? ? IN? PTR

;; ANSWER SECTION:

10.10.168.192.in-addr.arpa. 3600 IN PTR ns1.test.com.

10.10.168.192.in-addr.arpa. 3600 IN PTR www.test.com.

;; AUTHORITY SECTION:

10.168.192.in-addr.arpa. 3600? IN? NS? ns2.test.com.

10.168.192.in-addr.arpa. 3600? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

ns2.test.com.? ? ? 3600? ? IN? A? 192.168.10.11

;; Query time: 1 msec

;; SERVER: 192.168.10.11#53(192.168.10.11)

;; WHEN: Fri Jun 01 02:25:17 EDT 2018

;; MSG SIZE? rcvd: 163

在11輔服務(wù)器測試

[root@localhost ~]# dig -x 192.168.10.25 @192.168.10.11

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -x 192.168.10.25 @192.168.10.11

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35322

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;25.10.168.192.in-addr.arpa.? ? IN? PTR

;; ANSWER SECTION:

25.10.168.192.in-addr.arpa. 3600 IN PTR pop3.test.com.

;; AUTHORITY SECTION:

10.168.192.in-addr.arpa. 3600? IN? NS? ns1.test.com.

10.168.192.in-addr.arpa. 3600? IN? NS? ns2.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

ns2.test.com.? ? ? 3600? ? IN? A? 192.168.10.11

;; Query time: 1 msec

;; SERVER: 192.168.10.11#53(192.168.10.11)

;; WHEN: Fri Jun 01 02:36:48 EDT 2018

;; MSG SIZE? rcvd: 150

手動測試區(qū)域傳送功能

[root@localhost ~]# dig -t axfr test.com @192.168.10.11

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t axfr test.com @192.168.10.11

;; global options: +cmd

test.com.? ? ? 3600? ? IN? SOA ns1.test.com. dnsadmin.test.com. 2018053103 3600 600 259200 86400

test.com.? ? ? 3600? ? IN? MX? 10 mx1.test.com.

test.com.? ? ? 3600? ? IN? MX? 20 mx2.test.com.

test.com.? ? ? 3600? ? IN? NS? ns1.test.com.

test.com.? ? ? 3600? ? IN? NS? ns2.test.com.

bbs.test.com.? ? ? 3600? ? IN? A? 192.168.10.23

bbs.test.com.? ? ? 3600? ? IN? A? 192.168.10.24

MX1.test.com.? ? ? 3600? ? IN? A? 192.168.10.21

MX2.test.com.? ? ? 3600? ? IN? A? 192.168.10.22

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

ns2.test.com.? ? ? 3600? ? IN? A? 192.168.10.11

pop3.test.com.? ? ? 3600? ? IN? A? 192.168.10.25

web.test.com.? ? ? 3600? ? IN? CNAME? www.test.com.

www.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

test.com.? ? ? 3600? ? IN? SOA ns1.test.com. dnsadmin.test.com. 2018053103 3600 600 259200 86400

;; Query time: 1 msec

;; SERVER: 192.168.10.11#53(192.168.10.11)

;; WHEN: Fri Jun 01 02:40:11 EDT 2018

;; XFR size: 15 records (messages 1, bytes 350)

[root@localhost ~]# dig -t axfr 10.168.192.in-addr.arpa @192.168.10.10

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t axfr 10.168.192.in-addr.arpa @192.168.10.10

;; global options: +cmd

10.168.192.in-addr.arpa. 3600? IN? SOA ns1.test.com. nsadmin.test.com. 2018060103 3600 600 259200 43200

10.168.192.in-addr.arpa. 3600? IN? NS? ns1.test.com.

10.168.192.in-addr.arpa. 3600? IN? NS? ns2.test.com.

10.10.168.192.in-addr.arpa. 3600 IN PTR ns1.test.com.

10.10.168.192.in-addr.arpa. 3600 IN PTR www.test.com.

11.10.168.192.in-addr.arpa. 3600 IN PTR ns2.test.com.

21.10.168.192.in-addr.arpa. 3600 IN PTR mx1.test.com.

22.10.168.192.in-addr.arpa. 3600 IN PTR mx2.test.com.

23.10.168.192.in-addr.arpa. 3600 IN PTR bbs.test.com.

24.10.168.192.in-addr.arpa. 3600 IN PTR bbs.test.com.

25.10.168.192.in-addr.arpa. 3600 IN PTR pop3.test.com.

10.168.192.in-addr.arpa. 3600? IN? SOA ns1.test.com. nsadmin.test.com. 2018060103 3600 600 259200 43200

;; Query time: 2 msec

;; SERVER: 192.168.10.10#53(192.168.10.10)

;; WHEN: Fri Jun 01 02:42:53 EDT 2018

;; XFR size: 12 records (messages 1, bytes 319)

這種開放式的區(qū)域傳送對服務(wù)器有巨大的風(fēng)險霎箍,我們需要配置訪問控制寻狂,讓主服務(wù)器只開放給輔服務(wù)器做傳送

四、訪問控制朋沮,子域授權(quán)

配置192.168.10.12子域主服務(wù)器流程:

首先到192.168.10.10主服務(wù)器中添加子域服務(wù)器的數(shù)據(jù)

[root@localhost ~]# vim /var/named/test.com.zone

$ORIGIN test.com.

@ IN SOA ns1.test.com. dnsadmin.test.com. (

? ? ? ? 2018053104? #序列號加1

? ? ? ? 1H

? ? ? ? 10M

? ? ? ? 3D

? ? ? ? 1D )

? ? ? ? IN NS ns1

? ? ? ? IN NS ns2

? ? ? ? IN MX 10 mx1

? ? ? ? IN MX 20 mx2

ops? ? IN NS ns1.ops? #增加子域服務(wù)器

ns1 IN A 192.168.10.10

ns2 IN A 192.168.10.11

MX1 IN A 192.168.10.21

MX2 IN A 192.168.10.22

www IN A 192.168.10.10

web IN CNAME www

bbs IN A 192.168.10.23

bbs IN A 192.168.10.24

ns1.ops IN A 192.168.10.12? #增加子域服務(wù)器A標(biāo)記

配置12子域服務(wù)器

[root@localhost ~]# yum -y install bind bind-utils

[root@localhost ~]# systemctl start named.service

[root@localhost ~]# vim /etc/resolv.conf

nameserver 192.168.10.12

[root@localhost ~]# vim /etc/named.conf

listen-on port 53 { 127.0.0.1; 192.168.10.12; };

//allow-query? ? { localhost; };? ? #注釋掉這一行

dnssec-enable no;

dnssec-validation no;

[root@localhost ~]# vim /etc/named.rfc1912.zones

zone "ops.test.com" IN {

? ? ? ? type master;

? ? ? ? file "ops.test.com.zone";

};?

#增加三級域蛇券,增加正向區(qū)域的子域

[root@localhost ~]# vim /etc/named/ops.test.com.zone

$TTL 3600

$ORIGIN ops.test.com.

@ IN SOA ns1.ops.test.com. nsadmin.ops.test.com. (

? ? ? ? 2018060101

? ? ? ? 1H

? ? ? ? 10M

? ? ? ? 1D

? ? ? ? 2H )

? ? ? ? IN NS ns1

ns1 IN A 192.168.10.12

www IN A 192.168.10.12

[root@localhost ~]# chgrp named /var/named/ops.test.com.zone

[root@localhost ~]# chmod o= /var/named/ops.test.com.zone

[root@localhost ~]# named-checkconf

[root@localhost ~]# named-checkzone ops.test.com /var/named/ops.test.com.zone

zone ops.test.com/IN: loaded serial 2018060101

OK

[root@localhost ~]# rndc reload

server reload successful

測試

[root@localhost ~]# dig -t A www.ops.test.com @192.168.10.12

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A www.ops.test.com @192.168.10.12

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13329

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.ops.test.com.? ? ? IN? A

;; ANSWER SECTION:

www.ops.test.com.? 3600? ? IN? A? 192.168.10.12

;; AUTHORITY SECTION:

ops.test.com.? ? ? 3600? ? IN? NS? ns1.ops.test.com.

;; ADDITIONAL SECTION:

ns1.ops.test.com.? 3600? ? IN? A? 192.168.10.12

;; Query time: 1 msec

;; SERVER: 192.168.10.12#53(192.168.10.12)

;; WHEN: Fri Jun 01 03:45:00 EDT 2018

;; MSG SIZE? rcvd: 95

子域服務(wù)器解析www.test.com時缀壤,因自己不能解析默認(rèn)會去互聯(lián)網(wǎng)根域上去迭代查詢

[root@localhost ~]# dig -t A www.test.com @192.168.10.12

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A www.test.com @192.168.10.12

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32424

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.test.com.? ? ? ? ? IN? A

;; ANSWER SECTION:

www.test.com.? ? ? 3579? ? IN? A? 69.172.200.235

;; AUTHORITY SECTION:

test.com.? ? ? 172779? IN? NS? ns66.worldnic.com.

test.com.? ? ? 172779? IN? NS? ns65.worldnic.com.

;; ADDITIONAL SECTION:

ns65.worldnic.com.? 172779? IN? A? 207.204.40.133

ns66.worldnic.com.? 172779? IN? A? 207.204.21.133

;; Query time: 1 msec

;; SERVER: 192.168.10.12#53(192.168.10.12)

;; WHEN: Fri Jun 01 21:06:53 EDT 2018

;; MSG SIZE? rcvd: 136

子域定義轉(zhuǎn)發(fā)域到主輔服務(wù)器,test.com會轉(zhuǎn)發(fā)到主輔服務(wù)器中解析

[root@localhost ~]# vim /etc/named.rfc1912.zones

zone "test.com" IN {

? ? ? ? type forward;

? ? ? ? forward only;

? ? ? ? forwarders { 192.168.10.10; 192.168.10.11; };

};

#在配置文件末尾添加這段轉(zhuǎn)發(fā)規(guī)則

[root@localhost ~]# rndc reload

server reload successful

[root@localhost ~]# rndc flush

#清空緩存

此時可以解析出正確的IP

[root@localhost ~]# dig -t A www.test.com @192.168.10.12

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A www.test.com @192.168.10.12

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63618

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.test.com.? ? ? ? ? IN? A

;; ANSWER SECTION:

www.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; AUTHORITY SECTION:

test.com.? ? ? 3600? ? IN? NS? ns2.test.com.

test.com.? ? ? 3600? ? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns2.test.com.? ? ? 3600? ? IN? A? 192.168.10.11

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; Query time: 6 msec

;; SERVER: 192.168.10.12#53(192.168.10.12)

;; WHEN: Fri Jun 01 21:23:08 EDT 2018

;; MSG SIZE? rcvd: 125

上面是對特定區(qū)域的區(qū)域轉(zhuǎn)發(fā)解析請求纠亚,也可以配置本地不能解析的全部轉(zhuǎn)給其他服務(wù)器來解析的全局轉(zhuǎn)發(fā)

[root@localhost ~]# vim /etc/named.conf

forward only;

forwarders { 192.168.10.10; };? #在options代碼段中添加這兩行指令

#并刪除掉上面的區(qū)域轉(zhuǎn)發(fā)規(guī)則

[root@localhost ~]# rndc reload

[root@localhost ~]# rndc flush

[root@localhost ~]# dig -t A www.test.com @192.168.10.12

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A www.test.com @192.168.10.12

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9713

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.test.com.? ? ? ? ? IN? A

;; ANSWER SECTION:

www.test.com.? ? ? 3560? ? IN? A? 192.168.10.10

;; AUTHORITY SECTION:

test.com.? ? ? 3560? ? IN? NS? ns2.test.com.

test.com.? ? ? 3560? ? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns2.test.com.? ? ? 3560? ? IN? A? 192.168.10.11

ns1.test.com.? ? ? 3560? ? IN? A? 192.168.10.10

;; Query time: 1 msec

;; SERVER: 192.168.10.12#53(192.168.10.12)

;; WHEN: Fri Jun 01 21:47:02 EDT 2018

;; MSG SIZE? rcvd: 125

配置訪問控制命令

[root@localhost ~]# vim /etc/named.rfc1912.zones

zone "test.com" IN {

? ? ? ? type master;

? ? ? ? file "test.com.zone";

? ? ? ? allow-transfer { slaves; };

};

[root@localhost ~]# vim /etc/named.conf

acl slaves {

? ? ? ? 192.168.10.11;

};

#在options前面加上這一段

上面的訪問控制列表中沒有12服務(wù)器塘慕,所以用12傳輸失敗

[root@localhost ~]# dig -t axfr test.com @192.168.10.12

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t axfr test.com @192.168.10.12

;; global options: +cmd

; Transfer failed.

服務(wù)器只允許列表中網(wǎng)段主機可以執(zhí)行遞歸查詢

[root@localhost ~]# vim /etc/named.conf

acl mynet {

? ? ? ? 192.168.10.0/24;

? ? ? ? 127.0.0.0/8;

};

#在options前面加上這一段

allow-recuresion { mynet; };

#recursion yes;修改這上面這句


2、搭建并實現(xiàn)智能DNS蒂胞。

要實現(xiàn)DNS服務(wù)器的智能解析图呢,需要先理解一個概念:view

假如有臺web主機,www.test.com是域名骗随,它有兩個IP蛤织,一個接內(nèi)網(wǎng)IP為192.168.10.10,一個接外網(wǎng)IP為1.1.1.1鸿染。來自互聯(lián)網(wǎng)的用戶會解析成1.1.1.1指蚜,而來自內(nèi)網(wǎng)的用戶不需要解析成外網(wǎng)IP在連進來,只需要直接解析成內(nèi)網(wǎng)IP192.168.10.10就可以了涨椒。這種根據(jù)客戶端的不同來源將同一個主機解析成不同的結(jié)果摊鸡,就叫做view。

修改主DNS的named.conf配置文件

[root@localhost ~]# vim /etc/named.conf

options {

......

};

logging {

......

};

view internal {

? ? ? ? match-clients { 192.168.10.11; };#設(shè)置此IP解析成外網(wǎng)

? ? ? ? zone "." IN {

? ? ? ? ? ? ? ? type hint;

? ? ? ? ? ? ? ? file "named.ca";

? ? ? ? };

? ? ? ? zone "test.com" IN {

? ? ? ? ? ? ? ? type master;

? ? ? ? ? ? ? ? file "test.com/internal";

? ? ? ? };

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

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

};

view external {

? ? ? ? match-clients { any; };#除了上面的IP范圍蚕冬,其他所有IP解析成內(nèi)網(wǎng)

? ? ? ? zone "." IN {

? ? ? ? ? ? ? ? type hint;

? ? ? ? ? ? ? ? file "named.ca";

? ? ? ? };

? ? ? ? zone "test.com" IN {

? ? ? ? ? ? ? ? type master;

? ? ? ? ? ? ? ? file "test.com/external";

? ? ? ? };

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

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

};

建立兩個正向區(qū)域數(shù)據(jù)文件

[root@localhost ~]# vim /var/named/test.com/internal

$TTL 3600

$ORIGIN test.com.

@ IN SOA ns1.test.com. dnsadmin.test.com. (

? ? ? ? 2018053101

? ? ? ? 1H

? ? ? ? 10M

? ? ? ? 3D

? ? ? ? 1D )

? ? ? ? IN NS ns1

ns1 IN A 192.168.10.10

www IN A 1.1.1.1

web IN CNAME www

bbs IN A 1.1.1.2

bbs IN A 1.1.1.3

[root@localhost ~]# vim /var/named/test.com/external

$TTL 3600

$ORIGIN test.com.

@ IN SOA ns1.test.com. dnsadmin.test.com. (

? ? ? ? 2018053101

? ? ? ? 1H

? ? ? ? 10M

? ? ? ? 3D

? ? ? ? 1D )

? ? ? ? IN NS ns1

ns1 IN A 192.168.10.10

www IN A 192.168.10.10

web IN CNAME www

bbs IN A 192.168.10.23

bbs IN A 192.168.10.24

檢測語法并設(shè)置權(quán)限

[root@localhost ~]# named-checkconf

[root@localhost ~]# named-checkzone test.com /var/named/test.com/internal

zone test.com/IN: loaded serial 2018053101

OK

[root@localhost ~]# named-checkzone test.com /var/named/test.com/external

zone test.com/IN: loaded serial 2018053101

OK

[root@localhost ~]# chgrp named /var/named/test.com/{internal,external}

[root@localhost ~]# chmod o= /var/named/test.com/{internal,external}

[root@localhost ~]# rndc reload

server reload successful

用192.168.10.12進行解析免猾,解析成內(nèi)網(wǎng)IP

[root@localhost ~]# dig -t A www.test.com @192.168.10.10

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A www.test.com @192.168.10.10

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47742

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.test.com.? ? ? ? ? IN? A

;; ANSWER SECTION:

www.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; AUTHORITY SECTION:

test.com.? ? ? 3600? ? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; Query time: 2 msec

;; SERVER: 192.168.10.10#53(192.168.10.10)

;; WHEN: Sat Jun 02 02:45:02 EDT 2018

;; MSG SIZE? rcvd: 91

[root@localhost ~]# dig -t A bbs.test.com @192.168.10.10

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A bbs.test.com @192.168.10.10

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36168

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;bbs.test.com.? ? ? ? ? IN? A

;; ANSWER SECTION:

bbs.test.com.? ? ? 3600? ? IN? A? 192.168.10.24

bbs.test.com.? ? ? 3600? ? IN? A? 192.168.10.23

;; AUTHORITY SECTION:

test.com.? ? ? 3600? ? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; Query time: 1 msec

;; SERVER: 192.168.10.10#53(192.168.10.10)

;; WHEN: Sat Jun 02 02:45:20 EDT 2018

;; MSG SIZE? rcvd: 107

用192.168.10.11進行解析,解析成外網(wǎng)IP

[root@localhost ~]# dig -t A www.test.com @192.168.10.10

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A www.test.com @192.168.10.10

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39708

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.test.com.? ? ? ? ? IN? A

;; ANSWER SECTION:

www.test.com.? ? ? 3600? ? IN? A? 1.1.1.1

;; AUTHORITY SECTION:

test.com.? ? ? 3600? ? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; Query time: 1 msec

;; SERVER: 192.168.10.10#53(192.168.10.10)

;; WHEN: Sat Jun 02 02:47:01 EDT 2018

;; MSG SIZE? rcvd: 91

[root@localhost ~]# dig -t A bbs.test.com @192.168.10.10

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A bbs.test.com @192.168.10.10

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44362

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;bbs.test.com.? ? ? ? ? IN? A

;; ANSWER SECTION:

bbs.test.com.? ? ? 3600? ? IN? A? 1.1.1.2

bbs.test.com.? ? ? 3600? ? IN? A? 1.1.1.3

;; AUTHORITY SECTION:

test.com.? ? ? 3600? ? IN? NS? ns1.test.com.

;; ADDITIONAL SECTION:

ns1.test.com.? ? ? 3600? ? IN? A? 192.168.10.10

;; Query time: 1 msec

;; SERVER: 192.168.10.10#53(192.168.10.10)

;; WHEN: Sat Jun 02 02:47:24 EDT 2018

;; MSG SIZE? rcvd: 107

此時一個智能DNS服務(wù)器就搭建完成了囤热,比如在我國應(yīng)用比較多的場景是按照客戶端的線路是電信線路還是網(wǎng)通線路猎提,服務(wù)器自動解析成自己服務(wù)器上相對應(yīng)的電信IP或者網(wǎng)通IP,從而使客戶端和服務(wù)端連接在同一個運營商的線路上旁蔼,獲得最好的網(wǎng)速忧侧。


3、使用iptable實現(xiàn): 放行ssh,telnet, ftp, web服務(wù)80端口牌芋,其他端口服務(wù)全部拒絕

1、關(guān)閉firewalld松逊,清除filter表中的規(guī)則

iptables -F

2躺屁、添加規(guī)則

iptables -I INPUT -p tcp -m multiport --dports 21,22,21,80 -j ACCEPT

3、查看規(guī)則

iptables -vnL?


4经宏、NAT原理總結(jié)

1. NAT 簡介

1.1 IP地址

為了區(qū)分IP使用場景,我們可將IP地址可以分為:公網(wǎng)IP地址和私網(wǎng)IP地址.

公有IP地址: 也叫全局地址,是指合法的IP地址,它是由NIC(網(wǎng)絡(luò)信息中心)或者ISP(網(wǎng)絡(luò)服務(wù)提供商)分配的地址屋谭,對外代表一個或多個內(nèi)部局部地址靖诗,是全球統(tǒng)一的可尋 址的地址。

私有IP地址: 也叫內(nèi)部地址沪斟,屬于非注冊地址广辰,專門為組織機構(gòu)內(nèi)部使用。因特網(wǎng)分配編號委員會(IANA)保留了3塊IP地址做為私有IP地址:

10.0.0.0 ——— 10.255.255.255

172.16.0.0——— 172.16.255.255

192.168.0.0———192.168.255.255

地址池:地址池是有一些外部地址(全球唯一的IP地址)組合而成,我們稱這樣的一個地址集合為地址池择吊。在內(nèi)部網(wǎng)絡(luò)的數(shù)據(jù)包通過地址轉(zhuǎn)換到達外部網(wǎng)絡(luò)時李根,將會在地址池中選擇某個IP地址作為數(shù)據(jù)包的源IP地址,這樣可以有效的利用用戶的外部地址几睛,提高訪問外部網(wǎng)絡(luò)的能力房轿。

1.2 NAT

NAT 英文全稱是“Network Address Translation”,中文意思是“網(wǎng)絡(luò)地址轉(zhuǎn)換”所森,它是一個IETF(Internet Engineering Task Force, Internet工程任務(wù)組)標(biāo)準(zhǔn)囱持,允許一個整體機構(gòu)以一個公用IP(Internet Protocol)地址出現(xiàn)在Internet上。顧名思義焕济,它是一種把內(nèi)部私有網(wǎng)絡(luò)地址(IP地址)翻譯成合法網(wǎng)絡(luò)IP地址的技術(shù)纷妆。因此我們可以認(rèn)為,NAT在一定程度上吼蚁,能夠有效的解決公網(wǎng)地址不足的問題凭需。

NAT 功能通常被集成到路由器、防火墻肝匆、ISDN路由器或者單獨的NAT設(shè)備中粒蜈。

1.2 分類

NAT有三種類型:

靜態(tài)NAT(Static NAT)

動態(tài)地址NAT(Pooled NAT)

網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Port-Level NAT)。

1.2.1靜態(tài)NAT

通過手動設(shè)置旗国,使 Internet 客戶進行的通信能夠映射到某個特定的私有網(wǎng)絡(luò)地址和端口枯怖。如果想讓連接在 Internet 上的計算機能夠使用某個私有網(wǎng)絡(luò)上的服務(wù)器(如網(wǎng)站服務(wù)器)以及應(yīng)用程序(如游戲),那么靜態(tài)映射是必需的能曾。靜態(tài)映射不會從 NAT 轉(zhuǎn)換表中刪除度硝。

如果在 NAT 轉(zhuǎn)換表中存在某個映射,那么 NAT 只是單向地從 Internet 向私有網(wǎng)絡(luò)傳送數(shù)據(jù)寿冕。這樣蕊程,NAT 就為連接到私有網(wǎng)絡(luò)部分的計算機提供了某種程度的保護。但是驼唱,如果考慮到 Internet 的安全性藻茂,NAT 就要配合全功能的防火墻一起使用。

對于以上網(wǎng)絡(luò)拓?fù)鋱D玫恳,當(dāng)內(nèi)網(wǎng)主機 10.1.1.1如果要與外網(wǎng)的主機201.0.0.11通信時辨赐,主機(IP:10.1.1.1)的數(shù)據(jù)包經(jīng)過路由器時,路由器通過查找NAT table 將IP數(shù)據(jù)包的源IP地址(10.1.1.1)改成與之對應(yīng)的全局IP地址(201.0.0.1)京办,而目標(biāo)IP地址201.0.0.11保持不變掀序,這樣,數(shù)據(jù)包就能到達201.0.0.11惭婿。而當(dāng)主機HostB(IP:201.0.0.11) 響應(yīng)的數(shù)據(jù)包到達與內(nèi)網(wǎng)相連接的路由器時不恭,路由器同樣查找NAT table叶雹,將IP數(shù)據(jù)包的目的IP 地址改成10.1.1.1,這樣內(nèi)網(wǎng)主機就能接收到外網(wǎng)主機發(fā)過來的數(shù)據(jù)包县袱。在靜態(tài)NAT方式中浑娜,內(nèi)部的IP地址與公有IP地址是一種一一對應(yīng)的映射關(guān)系,所以式散,采用這種方式的前提是筋遭,機構(gòu)能夠申請到足夠多的全局IP地址。

1.2.2 動態(tài)NAT

動態(tài)地址NAT只是轉(zhuǎn)換IP地址暴拄,它為每一個內(nèi)部的IP地址分配一個臨時的外部IP地址漓滔,主要應(yīng)用于撥號,對于頻繁的遠程聯(lián)接也可以采用動態(tài)NAT乖篷。當(dāng)遠程用戶聯(lián)接上之后响驴,動態(tài)地址NAT就會分配給他一個IP地址,用戶斷開時撕蔼,這個IP地址就會被釋放而留待以后使用豁鲤。

動態(tài)NAT方式適合于 當(dāng)機構(gòu)申請到的全局IP地址較少,而內(nèi)部網(wǎng)絡(luò)主機較多的情況鲸沮。內(nèi)網(wǎng)主機IP與全局IP地址是多對一的關(guān)系琳骡。當(dāng)數(shù)據(jù)包進出內(nèi)網(wǎng)時,具有NAT功能的設(shè)備對IP數(shù)據(jù)包的處理與靜態(tài)NAT的一樣讼溺,只是NAT table表中的記錄是動態(tài)的楣号,若內(nèi)網(wǎng)主機在一定時間內(nèi)沒有和外部網(wǎng)絡(luò)通信,有關(guān)它的IP地址映射關(guān)系將會被刪除怒坯,并且會把該全局IP地址分配給新的IP數(shù)據(jù)包使用炫狱,形成新的NAT table映射記錄。

1.2.3網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT

網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Network Address Port Translation)則是把內(nèi)部地址映射到外部網(wǎng)絡(luò)的一個IP地址的不同端口上剔猿。它可以將中小型的網(wǎng)絡(luò)隱藏在一個合法的IP地址后面视译。NAPT與 動態(tài)地址NAT不同,它將內(nèi)部連接映射到外部網(wǎng)絡(luò)中的一個單獨的IP地址上归敬,同時在該地址上加上一個由NAT設(shè)備選定的端口號酷含。

NAPT是使用最普遍的一種轉(zhuǎn)換方式,它又包含兩種轉(zhuǎn)換方式:SNAT和DNAT弄慰。

(1)源NAT(Source NAT,SNAT):修改數(shù)據(jù)包的源地址蝶锋。源NAT改變第一個數(shù)據(jù)包的來源地址陆爽,它永遠會在數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)之前完成,數(shù)據(jù)包偽裝就是一具SNAT的例子扳缕。

(2)目的NAT(Destination NAT慌闭,DNAT):修改數(shù)據(jù)包的目的地址别威。Destination NAT剛好與SNAT相反,它是改變第一個數(shù)據(jù)包的目的地地址驴剔,如平衡負(fù)載省古、端口轉(zhuǎn)發(fā)和透明代理就是屬于DNAT。

在這里插入圖片描述

2 NAT原理

2.1 地址轉(zhuǎn)換

NAT的基本工作原理是丧失,當(dāng)私有網(wǎng)主機和公共網(wǎng)主機通信的IP包經(jīng)過NAT網(wǎng)關(guān)時豺妓,將IP包中的源IP或目的IP在私有IP和NAT的公共IP之間進行轉(zhuǎn)換。

在這里插入圖片描述

2.2 連接跟蹤

在上述過程中布讹,NAT Gateway在收到響應(yīng)包后琳拭,就需要判斷將數(shù)據(jù)包轉(zhuǎn)發(fā)給誰。此時如果子網(wǎng)內(nèi)僅有少量客戶機描验,可以用靜態(tài)NAT手工指定白嘁;但如果內(nèi)網(wǎng)有多臺客戶機,并且各自訪問不同網(wǎng)站膘流,這時候就需要連接跟蹤(connection track)絮缅。

在這里插入圖片描述

在NAT Gateway收到客戶機發(fā)來的請求包后,做源地址轉(zhuǎn)換呼股,并且將該連接記錄保存下來耕魄,當(dāng)NAT Gateway收到服務(wù)器來的響應(yīng)包后,查找Track Table卖怜,確定轉(zhuǎn)發(fā)目標(biāo)屎开,做目的地址轉(zhuǎn)換,轉(zhuǎn)發(fā)給客戶機马靠。

2.3 端口轉(zhuǎn)換

以上述客戶機訪問服務(wù)器為例奄抽,當(dāng)僅有一臺客戶機訪問服務(wù)器時,NAT Gateway只須更改數(shù)據(jù)包的源IP或目的IP即可正常通訊甩鳄。但是如果Client A和Client B同時訪問Web Server逞度,那么當(dāng)NAT Gateway收到響應(yīng)包的時候,就無法判斷將數(shù)據(jù)包轉(zhuǎn)發(fā)給哪臺客戶機妙啃,如下圖所示档泽。

在這里插入圖片描述

此時,NAT Gateway會在Connection Track中加入端口信息加以區(qū)分揖赴。如果兩客戶機訪問同一服務(wù)器的源端口不同馆匿,那么在Track Table里加入端口信息即可區(qū)分,如果源端口正好相同燥滑,那么在實行SNAT和DNAT的同時對源端口也要做相應(yīng)的轉(zhuǎn)換渐北,如下圖所示。

在這里插入圖片描述

3 應(yīng)用

NAT主要可以實現(xiàn)以下幾個功能:

數(shù)據(jù)包偽裝

平衡負(fù)載

端口轉(zhuǎn)發(fā)

透明代理

3.1 數(shù)據(jù)偽裝

可以將內(nèi)網(wǎng)數(shù)據(jù)包中的地址信息更改成統(tǒng)一的對外地址信息铭拧,不讓內(nèi)網(wǎng)主機直接暴露在因特網(wǎng)上赃蛛,保證內(nèi)網(wǎng)主機的安全恃锉。同時,該功能也常用來實現(xiàn)共享上網(wǎng)呕臂。例如破托,內(nèi)網(wǎng)主機訪問外網(wǎng)時,為了隱藏內(nèi)網(wǎng)拓?fù)浣Y(jié)構(gòu)歧蒋,使用全局地址替換私有地址土砂。

3.2 端口轉(zhuǎn)發(fā)

當(dāng)內(nèi)網(wǎng)主機對外提供服務(wù)時,由于使用的是內(nèi)部私有IP地址疏尿,外網(wǎng)無法直接訪問瘟芝。因此,需要在網(wǎng)關(guān)上進行端口轉(zhuǎn)發(fā)褥琐,將特定服務(wù)的數(shù)據(jù)包轉(zhuǎn)發(fā)給內(nèi)網(wǎng)主機锌俱。例如公司小王在自己的服務(wù)器上架設(shè)了一個Web網(wǎng)站,他的IP地址為192.168.0.5敌呈,使用默認(rèn)端口80贸宏,現(xiàn)在他想讓局域網(wǎng)外的用戶也能直接訪問他的Web站點。利用NAT即可很輕松的解決這個問題磕洪,服務(wù)器的IP地址為210.59.120.89吭练,那么為小王分配一個端口,例如81析显,即所有訪問210.59.120.89:81的請求都自動轉(zhuǎn)向192.168.0.5:80鲫咽,而且這個過程對用戶來說是透明的。

3.3 負(fù)載平衡

目的地址轉(zhuǎn)換NAT可以重定向一些服務(wù)器的連接到其他隨機選定的服務(wù)器谷异。例如1.2.3所講的目的NAT的例子分尸。

3.4 失效終結(jié)

目的地址轉(zhuǎn)換NAT可以用來提供高可靠性的服務(wù)。如果一個系統(tǒng)有一臺通過路由器訪問的關(guān)鍵服務(wù)器歹嘹,一旦路由器檢測到該服務(wù)器當(dāng)機箩绍,它可以使用目的地址轉(zhuǎn)換NAT透明的把連接轉(zhuǎn)移到一個備份服務(wù)器上,提高系統(tǒng)的可靠性尺上。

3.5 透明代理

例如自己架設(shè)的服務(wù)器空間不足材蛛,需要將某些鏈接指向存在另外一臺服務(wù)器的空間;或者某臺計算機上沒有安裝IIS服務(wù)怎抛,但是卻想讓網(wǎng)友訪問該臺計算機上的內(nèi)容卑吭,這個時候利用IIS的Web站點重定向即可輕松的幫助我們搞定。

4 NAT的缺陷

NAT在最開始的時候是非常完美的马绝,但隨著網(wǎng)絡(luò)的發(fā)展豆赏,各種新的應(yīng)用層出不窮,此時NAT也暴露出了缺點。NAT的缺陷主要表現(xiàn)在以下幾方面:

4.1 不能處理嵌入式IP地址或端口

NAT設(shè)備不能翻譯那些嵌入到應(yīng)用數(shù)據(jù)部分的IP地址或端口信息河绽,它只能翻譯那種正常位于IP首部中的地址信息和位于TCP/UDP首部中的端口信息,如下圖,由于對方會使用接收到的數(shù)據(jù)包中嵌入的地址和端口進行通信唉窃,這樣就可能產(chǎn)生連接故障耙饰,如果通信雙方都是使用的公網(wǎng)IP,這不會造成什么問題纹份,但如果那個嵌入式地址和端口是內(nèi)網(wǎng)的苟跪,顯然連接就不可能成攻,原因就如開篇所說的一樣蔓涧。MSN Messenger的部分功能就使用了這種方式來傳遞IP和端口信息件已,這樣就導(dǎo)致了NAT設(shè)備后的客戶端網(wǎng)絡(luò)應(yīng)用程序出現(xiàn)連接故障。

4.2 不能從公網(wǎng)訪問內(nèi)部網(wǎng)絡(luò)服務(wù)

由于內(nèi)網(wǎng)是私有IP元暴,所以不能直接從公網(wǎng)訪問內(nèi)部網(wǎng)絡(luò)服務(wù)篷扩,比如WEB服務(wù),對于這個問題茉盏,我們可以采用建立靜態(tài)映射的方法來解決鉴未。比如有一條靜態(tài)映射,是把218.70.201.185:80與192.168.0.88:80映射起的鸠姨,當(dāng)公網(wǎng)用戶要訪問內(nèi)部WEB服務(wù)器時铜秆,它就首先連接到218.70.201.185:80,然后NAT設(shè)備把請求傳給192.168.0.88:80讶迁,192.168.0.88把響應(yīng)返回NAT設(shè)備连茧,再由NAT設(shè)備傳給公網(wǎng)訪問用戶。

4.3 數(shù)據(jù)包丟失

有一些應(yīng)用程序雖然是用A端口發(fā)送數(shù)據(jù)的巍糯,但卻要用B端口進行接收啸驯,不過NAT設(shè)備翻譯時卻不知道這一點,它仍然建立一條針對A端口的映射鳞贷,結(jié)果對方響應(yīng)的數(shù)據(jù)要傳給B端口時坯汤,NAT設(shè)備卻找不到相關(guān)映射條目而會丟棄數(shù)據(jù)包。

4.4 一些P2P應(yīng)用在NAT后無法進行

對于那些沒有中間服務(wù)器的純P2P應(yīng)用(如電視會議搀愧,娛樂等)來說惰聂,如果大家都位于NAT設(shè)備之后,雙方是無法建立連接的咱筛。因為沒有中間服務(wù)器的中轉(zhuǎn)搓幌,NAT設(shè)備后的P2P程序在NAT設(shè)備上是不會有映射條目的,也就是說對方是不能向你發(fā)起一個連接的⊙嘎幔現(xiàn)在已經(jīng)有一種叫做P2P NAT穿越的技術(shù)來解決這個問題溉愁。

5 結(jié)語

NAT技術(shù)無可否認(rèn)是在ipv4地址資源的短缺時候起到了緩解作用;在減少用戶申請ISP服務(wù)的花費和提供比較完善的負(fù)載平衡功能等方面帶來了不少好處饲趋。但是在ipv4地址在以后幾年將會枯竭拐揭,NAT技術(shù)不能改變ip地址空間不足的本質(zhì)撤蟆。然而在安全機制上也潛在著威脅,在配置和管理上也是一個挑戰(zhàn)堂污。如果要從根本上解決ip地址資源的問題家肯,ipv6才是最根本之路。在ipv4轉(zhuǎn)換到ipv6的過程中盟猖,NAT技術(shù)確實是一個不錯的選擇讨衣,相對其他的方案優(yōu)勢也非常明顯。



5式镐、iptables實現(xiàn)SNAT和DNAT反镇,并對規(guī)則持久保存。

實現(xiàn)SNAT和DNAT都需要開啟內(nèi)核數(shù)據(jù)轉(zhuǎn)發(fā)功能

[root@localhost ~]# vim /etc/sysctl.conf

# 把下列選項改正1

net.ipv4.ip_forward=0

...

net.ipv4.ip_forward=1

2.1 SNAT

基于nat表的target娘汞,適用于固定的公網(wǎng)IP

SNAT選項:

--to-source [ipaddr[-ipaddr]][:port[-port]]

--random

語法:

iptables -t nat -A POSTROUTING -s LocalNET ! -d LocalNet -j SNAT --to-source ExtIP

范例:

[root@localhost ~]# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 192.168.122.103

2.2 DNAT

nat表的target歹茶,適用于端口映射,即可重定向到本機你弦,也可以支持重定向至不同主機的不同端口辆亏,但不支持多目標(biāo),即不支持負(fù)載均衡功能

DNAT選項:

--to-destination [ipaddr[-ipaddr]][:port[-port]]

DNAT語法:

iptables -t nat -A PREROUTING -d ExtIP -p tcp|udp --dport PORT -j DNAT --todestination InterSeverIP[:PORT]

范例:

[root@localhost ~]# iptables -t nat -A PREROUTING -d 192.168.122.103 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.6:80

2.3 iptables規(guī)則持久保存:

CentOS 7鳖目、8

iptables-save > /PATH/TO/SOME_RULES_FILE

CentOS 6

# 將規(guī)則覆蓋保存至/etc/sysconfig/iptables文件中

service iptables save

2.4 加載規(guī)則

2.4.1 CentOS 7扮叨、8 重新載入預(yù)存規(guī)則文件中規(guī)則:

iptables-restore < /PATH/FROM/SOME_RULES_FILE

iptables-restore選項

-n, --noflush:不清除原有規(guī)則

-t, --test:僅分析生成規(guī)則集,但不提交

2.4.2 CentOS 6:

service iptables? restart? ? ?

#會自動從/etc/sysconfig/iptables 重新載入規(guī)則

2.5 開機自動重載規(guī)則

2.5.1 用腳本保存各iptables命令领迈;讓此腳本開機后自動運行

/etc/rc.d/rc.local文件中添加腳本路徑 /PATH/TO/SOME_SCRIPT_FILE

用規(guī)則文件保存各規(guī)則彻磁,開機時自動載入此規(guī)則文件中的規(guī)則

在/etc/rc.d/rc.local文件添加

iptables-restore < /PATH/FROM/IPTABLES_RULES_FILE

2.5.2 定義Unit File, CentOS 7,8 可以安裝 iptables-services 實現(xiàn)iptables.service

范例: CentOS 7狸捅,8 使用 iptables-services

[root@centos8 ~]# yum -y install iptables-services

[root@centos8 ~]# cp /etc/sysconfig/iptables{,.bak}

#保存現(xiàn)在的規(guī)則到文件中方法1

[root@centos8 ~]# /usr/libexec/iptables/iptables.init save

#保存現(xiàn)在的規(guī)則到文件中方法2

iptables-save > /etc/sysconfig/iptables

#開機啟動

[root@centos8 ~]# systemctl enable iptables.service

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末衷蜓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子尘喝,更是在濱河造成了極大的恐慌磁浇,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朽褪,死亡現(xiàn)場離奇詭異置吓,居然都是意外死亡,警方通過查閱死者的電腦和手機缔赠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門衍锚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嗤堰,你說我怎么就攤上這事戴质。” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵告匠,是天一觀的道長戈抄。 經(jīng)常有香客問我,道長后专,這世上最難降的妖魔是什么呛凶? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮行贪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘模闲。我一直安慰自己建瘫,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布尸折。 她就那樣靜靜地躺著啰脚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪实夹。 梳的紋絲不亂的頭發(fā)上橄浓,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機與錄音亮航,去河邊找鬼荸实。 笑死,一個胖子當(dāng)著我的面吹牛缴淋,可吹牛的內(nèi)容都是我干的准给。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼重抖,長吁一口氣:“原來是場噩夢啊……” “哼露氮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钟沛,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤畔规,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后恨统,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叁扫,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年畜埋,在試婚紗的時候發(fā)現(xiàn)自己被綠了陌兑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡由捎,死狀恐怖兔综,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤软驰,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布涧窒,位于F島的核電站,受9級特大地震影響锭亏,放射性物質(zhì)發(fā)生泄漏纠吴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一慧瘤、第九天 我趴在偏房一處隱蔽的房頂上張望戴已。 院中可真熱鬧,春花似錦锅减、人聲如沸糖儡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽握联。三九已至,卻和暖如春每瞒,著一層夾襖步出監(jiān)牢的瞬間金闽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工剿骨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留代芜,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓浓利,卻偏偏與公主長得像蜒犯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子荞膘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 一罚随、簡述DNS服務(wù)器原理,并搭建主-輔服務(wù)器1羽资、DNS是什么DNS(Domain Name Service的縮寫)...
    小霍吖閱讀 281評論 0 0
  • 1淘菩、簡述DNS服務(wù)器原理,并搭建主-輔服務(wù)器屠升。 DNS服務(wù)器原理:DNS是分布式的潮改,將其網(wǎng)上的域名和IP地址相互映...
    Gustav_man閱讀 539評論 0 0
  • 一、簡述DNS服務(wù)器原理腹暖,并搭建主-輔服務(wù)器 1汇在、DNS服務(wù)器原理 第一步:客戶機提出域名解析請求,并將該請求發(fā)送...
    迫近之影閱讀 778評論 0 0
  • 全套學(xué)習(xí)資料移步至公眾號【學(xué)神來啦】 本節(jié)所講內(nèi)容: 5.1 DNS服務(wù)器常見概念 5.2 DNS服務(wù)器安裝及相關(guān)...
    俠盜安全閱讀 1,274評論 0 0
  • 1脏答、畫出TSL鏈路的通信圖 第一階段:ClientHello: 支持的協(xié)議版本糕殉,比如tls 1.2 客戶端生成一個...
    N37077ZZ閱讀 282評論 0 0