网络基础与 IP 子网规划实战

网络是运维一切排障的地基。报障电话里”上不了网””跨网段不通”的根因,80% 落在 IP 规划、掩码、网关这三件事上。这篇把网络基础与 IP 子网规划完整过一遍。

一、网络单位换算(先把这个算明白)

网络里最常见的”看起来很快”陷阱:

1
2
3
4
100Mbps 网卡 = 每秒传输 100M 个 bit
1 byte = 8 bit
100Mbps = 100000/8 KByte/s = 12500 KB/s ≈ 12.5 MB/s
千兆网卡 = 100 MB/s

所以百兆网卡实际跑 12.5MB/s 是”满速”,不是网卡坏了。存储单位按 1024 进制(K/M/G/T),网络单位按 1000 进制,这个差异也是排障时对不上数的主要原因。

二、网络设备三个角色

  • 交换机(二层):让同一网络内的多台主机互通。靠 MAC 地址寻址(网卡物理地址,全球唯一,16 进制)。早期靠广播发数据,广播太多会形成”广播风暴”——拆成多个小局域网(广播域)解决;
  • 路由器(三层):实现不同局域网互通,隔离广播风暴。路由 = 数据跨网段到达目的地的传递过程;
  • 网关:去往其他网段的必经之路(路由器的 IP)。看路由表
1
2
route -n
# 0.0.0.0 10.0.8.254 0.0.0.0 UG eth0 ← 默认路由,10.0.8.254 是网关

口诀记忆:交换机 = 认识的人(局域网内),路由器 = 朋友介绍的朋友(跨网段)

三、分层模型:OSI 七层 vs TCP/IP 四层

OSI 七层(从下到上):物理层 → 数据链路层 → 网络层 → 传输层 → 会话层 → 表示层 → 应用层。实际用的是 TCP/IP 四层(网络接口/网络/传输/应用)。

数据封装与解封装

1
2
发送(封装,从上到下逐层加头):应用 → TCP头+数据 → IP头+TCP头+数据 → 帧头+... → 比特流
接收(解封装,从下到上逐层去头):逆过程

排障时”数据走到哪一层断了”是核心思路:物理层不通看网线/网卡,网络层不通看 IP/路由,传输层不通看端口,应用层不通看服务。

四、IP 地址与子网划分

分类与私有地址

IP = 网络号 + 主机号。公网地址全球唯一(Inter NIC 分配),私网地址组织内部使用可重复(RFC 1918):

1
2
A类 10.0.0.0/8        B类 172.16.0.0/12      C类 192.168.0.0/16
默认掩码:/8=255.0.0.0 /16=255.255.0.0 /24=255.255.255.0

子网掩码与可用主机数

掩码的作用:区分网络号与主机号(网络位为 1,主机位为 0)。

1
2
3
4
一个网段可用地址 = 2^n - 2(n=主机位数,去掉网络地址和广播地址)
/24:2^8-2 = 254 台可用
/29:2^3-2 = 6 台可用
/30:2^2-2 = 2 台(点对点链路常用)

子网划分(向主机位借位)

生产场景:运营商给了 116.63.0.10/29——实际可用 6 个 IP(网络地址 .9 之后的 6 个,网关一般用第一个可用)。

1
2
172.20.1.0/18 → 掩码 255.255.192.0
(11111111 11111111 11000000 00000000,网络位 18 位)

划分的意义:防止地址浪费、隔离广播域、降低网关负载。计算工具用 subnet 计算器,但面试和排障要能手算掩码和可用数。

VLSM / CIDR

  • VLSM:可变长子网掩码——大段里再细分小段(如 /24 拆 4 个 /26);
  • CIDR:无类域间路由——/n 记法的来源,IP 段合并表达(如 10.0.8.0/24 表示整个网段)。

五、Linux 网卡配置(CentOS 7)

1
2
3
4
5
6
7
8
9
10
11
12
# 文件:/etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none # 服务器固定 IP
IPADDR=10.0.8.11
PREFIX=24
GATEWAY=10.0.8.1
DNS1=223.5.5.5
ONBOOT=yes

# 生效:systemctl restart network(或 nmcli con reload)
# 临时加 IP(重启失效):
ip addr add 10.0.8.12/24 dev eth0

六、常用排障命令速查

1
2
3
4
5
6
7
8
9
10
ping -c3 10.0.8.1            # 连通性(不通 ≠ 不可达——可能禁 ICMP)
traceroute www.example.com # 路由跟踪,看卡在哪一跳(跨机房慢排查)
telnet 10.0.8.11 3306 # 端口通不通(服务级别,比 ping 高一层)
nc -vz 10.0.8.11 22 # netcat 快速端口检测
ss -tulnp # 监听端口与状态(比 netstat 快)
ss -lnt | grep SYN # 半连接队列(SYN 洪水排查)
tcpdump -i eth0 tcp port 22 # 抓包(看握手、看请求有没有到本机)
nmap -sT -p 80,443 10.0.8.11 # 端口扫描(只扫自己管理的资产!)
route -n # 路由表
curl -v http://10.0.8.11/ # 应用层连通 + 全流程

上不了网排查流程(从下往上逐层排除)

1
2
3
4
1. 网卡/物理层:ip a 看 IP 有没有、网线灯亮不亮
2. 网络层:ping 网关 → 通了说明本段通;ping 公网 IP(如 223.5.5.5)→ 不通查路由
3. 传输层:telnet 目标端口
4. 应用层:DNS 能不能解析(nslookup)、服务起没起

哪一层断了就处理哪一层——这是网络排障唯一正确的打开方式。下一篇把 TCP 协议本身讲透。