diff --git a/网络管理.md b/网络管理.md new file mode 100644 index 0000000..40306d0 --- /dev/null +++ b/网络管理.md @@ -0,0 +1,537 @@ +

网络管理

+ +------ + +## 一:网络管理 + +### 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. **ICMP(Internet控制报文协议)**:用于网络诊断(如`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-Fi(IEEE 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. 客户端→服务端:发送SYN(seq=x)。 + 2. 服务端→客户端:回复SYN-ACK(seq=y, ack=x+1)。 + 3. 客户端→服务端:发送ACK(ack=y+1)。 + + - **目的**:同步初始序列号,协商窗口大小等参数。 + +- 四次挥手释放连接: + + 1. 主动方→被动方:发送FIN(seq=u)。 + 2. 被动方→主动方:回复ACK(ack=u+1)。 + 3. 被动方→主动方:发送FIN(seq=v)。 + 4. 主动方→被动方:回复ACK(ack=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字节) | 同步接收方时钟。 | + | SFD(1字节) | 帧起始定界符(`10101011`)。 | + | 目的MAC(6字节) | 目标设备的MAC地址。 | + | 源MAC(6字节) | 发送方MAC地址。 | + | 类型(2字节) | 上层协议类型(如IPv4为`0x0800`,ARP为`0x0806`)。 | + | 数据(46-1500字节) | 携带IP数据报(最小46字节,不足需填充)。 | + | CRC(4字节) | 校验码,检测传输错误。 | + + + +- **特点**: + + - 支持多种速率(10Mbps、1Gbps、10Gbps等)和介质(双绞线、光纤)。 + - 使用**交换机**实现全双工通信,避免冲突(传统集线器已被淘汰)。 + +#### Wi-Fi(IEEE 802.11) + +- **帧结构**: + - 包含MAC头(控制帧类型、地址)、数据载荷和CRC。 + - 支持三种地址类型:源地址、目的地址、AP(接入点)地址。 +- **关键技术**: + - **CSMA/CA**:发送数据前先监听信道,空闲时发送,否则随机等待。 + - **RTS/CTS**(可选):减少隐藏终端问题(如设备A和C无法直接通信,但均连接至B)。 + - **ACK机制**:接收方需确认帧的接收,否则发送方重传。 + +#### PPP(点对点协议) + +- **用途**:用于拨号上网、路由器间直连等点对点链路。 +- **特点**: + - 支持身份验证(如PAP、CHAP协议)。 + - 封装多种网络层协议(IP、IPX等)。 + - 帧结构简单,无MAC地址(因仅两点通信)。 + +### 3. 关键机制 + +#### **ARP协议流程** + +- **场景**:主机A(IP: 192.168.1.1)需向主机B(IP: 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)。 + +#### **辅助协议** + +- **ICMP(Internet控制报文协议)**: + 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路由宣告的合法性,防止路由劫持。 \ No newline at end of file