第九周

网友投稿 715 2022-08-30

第九周

第九周

第九周就业作业: 1、简述DNS服务器原理,并搭建主-辅服务器。

其完整的DNS解析过程有以下几个步骤:

(1)查看浏览器缓存

当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的 IP 地址(若曾经访问过该域名且没有清空缓存便存在)。

(2)查看系统缓存

当浏览器缓存中无域名对应 IP 则会自动检查用户计算机系统 Hosts 文件 DNS 缓存是否有该域名对应 IP。

(3)查看路由器缓存

当浏览器及系统缓存中均无域名对应 IP 则进入路由器缓存中检查,以上三步均为客户端的 DNS 缓存。

(4)查看ISP DNS 缓存

当在用户客服端查找不到域名对应 IP 地址,则将进入 ISP DNS 缓存中进行查询。比如你用的是电信的网络,则会进入电信的 DNS 缓存服务器中进行查找。

(5)询问根域名服务器

当以上均未完成,则进入根服务器进行查询。全球仅有 13 台根域名服务器,1 个主根域名服务器,其余 12 为辅根域名服务器。根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(​​如.com​​、-等)服务器 IP 告诉本地 DNS 服务器。

(6)询问顶级域名服务器

顶级域名服务器收到请求后查看区域文件记录,若无记录则将其管辖范围内权威域名服务器的 IP 地址告诉本地 DNS 服务器。

(7)询问权威域名(主域名)服务器

权威域名服务器接受到请求后查询自己的缓存,如果没有则进入下一级域名服务器进行查找,并重复该步骤直至找到正确记录。

(8)保存结果至缓存

本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个 IP 地址即可访问目标Web服务器。至此,DNS递归查询的整个过程结束。

搭建主dns 服务器

安装软件包 yum -y install bind bind-utils修改配置文件 /etc/named.conf

options {// listen-on port 53 { 127.0.0.1; }; # 注释此行 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"; secroots-file "/var/named/data/named.secroots"; recursing-file "/var/named/data/named.recursing";// allow-query { localhost; }; # 注释此行 allow-transfer {10.0.0.18;}; # 设置运行拉取dns解析数据库的ip

创建域 /etc/named.rfc1912.zones

zone "test.org"{ type master; file "test.org.zone"; };

在/var/named/下创建dns数据库文件test.org.zone 并修改权限和组 chmod 640 test.org.zone ; chgrp named test.org.zone

填写dns 数据库文件

$TTL 1D @ IN SOA master admin ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS master NS slave1 master A 10.0.0.8 slave1 A 10.0.0.18 CNAME cdn.test.org. cdn.test.org. A 10.0.0.100 db A 10.0.0.6 * A 10.0.0.10 @ A 10.0.0.100

文件编写好后,启动服务 systemctl --now enable named ,使用rndc reload 让配置生效

搭建从服务器

安装软件和主dns 一样修改配置文件

options {// listen-on port 53 { 127.0.0.1; }; 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"; secroots-file "/var/named/data/named.secroots"; recursing-file "/var/named/data/named.recursing";// allow-query { localhost; }; allow-transfer {none;}; # 从服务器设置不能拉取数据

创建域

zone "test.org"{ type slave; masters {10.0.0.8;}; file "slavles/slave.test.org";};

启动服务,从服务器将自动从主服务器上拉取dns解析数据库。

2、搭建并实现智能DNS。

服务器端安装bind 修改配合文件 /etc/named.conf

把 根域配置剪切到 /etc/named.rfc1912.zones 文件中

zone "." IN { type hint; file "named.ca";};

添加 acl 和 view

acl beijingnet { 10.0.0.0/24; };acl shanhainet { 100.0.0.0/24; }; #这两项要添加到option 之前view beijing { match-clients {beijingnet;}; include "/etc/named.rfc1912.zones.bj";};view shanhai { match-clients {shanhainet;}; include "/etc/named.rfc1912.zones.sh"; # 添加这两条view 后,文件中 include "/etc/named.rfc1912.zones";删除。};

修改 /etc/named.rfc1912.zones.bj 和/etc/named.rfc1912.zones.sh在/etc/named.rfc1912.zone.bj 中添加

zone "test.edu" {type master;file "test.edu.bj";};

在/etc/named.rfc1912.zones.sh 中添加

zone "test.edu" {type master;file "test.edu.sh";};

在/var/named/目录下创建test.org.bj 和​​test.org.sh​​​ 解析数据库文件。可利用样板创建。手动创建要改权限和属组 chmod 640​​test.edu.bj​​​ ; chgrp named​​test.edu.bj​​​。建议使用模板创建。 cp -p named.localhost​​​test.edu.bj​​​ cp -p named.localhost​​​test.edu.sh​​

修改数据库文件

​​test.edu.bj​​

$TTL 1D @ IN SOA master admin ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS master master A 10.0.0.68 A 10.0.0.118

​​test.edu.sh​​

$TTL 1D@ IN SOA master admin ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS mastermaster A 10.0.0.68 A 100.0.0.118

启动服务

systemctl --now enable named

在eth0 上在添加一个ip 100.0.0.68 ip a a 100.0.0.68/24 dev eth0

客户端上安装 bind-utils 并在网卡上添加一个ipyum -y install bind-utils ip a a 100.0.0.78/24 dev eth0测试

dig ​​test.edu​​ @10.0.0.68

[root@centos8-78 ~]# dig test.edu @10.0.0.68; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> test.edu @10.0.0.68;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40949;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 1232; COOKIE: d3b1be7974adb73d92ca181462ee1dac6ccfbf5117b199d4 (good);; QUESTION SECTION:;test.edu. IN A;; ANSWER SECTION:test.edu. 86400 IN A 10.0.0.118;; AUTHORITY SECTION:test.edu. 86400 IN NS master.test.edu.;; ADDITIONAL SECTION:master.test.edu. 86400 IN A 10.0.0.68;; Query time: 1 msec;; SERVER: 10.0.0.68#53(10.0.0.68);; WHEN: Sat Aug 06 23:52:12 CST 2022;; MSG SIZE rcvd: 122

dig ​​test.edu​​ @100.0.0.78

[root@centos8-78 ~]# dig test.edu @100.0.0.68; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> test.edu @100.0.0.68;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50046;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 1232; COOKIE: abfd26c0a33cbe80c1bb286662ee1df2dabb9c379713d1df (good);; QUESTION SECTION:;test.edu. IN A;; ANSWER SECTION:test.edu. 86400 IN A 100.0.0.118;; AUTHORITY SECTION:test.edu. 86400 IN NS master.test.edu.;; ADDITIONAL SECTION:master.test.edu. 86400 IN A 10.0.0.68;; Query time: 1 msec;; SERVER: 100.0.0.68#53(100.0.0.68);; WHEN: Sat Aug 06 23:53:22 CST 2022;; MSG SIZE rcvd: 122

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

iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 80 -j ACCEPTiptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 21 -j ACCEPTiptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 22 -j ACCEPTiptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 23 -j ACCEPTiptables -A INPUT -s 0.0.0.0/0 -p tcp -j REJECT

3、NAT原理总结

NAT原理

地址转换 NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。连接跟踪 NAT Gateway在收到响应包后,就需要判断将数据包转发给谁。如果内网有多台客户机,并且各自访问不同网站,这时候就需要连接跟踪(connection track)。在NAT Gateway收到客户机发来的请求包后,做源地址转换,并且将该连接记录保存下来,当NAT Gateway收到服务器来的响应包后,查找Track Table,确定转发目标,做目的地址转换,转发给客户机。端口转换 当仅有一台客户机访问服务器时,NAT Gateway只须更改数据包的源IP或目的IP即可正常通讯。但是如果Client A和Client B同时访问Web Server,那么当NAT Gateway收到响应包的时候,就无法判断将数据包转发给哪台客户机。 此时,NAT Gateway会在Connection Track中加入端口信息加以区分。如果两客户机访问同一服务器的源端口不同,那么在Track Table里加入端口信息即可区分,如果源端口正好相同,那么在实行SNAT和DNAT的同时对源端口也要做相应的转换。

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

SNAT: iptables -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j MASQUERADE          # 10.0.0.0/24为内网地址

DNAT: iptable -t nat -A PREROUTING -d 192.168.10.8 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.7                          # 192.168.10.0为防火墙上的公网地址,10.0.0.7为内网私有地址

规则持久保存

yum -y install iptables-services

iptables-save > /etc/sysconfig/iptables

systemctl enable iptables.service

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:rocky8删除/etc/fstab 和/boot/所有文件,通过光盘救援模式恢复
下一篇:官方博文:使用 Go Cloud 的 Wire 进行编译时依赖注入(博文App)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~