首页 > 其他分享 >三

时间:2024-01-21 19:11:26浏览次数:18  
标签: 主机 etc yum root ID eth0

一.RAID原理

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

RAID等级 最少硬盘 最大容错 可用容量 读取性能 写入性能 安全性 目的 应用场景
单一硬盘 (参考) 0 1 1 1
JBOD 1 0 n 1 1 无(同RAID0) 增加容量 个人(暂时)存储备份
0 1 0 n n n 一个硬盘异常,全部硬盘都会异常 追求最大容量、速度 影片剪接缓存用途
1 2 n-1 1 n 1 高,一个正常即可 追求最大安全性 个人、企业备份
5 3 1 n-1 n-1 n-1 追求最大容量、最小预算 个人、企业备份
6 4 2 n-2 n-2 n-2 安全性较RAID5高 同RAID5,但较安全 个人、企业备份
10 4 综合RAID 0/1优点,理论速度较快 大型数据库、服务器
50 6 提升数据安全
60 8 提升数据安全

https://www.cnblogs.com/cloudos/p/9348315.html

二. 完成不影响业务对LVM磁盘扩容及缩容示例。

完成不影响业务对LVM磁盘扩容及缩容示例

一、 逻辑卷使用

1、 创建物理卷(pvcreate 创建物理卷)

2、 创建卷组(vgcreate 为卷组分配物理卷)

3、 创建逻辑卷(lvcreate 从卷组创建逻辑卷)

4、 格式化并挂载(mkfs.ext4 mount)

使用LVM管理可以实现在线扩容逻辑卷不影响业务。

#创建物理--基于物理卷创建卷组--基于卷组创建逻辑卷 
#XFS文件系统不支持缩减,会格式化数据
#EXT4文件系统支持在线缩减,但也必须先备份数据以防万一

pvcreate /dev/sdb1
vgcreate datavg /dev/sdb1
vgextend datavg  /dev/sdc5
lvcreate -L 3G -n weblv datavg    
mkfs.ext4 -L webapp /dev/datavg/weblv
mkdir /webapp
mount /dev/mapper/datavg-weblv /webapp/
lvextend -L 5G /dev/mapper/datavg-weblv
resize2fs /dev/mapper/datavg-weblv

lvreduce -L 4G /dev/datavg/weblv

优点:
\1. 文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。
\2. 可以在系统运行的状态下动态的扩展文件系统的大小
\3. 可以增加新的磁盘到LVM的存储池中。
\4. 可以以镜像的方式冗余重要的数据到多个物理磁盘。
\5. 可以方便的导出整个卷组到另外一台机器。

缺点:
\1. 在从卷组中移除一个磁盘的时候必须使用reducevg命令(这个命令要求root权限,并且不允许在快照卷组中使用)。
\2. 当卷组中的一个磁盘损坏时,整个卷组都会受到影响。
\3. 因为加入了额外的操作,存储性能受到影响
\4. 不能减小文件系统大小(受文件系统类型限制)

三、主流的程序包管理器

软件包管理器功能:
将编译好的应用程序的各组成文件打包一个或几个程序包文件,利用包管理器可以方便快捷地实现程序
包的安装、卸载、查询、升级和校验等管理操作

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

程序包管理器包内的文件:

1、二进制文件 2、库文件 3、配置文件 4、帮助文件

系统发行版的光盘或系统官方网站,常用获取包的途径:

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
123456

Ubuntu 镜像:

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

第三方支持提供

https://fedoraproject.org/wiki/EPEL
https://mirrors.aliyun.com/epel/
https://mirrors.cloud.tencent.com/epel/
123

软件项目官方站点

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/
RPM
#rpm常用选项
rpm -ivh //显示安装进度
-q 查看安装的包名
-ql 详细显示安装的包的list
-qi 查看包的版本、包名、版本、安装时间、发行者、功能
-qf 反向查询文件来自哪个包
#[root@Rocky8 ~]# rpm -qf /etc/passwd
setup-2.12.2-7.el8.noarch
-K 检查包
-e 卸载
12345678910
YUM
#yum常用选项
yum provides */route 已知文件名路径,查找出对应的软件仓库
yum [options] [command] [package …]
yum -y 忽略询问安装进度
yum install 安装软件工具
yum info 查询软件详细信息
yum remove 卸载程序包
yum -y install --downloadonly --downloaddir=/data/httpd httpd 只下载相关依赖包不安装
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 清除缓存
yum makecache 构建缓存
yum history 安装历史

#yum包索引配置文件路径
/etc/yum.repos.d/*.repo
1234567891011121314
APT
#apt常用选项
apt install 安装
apt show 显示安装细节
apt list 列出包含条件的包
apt remove/purge 卸载(推荐使用purge卸载,可移除软件包和配置文件)
apt update 刷新存储库索引
apt upgrade 升级所有可升级的软件包
apt full-upgrade 在升级软件包时自动处理依赖关系
apt search 搜索应用程序
apt-cache stats 查看包相关信息
dpkg -S filename 查找存在的文件来自于哪个包

#apt包索引配置文件路径
/etc/apt/source.list
/etc/apt/source.list.d

四 yum/dnf 工作原理

yum/dnf 是基于C/S 模式
yum 服务器存放rpm包和相关包的元数据库
yum 客户端访问yum服务器进行安装或查询等
yum 实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元
数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下
载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安
装。

私有yum仓库搭建
yum客户端配置 man 5 yum.conf 查看帮助
/etc/yum.conf			#为所有仓库提供公共配置
/etc/yum.repo.d/*.repo  #为每个仓库提供配置文件	
repo仓库配置文件指向的定义:
[BaseOS]
name=BaseOS
baseurl=file://
		http://
		https://
		ftp://
gpgcheck=[0|1]  //校验合法性 ,0不校验,1校验
enable=[0|1]   //0禁用,1启用

#常用yum源
https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/Everything/$basearch
https://mirrors.cloud.tencent.com/epel/$releasever/Everything/$basearch/
[repositoryID]
name=Some name for this repository
baseurl=url://path/to/repository/
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
failovermethod={roundrobin|priority}
roundrobin:意为随机挑选,默认值
priority:按顺序访问
cost= 默认为1000
 yum -y install httpd
 systemctl enable --now httpd
 mkdir /var/www/html/test/
 dnf reposync --repoid=epel --download-metadata -p /var/www/html/test
dnf命令遇到问题:
#dnf reposync --repoid=epel --download-metadata -p /var/www/html/test
[CentOS Stream 8]:错误:未知的存储库 epel [已解决]
 

# dnf --enablerepo=centos-openstack-yoga,epel,powertools -y install openstack-keystone python3-openstackclient httpd mod_ssl python3-mod_wsgi python3-oauth2client mod_ssl
Error: Unknown repo: 'epel'
溶液:EPEL(Extra Packages for Enterprise Linux)是 FEDORA 团队的一个开源和基于社区的存储库项目。该存储库为 Enterprise Linux 提供了一组高质量的附加软件包,包括 RHEL、CentOS、Alma Linux 和 Rocky Linux。

如何在 CentOS Stream 8 上安装 EPEL 存储库
步骤1:若要在 CentOS Stream 8 上安装 EPEL 存储库,请运行以下命令:

# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
[或]

# dnf config-manager --set-enabled PowerTools
# dnf install epel-release
步骤2:更新软件包

# dnf update
步骤3:验证是否已启用 EPEL 存储库

# dnf repolist
repo id                       repo name
appstream                     CentOS Linux 8 - AppStream
baseos                        CentOS Linux 8 - BaseOS
epel                          Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                  Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                        CentOS Linux 8 - Extras
powertools                    CentOS Linux 8 - PowerTools

五、系统安装之后的常用初始化步骤。rocky/ubuntu

1.关闭selinux:
#临时关闭selinux:执行命令:setenforce 0
#永久关闭selinux服务
[root@Rocky8 ~]# sed -i.bak '/SELINUX=enforcing/c SELINUX=disabled' /etc/selinux/config
#验证状态
[root@Rocky8 ~]# getenforce  //初始值为enforcing
Disabled
 
2.关闭防火墙
[root@Rocky8 ~]# systemctl disable --now firewalld
 
3.别名
修改主机名:

centos 6 :需修改文件/etc/sysconfig/network/,reboot后生效
centos 7之后版本、rocky及ubuntu :hostnamectl set-hostname XXX ,bash生效
 
ubuntu开启远程登录功能

ding@ubuntu2204:~$ sudo su
[sudo] password for ding: 
root@UBUNTU2204:~# vim /etc/ssh/sshd_config
**文件中添加内容**
PermitRootLogin yes

root@UBUNTU2204:~# systemctl restart sshd  //重启服务生效
 
4.修改网卡名称eth*
centos 6

[root@centos 6 ~]# vim /etc/udev/rules.d/70-persistent-net.rules
重启网卡:service network restart
 
centos 7

[root@Rocky7 ~]# sed -ri '/GRUB_CMDLINE_LINUX=/s#(.*)"$#\1 net.ifnames=0' /etc/default/grub  //修改网卡名称为eth0
[root@Rocky7 ~]# grub2-mkconfig  -o /boot/grub2/grub.cfg ; reboot
[root@Rocky7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@Rocky7 ~]# systemctl restart network //重启网卡
 
centos 8 及rocky

[root@Rocky8 ~]# sed -ri '/GRUB_CMDLINE_LINUX=/s#(.*)"$#\1 net.ifnames=0#' /etc/default/grub //修改网卡名称为eth0
[root@Rocky8 ~]# grub2-mkconfig  -o /boot/grub2/grub.cfg ; reboot
[root@Rocky8 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@Rocky8 ~]# nmcli connection reload   //重启网卡
[root@Rocky8 ~]# nmcli connection up eth0   //重启网卡
 
添加IP信息
centos :

[root@Rocky8 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
  1 DEVICE=eth0
  2 NAME=eth0
  3 #BOOTPROTO=dhcp  //自动分配IP
  4 BOOTPROTO=static  //配置静态IP
  5 IPADDR=192.168.188.7
  6 NETMASK=255.255.255.0
  7 #PREFIX=24  //子网掩码
  8 GATEWAY=192.168.188.2
  9 DNS1=192.168.188.2
 10 DNS2=223.6.6.6

**按照具体系统重启网卡即可生效**
 
ubuntu :

root@UBUNTU2204:~# sed -ri '/GRUB_CMDLINE_LINUX=/s#(.*)"$#\1 net.ifnames=0#' /etc/default/grub //修改网卡名称为eth0
root@UBUNTU2204:~# grub2-mkconfig  -o /boot/grub2/grub.cfg ; reboot
root@UBUNTU2204:~# vim /etc/netplan/00-installer-config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.188.10/24]
      gateway4: 192.168.188.2
      nameservers:
        addresses: [192.168.188.2]
root@ubuntu2204:~# sudo netplan apply //生效配置
5.配置yum源仓库
系统源,EPEL源

6.最小化安装系统后,建议安装常用软件
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

六、一键安装HTTPD

#!/bin/bash
  CPUS=`grep -c  processor /proc/cpuinfo`
  HTTPD_VERSION=2.4.57
  INSTALL_DIR=/apps/httpd
  COLOR="echo -e  \E[32;1m"
  END="\E[0m"
 
  . /etc/os-release
  
   if [ $ID = 'rocky' -o $ID = "centos" ];then
        systemctl disable --now firewalld
        rpm -q wget || yum -y install wget
        yum -y install gcc make apr-devel apr-util-devel openssl-devel pcre-devel redhat-rpm-config bzip2
     elif  [ $ID = 'ubuntu' ];then
       apt update
       dpkg -l wget || apt -y install wget
       apt -y  install  libapr*  libpcre3* libssl-dev make
     else
        $COLOR"不支持此系统"$END
        exit
    fi
  
   cd /usr/local/src
      if [ -e httpd-$HTTPD_VERSION.tar.bz2 ];then
      echo "$COLOR"即将解包"$END";
    else
      wget https://dlcdn.apache.org//httpd/httpd-${HTTPD_VERSION}.tar.bz2  || { $COLOR "下载失败,退出" $END;exit ; }
    fi
  
 tar xf httpd-$HTTPD_VERSION.tar.bz2
 cd /usr/local/src/httpd-$HTTPD_VERSION
 ./configure --prefix=/apps/httpd
 make -j $CPUS && make install
 ln -s /apps/httpd/bin/apachectl /usr/local/bin
 apachectl start && $COLOR"安装成功!"$END
 echo "安装成功请访问http://`hostname -I`"

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

  1. 物理层 Physical:主要是在物理媒体上实现比特流的透明传输,物理层传输的单位是比特
    透明传播:不管所传数据是怎样的比特组合,都应能在链路上传送。主要协议:Rj45、802.3
  2. 数据连接层 Data Link:把网络层的传下来的数据报组装成帧。链路层的传输单位是帧。主要协议:SDLC、HDLC、PPP、STP
  3. 网络层 Network:路由选择【路由:路径的选择,选择最佳的路径】、流量控制、差错控制、拥塞控制。主要协议:IP、IPX、ICMP、IGMP、ARP、RARP、OSPF
  4. 传输层 Transport:实现终端和终端的通讯,可靠传输和不可靠传输、差错控制、流量控制、复用分用。主要协议:TCP、UDP
  5. 会话层 session:建立、管理、终止会话;使用校验点可使会话在通讯失效时从校验点/同步点继续恢复通讯。实现数据同步。主要协议:ADSP、ASP
  6. 表示层 Presentation:数据格式的变换(翻译)、数据加密解密、数据的压缩和恢复。主要协议:JPEG、ASCII
  7. 应用层 Application:应用层是用户与网络的界面,即所有能与用户交互并且产生网络流量的程序。件传输(FTP),电子邮件(SMTP),万维网(HTTP)

八、调整动态端口范围为20000-60000

root@Ubuntu:~# cat /proc/sys/net/ipv4/ip_local_port_range
32768   60999
root@Ubuntu:~# echo 20000 60000 > /proc/sys/net/ipv4/ip_local_port_range
root@Ubuntu:~# cat /proc/sys/net/ipv4/ip_local_port_range
20000    60000

九、总结TCP包头结构,TCP三次握手,4次挥手

TCP包头
1、源端口、目标端口:计算机之间进程的通信是通过端口连接的,同一时间一个端口只允许一个进程占用,所以通过源端口和目的端口就可以知道那两个进程通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个,即65536
2、序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每232个字节,就会出现序列号回绕,再次从 0 开始
3、确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方:我希望你(指发送方)下次发送的数据的第一个字节数据的编号为此确认号
4、数据偏移:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节
5、SYN:同步标志位,用于建立会话连接,同步序列号;
6、ACK:确认标志位,对已接收的数据包进行确认;
7、FIN:完成标志位,表示我已经没有数据要发送了,即将关闭连接;
8、PSH:推送标志位,表示该数据包被对方接收后应立即交给上层应用,而不在缓冲区排队;
9、RST:重置标志位,用于连接复位、拒绝错误和非法的数据包;
10、URG:紧急标志位,表示数据包的紧急指针域有效,用来保证连接不被阻断,并督促中间设备尽快处理;
11、窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数据,由Window size value * Window size scaling factor(此值在三次握手阶段TCP选项Window scale协商得到)得出此值
12、校验和:提供额外的可靠性
13、紧急指针:标记紧急数据在数据字段中的位置

TCP三次握手

第一次握手:
客户端将TCP报文标志位SYN置为1,随机产生一个序号值seq=J,保存在TCP首部的序列号(Sequence Number)字段里,指明客户端打算连接的服务器的端口,并将该数据包发送给服务器端,发送完毕后,客户端进入SYN_SENT状态,等待服务器端确认。

第二次握手:
服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将TCP报文标志位SYN和ACK都置为1,ack=J+1,随机产生一个序号值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。

第三次握手:
客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。

四次挥手

第一次挥手:
Client端发起挥手请求,向Server端发送标志位是FIN报文段,设置序列号seq,此时,Client端进入FIN_WAIT_1状态,这表示Client端没有数据要发送给Server端了。

第二次分手:
Server端收到了Client端发送的FIN报文段,向Client端返回一个标志位是ACK的报文段,ack设为seq加1,Client端进入FIN_WAIT_2状态,Server端告诉Client端,我确认并同意你的关闭请求。

第三次分手:
Server端向Client端发送标志位是FIN的报文段,请求关闭连接,同时Client端进入LAST_ACK状态。

第四次分手:
Client端收到Server端发送的FIN报文段,向Server端发送标志位是ACK的报文段,然后Client端进入TIME_WAIT状态。Server端收到Client端的ACK报文段以后,就关闭连接。此时,Client端等待2MSL的时间后依然没有收到回复,则证明Server端已正常关闭,那好,Client端也可以关闭连接了。

十、总结主机到主机的包传递过程

两主机要通信时,要把应用数据封装成IP包,然后再交给下一层数据链路层继续封装成帧,之后根据MAC地址把数据从一台主机发送出去,传送到另一台主机。
如图,当n0和n1通信时,假如n0知道n1的IP地址(IP地址一般由由用户手动输入或者应用程序填充,或者通过DNS域名解析协议得知)却不知道它的MAC地址。通信步骤如下:

  • n0发送一个ARP广播请求(源IP是n0,目的IP是n1,源MAC是n0,目标MAC为FFFF:FFFF:FFFF)给同一广播域中的所有成员

  • 交换机sw0从自己的1接口收到该广播包,然后读取该帧的源MAC地址和目的MAC地址,由于sw0刚启动时,它的MAC表是空的,所以它会把n0的MAC地址和与之对应的接口1放到一张表里,这张表就是MAC地址表。然后交换机从其它接口广播该帧。

  • 其它主机收到该帧后,因为是广播帧,所以主机都可以拆掉二层的封装,查看目标IP地址是不是自己。目标IP不是自己的,丢弃此包。目标IP是自己的,首先把源主机的IP地址和MAC地址映射关系存入自己的ARP映射表中,然后构建ARP响应数据包,此时,二层的源MAC为被解析设备的MAC,目的为ARP解析发起者的MAC。这个响应不再以广播形式发送,而是直接发给主机A。

  • sw0收到应答包,又会检查源MAC、目标MAC,把n1的MAC和自身的接口2放进MAC地址表中。再查看自己的MAC地址表,发现存在目标MAC与自己的1接口对应,那它就会直接把这个应答包从接口1发送出去。

  • 主机n0收到应答包,发现目标MAC地址是自己,就会处理这个包。并把n1的MAC与IP放进自己的ARP缓存表中。这时,主机n0知道了n1的MAC地址了,就可以进行二层封装发送数据了。

十一、总结IP地址 A, B, C, D 类,并解析IP地址的组成

IP地址的组成

它们可唯一标识 IP 网络中的每台设备 ,每台主机(计算机、网络设备、外围设备)必须具有唯一的地址(ip地址可以实现逻辑管理功能)

IP地址由两部分组成:IP地址=网络位+主机位
		-网络位:标识的是internet上的一个子网
		-主机位:标识的子网中的某台主机

网络 ID:标识网络,每个网段分配一个网络ID,处于高位
主机 ID:标识单个主机,由组织分配给各设备,处于低位
IPv4地址格式:点分十进制记法
IP地址 分类
A类地址:
0 0000000 - 0 1111111.X.Y.Z : 0-127.X.Y.Z
网络ID位是最高8位,主机ID是24位低位
网络数:126=2^7(可变是的网络ID位数)-2
每个网络中的主机数:2^24-2=16777214
默认子网掩码:255.0.0.0
私网地址:10.0.0.0
范例:114.114.114.114,8.8.8.8,1.1.1.1,123.56.174.200,119.29.29.29

B类地址:
10 000000 - 10 111111.X.Y.Z:128-191.X.Y.Z
网络ID位是最高16位,主机ID是16位低位
网络数:2^14=16384
每个网络中的主机数:2^16-2=65534
默认子网掩码:255.255.0.0
私网地址:172.16.0.0-172.31.0.0
范例:180.76.76.76,172.16.0.1

C类地址:
110 0 0000 - 110 1 1111.X.Y.Z: 192-223.X.Y.Z
网络ID位是最高24位,主机ID是8位低位
网络数:2^21=2097152
每个网络中的主机数:2^8-2=254
默认子网掩码:255.255.255.0
私网地址:192.168.0.0-192.168.255.0
范例: 223.6.6.6,223.5.5.5

D类地址:
组(多)播,1110 0000 - 1110 1111.X.Y.Z: 224-239.X.Y.Z
E类:保留未使用,240-255

十二、201.222.200.111/18 为例 计算主机数 子网掩码

CIDR:无类域间路由,目前的网络已不再按A,B,C类划分网段,可以任意指定网段的范围
CIDR无类域间路由表示法:IP/网络ID位数,如:172.16.0.100/16
netmask子网掩码:32位或128位(IPv6)的数字,和IP成对使用,用来确认IP地址中的网络ID和主机ID,对应网络ID的位为1,对应主机ID的位为0,范例:255.255.255.0 ,表现为连续的高位为1,连续的低位为0
**主机数**
CIDR表示法显示网络id是前18位,所以主机id为后14位,主机数=2^14-2=16382
**子网掩码**
子网掩码
主机IP为 201.222.200.111/18
根据CIDRD对应的子网掩码为:255.255.11000000.0 转换成二进制就是255.255.192.0

公式:

网络数=2^可变的网络ID位数

主机数=2^主机ID的位数-2

网络ID=IP与子网掩码netmask

划分子网:网络ID向主机借位,如果借N位,则划分2^N个子网

主机数=2^(32-18)-2=16382

子网掩码:

​ 11111111.11111111.11 000000.000000

​ 255.255.192.0

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

0与0的结果是0,1与0的结果是0,1与1的结果是1

A:      二进制:00001010.00000000.00000001.00000001     
      子网掩码:11111111.11111111.00000000.00000000
      与的结果:00001010.00000000.00000000.00000000

B:     二进制:00001010.00000000.00000010.00000010 
     子网掩码:11111111.11111111.11111111.00000000
     与的结果:00001010.00000000.00000010.00000000
     
     A:10.0.0.0  B:10.0.2.0
     A包含B,A可以访问B,B访问A需要通过网关和路由
  1. 如何将10.0.0.0/8划分32个子网
划分子网:将一个大的网络(主机数多)划分成多个小的网络(主机数少),主机ID位数变少,网络ID位数变多,网络ID位向主机ID位借n位,将划分2^n个子网。

公式:
网络数=2^可变的网络ID位数
主机数=2^主机ID的位数-2
网络ID=IP与子网掩码netmask
CIDR表示法,可以表示网络的ID的位数,IP/网络ID的位数
netmask子网掩码: 可以表示网络ID的位数,32bit二进制,对应于网络ID的位为1,对应于主机ID的位为0
划分子网:网络ID向主机借位,如果借N位,则划分2^N个子网

由第一题可知划分子网后的IP为10.0.0.0/13
所以子网掩码为11111111.11111000.0.0 转换为10进制为255.248.0.0
主机数=2^(32-13)-2=524286

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

  • 配置IP地址和子网掩码:

    ifconfig eth0 192.168.1.2 netmask 255.255.255.0
    
  • 配置网关:

    route add default gw 192.168.0.2
    
  • 配置DNS:

    修改/etc/resolv.conf文件,添加以下内容:

    nameserver 8.8.8.8
    nameserver 114.114.114.114
    
  • 配置主机名:

    [root@Rocky8 ~]#hostnamectl set-hostname admin
    [root@Rocky8 ~]#hostname
    admin
    
  • 网卡生效

[root@Rocky8 ~]#nmcli connection reload 
[root@Rocky8 ~]#nmcli connection up eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

十六、解析/etc/sysconfig/network-scripts/ifcfg-eth0配置格式

DEVICE=eth0
BOOTPROTO=static
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
ONBOOT=yes
DEVICE:指定网络接口的名称,即eth0。
BOOTPROTO:指定网络接口的启动协议。该参数的可选值有static、dhcp、bootp、none。在本例中,设为static,表示该网卡使用静态IP地址配置。
IPADDR:指定网络接口的IP地址。
NETMASK:指定网络接口的子网掩码。
GATEWAY:指定网络接口的默认网关。
DNS1和DNS2:指定DNS服务器的IP地址。可以指定多个DNS服务器,以DNS1、DNS2、DNS3等方式命名。
ONBOOT:指定网络接口是否在系统启动时自动启用。设为yes表示自动启用。

静态配置

[root@Rocky8 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
  1 DEVICE=eth0
  2 NAME=eth0
  3 #BOOTPROTO=dhcp  //自动分配IP
  4 BOOTPROTO=static  //配置静态IP
  5 IPADDR=192.168.188.7
  6 NETMASK=255.255.255.0
  7 #PREFIX=24  //子网掩码
  8 GATEWAY=192.168.188.2
  9 DNS1=192.168.188.2
 10 DNS2=223.6.6.6
[root@Rocky8 ~]# nmcli connection reload   //重启网卡
[root@Rocky8 ~]# nmcli connection up eth0   //重启网卡

十七、基于配置文件或命令完成bond0配置

vim /etc/sysconfig/network-scripte/ficfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
#miimon指定链路监测时间间隔,如果miimon=100,那么系统每100ms监测一次链路连接的状态,如果有一条路线不通,则转如另一条路线
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
 
vim /etc/sysconfig/network-scripte/ficfg-eth0
[root@localhost network-scripts]# cat ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
 
vim /etc/sysconfig/network-scripte/ficfg-eth1
[root@localhost network-scripts]# cat ifcfg-eth1
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
 
#查看当前使用的是那个网卡
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v5.14.0-162.6.1.el9_1.x86_64
 
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0
 
Slave Interface: eth1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:b4:0a:5b
Slave queue ID: 0
十八、通过ifconfig命令结果找到ip地址
 # ifconfig | sed -rn '2s#^(.*inet )([0-9].+)( netmask.*)$#\2#p'

十九、网络内主机是否在线

#!/bin/bash
 for i in $(seq 254)
   do
      ping -c1 192.168.188.${i} >> /dev/null
      if [ $? -eq 0 ];then
          echo "192.168.188.${i}"
          echo "192.168.188.${i}" >> /apps/ip_$(date +%F-%H).log
      fi
    done

标签:,主机,etc,yum,root,ID,eth0
From: https://www.cnblogs.com/meishijia8/p/17978184

相关文章