第九周作业

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

   DNS(Domain Name System)服务其实是为了方便实现互联网的访问,将互联网的ip和域名绑定在一起,实现通过域名来寻找ip的目的。
   DNS服务器的基本实现原理是当客户通过域名访问服务器的时候,

1.查询本机中是否有缓存(ip和域名的缓存记录,超过规定时间自动清除。),如果有会直接运用,进行访问。
2.如果本机没有缓存,此时会向本机的/etc/hosts文件中进行查找,如果有就直接解析进而访问。
3.如果本机的/etc/hosts文件中无记录,此刻将向根服务器发起询问,根服务器会进行判断域名的类型,返回对应的下一级域名ip,依次寻找,最终找到权威服务器,权威服务器提供域名对应的IP地址,通过这样分布式的寻找,提升查询的效率。最终客户端获得ip进行访问。
注意:/etc/hosts 和dns服务器的优先级可以进行调整,在/etc/nsswitch.conf 下进行修改
在这里插入图片描述
完整的访问原理图
在这里插入图片描述
搭建DNS主-辅服务器
实验环境:DNS主服务器:10.0.0.8
DNS从服务器:10.0.0.18
web服务器:10.0.0.7
DNS客户端:10.0.0.6

1.在DNS服务端准备:

[root@centos8:~]#
hostnamectl set-hostname master-dns-server;exit
[root@master-dns-server:~]#
yum install bind -y

[root@master-dns-server:~]#
vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#添加只允许从服务器进行区域传输
allow-transfer { 10.0.0.18; };

[root@master-dns-server:~]#
vim /etc/named.rfc1912.zones
#加上下面内容
zone "magedu.org" IN {
	type master;
	file "magedu.org.zone";
};

#第二步:修改DNS数据库区域文件
[root@master-dns-server:~]#
cp -p /var/named/named.localhost /var/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
www         A 10.0.0.7
#第三步检查配置文件和数据库文件格式,并启动服务
[root@master-dns-server:~]#
named-checkconf
[root@master-dns-server:~]#
named-checkzone magedu.org /var/named/magedu.org.zone
zone magedu.org/IN: loaded serial 1
OK
[root@master-dns-server:~]#
systemctl start named   #第一次启动服务
[root@master-dns-server:~]#
rndc reload            #不是第一次启动服务
server reload successful
#修改自身DNS解析地址
[root@master-dns-server:~]#
vim /etc/sysconfig/network-scripts/ifcfg-eth0 
DNS=127.0.0.1
[root@master-dns-server:~]#
nmcli con reload
[root@master-dns-server:~]#
nmcli con up eth0
[root@master-dns-server:~]#
cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 127.0.0.1

2.从服务器DNS服务器配置:

[root@centos8:~]#
hostnamectl set-hostname slave-dns-server;exit
yum -y install bind 
[root@slave-dns-server:~]#
vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#添加不允许其它主机进行区域传输
	allow-transfer { none; };

[root@slave-dns-server:~]#
vim /etc/named.rfc1912.zones
#添加以下内容
zone "magedu.org" {
		type slave;
		masters { 10.0.0.8;};
		file "slaves/magedu.org.slave";
};
#语法检查
[root@slave-dns-server:~]#
named-checkconf

[root@master-dns-server:~]#
systemctl start named   #第一次启动服务
[root@master-dns-server:~]#
rndc reload            #不是第一次启动服务
server reload successful
#检查区域库文件是否生成
[root@slave-dns-server:~]#
ls /var/named/slaves/magedu.org.slave
/var/named/slaves/magedu.org.slave

3.web服务器准备:

[root@centos7:~]#
hostnamectl set-hostname web
[root@web:~]#
yum install httpd
[root@web:~]#
echo www.magedu.org > /var/www/html/index.html
[root@web:~]#
systemctl start httpd


4.客户端实现测试主从DNS服务架构

#修改主机名
[root@centos6:~]#
hostname client;exit
#修改DNS,使用10.0.0.8解析和10.0.0.18解析
[root@client:~]#
vim /etc/sysconfig/network-scripts/ifcfg-eth0
#修改dns为以下内容
DNS1=10.0.0.8
DNS2=10.0.0.18
[root@client:~]#
service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 10.0.0.6 is already in use for device eth0...
                                                           [  OK  ]
[root@client:~]#
cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search localdomain wwzroom.org
nameserver 10.0.0.8
nameserver 10.0.0.18
[root@client:~]#
 #测试网页,能显示就是成功
[root@client:~]#
curl www.magedu.org
www.magedu.org
[root@client:~]#
dig www.magedu.org
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.8 <<>> www.magedu.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46131
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.magedu.org.			IN	A

;; ANSWER SECTION:
www.magedu.org.		86400	IN	A	10.0.0.7

;; AUTHORITY SECTION:
magedu.org.		86400	IN	NS	master.magedu.org.
magedu.org.		86400	IN	NS	slave.magedu.org.

;; ADDITIONAL SECTION:
master.magedu.org.	86400	IN	A	10.0.0.8
slave.magedu.org.	86400	IN	A	10.0.0.18

;; Query time: 0 msec
;; SERVER: 10.0.0.8#53(10.0.0.8) #主服务器解析
;; WHEN: Wed Apr 13 11:23:03 2022
;; MSG SIZE  rcvd: 121

#在主服务器上停止DNS服务
systemctl stop named
[root@client:~]#
dig www.magedu.org
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.8 <<>> www.magedu.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39876
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.magedu.org.			IN	A

;; ANSWER SECTION:
www.magedu.org.		86400	IN	A	10.0.0.7

;; AUTHORITY SECTION:
magedu.org.		86400	IN	NS	master.magedu.org.
magedu.org.		86400	IN	NS	slave.magedu.org.

;; ADDITIONAL SECTION:
master.magedu.org.	86400	IN	A	10.0.0.8
slave.magedu.org.	86400	IN	A	10.0.0.18

;; Query time: 1 msec
;; SERVER: 10.0.0.18#53(10.0.0.18)  #从服务器解析
;; WHEN: Wed Apr 13 11:21:47 2022
;; MSG SIZE  rcvd: 121

2、搭建并实现智能DNS。

实验环境:
2台主机
DNS主服务器:10.0.0.8/24,100.0.0.8/24
客户端:10.0.0.7/24, 100.0.0.7/24
前提准备
关闭SElinux
关闭防火墙
时间同步

 #添加新网址
[root@centos8:~]#
ip a a 100.0.0.8/24 dev eth0
[root@centos8:~]#
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:fa:40:bb brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 100.0.0.8/24 scope global eth0
       valid_lft forever preferred_lft forever
[root@centos8:~]#
vim /etc/named.conf
#在文件最前面加下面行
acl beijingnet {
	10.0.0.0/24;
};
acl shanghainet {
	100.0.0.0/16;
};
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; }; 
# 不允许其他主机进行区域传输
    allow-transfer  { none;};    
# 关闭dnssec功能
    dnssec-enable no;
    dnssec-validation no;
# 剪切掉以下内容
zone "." IN {
    type hint;
    file "named.ca";
};
 
include "/etc/named.rfc1912.zones";
 #添加view
view beijingview {
	match-clients { beijingnet;};
	include "/etc/named.rfc1912.zones.bj";
};
view shanghaiview {
	match-clients { shanghainet;};
	include "/etc/named.rfc1912.zones.sh"; 
}#实现区域文件配置
[root@centos8:~]#
vim /etc/named.rfc1912.zones.bj
#添加以下内容
zone "." IN {
	type hint;
	file "named.ca";
};
zone "magedu.org" {
	type master;
	file "magedu.org.zone.bj";
};
[root@centos8:~]#
vim /etc/named.rfc1912.zones.sh
#添加以下内容
zone "." IN {
	type hint;
	file "named.ca";
};
zone "magedu.org" {
	type master;
	file "magedu.org.zone.sh";
};
#创建数据库区域文件
[root@centos8:/var/named]
cp -p /var/named/named.localhost  /var/named/magedu.org.zone.bj
[root@centos8:/var/named]
cp -p /var/named/magedu.org.zone  /var/named/magedu.org.zone.sh
[root@centos8:/var/named]#
vim /var/named/magedu.org.zone.bj
$TTL 1D
@ IN SOA master admin.magedu.org. (
				4  ; serial
				1D ; refresh
				1H ; retry
				1W ; expire
				3H ) ; minimum
		 NS master
master A 10.0.0.8
www    A 10.0.0.100
[root@centos8:/var/named]#
vim /var/named/magedu.org.zone.sh
$TTL 1D
@ IN SOA master admin.magedu.org. (
				4  ; serial
				1D ; refresh
				1H ; retry
				1W ; expire
				3H ) ; minimum
		NS master
master A 10.0.0.8
www    A 100.0.0.100

客户端网卡配置

#添加地址
[root@centos7:~]#
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:40:ac:3b brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.7/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 100.0.0.7/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe40:ac3b/64 scope link 
       valid_lft forever preferred_lft forever
# 客户端测试
[root@centos7:~]#
dig www.magedu.org @10.0.0.8

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> www.magedu.org @10.0.0.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31794
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.magedu.org.			IN	A

;; ANSWER SECTION:
www.magedu.org.		86400	IN	A	10.0.0.100   #解析的是10网段北京地区

;; AUTHORITY SECTION:
magedu.org.		86400	IN	NS	master.magedu.org.

;; ADDITIONAL SECTION:
master.magedu.org.	86400	IN	A	10.0.0.8

;; Query time: 0 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Wed Apr 13 12:37:49 CST 2022
;; MSG SIZE  rcvd: 96

[root@centos7:~]#
dig www.magedu.org @100.0.0.8

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> www.magedu.org @100.0.0.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33008
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.magedu.org.			IN	A

;; ANSWER SECTION:
www.magedu.org.		86400	IN	A	100.0.0.100  #解析的是100网段上海地区

;; AUTHORITY SECTION:
magedu.org.		86400	IN	NS	master.magedu.org.

;; ADDITIONAL SECTION:
master.magedu.org.	86400	IN	A	10.0.0.8

;; Query time: 0 msec
;; SERVER: 100.0.0.8#53(100.0.0.8)
;; WHEN: Wed Apr 13 12:38:00 CST 2022
;; MSG SIZE  rcvd: 96

[root@centos7:~]#

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

[root@centos8 ~]# 
iptables -A INPUT -d 10.0.101.80 -p tcp -m multiport --dports 20:23,80 -j ACCEPT

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

4、NAT原理总结

NAT(Network Address Translation)是网络转换的意思,为了解决ipv4地址稀缺问题,让普通用户自由使用私有ip的工具。
NAT有三种类型:
静态NAT(Static NAT)
是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。
在这里插入图片描述
动态地址NAT(Pooled NAT)
是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。
在这里插入图片描述
网络地址端口转换NAPT(端口多路复用) :这也算是一种动态的,将多个内部地址转换为同一个公网地址,用不同的端口来区别不同的主机,可以分为圆锥型NAT和对称性NAT
具体流程:私网机器访问互联网服务器时候,包经过路由时,NAT会自动将私网地址转换为路由器的ip+端口号,发送给互联网服务器,互联网服务器发送回来的消息对应的真实地址是路由器的ip+端口号,路由器NAT经过转换,发送给对应的私网ip对应的的主机,做到一一对应。(SNAT:源地址转换)
公网ip服务器访问私网ip用户是有路由器进行了地址转换,转换成固定的ip+端口号,转到私网ip机器上。(DNAT:目标地主转换)

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

实验准备:
1.Ubuntu18.04当做客户机,网卡选择仅主机模式,ip为192.168.10.100/24,不设置网关和dns;
2.Centos8.5当做防火墙机器,添加一块网卡,共两张网卡,eth0采用NAT模式,ip为10.0.0.8/24,eth1采用仅主机模式,ip为192.168.10.8/24;
3.一台Centos7机器当做web1服务器,网卡采用NAT模式,ip为10.0.0.7/24,网关为10.0.0.8

这样客户机和防火墙之间通过192.168.0.0/24网段通信,web1和防火墙通过10.0.0.0/24 网段通信,防火墙主机开启路由转发数据,并进行数据管控。

#服务主机准备:
[root@centos7:~]#
yum -y install httpd;systemctl enable --now httpd;hostnamectl set-hostname web1.magedu.org;hostname > /var/www/html/index.html;exit
[root@web1:~]#
cd /etc/sysconfig/network-scripts/
[root@web1:/etc/sysconfig/network-scripts]#
vim ifcfg-eth0 

DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.7
PREFIX=24
GATEWAY=10.0.0.8
DNS1=10.0.0.2
DNS2=180.76.76.76
ONBOOT=yes
[root@web1:/etc/sysconfig/network-scripts]#
systemctl restart network

#防火墙准备:
vmware中添加一块网卡为仅主机模式,同时主机执行修改,并生效。
[root@centos8:~]#
hostnamectl set-hostname firewall;exit
[root@firewall:~]#
nmcli con modify Wred\connection\con-name eth1;nmcli con modify eth1 ipv4.method manual ipv4.addresses 192.168.10.08/24 ifname eth1;nmcli con up eth1
[root@firewall:~]#
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@firewall:~]#
sysctl -p 
net.ipv4.ip_forward = 1
[root@firewall:~]#
ip route del default via 10.0.0.2 dev eth0 proto static metric 100 
#客户机准备:
[root@Ubuntu18 ~]#cd /etc/netplan
[root@Ubuntu18 netplan]#vim eth0.yaml 

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses: [192.168.10.100/24]
      gateway4: 192.168.10.8
[root@Ubuntu18 netplan]#netplan apply                               
[root@Ubuntu18 netplan]#curl 10.0.0.7
web1.magedu.org    #能实现访问

#实现SNAT
#ubuntu删除路由,与防火墙之间直连
[root@Ubuntu18 netplan]#ip route
default via 192.168.10.8 dev eth0 proto static 
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.100 
[root@Ubuntu18 netplan]#ip route del default via 192.168.10.8 dev eth0 proto static
#防火墙设置规则,10.0.0.0/24网段机器访问非本网段的机器时进行地址转换为防火墙的ip。
[root@firewall:~]#
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j MASQUERADE
#10.0.0.7机器能够ping通192.168.10.100
[root@web1:/etc/sysconfig/network-scripts]#
ping 192.168.10.100
PING 192.168.10.100 (192.168.10.100) 56(84) bytes of data.
64 bytes from 192.168.10.100: icmp_seq=1 ttl=63 time=0.558 ms
64 bytes from 192.168.10.100: icmp_seq=2 ttl=63 time=0.509 ms
64 bytes from 192.168.10.100: icmp_seq=3 ttl=63 time=0.466 ms
64 bytes from 192.168.10.100: icmp_seq=4 ttl=63 time=0.472 ms
64 bytes from 192.168.10.100: icmp_seq=5 ttl=63 time=0.427 ms
#192.168.10.100抓包能够看到是来自192.168.10.8发过来的包
[root@Ubuntu18 netplan]#tcpdump -i eth0 -nn icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
17:26:30.346508 IP 192.168.10.8 > 192.168.10.100: ICMP echo request, id 3122, seq 54, length 64

#实现DNAT
#防火墙添加私网ip,并将防火墙的80端口转给10.0.0.7的机器上[root@firewall:~]#
iptables -t nat -A PREROUTING -d 192.168.10.8 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.7
#192.168.10.100访问192.168.10.8能看到10.0.0.7上的内容。
[root@Ubuntu18 netplan]#curl 192.168.10.8
web1.magedu.org
#规则永久保存
[root@firewall ~]# 
yum -y install iptables-services   
[root@firewall ~]# 
systemctl enable --now iptables  
[root@firewall ~]# 
iptables-save > /data/iptables
[root@firewall ~]# 
iptables -t nat -F
[root@firewall ~]# 
iptables-restore < /data/iptables
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值