一、磁盘存储术语总结: head, track, sector, sylinder
硬盘存储术语 CHS
CentOS7之后,就只显示扇区信息了 CentOS 5 之前版本 Linux 以柱面的整数倍划分分区,CentOS 6之后可以支持以扇区划分分区
查看CHS信息,查看CentOS系统中所有硬盘及其分区的详细信息
fdisk -l
二、总结MBR,GPT结构
1.磁盘分区,有两种分区方式:MBR,GPT
1.1 MBR分区:使用32位表示扇区数,分区不超过2T
MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
MBR分区:主和扩展分区对应的1--4,/dev/sda3,逻辑分区从5开始,/dev/sda5
1.2 GPT分区:支持128个分区,使用64位,支持8Z ( 512Byte/block )64Z ( 4096Byte/block)
使用128位UUID(Universally Unique Identifier) 表示磁盘和分区,GPT分区表自动备份在头和 尾两 份, 并有CRC校验位
UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作 系 统 可以启动
三、总结学过的分区,文件系统管理,SWAP管理相关的命令及示例(加注释),示例 fdisk, parted, mkfs, tune2fs, xfs_info, fsck, mount, umount, swapon, swapoff
四、总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现
RAID级别 | 利用率 | 冗余性 | 性能 | 至少几个硬盘 |
raid 0 | 磁盘利用率 100% | 既没有冗余功能,也不具备容错能力 | 读、写性能提升 | 1 |
raid 1 | 磁盘利用率 50% | 有冗余能力 | 读性能提升、写性能略有下降 | 2 |
raid 5 | 磁盘利用率 n为磁盘的个数 (n-1)/n | 有容错能力:允许最多1块磁盘损坏 | 读、写性能提升 | 3 |
raid 10 | 磁盘利用率 50% | 有容错能力:每组镜像最多只能坏一块 | 读、写性能提升 | 4 |
raid 01 | 磁盘利用率 50% | 有容错能力:只能坏同一组镜像,另外一组的不能坏 | 读、写性能提升 | 4 |
五、总结LVM的基本原理,完成实验对LVM的创建和磁盘扩容
LVM的基本原理:
将设备指定为物理卷 用一个或者多个物理卷来创建一个卷组,物理卷是用固定大小的物理区域(Physical Extent, PE)来定义的 在物理卷上创建的逻辑卷, 是由物理区域(PE)组成 可以在逻辑卷上创建文件系统并挂载。
创建LVM:
1. 准备几块设备
2. 创建物理卷(pv),把设备打上一个pv标签
使用pvcreate命令,把几个设备,创建为物理卷:pvcreate /dev/DEVICE
查看物理卷pv的详细信息
pvs #简要pv信息显示
pvdisplay #显示详细信息
3. 创建卷组(vg):把创建出来的这些物理卷(pv) ,加到一个卷组里面。
#创建卷组,-s 指定PE大小,数字加单位,单位为 k|K|m|M|g|G|t|T|p|P|e|E
vgcreate [-s Size ] vgname pv1 [pv2...]
#显示卷组
vgs
vgdisplay
#往卷组中添加物理卷
vgextend vgname pv1 [pv2...]
#从卷组中移除物理卷
vgreduce vgname pv1 [pv2...]
#删除卷组
vgremove vgname
4. 创建逻辑卷(lvm)
#创建逻辑卷
lvcreate {-L N[mMgGtT]|-l N} -n NAME VolumeGroup
-L|--size N[mMgGtT] #指定大小
-l|--extents N #指定PE个数,也可用百分比
-n Name #逻辑卷名称
#扩展逻辑卷
lvextend {-L N[mMgGtT]|-l N} LV_NAME
#缩减逻辑卷
lvreduce {-L N[mMgGtT]|-l N} LV_NAME
#删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
逻辑卷的使用 跟硬盘分区使用一样,要先创建文件系统,再进行挂载
5. 创建文件系统
mkfs.ext4 /dev/vg名/lv名
6. 挂载
磁盘扩容:
扩展逻辑卷之前,要先保证卷组上还有空间,如果卷组上还有空间,就直接扩容。先扩展逻辑卷,再扩容文件系统。
如果卷组上没有多余的空间了,就需要添加新的设备,创建新的物理卷,把新的物理卷添加到这个卷组中,扩大卷组的空间,扩展这个逻辑卷的空间,再扩容文件系统。
六、总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例
程序包管理器:
redhat:rpm文件, rpm 包管理器
CentOS使用 yum, dnf 解决 rpm 的包依赖关系
debian:deb文件, dpkg 包管理器
ubuntu使用 apt 解决 dpkg 的包依赖关系
软件包中的文件分类:
二进制文件,库文件,头文件, 配置文件, 帮助文件
利用 cpio工具查看包文件列表:
#预览包内文件
rpm2cpio 包文件|cpio –itv
#释放包内文件
rpm2cpio 包文件|cpio –id “*.conf”
软件包需要事先将源码进行编译后打包形成,获取程序包的途径:
系统发版的光盘或官方网站
第三方组织提供
软件项目官方站点
搜索引擎
#安装软件包
rpm -ivh PACKAGE_FILE
#列出所有己安装的包
rpm -qa
#查询包是否安装
rpm -q nginx
#查询包详细信息
rpm -qi PACKAGE_NAME
#列出包内所有文件
rpm -ql PACKAGE_NAME
#包卸载
rpm -evh PACKAGE_NAME
#显示仓库列表
yum repolist
#yum安装软件
yum install package
#卸载程序包
yum remove PACKAGE
yum erase PACKAGE
#查询程序包信息
yum info PACKAGE
#apt命令安装软件包
apt install PACKAGE
#列出所有的包
apt list
#仅卸载包
apt remove -y PACKAGE_NAME
#卸载所有依赖包
apt autoremove PACKAGE_NAME
七、简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用
yum/dnf 工作原理:
yum/dnf 是基于C/S 模式
yum 服务器存放rpm包和相关包的元数据库
yum 客户端访问yum服务器进行安装或查询等
yum 实现过程:
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元 数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装包时,会自动下载 repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
yum客户端配置:
/etc/yum.conf #为所有仓库提供公共配置
/etc/yum.repos.d/*.repo #为每个仓库的提供配置文件
配置南京大学的repo源
八、总结系统安装之后的常用初始化步骤。rocky/ubuntu
rocky常用初始化步骤:
关闭防火墙
关闭Selinux
修改网卡名称为eth0
配置仓库,系统源和epel源
安装常用软件
ubuntu常用初始化步骤:
添加root用户
修改ssh配置文件,允许ssh连接
关闭防火墙
关闭Selinux
修改网卡名称为eth0
配置仓库,系统源和epel源
安装常用软件
九、总结开放系统互联OSI模型,每层作用及对应的协议
开放系统互联 OSI:
序号 | 名称 | 英文字段 |
7 | 应用层 | Application |
6 | 表示层 | Presentation |
5 | 会话层 | Session |
4 | 传输层 | Transport |
3 | 网络层 | Network |
2 | 数据链路层 | Data Link |
1 | 物理层 | Physical |
第7层 应用层 应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如: HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等。
第6层 表示层 表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式
第5层 会话层 会话层(Session Layer)负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接
第4层 传输层 传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议 等发送信息。例如:传输控制协议(TCP)等
第3层 网络层 网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文。 网络表头包含了网络数据。例如:互联网协议(IP)等。
第2层 数据链接层 数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形 成信息框(Data Frame)。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表 尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务 (GPRS)等。分为两个子层:逻辑链路控制(logical link control,LLC)子层和介质访问控(Media access control,MAC)子层
第1层 物理层 物理层(Physical Layer)在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网 络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、主机接口卡等。
十、调整动态端口范围为20000-60000
TCP协议端口:
传输层通过port号,确定应用层协议,范围0-65535
0-1023: 系统端口或特权端口(仅管理员可用) ,众所周知,永久的分配给固定的系统应用使用, 22/tcp(ssh), 80/tcp(http), 443/tcp(https)
1024-49151: 用户端口或注册端口,但要求并不严格,分配给程序注册为某应用使用, 1433/tcp(SqlServer),1521/tcp(oracle),3306/tcp(mysql),11211/tcp/udp (memcached)
49152-65535: 动态或私有端口,客户端随机使用端口,范围定义:/proc/sys/net/ipv4/ip_local_port_range
调整动态端口范围为20000-60000
十一、总结TCP包头结构,TCP三次握手,4次挥手
TCP:传输控制协议
TCP包头结构:源端口、目标端口,序列号,确认号,数据偏移,URG(表示本报文段中发送的数据是否包含紧急数据),ACK(表示是否前面确认号字段是否有效),PSH(提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中),RST(如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段),SYN(SYN:在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段),FIN(表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段),窗口大小(表示现在允许对方发送的数据量),校验和(提供额外的可靠性),紧急指针(标记紧急数据在数据字段中的位置),选项部分。
TCP三次握手:
TCP四次挥手:
1. 客户端 (主动)发送FIN=1,和seq=任意一个值(随机数)给服务端 - - - 即告诉对方(服务端):“我的数据已经发送完毕,你可以断开连接了。 2. 服务端收到FIN=1时,立即给客户端发送响应【服务端未处理完:ACK=1,seq=x,ack=随机数+1 】,并且同时 通知应用,后面客户端再发送过来的请求,不要再给响应了。 3. 服务端处理完后, 给客户端发送响应【FIN=1,ACK=1,seq=y,ack=随机数+1 】 4. 客户端收到后,会给服务端一个响应 【ACK=1,seq=随机数+1,ack=y+1 】 closed
十二、总结主机到主机的包传递过程
OSI开放系统互连参考模型7层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
TCP/IP 分层 4层:网络接口层,互联网层,传输层,应用层
1.1发送方数据封装:
1.1.1应用层
- 数据生成:用户或应用程序生成需要传输的数据。
- 封装数据:应用层将数据封装成应用层协议格式的数据包,如HTTP、FTP等
1.1.2传输层
1.TCP/UDP封装
- TCP:对于需要可靠传输的数据,应用层数据包在传输层被封装成TCP段。TCP段包含源端口号、目的端口号、序列号、确认号等信息,以确保数据的可靠传输。
- UDP:对于不需要可靠传输的数据,可以选择UDP封装,UDP段包含较少的控制信息,传输效率较高但可靠性较低
2.端口
每个TCP/UDP段都包含源端口号和目的端口号,用于标识发送方和接收方的应用程序,传输层通过port号,确定应用层协议。
1.1.3网络层
- IP封装:传输层的数据包在网络层被封装成IP数据包。IP数据包包含源IP地址、目的IP地址、版本号、头部长度、总长度等信息。
- 路由选择:根据目的IP地址,网络层决定数据包的下一跳地址。如果目的主机与发送主机在同一子网内,数据包将直接发送给目的主机;如果不在同一子网内,数据包将发送给默认网关(通常是路由器)。
1.1.4数据链路层,物理层
- MAC封装:在数据链路层,IP数据包被封装成数据帧,并添加源MAC地址和目的MAC地址。如果目的MAC地址未知(如跨子网通信),则发送ARP请求以获取目的MAC地址。
- 帧传输:数据帧通过物理介质(如以太网、光纤等)传输到下一跳设备(如交换机、路由器)
1.2转发过程:
- 交换机转发:在同一子网内,交换机根据数据帧的源MAC地址和目的MAC地址进行转发。交换机维护一个MAC地址表,用于记录端口与MAC地址的映射关系。
- 路由器转发:当数据包需要跨子网传输时,路由器将接收到的数据帧拆包,提取IP数据包,并根据路由表进行转发。路由器会修改数据帧的源MAC地址为自身MAC地址,目的MAC地址为下一跳设备的MAC地址
1.3接收方数据解封:
- 数据包接收:目的主机接收到数据帧后,首先检查目的MAC地址是否匹配。如果匹配,则拆包提取IP数据包。
- IP数据包处理:目的主机根据IP数据包中的目的IP地址判断数据包是否应该由本机接收。如果是,则进一步拆包提取TCP/UDP段。
- 传输层处理:TCP/UDP段被传递给相应的应用程序端口,应用程序根据端口号识别数据包,并进行相应的处理。
十三、总结IP地址 A, B, C, D 类,并解析IP地址的组成
IP地址由两部分组成:
网络 ID:标识网络,每个网段分配一个网络ID,处于高位
主机 ID:标识单个主机,由组织分配给各设备,处于低位
ip类别 | 1-8位 | 9-16位 | 17-24位 | 25-32位 |
A类 | 网络ID,最高位0,十进制取值范围是 0-127 | 主机 ID | 主机 ID | 主机 ID |
B类 | 网络ID,前两位10,十进制取值范围是 128 191 | 网络ID | 主机 ID | 主机 ID |
C类 | 网络ID,前三位是110,十进制取值范围是 192- 223 | 网络ID | 网络ID | 主机 ID |
D类 | 网络ID,前四位是1110,十进制取值范围是 224 - 239 |
十四、201.222.200.111/18计算主机数?子网掩码?说明计算方法
主机数量:2^(32-18)-2=16382
子网掩码:255.255.192.0
相关的计算公式:
一个网络的最多的主机数 =2 ^ 主机ID位数 - 2
网络(段)数 = 2 ^ 网络ID中可变的位数
网络ID = IP 与 netmask
十五、当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?
A能访问B,B不能访问A
1. 当A(10.0.1.1/16) - - - - - - - > B(10.0.2.2/24)通信
10.0.1.1/16 也可以写成 10.0.1.1/255.255.0.0
00001010.00000000.00000001.00000001
11111111.11111111.00000000.00000000
网络ID:00001010.00000000.00000000.00000000
网络ID 10.0.0.0
10.0.2.2/16 有可以写成10.0.2.2/255.255.0.0
00001010.00000000.00000010.00000010
11111111.11111111.00000000.00000000
网络ID:00001010.00000000.00000000.00000000
网络ID 10.0.0.0
2个网络ID 相同,所有这2个IP在同一个网络段。A能访问B。
2. 当B(10.0.2.2/24) - - - - - - - > A(10.0.1.1/16) 通信
10.0.2.2/24 = 10.0.2.2/255.255.255.0
00001010.00000000.00000010.00000010
11111111.11111111.11111111.00000000
网络ID:00001010.00000000.00000010.00000000
网络ID 10.0.2.0
10.0.1.1/24 = 10.0.1.1/255.255.255.0
00001010.00000000.00000001.00000001
11111111.11111111.11111111.00000000
网络ID:00001010.00000000.00000001.00000000
网络ID 10.0.1.0
2个网络ID 不相同,所有这2个IP不在同一个网络段,B不能直接访问A。
十六、如何将10.0.0.0/8划分32个子网?求每个子网的掩码,主机数
2^5=32,所有网络ID需要向主机ID借5位,网络ID为13位
00001010.00000 000.00000000.00000000
11111111.11111 000.00000000.00000000
子网掩码是 255.248.0.0
主机数:2^(32-13)-2=524286