网络管理

------ ## 一:网络管理 ### 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路由宣告的合法性,防止路由劫持。