第三周作业

1. 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现

RAID 0:

工作原理: 数据被分成块,然后分布到多个硬盘上,以提高读写性能。
利用率: 高,因为数据被分散存储在多个硬盘上。
冗余性: 低,没有冗余,一个硬盘故障会导致所有数据丢失。
性能: 高,由于数据并行读写,提供了较高的吞吐量。
硬盘数量: 至少2个。

RAID 1:

工作原理: 数据被完全复制到多个硬盘上,实现冗余备份。
利用率: 中,由于数据被完全复制,总容量为单个硬盘容量的一半。
冗余性: 高,一个硬盘故障不会导致数据丢失。
性能: 读性能较好,写性能略低。
硬盘数量: 至少2个。

RAID 5:

工作原理: 将数据分块存储在多个硬盘上,同时使用奇偶校验位进行数据冗余。
利用率: 高,总容量为(硬盘数量 - 1)乘以单个硬盘容量。
冗余性: 中,一个硬盘故障不会导致数据丢失。
性能: 读性能良好,写性能较好。
硬盘数量: 至少3个。

RAID 10:

工作原理: 将数据同时使用镜像和分条带的方式存储在多个硬盘上,结合了RAID 1和RAID 0的特点。
利用率: 中,总容量为硬盘数量的一半。
冗余性: 高,可以容忍一个硬盘故障。
性能: 读性能和写性能都较好。
硬盘数量: 至少4个。

RAID 01:

工作原理: 将RAID 0的条带集合镜像,结合了RAID 0和RAID 1的特点。
利用率: 低,总容量为硬盘数量的一半。
冗余性: 低,一个硬盘故障可能导致数据丢失。
性能: 读性能和写性能都较好。
硬盘数量: 至少4个。

2. 完成对LVM磁盘扩容及缩容示例

扩展逻辑卷示例

1.创建逻辑卷lv-gx1,lv-gx2

2.查看逻辑卷

3.扩展逻辑卷lv-gx1为20G

4.使用resize2fs命令对lv-gx1进行文件系统同步

缩容逻辑卷示例

1.取消逻辑卷挂载

2.使用fsck检测逻辑卷文件系统

3.缩减lv-gx1文件系统大小

4.缩减逻辑卷lv-gx1大小

5.重新挂载

3. 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例

主流的程序包管理器:

redhat : rpm 文件 , rpm 包管理器, rpm : Redhat Package Manager , RPM Package Manager
debian : deb 文件 , dpkg 包管理器

获取程序包途径:

系统发版的光盘或官网:
CentOS 镜像:

https://www.centos.org/download/
http: //mirrors.aliyun.com
https: //mirrors.huaweicloud.com/
https: //mirror.tuna.tsinghua.edu.cn/
http: //mirrors.sohu.com
http: //mirrors.163.com

Ubuntu 镜像:

http://cdimage.ubuntu.com/releases/
http: //releases.ubuntu.com

第三方组织提供

Fedora-EPEL : Extra Packages for Enterprise Linux
https://fedoraproject.org/wiki/EPEL
https: //mirrors.aliyun.com/epel/
https: //mirrors.cloud.tencent.com/epel/
SCL : Software Collections ,提供较高版本的第三方软件包
Community Enterprise Linux Repository : http://www.elrepo.org ,支持最新的内核和硬件相关

软件项目官方站点:

http://yum.mariadb.org/10.4/centos8-amd64/rpms/
http: //repo.mysql.com/yum/mysql-8.0-community/el/8/x86_64/

搜索引擎:

http://pkgs.org
http: //rpmfind.net
http: //rpm.pbone.net
https: //sourceforge.net/

apt包管理:
apt 特有的命令

apt list 列出包含条件的包(已安装,可升级等)
apt edit-sources 编辑源列表

APT包索引配置文件

/etc/apt/sources.list
/etc/apt/sources.list.d

安装包以及删除包:

搜索安装包:

查看仓库中有哪些版本的安装包:

4. 简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用

yum/dnf是基于C/S模式,yum服务器存放rpm包和相关包的元数据库,yum客户端访问yum服务器进行安装或查询等

yum实现过程

先在yum服务器上创建yum仓库,仓库中存储众多rpm包,以及包相关的元数据,当yum客户端使用yum/dnf安装软件包时,会自动下载repodata中元数据,查询元数据对应包的依赖关系,然后下载并安装

搭建私有yum仓库
安装并开启httpd服务


挂载光盘文件

进入/test/BaseOS目录中,复制粘贴文件

修改yum源配置文件

仅下载EPEL源的软件包到指定目录下

yum客户端修改yum源配置文件

5. 总结系统安装之后的常用初始化步骤。rocky/ubuntu

1. 更新系统:

确保系统中的所有软件包都是最新的,包括系统内核和其他关键组件。

  • Rocky Linux
    sudo dnf update

  • Ubuntu
    sudo apt update
    sudo apt upgrade

2. 设置主机名:

更改主机名以便更好地标识系统。编辑 /etc/hostname 文件并重启系统。
sudo nano /etc/hostname
sudo reboot

3. 配置时区:

设置系统时区,以确保正确的时间戳。

  • Rocky Linux
    sudo timedatectl set-timezone Asia/Shanghai

  • Ubuntu
    sudo dpkg-reconfigure tzdata

4. 配置网络:

检查和配置网络设置,包括静态 IP 地址或 DHCP。

  • Rocky Linux
    sudo nano /etc/sysconfig/network-scripts/ifcfg-

  • Ubuntu
    sudo nano /etc/netplan/01-netcfg.yaml

5. 配置SSH:

如果使用SSH进行远程访问,确保SSH服务器已安装并配置,禁用root登录,使用密钥认证。

  • Rocky Linux
    sudo dnf install openssh-server
    sudo systemctl enable --now sshd

  • Ubuntu
    sudo apt install openssh-server
    sudo systemctl enable --now ssh

6. 配置防火墙:

配置防火墙规则以保护系统。

  • Rocky Linux
    sudo dnf install firewalld
    sudo systemctl enable --now firewalld
    sudo firewall-cmd --zone=public --add-service=ssh --permanent
    sudo firewall-cmd --reload

  • Ubuntu
    sudo apt install ufw
    sudo ufw allow ssh
    sudo ufw enable

6. 解读一键安装httpd脚本,并自行实现一个一键安装脚本,要求

1)基于位置变量传递版本号

2)基于独立函数进行初始化步骤,禁用防火墙,安装开发依赖包。

3)基于独立函数进行下载包,解压包。

4)基于独立函数进行编译,安装包。

5)基于独立函数完成链接包。

6)启动服务,并输出自定义的语句,安装xxx服务

脚本解读

一键安装apache脚本:

7. 总结开放系统互联OSI模型,每层作用及对应的协议

物理层:

作用: 负责传输比特流,主要关注硬件传输介质、电流、电压等物理特性。
协议: IEEE 802.3(Ethernet)、IEEE 802.11(Wi-Fi)、USB、RJ45(Ethernet接口)。

数据链路层:

作用: 提供可靠的点对点通信,通过物理地址(MAC地址)标识网络中的设备。
协议: PPP、HDLC、Ethernet、Wi-Fi。

网络层:

作用: 提供跨网络的数据传输,通过逻辑地址(IP地址)标识网络中的设备。
协议: IP、ICMP、OSPF、BGP。

传输层:

作用: 提供端到端的通信,确保数据的可靠性和完整性。
协议: TCP、UDP、SCTP。

会话层(Session Layer):

作用: 管理用户会话,包括建立、维护和终止会话。
协议: NetBIOS、RPC。

表示层:

作用: 处理数据的格式、编码和加密,确保一个系统的应用层能理解另一个系统发送的信息。
协议: JPEG、ASCII、SSL/TLS。

应用层:

作用: 提供网络服务给用户,是用户与网络通信的接口。
协议: HTTP、FTP、SMTP、DNS(Domain Name System)。

8. 调整动态端口范围为20000-60000

修改/proc/sys/net/ipv4/ip_local_port_range文件的值

9. 总结TCP包头结构,TCP三次握手,4次挥手

至少20字节,最大60字节,源端口和目的端口为16位,范围0-65535
序列号:表示本报文发送数据的第一个字节编号
确认号:表示接收方希望收到发送方下一个报文段的第一个字节编号
数据偏移:表示TCP头部长度,由于TCP头部包含可选部分,所以需要指定TCP报文头部长度
URG:表示TCP报文是否启用紧急指针字段
ACK:表示确认号是否有效
PSH:表示该TCP报文是缓存还是立即提交上层应用
RST:表示连接失败,释放来南京
SYN:表示请求建立连接
FIN:表示通知对端结束连接
窗口:表示允许对方发送的数据量
校验和:提供额外可靠性
紧急指针:标记紧急数据在数据字段中的位置
TCP三次握手

客户端发送SYN置1的TCP连接请求报文,由CLOSED状态变为SYN-SEND状态
服务器收到TCP连接请求报文后,回复SYN和ACK都置1的TCP响应报文,由LISTEN状态变为SYN-RCVD状态
客户端收到TCP响应报文后,发送ACK置1的TCP报文,由SYN-SEND状态变为ESTAB-LISHED状态
服务器收到报文后,由SYN-RCVD状态变为ESTAB-LISHED状态
TCP四次挥手

客户端发送FIN置1的TCP连接断开报文,由ESTAB-LISHED状态变为FIN-WAIT1状态
服务器收到TCP连接断开报文后,发送ACK置1的TCP响应报文,由ESTAB-LISHED状态变为CLOSE-WAIT状态
客户端收到TCP响应报文后,由FIN-WAIT1状态变为FIN-WAIT2状态
服务器向客户端发送完数据后,会发送FIN和ACK置1的TCP连接断开报文,由CLOSE-WAIT状态变为LAST-ACK状态
客户端收到TCP连接断开报文后,回复ACK置1的TCP响应报文,由FIN-WAIT2状态变为TIME-WAIT状态
服务器收到TCP响应报文后,由LAST-ACK状态变为CLOSED状态
服务器等待一定时间,接收到所有数据后,由TIME-WAIT状态变为CLOSED状态

10. 总结主机到主机的包传递过程

1.应用层:源主机上的应用程序产生数据,该数据被传递到应用层。
2.传输层:数据从应用层传递到传输层,其中会根据需要选择使用 TCP 或 UDP 协议。

如果使用 TCP,数据被分割成多个数据段,并在传输层添加序列号和校验和等信息。
如果使用 UDP,数据被封装成数据包,但不进行数据分割和重组。

3.网络层:传输层的数据被传递到网络层,其中会根据目标主机的 IP 地址进行路由。

IP 协议负责将数据包从源主机传递到目标主机,它添加了源和目标 IP 地址,以及 TTL(Time-to-Live)等信息。

4.数据链路层:网络层的数据包被传递到数据链路层,这里会根据目标主机的 MAC 地址进行帧的封装。

数据链路层添加了源和目标 MAC 地址,以及帧检验序列(FCS)等信息。

5.物理层:数据链路层的数据帧被传递到物理层,这里负责实际的物理传输,如电缆、无线信号等。
6.目标主机接收:数据通过物理传输到达目标主机。

物理层接收数据,并将其逐层向上传递至应用层。
源主机和目标主机上的对应层进行相应的解封装、解析和处理。

11. 总结IP地址 A, B, C, D 类,并解析IP地址的组成

A类

范围:0.0.0.0-127.255.255.255
网络位为8位,主机位为24位
掩码:255.0.0.0
私网地址:10.0.0.0-10.255.255.255

B类

范围:128.0.0.0-191.255.255.255
网络位为16位,主机位为16位
掩码:255.255.0.0
私网地址:172.16.0.0-172.31.0.0

C类

范围:192.0.0.0-223.255.255.255
网络位为24位,主机位为8位
掩码:255.255.255.0
私网地址:192.168.0.0-192.168.255.0

D类

范围:224.0.0.0-239.255.255.255

IP地址由网络位+主机位组成

12. 201.222.200.111/18计算主机数?子网掩码?说明计算方法

主机数:16382
子网掩码:255.255.192.0
主机数=2^(32-子网掩码)-2

13. 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?

  • A会将自己的IP地址与子网掩码进行与运算,将B的IP地址与自己的子网掩码进行与运算,比较这两个结果是否一致,一致则在同一网段,否则不在同一网段。
  • A和B不能通信。

14. 如何将10.0.0.0/8划分32个子网?

划分子网:

网络位向主机位借5位,2^5=32

求每个子网的掩码,主机数:

每个子网的掩码为13(255.248.0.0),主机数为524286

15. 通过网络配置命令,让主机可以上网。 ip, netmask, gateway, dns,主机名。相关命令总结,最终可以通过这些配置让你的主机上网

修改主机名

hostname(临时修改主机名)
hostnamectl set-hostname(永久修改主机名)
vim /etc/hostname(修改主机名配置文件)

ifconfig

用于查看和配置网卡信息
    选项:
      -a:查看所有网卡信息
      -s:查看网卡摘要信息
    ifconfig XX up/down:启用/关闭网卡

示例:查看网卡摘要信息

示例:关闭eth1网卡

route

    用于查看,添加,删除路由
    route add:添加路由
    route del:删除路由
    route -n:数字显示
    route -v:查看详细信息

示例:添加路由

示例:查看路由

示例:删除路由

ip

    ip link set:用于启用/禁用网卡

示例:禁用eth1网卡


ip address:用于查看网卡信息
    ip address add:用于新增IP地址
    ip address del:用于删除IP地址
    ip address flush:用于清空IP地址
    ip address change:用于修改IP地址的首选生存时间和失效时间

示例:新增网卡IP地址

示例:删除网卡IP地址

示例:清空网卡IP地址


ip route show:用于查看路由表
    ip route add:用于添加路由
    ip route del:用于删除路由
    ip route flush:用于清空路由

示例:查看路由表

示例:添加路由

示例:删除路由

nmcli

    nmcli connection reload:用于重启网络连接
    nmcli connection up/down:用于开启/关闭网络连接
    nmcli connection show:用于查看网络连接信息
    nmcli connection add:用于创建网卡配置文件
    nmcli connection del:用于删除网卡配置文件

示例:查看网络连接信息

示例:创建网卡配置文件

示例:删除网卡配置文件

16. 解析/etc/sysconfig/network-scripts/ifcfg-eth0配置格式

DEVICE:设备名

  NAME:连接别名
  TYPE:接口雷系
  BOOTPROTO:获取地址方式,dhcp、static、none
  IPADDR:IP地址
  PREFIX:网络ID位数
  GATEWAY:网关
  DNS:域名服务器地址
  DOMAIN:主机不完整时,自动搜索的域名后缀
  ONBOOT:系统引导时是否激活此设备

17. 基于配置文件或命令完成bond0配置

配置文件



18. 通过ifconfig命令结果找到ip地址

19. 使用脚本判断 你主机所在网络内在线的主机IP有哪些? ping通则在线

#!/bin/bash

read -p "主机IP地址:" IP
read -p "子网掩码(1-32):" MASK

N=$[${MASK}%8]
case $N in
1)
    M=128
    ;;
2)
    M=192
    ;;
3)
    M=224
    ;;
4)
    M=240
    ;;
5)
    M=248
    ;;
6)
    M=252
    ;;
7)
    M=254
    ;;
0)
    M=255
    ;;
*)
    ;;
esac

if [ $MASK -le 8 ];then
    A=`echo $IP | awk -F"." '{print $1}'`
elif [ $MASK -le 16 ];then
    A=`echo $IP | awk -F"." '{print $2}'`
elif [ $MASK -le 24 ];then
    A=`echo $IP | awk -F"." '{print $3}'`
elif [ $MASK -le 32 ];then
    A=`echo $IP | awk -F"." '{print $4}'`
fi

let W=A\&M
if [ $MASK -lt 8 ];then
    for x in `seq $W $[255-MASK+W]`;do
        for y in {0..255};do
            for z in {0..255};do
                for l in {0..255};do
                    (ping -c1 -w1 $x.$y.$z.$l &> /dev/null && echo "$x.$y.$z.$l在线" || echo "$x.$y.$z.$l不在线")&
                done
            done
        done
    done
elif [ $MASK -eq 8 ];then
    for x in {0..255};do
        for y in {0..255};do
            for z in {0..255};do
                pre=`echo $IP | awk -F"." '{print $1}'`
                (ping -c1 -w1 $pre.$x.$y.$z &> /dev/null && echo "$x.$y.$z.$l在线" || echo "$x.$y.$z.$l不在线")&
            done
        done
    done
elif [ $MASK -lt 16 ];then
    for x in `seq $W $[255-MASK+W]`;do
        for y in {0..255};do
             for z in {0..255};do
                 pre=`echo $IP | awk -F"." '{print $1"."$2}'`
                 (ping -c1 -w1 $pre.$x.$y.$z &> /dev/null && echo "$pre.$x.$y.$z在线" || echo "$pre.$x.$y.$z不在线")&
             done
        done
    done
elif [ $MASK -eq 16 ];then
    for x in {0..255};do
        for y in {0..255};do
                pre=`echo $IP | awk -F"." '{print $1"."$2}'`
                (ping -c1 -w1 $pre.$x.$y &> /dev/null && echo "$pre.$x.$y在线" || echo "$pre.$x.$y不在线")&
            done
        done
elif [ $MASK -lt 24 ];then
    for x in `seq $W $[255-MASK+W]`;do
        for y in {0..255};do
            pre=`echo $IP | awk -F"." '{print $1"."$2}'`
           (ping -c1 -w1 $pre.$x.$y &> /dev/null && echo "$pre.$x.$y在线" || echo "$pre.$x.$y不在线")&
        done
    done
elif [ $MASK -eq 24 ];then
    for x in {0..255};do
        pre=`echo $IP | awk -F"." '{print $1"."$2"."$3}'`
        (ping -c1 -w1 $pre.$x &> /dev/null && echo "$pre.$x在线" || echo "$pre.$x不在线")&
    done
elif [ $MASK -lt 32 ];then
    for x in `seq $W $[255-MASK+W]`;do
        pre=`echo $IP | awk -F"." '{print $1"."$2"."$3}'`
        (ping -c1 -w1 $pre.$x &> /dev/null && echo "$pre.$x在线" || echo "$pre.$x不在线")&
    done
elif [ $MASK -eq 32 ];then
    (ping -c1 -w1 $IP &> /dev/null && echo "$IP在线" || echo "$IP不在线")&
fi

posted @ 2024-01-21 16:49  jackofking88  阅读(22)  评论(0编辑  收藏  举报