1. IPv4地址规划从分类编址到无分类革命我第一次接触IPv4地址分配是在2013年给某企业部署内部网络时。当时看着那一串数字完全摸不着头脑直到老工程师用电话号码作类比就像区号代表城市前几位数字代表不同网络。这个生活化的解释让我瞬间理解了网络分层的思想。1.1 传统分类编址的兴衰早期的IPv4采用ABC三类地址划分就像房地产开发商把房子分成别墅、洋房和小户型A类1.0.0.0-126.255.255.255政府机构专用每个网络可容纳1677万台主机B类128.0.0.0-191.255.255.255中型企业适用每个网络6.5万台主机C类192.0.0.0-223.255.255.255小微企业使用仅支持254台主机这种设计在1990年代就暴露出严重问题。我见过最典型的案例是某高校申请到B类地址实际只用了3000多个IP剩下6万多个地址闲置但无法分配给其他机构。这促使了子网划分技术的诞生。1.2 子网划分实战技巧通过借用主机位创建子网就像把大办公室隔成小隔间。假设拿到192.168.1.0/24这个C类地址需要划分6个子网# 计算需要的子网位数2^n ≥6 → n3 子网掩码 255.255.255.11100000 → 255.255.255.224 可用子网192.168.1.0/27、192.168.1.32/27...192.168.1.224/27 每个子网30个可用地址去掉网络地址和广播地址实际配置路由器时记得子网掩码必须全网一致。有次我忘记配置相邻路由器的子网掩码导致两个子网间出现诡异的间歇性连通问题排查了整整两天。1.3 CIDR与路由聚合无分类域间路由CIDR彻底改变了游戏规则。2015年我给某云服务商做网络优化时通过路由聚合将192.168.0.0/24192.168.1.0/24...192.168.7.0/24聚合成192.168.0.0/21一条路由项使核心路由器路由表从8000多条降到1200条。配置示例# Cisco路由器配置 router(config)# interface gigabitethernet0/0 router(config-if)# ip address 192.168.0.1 255.255.248.02. 路由协议网络世界的导航系统2.1 RIP协议距离向量算法的经典实现早期在某校园网改造项目中我们使用RIP协议时的配置很简单router(config)# router rip router(config-router)# version 2 router(config-router)# network 192.168.1.0但很快就遇到了计数到无穷问题——当某条链路断开时整个网络需要5-10分钟才能重新收敛。这促使我们升级到OSPF协议。2.2 OSPF协议实战要点在金融行业网络改造时我们采用多区域OSPF设计router(config)# router ospf 100 router(config-router)# area 0 range 10.0.0.0 255.255.0.0 router(config-router)# network 10.1.1.0 0.0.0.255 area 1关键经验骨干区域Area 0必须连续每个区域路由器不超过50台接口cost值根据带宽调整100Mbps链路cost110Mbps cost102.3 BGP协议的企业级应用为某跨国企业部署BGP时核心配置包括router(config)# router bgp 65001 router(config-router)# neighbor 203.0.113.1 remote-as 65002 router(config-router)# network 192.168.0.0 mask 255.255.255.0特别注意BGP路由选择基于策略而非单纯路径优劣我们通过设置LOCAL_PREF属性控制流量走向。3. ICMP网络诊断的瑞士军刀3.1 Ping命令深度解析当网络出现故障时我通常按以下顺序排查# 检查本地TCP/IP协议栈 ping 127.0.0.1 # 测试网关连通性 ping 192.168.1.1 # 测试外网连通性 ping 8.8.8.8高级用法包括-t参数持续ping测Windows-i设置TTL值检测路由跳数-s调整包大小检测MTU问题3.2 Traceroute原理揭秘这个命令曾帮我发现过某ISP的路由环路问题traceroute www.example.com输出显示第8跳和第9跳IP相同TTL递增确认存在路由环路。其工作原理是发送TTL1的UDP包记录第一跳地址逐步增加TTL值直到到达目标通过ICMP超时报文获取路径信息4. 企业网络地址转换实战4.1 地址转换基础配置在边缘路由器上典型配置# 定义内部地址池 ip nat pool MYPOOL 203.0.113.1 203.0.113.10 netmask 255.255.255.0 # 配置ACL定义允许转换的流量 access-list 1 permit 192.168.1.0 0.0.0.255 # 应用NAT规则 ip nat inside source list 1 pool MYPOOL overloadoverload参数启用端口复用(PAT)这是目前最常用的方式允许数百个内网IP共享单个公网IP。4.2 端口映射实现服务器发布将内网Web服务器发布到公网ip nat inside source static tcp 192.168.1.100 80 203.0.113.15 80遇到过的一个坑某次配置后外网仍无法访问后来发现是防火墙忘了放行对应端口。建议配置顺序先配ACL再配NAT最后配置防火墙策略。4.3 企业级部署方案为某中型企业设计的双ISP接入方案配置两个NAT地址池分别对应两个ISP使用路由策略控制不同业务走不同出口设置NAT会话超时时间ip nat translation tcp-timeout 86400 ip nat translation udp-timeout 3005. 网络层排错经验分享5.1 经典故障案例案例1某次网络改造后部分用户无法访问特定网站。通过抓包发现出方向TCP SYN包正常入方向SYN-ACK包被防火墙拦截 原因NAT会话表项超时时间默认30秒小于TCP保持时间通常60秒解决方案ip nat translation tcp-timeout 36005.2 实用诊断命令集# 查看NAT转换表 show ip nat translations # 查看路由表 show ip route # 查看接口状态 show interface gigabitethernet0/0 # 实时监控NAT流量 debug ip nat6. 从理论到实践的思考网络层的设计处处体现着折中智慧。就像IPv4的TTL字段既要防止数据包无限循环又不能设置过小影响正常通信。在实际项目中我逐渐理解到简单比复杂更可靠能用静态路由就不用动态协议可见性至关重要完善的监控能快速定位问题文档就是生命线每次变更必须更新网络拓扑图记得有次凌晨处理网络故障因为找不到最新拓扑图多花了3小时排查。从此养成了每次调整都更新文档的习惯。网络技术不断演进但这些基本原则始终未变。