N86第三周作业

1、RAID相关

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

1.1、RAID 0(条带化)

工作原理:RAID 0将数据分割成多个块(条带),并将这些块写入阵列中的多个磁盘上。这是一种没有数据冗余的RAID级别,仅用于提高性能。

利用率:100%。所有磁盘空间都可用于存储数据。

冗余性:无。如果一个磁盘发生故障,所有数据都会丢失。

性能:通常比单个磁盘快,因为数据读写可以同时发生在多个磁盘上。

所需硬盘数:至少两个。

1.2、RAID 1(镜像)

工作原理:RAID 1通过创建数据的完整镜像来提高数据冗余性。每个写操作都会同时写入两个(或多个)磁盘。

利用率:50%。因为只有一半的空间用于存储实际数据,另一半则用于镜像。

冗余性:高。如果一个磁盘发生故障,可以从另一个磁盘中恢复数据。

性能:通常与单个磁盘相似或稍慢,因为每个写操作都需要写入多个磁盘。

所需硬盘数:至少两个。

1.3、RAID 5

工作原理:RAID 5通过在所有磁盘上分布数据和奇偶校验信息来实现冗余。奇偶校验数据用于在磁盘故障时恢复数据。

利用率:(N-1)/N,其中N是磁盘数。因为每个磁盘都包含一部分数据和一部分奇偶校验信息。

冗余性:中。可以容忍单个磁盘故障,并从其他磁盘中恢复数据。

性能:读操作通常很快,因为数据可以并行地从多个磁盘中读取。写操作可能稍慢,因为需要更新奇偶校验信息。

所需硬盘数:至少三个。

1.4、RAID 10

工作原理:RAID 10是RAID 1和RAID 0的组合。它首先创建数据的镜像对(RAID 1),然后再对这些镜像对进行条带化(RAID 0)。

利用率:50%。与RAID 1相同,因为只有一半的空间用于存储实际数据。

冗余性:高。与RAID 1相似,可以容忍镜像对中的一个磁盘故障。

性能:通常比RAID 1快,因为数据读写可以并行发生在多个磁盘对上。

所需硬盘数:至少四个,并且磁盘数必须是偶数。

1.5、RAID 0+1

工作原理:RAID 0+1先对数据进行条带化(RAID 0),然后再对整个条带化数组进行镜像(RAID 1)。

利用率:50%。与RAID 1和RAID 10相同。

冗余性:高。与RAID 1和RAID 10相似,可以容忍镜像中的一个条带化数组故障。

性能:通常与RAID 10相似,但具体取决于实现方式。

所需硬盘数:至少四个,并且磁盘数必须是偶数。

2、LVM磁盘扩容及缩容


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

2.1、LVM磁盘扩容示例​​​​​​​

1、添加新的物理卷

pvcreate /dev/sdb
​​​​​​​

2、将新的物理卷添加到卷组中

vgextend myvg /dev/sdb

3、扩展逻辑卷

sudo lvextend -L +10G /dev/myvg/mylv

4、调整文件系统大小

resize2fs /dev/myvg/mylv

2.2、LVM磁盘缩容示例

1、调整文件系统大小

resize2fs /dev/myvg/mylv 50G  # 假设你想将文件系统大小调整为50G

2、缩小逻辑卷

lvresize -L 50G /dev/myvg/mylv

3、从卷组中移除物理卷

物理卷上没有任何数据

确保物理卷上没有分配任何逻辑扩展块:

pvmove /dev/sdb

卷组中移除物理卷:

vgreduce myvg /dev/sdb

删除物理卷:

pvremove /dev/sdb

3、程序包管理器


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

3.1、RPM (Red Hat Package Manager)

主要用于Red Hat系列发行版(如CentOS、Fedora等)。

包文件通常以.rpm结尾。

包含二进制程序、库、配置文件、文档等。

获取命令:通常从发行版的官方仓库或第三方仓库下载.rpm文件,然后使用rpm命令安装。

命令选项示例:

  • 安装:rpm -ivh package.rpm
  • 卸载:rpm -e package
  • 查询:rpm -q package

3.2、YUM (Yellowdog Updater Modified)

是RPM的前端工具,主要用于自动处理依赖关系。

通过仓库(repositories)获取软件包,这些仓库可以是本地的或远程的。

获取途径:配置仓库后,使用yum命令从仓库中获取和安装软件包。

命令选项示例:

  • 安装:yum install package
  • 升级:yum update package
  • 搜索:yum search keyword
  • 清理缓存:yum clean all

3.3、DNF (Daemon-less package manager for Fedora)

是Fedora及一些其他发行版的默认包管理器,旨在作为YUM的替代品。

提供了更快的依赖解析和更好的性能。

使用方式与YUM相似,但具有一些额外的功能和改进。

命令选项示例:与YUM类似,但可能有一些额外的选项或功能。

3.4、APT (Advanced Package Tool)

​​​​​​​主要用于Debian系列发行版(如Ubuntu、Debian等)。

通过仓库获取软件包,支持自动解决依赖关系。

获取途径:配置仓库后,使用aptapt-get命令从仓库中获取和安装软件包。

包文件通常存储在/var/cache/apt/archives/目录下。

命令选项示例:

  • 安装:apt install package 或 apt-get install package
  • 升级:apt upgrade package 或 apt-get upgrade package
  • 搜索:apt search keyword 或 apt-cache search keyword
  • 清理缓存:apt clean 或 apt-get clean

3.5、程序包获取途径

YUM/DNF:通过配置仓库地址,使用yumdnf命令从远程仓库下载和安装软件包。

APT:同样通过配置仓库地址,使用aptapt-get命令从远程仓库下载和安装软件包。

RPM:可以直接从官方网站或第三方源下载.rpm文件,然后使用rpm命令安装。

4、yum/dnf工作原理

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

4.1、yum/dnf工作原理

YUM/DNF 工作原理

YUM (Yellowdog Updater Modified) 和 DNF (Daemon-less package manager for Fedora) 都是用于管理RPM包的工具,它们的主要工作原理如下:

1、仓库配置:YUM/DNF 首先读取配置文件(通常在 /etc/yum.repos.d/ 目录下),这些配置文件定义了可用的软件仓库。每个仓库都有一个唯一的ID,以及一个或多个用于获取软件包的基础URL。

2、解析依赖:当用户请求安装一个软件包时,YUM/DNF 会检查该软件包及其所有依赖项是否已安装。如果某些依赖项未安装,它们将自动添加到安装列表中。

3、下载软件包:YUM/DNF 根据仓库配置信息,从指定的URL下载所需的软件包和依赖项。

4、安装软件包:使用RPM工具,YUM/DNF 安装下载的软件包。RPM负责解压、复制文件到适当的位置,并运行任何必要的安装脚本。

5、数据库更新:安装完成后,YUM/DNF 更新其本地数据库,记录已安装的软件包及其版本,以便将来的操作(如升级或删除)能基于最新的信息。

6、清理缓存:用户可以选择清理下载的软件包缓存,以节省磁盘空间。

4.2、搭建私有yum仓库(base, epel源)给另一个虚拟机使用

服务端:

1、创建仓库目录

2、复制软件包

将所需的RPM软件包复制到相应的仓库目录中。

3、生成仓库元数据

在每个仓库目录下运行 createrepo 命令生成元数据。

createrepo /var/yumrepo/base

4、配置HTTP服务​​​​​​​

安装并配置一个HTTP服务器(如Apache或Nginx),以便客户端可以通过HTTP访问仓库。

确保HTTP服务器配置正确,并且仓库目录对客户端可见。

客户端

1、配置客户端YUM仓库

/etc/yum.repos.d/myrepo.repo

[mybase]  
name=My Base Repository  
baseurl=http://yumrepo-server/base  
enabled=1  
gpgcheck=0  
  
[myepel]  
name=My EPEL Repository  
baseurl=http://yumrepo-server/epel  
enabled=1  
gpgcheck=0

2、在客户端使用私有仓库

使用 yum 或 dnf 命令从私有仓库安装软件包​​​​​​​

5、安装常用初始化步骤

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

rocky

#关闭SELinux 
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config

#关闭防火墙
systemctl disable --now firewalld 

#支持光盘,/misc/cd对应就是光盘内容
yum -y install autofs
systemctl enable --now autofs


#配置yum 仓库
系统源,EPEL源

#修改网卡名称
[root@rocky8 ~]#sed -ri '/GRUB_CMDLINE_LINUX=/s#(.*)"$#\1 net.ifnames=0"#' /etc/default/grub
[root@rocky8 ~]#grub2-mkconfig -o /boot/grub2/grub.cfg 
[root@rocky8 ~]#reboot

#最小化安装系统后,建议安装常用软件
yum -y install autofs vim-enhanced tcpdump autofs chrony lrzsz tree telnet ftp lftp redhat-lsb-core bash-completion net-tools postfix wget bzip2 zip unzip xz lsof mlocate man-pages rsync

Ubuntu开启root远程登录功能

#sudo -i
#passwd root
#sed -i '/PermitRootLogin/c PermitRootLogin yes' /etc/ssh/sshd_config
#systemctl restart sshd

6、httpd一键安装脚本


6. 解读一键安装httpd脚本,并自行实现一个一键安装脚本,要求
1)基于位置变量传递版本号
2)基于独立函数进行初始化步骤,禁用防火墙,安装开发依赖包。
3)基于独立函数进行下载包,解压包。
4)基于独立函数进行编译,安装包。
5)基于独立函数完成链接包。
6)启动服务,并输出自定义的语句,安装xxx服务

7、OSI模型相关


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

物理层 (Physical Layer):

  • 作用:负责传输数据的物理媒介,如电缆、光纤、无线电波等,以及信号的编码、解码和传输速率等物理特性。
  • 对应协议:没有具体的协议,但涉及电气、机械和功能特性方面的标准,如RS-232、Ethernet物理层标准IEEE 802.3等。

数据链路层 (Data Link Layer):

  • 作用:提供相邻节点间可靠的数据传输,包括帧的封装、错误检测、流控等。
  • 对应协议:Ethernet (IEEE 802.3), Wi-Fi (IEEE 802.11), Point-to-Point Protocol (PPP), HDLC, SDLC等。

网络层 (Network Layer):

  • 作用:负责网络中的寻址和路由选择,决定数据包在网络中的传输路径。
  • 对应协议:Internet Protocol (IP), Internet Control Message Protocol (ICMP), Address Resolution Protocol (ARP), Routing Information Protocol (RIP), Open Shortest Path First (OSPF)等。

传输层 (Transport Layer):

  • 作用:建立端到端的可靠或不可靠的数据传输服务,包括错误恢复、流量控制、多路复用等。
  • 对应协议:Transmission Control Protocol (TCP), User Datagram Protocol (UDP)等。

会话层 (Session Layer):

  • 作用:建立、管理和终止会话,协调不同应用进程之间的对话过程。
  • 对应协议:在实际应用中,许多会话层功能往往合并到传输层或者应用层实现,例如NetBIOS Session Service、SQL-SQLNET等。

表示层 (Presentation Layer):

  • 作用:处理数据的表示格式,包括数据加密、压缩、字符编码等,确保不同系统间的透明数据传输。
  • 对应协议:ASCII, Unicode, JPEG, MPEG等编码标准,SSL/TLS用于加密传输。

应用层 (Application Layer):

  • 作用:直接与应用程序交互,定义各种应用服务和接口,实现用户所需的各种网络服务功能。
  • 对应协议:HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), Telnet, SSH (Secure Shell), DNS (Domain Name System)等。

8、动态端口调整


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

查看当前的动态端口范围:

cat /proc/sys/net/ipv4/ip_local_port_range

修改动态端口范围为20000-60000:

sudo sysctl -w net.ipv4.ip_local_port_range="20000 60000"

这个修改将在当前系统会话中生效,但重启后设置会恢复原样。要永久保存这个设置,你需要编辑系统启动时加载的配置文件,如/etc/sysctl.conf,并在其中添加如下一行:

net.ipv4.ip_local_port_range = 20000 60000

然后,为了让修改后的配置立即生效,并在下次启动时自动加载,执行:

sysctl -p

9、TCP相关


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

9.1、TCP包头结构

TCP(传输控制协议)的包头通常包含以下字段(按字节顺序排列):

  1. 源端口号(Source Port):16位,标识发送端应用程序的端口号。
  2. 目的端口号(Destination Port):16位,标识接收端应用程序的端口号。
  3. 序列号(Sequence Number):32位,用于对发送的字节流进行编号,以便接收端能够按序组装数据。
  4. 确认号(Acknowledgment Number):32位,表示接收端期望从发送端接收的下一个字节的序列号。
  5. 数据偏移(Data Offset):4位,表示TCP头部长度,以32位字(4字节)为单位。
  6. 保留(Reserved):6位,通常设置为0。
  7. 控制位(Control Bits):6位,包含多个标志位,如:
    • URG(紧急指针有效)
    • ACK(确认)
    • PSH(推送)
    • RST(重置)
    • SYN(同步)
    • FIN(结束)
  8. 窗口大小(Window Size):16位,表示接收端愿意接收的数据的字节数。
  9. 校验和(Checksum):16位,用于校验TCP头部和数据的完整性。
  10. 紧急指针(Urgent Pointer):16位,当URG标志位为1时,该字段有效,表示紧急数据的位置。
  11. 选项(Options):可变长度,最多包含40字节的附加信息。
  12. 填充(Padding):用于确保TCP头部是32位的整数倍。

9.2、TCP三次握手

TCP三次握手是TCP协议建立连接的过程,包括以下三个步骤:

  1. SYN(同步)请求:客户端发送一个SYN报文段,并包含其初始序列号。该报文段请求与服务器建立连接。
  2. SYN+ACK(同步+确认)响应:服务器收到SYN报文段后,发送一个SYN+ACK报文段作为响应。这个报文段包含服务器的初始序列号,以及对客户端SYN报文段的确认(通过确认号实现)。
  3. ACK(确认)响应:客户端收到SYN+ACK报文段后,发送一个ACK报文段作为响应。这个报文段的序列号等于客户端的初始序列号加1,确认号等于服务器的初始序列号加1。至此,连接建立完成。

9.3、TCP四次挥手

TCP四次挥手是TCP协议断开连接的过程,包括以下四个步骤:

  1. FIN(结束)请求:客户端发送一个FIN报文段,并包含其当前的序列号。该报文段表示客户端没有更多的数据要发送,希望断开连接。
  2. ACK(确认)响应:服务器收到FIN报文段后,发送一个ACK报文段作为响应。这个报文段的序列号等于服务器的当前序列号,确认号等于客户端的序列号加1。此时,客户端进入FIN_WAIT2状态,等待服务器关闭连接。
  3. FIN(结束)请求:服务器在发送完其所有数据后,也发送一个FIN报文段给客户端。这个报文段包含服务器的当前序列号。
  4. ACK(确认)响应:客户端收到服务器的FIN报文段后,发送一个ACK报文段作为响应。这个报文段的序列号等于客户端的当前序列号,确认号等于服务器的序列号加1。至此,连接断开完成。服务器进入LAST_ACK状态,等待一小段时间以确保客户端收到ACK报文段,然后关闭连接。客户端在发送完ACK报文段后,直接关闭连接。

10、主机到主机的包传递过程


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

主机到主机的包传递过程涉及多个层次和网络组件的交互。以下是该过程的一个基本总结:

应用层数据封装

传输层封装(TCP/UDP)

网络层封装(IP)

ARP(地址解析协议)过程

数据链路层封装​​​​​​​

交换机转发

路由器转发

多次封装和解封装

目的主机接收

错误检测和重传

11、IP地址组成


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

IP地址被分为A、B、C、D四个类别,它们是根据第一个字节中的最高位来确定的。这些类别的划分有助于管理和分配IP地址,以及确定网络的大小和范围。以下是关于这四个类别的总结:

A类IP地址:

  • 地址范围:从1.0.0.0到126.0.0.0(注意,127.x.x.x是保留地址,用于回环测试)。
  • 组成:A类IP地址由1个字节的网络地址和3个字节的主机地址组成。网络地址的最高位必须是“0”。
  • 子网掩码:默认的子网掩码为255.0.0.0。
  • 容量:可用的A类网络有126个(除去0.x.x.x和127.x.x.x)。每个网络可以容纳约一亿多个主机(2^24-2个)。
  • 应用:A类地址通常分配给规模特别大的网络使用,如大型公司或组织。

B类IP地址:

  • 地址范围:从128.0.0.0到191.255.255.255。
  • 组成:B类IP地址由2个字节的网络地址和2个字节的主机地址组成。网络地址的最高两位必须是“10”。
  • 子网掩码:默认的子网掩码为255.255.0.0。
  • 容量:可用的B类网络数量少于A类,但每个网络可以容纳更多的主机(约65,000个)。
  • 应用:B类地址通常分配给中等规模的网络,如学校、大型企业等。

C类IP地址:

  • 地址范围:从192.0.0.0到223.255.255.255。
  • 组成:C类IP地址由3个字节的网络地址和1个字节的主机地址组成。网络地址的最高三位必须是“110”。
  • 子网掩码:默认的子网掩码为255.255.255.0。
  • 容量:C类地址数量最多,但每个网络可以容纳的主机数量较少(约254个)。
  • 应用:C类地址通常分配给小型网络,如家庭网络、小型企业等。

D类IP地址:

  • 地址范围:从224.0.0.0到239.255.255.255。
  • 组成:D类地址不用于标识网络或主机,而是用于多播(Multicast)通信。多播是一种允许一个或多个发送者(但不是所有发送者)发送单个数据包到多个接收者的技术。
  • 应用:D类地址通常用于网络会议、视频直播等需要多播通信的场景。

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


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

计算子网掩码

  1. 确定网络部分位数:在这个例子中,网络部分有18位。
  2. 创建子网掩码:一个标准的32位IP地址被分为网络部分和主机部分。既然网络部分有18位,那么子网掩码的前18位就是1(表示网络部分),后14位就是0(表示主机部分)。
  3. 转换为点分十进制:将32位的子网掩码转换为点分十进制形式。前18位是1,可以表示为11111111.11000000.00000000.00000000。转换为点分十进制就是255.192.0.0

计算主机数

  1. 确定主机部分位数:一个32位的IP地址减去网络部分的18位,剩下14位用于主机部分。
  2. 计算主机数:由于每个位可以是0或1,所以主机数就是2的14次方。但是,我们要减去两个地址:网络地址(所有主机位都是0)和广播地址(所有主机位都是1)。因此,主机数 = 2^14 - 2 = 16,382。

详细说明计算方法

  1. CIDR表示法:CIDR表示法/18告诉我们网络地址的前18位是固定的,而后14位可以用于主机地址。
  2. 子网掩码:子网掩码用于区分IP地址中的网络部分和主机部分。在这个例子中,前18位是网络部分,所以子网掩码的前18位是1,后14位是0。转换为点分十进制就是255.192.0.0
  3. 主机数:由于有14位用于主机部分,我们可以计算出可能的主机数。但是,需要减去网络地址和广播地址,因为它们不是有效的主机地址。所以,主机数 = 2^14 - 2 = 16,382。

13、


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

确定子网掩码

  • A的子网掩码为/16,即255.255.0.0(因为前16位是网络部分)。
  • B的子网掩码为/24,即255.255.255.0(因为前24位是网络部分)。

计算网络地址

  • A的网络地址是10.0.0.0(将IP地址10.0.1.1与子网掩码255.255.0.0进行AND操作)。
  • B的网络地址是10.0.2.0(将IP地址10.0.2.2与子网掩码255.255.255.0进行AND操作)。

比较网络地址

  • A和B的网络地址不同(10.0.0.0与10.0.2.0),因此它们不在同一个网段。

确定是否能通信

  • 由于A和B不在同一个网段,并且没有提到任何路由设备(如路由器)来转发这些数据包,因此默认情况下A和B不能直接通信。但是,如果它们之间存在正确配置的路由设备,并且路由表允许这些数据包从一个网络转发到另一个网络,那么A和B仍然可以通信。

综上所述,A(10.0.1.1/16)和B(10.0.2.2/24)不在同一个网段,并且默认情况下它们不能通信。但是,通过正确配置的路由设备,它们仍然可以相互通信。

14、


14. 如何将10.0.0.0/8划分32个子网?
求每个子网的掩码,主机数。

要将CIDR块 10.0.0.0/8 划分为32个子网,我们需要增加额外的位数来区分这些子网。由于 10.0.0.0/8 表示有一个8位的网络前缀,我们已经有足够的空间来划分出更多的子网。具体地,因为 2^5=32 ,所以我们需要借用5位主机位来划分子网,这将使得子网掩码变成 /13(原来的8位加上新增的5位)。

因此,新的子网掩码将是 255.248.0.0,这是因为前13位为1,其余位为0(即 11111111.11111000.00000000.00000000)。

接下来,计算每个子网的主机数。原本的A类地址有24位主机位(因为网络前缀占了8位,总共32位IP地址减去网络前缀),现在我们借用5位来划分子网,剩余的主机位为 24−5=19 位。所以,每个子网理论上可以有的主机数为 2^19 - 2=524286(减2是因为每个子网的第一个地址是网络地址,最后一个地址是广播地址,都不能分配给主机)。

总结:

  • 每个子网的掩码:255.248.0.0 或者 /13
  • 每个子网的主机数:524,286(理论上,实际可用主机数为524,284)

15、


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

配置IP地址和子网掩码

ip addr add 10.0.0.100/24 dev eth0  # eth0是网卡接口

或使用 `sudo` 权限编辑网络配置文件,例如对于基于Systemd的系统(如Ubuntu 18.04及以上版本),编辑 `/etc/netplan/00-installer-config.yaml`。
   - 添加或修改如下配置:
 yaml
     network:
       version: 2
       renderer: NetworkManager
       ethernets:
         enp0s3:  # 请替换为您的实际网络接口名称
           addresses: [192.168.1.100/24]  # IP和子网掩码
           gateway4: 192.168.1.1  # 默认网关

   - 应用配置并重启网络服务:`sudo netplan apply`

配置DNS

DNS配置通常在/etc/resolv.conf文件中进行。你可以使用文本编辑器(如nanovigedit)来编辑此文件。、

vi /etc/resolv.conf

nameserver 8.8.8.8 nameserver 8.8.4.4

主机名​​​​​​​

​​​​​​​sudo hostnamectl set-hostname myhostname

hostname myhostname

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

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

`/etc/sysconfig/network-scripts/ifcfg-eth0` 是 Linux 系统中用于配置第一个以太网接口(eth0)的配置文件。这个文件包含了网络接口的各种静态配置信息,允许系统管理员手动设定IP地址、子网掩码、网关、DNS等网络参数。下面是一些常见的配置项及其含义:

- **DEVICE**: 设备名,对应于物理网络接口,例如 `eth0` 表示第一个以太网接口。

- **HWADDR**: 物理地址(MAC地址),例如 `00:0c:29:4c:e5:23`。

- **TYPE**: 接口类型,通常为 `Ethernet`,表示这是一个以太网接口。

- **ONBOOT**: 控制接口是否在系统启动时激活。如果设为 `yes`,则系统启动时会自动激活该接口;设为 `no` 则不会自动激活。

- **IPADDR**: 静态分配给接口的IP地址,例如 `172.16.12.244`。

- **NETMASK**: 子网掩码,用于定义本地网络的大小,例如 `255.255.255.0`。

- **NETWORK**: 网络地址,通常由IP地址和子网掩码计算得出,但也可以手动指定,例如 `172.16.12.0`。

- **BROADCAST**: 广播地址,用于向网络中的所有主机发送数据包,通常由IP地址和子网掩码自动计算,例如 `172.16.12.255`。

- **GATEWAY**: 默认网关地址,指定了数据包在前往不同网络时需要经过的第一个路由器的IP地址,例如 `172.16.12.1`。

- **DNS1**, **DNS2**: 首选和备选DNS服务器的IP地址,用于域名解析,例如 `8.8.8.8` 和 `8.8.4.4`(Google的公共DNS服务器)。

- **BOOTPROTO**: 接口使用的协议来获取IP地址。可能的值包括 `static`(静态分配)、`dhcp`(动态获取)等。

这些配置项通过简单的键值对形式写入文件中,每一行一个配置项,通常格式为 `配置项=值`。例如:

```plaintext
DEVICE=eth0
HWADDR=00:0c:29:4c:e5:23
TYPE=Ethernet
ONBOOT=yes
IPADDR=172.16.12.244
NETMASK=255.255.255.0
GATEWAY=172.16.12.1
DNS1=8.8.8.8
DNS2=8.8.4.4
```

修改这个文件之后,通常需要重启网络服务(如使用 `systemctl restart network` 或 `systemctl restart networking` 命令)或重启系统使更改生效。


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

在Linux系统中,`bond0` 代表一个网络接口绑定(Bonding)设备,它允许将两个或更多物理网络接口(如eth0和eth1)组合成一个逻辑接口,以此来提高网络连接的可用性和带宽。配置Bonding通常涉及修改或创建一个名为 `ifcfg-bond0` 的配置文件。以下是基于 `/etc/sysconfig/network-scripts/ifcfg-bond0` 配置文件来设置Bonding的一个示例,以及相关命令的简要说明。

### 配置文件示例

假设我们希望配置一个模式为 `mode=4`(平衡负载,LACP协议)的Bonding设备,以下是一个基本的配置示例:

```plaintext
# /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
TYPE=Bond
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4

# Bonding配置
BONDING_MASTER=yes
BONDING_OPTS="mode=4 miimon=100 downdelay=200 updelay=200 xmit_hash_policy=layer3+4 lacp_rate=1"
```

- `DEVICE`: 定义了Bond设备的名称。
- `BOOTPROTO`, `ONBOOT`, `USERCTL` 设置了启动时自动激活、不允许非root用户控制等属性。
- `TYPE=Bond` 指定这是一个Bond设备。
- `IPADDR`, `NETMASK`, `GATEWAY`, `DNS1`, `DNS2` 分别设置了IP地址、子网掩码、默认网关和DNS服务器地址。
- `BONDING_MASTER=yes` 标记此接口为主控接口。
- `BONDING_OPTS` 包含了Bonding的具体配置,这里设置了模式为4(LACP)、链路监测间隔为100ms、上下行延迟以及传输哈希策略等。

### 配置物理接口

除了配置 `bond0` 外,还需要配置参与Bonding的物理接口(如eth0和eth1),通常需要关闭它们的IP配置,并将其作为Bond的slave设备。示例如下:

#### eth0 示例配置

```plaintext
# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
```

#### eth1 示例配置

```plaintext
# /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
```

### 应用配置

完成配置文件的编辑后,需要重启网络服务或相关接口使配置生效。在Systemd管理的系统中,可以使用以下命令:

```bash
sudo systemctl restart network
# 或者对于某些系统
sudo systemctl restart networking
```

或者,如果你只想重启特定接口,可以使用:

```bash
sudo ifdown eth0 && sudo ifdown eth1 && sudo ifup bond0
```

确保按照你的具体系统和服务管理方式来执行正确的命令。完成后,你可以使用 `ip addr show bond0` 或 `ifconfig bond0` 来验证Bonding设备是否配置成功并已正确获取IP地址。


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

$ ifconfig eth0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1 


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

#!/bin/bash

# 设置要扫描的网段和子网掩码

NETWORK="192.168.1" SUBNET_MASK="255.255.255.0"

# 从.1开始,假设.0是网关或保留地址

START_IP="${NETWORK}.1"

END_IP="${NETWORK}.254"

# 提取网络部分的最后一段(用于生成IP范围)

NETWORK_PART=$(echo $NETWORK | awk -F. '{print $NF}')

# 使用ping来测试每个IP

for (( i=$NETWORK_PART; i<=254; i++ ))

do

        IP="${NETWORK}.${i}"

        # 使用ping命令,并只发送一个请求,等待1秒超时

        ping -c 1 -W 1 $IP &> /dev/null

        if [ $? -eq 0 ];

        then echo "$IP is online"

        fi

done

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值