Skip to content

IT 运维面试问题总结-基础服务、磁盘管理、虚拟平台和系统管理

面试题 Linux 运维

1、简述 Linux 中常见的系统服务,其作用分别是?

常见的系统服务及其作用有:

  • NTP/Chrony:用于时钟同步;
  • DHCP:动态主机配置协议,用于自动分配主机地址,默认使用 UDP 63 端口;
  • DNS:域名解析,运行在 UDP 协议之上,默认使用 53 端口;
  • NFS:网络文件系统,依赖于 RCP 协议,其基本原则是“容许不同的客户端及服务端通过一组 RPC 分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
  • Postfix:邮件服务;
  • rsync:远程数据备份服务。
  • VPN:虚拟专用网。

2、简述 FTP 主要的工作模式?

FTP 工作模式是以服务端角度来区分,有主动模式和被动模式。

主动模式:是指由 FTP 服务端主动向客户端发起连接,服务端端口号为 20(用于传输)和 21(用于控制),即 20 端口向客户端的一个大于 1024 的随机端口传输数据;

被动模式:是指由 FTP 客户端向服务端发起连接,服务端采用随机端口等待客户端的随机端口来访问,从而传输数据。

3、简述 FTP 两种登录方式以及两种传输模式?

FTP 有两种登录方式:匿名登录和授权登录。

使用匿名登录时,用户名为:anonymous,密码为:任何合法 email 地址;使用授权登录时,用户名为用户在远程 FTP 系统中的用户帐号,密码为用户在远程系统中的用户密码。

区别:使用匿名登录只能访问 FTP 目录下的资源,默认配置下只能下载;而授权登录访问的权限大于匿名登录,且上载、下载均可。

FTP 文件传输有两种文件传输模式:ASCII 模式和 binary 模式。

ASCII 模式用来传输文本文件;其他文件的传输使用 binary 模式。

4、简述 DHCP 的流程?

新节点通过 DHCP 获取地址信息的主要流程有如下四个过程:

1、寻找 DHCP Server

客户机第一次登录网络的时,向网络上发出一个 DHCPDISCOVER 广播(包中包含客户机的 MAC 地址和计算机名等信息)。其源地址为 0.0.0.0,目标地址为 255.255.255.255。

2、提供 IP 地址租用

服务端监听到客户机发出的 DHCP discover 广播后,从剩余地址池中选择最前面的空置 IP,连同其它 TCP/IP 设定,通过广播方式响应给客户端一个 DHCP OFFER 数据包(包中包含 IP 地址、子网掩码、地址租期等信息)。源 IP 地址为 DHCP Server 的 IP 地址,目标地址为 255.255.255.255。同时,DHCP Server 为此客户保留它提供的 IP 地址,从而不会为其他 DHCP 客户分配此 IP 地址。

3、接受 IP 租约

客户机挑选最先响应的 DHCP OFFER(一般是最先到达的那个),同时向网络广播 DHCP REQUEST 数据包(包中包含客户端的 MAC 地址、接受的租约中的 IP 地址、提供此租约的 DHCP 服务器地址等),声明将接受某一台服务器提供的 IP 地址。此时,由于还没有得到 DHCP Server 的最后确认,客户端仍然使用 0.0.0.0 为源 IP 地址,255.255.255.255 为目标地址进行广播。

4、租约确认

服务端接收到客户端的 DHCP REQUEST 之后,会广播返回给客户机一个 DHCP ACK 消息包,表明已经接受客户机的选择,并将这一 IP 地址的合法租用以及其他的配置信息都放入该广播包发给客户机。

客户机在接收到 DHCP ACK 广播后,会向网络发送三个针对此 IP 地址的 ARP 解析请求以执行冲突检测,查询网络上有没有其它机器使用该 IP 地址;如果发现该 IP 地址已经被使用,客户机会发出一个 DHCP DECLINE 数据包给 DHCP Server,拒绝此 IP 地址租约,并重新发送 DHCP discover 信息。此时,在 DHCP 服务器管理控制台中,会显示此 IP 地址为 BAD_ADDRESS。

如果网络上没有其它主机使用此 IP 地址,则客户机的 TCP/IP 使用租约中提供的 IP 地址完成初始化,从而可以和其他网络中的主机进行通讯。

5、简述 DNS 查询可能需要哪些过程?

通常 DNS 查询有如下过程,任何一过程查询成功则返回查询结果,不再进行下一步查询:

1、用户输入网址,优先调取本地 hosts 查询记录;

2、使用本地 dns 缓存查询记录;

3、使用网络设置的主 dns 查询记录;

4、使用 dns 服务器中的缓存;

5、dns 服务器转发查询,转发至上一级 ISP DNS 服务器,依次循环;

6、若 dns 服务器未配置转发查询,则将查询需求发至 13 台根 dns;

7、返回查询 IP 结果给客户端。

6、简述 DNS 常见的服务器角色类型?

  • 缓冲域名服务器
  • 主域名服务器
  • 从域名服务器

7、简述 NFS 文件系统及其作用?

网络文件系统是应用层的一种应用服务,它主要应用于 Linux 和 Linux 系统、Linux 和 Unix 系统之间的文件或目录的共享。对于用户而言可以通过 NFS 方便的访问远地的文件系统,使之成为本地文件系统的一部分。采用 NFS 之后省去了登录的过程,方便了用户访问系统资源。

8、简述 Samba 作用及其使用场景?

Samba 是在 Linux 上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。主要用于 windows 与 Linux 之间的文件共享。

9、简述 VPN 概念以及常见的类型?

VPN 是指在公共的网络上建立专用网络的技术,但是两个节点间并没有物理上的专用的端到端链路,而是通过广域网或者运营商提供的网络平台之上的逻辑网络,用户数据在逻辑链路中传输,同时 VPN 采用身份验证和加密技术,充分保证了安全性。常见的 VPN 有:IPSec VPN、PPTP VPN、L2TP VPN、SSL VPN。

10、简述 YUM 服务工作步骤?

客户端在通过 yum 安装软件时,会先访问 repo 仓库,下载仓库的元数据,根据元数据去查询所需要的 rpm 及其各种依赖关系。之后再在仓库进行相关下载,并自动解决 rpm 包的依赖关系。同时 repo 仓库应该是一个文件服务器,一般 linux 主机在下载过元数据的同时会将其保留在缓存中,以便后续使用。本质上是将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。

磁盘管理

1、简述 LVM 概念及其特点?

LVM 是对磁盘分区进行管理的一种机制,建立在硬盘和分区之上的一个逻辑层,用来提高磁盘管理的灵活性。通过 LVM 可将若干个磁盘分区连接为一个整块的卷组 (Volume Group),形成一个存储池。可以在卷组上随意创建逻辑卷 (Logical Volumes),并进一步在逻辑卷上创建文件系统,与直接使用物理存储在管理上相比,提供了更好灵活性。

设计概念

  • 物理存储介质(The physical media):LVM 存储介质可以是磁盘分区、整个磁盘、RAID 阵列或 SAN 磁盘,设备必须初始化为 LVM 物理卷,才能与 LVM 结合使用;
  • 物理卷 PV(physical volume):物理卷就是 LVM 的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与 LVM 相关的管理参数,创建物理卷它可以用硬盘分区,也可以用硬盘本身;
  • 卷组 VG(Volume Group):一个 LVM 卷组由一个或多个物理卷组成;
  • 逻辑卷 LV(logical volume):LV 建立在 VG 之上,可以在 LV 之上建立文件系统;
  • PE(physical extents):PV 物理卷中可以分配的最小存储单元,PE 的大小是可以指定的,默认为 4MB;
  • LE(logical extent):LV 逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE 的大小和 PE 是相同的,并且一一对应。

优点

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

缺点

  • 在从卷组中移除一个磁盘的时候必须使用 reducevg 命令,有一定的限制:这个命令要求 root 权限,并且不允许在快照卷组中使用。
  • 当卷组中的一个磁盘损坏时,整个卷组都会受到影响。
  • 因为加入了额外的操作,存储性能受到影响。

2、简述 RAID0、RAID1、RAID5 原理及特点、使用场景?

RAID 通常可以把硬盘整合成一个大磁盘,然后在大磁盘上再分区,提高数据量利用率、冗余性,根据其特点不同,常见的有 RAID0、RADI1、RAID5。

RAID 0:指由多个盘组合成逻辑上的一个盘。

优点:读写快,容量利用率最高。

缺点:没有冗余,任何一块磁盘失效将影响到所有数据。

RAID 1:偶数盘,进行镜像。

优点:最高的冗余性。

缺点:浪费资源,成本高,数据利用率低。

RAID 5:奇数盘,至少 3 块磁盘。分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上 任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。

优点:实现数据一定程度的冗余,同时也提升数据的读写性能。

缺点:构建此模式需要一定数量的磁盘。

冗余从好到坏:RAID 1 > RAID 10 > RAID 5 > RAID 0

性能从好到坏:RAID 0 > RAID 10 > RAID 5 > RAID 1

成本从低到高:RAID 0 > RAID 5 > RAID 1 > RAID 10

3、简述 iSCSI 存储及其优点?

iSCSI 是 Internet 小型计算机系统接口,是一个基于 TCP/IP 的协议,用于通过 IP 网络仿真 SCSI 高性能本地存储总线,从而为远程存储设备提供数据传输和管理。iSCSI 跨本地和广域网,通过分布式服务器和数组提供独立于位置的数据存储检索。

iSCSI 优点

  • 使用 SAN 摆脱了本地布线限制,促进了本地或远程数据中心的存储整合;
  • iSCSI 结构是逻辑性的,仅使用软件配置来进行新的存储分配,无需其他电缆和物理磁盘;
  • iSCSI 使用多个远程数据中心简化了数据复制、迁移和灾难恢复。

4、简述文件存储、块存储、对象存储?

文件存储:允许将数据组织为传统的文件系统。数据保存在一个文件中,该文件具有名称和一些相关的元数据,例如修改时间戳、所有者和访问权限。提供基于文件的存储使用目录和子目录的层次结构来组织文件的存储方式。

块存储:块存储提供了一个像硬盘驱动器一样工作的存储卷,组织成大小相同的块。通常,要么操作系统用文件系统格式化基于块的存储卷,要么应用程序 (如数据库) 直接访问它来存储数据。

对象存储:对象存储允许将任意数据和元数据存储为一个单元,并在平面存储池中标记为惟一标识符。使用 API 存储和检索数据,而不是将数据作为块或在文件系统层次结构中访问。

虚拟平台

1、简述什么是云计算及其基本特征?

云计算是一种采用按量付费的模式,基于虚拟化技术,将相应计算资源(如网络、存储等)池化后,提供便捷的、高可用的、高扩展性的、按需的服务(如计算、存储、应用程序和其他 IT 资源)。

云计算通常有如下基本特征:

自主服务:可按需的获取云端的相应资源(主要指公有云);

网路访问:可随时随地使用任何联网终端设备接入云端从而使用相应资源。

资源池化

快速弹性:可方便、快捷地按需获取和释放计算资源。

按量计费

2、简述云计算常见部署模式?

私有云:云平台资源只给某个单位、或某部分用户内部使用。

公有云:云平台资源开放给社会公众服务。

社区云:云平台资源给几个固定的单位内使用。

混合云:两个或两个以上不同类型的云平台。

3、简述云计算三种服务模式?

IaaS:基础设施即服务,云服务商将 IT 系统的基础设施(如计算资源、存储资源、网络资源)池化后作为服务进行售卖;

PaaS:平台即服务,云服务商将 IT 系统的平台软件层(数据库、OS、中间件、运行库)作为服务进行售卖;

SaaS:软件即服务,云服务商将 IT 系统的应用软件层作为服务进行售卖。

4、简述云计算和虚拟化的区别?

云计算:IT 能力服务化,按需使用,按量计费,多租户隔离,是一个系统的轻量级管理控制面。

虚拟化:环境隔离,资源复用,降低隔离损耗,提升运行性能,提供高级虚拟化特性。

虚拟化是实现云计算的技术支撑之一,但并非云计算的核心关注点。

5、简述私有云相对公有云有哪些优势?

  • 数据安全性更高;
  • 可节省上云迁移过程中的大量成本;
  • 业务快速部署,缩短业务周期;
  • 降低企业成本,自主可控。

6、简述什么是 KVM?

KVM 指基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor,从而实现虚拟化:

  • 由 Quramnet 开发,该公司于 2008 年被 Red Hat 收购
  • 支持 x86 (32 and 64 位)、s390、Powerpc 等 CPU
  • 从 Linux 2.6.20 起就作为一模块被包含在 Linux 内核中
  • 需要支持虚拟化扩展的 CPU
  • 是完全开源的

系统管理

1、简述 Rsync 及其特点?

Rsync 是 Linux 系统中的数据镜像备份工具,通过 rsync 可以将本地系统数据通过网络备份到任何远程主机上。rysnc 不仅仅能对不同位置的文件和目录进行同步,还可以差异计算,压缩传输文件来最小化数据传输,和 cp 命令相比,rysnc 的优势在于高效的差异算法。并且,rysnc 还支持网络数据传输,在复制文件的同时,会把源端与目的端的文件进行比较,只有当文件不一样的时候在进行复制。具有以下特性:

  • 可以镜像保存整个目录树和文件系统。
  • 可以同步增量数据,文件传输效率高,同步时间短。
  • 可以保留原有文件的权限、时间等属性。
  • 加密传输数据,保证了数据的安全性。

2、简述 iptables 规则工作过程?

iptables 防火墙是一层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。

如果匹配上了规则,即明确表明是阻止还是通过,此时数据包就不能向下匹配新规则了。

如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。

防火墙的默认规则是对应链的所有的规则执行完才会执行的,即最后执行的规则。

3、简述 iptables 有几个链、表及每个表的作用?

iptables 有 5 个链:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING。

iptables 有 4 个表:Filter、NAT、Mangle、RAW。

Filter:主要和主机自身有关,真正负责主机防火墙功能(过滤流入流出主机的数据包)。filter 表是 iptables 默认使用的表。filter 定义了三个链(chains):

  • INPUT:负责过滤所有目标地址是本机地址的数据包,通俗的讲,就是过滤进入主机的数据包
  • FORWARD:负责转发流经主机的数据包。起转发的作用,和 nat 关系很大,
  • OUTPUT:处理所有源地址是本机地址的数据包,通俗的讲,就是处理从主机发出去的数据包

对于 filter 表的控制是实现本机防火墙功能的重要手段,特别是对 INPUT 链的控制。

nat:负责网络地址转换,即来源与目的 ip 地址的 port 的转换,一般用于局域网共享上网或特殊的端口转换服务相关,nat 功能就相当于网络的 acl 控制。nat 定义了三个链(chains):

  • OUTPUT:和主机发出去的数据包有关,改变主机发出数据包的目标地址。
  • PREROUTING:在数据包到达防火墙时进行路由判断之前执行的规则。作用时改变数据包的目的地址,目的端口等。
  • POSTROUTING:在数据包离开防火墙时进行路由判断之后执行的规则,作用改变数据包的源地址,源端口等。

RAW:RAW 表只使用在 PREROUTING 链和 OUTPUT 链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了 RAW 表,在某个链上,RAW 表处理完后,将跳过 NAT 表和 ip_conntrack 处理,即不再做地址转换和数据包的链接跟踪处理了。RAW 表可以应用在那些不需要做 nat 的情况下,以提高性能。如大量访问的 web 服务器,可以让 80 端口不再让 iptables 做数据包的链接跟踪处理,以提高用户的访问速度。

Mangle:实现流量整形,主要用于修改数据包的 ToS( Type of Service ,服务类型)、TTL(Time toLive,生存周期)以及为数据包设置 Mark 标记,以实现 QoS(Quality of Service,服务质量)调整以及策略路由等应用。

4、简述 iptables 各个表的优先级?

4 个表的优先级由高到低的顺序为:raw-->mangle-->nat-->filter。

5、简述 iptables 处理经过的数据包的流程?

iptables 利用表和链处理每个经过的数据包,具体流程(步骤)如下:

1、数据包到达网络接口,比如 eth0。

2、进入 raw 表的 PREROUTING 链,这个链的作用是在连接跟踪之前处理数据包。

3、如果进行了连接跟踪,则进行处理。

4、进入 mangle 表的 PREROUTING 链,在此可以修改数据包,比如 TOS 等。

5、进入 nat 表的 PREROUTING 链,可以在此做 DNAT,但不做过滤。

6、决定路由,看是交给本地主机还是转发给其它主机,即决定是否继续往内还是往外。

到了这里需要分两种不同的情况进行讨论了。

若数据包决定要转发给其它主机,这时候它会依次经过:

1、进入 mangle 表的 FORWARD 链,这里是在第一次路由(即步骤 6)决定之后,在进行最后的路由决定之前,仍然可以对数据包进行某些修改。

2、进入 filter 表的 FORWARD 链,这里可以对所有转发的数据包进行过滤。

3、进入 mangle 表的 POSTROUTING 链,这里将完成了所有的路由决定,但数据包仍然在本地主机,还可以进行某些修改。

4、进入 nat 表的 POSTROUTING 链,这里一般都是用来做 SNAT ,不在这里进行过滤。

5、进入出去的网络接口,然后进行发送。

另一种情况是,数据包就是发给本地主机的,那么它会依次穿过:

1、进入 mangle 表的 INPUT 链,这里是在第一次路由(即步骤 6)决定之后,在进行最后的路由决定之前,仍然可以对数据包进行某些修改。

2、进入 filter 表的 INPUT 链,这里可以对流入的所有数据包进行过滤,无论它来自哪个网络接口。

3、交给本地主机的应用程序进行处理。

4、处理完毕后进行路由决定,看该往那里发出。

5、进入 raw 表的 OUTPUT 链,这里是在连接跟踪处理本地的数据包之前。

6、连接跟踪对本地的数据包进行处理。

7、进入 mangle 表的 OUTPUT 链,这里可以修改数据包,但不做过滤。

8、进入 nat 表的 OUTPUT 链,可以对防火墙自己发出的数据做 NAT 。

9、再次进行路由决定。

10、进入 filter 表的 OUTPUT 链,可以对本地出去的数据包进行过滤。

11、进入 mangle 表的 POSTROUTING 链,同上一种情况的第 9 步。

12、进入 nat 表的 POSTROUTING 链,同上一种情况的第 10 步。

13、进入出去的网络接口,然后进行发送。

更新: 2020-10-09 15:11:10
原文: <https://www.yuque.com/fcant/notes/hrgbe9&gt;

最近更新