centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课
上半节课
DNS原理
使用bind搭建DNS服务器
配置DNS转发
下半节课
配置主从
安装dig工具
DHCP
dhclient
各种域名解析记录
mydns
一. DNS原理相关
DNS 为Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种服务机制。
其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。 DNS使用TCP和UDP, 端口号都是53, 但它主要使用UDP,服务器之间主从使用TCP。
全世界只有13台“根”服务器,1个主根服务器放在美国,其他12台为辅根服务器,DNS服务器根据角色可以分为:主DNS, 从DNS, 缓存DNS服务器,DNS转发服务器。
二. 使用bind搭建DNS服务器
bind配置文件注释要用分号;不能用井号
1. 安装bind
yum install -y bind //会顺便安装bind-utils包
cp /etc/named.conf /etc/named.conf.bak
>/etc/named.conf
vim /etc/named.conf
加入如下配置:
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
chown named /etc/named.conf
cd /var/named/
dig -t NS . > named.ca
vim localhost.zone //加入
@ IN SOA localhost. admin.localhost. (
2013081601
1H
10M
7D
1D
)
@ IN NS localhost.
localhost. IN A 127.0.0.1
vim named.local //加入
$TTL 86400
@ IN SOA localhost. admin.localhost. (
2013081601
1H
10M
7D
1D
)
@ IN NS localhost.
1 IN PTR localhost
检测配置是否有问题: named-checkconf
检测正解析: named-checkzone "localhost" /var/named/localhost.zone
检测反解析: named-checkzone "0.0.127.in-addr.arpa" /var/named/named.local
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 -x 127.0.0.1
2. 增加一个域名(zone)
vim /etc/named.conf //增加
zone "abc.com" IN {
type master;
file "abc.com.zone";
};
zone "137.168.192.in-addr.arpa" IN {
type master;
file "192.168.zone";
};
编辑zone文件: vim /var/named/abc.com.zone//增加
$TTL 600
@ IN SOA abc.com. root.abc.com. (
2013081601
1H
10M
7D
1D
)
IN NS ns.abc.com.
IN MX 10 mail.abc.com.
ns IN A 192.168.0.11
www IN A 192.168.137.73
mail IN A 192.168.137.10
bbs IN CNAME www.abc.com.
编辑反解析文件: vim /var/named/192.168.zone //增加
$TTL 600
@ IN SOA ns.abc.com. root.abc.com. (
2013081601
1H
10M
7D
1D
)
@ IN NS ns.abc.com.
10 IN PTR ns.abc.com.
11 IN PTR mail.abc.com.
73 IN PTR www.abc.com.
分别检测两个配置文件是否有问题:
named-checkzone "abc.com" abc.com.zone
named-checkzone "137.168.192.in-addr.arpa" 192.168.zone
重启named服务
测试 dig @127.0.0.1 www.abc.com
dig @127.0.0.1 -x 192.168.137.11
vi /etc/resolv.conf //修改为自己机器的DNS的IP
3. 配置DNS转发
我们配置的DNS是只能解析我们定义的zone的,我们没有定义的是不能解析的。
配置DNS转发就可以解析其他互联网上的域名了,前提是这个域名在互联网中的确在使用,也就是说这个域名已经被某个DNS服务器解析了。
vim /etc/named.conf //在options{} 里面增加
forward first;
forwarders { 8.8.8.8; };
这两行就是用来配置转发的,该DNS服务器不能解析的域名会转发到8.8.8.8这个DNS服务器上去解析。
4. 配置主从
在从服务器上 yum install -y bind
拷贝主上的配置文件到从上,其中有/etc/named.conf, /var/named/localhost.zone, /var/named/named.local
拷贝过来后,修改一下从的/etc/named.conf 内容参考:
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
zone "abc.com" IN {
type slave;
file "slaves/abc.com.zone";
masters { 192.168.0.11; };
};
zone "137.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.zone";
masters { 192.168.0.11; };
};
从上生成rndc.key: rndc-confgen -r /dev/urandom -a
chown named:named /etc/rndc.key
从上启动named: /etc/init.d/named start
启动成功后会在 /var/named/下生成一个slaves目录,这个目录下会有192.168.zone, abc.com.zone这两个文件,内容是和主上的一样的
在从上测试: dig @127.0.0.1 www.abc.com
5. 测试主从同步
在主dns上更改文件 /var/named/abc.com.zone // 在最后增加一行:
123 IN A 1.1.1.1
另外需要修改一下第三行的那个数字串,这个是用来做标记的,只有这个数字变化了,才可以让从自动跟着变,数字只能是变大,不能减小,2013081601 -> 2013081602
重启主namd服务: /etc/init.d/named restart
经测试我们发现一个问题,就是从经常会同步特别慢,这是很要命的。所以需要我们做一个特殊操作,在主上的/etc/named.conf中,abc.com的zone中增加两行:
notify yes;
also-notify { 192.168.0.12; };
注意:不要手动去改从的配置
下面的知识点请自行配置学习
再配置一个域名(zone)
bind配置视图(view) http://wubinary.blog.51cto.com/8570032/1378363
使用mydns搭建DNS服务器 http://www.aminglinux.com/bbs/thread-186-1-1.html
使用dnsmasq配置dns缓存 http://www.aminglinux.com/bbs/thread-5284-1-1.html
理解dns的递归和迭代查询 http://jeffyyko.blog.51cto.com/28563/215293 http://jeffyyko.blog.51cto.com/28563/216962
安装dig工具
yum install bind-utils
根据域名解析ip
dig www.aminglinux.com
指定DNS的ip,也可以获取到 www.aminglinux.com这个域名的ip
正解析
dig @8.8.8.8 www.aminglinux.com
反解析
dig @8.8.8.8 -x 183.26.39.112
6.DHCP
安装dhcp,会顺便安装dhclient包
yum install dhcp
vi /etc/dhcp/dhcpd.conf
cat /usr/share/doc/dhcp-4.1.1/dhcp.conf.sample
TCP 546=DHCP Client
TCP 547=DHCP Server
从dhcp服务器192.168.1.120上获取动态ip
dhclient -s 192.168.1.120
查看网关和/etc/resolv.conf 网关是否为dhcp服务器的ip地址
route -n
扩展阅读
各种域名解析记录
NS记录:用来解析你的主机IP的DNS服务器,解析域名的DNS服务器在哪里,就是你的DNS server
A记录:像hosts文件 指定各个服务器的ip www服务器的ip,mail服务器的ip,bbs服务器的ip,hosts文件里面的记录就是A记录
CNAME记录:我一个变大家跟着我变,不用一个一个改A记录 cname转发,原来是abc.com 我现在改为bcd.com 只需要修改cname记录,当网站IP更改的时候,一个网站多个子域名下可以只修改一条记录
MX记录:邮件
定义NS记录,NS记录又对应一个A记录
不停转发
有用cdn和无用cdn的区别,一个域名由多个DNS服务器来解析
mydns使用mysql,好处是:不用授权给php或者shell修改配置文件,不安全,用mysql的话,授权用户修改数据库里的数据比较安全,php更改mysql
DNS的动态更新
/usr/bin/nsupdate
bind-utils-9.8.2-0.30.rc1.el6.x86_64软件包
rpm -ql bind-utils
/usr/bin/dig dig命令
/usr/bin/host host命令
/usr/bin/nslookup nslookup命令
/usr/bin/nsupdate nsupdate命令
/usr/share/man/man1/dig.1.gz
/usr/share/man/man1/host.1.gz
/usr/share/man/man1/nslookup.1.gz
/usr/share/man/man1/nsupdate.1.gz
更新DNS的key
/usr/sbin/dnssec-keygen
rpm -ql bind
/etc/NetworkManager/dispatcher.d/13-named
/etc/logrotate.d/named
/etc/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/portreserve/named
/etc/rc.d/init.d/named
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/usr/lib64/bind
/usr/sbin/arpaname
/usr/sbin/ddns-confgen
/usr/sbin/dnssec-dsfromkey
/usr/sbin/dnssec-keyfromlabel
/usr/sbin/dnssec-keygen
/usr/sbin/dnssec-revoke
/usr/sbin/dnssec-settime
/usr/sbin/dnssec-signzone
/usr/sbin/genrandom
/usr/sbin/isc-hmac-fixup
/usr/sbin/lwresd
/usr/sbin/named
/usr/sbin/named-checkconf
/usr/sbin/named-checkzone
/usr/sbin/named-compilezone
/usr/sbin/named-journalprint
/usr/sbin/nsec3hash
/usr/sbin/rndc
/usr/sbin/rndc-confgen
ddns
生成key,用于更新记录用
dnssec-keygen -a HMAC-MD5 -b -n HOST -r /dev/urandom example.com
key "example.com" {
algorithm hmac-md5;
secret "buOYR0tx86iNapPXiv5CjBjL+AUozuFYZGm7/2fLjUmWD48YschVw3Re Bm0y6ae1yDofqtrh+JZ67n+Y+s2e2Q==";
};
allow-update { key "example.com"; };
nsupdate
cat update.txt
server 127.0.0.1
debug yes
zone example.com.
update delete s.db.example.com. A
update add s.db.example.com. A 192.168.1.105
update add s.db.example.com. A 172.16.1.101
update add s.db.example.com. A 127.0.0.1
show
send
动态更新dns记录:
nsupdate -k Kexample.com.++.key update.txt
f
centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课的更多相关文章
-
风炫安全web安全学习第三十节课 命令执行&;代码执行基础
风炫安全web安全学习第三十节课 命令执行&代码执行基础 代码执行&命令执行 RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. 远程系统命令执行 ...
-
php第三十节课
文件操作 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
-
centos 邮件服务 腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25 收邮件协议:pop3 端口110 iredmail安装配置 使用邮箱系统 第三十一节课
centos 邮件服务 腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25 收邮件协议:pop3 端口110 iredmail安装配置 ...
-
什么是域名的TTL值? ——一条域名解析记录在DNS缓存服务器中的存留时间
什么是域名的TTL值? 转自:http://hizip.net/index.php/archives/20/TTL(Time-To-Live),就是一条域名解析记录在DNS服务器中的存留时间.当各地的 ...
-
centos 系统软件包管理 yum 本地yum配置 扩展源epel rpm 清除yum缓存 yum provides ";*/vim"; 第十节课
centos 系统软件包管理 yum 本地yum配置 扩展源epel rpm 清除yum缓存 yum provides "*/vim" 第十节课 你不能保证可逆化操 ...
-
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobacku ...
-
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
-
centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课
centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 ...
-
风炫安全WEB安全学习第二十节课 反射型XSS讲解
风炫安全WEB安全学习第二十节课 反射型XSS讲解 反射性xss演示 原理讲解 如果一个应用程序使用动态页面向用户显示错误消息,就会造成一种常见的XSS漏洞.通常,该页面会使用一个包含消息文本的参数, ...
随机推荐
-
Bootstrap Navbar应用及源码解析
目的: 用Bootstrap Navbar component 实现一个响应式导航 理解Bootstrap Navbar component是如何工作的(不包括collepse.js) 清楚自己添加一 ...
-
Servlet 的认识
Servlet的响应过程:1,web 客户端向 Servlet容器发出http请求2,Servlet容器接收 客户端发来的请求3,创建一个 HttpRequest对象,将客户端发来的请求信息封装到这个 ...
-
远程登录 - telnet、mstsc等工具的使用及遇到的问题
刚开始是看到老师在用mstsc远程登录oj服务器桌面对“远程登录”一系列的方法开始感兴趣.下面是我的学习笔记及遇到的一些问题的整理. Mstsc - 百度百科:http://baike.baidu.c ...
-
WordPress博客教程:博客赚钱
稍有关注独立博客的人都应该知道,中文博客实现盈利非常艰难,至少对于大部分中文博客来说是这样的.但很多时候我们不得不往赚钱的方向前进,至少要交得起域名和空间的租用费吧.不过期待赚钱前,你必须思考下如何提 ...
-
java 环境变量设置
JAVA_HOME C:\Program Files\Java\jdk1.7.0 PATH %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; CLASSPATH .;%JAV ...
-
制作LiveCD
1) 需要的工具Redhat9.0.VMware虚拟机,选择用grub作loader 2) 制作ramdisk A) cd /usr/local && mk ...
-
mysql varchar vs oracle varchar2
1.错误提示: mysql的Data truncation: Data too long for column 'path' at row 1 错误原因: 1.字段过长而导致出错的, 2. 可能是因为 ...
-
mysql My SQL获取某个表的列名
My SQL获取某个表的列名 DESC TableName SHOW COLUMNS FROM TableName SELECT COLUMN_NAME FROM information_schem ...
-
mysql表结构的查询与修改
MariaDB [test]> show create table bp \G; #查看bp表结构,id长度为20 *************************** 1. row **** ...
-
20155212 实验二 Java面向对象程序设计
20155212 实验二 Java面向对象程序设计 单元测试 三种代码 用编程去解决问题,必须学会写三种码: 伪代码 产品代码 测试代码 例: MyUtil 类解决一个百分制成绩转成"优.良 ...