云计算基础-15:Linux网络管理实战-3

网络层(Network Layer)是 OSI 模型和 TCP/IP 模型中最核心的一层——它解决了全球范围内的设备如何互相寻址和通信的问题。没有网络层,互联网就不可能存在。

IP 地址是互联网世界的”门牌号”,子网掩码告诉你”哪些门牌属于同一个小区”,而路由器则是连接不同小区的”交通枢纽”。本文将深入讲解 IP 地址分类、子网掩码计算、网络地址判断,以及路由器的工作原理和静态路由配置。学完本章,你将真正理解”为什么你的电脑能上网”。


进制转换回顾

理解 IP 地址和子网掩码的前提是掌握进制转换。IP 地址和子网掩码本质上都是 32 位二进制数,只是我们习惯用”点分十进制”的方式来表示。


三种常用进制

十进制(Decimal)

概念说明示例
数值0 ~ 9(共 10 个符号)0, 1, 2, 3, 4, 5, 6, 7, 8, 9
数位数字的位置123 中的 123
位权每个位置的权重百位(100)、十位(10)、个位(1)

二进制(Binary)

概念说明示例
数值0 ~ 1(共 2 个符号)0, 1
数位每一位只能是 0 或 1101 中的 101
位权2 的幂次128, 64, 32, 16, 8, 4, 2, 1

二进制位权表

位置2⁷2⁶2⁵2⁴2⁰
1286432168421

二进制 ↔ 十进制互转

十进制 → 二进制

方法:位权加减法

十进制计算过程二进制
129128 + 11000 0001
192128 + 641100 0000
255128 + 64 + 32 + 16 + 8 + 4 + 2 + 11111 1111
168128 + 32 + 81010 1000

二进制 → 十进制

1100 0000
= 128 + 64 + 0 + 0 + 0 + 0 + 0 + 0
= 192

1010 1000
= 128 + 0 + 32 + 0 + 8 + 0 + 0 + 0
= 168

存储单位换算

单位换算关系说明
bit (b)最小单位1 bit = 1 个 0 或 1
Byte (B)1 B = 8 bits1 字节 = 8 比特
KB1 KB = 1024 B
MB1 MB = 1024 KB
GB1 GB = 1024 MB
TB1 TB = 1024 GB

IP 地址

简介

IP 地址(Internet Protocol Address):用于标识互联网中每台主机的唯一地址。

IP 地址结构

  • IP 地址由 32 位二进制数 组成
  • 通常用 4 组十进制数 表示,每组用 . 分隔
  • 每组(每段)由 8 位二进制数 组成,用十进制标识
二进制表示:  11000000.10101000.00000000.00000001
              │        │        │        │
十进制表示:    192      .168     .0       .1

IP 地址示例

192.168.0.1          ← 家庭路由器常见地址
156.86.254.255       ← 公网 IP 地址
1.2.3.4              ← 简洁的 IP 地址
25.250.25.110        ← 任意 IP 地址
127.0.0.1            ← 本地回环地址

每段取值范围

由于每段是 8 位二进制数:

最小值:0000 0000 = 0
最大值:1111 1111 = 255

所以每段的取值范围是:0 ~ 255

重要:IP 地址的每段不能超过 255!192.168.1.256 是一个无效的 IP 地址。


IP 地址分类

IP 地址按第一段数字的范围分为 A、B、C、D、E 五类。

公有 IP 地址分类

类别第一段范围网络位主机位适用规模示例
A 类1 ~ 126第 1 段第 2~4 段超大型网络10.x.x.x
B 类128 ~ 191第 1~2 段第 3~4 段中型网络172.16.x.x
C 类192 ~ 223第 1~3 段第 4 段小型网络192.168.1.x
D 类224 ~ 239组播(Multicast)224.0.0.1
E 类240 ~ 255科研保留240.0.0.1

特殊地址

地址说明
127.0.0.1回环地址(Loopback),代表”我自己”,用于测试本机网络协议栈
0.0.0.0表示”所有地址”或”未知地址”,常用于路由表中的默认路由
255.255.255.255有限广播地址,向本地网络所有设备广播

为什么没有 126 之后的 A 类? 127 被保留为回环地址,所以 A 类实际可用范围是 1 ~ 126。

为什么从 128 开始是 B 类? 因为 127 被跳过了,所以 B 类从 128 开始。


私有 IP 地址

私有 IP 地址(Private IP)是指在局域网内部使用的 IP 地址,不能直接在互联网上路由。如果你的电脑 IP 是私有地址,需要通过 NAT(网络地址转换)才能上网。

类别私有 IP 范围主机数量常见场景
A 类私有10.0.0.0 ~ 10.255.255.255约 1677 万大型企业内网
B 类私有172.16.0.0 ~ 172.31.255.255约 104 万中型企业内网
C 类私有192.168.0.0 ~ 192.168.255.255约 6.5 万家庭/小型办公室

为什么家用路由器的 IP 通常是 192.168.1.1192.168.0.1 因为 C 类私有地址范围(192.168.x.x)足够家庭使用,且是最常见的私有地址段。


查看本机 IP 地址

# Linux 系统
[root@localhost ~]# ip a 
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.100.114/24 brd 192.168.100.255 scope global noprefixroute dynamic ens33

# 快速查看(仅 IP)
[root@localhost ~]# hostname -I
192.168.100.114


# Windows 系统
C:\> ipconfig

子网掩码(Subnet Mask)

简介

子网掩码是一个 32 位二进制数,用于区分 IP 地址中哪部分是网络位,哪部分是主机位

子网掩码的作用

  • 运算出 IP 地址的网络部分——将 IP 地址与子网掩码进行逻辑”与”运算,就能得到网络地址
  • 判断两个 IP 是否在同一网段——网络位相同则在同一个网段,可以直接通信

默认子网掩码

IP 类别默认子网掩码二进制表示CIDR 表示
A 类255.0.0.011111111.00000000.00000000.00000000/8
B 类255.255.0.011111111.11111111.00000000.00000000/16
C 类255.255.255.011111111.11111111.11111111.00000000/24

CIDR 表示法(Classless Inter-Domain Routing):用 /N 表示子网掩码中连续 1 的位数。例如 /24 表示前 24 位是 1(即 255.255.255.0)。


计算方法

核心规则

子网掩码中为 1 的部分,对应 IP 地址的网络位。

计算步骤:

  1. 将 IP 地址和子网掩码都转换为二进制
  2. 对两者进行逻辑与(AND)运算
  3. 运算结果就是网络地址

逻辑与运算规则

0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1

简单记法:有 0 就是 0,两个都是 1 才是 1

计算示例

示例:计算 192.168.1.100/24 的网络地址(子网掩码 255.255.255.0

IP 地址:     192.168.1.100
= 11000000.10101000.00000001.01100100

子网掩码:    255.255.255.0
= 11111111.11111111.11111111.00000000

逻辑与运算:
              11000000.10101000.00000001.01100100  (IP)
          AND 11111111.11111111.11111111.00000000  (掩码)
            ─────────────────────────────────────
              11000000.10101000.00000001.00000000
            = 192     .168     .1       .0

网络地址:192.168.1.0

快速算法:子网掩码为 255 的段,IP 地址原样保留;子网掩码为 0 的段,IP 地址变为 0。


CIDR 常用子网掩码对照表

CIDR子网掩码二进制(1 的个数)可用主机数
/8255.0.0.0816,777,214
/16255.255.0.01665,534
/24255.255.255.024254
/25255.255.255.12825126
/26255.255.255.1922662
/27255.255.255.2242730
/28255.255.255.2402814
/29255.255.255.248296
/30255.255.255.252302
/32255.255.255.255321(单个主机)

网络地址与通信规则

判断是否同一网段

核心规则:网络位相同 → 同一网段 → 直接通信;网络位不同 → 不同网段 → 需要网关转发。

示例 1:同一网段

PC-A:  192.168.1.10   掩码: 255.255.255.0
PC-B:  192.168.1.20   掩码: 255.255.255.0

PC-A 网络地址: 192.168.1.0
PC-B 网络地址: 192.168.1.0

✅ 网络位相同 → 同一网段 → 可以直接通信(通过交换机/ARP)

示例 2:不同网段

PC-A:  192.168.1.10   掩码: 255.255.255.0
PC-B:  192.168.2.10   掩码: 255.255.255.0

PC-A 网络地址: 192.168.1.0
PC-B 网络地址: 192.168.2.0

❌ 网络位不同 → 不同网段 → 不能直接通信,必须经过网关(路由器)转发

通信规则总结

场景网络位通信方式说明
同一网段相同直接通信通过 ARP 获取对方 MAC 地址,直接发送数据帧
不同网段不同网关转发将数据包发给默认网关(路由器),由路由器转发到目标网络

网络层封装

在网络层,传输层传下来的数据段(Segment)被封装为数据包(Packet),并添加 IP 头部信息。

IP 数据包结构

IP 头部关键字段:

字段说明
版本号IPv4 = 4, IPv6 = 6
TTLTime To Live,生存时间,每经过一个路由器减 1,减到 0 时数据包被丢弃(防止环路)
协议标识上层协议(6 = TCP, 17 = UDP, 1 = ICMP)
源 IP发送方的 IP 地址
目标 IP接收方的 IP 地址

封装流程

传输层数据段(Segment)
         ↓
网络层添加 IP 头部(源 IP + 目标 IP + TTL + 协议)
         ↓
IP 数据包(Packet)→ 交给数据链路层封装为帧

路由器工作原理

路由器简介

路由器(Router) 是工作在网络层的设备,它的核心功能是在不同网络之间转发数据包

路由器的角色

┌───────────────┐         ┌───────────────┐
│  家庭网络      │         │  互联网        │
│  192.168.1.0  │◄───────►│  各种公网 IP    │
│  /24          │  路由器  │               │
└───────────────┘         └───────────────┘
         ↑                      ↑
    内网地址                外网地址

路由器是内网和外网之间的”桥梁”——它有两个(或多个)IP 地址,分别连接不同的网络。


路由(Routing)

概念

路由是指数据包从源地址到目标地址的路径选择过程。路由器根据路由表(Routing Table) 决定将数据包从哪个接口转发出去。

打个比方:

路由表就像地图导航——你要从 A 地到 B 地,导航会告诉你:

  • 如果目的地在本地,直接走(直连路由)
  • 如果目的地在外地,先去某个路口(名词:下一跳),再从那里继续走

路由表的形成

路由表中的路由条目来源有两种:

来源说明示例
直连路由路由器自动发现与自身接口直接相连的网络你家门口的路、小区内部道路不用查任何导航,天生就知道怎么走,出门直接走
静态路由管理员手动添加的非直连网络路由你手动记下来的上班固定路线是你自己摸索或朋友告诉你的,只要路不封,你永远走这条
动态路由通过路由协议(OSPF、BGP 等)自动学习高德 / 百度实时导航自动收集全城市路况,哪里堵车、哪里封路立刻知道,自动给你推荐最快路线;路断了会秒级重新规划

查看路由表

Linux 系统

# 查看路由表
[root@localhost ~]# ip route
default via 192.168.100.2 dev ens33 proto dhcp metric 100 
192.168.100.0/24 dev ens33 proto kernel scope link src 192.168.100.114 metric 100 

eNSP 路由器


路由表字段说明:

字段说明
C(Connected)直连路由——与路由器接口直接相连的网络
S(Static)静态路由——管理员手动添加的路由
Destination目标网络地址
Gateway下一跳地址(0.0.0.0 表示直连,不需要下一跳)
Genmask子网掩码
Iface出接口

默认网关

默认网关(Default Gateway) 是数据包找不到匹配路由时的”最后选择”。通常指向路由器。

默认路由(缺省路由)

0.0.0.0/0 via 192.168.142.2
│    │         │
│    │         └── 网关(路由器内网口 IP)
│    └── 匹配任何目标地址(当没有更精确的匹配时)
└── 目标网络

通俗理解:默认网关就是”不知道往哪走的时候,就交给它”。

查看和配置默认网关

# 查看默认网关
[root@localhost ~]# ip route | grep default
default via 192.168.142.2 dev ens33

# 查看网关(另一种方式)
[root@localhost ~]# ip route show | head -1
default via 192.168.142.2 dev ens33

# 网卡配置文件中的网关设置
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.142.2

实战:华为 eNSP 静态路由配置

场景

网络拓扑:

R1 的配置

# 进入系统视图并修改设备名
<Huawei>sys    
[Huawei]sysname R1

# 配置连接PC1的内网接口GE0/0/1
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.1.254 24

# 配置连接R2的互联接口GE0/0/0
[R1-GigabitEthernet0/0/1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 10.0.0.1 24
[R1-GigabitEthernet0/0/0]q

# 添加静态路由:去往192.168.2.0/24的数据包,下一跳交给R2的10.0.0.2
[R1]ip  route-static  192.168.2.0 255.255.255.0 10.0.0.2

R2 的配置

<Huawei>sys
[Huawei]sysname R2

# 配置连接R1的互联接口GE0/0/0
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 10.0.0.2 24

# 配置连接PC2的内网接口GE0/0/1
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 192.168.2.254 24
[R2-GigabitEthernet0/0/1]q

# 添加回包静态路由:去往192.168.1.0/24的数据包,下一跳交给R1的10.0.0.1
[R2]ip route-static 192.168.1.0 255.255.255.0 10.0.0.1

此时PC1和PC2就可以互相通信了

验证配置:

# 在R1或R2上查看路由表    
<R1>display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 11       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       10.0.0.0/24  Direct  0    0           D   10.0.0.1        GigabitEthernet0/0/0
       10.0.0.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0
     10.0.0.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    192.168.1.0/24  Direct  0    0           D   192.168.1.254   GigabitEthernet0/0/1
  192.168.1.254/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
  192.168.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
    192.168.2.0/24  Static  60   0          RD   10.0.0.2        GigabitEthernet0/0/0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

说明:Static表示静态路由,Direct表示直连路由,优先级 60 是华为静态路由默认值

注意:静态路由需要双向配置——不仅要配置”去”的路由,还要配置”回”的路由,否则数据包有去无回。


数据包转发过程

完整流程(PC1 ping PC2)

步骤 1:PC1(192.168.1.1)发起 ping 192.168.2.1

步骤 2:PC1 判断目标是否在同一网段
→ 192.168.1.1 vs 192.168.2.1(子网掩码均为 255.255.255.0)
→ 不同网段!需要交给默认网关

步骤 3:PC1 将数据包发给网关 R1(192.168.1.254)
→ 目标 IP:192.168.2.1(全程不变)
→ 目标 MAC:R1 的 GE0/0/1 接口 MAC
→ 源 IP:192.168.1.1(全程不变)
→ 源 MAC:PC1 网卡 MAC

步骤 4:R1 收到数据包,查路由表
→ 目标:192.168.2.1
→ 匹配:静态路由 192.168.2.0/24 → 下一跳 10.0.0.2(R2)
→ 从 GE0/0/0 接口转发给 R2
→ 重新封装帧:目标 MAC 改为 R2 的 GE0/0/0 接口 MAC,源 MAC 改为 R1 的 GE0/0/0 接口 MAC
→ TTL 值减 1

步骤 5:R2 收到数据包,查路由表
→ 目标:192.168.2.1
→ 匹配:直连路由 192.168.2.0/24 → 直连,从 GE0/0/1 接口直接发给 PC2
→ 重新封装帧:目标 MAC 改为 PC2 网卡 MAC,源 MAC 改为 R2 的 GE0/0/1 接口 MAC
→ TTL 值再减 1

步骤 6:PC2 收到 ping 请求,回包
→ 回包流程与上述完全相反
→ 需要 R2 有去往 192.168.1.0/24 的回包路由,R1 有直连路由
→ 回包同样遵循:IP 不变、MAC 每跳改变、TTL 逐跳递减

关键理解

概念说明
IP 地址不变数据包从源到目标,源 IP 和目标 IP 始终不变
MAC 地址每跳改变每一段链路都重新封装帧,源/目标 MAC 是当前链路的设备 MAC
TTL 每跳减 1每经过一个路由器,TTL 值减 1,防止数据包无限循环
双向路由数据包能”去”,还得能”回”,所以往返都需要正确的路由

动态路由实验

这个感兴趣可以参考一下这个实验,介绍的也很详细,也是非常简单的:

华为ensp OSPF动态路由配置实验 – Destiny_Minvenus – 博客园

常见问题

Q1:为什么 127.0.0.1 可以 ping 通但上不了网?

127.0.0.1 是本地回环地址,能 ping 通只说明本机的 TCP/IP 协议栈正常。能否上网还需要检查:

  1. IP 地址配置是否正确
  2. 网关是否可达
  3. DNS 是否正常
  4. 路由器是否配置了正确的路由

Q2:子网掩码能不能随便改?

不能随意修改。子网掩码决定了网络的规模和范围。如果修改不当:

  • 可能导致部分设备无法通信
  • 可能造成 IP 地址冲突
  • 需要全网统一规划

Q3:两个不同网段的设备直连能通信吗?

不能直接通信。需要通过路由器(或三层交换机)进行路由转发,或者在两端都添加静态路由。

Q4:如何测试网络连通性?

# 1. ping 本机回环(测试协议栈)
ping 127.0.0.1

# 2. ping 本机 IP(测试网卡)
ping 192.168.1.100

# 3. ping 网关(测试到路由器的连通性)
ping 192.168.1.1

# 4. ping 外网 IP(测试外网连通性)
ping 8.8.8.8

# 5. ping 域名(测试 DNS)
ping www.baidu.com

# 6. 追踪路由路径
traceroute www.baidu.com    # Linux
tracert www.baidu.com       # Windows

Q5:默认网关和默认路由是一回事吗?

本质上是一回事,只是表述角度不同:

  • 默认网关:从终端设备的角度,指”不知道往哪发就发给谁”
  • 默认路由:从路由器的角度,指路由表中的一条记录 0.0.0.0/0

总结

通过本章节的学习,你应该掌握了:

  • 回顾进制转换(二进制 ↔ 十进制互转)
  • 理解 IP 地址的结构(32 位二进制、4 组十进制表示)
  • 掌握 IP 地址分类(A/B/C/D/E 类及其范围)
  • 理解私有 IP 地址的范围和使用场景
  • 掌握子网掩码的作用和计算方法(逻辑与运算)
  • 理解 CIDR 表示法(/8, /16, /24 等)
  • 判断两个 IP 是否在同一网段,以及通信规则
  • 理解网络层封装(IP 头部结构)
  • 理解路由器的工作原理和路由的概念
  • 掌握路由表的查看方法(ip route / show ip route
  • 理解直连路由和静态路由的区别
  • 掌握静态路由的配置方法
  • 理解数据包的完整转发过程(IP 不变、MAC 每跳改变、TTL 递减)
  • 理解默认网关/默认路由的作用

学习建议:网络层知识是网络管理的核心。建议使用 Cisco Packet Tracer 模拟器,搭建多路由器网络拓扑,练习静态路由配置和排障。同时,在 Linux 虚拟机上使用 ip routepingtraceroute 等命令,结合实际网络环境加深理解。


🙋 学习路上不孤单,有坑一起填!



卡在参数调试、命令打架、功能没反应、资源失效?其他问题?直接戳我,也可以进群和同好交流!



📱 个人QQ:3838586495    👥 交流Q群:1094091455    📮 邮箱:leyan2504@163.com



内容帮你省了大把踩坑时间?可以文末小小打赏鼓励一波,也欢迎安利给身边学习的朋友~



✨ 欢迎来评论区「交作业」:分享你的配置思路、提出疑难问题;评论区正确填写邮箱,不错过任何人的解答回复!


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇