1. 网络基础概述
1.1 计算机网络的定义
计算机网络是由地理上分散的计算机通过通信设备和线路连接起来,按照网络协议进行通信,以实现资源共享和信息传输的系统。
1.2 网络的基本组成
plaintext
┌─────────────────────────────────────────────────────────┐
│ 计算机网络 │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 终端 │────────│ 交换 │───────│ 终端 │ │
│ │ 设备 │ │ 设备 │ │ 设备 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │ │ │ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────┐ │
│ │ 传输介质(光纤/双绞线/无线) │ │
│ └─────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘
1.3 网络的分类
| 分类标准 | 类型 | 覆盖范围 | 典型应用 |
|---|---|---|---|
| 地理范围 | LAN | 几十米-几公里 | 办公室网络、校园网 |
| 地理范围 | MAN | 几十公里 | 城域网、教育城域网 |
| 地理范围 | WAN | 几百-几千公里 | 互联网、企业专网 |
| 拓扑结构 | 总线型 | 所有节点共享总线 | 早期以太网 |
| 拓扑结构 | 星型 | 中心节点辐射 | 现代以太网 |
| 拓扑结构 | 环型 | 闭合环路 | 令牌环网络 |
| 拓扑结构 | 网状型 | 多点互联 | 骨干网络 |
2. OSI七层模型与TCP/IP四层模型
2.1 OSI七层模型详解
OSI(Open Systems Interconnection)模型是国际标准化组织(ISO)提出的网络通信标准框架,将网络通信分为7个层次。
plaintext
┌────────────────────────────────────────────────────────────┐
│ OSI 七层模型 │
├────────┬───────────────────────────────────────────────────┤
│ 第7层 │ 应用层 (Application) │
│ │ ★ 为应用程序提供网络服务 │
│ │ HTTP、FTP、SMTP、POP3、DNS │
├────────┼───────────────────────────────────────────────────┤
│ 第6层 │ 表示层 (Presentation) │
│ │ ★ 数据格式转换、数据加密解密 │
│ │ SSL/TLS、JPEG、GIF、ASCII │
├────────┼───────────────────────────────────────────────────┤
│ 第5层 │ 会话层 (Session) │
│ │ ★ 管理通信会话、建立维护断开连接 │
│ │ NetBIOS、RPC、SQL │
├────────┼───────────────────────────────────────────────────┤
│ 第4层 │ 传输层 (Transport) │
│ │ ★ 端到端连接、可靠传输、流量控制 │
│ │ TCP、UDP、SCTP │
├────────┼───────────────────────────────────────────────────┤
│ 第3层 │ 网络层 (Network) │
│ │ ★ IP寻址、路由选择、分组转发 │
│ │ IP、ICMP、ARP、RARP、OSPF、BGP │
├────────┼───────────────────────────────────────────────────┤
│ 第2层 │ 数据链路层 (Data Link) │
│ │ ★ 物理地址寻址、帧同步、差错控制 │
│ │ Ethernet、PPP、HDLC、帧中继 │
├────────┼───────────────────────────────────────────────────┤
│ 第1层 │ 物理层 (Physical) │
│ │ ★ 比特流传输、电压标准、物理接口 │
│ │ 集线器、中继器、RJ45、光纤 │
└────────┴───────────────────────────────────────────────────┘
数据封装过程(发送端):
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ 数据 │──▶│ 数据 │──▶│ 数据 │──▶│ 数据 │──▶│ 数据 │──▶│ 数据 │──▶│ 比特流 │
│ (应用层)│ │ +H7 │ │ +H7+H6 │ │ +H7+H6+H5│ │ +H7...H4│ │ +H7...H3│ │ (物理层)│
└─────────┘ │ │ │ +H5 │ │ │ │ │ │ +H3+H2 │ │ │
└─────────┘ └─────────┘ └─────────┘ └─────────┘ │ +H2 │ └─────────┘
↓ ↓ ↓ ↓
表示层 会话层 传输层 网络层
数据解封装过程(接收端):
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ 比特流 │──▶│ 数据+H2 │──▶│ 数据+H3 │──▶│ 数据+H4 │──▶│ 数据+H5 │──▶│ 数据+H6 │──▶│ 数据 │
│ (物理层) │ │ │ │ +H2 │ │ +H3+H2 │ │ +H4...H2│ │ +H5...H2│ │ (应用层)│
└─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘
2.2 TCP/IP四层模型
TCP/IP模型是实际广泛使用的网络协议栈,包含4个层次:
plaintext
┌────────────────────────────────────────────────────────────┐
│ TCP/IP 四层模型 │
├────────┬───────────────────────────────────────────────────┤
│ 应用层 │ HTTP、FTP、SMTP、DNS、SSH、Telnet │
│ │ DHCP、NTP、SNMP、TFTP │
├────────┼───────────────────────────────────────────────────┤
│ 传输层 │ TCP(面向连接、可靠传输) │
│ │ UDP(无连接、高效传输) │
├────────┼───────────────────────────────────────────────────┤
│ 网络层 │ IP(IPv4/IPv6)、ICMP、ARP、RARP │
│ │ 路由协议:OSPF、BGP、RIP、IS-IS │
├────────┼───────────────────────────────────────────────────┤
│ 网络接口层│ Ethernet、PPP、帧中继、HDLC │
│ │ ARPANET、令牌环、FDDI │
└────────┴───────────────────────────────────────────────────┘
2.3 OSI模型与TCP/IP模型对比
plaintext
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────────┐
│ OSI 七层 │ │ TCP/IP 四层 │ │ 对应协议 │
├─────────────────┤ ├─────────────────┤ ├─────────────────────────┤
│ 7. 应用层 │ ───▶ │ │ │ HTTP、FTP、SMTP、DNS │
│ 6. 表示层 │ │ 应用层 │ │ HTTPS、SSH、Telnet │
│ 5. 会话层 │ │ │ │ SNMP、DHCP、NTP │
├─────────────────┤ ├─────────────────┤ ├─────────────────────────┤
│ 4. 传输层 │ ───▶ │ 传输层 │ │ TCP、UDP、SCTP │
├─────────────────┤ ├─────────────────┤ ├─────────────────────────┤
│ 3. 网络层 │ ───▶ │ 网络层 │ │ IP、ICMP、ARP、RARP │
│ │ │ │ │ OSPF、BGP、RIP、IGRP │
├─────────────────┤ ├─────────────────┤ ├─────────────────────────┤
│ 2. 数据链路层 │ ───▶ │ 网络接口层 │ │ Ethernet、PPP、HDLC │
│ 1. 物理层 │ │ │ │ ARP、RARP │
└─────────────────┘ └─────────────────┘ └─────────────────────────┘
2.4 数据封装与传输过程详解
当您在浏览器中输入 www.example.com 时,数据传输的完整过程:
plaintext
【发送端 - 用户电脑】
应用层: 浏览器数据(HTTP请求)
↓ 封装
表示层: 数据加密/压缩(TLS加密)
↓ 封装
会话层: 建立会话标识
↓ 封装
传输层: 添加TCP/UDP头部 → 源端口: 54321, 目标端口: 80
↓ 封装
网络层: 添加IP头部 → 源IP: 192.168.1.100, 目标IP: 93.184.216.34
↓ 封装
数据链路层:添加Ethernet头部 → 源MAC: AA:BB:CC:DD:EE:01, 目标MAC: 网关MAC
↓ 封装
物理层: 转换为电信号/光信号,通过网线/光纤传输
【中间节点 - 路由器】
物理层: 接收电信号
↓ 解封装
数据链路层:检查MAC地址匹配
↓ 解封装
网络层: 读取目标IP,查找路由表,决定下一跳
↓ 重新封装
数据链路层:更换新的源/目标MAC地址
↓
物理层: 重新发送
【接收端 - Web服务器】
物理层: 接收信号
↓ 解封装
数据链路层:检查MAC地址
↓ 解封装
网络层: 检查IP地址
↓ 解封装
传输层: 检查端口号,交给对应应用
↓ 解封装
会话层: 建立/恢复会话
↓ 解封装
表示层: 解密数据
↓ 解封装
应用层: HTTP服务器处理请求
3. 常见网络协议原理
3.1 TCP协议详解
3.1.1 TCP特点
- 面向连接:传输前必须建立连接(三次握手)
- 可靠传输:确认机制、重传机制、序列号
- 流量控制:滑动窗口机制
- 拥塞控制:慢启动、拥塞避免、快速恢复
3.1.2 TCP头部结构
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ TCP 头部(20-60字节) │
├────────┬────────┬────────┬────────┬────────┬────────┬───────────┤
│ 源端口 │ 目标端口 │ 序列号 │ 确认号 │偏移│标志位│ 窗口大小 │
│ (16位) │ (16位) │ (32位) │ (32位) │量 │ │ (16位) │
├────────┴────────┴────────┴────────┴──────┴────┴────────┴─────────┤
│ 校验和 │ 紧急指针 │
├─────────────────────────────────────────────────────────────────┤
│ 选项(可选,0-40字节) │
└─────────────────────────────────────────────────────────────────┘
标志位说明:
- URG:紧急指针有效
- ACK:确认号有效
- PSH:推送给应用层
- RST:重置连接
- SYN:同步序列号(建立连接)
- FIN:结束连接
3.1.3 TCP三次握手
plaintext
客户端 服务器
│ │
│ ────────── SYN=1, seq=x ───────────────▶│ 第一次握手
│ (客户端发送连接请求) │ 服务器进入SYN_RCVD状态
│ │
│ ◀──────── SYN=1, ACK=1, seq=y ──────────│ 第二次握手
│ ack=x+1 │ 服务器发送同意连接
│ (服务器发送同意连接) │
│ │
│ ────────── ACK=1, seq=x+1 ─────────────▶│ 第三次握手
│ ack=y+1 │ 客户端进入ESTABLISHED
│ (客户端确认) │ 服务器进入ESTABLISHED
│ │
│ 连接建立成功 │
▼ ▼
三次握手原因:
1. 同步双方初始序列号(ISN)
2. 确认客户端的发送能力和服务器的接收能力
3. 防止历史连接初始化混乱
3.1.4 TCP四次挥手
plaintext
客户端 服务器
│ │
│ ────────── FIN=1, seq=u ──────────────▶│ 第一次挥手
│ (客户端请求关闭) │ 客户端进入FIN_WAIT_1
│ │
│ ◀────────── ACK=1, ack=u+1 ─────────────│ 第二次挥手
│ (服务器确认关闭请求) │ 客户端进入FIN_WAIT_2
│ │
│ ◀────────── FIN=1, seq=w ───────────────│ 第三次挥手
│ (服务器请求关闭) │ 服务器进入LAST_ACK
│ │
│ ─────────── ACK=1, ack=w+1 ────────────▶│ 第四次挥手
│ (客户端确认关闭) │ 客户端进入TIME_WAIT
│ │
│ ◀────────── 等待2MSL ───────────────────▶│ 服务器关闭
│ (客户端关闭) │
▼ ▼
四次挥手原因:
1. TCP是全双工通信,需要双方分别关闭发送通道
2. 确保所有数据都已传输完成
3. TIME_WAIT等待2MSL防止确认报文丢失
3.1.5 TCP拥塞控制
plaintext
拥塞控制状态机:
拥塞窗口(cwnd)
cwnd
▲
│ 慢启动
│ /
│ /─────── 到达阈值 ─────────────────────────
│ / 拥塞避免(每个RTT +1) │
│/ │
├─────────────┬───────────────────────────────▶
O ssthresh cwnd
=16
乘法减小:cwnd = cwnd / 2
加法增大:cwnd = cwnd + 1
快速重传:收到3个重复ACK,不等超时直接重传
快速恢复:快速重传后进入快速恢复状态
拥塞控制算法:
| 算法 | 阶段 | cwnd增长方式 | 触发条件 |
|---|---|---|---|
| 慢启动 | 初始 | 指数增长:cwnd × 2 | 连接建立或重传超时后 |
| 拥塞避免 | 达到阈值后 | 线性增长:cwnd + 1 | cwnd ≥ ssthresh |
| 快速重传 | 重传阶段 | 乘法减小:cwnd/2 | 收到3个重复ACK |
| 快速恢复 | 快速重传后 | 线性增长 | 快速重传完成后 |
3.2 UDP协议详解
3.2.1 UDP特点
- 无连接:不需要建立连接,直接发送数据
- 不可靠:不保证交付、不保证顺序、不重复检测
- 高效:头部开销小(仅8字节),延迟低
- 面向报文:保留报文边界
3.2.2 UDP头部结构
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ UDP 头部(8字节) │
├────────┬────────┬────────────────┬──────────────────────────────┤
│ 源端口 │ 目标端口 │ 长度 │ 校验和 │
│ (16位) │ (16位) │ (16位) │ (16位) │
└────────┴────────┴────────────────┴──────────────────────────────┘
3.2.3 TCP与UDP对比
plaintext
┌──────────────┬────────────────────────┬────────────────────────┐
│ 特性 │ TCP │ UDP │
├──────────────┼────────────────────────┼────────────────────────┤
│ 连接性 │ 面向连接 │ 无连接 │
├──────────────┼────────────────────────┼────────────────────────┤
│ 可靠性 │ 可靠传输 │ 不可靠 │
├──────────────┼────────────────────────┼────────────────────────┤
│ 顺序性 │ 保证顺序 │ 不保证 │
├──────────────┼────────────────────────┼────────────────────────┤
│ 头部大小 │ 20-60字节 │ 8字节 │
├──────────────┼────────────────────────┼────────────────────────┤
│ 传输速度 │ 相对较慢 │ 快速 │
├──────────────┼────────────────────────┼────────────────────────┤
│ 资源消耗 │ 较大 │ 较小 │
├──────────────┼────────────────────────┼────────────────────────┤
│ 流量控制 │ 滑动窗口 │ 无 │
├──────────────┼────────────────────────┼────────────────────────┤
│ 拥塞控制 │ 有 │ 无 │
├──────────────┼────────────────────────┼────────────────────────┤
│ 适用场景 │ 文件传输、邮件、Web │ DNS、VoIP、视频直播 │
│ │ SSH、数据库连接 │ 在线游戏、广播组播 │
└──────────────┴────────────────────────┴────────────────────────┘
3.3 HTTP/HTTPS协议
3.3.1 HTTP协议演进
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ HTTP 协议版本对比 │
├────────────────┬────────────────┬───────────────────────────────┤
│ HTTP/1.0 │ HTTP/1.1 │ HTTP/2 │
├────────────────┼────────────────┼───────────────────────────────┤
│ 每次请求新建TCP│ 持久连接(默认) │ 多路复用 │
│ 连接 │ 管道化(pipeline)│ 头部压缩 │
│ 不支持虚拟主机 │ 支持虚拟主机 │ 服务器推送 │
│ 无状态 │ 无状态 │ 无状态 │
│ 不支持断点续传 │ 支持断点续传 │ 二进制分帧 │
└────────────────┴────────────────┴───────────────────────────────┘
3.3.2 HTTP请求结构
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ HTTP 请求报文 │
├─────────────────────────────────────────────────────────────────┤
│ 请求行: GET /index.html HTTP/1.1 │
│ (方法) (URL) (协议版本) │
├─────────────────────────────────────────────────────────────────┤
│ 请求头部:Host: www.example.com │
│ User-Agent: Mozilla/5.0 │
│ Accept: text/html,application/xhtml+xml │
│ Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 │
│ Accept-Encoding: gzip, deflate, br │
│ Connection: keep-alive │
├─────────────────────────────────────────────────────────────────┤
│ 空行: \r\n │
├─────────────────────────────────────────────────────────────────┤
│ 请求体: username=admin&password=123456 │
│ (POST请求时包含,GET请求为空) │
└─────────────────────────────────────────────────────────────────┘
3.3.3 HTTP响应结构
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ HTTP 响应报文 │
├─────────────────────────────────────────────────────────────────┤
│ 状态行: HTTP/1.1 200 OK │
│ (协议版本) (状态码) (状态描述) │
├─────────────────────────────────────────────────────────────────┤
│ 响应头部:Server: Apache/2.4.1 │
│ Date: Mon, 01 Jan 2024 00:00:00 GMT │
│ Content-Type: text/html; charset=utf-8 │
│ Content-Length: 1234 │
│ Content-Encoding: gzip │
│ Cache-Control: max-age=3600 │
├─────────────────────────────────────────────────────────────────┤
│ 空行: \r\n │
├─────────────────────────────────────────────────────────────────┤
│ 响应体: <!DOCTYPE html> │
│ <html>...</html> │
│ (实际内容) │
└─────────────────────────────────────────────────────────────────┘
3.3.4 常见HTTP状态码
| 状态码 | 类别 | 说明 | 常见场景 |
|---|---|---|---|
| 200 | 2xx 成功 | 请求成功 | 正常返回数据 |
| 201 | 2xx 成功 | 已创建 | POST创建资源成功 |
| 204 | 2xx 成功 | 无内容 | DELETE成功 |
| 301 | 3xx 重定向 | 永久移动 | 域名跳转 |
| 302 | 3xx 重定向 | 临时移动 | 临时跳转 |
| 304 | 3xx 重定向 | 未修改 | 缓存命中 |
| 400 | 4xx 客户端错误 | 请求语法错误 | 参数错误 |
| 401 | 4xx 客户端错误 | 未授权 | 需要登录 |
| 403 | 4xx 客户端错误 | 禁止访问 | 权限不足 |
| 404 | 4xx 客户端错误 | 未找到 | 资源不存在 |
| 500 | 5xx 服务器错误 | 服务器内部错误 | 代码异常 |
| 502 | 5xx 服务器错误 | 网关错误 | Nginx代理失败 |
| 503 | 5xx 服务器错误 | 服务不可用 | 服务器过载 |
3.3.5 HTTPS工作原理
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ HTTPS 加密通信原理 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 浏览器 服务器 │
│ │ │ │
│ │ 1. 发起HTTPS请求 │ │
│ │ ─────────────────────────────────▶ │
│ │ │ │
│ │ 2. 发送服务器证书(公钥) │ │
│ │ ◀───────────────────────────────── │
│ │ │ │
│ │ 3. 验证证书有效性 │ │
│ │ • 证书颁发机构验证 │ │
│ │ • 证书有效期验证 │ │
│ │ • 域名匹配验证 │ │
│ │ │ │
│ │ 4. 生成随机数(会话密钥) │ │
│ │ 用服务器公钥加密后发送 │ │
│ │ ─────────────────────────────────▶ │
│ │ │ │
│ │ 5. 服务器用私钥解密 │
│ │ │ 获得会话密钥 │
│ │ │ │
│ │ 6. 双方使用会话密钥 │ │
│ │ 进行对称加密通信 │ │
│ │ ◀═══════════════════════════════▶ │
│ │ (加密的数据传输) │ │
│ │
└─────────────────────────────────────────────────────────────────┘
TLS/SSL握手关键点:
1. 证书验证:确保服务器身份可信
2. 密钥交换:RSA或Diffie-Hellman算法
3. 对称加密:使用会话密钥加密实际数据(效率高)
3.4 DNS协议
3.4.1 DNS系统架构
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ DNS 层次结构 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ . (根域) │
│ │ │
│ ┌───────────────────┼───────────────────┐ │
│ │ │ │ │
│ .com .org .cn │
│ │ │ │ │
│ ┌────┼────┐ ┌────┤ ┌─────────┼───────┐ │
│ google│ baidu│ wiki │ │ taobao │ 163 │ │
│ .com │ .com │ .org │ │ .cn │ .com │ │
│ │ │ │ │ │ │ │
│ mail. www. www. www. │ │ │
│ google. baidu. wiki. taobao. │ │ │
│ com .com .org .cn │ │ │
│ │
│ DNS服务器类型: │
│ • 根DNS服务器:全球13组,负责顶级域 │
│ • 顶级域DNS服务器:.com、.cn、.org等 │
│ • 权威DNS服务器:管理具体域名的DNS记录 │
│ • 递归DNS服务器:替客户端查询(如运营商DNS) │
│ │
└─────────────────────────────────────────────────────────────────┘
3.4.2 DNS查询流程
plaintext
用户浏览器 递归DNS服务器 权威DNS服务器
│ │ │
│ 1. 查询 www.example.com │ │
│ ────────────────────────────────▶ │
│ │ │
│ 2. 查询根服务器 (.com) │
│ ───────────────────────────────────────────────────▶│
│ │ │
│ 3. 返回 .com服务器地址 │
│ ◀───────────────────────────────────────────────────│
│ │ │
│ 4. 查询 .com服务器 │
│ ───────────────────────────────────────────────────▶│
│ │ │
│ 5. 返回 example.com服务器地址 │
│ ◀───────────────────────────────────────────────────│
│ │ │
│ 6. 查询 www.example.com │
│ ───────────────────────────────────────────────────▶│
│ │ │
│ 7. 返回IP: 93.184.216.34 │
│ ◀───────────────────────────────────────────────────│
│ │ │
│ 8. 返回IP给浏览器 │ │
│ ◀───────────────────────────────── │
│ │ │
│ 9. 浏览器发起HTTP请求 │ │
│ ──────────────────────────────────▶ │
▼ ▼ ▼
3.4.3 DNS记录类型
| 记录类型 | 名称 | 说明 | 示例 |
|---|---|---|---|
| A | 地址记录 | 域名指向IPv4地址 | example.com → 93.184.216.34 |
| AAAA | IPv6地址记录 | 域名指向IPv6地址 | example.com → 2606:2800:220:1:: |
| CNAME | 别名记录 | 域名别名 | www.example.com → example.com |
| MX | 邮件交换记录 | 指定邮件服务器 | example.com → mail.example.com |
| NS | 域名服务器记录 | 指定DNS服务器 | example.com → ns1.example.com |
| TXT | 文本记录 | SPF、DKIM验证 | 用于验证和防垃圾邮件 |
| PTR | 指针记录 | IP反向解析 | 34.216.184.93 → example.com |
3.5 DHCP协议
3.5.1 DHCP工作原理
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ DHCP 动态获取IP流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 客户端 DHCP服务器 │
│ │ │ │
│ │ 1. DHCP Discover (广播) │ │
│ │ -src: 0.0.0.0 │ │
│ │ -chaddr: 客户端MAC地址 │ │
│ │ ──────────────────────────────────▶ │
│ │ (发现可用的DHCP服务器) │ │
│ │ │ │
│ │ 2. DHCP Offer (广播) │ │
│ │ -yiaddr: 192.168.1.101 │ │
│ │ -lease time: 7200秒 │ │
│ │ -subnet mask: 255.255.255.0 │ │
│ │ -router: 192.168.1.1 │ │
│ │ -DNS: 8.8.8.8 │ │
│ │ ◀────────────────────────────────── │
│ │ (服务器提供IP地址) │ │
│ │ │ │
│ │ 3. DHCP Request (广播) │ │
│ │ -requested IP: 192.168.1.101 │ │
│ │ ──────────────────────────────────▶ │
│ │ (客户端请求该IP地址) │ │
│ │ │ │
│ │ 4. DHCP ACK (广播) │ │
│ │ -yiaddr: 192.168.1.101 │ │
│ │ ◀────────────────────────────────── │
│ │ (服务器确认分配) │ │
│ │ │ │
│ ▼ ▼ │
│ │
│ IP租约更新流程: │
│ • 租约50%时:客户端自动发起续租请求 │
│ • 租约87.5%时:仍未确认则重新广播请求 │
│ • 租约到期:客户端释放IP地址,重新获取 │
│ │
└─────────────────────────────────────────────────────────────────┘
3.5.2 DHCP配置示例(Cisco路由器)
bash
# 进入DHCP配置模式
Router> enable
Router# configure terminal
# 创建DHCP池
Router(config)# ip dhcp pool LAN_POOL
# 配置地址池范围
Router(dhcp-config)# network 192.168.1.0 255.255.255.0
# 配置DNS服务器
Router(dhcp-config)# dns-server 8.8.8.8 114.114.114.114
# 配置网关
Router(dhcp-config)# default-router 192.168.1.1
# 配置租约时间(天)
Router(dhcp-config)# lease 7
# 退出DHCP池配置
Router(dhcp-config)# exit
# 配置排除地址(不分配的地址)
Router(config)# ip dhcp excluded-address 192.168.1.1 192.168.1.10
4. IP地址与子网划分
4.1 IPv4地址基础
4.1.1 IPv4地址结构
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ IPv4 地址结构 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ IPv4地址:32位二进制数 │
│ │
│ 11000000 10101000 00000001 00001010 │
│ ├──────┬──────┬──────┬──────┬┤ │
│ 第1字节 │第2字节 │第3字节 │第4字节 │ │
│ 192 │ 168 │ 1 │ 10 │ │
│ │
│ 点分十进制表示:192.168.1.10 │
│ │
│ 地址组成: │
│ ┌─────────────────────┬───────────────┐ │
│ │ 网络部分 (Network) │ 主机部分 (Host) │ │
│ └─────────────────────┴───────────────┘ │
│ │
│ 网络部分:标识所属网络 │
│ 主机部分:标识网络中的具体设备 │
│ │
└─────────────────────────────────────────────────────────────────┘
4.1.2 IPv4地址分类
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ IPv4 地址分类 │
├────────┬────────────┬───────────────┬───────────────────────────┤
│ 类别 │ 地址范围 │ 默认子网掩码 │ 用途 │
├────────┼───────────────────┼───────────────┼─────────────────────┤
│ A类 │ 1.0.0.0 - 126.255.255.255 │ 255.0.0.0 (/8) │ 大型网络 │
│ │ (0.0.0.0-127.x.x.x保留) │ │ │
├────────┼───────────────────┼───────────────┼─────────────────────┤
│ B类 │ 128.0.0.0 - 191.255.255.255 │ 255.255.0.0 (/16)│ 中型网络 │
├────────┼───────────────────┼───────────────┼─────────────────────┤
│ C类 │ 192.0.0.0 - 223.255.255.255 │255.255.255.0 (/24)│ 小型网络 │
├────────┼───────────────────┼───────────────┼─────────────────────┤
│ D类 │ 224.0.0.0 - 239.255.255.255 │ 无 │ 组播地址 │
├────────┼───────────────────┼───────────────┼─────────────────────┤
│ E类 │ 240.0.0.0 - 255.255.255.255 │ 无 │ 保留(实验) │
└────────┴───────────────────┴───────────────┴─────────────────────┘
特殊地址:
┌─────────────────────────────────────────────────────────────────┐
│ 网络地址:主机位全为0 → 192.168.1.0/24 标识整个网络 │
│ 广播地址:主机位全为1 → 192.168.1.255/24 网内广播 │
│ 本地回环:127.0.0.1 → localhost 本机测试 │
│ 链路本地:169.254.x.x → DHCP失败时自动分配 │
│ 私有地址:RFC1918定义的内部网络专用地址 │
│ • 10.0.0.0/8 (10.0.0.0 - 10.255.255.255) │
│ • 172.16.0.0/12 (172.16.0.0 - 172.31.255.255) │
│ • 192.168.0.0/16 (192.168.0.0 - 192.168.255.255) │
└─────────────────────────────────────────────────────────────────┘
4.2 子网划分
4.2.1 子网掩码详解
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 子网掩码原理 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 子网掩码:用于区分IP地址的网络位和主机位 │
│ │
│ 二进制运算:AND运算 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ IP地址: 11000000.10101000.00000001.00001010 │ │
│ │ (192.168.1.10) │ │
│ │ 子网掩码: 11111111.11111111.11111111.00000000 │ │
│ │ (255.255.255.0) │ │
│ │ ───────────────────────────────────────────────────── │ │
│ │ 网络地址: 11000000.10101000.00000001.00000000 │ │
│ │ (192.168.1.0) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 常用CIDR表示法: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ /8 = 255.0.0.0 主机数: 16,777,214 │ │
│ │ /16 = 255.255.0.0 主机数: 65,534 │ │
│ │ /24 = 255.255.255.0 主机数: 254 │ │
│ │ /25 = 255.255.255.128 主机数: 126 │ │
│ │ /26 = 255.255.255.192 主机数: 62 │ │
│ │ /27 = 255.255.255.224 主机数: 30 │ │
│ │ /28 = 255.255.255.240 主机数: 14 │ │
│ │ /29 = 255.255.255.248 主机数: 6 │ │
│ │ /30 = 255.255.255.252 主机数: 2 (点对点链路) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 公式:可用主机数 = 2^(32-n) - 2 │
│ 其中n为CIDR前缀长度 │
│ │
└─────────────────────────────────────────────────────────────────┘
4.2.2 子网划分实例
场景:公司需要将192.168.1.0/24划分为4个子网
plaintext
原始网络: 192.168.1.0/24 (255.255.255.0)
主机位: 8位 (可分配254台主机)
需要划分: 4个子网
┌─────────────────────────────────────────────────────────────────┐
│ 借用主机位扩展网络位 │
│ │
│ 原: 11000000.10101000.00000001.00000000 │
│ │ 网络位 │主机位│ │
│ │
│ 新子网需要2位来区分4个子网: │
│ 新: 11000000.10101000.00000001.00|000000 │
│ │ 网络位 │子网位│主机位│ │
│ │
│ 子网掩码变为: /26 = 255.255.255.192 │
│ 每个子网可用主机: 2^6 - 2 = 62 │
└─────────────────────────────────────────────────────────────────┘
划分结果:
┌─────────────────────────────────────────────────────────────────┐
│ 子网1: 192.168.1.0/26 │
│ 网络地址: 192.168.1.0 │
│ 可用范围: 192.168.1.1 - 192.168.1.62 │
│ 广播地址: 192.168.1.63 │
├─────────────────────────────────────────────────────────────────┤
│ 子网2: 192.168.1.64/26 │
│ 网络地址: 192.168.1.64 │
│ 可用范围: 192.168.1.65 - 192.168.1.126 │
│ 广播地址: 192.168.1.127 │
├─────────────────────────────────────────────────────────────────┤
│ 子网3: 192.168.1.128/26 │
│ 网络地址: 192.168.1.128 │
│ 可用范围: 192.168.1.129 - 192.168.1.190 │
│ 广播地址: 192.168.1.191 │
├─────────────────────────────────────────────────────────────────┤
│ 子网4: 192.168.1.192/26 │
│ 网络地址: 192.168.1.192 │
│ 可用范围: 192.168.1.193 - 192.168.1.254 │
│ 广播地址: 192.168.1.255 │
└─────────────────────────────────────────────────────────────────┘
场景二:不同规模子网的VLSM划分
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 公司网络规划 - VLSM(可变长子网掩码) │
│ │
│ 需求: │
│ • 研发部: 100台主机 │
│ • 市场部: 50台主机 │
│ • 财务部: 20台主机 │
│ • 管理层: 10台主机 │
│ • 点对点链路: 2条(各需2个IP) │
│ │
│ 分配: │
│ • 研发部: 192.168.0.0/25 (128地址, 126可用) │
│ • 市场部: 192.168.0.128/26 (64地址, 62可用) │
│ • 财务部: 192.168.0.192/27 (32地址, 30可用) │
│ • 管理层: 192.168.0.224/28 (16地址, 14可用) │
│ • 链路1: 192.168.0.240/30 (4地址, 2可用) │
│ • 链路2: 192.168.0.244/30 (4地址, 2可用) │
└─────────────────────────────────────────────────────────────────┘
4.3 IPv6基础
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ IPv6 地址概览 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ IPv6地址: 128位, 用冒号十六进制表示 │
│ │
│ 示例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 │
│ 简写: 2001:db8:85a3::8a2e:370:7334 │
│ │
│ IPv6地址类型: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 2000::/3 全局单播地址 (类似IPv4公网) │ │
│ │ FE80::/10 链路本地地址 (类似IPv4 169.254.x.x) │ │
│ │ FC00::/7 唯一本地地址 (类似IPv4私有地址) │ │
│ │ FF00::/8 组播地址 │ │
│ │ ::1/128 回环地址 (127.0.0.1) │ │
│ │ ::/128 未指定地址 (0.0.0.0) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ IPv6优势: │
│ ✓ 地址空间巨大 (2^128) │
│ ✓ 简化的包头 (更高效路由) │
│ ✓ 内置安全 (IPsec) │
│ ✓ 自动配置 (SLAAC) │
│ ✓ 更好的移动性支持 │
│ ✓ 消除NAT (端到端通信) │
│ │
└─────────────────────────────────────────────────────────────────┘
5. 网络设备与路由交换基础
5.1 网络设备层次对应
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 网络设备与OSI模型对应 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ OSI层 设备 功能 │
│ ──────────────────────────────────────────────────────────── │
│ 第7层 应用网关 协议转换、数据转换 │
│ 第6-7层 网关、防火墙 安全控制、应用代理 │
│ ──────────────────────────────────────────────────────────── │
│ 第3层 路由器、三层交换机 IP寻址、路由选择 │
│ ──────────────────────────────────────────────────────────── │
│ 第2层 二层交换机、网桥 MAC地址学习、帧转发 │
│ ──────────────────────────────────────────────────────────── │
│ 第1层 集线器、中继器 信号放大、再生 │
│ 光纤收发器 光电信号转换 │
│ │
└─────────────────────────────────────────────────────────────────┘
5.2 二层交换机工作原理
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 二层交换机工作原理 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 核心机制: MAC地址表 (CAM表) │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ MAC地址表 (CAM表) │ │
│ ├─────────────┬────────────┬───────────────┬──────────────┤ │
│ │ MAC地址 │ VLAN │ 端口 │ 老化时间 │ │
│ ├─────────────┼────────────┼───────────────┼──────────────┤ │
│ │ AA:BB:CC:DD │ 1 │ 1 │ 300秒 │ │
│ │ EE:FF:00:11 │ 1 │ 2 │ 300秒 │ │
│ │ 22:33:44:55 │ 1 │ 3 │ 300秒 │ │
│ └─────────────┴────────────┴───────────────┴──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
交换机转发行为:
┌─────────────────────────────────────────────────────────────────┐
│ 帧转发流程: │
│ │
│ 1. 学习(Learn): 收到帧时, 记录源MAC地址和对应端口 │
│ │
│ 2. 泛洪(Flood): 目的MAC未知时, 向所有端口转发 (除接收端口) │
│ │
│ 3. 转发(Forward): 目的MAC已知且在同一VLAN, 按表转发 │
│ │
│ 4. 过滤(Filter): 目的MAC在同一端口, 丢弃帧 │
│ │
└─────────────────────────────────────────────────────────────────┘
5.3 VLAN技术
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ VLAN 原理 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 传统交换网络: VLAN划分后: │
│ │
│ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │SWITCH│ │SWITCH│ │SWITCH│ │
│ └──┬───┘ └──┬───┘ └──┬───┘ │
│ ┌────┼────┐ ┌───┴───┐ ┌───┴───┐ │
│ │ │ │ │ VLAN10│ │VLAN20 │ │
│ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ │
│ │PC1│ │PC2│ │PC3│ │PC1│ │PC2│ │PC3│ │
│ └─┬─┘ └─┬─┘ └─┬─┘ └──┬─┘ └──┬─┘ └──┬─┘ │
│ │ │ │ │ VLAN10│ │VLAN20│ │
│ ──┴─────┴─────┴── → ──┴──────┴───┴──────┴── │
│ 所有主机互通 同一VLAN互通, 不同VLAN隔离 │
│ │
│ VLAN优点: │
│ ✓ 广播域分隔, 减少广播风暴 │
│ ✓ 提高网络安全, 不同VLAN间需路由互通 │
│ ✓ 灵活的网络分段和管理 │
│ ✓ 简化故障隔离 │
│ │
└─────────────────────────────────────────────────────────────────┘
VLAN配置示例(Cisco交换机):
bash
# 创建VLAN
Switch> enable
Switch# configure terminal
Switch(config)# vlan 10
Switch(config-vlan)# name Engineering
Switch(config-vlan)# exit
Switch(config)# vlan 20
Switch(config-vlan)# name Marketing
Switch(config-vlan)# exit
# 将端口分配到VLAN
Switch(config)# interface fastEthernet 0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# exit
Switch(config)# interface fastEthernet 0/2
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 20
Switch(config-if)# exit
# 配置Trunk端口(交换机间连接)
Switch(config)# interface gigabitEthernet 0/1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 10,20
Switch(config-if)# exit
5.4 路由器与路由基础
5.4.1 路由器工作原理
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 路由器工作原理 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 路由器核心功能: │
│ 1. 学习路由条目 (路由协议/静态配置) │
│ 2. 查表转发IP数据包 │
│ 3. 跨网段数据转发 │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 路由表示例 │ │
│ ├──────────────┬─────────────┬───────────┬─────────────────┤ │
│ │ 目的网络 │ 子网掩码 │ 下一跳 │ 接口 │ │
│ ├──────────────┼─────────────┼───────────┼─────────────────┤ │
│ │ 192.168.1.0 │ /24 │ - │ LAN │ │
│ │ 10.0.0.0 │ /8 │ - │ WAN │ │
│ │ 0.0.0.0 │ /0 │ 200.1.1.1│ WAN │ │
│ └──────────────┴─────────────┴───────────┴─────────────────┘ │
│ │
│ 路由决策过程: │
│ 1. 提取IP包目的地址 │
│ 2. 与路由条目逐一按位AND运算 │
│ 3. 匹配结果与路由条目对比 │
│ 4. 选择最长前缀匹配(LPM)的路由 │
│ 5. 转发到对应接口 │
│ │
└─────────────────────────────────────────────────────────────────┘
5.4.2 路由类型对比
| 路由类型 | 优先级 | 特点 | 适用场景 |
|---|---|---|---|
| 直连路由 | 0 | 自动发现,接口up即生效 | 路由器直连网络 |
| 静态路由 | 60 | 管理员手动配置 | 小型网络、特定路径 |
| OSPF | 110 | 链路状态协议,快速收敛 | 中大型网络 |
| RIP | 120 | 距离矢量,16跳限制 | 小型简单网络 |
| BGP | 255 | 路径矢量,AS间路由 | ISP间、跨运营商 |
5.4.3 路由配置示例
bash
# 静态路由配置
Router> enable
Router# configure terminal
# 添加静态路由:去往192.168.2.0/24通过192.168.1.1转发
Router(config)# ip route 192.168.2.0 255.255.255.0 192.168.1.1
# 添加默认路由
Router(config)# ip route 0.0.0.0 0.0.0.0 200.1.1.1
# 查看路由表
Router# show ip route
# OSPF配置
Router(config)# router ospf 1
Router(config-router)# network 192.168.1.0 0.0.0.255 area 0
Router(config-router)# network 10.0.0.0 0.255.255.255 area 0
# RIP配置
Router(config)# router rip
Router(config-router)# version 2
Router(config-router)# network 192.168.1.0
Router(config-router)# network 10.0.0.0
5.5 三层交换机与VLAN间路由
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ VLAN间路由 - 三层交换机 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 三层交换机 │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ VLAN 10 │ │ VLAN 20 │ │ VLAN 30 │ │ │
│ │ │ 192.168.10.0 │ │ 192.168.20.0 │ │ 192.168.30.0 │ │ │
│ │ │ SVI接口 │ │ SVI接口 │ │ SVI接口 │ │ │
│ │ │ .1 │ │ .1 │ │ .1 │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │ │ │ │
│ │ └────────────────┼────────────────┘ │ │
│ │ │ │ │
│ │ 三层交换引擎 │ │
│ │ (路由计算) │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ VLAN10主机 ←→ 找VLAN20主机 ←→ 触发三层路由 ←→ 转发 │
│ │
└─────────────────────────────────────────────────────────────────┘
三层交换机VLAN间路由配置:
```bash
# 创建VLAN
Switch(config)# vlan 10
Switch(config-vlan)# exit
Switch(config)# vlan 20
Switch(config-vlan)# exit
# 配置VLAN接口IP地址(SVI)
Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1 255.255.255.0
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface vlan 20
Switch(config-if)# ip address 192.168.20.1 255.255.255.0
Switch(config-if)# no shutdown
Switch(config-if)# exit
# 开启IP路由
Switch(config)# ip routing
# 端口划入VLAN
Switch(config)# interface fastEthernet 0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# exit
plaintext
---
## 6. 网络安全基础
### 6.1 网络安全威胁类型
┌─────────────────────────────────────────────────────────────────┐
│ 常见网络安全威胁 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 威胁分类 │ │ 威胁分类 │ │ 威胁分类 │ │
│ ├─────────────┤ ├─────────────┤ ├─────────────┤ │
│ │ 未授权访问 │ │ 数据泄露 │ │ 拒绝服务 │ │
│ │ 窃听/嗅探 │ │ 恶意软件 │ │ 中间人攻击 │ │
│ │ 欺骗/伪装 │ │ 钓鱼攻击 │ │ SQL注入 │ │
│ │ 重放攻击 │ │ 零日漏洞 │ │ XSS │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
plaintext
### 6.2 防火墙基础
#### 6.2.1 防火墙类型
┌─────────────────────────────────────────────────────────────────┐
│ 防火墙类型对比 │
├────────────────┬──────────────────────────────────────────────────┤
│ 类型 │ 说明 │
├────────────────┼──────────────────────────────────────────────────┤
│ 包过滤防火墙 │ 基于网络层信息(IP地址/端口)过滤,简单高效 │
│ 状态检测防火墙 │ 跟踪连接状态,智能过滤,主流产品 │
│ 应用层网关 │ 深度检测应用层协议,安全性高,性能较低 │
│ NGFW(下一代) │ 集成入侵检测、应用识别、用户识别等高级功能 │
└────────────────┴──────────────────────────────────────────────────┘
plaintext
#### 6.2.2 防火墙配置示例
```bash
# Cisco ASA 防火墙基本配置
# 配置接口
ciscoasa(config)# interface gigabitEthernet 0/0
ciscoasa(config-if)# nameif outside
ciscoasa(config-if)# ip address 200.1.1.10 255.255.255.0
ciscoasa(config-if)# security-level 0
ciscoasa(config-if)# no shutdown
ciscoasa(config)# interface gigabitEthernet 0/1
ciscoasa(config-if)# nameif inside
ciscoasa(config-if)# ip address 192.168.1.1 255.255.255.0
ciscoasa(config-if)# security-level 100
ciscoasa(config-if)# no shutdown
# 配置访问控制列表(ACL)
# 允许内网访问外网
ciscoasa(config)# access-list OUTSIDE_IN extended permit tcp any any eq 80
ciscoasa(config)# access-list OUTSIDE_IN extended permit tcp any any eq 443
ciscoasa(config)# access-list OUTSIDE_IN extended permit icmp any any
# 拒绝其他所有入站流量
ciscoasa(config)# access-list OUTSIDE_IN extended deny ip any any
# 应用ACL到接口
ciscoasa(config)# access-group OUTSIDE_IN in interface outside
# 配置NAT
ciscoasa(config)# object network INSIDE_NET
ciscoasa(config-network-object)# subnet 192.168.1.0 255.255.255.0
ciscoasa(config-network-object)# nat (inside,outside) dynamic interface
6.3 VPN技术
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ VPN 技术类型 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ VPN 隧道类型 │ │
│ ├─────────────────────┬────────────────────────────────────┤ │
│ │ 站点到站点VPN │ 远程访问VPN │ │
│ ├─────────────────────┼────────────────────────────────────┤ │
│ │ │ │ │
│ │ [总部]═══VPN═══[分部] │ [员工]═══VPN═══[公司] │ │
│ │ │ │ │ │ │ │ │
│ │ 内部网络 内部网络 │ 家庭/酒店 公司网络 │ │
│ │ │ │ │
│ │ 两个固定站点之间 │ 移动用户远程接入公司网络 │ │
│ └─────────────────────┴────────────────────────────────────┘ │
│ │
│ VPN协议: │
│ • PPTP: 简单但安全性低,已逐渐淘汰 │
│ • L2TP/IPsec: 结合L2TP和IPsec,安全性高 │
│ • OpenVPN: 开源,基于SSL/TLS,跨平台 │
│ • IPsec: 原生安全,应用广泛 │
│ • WireGuard: 新一代高性能VPN协议 │
│ │
└─────────────────────────────────────────────────────────────────┘
6.4 ACL访问控制列表
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ ACL 配置示例与原理 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 标准ACL (1-99, 1300-1999): 基于源IP过滤 │
│ │
│ Router(config)# access-list 10 permit 192.168.1.0 0.0.0.255 │
│ Router(config)# access-list 10 deny any │
│ Router(config)# interface gig 0/0 │
│ Router(config-if)# ip access-group 10 out │
│ │
│ 扩展ACL (100-199, 2000-2699): 基于源/目的IP, 端口, 协议过滤 │
│ │
│ Router(config)# access-list 100 permit tcp 192.168.1.0 0.0.0.255 │
│ Router(config)# any eq 80 │
│ Router(config)# (源) (目的端口HTTP) │
│ │
│ Router(config)# access-list 100 permit tcp 192.168.1.0 0.0.0.255 │
│ Router(config)# any eq 443 │
│ Router(config)# (目的端口HTTPS) │
│ │
│ Router(config)# access-list 100 deny ip any any │
│ │
│ ACL匹配规则: │
│ 1. 按顺序匹配, 命中即停止 │
│ 2. 末尾隐含deny any (或deny 0.0.0.0 255.255.255.255) │
│ 3. 建议末尾显式添加 permit any 或 permit ip any any │
│ │
└─────────────────────────────────────────────────────────────────┘
7. 实际应用场景与案例分析
7.1 案例一:中小企业网络架构设计
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 中小企业网络架构示例 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ 防火墙 │ │
│ │ (边界网关) │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────┴──────┐ │
│ │ 核心交换机 │ │
│ │ (三层) │ │
│ └──────┬──────┘ │
│ ┌─────────┬────────┼────────┬─────────┐ │
│ │ │ │ │ │ │
│ ┌────┴────┐┌──┴───┐┌──┴───┐┌──┴───┐┌──┴───┐ │
│ │部门1 │ │部门2 │ │部门3 │ │服务器│ │无线AP│ │
│ │VLAN10 │ │VLAN20│ │VLAN30│ │VLAN100│ │VLAN50│ │
│ └────────┘ └──────┘ └──────┘ └──────┘ └──────┘ │
│ │
│ IP规划: │
│ • 核心交换机: 192.168.0.1/24 │
│ • 研发部(VLAN10): 192.168.10.0/24 │
│ • 市场部(VLAN20): 192.168.20.0/24 │
│ • 财务部(VLAN30): 192.168.30.0/27 (隔离) │
│ • 服务器区(VLAN100): 192.168.100.0/24 │
│ • 无线办公(VLAN50): 192.168.50.0/24 │
│ │
└─────────────────────────────────────────────────────────────────┘
网络配置要点:
1. 防火墙作为边界网关, 实施安全策略
2. 核心三层交换机实现VLAN间路由
3. 服务器区通过ACL限制访问
4. 财务部VLAN与其他部门隔离(防火墙二次过滤)
5. 无线网络独立VLAN, 访客与办公分离
7.2 案例二:Web服务访问完整流程分析
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 用户访问 www.example.com 完整流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. DNS解析阶段 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 用户浏览器 ──查询──▶ 本地DNS缓存 │ │
│ │ │ │ │
│ │ │未命中 │ │
│ │ ▼ │ │
│ │ 递归DNS服务器 ──查询──▶ 根服务器 │ │
│ │ │ │ │ │
│ │ │◀──返回.com服务器── │ │
│ │ ▼ │ │
│ │ .com服务器 ──查询──▶ example.com DNS │ │
│ │ │ │ │
│ │ │◀──返回 IP: 93.184.216.34 │ │
│ │ ▼ │ │
│ │ 返回IP给浏览器 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 2. TCP连接建立 (三次握手) │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 浏览器 ──SYN──▶ 服务器(443端口) │ │
│ │ ◀──SYN+ACK── 浏览器 │ │
│ │ ──ACK──▶ 服务器 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 3. TLS/SSL握手 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 浏览器验证服务器证书有效性 │ │
│ │ 浏览器生成会话密钥 │ │
│ │ 用服务器公钥加密会话密钥发送 │ │
│ │ 服务器用私钥解密获得会话密钥 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 4. HTTP请求发送 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ GET / HTTP/1.1 │ │
│ │ Host: www.example.com │ │
│ │ User-Agent: Mozilla/5.0... │ │
│ │ Accept: text/html... │ │
│ │ Cookie: session_id=xxx │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 5. 服务器处理响应 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Web服务器(Nginx/Apache)接收请求 │ │
│ │ 路由匹配 → 反向代理 → 应用服务器 → 数据库查询 │ │
│ │ 生成响应 → 返回HTML │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 6. 数据加密传输 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 响应内容 ──会话密钥加密──▶ 网络传输 │ │
│ │ ◀──会话密钥解密─── │ │
│ │ 浏览器渲染页面 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
7.3 案例三:DHCP+DNS企业网络配置
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 企业网络DHCP+DNS综合配置案例 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 场景: 企业园区网, 需要为各楼层VLAN分配IP地址 │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ DHCP + DNS 架构 │ │
│ │ │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ DHCP服务器│◀───▶│ DNS服务器│◀───▶│ AD域 │ │ │
│ │ │ CentOS │ │ Bind9 │ │ Windows │ │ │
│ │ └────┬────┘ └────┬────┘ └─────────┘ │ │
│ │ │ │ │ │
│ │ └──────────────┼───────────────────────────────┤ │
│ │ │ │ │
│ │ ┌─────────────┴─────────────┐ │ │
│ │ │ 核心交换机 │ │ │
│ │ └─────────────┬─────────────┘ │ │
│ │ ┌────────┬───────┴───────┬────────┐ │ │
│ │ │ │ │ │ │ │
│ │ ┌──┴──┐ ┌──┴──┐ ┌──┴──┐ ┌──┴──┐ │ │
│ │ │VLAN10│ │VLAN20│ │VLAN30│ │VLAN40│ │ │
│ │ │1楼 │ │2楼 │ │3楼 │ │4楼 │ │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ DHCP配置 (ISC DHCP Server): │
│ │
│ /etc/dhcp/dhcpd.conf: │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ ddns-update-style none; │ │
│ │ │ │
│ │ subnet 192.168.10.0 netmask 255.255.255.0 { │ │
│ │ range 192.168.10.50 192.168.10.200; │ │
│ │ option routers 192.168.10.1; │ │
│ │ option subnet-mask 255.255.255.0; │ │
│ │ option domain-name-servers 192.168.0.10; │ │
│ │ option domain-name "company.local"; │ │
│ │ default-lease-time 7200; │ │
│ │ max-lease-time 86400; │ │
│ │ } │ │
│ │ │ │
│ │ subnet 192.168.20.0 netmask 255.255.255.0 { │ │
│ │ range 192.168.20.50 192.168.20.200; │ │
│ │ option routers 192.168.20.1; │ │
│ │ option domain-name-servers 192.168.0.10; │ │
│ │ } │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ DNS配置 (Bind9): │
│ │
│ /etc/named.conf: │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ zone "company.local" IN { │ │
│ │ type master; │ │
│ │ file "db.company.local"; │ │
│ │ allow-update { 192.168.0.0/24; }; │ │
│ │ }; │ │
│ │ │ │
│ │ zone "0.168.192.in-addr.arpa" IN { │ │
│ │ type master; │ │
│ │ file "db.192.168.0"; │ │
│ │ }; │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ 正向解析区文件 /var/named/db.company.local: │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ $TTL 86400 │ │
│ │ @ IN SOA ns1.company.local. │ │
│ │ admin.company.local. ( │ │
│ │ 2024010101 ; Serial │ │
│ │ 3600 ; Refresh │ │
│ │ 1800 ; Retry │ │
│ │ 604800 ; Expire │ │
│ │ 86400 ) ; Minimum TTL │ │
│ │ │ │
│ │ IN NS ns1.company.local. │ │
│ │ ns1 IN A 192.168.0.10 │ │
│ │ www IN A 192.168.100.10 │ │
│ │ mail IN A 192.168.100.20 │ │
│ │ IN MX 10 mail.company.local. │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
7.4 案例四:网络故障排查思路
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 网络故障排查方法论 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 故障排查流程 (自底向上/自顶向下): │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 自底向上 (Bottom-Up) │ │
│ │ ┌─────────┐ │ │
│ │ │ 物理层 │ 检查网线、光纤、接口灯状态 │ │
│ │ └────┬────┘ │ │
│ │ ┌────┴────┐ │ │
│ │ │ 数据链路层 │ 检查MAC地址表、交换机端口 │ │
│ │ └────┬────┘ │ │
│ │ ┌────┴────┐ │ │
│ │ │ 网络层 │ 检查IP配置、路由表、ARP表 │ │
│ │ └────┬────┘ │ │
│ │ ┌────┴────┐ │ │
│ │ │ 传输层 │ 检查TCP连接、端口状态 │ │
│ │ └────┬────┘ │ │
│ │ ┌────┴────┐ │ │
│ │ │ 应用层 │ 检查服务状态、日志、配置 │ │
│ │ └─────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 常用排查命令: │
│ │
│ Windows: │
│ ipconfig /all # 查看IP配置 │
│ ping <IP> # 测试连通性 │
│ tracert <IP> # 追踪路由 │
│ nslookup <domain> # DNS解析 │
│ netstat -an # 查看端口状态 │
│ arp -a # 查看ARP表 │
│ │
│ Linux: │
│ ip addr / ifconfig # 查看IP配置 │
│ ip route / route -n # 查看路由表 │
│ ping / ping6 # 测试连通性 │
│ traceroute / mtr # 追踪路由 │
│ dig / nslookup # DNS查询 │
│ ss -tuln # 查看端口状态 │
│ arp -n # 查看ARP表 │
│ │
│ 网络设备: │
│ show ip interface brief # 查看接口状态 │
│ show mac address-table # 查看MAC表 │
│ show ip route # 查看路由表 │
│ show running-config # 查看当前配置 │
│ debug ip packet # 调试IP包 (慎用) │
│ │
│ 故障排查黄金法则: │
│ 1. 先定位故障范围(全网/局部/单点) │
│ 2. 检查物理连接和链路状态 │
│ 3. 确认IP配置正确性 │
│ 4. 验证网关和路由可达性 │
│ 5. 测试DNS解析准确性 │
│ 6. 检查ACL和安全策略 │
│ 7. 查看设备日志和分析 │
│ │
└─────────────────────────────────────────────────────────────────┘
8. 总结与学习建议
8.1 核心知识点总结
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 计算机网络知识全景图 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 网络通信基础 │ │
│ │ • OSI七层模型 (应用-表示-会话-传输-网络-数据链路-物理) │ │
│ │ • TCP/IP四层模型 (应用-传输-网络-网络接口) │ │
│ │ • 数据封装与解封装过程 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 核心协议 │ │
│ │ • TCP: 三次握手、四次挥手、可靠传输、拥塞控制 │ │
│ │ • UDP: 高效传输、无连接特性 │ │
│ │ • HTTP/HTTPS: Web通信、TLS加密 │ │
│ │ • DNS: 域名解析、根域/顶级域/权威域 │ │
│ │ • DHCP: IP动态分配、租约管理 │ │
│ │ • ARP: IP到MAC地址解析 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 地址与子网 │ │
│ │ • IPv4地址分类 (A/B/C/D/E类) │ │
│ │ • 私有地址与公网地址 │ │
│ │ • 子网掩码与CIDR表示法 │ │
│ │ • VLSM可变长子网划分 │ │
│ │ • IPv6基础 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 网络设备与路由 │ │
│ │ • 二层交换机: MAC地址学习、帧转发 │ │
│ │ • 三层交换机: VLAN间路由 │ │
│ │ • 路由器: 路由选择、数据转发 │ │
│ │ • VLAN: 广播域隔离 │ │
│ │ • 路由协议: 直连/静态/OSPF/RIP/BGP │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 网络安全 │ │
│ │ • 防火墙: 包过滤、状态检测、ACL │ │
│ │ • VPN: 站点到站点、远程接入 │ │
│ │ • 加密: 对称/非对称/TLS/SSL │ │
│ │ • 认证: AAA、802.1X │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
8.2 学习路径建议
plaintext
阶段一:基础入门 (1-2周)
├── 理解OSI七层模型和TCP/IP四层模型
├── 掌握IP地址和子网划分
├── 学习TCP/UDP协议原理
└── 了解HTTP协议基础
阶段二:网络技术 (2-3周)
├── 深入学习TCP三次握手和四次挥手
├── 掌握DNS解析过程
├── 学习DHCP工作原理
├── 理解交换机工作原理
└── 掌握VLAN技术
阶段三:路由与安全 (2-3周)
├── 学习路由器工作原理
├── 掌握静态路由和动态路由基础
├── 理解ACL访问控制
├── 学习防火墙基础
└── 了解VPN技术
阶段四:实践提升 (持续)
├── 搭建实验环境 (GNS3/EVE-NG/Cisco Packet Tracer)
├── 分析实际网络流量 (Wireshark)
├── 参与网络项目实践
└── 考取专业认证 (HCIA/CCNA/CCNP)
8.3 推荐学习资源
| 资源类型 | 推荐内容 | 适用阶段 |
|---|---|---|
| 书籍 | 《计算机网络:自顶向下方法》 | 全阶段 |
| 书籍 | 《TCP/IP详解》三卷 | 协议深入 |
| 书籍 | 《思科网络技术学院教程》 | 实践入门 |
| 在线课程 | Coursera "Computer Networking" | 系统学习 |
| 实验平台 | GNS3、EVE-NG | 动手实践 |
| 抓包工具 | Wireshark | 协议分析 |
| 认证 | HCIA/CCNA/CCNP | 进阶认证 |
附录
附录A:常见端口号速查
plaintext
┌─────────────────────────────────────────────────────────────────┐
│ 常用端口号速查表 │
├────────┬────────────────────────────────────────────────────────┤
│ 端口 │ 服务 │
├────────┼────────────────────────────────────────────────────────┤
│ 20 │ FTP数据端口 │
│ 21 │ FTP控制端口 │
│ 22 │ SSH (安全远程登录) │
│ 23 │ Telnet (明文远程登录) │
│ 25 │ SMTP (邮件发送) │
│ 53 │ DNS │
│ 67 │ DHCP服务器 │
│ 68 │ DHCP客户端 │
│ 69 │ TFTP │
│ 80 │ HTTP │
│ 110 │ POP3 (邮件接收) │
│ 119 │ NNTP │
│ 123 │ NTP (网络时间协议) │
│ 143 │ IMAP (邮件访问) │
│ 161 │ SNMP │
│ 162 │ SNMPTRAP │
│ 389 │ LDAP │
│ 443 │ HTTPS │
│ 445 │ SMB │
│ 465 │ SMTPS │
│ 514 │ Syslog │
│ 587 │ SMTP (邮件提交) │
│ 636 │ LDAPS │
│ 993 │ IMAPS │
│ 995 │ POP3S │
│ 3306 │ MySQL │
│ 3389 │ RDP (远程桌面) │
│ 5432 │ PostgreSQL │
│ 8080 │ HTTP代理/常用Web服务 │
│ 8443 │ HTTPS备选端口 │
└────────┴────────────────────────────────────────────────────────┘
附录B:网络术语速查
| 术语 | 英文全称 | 中文解释 |
|---|---|---|
| TCP | Transmission Control Protocol | 传输控制协议 |
| UDP | User Datagram Protocol | 用户数据报协议 |
| HTTP | HyperText Transfer Protocol | 超文本传输协议 |
| DNS | Domain Name System | 域名系统 |
| DHCP | Dynamic Host Configuration Protocol | 动态主机配置协议 |
| ARP | Address Resolution Protocol | 地址解析协议 |
| NAT | Network Address Translation | 网络地址转换 |
| VLAN | Virtual Local Area Network | 虚拟局域网 |
| VPN | Virtual Private Network | 虚拟专用网络 |
| ACL | Access Control List | 访问控制列表 |
| OSPF | Open Shortest Path First | 开放最短路径优先 |
| BGP | Border Gateway Protocol | 边界网关协议 |
| MAC | Media Access Control | 媒体访问控制 |
| CIDR | Classless Inter-Domain Routing | 无类域间路由 |
| VLSM | Variable Length Subnet Mask | 可变长子网掩码 |
| MTU | Maximum Transmission Unit | 最大传输单元 |
| RTT | Round Trip Time | 往返时间 |
| TTL | Time To Live | 生存时间 |