其他分享
首页 > 其他分享> > 第九周

第九周

作者:互联网

1、简述DNS服务器原理,并搭建主-辅服务器。

 

 

DNS
DNS(Domain Name Service的缩写)的作用就是根据域名查出IP地址。IP地址是由32位二进制数字组成,人们很难记住这些IP,相反,大家愿意使用比较容易记忆的主机名字。而电脑在处理IP数据报文时,是使用IP地址的,因为它是固定长度。

DNS查询类型
递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后, 若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结
果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对
方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起
进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需
要发起多次查询。

现在互联网规模很大,DNS被设计成一个分布式的数据库系统,他分布的功能就是把一个大的数据库切割成很多小的数据库,来分别提供一部分数据的处理。全球一共分布了13台DNS根服务器,10个在美国,1个荷兰,1个瑞典,1个日本。

 

搭建主-辅服务器

主DNS服务端配置

yum install bind -y
vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#只允许从服务器进行区域传输
allow-transfer { 从服务器IP;};
vim /etc/named.rfc1912.zones
#加上这段
zone "magedu.org" {
type master;
file "magedu.org.zone";
};
cp -p /var/named/named.localhost /var/named/magedu.org.zone
#如果没有-p,需要改权限。chgrp named magedu.org.zone
vim /var/named/magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
NS slave

master A 10.0.0.8

slave A 10.0.0.18

rndc reload

从DNS服务器配置

yum install bind -y
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#不允许其它主机进行区域传输
allow-transfer { none;};
vim /etc/named.rfc1912.zones
zone "magedu.org" {
type slave;
masters { 主服务器IP;};
file "slaves/magedu.org.slave";
};
rndc reload

2、搭建并实现智能DNS

主DNS服务器端配置文件实现view

yum -y install bind
vim /etc/name.conf
#在文件最前面加下面行
acl beijingnet {
10.0.0.0/24;
};
acl shanghainet {
172.16.0.0/16;
};
acl othernet {
any;
};

注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };

#其他略

#创建view
view beijingview {
match-clients { beijingnet; };
include "/etc/named.rfc1912.zones.beijing";
};
view shanghaiview {
match-clients { shanghainet; };
include "/etc/named.rfc1912.zones.shanghai";
};
view otherview {
macth-clients { othernet; };
include "/etc/named.rfc1912.zones.other";
};
include "/etc/named.root.key";

实现区域配置文件

vim /etc/named.rfc1912.zones.beijing
zone "." IN {
type hint;
file "name.ca";
};
zone "kobe.local" IN {
type master;
file "kobe.local.zone.beijing";
};

vim /etc/named.rfc1912.zones.shanghai
zone "." IN {
type hint;
file "named.ca";
};
zone "kobe.local" IN {
type master;
file "kobe.local.zone.shanghai";
};

vim /etc/named.rfc1912.zones.other
zone "." IN {
type hint;
file "named.ca";
};
zone "kobe.local" {
type master;
file "kobe.local.zone.other";
};

chgrp named /etc/named.rfc1912.zones.beijing
chgrp named /etc/named.rfc1912.zones.shanghai
chgrp named /etc/named.rfc1912.zones.other

创建区域数据文件

vim /var/named/kobe.local.zone.beijing
$TTL 1D
@ IN SOA master admin.kobe.local. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 10.0.0.8
websrv A 10.0.0.7
www CNAME websrv

vim /var/named/kobe.local.zone.shanghai
$TTL 1D
@ IN SOA master admin.kobe.local. (
1
1D
1H
1W
3H )
NS master
master A 10.0.0.8
websrv A 172.16.0.7
www CNAME websrv

vim /etc/named/kobe.local.zone.other
$TTL 1D
@ IN SOA master admin.kobe.local. (
1
1D
1H
1W
3H )
NS master
master A 10.0.0.8
websrv A 127.0.0.1
www CNAME websrv

chgrp named /var/named/kobe.local.zone.beijing
chgrp named /var/named/kobe.local.zone.shanghai
chgrp named /var/namde/kobe.local.zone.other

systemctl start named
rndc reload

 实现位于不同区域的三个WEB服务器

#分别在三台主机上安装http服务
#在web服务器1:10.0.0.8/24实现
yum -y install httpd
echo www.kobe.local in other > /var/www/html/index.html
systemctl start httpd
#在web服务器2:10.0.0.7/16
echo www.kobe.local in beijing > /var/www/html/index.html
systemctl start httpd
#在web服务器3:172.16.0.7/16
yum -y install httpd
echo www.kobe.local in shanghai > /var/www/html/index.html
systemctl start httpd

客户端测试

#分别在三台主机上访问
#DNS客户端1:10.0.0.6/24 实现,确保DNS指向10.0.0.8
curl www.kobe.local
www.kobe.local in beijing
#DNS客户端2:172.16.0.6/16 实现,确保DNS指向172.16.0.8
curl www.kobe.local
www.kobe.local in shanghai
#DNS客户端3:10.0.0.8 实现,确保DNS指向127.0.0.1
curl www.kobe.local
www.kobe.local in other

 

3、使用iptable实现: 放行ssh,telnet, ftp, web服务80端口,其他端口服务全部拒绝

[root@localhost ~]# iptables -I INPUT -s 10.0.0.8 -p tcp --dport 22 -j ACCEPT

[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dports 20,21,23,80,443 -j ACCEPT

[root@localhost ~]# iptables -A INPUT -j REJECT

[root@localhost ~]# iptables -vnL --line

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

num pkts bytes target prot opt in out source destination

1 275 16076 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

2 0 0 ACCEPT tcp -- * * 10.0.0.8 0.0.0.0/0 tcp dpt:22

3 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 20,21,23,80,443

4 2 333 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

 

4、NAT原理总结

由于网络的飞速发展和网络应用的极速增多,致使IPv4可用地址空间逐渐枯竭。尽管IPv6可以在根本上解决地址枯竭问题,但IPv4发展到IPv6还需要一个过渡,而这便产生了NAT。

NAT的作用
IP地址分为公网IP与私网IP。一般情况下,在互联网中,公网IP可直接访问,私网IP无法直接访问。而NAT则是将私网IP地址转换为公网IP地址(将IP报文头部的私网IP地址改为可以提供访问的公网IP地址),从而实现用户上网功能或服务器在互联网上提供服务。NAT还可以使得一个公网IP代表多个不同的内网IP,这样便节省了IP地址资源。

NAT的类型与分类
SNAT:source NAT ,支持POSTROUTING, INPUT,让本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装,请求报文:修改源IP。
DNAT:destination NAT 支持PREROUTING , OUTPUT,把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射),但隐藏真实IP,请求报文:修改目标IP。
PNAT: port nat,端口和IP都进行修改。

5、iptables实现SNAT和DNAT,并对规则持久保存。

1)启用ip_forward功能
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
2)分别添加防火墙规则测试
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -d !10.0.0.0/24 -j SNAT --to-source 172.18.1.6-172.18.1.9
iptables -t nat -A PREROUTING -d 192.168.0.8 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.7:8080
3)保存规则
iptables-save > /root/iptables_config/config.txt
4)添加自动自动
vim /etc/rc.d/rc.local
添加如下行
/usr/sbin/iptables-restore < /root/iptables_config/config.txt

 

标签:named,0.0,etc,DNS,kobe,第九,local
来源: https://www.cnblogs.com/glc19980204/p/16369503.html