linux/网络管理.md
2025-03-19 20:36:50 +08:00

537 lines
21 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<h2><center>网络管理</center></h2>
------
## 一:网络管理
### 1. 网络服务管理
**NetworkManager vs. network服务**
- **NetworkManager**(推荐):
```bash
[root@wxin ~]# systemctl start NetworkManager # 启动
[root@wxin ~]# systemctl enable NetworkManager # 开机自启
```
- **传统network服务**
```bash
[root@wxin ~]# systemctl start network # 启动
[root@wxin ~]# systemctl enable network # 开机自启
```
### 2. 网络配置文件
- **路径**`/etc/sysconfig/network-scripts/ifcfg-<网卡名>`(如 `ifcfg-ens33`)。
- **静态IP配置示例**
```shell
DEVICE=ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.159.100
NETMASK=255.255.255.0
GATEWAY=192.168.159.2
DNS1=8.8.8.8
DNS2=8.8.4.4
```
- **应用配置**
```bash
[root@wxin ~]# nmcli connection reload # NetworkManager重载配置
[root@wxin ~]# systemctl restart network # 传统服务重启
```
### 3. 网络接口管理
- **查看接口**
```bash
[root@wxin ~]# ip addr show # 显示所有接口
[root@wxin ~]# nmcli device status # NetworkManager查看设备
```
- **启用/禁用接口**
```bash
[root@wxin ~]# ifup ens33 # 启用接口
[root@wxin ~]# ifdown ens33 # 禁用接口
```
### 4. 使用 nmcli 配置网络
- **查看连接**
```bash
[root@wxin ~]# nmcli connection show
```
- **设置静态IP**
```bash
[root@wxin ~]# nmcli con mod ens192 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8"
[root@wxin ~]# nmcli con up ens192
```
- **启用DHCP**
```bash
[root@wxin ~]# nmcli con mod ens192 ipv4.method auto
[root@wxin ~]# nmcli con up ens192
```
### 5. 图形化工具`nmtui`
运行命令启动文本界面:
```bash
[root@wxin ~]# nmtui
```
通过菜单配置IP、DNS、网关等。
### 6. 防火墙管理firewalld
- **开放端口/服务**
```bash
[root@wxin ~]# firewall-cmd --permanent --add-port=80/tcp # 开放80端口
[root@wxin ~]# firewall-cmd --permanent --add-service=http # 允许HTTP服务
[root@wxin ~]# firewall-cmd --reload # 重载配置
```
- **查看规则**
```bash
[root@wxin ~]# firewall-cmd --list-all
```
### 7. 网络测试工具
- **连通性测试**
```bash
[root@wxin ~]# ping google.com
traceroute google.com
```
- **端口监听检查**
```bash
[root@wxin ~]# ss -tuln | grep 80 # 查看80端口状态
```
- **DNS解析**
```bash
[root@wxin ~]# nslookup google.com
[root@wxin ~]# dig google.com
```
### 8. 主机名与路由
- **修改主机名**
```bash
[root@wxin ~]# hostnamectl set-hostname server1.example.com
```
- **添加静态路由**
```bash
[root@wxin ~]# ip route add 10.0.0.0/24 via 192.168.1.1 dev ens192
# 持久化:将路由添加到/etc/sysconfig/network-scripts/route-ens192
```
## 二OSI 模型
### 1. OSI七层模型概览
| 层级 | 名称 | 功能 | 数据单位 | 典型协议/设备 |
| :--: | :--------: | :-------------------------: | :-----------: | :----------------------: |
| 7 | 应用层 | 用户接口,提供网络服务 | 数据Data | HTTP, FTP, DNS, SMTP |
| 6 | 表示层 | 数据格式转换、加密/解密 | 数据Data | SSL/TLS, JPEG, ASCII |
| 5 | 会话层 | 建立、管理、终止会话连接 | 数据Data | NetBIOS, RPC |
| 4 | 传输层 | 端到端数据传输,可靠性控制 | 段Segment | TCP, UDP |
| 3 | 网络层 | 路由寻址,跨网络传输数据包 | 包Packet | IP, ICMP, 路由器 |
| 2 | 数据链路层 | 局域网内帧传输MAC地址管理 | 帧Frame | Ethernet, MAC, 交换机 |
| 1 | 物理层 | 物理介质传输比特流 | 比特Bit | 电缆、光纤、网卡、集线器 |
### 2. 各层核心功能
**物理层**
- **作用**通过物理介质如电缆、光纤传输原始比特流0和1
- **关键设备**网卡NIC、集线器Hub、中继器Repeater
- **示例**定义电压、接口类型如RJ45、传输速率如100Mbps
**数据链路层Date Link Layer**
- **作用**将比特流组织成帧Frame通过MAC地址实现局域网内设备通信。
- **子层**
1. **MAC子层**控制物理介质的访问如CSMA/CD
2. **LLC子层**:流量控制和错误校验。
- **关键设备**交换机Switch
**网络层Network Layer**
- **作用**通过IP地址实现跨网络的数据包路由和转发。
- **核心协议**IPv4/IPv6、ICMP用于Ping、路由协议如OSPF、BGP
- **关键设备**路由器Router
**传输层Transport Layer**
- **作用**:确保端到端的数据传输可靠性。
1. **TCP**:面向连接,提供可靠传输(如文件下载)。
2. **UDP**无连接低延迟如视频流、DNS查询
**会话层Session Layer**
- **作用**:管理通信会话(建立、维护、终止连接)。
- **示例**:断点续传、会话身份验证。
**表示层Presentation Layer**
- **作用**:数据格式转换(如加密、压缩、字符编码)。
- **典型技术**SSL/TLS加密、JPEG图像压缩、ASCII/Unicode字符编码
**应用层Application Layer**
- **作用**:直接为用户应用程序提供网络服务接口。
- **常见协议**
1. **HTTP**:网页浏览。
2. **FTP**:文件传输。
3. **SMTP**:电子邮件发送。
4. **DNS**:域名解析。
### 3. 实际意义
- **故障排查**逐层定位问题如物理层检查网线网络层检查IP配置
- **协议设计**各层协议独立发展如HTTP无需关心底层如何传输
- **设备分工**:明确设备作用(如交换机处理数据链路层,路由器处理网络层)。
### 4. 数据封装与解封装
数据从发送端到接收端的过程:
- **封装(发送端)**
应用层数据 → 传输层添加TCP头 → 网络层添加IP头 → 数据链路层添加帧头/尾 → 物理层转为比特流。
- **解封装(接收端)**
物理层接收比特流 → 数据链路层剥离帧头 → 网络层剥离IP头 → 传输层剥离TCP头 → 应用层获取原始数据。
## 三TCP / IP 模型
### 1. 分层模型详解
**应用层Application Layer**
- **核心功能**:直接面向用户应用程序,定义数据格式与交互规则。
- **关键协议**
1. **HTTP/HTTPS**用于网页传输HTTPS通过TLS/SSL加密。
2. **DNS**:将域名(如`www.example.com`解析为IP地址采用UDP/TCP端口53。
3. **SMTP/POP3/IMAP**邮件发送SMTP与接收POP3/IMAP
4. **FTP/SFTP**文件传输SFTP基于SSH加密。
5. **DHCP**动态分配IP地址避免手动配置。
- **数据单元**消息Message或应用层PDU协议数据单元
**传输层Transport Layer**
- **核心功能**:提供端到端(进程到进程)的可靠或高效传输。
- **TCP传输控制协议**
1. **特点**
- 面向连接通过三次握手建立连接SYN, SYN-ACK, ACK
- 可靠性确认ACK、超时重传、数据校验和Checksum
- 流量控制:滑动窗口机制,防止接收方缓冲区溢出。
- 拥塞控制慢启动、拥塞避免、快速重传如收到3个重复ACK
2. **首部格式**20字节基础
- 源/目的端口16位、序列号32位、确认号32位、窗口大小16位等。
- **UDP用户数据报协议**
1. **特点**
- 无连接:直接发送数据,无需建立连接。
- 低延迟首部仅8字节源/目的端口、长度、校验和)。
- 无拥塞控制适用于实时应用如VoIP、在线游戏
2. **典型场景**DNS查询、视频流媒体、物联网传感器数据。
**网络层Internet Layer**
- **核心功能**:实现数据包的路由与寻址,跨越不同网络。
- **IP协议Internet Protocol**
1. **IPv4**
- 32位地址如`192.168.1.1`),采用点分十进制表示。
- 地址耗尽问题通过NAT网络地址转换和CIDR无类别域间路由缓解。
2. **IPv6**
- 128位地址如`2001:0db8:85a3::8a2e:0370:7334`),支持更多设备。
- 改进简化首部格式、内置安全扩展IPsec、无状态地址自动配置SLAAC
3. **数据单元**数据报Datagram
- **辅助协议**
1. **ICMPInternet控制报文协议**:用于网络诊断(如`ping`、`traceroute`)。
2. **ARP地址解析协议**将IP地址映射为MAC地址链路层
3. **路由协议**
- **OSPF**开放最短路径优先内部网关协议IGP基于链路状态。
- **BGP**边界网关协议外部网关协议EGP管理跨AS自治系统路由。
**链路层Link Layer**
- **核心功能**:在物理介质(电缆、光纤、无线电波)上传输原始比特流。
- **关键技术与协议**
1. **以太网Ethernet**使用MAC地址如`00:1A:2B:3C:4D:5E`)标识设备,帧结构包含前导码、目的/源MAC、类型字段如IPv4为`0x0800`、数据及CRC校验。
2. **Wi-FiIEEE 802.11**无线局域网标准支持CSMA/CA载波侦听多路访问/冲突避免)。
3. **PPP点对点协议**:用于拨号或直接设备间通信。
- **数据单元**Frame
### 2. 数据传输流程
**封装Encapsulation**
数据从应用层到链路层的封装过程:
1. **应用层**生成原始数据如HTTP请求
2. **传输层**添加TCP/UDP首部包含端口号、序列号等
3. **网络层**添加IP首部源/目的IP地址、TTL等
4. **链路层**添加帧头MAC地址和帧尾CRC校验
**分用Demultiplexing**
接收方逐层解析数据:
1. **链路层**校验CRC剥离帧头将数据报传递给网络层。
2. **网络层**检查IP地址决定转发或上传至传输层。
3. **传输层**:根据端口号将数据交给对应应用进程。
### 3. 关联机制
**TCP连接管理**
- 三次握手建立连接:
1. 客户端→服务端发送SYNseq=x
2. 服务端→客户端回复SYN-ACKseq=y, ack=x+1
3. 客户端→服务端发送ACKack=y+1
- **目的**:同步初始序列号,协商窗口大小等参数。
- 四次挥手释放连接:
1. 主动方→被动方发送FINseq=u
2. 被动方→主动方回复ACKack=u+1
3. 被动方→主动方发送FINseq=v
4. 主动方→被动方回复ACKack=v+1
- **原因**TCP支持半关闭状态确保双方数据发送完毕。
**IP路由与NAT**
- **路由表**路由器根据目标IP前缀选择下一跳最长前缀匹配优先。
- **NAT网络地址转换**
1. **功能**将私有IP如`192.168.x.x`映射为公网IP解决IPv4地址不足。
2. **类型**静态NAT一对一、动态NAT地址池、PAT端口转换多对一
**ARP与MAC寻址**
- **ARP请求/响应**
1. 主机A广播ARP请求“谁的IP是`192.168.1.2`?”。
2. 主机B单播回复“我的MAC是`00:1A:2B:3C:4D:5E`。”。
- **ARP缓存表**存储IP-MAC映射减少重复查询。
## 四:数据链路层详解
### 1. 核心功能
**物理寻址MAC地址**
- 每个网络设备(如网卡)拥有唯一的**MAC地址**(如`00:1A:2B:3C:4D:5E`),用于在本地网络中标识设备。
- **地址解析协议ARP**将IP地址映射为MAC地址通过广播请求和单播响应
**数据成帧Framing**
- 将网络层传递的IP数据报封装为**帧**,添加帧头(源/目的MAC地址和帧尾校验码
- 帧的格式需适应不同物理介质如以太网、Wi-Fi
**错误检测与纠正**
- **CRC循环冗余校验**:通过帧尾的校验码检测传输中的比特错误,丢弃错误帧。
- 部分协议支持**纠错码**如海明码但多数依赖上层协议如TCP重传。
**流量控制**
- 防止接收方因处理速度不足导致数据丢失,例如:
- **停顿协议Stop-and-Wait**:发送一帧后等待确认。
- **滑动窗口协议**:允许连续发送多帧,提升效率。
**介质访问控制MAC**
- 协调多设备共享同一物理介质的访问,避免冲突:
- **CSMA/CD**(载波侦听多路访问/冲突检测):用于以太网,检测冲突后重发。
- **CSMA/CA**(载波侦听多路访问/冲突避免用于Wi-Fi通过ACK和随机退避减少冲突。
### 2. 常见协议与技术
#### **以太网Ethernet**
- **帧结构**
| 字段 | 说明 |
| :-----------------: | :-----------------------------------------------: |
| 前导码7字节 | 同步接收方时钟。 |
| SFD1字节 | 帧起始定界符(`10101011`)。 |
| 目的MAC6字节 | 目标设备的MAC地址。 |
| 源MAC6字节 | 发送方MAC地址。 |
| 类型2字节 | 上层协议类型如IPv4为`0x0800`ARP为`0x0806`)。 |
| 数据46-1500字节 | 携带IP数据报最小46字节不足需填充。 |
| CRC4字节 | 校验码,检测传输错误。 |
- **特点**
- 支持多种速率10Mbps、1Gbps、10Gbps等和介质双绞线、光纤
- 使用**交换机**实现全双工通信,避免冲突(传统集线器已被淘汰)。
#### Wi-FiIEEE 802.11
- **帧结构**
- 包含MAC头控制帧类型、地址、数据载荷和CRC。
- 支持三种地址类型源地址、目的地址、AP接入点地址。
- **关键技术**
- **CSMA/CA**:发送数据前先监听信道,空闲时发送,否则随机等待。
- **RTS/CTS**可选减少隐藏终端问题如设备A和C无法直接通信但均连接至B
- **ACK机制**:接收方需确认帧的接收,否则发送方重传。
#### PPP点对点协议
- **用途**:用于拨号上网、路由器间直连等点对点链路。
- **特点**
- 支持身份验证如PAP、CHAP协议
- 封装多种网络层协议IP、IPX等
- 帧结构简单无MAC地址因仅两点通信
### 3. 关键机制
#### **ARP协议流程**
- **场景**主机AIP: 192.168.1.1需向主机BIP: 192.168.1.2发送数据但未知B的MAC地址。
- **ARP请求**(广播):
- A发送广播帧询问“谁的IP是192.168.1.2?”。
- 目标MAC为`FF:FF:FF:FF:FF:FF`,局域网内所有设备均接收。
- **ARP响应**(单播):
- B回复单播帧告知A自己的MAC地址。
- A将B的IP-MAC映射存入**ARP缓存表**(有效期通常几分钟)。
#### **MTU与分片**
- **MTU最大传输单元**数据链路层可传输的最大帧长度如以太网为1500字节
- **分片处理**
- 若IP数据报超过MTU网络层IP协议负责分片。
- 接收方重组分片,但分片会增加延迟和丢包风险(现代网络通常避免分片,通过**路径MTU发现**确定最小MTU
#### **错误处理**
- **CRC校验**接收方计算帧的CRC值若与帧尾不匹配直接丢弃该帧。
- **纠错机制**Wi-Fi等无线协议可能使用前向纠错FEC在帧中添加冗余数据允许接收方自行修复少量错误。
### 4. 数据链路层与物理层的关系
- **数据链路层**:定义帧格式、寻址和错误控制,依赖物理层实现比特流传输。
- **物理层**:负责将帧转换为电信号、光信号或无线电波(如网卡、光纤模块、天线)。
## 五:网络层详解
### 1. 核心协议与功能
#### **IP协议Internet Protocol**
- **作用**:为数据包提供**逻辑寻址**IP地址和**路由选择**。
- **版本**
1. **IPv4**
- 32位地址如`192.168.1.1`总量约42亿通过NAT和CIDR缓解地址短缺。
- **数据报格式**
1. 首部20字节+可选字段包含TTL生存时间、协议类型如TCP/UDP、源/目的IP等。
2. 数据承载传输层报文如TCP段或UDP数据报
2. **IPv6**
- 128位地址如`2001:0db8:85a3::8a2e:0370:7334`),几乎无限地址空间。
- **改进**
1. 简化首部固定40字节无分片字段
2. 内置IPsec加密与身份验证。
3. 支持无状态地址自动配置SLAAC
#### **辅助协议**
- **ICMPInternet控制报文协议**
1. 用于网络诊断与错误报告(如`ping`基于ICMP Echo Request/Reply
2. 报告网络问题(如目标不可达、超时)。
- **路由协议**
1. **OSPF开放最短路径优先**内部网关协议IGP基于链路状态算法适用于企业内网。
2. **BGP边界网关协议**外部网关协议EGP管理跨自治系统AS的路由支撑互联网核心路由。
### 2. 关键机制
#### **IP寻址与子网划分**
- **IP地址结构**
1. **网络号 + 主机号**:通过子网掩码(如`255.255.255.0`)区分网络与主机部分。
2. **CIDR无类别域间路由**取代传统A/B/C类地址支持灵活划分如`192.168.1.0/24`表示前24位为网络号
- **私有地址与NAT**
1. **私有IP范围**`10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16`,用于局域网内。
2. **NAT网络地址转换**
- **功能**将私有IP映射为公网IP实现多设备共享单一公网IP。
- **类型**
1. **静态NAT**:一对一映射(如将`192.168.1.2`映射为`203.0.113.5`)。
2. **PAT端口地址转换**:多对一映射,通过端口号区分会话(常见于家庭路由器)。
#### **路由与转发**
- **路由表**
1. 每台路由器维护一张表,记录目标网络与下一跳的映射。
2. **表项示例**
| 目标网络 | 下一跳 | 接口 | 度量值 |
| -------------- | ----------- | ---- | ------ |
| 192.168.1.0/24 | 直接连接 | eth0 | 0 |
| 0.0.0.0/0 | 203.0.113.1 | eth1 | 1 |
- **路由选择原则**
1. **最长前缀匹配**:优先选择子网掩码最长的路由条目。
2. **动态路由协议**OSPF通过计算最短路径树BGP基于策略选择最优路径。
#### **分片与重组**
- **MTU最大传输单元**数据链路层帧的最大载荷如以太网为1500字节
- **分片场景**
1. 当IP数据报大小超过MTU时路由器将其分割为多个分片。
2. 每个分片携带**标识符、偏移量、MF标志More Fragments**。
- **重组**:由目标主机根据分片信息重新组装原始数据报。
- **现代优化**:通过**路径MTU发现PMTUD**源主机主动探测路径最小MTU避免分片。
### 3. IPv4 与 IPv6 对比
| 特性 | IPv4 | IPv6 |
| :--------: | :---------------------------------: | :---------------------------------: |
| 地址长度 | 32位4字节 | 128位16字节 |
| 地址表示 | 点分十进制(如`192.168.1.1` | 冒号分隔十六进制(如`2001:db8::1` |
| 首部复杂度 | 包含可选字段可变长度20-60字节 | 固定40字节无选项字段 |
| 安全性 | 依赖外部协议如IPsec | 内置IPsec支持 |
| 地址配置 | DHCP或手动配置 | 支持SLAAC无状态自动配置 |
### 4. 网络层安全与挑战
**常见攻击**
- **IP欺骗Spoofing**伪造源IP发起DDoS攻击或绕过认证。
- **分片攻击**:发送恶意分片耗尽目标资源。
- **路由劫持**通过伪造BGP路由条目劫持流量。
**防护措施**
- **IPsec**为IP层提供加密、完整性验证与抗重放保护IPv6原生支持
- **过滤与ACL**路由器配置访问控制列表ACL拦截非法IP或分片。
- **RPKI资源公钥基础设施**验证BGP路由宣告的合法性防止路由劫持。