您的位置:首页 > 理论基础 > 计算机网络

dns在企业网络中的应用

2014-10-28 16:40 435 查看
主辅dns服务器:

辅dns服务器能够自动备份主dns服务器的数据,当主dns服务器损坏时,辅dns服务器进行工作。实验步骤:[root@wang ~]# mkdir /media/cdrom 安装所需要的dns包[root@wang ~]# mount /dev/cdrom /media/cdrom[root@wang ~]# yum --disablerepo=\* --enablerepo=c6-media install bind bind-chroot bind-utils -y[root@wang ~]# cd /var/named/chroot/etc/[root@wang etc]# service named start 开启dns服务器[root@wang etc]# vim named.conf 编辑配置文件options { listen-on port 53 { any; }; 改为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; }; 改为any forwarders { 192.168.2.100; }; recursion yes;[root@wang etc]# vim named.rfc1912.zones 编辑区域配置文件zone "abc.com" IN { type master; file "abc.com.zone"; allow-update { none; };}; //增加此区域[root@wang etc]# cd ../var/named/ 切换目录[root@wang named]# cp -p named.localhost abc.com.zone 拷贝一个区域文件进行修改[root@wang named]# vim abc.com.zone$TTL 1D@ IN SOA ns.abc.com. rname.invalid. ( 1 ; serial 2M ; refresh//每隔2分钟同步一次(实验需要) 1M ; retry //每隔1分钟重试一次 1W ; expire 3H ) ; minimum@ IN NS ns.abc.com.ns IN A 192.168.2.50www IN A 1.1.1.1ftp IN A 2.2.2.2[root@wang named]# service iptables stop 关闭防火墙[root@wang named]# setenforce 0 设置访问策略再打开一台centos,做辅dns服务器[root@wang ~]# mkdir /media/cdrom 安装所需要的dns包[root@wang ~]# mount /dev/cdrom /media/cdrom[root@wang ~]# yum --disablerepo=\* --enablerepo=c6-media install bind bind-chroot bind-utils -y[root@wang ~]# cd /var/named/chroot/etc/[root@wang etc]# service named start 开启dns服务器[root@station21 etc]# vim named.rfc1912.zones 编辑区域配置文件 zone "abc.com" IN { type slave; 26 masters { 192.168.2.50; }; file "slaves/abc.com.zone"; }; //添加此配置参数 [root@station21 etc]# rndc reload 更新配置[root@station21 ~]# tail -f /var/log/messages 查看日志,传输成功Aug 16 23:40:01 station21 named[1492]: zone abc.com/IN: transferred serial 1Aug 16 23:40:01 station21 named[1492]: transfer of 'abc.com/IN' from 192.168.2.50#53: Transfer completed: 1 messages, 6 records, 183 bytes, 0.002 secs (91500 bytes/sec)[root@station21 etc]# cd ../var/named/[root@station21 named]# cd slaves/[root@station21 slaves]# lltotal 4-rw-r--r-- 1 named named 331 Aug 16 23:40 abc.com.zone 找到区域文件主服务器更新dns地址信息。[root@wang named]# vim abc.com.zone

[root@wang named]# rndc reload辅dns服务器同步成功Aug 16 23:53:18 station21 named[1492]: zone abc.com/IN: Transfer started.Aug 16 23:53:18 station21 named[1492]: transfer of 'abc.com/IN' from 192.168.2.50#53: connected using 192.168.2.100#54422Aug 16 23:53:18 station21 named[1492]: zone abc.com/IN: transferred serial 2Aug 16 23:53:18 station21 named[1492]: transfer of 'abc.com/IN' from 192.168.2.50#53: Transfer completed: 1 messages, 7 records, 204 bytes, 0.002 secs (102000 bytes/sec)Dns授权与转发2台dns服务器在不同的地区,一台是父域dns服务器,另一台是子域dns服务器,父域dns服务器授权给子域dns服务器进行服务和转发实验拓扑:

实验步骤:父域用windowserver2003进行配置:控制面板→添加和删除程序→网络服务→域名系统,确定进行安装然后打开dns

右键正向查找区域,新建区域下一步

下一步

输入区域名称为abc.com

下一步,再下一步

完成

右键abc.com 属性改起事授权机构为:

设置名称服务器

再右键abc.com 新建域(创建子域)

创建bj子域在父域当中添加a记录 右键abc.com 新建主机

右键bj子域,新建主机

右键abc.com 新建委派

委派sh.abc.com 域

输入委派信息

下一步 , 完成 sh子域用centos进行配置[root@wang ~]# cd /var/named/chroot/etc[root@wang etc]# service named start 开启dns服务器[root@wang etc]# vim named.conf 编辑配置文档options { listen-on port 53 { any; }; //改为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; }; //改为any forwarders { 192.168.2.100; }; //查找不到dns将进行转发的ip recursion yes;[root@wang etc]# vim named.rfc1912.zones 编辑区域声明文件zone "sh.abc.com" IN { type master; file "sh.abc.com.zone"; allow-update { none; }; //新增此条目[root@wang etc]# cd /var/named/chroot/var/named/ 进入目录[root@wang named]# cp -p named.localhost sh.abc.com.zone 拷贝区域文件以供修改[root@wang named]# vim sh.abc.com.zone 编辑区域文件$TTL 1D@ IN SOA ns.sh.abc.com. rname.invalid. ( 1 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum@ IN NS ns.sh.abc.com.ns IN A 192.168.2.50www IN A 3.3.3.3[root@wang named]# named-checkconf /var/named/chroot/etc/named.conf 检查主配置文档是否有问题[root@wang named]#named-checkzonesh.abc.com.zone /var/named/chroot/var/named/sh.abc.com.zone 检查区域文件配置是否正确测试机:打开一台window sever2003 做测试机先将dns改为192.168.2.100 。

www.abc.com 域名解析成功

www.bj.abc.com 域名解析成功

www.sh.abc.com 解析成功然后将测试机的指向设置为192.168.2.50

www.sh.abc.com解析成功 其他的也解析成功



智能dns(视图的使用)拓扑图:

实验目的:内网的用户用内部dns访问www.abc.com 外网的用户将dns指向192.168.20.1经过dnat转换用域名访问内网的的web服务器实验步骤:DNS服务器:[root@wang ~]# mkdir /media/cdrom 安装所需要的dns包[root@wang ~]# mount /dev/cdrom /media/cdrom[root@wang ~]# yum --disablerepo=\* --enablerepo=c6-media install bind bind-chroot bind-utils -y[root@wang ~]# cd /var/named/chroot/etc/[root@wang etc]# service named start 开启dns服务器[root@wang etc]# vim named.conf 编辑dns服务器的配置文档options { listen-on port 53 { any; }; //将127.0.0.1 改为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; }; //将127.0.0.1 改为any forwarders { 192.168.2.100; }; recursion yes;[root@wang etc]# cd /usr/share/doc/bind-9.8.2/sample/etc //进入样例文件夹查看样例文件


[root@wang etc]# vim named.conf 根据样例编辑配置文件acl lan-user { //内网用户使用 192.168.2.0/24;};acl wan-user { //外网用户使用 any;}; //添加视图访问列表view "lan-view"{ match-clients { lan-user; }; recursion yes; zone "." IN { type hint; file "named.ca";}; include "/etc/named.rfc1912.zones";};view "wan-view" //添加一个wan视图(外网用户使用){ match-clients { wan-user; }; zone "." IN { type hint; file "named.ca"; }; zone "abc.com" IN { type master; file "abc.com.wan";};}; [root@wang etc]# vim named.rfc1912.zones 写入区域zone "abc.com" IN { type master; file "abc.com.lan"; allow-update { none; };}; //添加一个区域即可(模拟访问的是abc.com区域)[root@wang etc]# cd ../var/named/ //进入区域文件目录[root@wang named]# cp -p named.localhost abc.com.lan 复制区域文件(新做区域文件,复制其他的修改更方便)[root@wang named]# vim abc.com.lan 编辑此区域文件$TTL 1D@ IN SOA ns.abc.com. rname.invalid. ( 1 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum@ IN NS ns.abc.com.ns IN A 192.168.2.50www IN A 192.168.2.100改为如此即可[root@wang named]# cp -p abc.com.lan abc.com.wan 再拷贝个wan区域进行编辑[root@wang named]# vim abc.com.wan $TTL 1D@ IN SOA ns.abc.com. rname.invalid. ( 1 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum@ IN NS ns.abc.com.ns IN A 192.168.2.50www IN A 192.168.20.1这里将www.abc.com的域名[root@wang named]# rndc reload dns服务器进行更新server reload successfulWeb服务器:用windowserver 2003 做web服务器到控制面板

添加和删除程序然后添加和删除windows组件

找打应用服务器,前面不打勾进去

找到iis打勾确定,等待安装完成(需要有安装光盘的镜像)然后建个小html文件测试使用

如图所示打开iis服务管理器,网站→默认站点→属性将主目录更改为刚才网页文件放的目录

将默认文档设置为index.html然后可以浏览测试下防火墙配置(用centos替代) 再打开一台centos虚拟机,添加2块网卡,一块是仅主机,一块桥接[root@station21 ~]# ifconfig eth0 192.168.2.1 仅主机网卡地址[root@station21 ~]# ifconfig eth1 192.168.20.1 桥接网卡地址[root@station21 ~]# vim /etc/sysctl.conf 打开数据包转发能力

将其改为1然后将web服务器和dns服务器的网关全部设置为192.168.2.1[root@station21 ~]# iptables -t nat -A PREROUTING -d 192.168.20.1 -p udp --dport 53 -i eth1 -j DNAT --to 192.168.101 做dns的DNAT[root@station21 ~]# iptables -t nat -A PREROUTING -d 192.168.20.1 -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.2.100 web的DNAT进行测试:再打开一台虚拟机,将dns设置为192.168.20.1 ip地址设置为192.168.20.0网段(外网),桥接模式

然后访问www.abc.com

然后将ip地址设置为内网,dns设置为192.168.2.50,仅主机模式

访问www.abc.com

实验成功DLZ对视图的实现是bind的一种补丁,目的是将bind与mysql结合在一起使用

[root@wang ~]# mkdir /media/cdrom [root@wang ~]# mount /dev/cdrom /media/cdrom[root@wang ~]# yum --disablerepo=\* --enablerepo=c6-media groupinstall "Development tools" "Server Platform Development" -y 安装需要的开发工具包来安装mysqlmysql-5.5.15-linux2.6-i686.tar.gz 需要下载mysql软件包进行安装bind-9.8.6-P1.tar.gz 需要bind源码包[root@wang ~]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/ 拆解mysql[root@wang ~]# rpm -qa |grep mysql 在安装之前查看是否安装有mysql包,有的话请卸载掉[root@wang ~]# cd /usr/local/ 切换目录[root@wang local]# ln -s mysql-5.5.15-linux2.6-i686 mysql 将目标文件夹做个短链接[root@wang local]# cd mysql 切换mysql目录[root@wang mysql]# vim INSTALL-BINARY 查看帮助文档进行安装 shell> useradd -r -g mysql mysql 80 shell> cd /usr/local 81 shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz 82 shell> ln -s full-path-to-mysql-VERSION-OS mysql 83 shell> cd mysql 84 shell> chown -R mysql . 85 shell> chgrp -R mysql . 86 shell> scripts/mysql_install_db --user=mysql 87 shell> chown -R root . 88 shell> chown -R mysql data[root@wang ~]# groupadd mysql 添加mysql组[root@wang ~]# useradd -r -g mysql mysql 添加系统账号mysql组为mysql[root@wang mysql]# setenforce 0 在继续下一步之前最好关闭selinux[root@wang mysql]# service iptables stop 关闭防火墙[root@wang mysql]# chown -R mysql:mysql . 改变当前所有用户组均为mysql[root@wang mysql]# scripts/mysql_install_db --user=mysql 对mysql数据库的data文件夹里的文件进行初始化

如果提示少了一个库文件,请安装相应的库文件[root@wang mysql]# ll /media/cdrom/Packages/ |grep libaio-r--r--r--. 3 root root 21616 Jul 3 2011 libaio-0.3.107-10.el6.i686.rpm-r--r--r--. 2 root root 13524 Jul 3 2011 libaio-devel-0.3.107-10.el6.i686.rpm 查找一下有2个包,安装上去[root@wang mysql]# yum --disablerepo=\* --enablerepo=c6-media install libaio* -y 安装[root@wang mysql]# scripts/mysql_install_db --user=mysql 重新执行[root@wang mysql]# ll data/mysql/ 查看下已经有了数据[root@wang mysql]# chown -R root . 将当前所有对象所有者改为管理员[root@wang mysql]# chown -R mysql data/ 将data的所有者改为mysql[root@wang mysql]# cd support-files/ [root@wang support-files]# ll

my-large.cnf 针对内存大的环境 my-small.cnf针对内存小的环境my-medium.cnf 针对2g左右的内存[root@wang support-files]# cp my-medium.cnf /etc/my.cnf 将文件拷贝过去[root@wang support-files]# cp mysql.server /etc/init.d/mysqld 将启动文件也拷贝过去[root@wang support-files]# chmod a+x /etc/init.d/mysqld 将文件权限改为可执行[root@wang support-files]# service mysqld start 开启mysql[root@wang support-files]# chkconfig --add mysqld[root@wang support-files]# chkconfig mysqld on 加入到开机启动项[root@wang support-files]# netstat -tupln |grep mysqldtcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2717/mysqld 查看端口,已经启动[root@wang mysql]# vim /etc/profile 编辑path目录PATH=$PATH:/usr/local/mysql/bin 新加入path路径[root@wang mysql]# . /etc/profile 重新读取profile文件[root@wang mysql]# mysql 访问mysql数据库mysql> show databases; 查看数据库表[root@wang mysql]# mysqladmin -u root -p password '123' 给数据库添加管理员口令[root@wang mysql]# mysql -u root -p 用口令登入mysql> show databases;mysql> use mysql; mysql> show tables;mysql> desc user;mysql> select user,host,password from user;

查看到密码添加成功mysql> \q 退出mysql

创建mydata数据库表格mysql> use mydata; 选中数据库mysql>create table lan_dns_records (zone varchar (255),host varchar (255),type varchar (255),data varchar (255),ttl int(11),mx_priority varchar (255),refresh int(11),retry int(11),expire int(11),minimum int(11),serial bigint(20),resp_person varchar (255),primary_ns varchar (255)); 创建内部用户的表格mysql> create table wan_dns_records ( zone varchar (255), host varchar (255), type varchar (255), data varchar (255), ttl int(11), mx_priority varchar (255), refresh int(11), retry int(11), expire int(11), minimum int(11), serial bigint(20), resp_person varchar (255), primary_ns varchar (255) );创建外部用户的dns表格 mysql> show tables;+------------------+| Tables_in_mydata |+------------------+| lan_dns_records || wan_dns_records |+------------------+ 出现了2张表mysql> desc lan_dns_records; 进入lan表查看mysql> \qBye[root@wang mysql]# cd[root@wang ~]# ll 回到系统,切换到管理员家目录[root@wang ~]# cd /usr/local/mysql[root@wang mysql]# vim /etc/ld.so.conf.d/mysql.conf 编辑一个库配置文件/usr/local/mysql/lib 添加lib文件路径[root@wang mysql]# ldconfig 刷新库配置文件[root@wang mysql]# cd /usr/include/ 切换到include目录[root@wang include]# ln -s /usr/local/mysql/include/ mysql 对include文件做个链接[root@wang ~]# tar -zxvf bind-9.8.6-P1.tar.gz -C /usr/local/src/ 解压bind包[root@wang ~]# cd /usr/local/src/bind-9.8.6-P1/ 切换到解压的目录[root@wang bind-9.8.6-P1]# ./configure --prefix=/usr/local/bind9 --with-dlz-mysql=/usr/local/mysql --enable-threads=no --disable-openssl-version-check编译bind[root@wang bind-9.8.6-P1]# make && make install 安装[root@wang bind-9.8.6-P1]# cd /usr/local/bind9/ 切换至bind9目录[root@wang bind9]# vim /etc/profile 编辑profile文件PATH=$PATH:/usr/local/mysql/bin:/usr/local/bind9/bin:/usr/local/bind9/sbin 添加path目录(在刚才添加的基础上)[root@wang bind9]# . /etc/profile 更新库配置文件在本地终端配置([root@wang ~]# cd /usr/local/bind9/etc/[root@wang ~]# rndc-confgen -a 生成钥匙文件将会产生一个钥匙文件[root@wang bind9]# cd etc/[root@wang etc]# rndc-confgen >>named.conf 将文件输出重定向named.conf[root@wang etc]# cat rndc.key >>named.conf 将密钥导入到named.conf文件中[root@wang etc]# vim named.conf 编辑配置文件删除之前的密钥信息,除了新的密钥配置,其他修改为acl "lan-user" {192.168.2.0/24;};acl "wan-user" {any;};recursion no;version "gaint-d1";allow-query-cache { any; };};view "lan-view" {match-clients {lan-user;};dlz "Mysql zone" {database "mysql{host=127.0.0.1 dbname=mydata ssl=false user=root pass=123}{select zone from lan_dns_records where zone='$zone$'}else data end from lan_dns_records where zone='$zone$' and host='$record$'}";};}; view "wan-view" {match-clients {wan-user;};dlz "Mysql zone" {database "mysql{host=127.0.0.1 dbname=mydata ssl=false user=root pass=123}{select zone from wan_dns_records where zone ='$zone$'}{select ttl, type, mx_priority, case when lower(type)='txt' then concat('\"', data, '\"')when lower(type) = 'soa' then concat_ws(' ', data, resp_person, serial, refresh, retry, expire, minimum)else data end from wan_dns_records where zone='$zone$' and host='$record$'}";};};controls {inet 127.0.0.1 port 953allow { 127.0.0.1; } keys { "rndc-key"; };};[root@wang etc]# named-checkconf /usr/local/bind9/etc/named.conf 检查配置文件是否正确[root@wang etc]# /usr/local/bind9/sbin/named -g -d 1 -c /usr/local/bind9/etc/named.conf 打开named服务[root@wang ~]# mysql -u root -pEnter password: 进入mysqlmysql> use mydata;mysql> insert into lan_dns_records (zone,host,type,data,ttl,retry) values ('abc.com','www','A','192.168.2.100','86400','15');Query OK, 1 row affected (0.10 sec) 插入内部用户的表格mysql> select * from lan_dns_records \G 查看添加的表格mysql> insert into wan_dns_records (zone,host,type,data,ttl,retry) values ('abc.com','www','A','192.168.20.1','86400','15'); 插入外部用户的表格[root@wang ~]# dig www.abc.com @192.168.2.50DLV配置完成。然后设置下该机器的网关[root@wang ~]# dig www.abc.com @192.168.2.50 测试

[root@wang ~]# dig www.abc.com @127.0.0.1

都能得到dns地址Web服务器:用windowserver 2003 做web服务器到控制面板

添加和删除程序然后添加和删除windows组件

找打应用服务器,前面不打勾进去

找到iis打勾确定,等待安装完成(需要有安装光盘的镜像)然后建个小html文件测试使用

如图所示打开iis服务管理器,网站→默认站点→属性将主目录更改为刚才网页文件放的目录

将默认文档设置为index.html然后可以浏览测试下防火墙配置(用centos替代) 再打开一台centos虚拟机,添加2块网卡,一块是仅主机,一块桥接[root@station21 ~]# ifconfig eth0 192.168.2.1 仅主机网卡地址[root@station21 ~]# ifconfig eth1 192.168.20.1 桥接网卡地址[root@station21 ~]# vim /etc/sysctl.conf 打开数据包转发能力

将其改为1然后将web服务器和dns服务器的网关全部设置为192.168.2.1[root@station21 ~]# iptables -t nat -A PREROUTING -d 192.168.20.1 -p udp --dport 53 -i eth1 -j DNAT --to 192.168.101 做dns的DNAT[root@station21 ~]# iptables -t nat -A PREROUTING -d 192.168.20.1 -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.2.100 web的DNAT进行测试:再打开一台虚拟机,将dns设置为192.168.20.1 ip地址设置为192.168.20.0网段(外网),桥接模式

然后访问www.abc.com

然后将ip地址设置为内网,dns设置为192.168.2.50,仅主机模式

访问www.abc.com

Dns轮询实现负载均衡。回复dns服务器为不同的回答。[root@wang ~]# mkdir /media/cdrom 安装所需要的dns包[root@wang ~]# mount /dev/cdrom /media/cdrom[root@wang ~]# yum --disablerepo=\* --enablerepo=c6-media install bind bind-chroot bind-utils -y[root@wang ~]# cd /var/named/chroot/etc/[root@wang etc]# service named start 开启dns服务器[root@wang etc]# vim named.conf 编辑配置文件options { listen-on port 53 { any; }; 改为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;[root@wang etc]# vim named.rfc1912.zoneszone "abc.com" IN { type master; file "abc.com.zone"; allow-update { none; };}; 加入此内容[root@wang named]# cp -p named.localhost abc.com.zone 复制区域[root@wang named]# vim abc.com.zone 编辑区域$TTL 1D@ IN SOA ns.abc.com. rname.invalid. ( 1 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum@ IN NS ns.abc.com.ns IN A 192.168.2.50www IN A 1.1.1.1www IN A 2.2.2.2~ 将www.abc.com 编辑为2个dns地址[root@wang named]# rndc reload测试2台虚拟机,每台都查询dns第一台虚拟你解析为1.1.1.1

第一台虚拟你解析为2.2.2.2

实现了轮询的结果

本文出自 “你猜我是谁” 博客,请务必保留此出处http://whhhj.blog.51cto.com/9289395/1568900
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: