Life Style!
系统管理 维护监控 简单生活
系统管理 维护监控 简单生活
十 28th
最近一直在看非技术方面的书,对技术有的渐谈的感觉,正好买了一个thinkos.net 的域名.打算深入的学习一下DNS.
预期目标
1.自己建立解析服务器,并解析自己的域名,并做到安全,可靠
预期计划
第一步:搞定自己的DNS服务器,使其能正常解析
第二步:去代理商那里注册自建的DNS服务器
第三步:进行功能测试,确定功能,其响应及处理能力.
第四步:了解DNS服务器相关的安全性问题,加固
第五步:做一台辅域名服务器
相关必要信息
1. thinkos.net 是在万网的代理商那里买的(60块/年)
2.有一台自己完全管控的服务器,并有公网IP(这个在双线IDC机房)
3.NS 服务器是需要花钱在代理商那里注册后才能用的(购买价格约为20元每组)
第一步:建设自己的DNS 服务器
1.yum 安装相关的软件包
yum -y install bind bind-chroot bind-utils
2.规划bind 配置文件的存放结构,
服务器可能会解析多个域,我把相关数据文件和配置文件分开,
还有就是请求的对像,比如内网的请求需要解析的内网IP,电信的请求需要解析的电信的IP
所以要用到VIEW,方便简单的管理
3.创建相关的配置文件
1. /etc/named.conf #bind9的主配置文件
2. ../chroot/var/named/data/internal.conf #针对内网的ZONE配置
3. ../chroot/var/named/data/external.conf #针对非内网的查询ZONE配置文件
4. ../chroot/var/named/data/thinkos.net #非内网的查询用的域名数据库
5. ../chroot/var/named/data/thinkos.zone #内网的查询用的域名数据库
zone 数据文件内一部份放在../chroot/var/named/data/localzone下,thinkos域名相关的,则直接放在../chroot/var/named/data 下面
1.named.conf
options {
directory "/var/named/data";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
version "";
datasize 40M;
recursion no;
allow-query { any; };
forwarders { 221.228.255.1;
218.2.135.1;
221.6.96.177;
221.6.96.178;
221.228.255.1;
218.2.135.1;
202.96.209.133;
202.96.209.5; };
};
logging {
channel default_syslog {
syslog local2;
severity debug;
};
channel audit_log { file "/var/named/data/named.log";
severity info;
print-time yes;
versions 3 size 1240k;
};
category default { default_syslog; };
category general { default_syslog; };
category security { audit_log; default_syslog; };
category config { default_syslog; };
category resolver { audit_log; };
category xfer-in { audit_log; };
category xfer-out { audit_log; };
category notify { audit_log; };
category client { audit_log; };
category network { audit_log; };
category update { audit_log; };
category queries { audit_log; };
category lame-servers { audit_log; };
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
include "/etc/rndc.key";
view "internal" {
match-clients { 10.11.10.0/24; };
recursion no;
include "internal.conf";
};
view "external" {
match-clients { any; };
recursion no;
include "external.conf";
};
2.internal.conf
zone "." IN {
type hint;
file "localzone/named.ca";
};
zone "localdomain" IN {
type master;
file "localzone/localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localzone/localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "localzone/named.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "localzone/named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "localzone/named.zero";
allow-update { none; };
};
zone "thinkos.net" IN {
type master;
file "thinkos.zone";
allow-update { none;};
};
3.external.conf
zone "." IN {
type hint;
file "localzone/named.ca";
};
zone "thinkos.net" IN {
type master;
file "thinkos.net";
allow-update { none; };
};
4.thinkos.net
$TTL 300
@ IN SOA dns.thinkos.net. root. (
2009021201 ;Serial
3600 ;Refresh ( seconds )
900 ;Retry ( seconds )
68400 ;Expire ( seconds )
15 ) ;Minimum TTL for Zone ( seconds )
IN NS thinkos.net.
IN A 210.51.50.122
ns1 IN A 210.51.50.122
dns IN A 210.51.50.122
www IN A 210.51.50.122
cacti IN A 210.51.50.122
5.thinkos.zone
$TTL 20
@ IN SOA dns.thinkos.net. root. (
2009021201 ;Serial
3600 ;Refresh ( seconds )
900 ;Retry ( seconds )
68400 ;Expire ( seconds )
15 ) ;Minimum TTL for Zone ( seconds )
IN NS thinkos.net.
IN A 10.11.10.254
ns1 IN A 10.11.10.254
dns IN A 10.11.10.254
www IN A 10.11.10.254
4.启动bind 并进行基本功能测试
在另外一台机器上执行如下命令
dig www.thinkos.net @ns1.thinkos.net
看如下的返回
; <<>> DiG 9.3.4-P1 <<>> www.thinkos.net @ns1.thinkos.net
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18686
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.thinkos.net. IN A
;; ANSWER SECTION:
www.thinkos.net. 300 IN A 210.51.50.122
;; AUTHORITY SECTION:
thinkos.net. 300 IN NS thinkos.net.
;; ADDITIONAL SECTION:
thinkos.net. 300 IN A 210.51.50.122
;; Query time: 113 msec
;; SERVER: 210.51.50.122#53(210.51.50.122)
;; WHEN: Thu Oct 29 09:09:41 2009
;; MSG SIZE rcvd: 79
第二步:去代理商那里注册自建的DNS服务器
这一步很复杂,复杂主要是跟域名提供商的沟通,一是我自己对某些概念不是很确定,二是客服啥也不懂,三是网站上的的体验很差,找了半天找不到相关的产品,找到了且还不能购买,后来根据他们的建议,直接找万网的人终于了解整个概念,和操作流程,后来他们手动在后台给我做了购买. 但也很简单,直接告诉他们你的NS 服务器的域名,和要对IP地址,他们给你注册一下,半个小时候可以在公网上解析得到,这一步就完成了. 相关的图
图<创建自己的DNS服务器>以万网一个代理商为例
图<到域名购买商修改解析地址为自己创建的NS服务器>
图 <NS 服务器已成功在公网注册上,并已生效>
注意: 我在自己建的DNS 服务器上是没有添加ns2.thinkos.net 这条记录的,可去看thinkos.net 文件进行确认.
第三步:进行功能测试,了解响应及处理能力.
1.确定NS 服务器已正常工作
思路一、 解析一个A记录,跟踪其解析路径。比如 dig www.thinkos.net +trace
思路二、 指定多个DNS 服务器解析你的一个A记录比如 dig www.thinkos.net @221.228.255.1
dig www.thinkos.net +trace
; <<>> DiG 9.2.4 <<>> www.thinkos.net +trace ;; global options: printcmd . 166869 IN NS G.ROOT-SERVERS.NET. . 166869 IN NS D.ROOT-SERVERS.NET. . 166869 IN NS E.ROOT-SERVERS.NET. . 166869 IN NS H.ROOT-SERVERS.NET. . 166869 IN NS L.ROOT-SERVERS.NET. . 166869 IN NS C.ROOT-SERVERS.NET. . 166869 IN NS A.ROOT-SERVERS.NET. . 166869 IN NS K.ROOT-SERVERS.NET. . 166869 IN NS J.ROOT-SERVERS.NET. . 166869 IN NS B.ROOT-SERVERS.NET. . 166869 IN NS F.ROOT-SERVERS.NET. . 166869 IN NS I.ROOT-SERVERS.NET. . 166869 IN NS M.ROOT-SERVERS.NET. ;; Received 512 bytes from 221.228.255.1#53(221.228.255.1) in 72 ms net. 172800 IN NS C.GTLD-SERVERS.net. net. 172800 IN NS F.GTLD-SERVERS.net. net. 172800 IN NS L.GTLD-SERVERS.net. net. 172800 IN NS I.GTLD-SERVERS.net. net. 172800 IN NS E.GTLD-SERVERS.net. net. 172800 IN NS J.GTLD-SERVERS.net. net. 172800 IN NS H.GTLD-SERVERS.net. net. 172800 IN NS B.GTLD-SERVERS.net. net. 172800 IN NS K.GTLD-SERVERS.net. net. 172800 IN NS A.GTLD-SERVERS.net. net. 172800 IN NS G.GTLD-SERVERS.net. net. 172800 IN NS D.GTLD-SERVERS.net. net. 172800 IN NS M.GTLD-SERVERS.net. ;; Received 490 bytes from 192.112.36.4#53(G.ROOT-SERVERS.NET) in 155 ms thinkos.net. 172800 IN NS ns1.thinkos.net. thinkos.net. 172800 IN NS ns2.thinkos.net. ;; Received 101 bytes from 192.26.92.30#53(C.GTLD-SERVERS.net) in 294 ms www.thinkos.net. 300 IN A 210.51.50.122 thinkos.net. 300 IN NS thinkos.net. ;; Received 79 bytes from 210.51.50.122#53(ns1.thinkos.net) in 29 ms
dig www.thinkos.net @221.228.255.1
; <<>> DiG 9.2.4 <<>> www.thinkos.net @221.228.255.1
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63334
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.thinkos.net. IN A
;; ANSWER SECTION:
www.thinkos.net. 138 IN A 210.51.50.122
;; AUTHORITY SECTION:
thinkos.net. 138 IN NS ns1.thinkos.net.
;; ADDITIONAL SECTION:
ns1.thinkos.net. 70315 IN A 210.51.50.122
;; Query time: 0 msec
;; SERVER: 221.228.255.1#53(221.228.255.1)
;; WHEN: Thu Oct 29 14:31:45 2009
;; MSG SIZE rcvd: 83
这里有两个点值得说一下,
一是 ns1.thinkos.net.本来应该返回为thinkos.net.这里返回为ns1.thinkos.net的原因为我更改了thinkos.net 里的
IN NS thinkos.net. 为 IN NS ns1.thinkos.net
二是: 138这个数字是是TTL 值,单位为秒。比如在我的thinkos.net 里的设置为
$TTL 300
@ IN SOA ns1.thinkos.net. root.
DNS中TTL值的主要作用是为每一条记录设置一个存活时间,互联网上的缓存DNS服务器在查询到这条记录之后都会将TTL值缓存到本地,这样做一是提高DNS解析的速度,二是降低网络流量。这个值如果设得过大,如果你记录有更新,互联网上DNS对这条变更的记录生效的就慢,如果设得过小,其它服务器会因时间过短而查不到。更多请看bind9官方文档 这里有中文
2.了解响应时间
十 25th
家里的宽带是每月120小时的限时套餐,算起来平均每天上四个小时正好,当初讨伦这个的时候,大家也是一致根据自己的情况认可的。可是最近遇上了个挫人,天天用外挂挂在那里偷菜,一天24个小时的挂着,沟通多次,他自己也觉得不好意思了,就偷偷的挂. 结果才交的钱,不到一个星期就光光了,
一是网费远远超过了大家的预算,二是对这种人产生了不良印像.甚至有些鄙视那个人了,如果说上网看电影或是下资料也就罢了,偏偏却是用外挂偷菜,三是发现电信太黑了(升极其它套餐就要签一年,且还要送你个手机要用到15个月以上.),正在头痛要怎么去处理
本来这周未计划了在家里的工作,于是只好来公司,然后随便找些资料看看,结果找到一个MM的空间,首先是发现此MM 的文笔很好,其后发现其界面看起来很舒服,布局很简洁,但是不简单, 所以就想多看看.
此MM技术文章很有特点,能让人体会到,一个是专注、二个是专业、三个是有细节,四个是有要点.
其它还记录了很多生活锁事.字里行间都透露出生活的幸福,甜蜜,为人的真诚,有爱心, 聪明,有智慧,还透露了女人的傻气,和爱. 看完后几篇后简直把我的奋斗意志消灭了一半,真让人想去迫不急待的去找一个女朋友.然后从此开始.....
有几遍日志,看完后有些伤感,让人想静静的坐在那里掉眼泪.一事自己曾经也发生过那些经历,能深切的体会得到当时的那种感觉,二是文笔用词很准确,很生动,越看越喜欢.越看越让我感觉到自己曾经的难过.
看完后觉得自己心里沉沉的,有些为自己满意,因为曾经的认真,也因为勇敢的放弃,也有些为现在的自己感到庆幸,能遇上那些让我成长,帮我成长的人。
越来越体会到.选择真的是一种智慧,对自己的发展来说,这个可能是最大的成本了.
最新评论