主輔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.50
www IN A 1.1.1.1
ftp 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 1
Aug 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]# ll
total 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#54422
Aug 16 23:53:18 station21 named[1492]: zone abc.com/IN: transferred serial 2
Aug 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.50
www 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.50
www 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.50
www IN A 192.168.20.1
這裏將www.abc.com的域名
[root@wang named]# rndc reload dns服務器進行更新
server reload successful
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
實驗成功
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 安裝需要的開發工具包來安裝mysql
mysql-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 mysqld
tcp 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> \q
Bye
[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 953
allow { 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 -p
Enter password: 進入mysql
mysql> 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.50
DLV配置完成。然後設置下該機器的網關
[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.zones
zone "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.50
www IN A 1.1.1.1
www 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
實現了輪詢的結果