SRE第五周作业

这篇博客详细介绍了如何搭建和配置DHCP服务器,包括基本概念、实现原理和实际部署。接着,深入讲解DNS服务器的正向解析流程,并搭建主辅DNS服务器。此外,还涉及智能DNS的实现、网络服务放行策略以及NAT和iptables的应用。最后,文章涵盖了MySQL和MariaDB的二进制安装过程。
摘要由CSDN通过智能技术生成

1.搭建dhcp服务,实现ip地址申请分发。需要有DHCP原理分析,需要画图

1.1 dhcp的基本概念

dhcp (Dynamic Host Configuration Protocol) 动态主机配置协议, 是一种C/S架构, 作用是自动为局域网内的主机自动分配IP, 子网掩码,网关,DNS等信息。客户端获得ip信息后自动配置相应IP。

1.2 dhcp的实现原理

  1. DHCP 客户端在启动时向网络广播 DHCP Discover报文,以寻求可用的 DHCP 服务器。

  2. DHCP 服务器接收到 DHCP Discover 报文后,将 DHCP Offer报文广播回客户端。该报文包含可用的 IP 地址、子网掩码、默认网关、DNS 服务器等网络配置信息。(可能会有多台DHCP服务器响应)

  3. DHCP 客户端从多个 DHCP Offer 报文中选择其中一个,并向 DHCP 服务器发送 DHCP Request报文,请求分配选中的 IP 地址。

  4. DHCP 服务器接收到 DHCP Request 报文后,将分配给客户端的 IP 地址等配置信息打包在 DHCP ACK报文中,向客户端广播该报文。

  5. DHCP 客户端接收到 DHCP ACK 报文后,将分配给它的 IP 地址和其他网络配置信息应用于自己的网络接口,完成网络配置。

在 DHCP 的实现过程中,所有的通信都是通过广播报文进行的,包括 DHCP Discover、DHCP Offer、DHCP Request 和 DHCP ACK 报文。DHCP 的实现可以提高网络管理的效率和可靠性,减少手动配置的工作量,并避免 IP 地址冲突等问题。

需要注意的是"DHCP租约"的概念, 相当于IP的有效期, 在租约期内客户端向DHCP服务器发生 DHCP REQUEST报文请求续租。如果租约到期改IP地址可能会被分配给其其它的客户端。

DHCP服务器中通过"客户端的MAC地址"标识客户端, 客户端申请IP地址后, DHCP服务器会把客户端的MAC地址和分配的IP记录到"租约数据库"中, 避免该IP被重复分配。

1.3 DHCP服务器部署

#1. 安装dhcp软件包
yum install dhcp-server -y


#2.编辑配置文件
#拷贝示例配置文件
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf

vim /etc/dhcp/dhcpd.conf

#修改全局配置项, 添加dns设置
option domain-name "gopherabc.com";
option domain-name-servers dns1.gopherabc.com;

#添加子网
#子网172.16.0.0/24
subnet 172.16.0.0 netmask 255.255.255.0 {
  range 172.16.0.100 172.16.0.120;    #ip地址范围 100-120
  option domain-name-servers dns1.gopherabc.com;   #该子网的dns配置,优先于全局配置
  option domain-name "gopherabc.com";
  option routers 172.16.0.11;      #子网的默认网关
  option broadcast-address 172.16.0.255;       #广播地址
  default-lease-time 600;    #默认的DHCP租约时间, 此时间段内客户端续约继续使用此IP
  max-lease-time 7200;    #最大的客户端租用时间, 时间达到客户端不能续约, 避免某个客户端长期占用某IP
}

#3. 启动服务
systemctl enable --now dhcpd

dhcp服务器的 172.16.0.11/24 这个地址使用的是 LAN区段, 找台虚拟机网卡改为同样的LAN区段, 然后将IP配置为DHCP尝试自动获取:

 可以看到 客户端的地址自动获取为了 IP地址池中的第一个地址。

2. 简述DNS服务器原理,并搭建主-辅服务器,画出架构图(有几个主机,在什么网络,什么域名),再有原理解释文字,再是代码格式化块,编写代码,代码对必要的选项,完成流程有文字描述,有实践的过程和实践的结果。

2.1 DNS正向解析流程

以浏览器访问`www.gopherabc.com`为例:

1.  浏览器会先查询浏览器缓存和本机的hosts文件
2.  然后查询运营商的DNS服务器, local dns, 
3.  local dns会先查询自己的缓存, 
4.  local dns如果没有再到, 则会查询根服务器
5.  根服务器将 `.com`顶级域名服务器地址返回给local dns
6.  local dns 再向`.com`顶级域名服务器发起查询请求, 
7.  `.com`服务器将`.gopherabc.com`这个`域`所在的`权威DNS`地址返回(权威DNS服务器通常是你的域名服务的接入商, 比如域名在阿里云解析, 那权威域名服务器就会是阿里云的DNS服务器)
8.  local dns 向`权威DNS`服务器查询,
9.   `权威DNS`服务器  查询到`www`主机的地址, 返回给local dns。
10.  local dns得到`www.gopherabc.com`的地址后, 返回给客户端也就是浏览器, 并缓存在本地方便下次查询。

 递归查询: 客户端--->local dns这一段是递归查询, local dns将最终结果返回给了客户端

迭代查询: local dns--->根域名服务器查询, 根域名服务器没有直接返回结果, 而是返回的.com服务器的地址;

local dns不得向.com服务器查询,而.com服务器返回的却是权威DNS服务器, 这样一次又一次的查询是迭代

DNS缓存: 将解析数据放在离客户端近的地方,以此减少迭代查询的过程。

Local DNS: 又称缓存DNS, 像114.114.114.114就是国内最大的中立缓存DNS

 2.2 搭建主辅DNS

 搭建过程:

 1. 主从服务器安装bind及基本配置

#安装bind
dnf -y install bind bind-utils

#修改监听地址
vi /etc/named.conf
options {
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
}

#检查配置文件语法
#主配置文件
named-checkconf

 2. 修改主服务器配置文件, 添加配置允许区域传输

vim /var/named/gopherabc.com.zone
options {
   ...
   allow-transfer { 192.168.56.13; };
   ...
}

#修改主服务器, 区域数据库解析文件, 添加从服务器NS记录

$TTL 1D
$ORIGIN gopherabc.com.
@       IN SOA  dns1 admin.gopherabc.com. (
                                        2023022701      ; serial
                                        3m      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      dns1
        IN      NS      dns3        ; 从服务器的NS记录
dns1    IN      A       192.168.56.11
dns3    IN      A       192.168.56.13   ; 从服务器的IP地址
www     IN      A       192.168.56.12
#检查语法并重启服务
[root@node01 etc]# systemctl restart named
[root@node01 etc]# named-c
named-checkconf    named-checkzone    named-compilezone  
[root@node01 etc]# named-checkconf
[root@node01 etc]# named-checkzone gopherabc.com /var/named/gopherabc.com.zone 
zone gopherabc.com/IN: loaded serial 2023022701
OK
[root@node01 etc]# systemctl restart named
[root@node01 etc]# rndc reload
server reload successful
[root@node01 etc]#

3. 修改从节点配置, 指向主节点

#安装bind
[root@node03 ~]# dnf -y install bind bind-utils

#修改主配置文件
[root@node03 ~]# vim /etc/named.conf
options {
	// listen-on port 53 { 127.0.0.1; };
	// allow-query { localhost; };
	// 不允许其它主机进行区域传输
	allow-transfer { none;};
}

#添加区域要传输的配置
[root@node03 ~]# vim /etc/named.rfc1912.zones
zone "gopherabc.com" IN {    // 要传输的区域
        type slave;		// 角色是从节点类型
        masters { 192.168.56.11; }; 	// 要同步的主节点是
        file "slaves/gopherabc.com.slave";	// 区域数据库配置文件的路径
};

// 从节点的区域数据库配置文件是通过拉取主节点自动生成的, 不需要自己写
#从节点启动服务
[root@node03 ~]# named-checkconf
[root@node03 ~]# systemctl enable named --now
[root@node03 ~]# rndc reload
server reload successful
[root@node03 ~]#

4. 验证测试

#测试节点
echo -e 'nameserver 192.168.56.11\nnameserver 192.168.56.13' >/etc/resolv.conf
dig www.gopherabc.com

关闭主节点的named服务, 然后测试:

然后启动主节点, 关闭从节点再测试:

3.搭建并实现智能DNS,架构图,原理解释文字,编写代码 ,代码对必要的选项,完成流程有文字描述,有实践的过程和实践的结果。

实现目标:

对于同一个域名 blog.gopherabc.org 来自172.16.0.0/24网段的请求解析为 172.16.0.20;

来自192.168.56.0/24网段的请求解析为 192.168.56.20

 概念:

acl: 划分ip地址。

view: 将acl划分的IP地址与指定的 区域数据库配置文件绑定。

dns01配置:

1.写主配置文件, 添加acl, 并使用view绑定到独立的区域配置文件

[root@node01 ~]# cat /etc/named.conf
//定义acl
acl bjnet {		//来至北京的流量
	192.168.56.0/24; //192.168.56.0/24网段属于bjnet这个acl
	192.168.56.7;	//仅指定IP
};

acl njnet {		//来至南京的流量
	172.16.0.0/24;
	172.16.0.7; 
};

acl othernet {	//其他地区的流量
	any;
};

//定义view
view bjview {
	match-clients { bjnet; };	//绑定acl
	//有两种写法
	//zone "gopherabc.org" {
	//	type master;
	//	file "gopherabc.org.bj.zone";
	//};
	include "/etc/named.bj.zone";	//绑定区域数据库配置文件
};

view njview {
	match-clients { njnet; };
	include "/etc/named.sh.zone";
};

view otherview {
	match-clients { othernet; };   //这里把北京和南京之外的查询请求都由/etc/named.rfc1912.zones这个区域数据库处理
	include "/etc/named.rfc1912.zones";
};

acl 和view 要写在options前面

需要注意的是一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值