网络基础与协议

6 min入门

OSI七层模型、TCP/IP协议栈、IPv4/IPv6地址规划、子网划分、路由协议、VLAN、生成树、链路聚合、VRRP、广域网、隧道、ACL、SSH、SNMP、NAPT、认证与VPN技术。

学习目标

本文是「Networking」模块的第 1 篇,难度定位为入门。重点内容:OSI七层模型、TCP/IP协议栈、IPv4/IPv6地址规划、子网划分、路由协议、VLAN、生成树、链路聚合、VRRP、广域网、隧道、ACL、SSH、SNMP、NAPT、认证与V……

主要章节:

    1. OSI 七层模型
    1. TCP/IP 协议栈
    1. IPv4/IPv6 地址规划
    1. 子网划分
    1. 路由协议
    1. VLAN 划分
  • ……共 27 个章节

1. OSI 七层模型

1.1 模型概述

OSI(Open Systems Interconnection)参考模型由 ISO 提出,将网络通信划分为七个层次,每层负责特定功能。

层次名称功能数据单元典型协议/设备
第 7 层应用层为应用程序提供服务报文HTTP、FTP、SMTP、DNS
第 6 层表示层数据格式转换、加密报文SSL/TLS、JPEG
第 5 层会话层建立/管理/终止会话报文NetBIOS、RPC
第 4 层传输层端到端可靠传输段(Segment)TCP、UDP
第 3 层网络层路由选择与寻址包(Packet)IP、ICMP、路由器
第 2 层数据链路层帧的封装与传输帧(Frame)Ethernet、交换机
第 1 层物理层比特流的传输比特(Bit)光纤、双绞线、集线器

1.2 数据封装过程

flowchart TD
    T0["应用数据"]
    T1["[应用层] 添加应用层头 → 报文"]
    T2["[传输层] 添加 TCP/UDP 头 → 段"]
    T3["[网络层] 添加 IP 头 → 包"]
    T4["[数据链路层] 添加帧头/帧尾 → 帧"]
    T5["[物理层] 转为比特流 → 比特"]
    T0 --> T1
    T1 --> T2
    T2 --> T3
    T3 --> T4
    T4 --> T5

2. TCP/IP 协议栈

2.1 TCP 三次握手

sequenceDiagram
    participant C as 客户端
    participant S as 服务器
    C->>S: SYN (seq=x) ① 客户端发起连接
    S-->>C: SYN+ACK (seq=y, ack=x+1) ② 服务器确认并发起连接
    C->>S: ACK (ack=y+1) ③ 客户端确认
    Note over C,S: 连接建立

2.2 TCP 四次挥手

sequenceDiagram
    participant C as 客户端
    participant S as 服务器
    C->>S: FIN ① 客户端请求关闭
    S-->>C: ACK ② 服务器确认
    S-->>C: FIN ③ 服务器请求关闭
    C->>S: ACK ④ 客户端确认
    Note over C,S: 连接关闭

2.3 常用协议端口

协议端口传输层用途
HTTP80TCP网页浏览
HTTPS443TCP安全网页
SSH22TCP远程管理
DNS53UDP/TCP域名解析
DHCP67/68UDP地址分配
SMTP25TCP邮件发送
FTP20/21TCP文件传输
SNMP161UDP网络管理

3. IPv4/IPv6 地址规划

3.1 IPv4 地址分类

类别范围默认子网掩码网络规模
A 类1.0.0.0 ~ 126.255.255.255255.0.0.0大型网络
B 类128.0.0.0 ~ 191.255.255.255255.255.0.0中型网络
C 类192.0.0.0 ~ 223.255.255.255255.255.255.0小型网络

私有地址范围:

  • A 类:10.0.0.0 ~ 10.255.255.255
  • B 类:172.16.0.0 ~ 172.31.255.255
  • C 类:192.168.0.0 ~ 192.168.255.255

3.2 IPv6 地址

IPv6 地址长度 128 位,使用冒号十六进制表示:

2001:0db8:85a3:0000:0000:8a2e:0370:7334
缩写 → 2001:db8:85a3::8a2e:370:7334
类型前缀说明
单播全球路由可路由的公网地址
链路本地fe80::/10同一链路通信
唯一本地fc00::/7等同 IPv4 私有地址
组播ff00::/8一对多通信

4. 子网划分

4.1 子网掩码计算

IP 地址:    192.168.1.0/24
子网掩码:   255.255.255.0
主机位数:   32 - 24 = 8
可用主机数: 2^8 - 2 = 254

划分为 4 个子网(借 2 位):
子网1: 192.168.1.0/26    范围: .1 ~ .62      广播: .63
子网2: 192.168.1.64/26   范围: .65 ~ .126    广播: .127
子网3: 192.168.1.128/26  范围: .129 ~ .190   广播: .191
子网4: 192.168.1.192/26  范围: .193 ~ .254   广播: .255

4.2 VLSM 可变长子网掩码

VLSM 允许在同一网络中使用不同长度的子网掩码,提高地址利用率:

需求: 3 个子网,分别需要 50、20、10 台主机

子网1 (50台): 192.168.1.0/26   → 62 台主机
子网2 (20台): 192.168.1.64/27  → 30 台主机
子网3 (10台): 192.168.1.96/28  → 14 台主机
剩余:        192.168.1.112/28 → 可继续分配

5. 路由协议

5.1 静态路由

# 华为设备配置静态路由
[Huawei] ip route-static 10.1.2.0 255.255.255.0 10.1.1.2

# Cisco 设备配置静态路由
Router(config)# ip route 10.1.2.0 255.255.255.0 10.1.1.2

# 默认路由
[Huawei] ip route-static 0.0.0.0 0.0.0.0 192.168.1.1

5.2 动态路由协议对比

协议类型算法管理距离适用场景
RIP距离矢量Bellman-Ford120小型网络
OSPF链路状态Dijkstra110中大型网络
BGP路径矢量最佳路径选择20/200互联网/企业间

5.3 OSPF 配置

# 华为设备 OSPF 配置
[Huawei] ospf 1 router-id 1.1.1.1
[Huawei-ospf-1] area 0
[Huawei-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255

# 查看 OSPF 邻居
[Huawei] display ospf peer

5.4 BGP 基础配置

# 华为设备 BGP 配置
[Huawei] bgp 65001
[Huawei-bgp] router-id 1.1.1.1
[Huawei-bgp] peer 10.1.1.2 as-number 65002
[Huawei-bgp] ipv4-family unicast
[Huawei-bgp-af-ipv4] peer 10.1.1.2 enable
[Huawei-bgp-af-ipv4] network 192.168.1.0 255.255.255.0

6. VLAN 划分

6.1 VLAN 原理

VLAN(Virtual Local Area Network)将物理局域网在逻辑上划分为多个广播域,减少广播流量、提高安全性。

# 华为交换机 VLAN 配置
[Switch] vlan batch 10 20 30          # 批量创建 VLAN
[Switch] interface GigabitEthernet0/0/1
[Switch-GE0/0/1] port link-type access
[Switch-GE0/0/1] port default vlan 10

# Trunk 链路配置
[Switch] interface GigabitEthernet0/0/24
[Switch-GE0/0/24] port link-type trunk
[Switch-GE0/0/24] port trunk allow-pass vlan 10 20 30

6.2 VLAN 间路由

# 华为交换机 VLANIF 接口配置
[Switch] interface Vlanif10
[Switch-Vlanif10] ip address 192.168.10.1 24
[Switch] interface Vlanif20
[Switch-Vlanif20] ip address 192.168.20.1 24

7. 生成树技术

7.1 STP/RSTP/MSTP

协议收敛速度特点
STP30~50 秒IEEE 802.1D,消除环路
RSTP1~3 秒IEEE 802.1w,快速收敛
MSTP1~3 秒IEEE 802.1s,多实例负载均衡
# 华为设备 MSTP 配置
[Switch] stp mode mstp
[Switch] stp region-configuration
[Switch-mst-region] region-name RG1
[Switch-mst-region] instance 1 vlan 10 20
[Switch-mst-region] instance 2 vlan 30 40
[Switch-mst-region] active region-configuration

# 设置根桥
[Switch] stp instance 1 root primary
[Switch] stp instance 2 root secondary

8. 链路聚合

链路聚合(Eth-Trunk)将多条物理链路捆绑为一条逻辑链路,提高带宽和可靠性。

# 华为设备链路聚合配置
[Switch] interface Eth-Trunk 1
[Switch-Eth-Trunk1] mode lacp-static
[Switch-Eth-Trunk1] trunkport GigabitEthernet0/0/1
[Switch-Eth-Trunk1] trunkport GigabitEthernet0/0/2
[Switch-Eth-Trunk1] port link-type trunk
[Switch-Eth-Trunk1] port trunk allow-pass vlan all

# 查看 Eth-Trunk 状态
[Switch] display eth-trunk 1

9. VRRP 协议

VRRP(Virtual Router Redundancy Protocol)实现网关冗余,多台路由器组成虚拟路由器。

# 华为设备 VRRP 配置
[RouterA] interface Vlanif10
[RouterA-Vlanif10] ip address 192.168.10.1 24
[RouterA-Vlanif10] vrrp vrid 1 virtual-ip 192.168.10.254
[RouterA-Vlanif10] vrrp vrid 1 priority 120    # 主设备优先级更高
[RouterA-Vlanif10] vrrp vrid 1 preempt-mode timer delay 20

[RouterB] interface Vlanif10
[RouterB-Vlanif10] ip address 192.168.10.2 24
[RouterB-Vlanif10] vrrp vrid 1 virtual-ip 192.168.10.254
[RouterB-Vlanif10] vrrp vrid 1 priority 100    # 备设备默认优先级

10. 广域网与隧道技术

10.1 广域网技术

技术速率特点
PPP可变点对点协议,支持认证
HDLC可变高级数据链路控制
Frame Relay可变帧中继,已逐渐淘汰
MPLS高速多协议标签交换

10.2 GRE 隧道

# 华为设备 GRE 隧道配置
[RouterA] interface Tunnel0/0/1
[RouterA-Tunnel0/0/1] tunnel-protocol gre
[RouterA-Tunnel0/0/1] source 202.1.1.1
[RouterA-Tunnel0/0/1] destination 202.1.2.1
[RouterA-Tunnel0/0/1] ip address 10.1.1.1 30

11. ACL 访问控制列表

# 基本 ACL(基于源地址)
[Router] acl 2000
[Router-acl-basic-2000] rule 5 permit source 192.168.1.0 0.0.0.255
[Router-acl-basic-2000] rule 10 deny source any

# 高级 ACL(基于五元组)
[Router] acl 3000
[Router-acl-adv-3000] rule 5 permit tcp source 192.168.1.0 0.0.0.255 \
  destination 10.1.1.0 0.0.0.255 destination-port eq 80
[Router-acl-adv-3000] rule 10 deny ip source any destination any

# 应用 ACL
[Router] interface GigabitEthernet0/0/1
[Router-GE0/0/1] traffic-filter inbound acl 3000

12. SSH 安全配置

# 华为设备 SSH 配置
[Huawei] rsa local-key-pair create       # 生成 RSA 密钥对
[Huawei] aaa
[Huawei-aaa] local-user admin password cipher Admin@123
[Huawei-aaa] local-user admin service-type ssh
[Huawei-aaa] local-user admin privilege level 15
[Huawei] user-interface vty 0 4
[Huawei-ui-vty0-4] authentication-mode aaa
[Huawei-ui-vty0-4] protocol inbound ssh
[Huawei] stelnet server enable

13. SNMP 协议

# 华为设备 SNMP 配置
[Huawei] snmp-agent community read Public@123
[Huawei] snmp-agent community write Private@123
[Huawei] snmp-agent sys-info version v2c
[Huawei] snmp-agent target-host trap address udp-domain 192.168.1.100 \
  params securityname Public@123
[Huawei] snmp-agent trap enable
SNMP 版本认证方式安全性
v1团体名低
v2c团体名低
v3USM 用户认证高

14. NAPT 网络地址端口转换

# 华为设备 NAPT 配置
[Router] acl 2000
[Router-acl-basic-2000] rule 5 permit source 192.168.1.0 0.0.0.255
[Router] nat address-group 1 202.1.1.10 202.1.1.20
[Router] interface GigabitEthernet0/0/1
[Router-GE0/0/1] nat outbound 2000 address-group 1

# Easy IP(直接使用接口地址)
[Router] interface GigabitEthernet0/0/1
[Router-GE0/0/1] nat outbound 2000

15. Web Portal 认证

# 华为设备 Portal 认证配置
[Switch] portal free-rule 0 destination ip 192.168.1.100 mask 255.255.255.255
[Switch] portal web-server Server1
[Switch-portal-web-server-Server1] url http://192.168.1.100/portal
[Switch] interface Vlanif10
[Switch-Vlanif10] web-auth-server Server1 direct

16. VPN 与 IPsec

16.1 IPsec 协议体系

组件协议功能
安全协议AH / ESP数据完整性/加密
密钥管理IKEv1 / IKEv2协商安全参数
加密算法AES / 3DES数据加密
认证算法SHA2 / MD5完整性验证
DH 组Group 2/5/14/24密钥交换

16.2 IPsec VPN 配置

# 华为设备 IPsec VPN 配置
# 1. 定义感兴趣流
[Router] acl 3001
[Router-acl-adv-3001] rule 5 permit ip source 192.168.1.0 0.0.0.255 \
  destination 10.1.1.0 0.0.0.255

# 2. IKE 提议
[Router] ike proposal 1
[Router-ike-proposal-1] encryption-algorithm aes-256
[Router-ike-proposal-1] dh group14
[Router-ike-proposal-1] authentication-algorithm sha2-256

# 3. IKE 对等体
[Router] ike peer Peer1 v2
[Router-ike-peer-Peer1] ike-proposal 1
[Router-ike-peer-Peer1] pre-shared-key cipher Key@123
[Router-ike-peer-Peer1] remote-address 202.1.2.1

# 4. IPsec 提议
[Router] ipsec proposal Prop1
[Router-ipsec-proposal-Prop1] encapsulation-mode tunnel
[Router-ipsec-proposal-Prop1] transform esp
[Router-ipsec-proposal-Prop1] esp authentication-algorithm sha2-256
[Router-ipsec-proposal-Prop1] esp encryption-algorithm aes-256

# 5. IPsec 策略
[Router] ipsec policy Policy1 10 isakmp
[Router-ipsec-policy-isakmp-Policy1-10] ike-peer Peer1
[Router-ipsec-policy-isakmp-Policy1-10] proposal Prop1
[Router-ipsec-policy-isakmp-Policy1-10] security acl 3001

# 6. 应用策略
[Router] interface GigabitEthernet0/0/1
[Router-GE0/0/1] ipsec policy Policy1

ifconfig 接口配置

基本写法:查看所有接口 ifconfig

# 查看所有网络接口
ifconfig

基本写法:查看指定接口 ifconfig <接口>

# 查看 eth0 接口信息
ifconfig eth0

基本写法:配置 IP 地址 ifconfig <接口> <IP> netmask <掩码>

# 配置 eth0 的 IP 地址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0

基本写法:启用接口 ifconfig <接口> up

# 启用 eth0 接口
ifconfig eth0 up

基本写法:禁用接口 ifconfig <接口> down

# 禁用 eth0 接口
ifconfig eth0 down

基本写法:设置 MTU ifconfig <接口> mtu <大小>

# 设置 MTU 为 1500
ifconfig eth0 mtu 1500

route 路由配置

基本写法:查看路由表 route -n

# 数字格式查看路由表
route -n

基本写法:添加默认网关 route add default gw <网关>

# 添加默认网关
route add default gw 192.168.1.1

基本写法:添加静态路由 route add -net <网络> netmask <掩码> gw <网关>

# 添加到 10.0.0.0/24 的路由
route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.254

基本写法:删除路由 route del -net <网络> netmask <掩码>

# 删除指定路由
route del -net 10.0.0.0 netmask 255.255.255.0

基本写法:通过接口添加路由 route add -net <网络> dev <接口>

# 通过 eth1 接口添加路由
route add -net 172.16.0.0/16 dev eth1

静态 IP 配置

基本写法:配置静态 IP(Netplan)

`network:
  version: 2
  ethernets:
    <接口>:
      addresses: [<IP>/<前缀>]
      gateway4: <网关>
      nameservers:
        addresses: [<DNS>]`
# Ubuntu Netplan 静态 IP 配置
network:
  version: 2
  ethernets:
    eth0:
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

基本写法:应用 Netplan 配置 netplan apply

# 应用 Netplan 配置
netplan apply

基本写法:配置静态 IP(ifupdown)

`auto <接口>
iface <接口> inet static
    address <IP>
    netmask <掩码>
    gateway <网关>`
# /etc/network/interfaces 配置
auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1

基本写法:重启网络服务 systemctl restart networking

# 重启网络服务
systemctl restart networking

DHCP 配置

基本写法:DHCP 获取 IP dhclient <接口>

# 通过 DHCP 获取 IP 地址
dhclient eth0

基本写法:释放 DHCP 租约 dhclient -r <接口>

# 释放 DHCP 租约
dhclient -r eth0

基本写法:配置 DHCP(Netplan)

`network:
  version: 2
  ethernets:
    <接口>:
      dhcp4: true`
# Netplan DHCP 配置
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true
      dhcp6: true

DNS 配置

基本写法:查看当前 DNS cat /etc/resolv.conf

# 查看当前 DNS 配置
cat /etc/resolv.conf

基本写法:设置 DNS 服务器 # 编辑 /etc/resolv.conf

# 设置 DNS 服务器
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf

基本写法:设置 DNS 搜索域 # 编辑 /etc/resolv.conf

# 设置搜索域
echo "search example.com" >> /etc/resolv.conf

基本写法:使用 systemd-resolved 配置 # 编辑 /etc/systemd/resolved.conf

# 配置 systemd-resolved
echo "DNS=8.8.8.8 8.8.4.4" >> /etc/systemd/resolved.conf
systemctl restart systemd-resolved

ethtool 网卡工具

基本写法:查看网卡信息 ethtool <接口>

# 查看 eth0 网卡信息
ethtool eth0

基本写法:查看网卡驱动 ethtool -i <接口>

# 查看网卡驱动信息
ethtool -i eth0

基本写法:查看网卡统计 ethtool -S <接口>

# 查看网卡统计信息
ethtool -S eth0

基本写法:设置网卡速率 ethtool -s <接口> speed <速率> duplex <模式>

# 设置网卡为 1000M 全双工
ethtool -s eth0 speed 1000 duplex full autoneg off

基本写法:查看网卡支持的特性 ethtool -k <接口>

# 查看网卡支持的卸载特性
ethtool -k eth0

网络接口聚合

基本写法:创建 bond 接口

`modprobe bonding
ip link add bond0 type bond
ip link set eth0 master bond0
ip link set eth1 master bond0`
# 创建 bond0 聚合接口
modprobe bonding
ip link add bond0 type bond
ip link set eth0 master bond0
ip link set eth1 master bond0
ip link set bond0 up

基本写法:配置 bond 模式 # /etc/modprobe.d/bonding.conf

# 配置 bond 模式为 802.3ad
echo "options bonding mode=4 miimon=100" > /etc/modprobe.d/bonding.conf

网络命名规范

基本写法:查看接口命名规则 ip link show

# 查看所有网络接口
ip link show

基本写法:重命名网络接口

`ip link set <接口> down
ip link set <接口> name <新名称>
ip link set <新名称> up`
# 重命名 eth0 为 wan0
ip link set eth0 down
ip link set eth0 name wan0
ip link set wan0 up

NetworkManager 管理

基本写法:查看 nmcli 状态 nmcli general status

# 查看 NetworkManager 状态
nmcli general status

基本写法:查看所有连接 nmcli connection show

# 列出所有网络连接
nmcli connection show

基本写法:查看设备状态 nmcli device status

# 查看所有网络设备状态
nmcli device status

基本写法:配置静态 IP nmcli connection modify <连接> ipv4.addresses <IP>/<前缀> ipv4.gateway <网关> ipv4.method manual

# 配置静态 IP
nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual

基本写法:配置 DNS nmcli connection modify <连接> ipv4.dns "<DNS1> <DNS2>"

# 配置 DNS 服务器
nmcli connection modify eth0 ipv4.dns "8.8.8.8 8.8.4.4"

基本写法:启用连接 nmcli connection up <连接>

# 启用网络连接
nmcli connection up eth0

网络故障排查

基本写法:查看网络接口状态 ip -s link

# 查看接口统计信息
ip -s link

基本写法:检查网关连通性 ping -c 3 <网关>

# 测试网关连通性
ping -c 3 192.168.1.1

基本写法:检查 DNS 解析 nslookup <域名>

# 测试 DNS 解析
nslookup example.com

基本写法:查看路由路径 traceroute 8.8.8.8

# 追踪到外网的路由
traceroute 8.8.8.8

基本写法:重置网络配置 systemctl restart NetworkManager

# 重启网络管理服务
systemctl restart NetworkManager

IPv6 配置

基本写法:查看 IPv6 地址 ip -6 addr

# 查看所有 IPv6 地址
ip -6 addr

基本写法:添加 IPv6 地址 ip -6 addr add <IPv6>/<前缀> dev <接口>

# 添加 IPv6 地址
ip -6 addr add 2001:db8::100/64 dev eth0

基本写法:查看 IPv6 路由 ip -6 route

# 查看 IPv6 路由表
ip -6 route

基本写法:禁用 IPv6 # /etc/sysctl.conf

# 禁用 IPv6
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p