新聞中心
系統(tǒng)平臺(tái):CentOS 6.6 x86_64
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元肅南裕固族自治做網(wǎng)站,已為上家服務(wù),為肅南裕固族自治各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
Bind版本:bind-9.10.2
準(zhǔn)備工作
下載bind 源碼包, 省略......
安裝開發(fā)工具包, 省略......
安裝:
解壓bind-9.10.2.tar.gz
#tar xvf bind-9.10.2.tar.gz #cd bind-9.10.2/ #./configure -h
#./configure --prefix=/usr/local/bind --mandir=/usr/share/ --sysconfdir=/etc/named/ --disable-ipv6 --disable-chroot --enable-threads #make -j 2 && make install
#ln -s /usr/local/bind/bin/* /usr/bin/ #ln -s /usr/local/bind/sbin/* /usr/sbin/
#groupadd -r named #useradd -r -g named -M -s /sbin/nologin named #mkdir /usr/local/bind/var/run/named #chown named:named /usr/local/bind/var/run/named #ll -d /usr/local/bind/var/run/named/
#[ -d /etc/named/ ] || mkdir /etc/named #chown named:named /etc/named #[ -d /var/named ] || mkdir /var/named #chown named:named /var/named
開始配置基礎(chǔ)zone文件
#dig -t NS . @61.139.2.69 > /var/named/named.ca #cd /var/named/ # vim named.localhost $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H) ; minimum NS @ A 127.0.0.1 #vim named.loopback $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H) ; minimum NS @ A 127.0.0.1 PTR localhost. #chown -R named.named /var/named/*
named.conf主配置文件 (bind安裝源碼文件中有提供named.conf的示例文件,bin/tests/named.conf)
#rndc-confgen -r /dev/urandom > /etc/named/rndc.conf #cd /etc/named/ #touch named.conf #vim rndc.conf 命令模式下 :2,11w >> named.conf #cat named.conf #vim named.conf options { directory "/var/named"; listen-on port 53 {any; }; allow-query {any; }; recursion yes; }; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; # Use with the following in named.conf,adjusting the allow list as needed: key"rndc-key" { algorithm hmac-md5; secret "8VWpbjeJ8mochoPghAN5SQ=="; }; # controls{ inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; }; #chown -R named.named /etc/named/*
運(yùn)行named
# named -u named -g # named -u named # netstat -tunpl # tail /var/log/messages 查看日志情況,是否有報(bào)錯(cuò) # iptables -t filter -I INPUT -p udp --dport 53 -j ACCEPT 遠(yuǎn)程電腦查詢下域名,看是否能夠正常查詢
named 的系統(tǒng)服務(wù)腳本
#!/bin/bash # named a network name service. # chkconfig: 345 35 75 # description: a name server [ -r /etc/rc.d/init.d/functions ] && . /etc/rc.d/init.d/functions PidFile=/usr/local/bind/var/run/named/named.pid LockFile=/var/lock/subsys/named named=named start() { [ -x /usr/local/bind/sbin/$named ] || exit 4 if [ -f $LockFile ]; then echo -n "$named is already running..." failure echo exit 5 fi echo -n "Starting $named: " daemon --pidfile "$PidFile" /usr/local/bind/sbin/$named -u named -4 RETVAL=$? echo if [ $RETVAL -eq 0 ]; then touch $LockFile return 0 else rm -f $LockFile $PidFile return 1 fi } stop() { if [ ! -f $LockFile ];then echo "$named is not started." failure fi echo -n "Stopping $named: " killproc $named RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $LockFile return 0 } restart() { stop sleep 1 start } reload() { echo -n "Reloading $named: " killproc $named -HUP RETVAL=$? echo return $RETVAL } status() { if pidof $named > /dev/null && [ -f $PidFile ]; then echo "$named is running..." else echo "$named is stopped..." fi } case $1 in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; status) status ;; *) echo "Usage:named {start|stop|status|reload|restart}" exit 2;; esac
redirect 區(qū)域類型
該類型功能是如果在查詢不到域名的情況下,重定向返回一個(gè)設(shè)定IP ,而不是返回空結(jié)果。
所以 可以利用該功能做一些額外的服務(wù)。
zone "." IN { type redirect; file "redirect.file"; }; $TTL 3600 @ IN SOA ns.EXAMPLE.net. mail.EXAMPLE.net. ( 0 0 0 0 0 ) @ IN NS ns.EXAMPLE.net *. IN A 8.8.8.8
測(cè)試
$GENERATE 指令用法
文檔的介紹如下:
語(yǔ)法:
$GENERATE range lhs type rhs [ comment ]
$GENERATE 指令是用來生成一個(gè)資源記錄序列,資源記錄彼此之間只有一個(gè)重復(fù)性的
不同。$GENERATE 指令可以容易地被用來生成一個(gè)記錄集合來支持RFC2317 中所描述的
sub/24 反向授權(quán):無(wú)類的IN-ADDR.ARPA 授權(quán)。
$ORIGIN 0.0.192.IN-ADDR.ARPA.
$GENERATE 1-2 0 NS SERVER$.EXAMPLE.
$GENERATE 1-127 $ CNAME $.0
等價(jià)于:
0.0.0.192.IN-ADDR.ARPA NS SERVER1.EXAMPLE.
0.0.0.192.IN-ADDR.ARPA NS SERVER2.EXAMPLE.
1.0.0.192.IN-ADDR.ARPA CNAME 1.0.0.0.192.IN-ADDR.ARPA
2.0.0.192.IN-ADDR.ARPA CNAME 2.0.0.0.192.IN-ADDR.ARPA
...
127.0.0.192.IN-ADDR.ARPA CNAME 127.0.0.0.192.IN-ADDR.ARPA
實(shí)際測(cè)試
$GENERATE 1-6 lh$ 3600 IN CNAME googlehosted.l 等價(jià)于: ;lh2 3600 IN CNAME googlehosted.l ;lh3 3600 IN CNAME googlehosted.l ;lh4 3600 IN CNAME googlehosted.l ;lh5 3600 IN CNAME googlehosted.l ;lh6 3600 IN CNAME googlehosted.l ;lh7 3600 IN CNAME googlehosted.l
查詢結(jié)果
named.conf 中 option選項(xiàng)中的一個(gè)參數(shù):
deny-answer-addresses 用法.
語(yǔ)法:
deny-answer-addresses {
address_match_list
} [ except-from { namelist } ];
從字面意思上不難理解,組織一個(gè)回答的地址.
比如我們dig 查詢一個(gè)域名 fscdnuni-vip.115.com
可以看到返回有很多IP .
那么我們?nèi)绻砑右粋€(gè)IP到 deny 選項(xiàng)中呢 ?
deny-answer-addresses { 58.252.100.82;} ;
我們這里添加了其中一個(gè)IP 到deny-answer-addresses 中.
# rndc reload # rndc flushname fscdnuni-vip.115.com
再查詢?cè)囋?
發(fā)現(xiàn),不予回復(fù)了.
deny-answer-addresses { 58.252.100.82;} except-from {"115.com";} ;
添加一個(gè)可選參數(shù) except-from (例外)
這就是 deny-answer-addresses 的功能.
address_match_list 的格式可以是單個(gè)IP地址, 也可以死CIDR格式的網(wǎng)絡(luò)地址段.
如果回復(fù)的IP地址中有和 address_match_list 中的匹配,哪怕只是一個(gè),那么 named 在向外遞歸或者轉(zhuǎn)發(fā)查詢的時(shí)候,就不會(huì)給客戶端返回查詢結(jié)果了,因?yàn)樗斫鉃橹灰幸粋€(gè)IP不可信,那么改條查詢均不可信.
deny-answer-aliases 這個(gè)選項(xiàng)理應(yīng)跟上面的選項(xiàng)功能類似,但是我這里測(cè)試好像沒效果.
有誰(shuí)知道怎么用才對(duì)么?
本文標(biāo)題:Bind9.10源碼安裝以及新增redirect類型以及$GENERATE指令用法
本文路徑:http://www.dlmjj.cn/article/jdgogh.html