第五周作业
一、Rocky系统启动流程 & GRUB工作流程
(一)Rocky系统启动流程
- 硬件自检(POST)
- 计算机通电后,固件(BIOS/UEFI)检测硬件(如CPU、内存、硬盘),确认硬件正常后加载引导程序。
- 引导程序加载
- BIOS模式:从MBR(主引导记录)加载引导程序(如GRUB)。
- GRUB引导阶段
- GRUB读取配置文件(
/boot/grub2/grub.cfg
),显示操作系统选择菜单,用户选择后加载内核和初始RAM磁盘(initramfs
)。
- GRUB读取配置文件(
- 内核启动
- 内核初始化硬件驱动,挂载根文件系统(
/
),启动第一个进程systemd
(PID=1)。
- 内核初始化硬件驱动,挂载根文件系统(
- systemd初始化
- systemd读取配置文件,按顺序启动系统服务(如网络、日志、安全服务),最终进入用户登录界面。
(二)GRUB工作流程
- 阶段1(最小引导程序)
- 位于MBR或UEFI固件中,负责加载阶段2的GRUB核心程序。
- 阶段2(核心程序)
- 加载GRUB配置文件,解析可用操作系统列表,生成启动菜单。
- 用户交互与内核加载
- 用户选择启动项后,GRUB加载内核文件(
vmlinuz
)和initramfs
,并传递启动参数(如root=/dev/sdaX
)。
- 用户选择启动项后,GRUB加载内核文件(
二、内核设计流派及特点
流派 | 特点 | 代表系统 |
---|---|---|
单内核(Monolithic Kernel) | 内核功能(如内存管理、文件系统、驱动)集成在一个大内核中,性能高但可维护性差。 | Linux、FreeBSD |
微内核(Microkernel) | 内核仅包含最核心功能(如进程调度、内存管理),其他功能通过用户空间服务实现,稳定性高但性能较低。 | Windows NT、Mach |
混合内核(Hybrid Kernel) | 结合单内核和微内核优点,部分模块在内核空间运行(如驱动),部分在用户空间(如服务)。 | macOS、Linux(部分设计) |
三、systemd服务配置文件详解
(一)配置文件位置与优先级
- 系统级服务目录
(1)/usr/lib/systemd/system/
(软件包安装目录)
(2)/etc/systemd/system/
(用户自定义目录) - 优先级规则
(1)/etc目录配置覆盖/usr目录配置
(2)同名.service文件按文件名排序加载
(二)配置文件结构
[Unit]段
字段 | 说明 |
---|---|
Description | 服务描述信息 |
Documentation | 文档链接 |
Requires | 强依赖服务列表 |
After | 定义启动顺序依赖 |
[Service]段
字段 | 说明 |
---|---|
Type | 服务类型(simple/forking等) |
ExecStart | 启动命令 |
ExecStop | 停止命令 |
Restart | 重启策略 |
[Install]段
字段 | 说明 |
---|---|
Alias | 服务别名设置 |
WantedBy | 定义服务所属的target |
(三)配置文件示例
[Unit]
Description=A high performance web server and a reverse proxy server
Documentation=man:nginx(8)
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
TimeoutStopSec=5
KillMode=mixed
[Install]
WantedBy=multi-user.target
(四)配置文件管理命令
- 重载配置文件
systemctl daemon-reload
- 查看服务状态
systemctl status nginx.service
- 设置开机启动
systemctl enable nginx.service
- 设置开机不启动
systemctl disble nginx.service
四、DNS域名三级结构 & 工作原理
(一)域名三级结构
- 顶级域名(TLD)
- 分为通用顶级域名(如
.com
、.org
)和国家/地区顶级域名(如.cn
、.jp
)。
- 分为通用顶级域名(如
- 二级域名
- 用户注册的域名(如
example.com
中的example
)。
- 用户注册的域名(如
- 主机名(子域名)
- 二级域名的分支(如
mail.example.com
中的mail
)。
- 二级域名的分支(如
(二)DNS服务工作原理
- 递归查询:客户端向本地DNS服务器发起查询,服务器若无法解析,会代替客户端向其他服务器查询,最终返回结果(如客户端→本地DNS)。
- 迭代查询:本地DNS服务器向根服务器、顶级域名服务器、权威服务器逐级查询,每一步获取下一级服务器地址,最终组装结果(如本地DNS→根→TLD→权威服务器)。
六、实现私有DNS(递归查询)
(一)环境准备
- 服务器:Linux系统(如Rocky),IP为
10.0.0.12
。 - 工具:安装
bind
(DNS服务器软件):yum install bind -y
(二)配置步骤
-
修改主配置文件
- 文件:
/etc/named.conf
options { listen-on port 53 { 10.0.0.12; any }; # 监听IP地址 allow-query { 10.0.0.0/24; any }; # 允许网络查询 recursion yes; # 开启递归查询 };
- 文件:
-
配置正向解析域
- 创建区域文件:
/etc/named/magedu.zone
$TTL 86400 @ IN SOA magedu.com admin.magedu.com. ( 1 ; 序列号 3600 ; 刷新间隔 1800 ; 重试间隔 604800 ; 过期时间 86400 ; 最小TTL ) IN NS dns1 dns1 IN A 10.0.0.13 www IN A 10.0.0.13 * IN A 10.0.0.199
- 创建区域文件:
-
重启服务
systemctl restart named
(三)客户端配置
- 客户端测试联通性:
dig @10.0.0.12 www.magedu.com
七、DNS服务器类型 & 资源记录
(一)服务器类型
- 权威服务器:直接管理域名解析记录(如企业自建DNS)。
- 递归服务器:为客户端提供递归查询服务(如本地运营商DNS)。
- 根服务器:存储顶级域名服务器地址,全球共13组。
(二)解析答案与域
- 正向解析:域名→IP(如
magedu.com
→10.0.0.13
)。 - 反向解析:IP→域名(如
10.0.0.13
→magedu.com
)。
(三)资源记录(RR)
类型 | 作用 | 示例 |
---|---|---|
A | 域名指向IPv4地址 | www IN A 1.1.1.1 |
AAAA | 域名指向IPv6地址 | www IN AAAA 2001:db8::1 |
MX | 邮件交换记录,指定邮件服务器优先级 | example.com IN MX 10 mail.example.com |
CNAME | 别名记录,映射到其他域名 | ftp IN CNAME www.example.com |
NS | 域名服务器记录,指定子域名解析服务器 | example.com IN NS ns1.example.com |
八、加密技术总结
(一)对称加密
- 概念:加密和解密使用同一密钥(如AES、DES)。
- 原理:发送方用密钥加密数据,接收方用相同密钥解密,效率高但密钥传输不安全。
(二)非对称加密
- 概念:使用公钥(加密)和私钥(解密)成对密钥(如RSA、ECC)。
- 原理:公钥公开,私钥保密。发送方用公钥加密,接收方用私钥解密,安全性高但效率低。
(三)单向哈希算法
- 概念:将任意长度数据映射为固定长度哈希值(如MD5、SHA-256)。
- 原理:不可逆计算,用于数据完整性校验(如文件哈希值比对),不用于加密。
九、CDN原理
-
核心概念
- CDN(内容分发网络)通过分布在全球的边缘节点,缓存静态资源(如图片、视频、JS),缩短用户访问延迟。
-
工作流程
- 用户请求域名(如
cdn.example.com
),DNS解析将请求导向最近的CDN节点。 - 节点若有缓存资源,直接返回;若无,从源站获取并缓存后返回。
- 用户请求域名(如
-
关键技术
- 负载均衡:根据用户地理位置、节点负载分配请求。
- 缓存更新:通过TTL、Purge接口更新过期或变更的资源。
- 安全防护:集成DDoS防护、WAF等功能,保障源站安全。