1.对于IPv4地址,请说明地址结构,以及如何划分网络位和主机位。
IPv4 地址结构:IPv4 地址长度 32 位,通常写成 4 段十进制(点分十进制),每段 8 位(0–255):
形式:A.B.C.D
例:192.168.1.10
本质上就是:[8bit].[8bit].[8bit].[8bit] = 32bit
如何划分网络位和主机位
IPv4 的 32 位会被分成两部分:
网络位(Network part):用来标识“属于哪个网络/网段”
主机位(Host part):用来标识“该网段里的哪台主机”
怎么分?靠 子网掩码(Subnet Mask)/CIDR 前缀长度 来决定:
1)CIDR 表示法(最常用)
/n 表示 前 n 位是网络位,剩下 32-n 位是主机位
例:192.168.1.10/24
网络位:24 位
主机位:8 位
2)子网掩码表示法
子网掩码也是 32 位,网络位为 1,主机位为 0。
/24 等价的掩码是 255.255.255.0
常见对应关系:/8 → 255.0.0.0
/16 → 255.255.0.0
/24 → 255.255.255.0
例子:192.168.1.10/24
网络号:192.168.1.0(主机位全 0)
可用主机范围:192.168.1.1 ~ 192.168.1.254
广播地址:192.168.1.255(主机位全 1)
总结:IPv4 是 32 位地址;网络位/主机位的分界由前缀 /n 或子网掩码决定:掩码 1 的部分是网络位,0 的部分是主机位。
2.在掩码为24(255.255.255.0)的子网中,最多能有多少台主机?为什么?
最多能有 254 台主机。
子网掩码 /24 表示 前 24 位是网络位,剩下的 8 位是主机位。
因为 8 位主机位,所以理论上有 2^8 = 256 个地址。
其中:1 个地址用于表示 网络地址(即主机位全为 0)。
1 个地址用于表示 广播地址(即主机位全为 1)。
因此,有效的主机地址数量是:256 – 2 = 254
3.怎么理解IPv4路由?
IPv4 路由是指网络设备(如路由器)如何根据目标 IP 地址,选择合适的路径将数据包从源主机传送到目标主机的过程。路由决定了数据包通过哪些网络设备或网络链路进行转发,直到到达目的地。
IPv4 路由是将数据从源设备通过路由器或网关传递到目的设备的过程。设备使用路由表查找目标地址的最佳路径,并将数据包通过这些路径转发。路由表条目包括目标网络、子网掩码、下一跳等信息,可以是手动配置的静态路由,也可以是自动更新的动态路由。
4.对于IPv6地址,请说明地址结构以及它的子网划分。
IPv6 地址是 128 位,通常写成 8 组 4 个十六进制数字,并用冒号(:)分隔。每组表示 16 位,所以一共是 128 位。
格式:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
例:2001:0db8:85a3:0000:0000:8a2e:0370:7334
每组 16 位,以 16 进制表示。
可以将连续的零块缩写为 ::,但只允许缩写一次。
例:2001:0db8:0000:0000:0000:0000:8a2e:0370 可以简写为 2001:0db8::8a2e:0370。
IPv6 地址的组成
IPv6 地址可以分为几种类型,每种类型的地址结构略有不同,通常包含以下几部分:
网络前缀(Network Prefix):
用来标识网络部分,前 64 位 通常是网络前缀,用于子网划分。
接口标识符(Interface Identifier):
用来标识同一子网内的设备,后 64 位 是接口标识符,通常由设备的 MAC 地址通过 EUI-64 算法自动生成,或者手动设置。
特殊地址类型:
全球单播地址(Global Unicast Address):唯一的公共地址(类似于 IPv4 的公共 IP 地址),以 2000::/3 开头。
链接本地地址(Link-Local Address):只在局部链路上有效,以 fe80::/10 开头。
多播地址(Multicast Address):用于发送到多个目标地址的单播地址,通常以 ff00::/8 开头。
IPv6 子网划分
IPv6 子网划分与 IPv4 类似,但是由于 IPv6 地址空间极其庞大,所以 子网划分更为灵活,且通常使用默认的 64 位子网前缀(/64)。
划分方法:标准子网前缀 /64:
默认划分:大多数 IPv6 地址分配都是按 64 位网络前缀来划分的,剩下的 64 位用于标识主机(接口标识符)。
例如:2001:0db8::/64,表示网络前缀是 2001:0db8,剩下的 64 位可以用于主机。
子网划分:你可以将 前缀部分的位数增大,来划分更小的子网(例如 /72、/80)。但是,/64 是最常见的子网前缀。
在 2001:0db8::/64 的网络中,前 64 位是网络地址,后 64 位用于主机地址。如果要分成两个子网,可以将前缀从 /64 改为 /65,每个子网将有 2^63 个可用地址。
例子:一个标准的全球单播地址:2001:0db8:85a3::/64
2001:0db8:85a3 是网络前缀,:: 是主机标识符部分。
划分子网后:2001:0db8:85a3:0000::/64,2001:0db8:85a3:0001::/64
这两个子网使用相同的前缀,但分别为不同的网络。
总结:IPv6 地址总共有 128 位,被划分为 64 位的网络前缀 和 64 位的主机部分。
子网划分通常使用 /64 前缀,可以根据需要调整前缀长度来划分不同大小的子网。
与 IPv4 不同,IPv6 的地址空间非常大,因此我们可以更灵活地进行子网划分,同时也减少了 IPv4 中由于地址不足而产生的压力。
5.Linux中如何解析主机名和IP地址的对应关系?
/etc/hosts 文件
作用:存储主机名与 IP 地址的静态映射。
文件格式:
IP 地址 主机名 [别名]
示例
127.0.0.1 localhost192.168.1.10 myserver.local myserver
优先级:当查询主机名时,系统首先会检查 /etc/hosts 文件中是否有该主机名的对应 IP 地址。
2)/etc/nsswitch.conf 文件
作用:配置系统使用的名字解析顺序(比如:先查本地文件,再查 DNS)。
文件格式:
hosts: files dns
上述配置表示:先查 /etc/hosts 文件,如果没有找到,再去通过 DNS 查询。
3)DNS(域名系统)
作用:如果在 /etc/hosts 中找不到主机名对应的 IP 地址,系统会使用 DNS 服务进行域名解析。
配置:通常通过 /etc/resolv.conf 文件配置 DNS 服务器。
示例:nameserver 8.8.8.8
nameserver 8.8.4.4
4)hostname 命令
作用:用来显示或设置当前主机的主机名。
hostname:显示当前的主机名。
hostnamectl set-hostname newhostname:设置新的主机名。
总结:本地解析:/etc/hosts 里映射。
DNS 解析:如果没找到,去通过 DNS 解析。
解析顺序:/etc/nsswitch.conf 决定解析顺序,通常先查 /etc/hosts,再查 DNS。
总结一句话:Linux 解析主机名与 IP 地址的对应关系是通过 hosts 文件、DNS 以及 nsswitch.conf 配置文件来决定的,先查询本地文件,再查询 DNS。
6.RHEL9如何显示网络的IP地址?
1)ip 命令(推荐)
ip 是现代 Linux 系统推荐的命令,用来查看和配置网络接口。
显示所有网络接口的 IP 地址:
ip addr show# 或者更简短的ip a
这会列出所有网络接口(包括 eth0、lo、wlan0 等)的详细信息,其中会显示 inet(IPv4 地址)和 inet6(IPv6 地址)。
2)ifconfig 命令(较旧,已被 ip 命令替代)
ifconfig 是早期的命令,现代 Linux 系统中 ip 命令已取而代之,但仍然可以使用。
显示网络接口的 IP 地址:
ifconfig
这会列出所有网络接口的详细信息,包括 IP 地址、网络掩码等。
3)hostname 命令
hostname 可以显示主机名和与之关联的 IP 地址,但它通常显示的是主机的 本地 IP 地址,而不是所有接口的地址。
显示主机的 IP 地址:
hostname -I
这会返回主机的所有 IPv4 地址。
4)nmcli 命令(NetworkManager CLI)
在 RHEL 9 中,使用 nmcli 命令也可以查询网络信息。
显示当前活动的连接的 IP 地址:nmcli device show
这会显示所有网络接口及其关联的详细信息,包括 IP 地址。
总结:推荐使用 ip addr show 来查看所有接口的 IP 地址。
ifconfig 仍然有效,但它是较旧的工具,建议使用 ip 替代。
hostname -I 可以快速查看主机的 IP 地址。
7.RHEL9的网络配置文件保存在哪个目录,解释 device和connection的含义。
/etc/NetworkManager/system-connections/:存储了网络接口的配置文件。每个接口(如以太网、Wi-Fi)都有一个相应的配置文件。配置文件内容:
每个配置文件通常包含该接口的连接信息(如 IP 地址、DNS 配置、接口类型等)。
这些文件格式为 ini 格式,可以通过文本编辑器查看和修改。
device:指定网络接口的硬件属性。例如网络接口的类型(Ethernet, Wi-Fi)、MAC 地址、驱动程序等。
connection:指定网络连接的设置和配置,包括 IP 配置(静态或 DHCP)、网关、DNS、路由等。
通过这些配置文件,NetworkManager 可以管理并配置不同的网络设备和连接方式。
8.使用什么命令可以修改静态主机名?静态主机名存储在哪个文件中?
修改静态主机名的命令
在 RHEL 9 中,可以使用 hostnamectl 命令来修改系统的静态主机名。
sudo hostnamectl set-hostname 新的主机名
示例:将主机名修改为 myserver:
sudo hostnamectl set-hostname myserver
静态主机名存储的位置:
静态主机名:存储在 /etc/hostname 文件中。
该文件只有一行,包含主机名。
在系统启动时,systemd 会读取该文件并设置静态主机名。
动态主机名(如果使用 DHCP 等):有时动态主机名也可能被存储在 /etc/hosts 或由网络配置工具(如 DHCP)动态更新。
其他相关文件:/etc/hosts:在这个文件中会有与主机名相关的映射,用于本地解析(通常包括 127.0.0.1 和 ::1 的主机名)。
总结:修改静态主机名:使用 hostnamectl set-hostname。
静态主机名存储位置:/etc/hostname 文件。




