
1. 网络基本功弄懂这些模型后面学什么都快1.1 两个必背的分层模型别再搞混了打开任何一台网络设备的配置界面你看到的每个命令背后都逃不开分层模型的思想。很多刚入行的朋友问我要不要背OSI七层模型我的回答是不仅要背还得背到条件反射的程度。不过先别慌实际干活中用得最多的是TCP/IP四层模型OSI更多是用来帮助你理解“每一层到底干了什么事”。我用四句话帮大家把这层窗户纸捅破。物理层和数据链路层管的是“这根网线、这个光模块、这个MAC地址怎么把比特流送到隔壁设备”网络层管的是“数据包从你的电脑到服务器路由怎么走”传输层管的是“数据可靠不可靠、端口对不对”应用层管的是“浏览器、邮件、FTP这些具体业务”。排障的时候你按“从底层往上层”一层层查问题基本跑不掉。很多时候我们排查网络慢第一反应是看带宽占用结果用户说网页还是打不开。后来沿着模型往下查发现是链路层有大量CRC错误光模块接收光功率过低。所以模型不只是考试题它就是你和故障之间的地图。1.2 IP地址与子网划分算不对是真的会翻车网络工程师可以不会写脚本但IP地址和子网掩码之间的换算必须门清。为什么因为你在配置接口地址、写静态路由、规划VLAN网段时每一步都在跟二进制打交道。我见过不少同事配地址全靠复制粘贴结果把一个网段的广播地址配到服务器上业务直接中断。子网划分核心就三件事网络位、主机位、广播地址。比如你拿到一个192.168.1.0/24的网段掩码是255.255.255.0网络位占了24位主机位剩8位可用地址范围就是192.168.1.1到192.168.1.254其中192.168.1.255是广播地址。如果想让这个网段拆成两个子网把掩码加长一位变成/25每个子网就只有128个地址可用主机数是126个。这里有个很多新手容易踩的坑子网掩码加长之后两个子网之间默认是不通的。你想让192.168.1.0/25和192.168.1.128/25互相访问必须在三层设备上写路由或者直接启用VLAN间路由别以为同一个大网段就天然通。实际做园区网规划时我习惯把每个VLAN的网关放在三层交换机上掩码一般给/24保证单个VLAN内能容纳250台左右的主机预留扩容空间。1.3 MAC地址与ARP局域网通信的“门牌号”每台设备的网卡出厂时就烧录了一个唯一的MAC地址它工作在数据链路层相当于这栋楼的房号。但网络通信靠的是IP地址你手里只有对方的IP怎么知道对应的MAC地址靠ARP协议。ARP会发一个广播问“谁是192.168.1.1请把你的MAC地址告诉我”目标设备收到后单播回应之后通信双方就把这条映射关系缓存起来。我总喜欢跟新人打个比方IP地址是人的姓名MAC地址是身份证号。你在小区里找人喊名字IP就能得到回应但要真正精准敲门还是得靠身份证号MAC。ARP在正常环境里很稳定但一旦遇到ARP欺骗网络就炸了。攻击者会伪造ARP响应把网关的MAC地址换成自己的所有流量都经过它中转轻则上网卡顿重则敏感信息被截获。解决办法是在交换机上配置DAI动态ARP检测或者干脆做IP-MAC绑定。这个知识点在面试里出现频率极高实操中更是安全排查的重点。2. 交换技术从傻瓜交换机到三层交换你躲不开的这些协议2.1 VLAN与Trunk广播域隔离就靠它俩一台傻瓜交换机把几十台电脑接在一起大家共享一个广播域谁发个广播帧全网络都能收到。设备一多广播风暴一上来整个网络全都卡死。要解决这个问题最常用的手段就是划分VLAN。VLAN把一台物理交换机在逻辑上拆成多台虚拟交换机不同VLAN之间默认二层隔离广播域自然就被切小了。配置VLAN本身不复杂建VLAN、把接口划进去、配网关就这三步。难点在于跨交换机怎么让同一个VLAN跑通。这时就要用Trunk接口Trunk链路可以同时承载多个VLAN的流量依靠802.1Q标签区分不同VLAN的帧。这里提醒一句Trunk两端必须使用相同的封装协议本征VLANNative VLAN也要保持一致否则两边虽然显示UP但业务就是不通。实际项目中我会在核心交换机上启用VLAN间路由给每个VLAN配一个网关接口SVI即交换虚拟接口。终端用户配置好IP和网关后跨VLAN访问就交给核心设备转发。像监控网段、办公网段、服务器网段都独立划分一个广播域出问题不会拖垮全网这种设计思路在300人以上的公司几乎是标配。2.2 STP生成树环路是网络的大敌网络里最怕的不是断线而是环路。两个交换机之间不小心多插了一根网线广播帧就会在环路里无限循环形成广播风暴CPU占有率飙升整个网络瘫痪。STP生成树协议就是为了解决环路问题而生的。STP的原理简单说就是在二层网络中选举根桥然后把多余的冗余链路阻塞掉让整个网络变成一个无环的逻辑树状结构。当主链路断掉后被阻塞的备份链路会自动激活实现冗余切换。现在的网络设备大多默认运行RSTP或MSTP收敛速度比老STP快得多。配置STP时有两个关键参数桥优先级和端口优先级。想让哪台设备成为根桥就把它的桥优先级调小比如设为4096。如果不调设备会按MAC地址自动选举结果很可能选到一台性能很差的入门交换机当根桥导致全网转发路径不合理。另外连接终端PC的接入端口建议开启PortFast即快速端口功能让端口在接入终端时直接进入转发状态不然的话电脑插上线要等30到50秒才能上网光这一条就够你被用户投诉的。2.3 链路聚合让带宽翻倍的同时别忘了冗余当两个交换机之间的流量需求超过单条物理链路的能力时除了换更高速率的接口还有一个更灵活的办法链路聚合。把两条甚至四条千兆物理链路逻辑上绑成一条带宽成倍增加同时某一条物理链路断掉后流量自动切换到其余链路上整个过程对业务无感知。配置链路聚合时无论是静态手工聚合还是LACP协议标准化聚合关键要求是成员端口的速率、双工模式、VLAN配置必须一致。我处理过一个案例两条链路聚合后流量分布不均一条线跑满另一条空闲排查后发现是负载均衡的哈希策略导致的。不同厂商设备默认的哈希因子不一样有的基于MAC地址有的基于IP地址。如果你的网络中有一个服务器集中访问的场景建议把负载均衡模式改成基于IP和端口分布会均匀很多。3. 路由与互联数据包怎么找路还要怎么防偷跑3.1 静态路由与默认路由手动指路最实在路由器的核心作用是为数据包选择路径。在小型网络中手动配置静态路由是最直接、最可控的方式。静态路由的配置只有几条命令目标网段、掩码、下一跳地址。比如要让内网192.168.10.0/24访问10.10.0.0/16就往下一跳192.168.10.254写一条路由就行。默认路由是一条特殊的静态路由目标网段和掩码都是0.0.0.0/0表示所有不在路由表里的流量统统交给这个下一跳。企业出口路由器上最常见的配置就是把内网私网地址的默认路由指到运营商设备实现访问互联网。这里有个细节需要注意下一跳地址必须是直连网段内可达的地址否则路由不会生效。我之前帮人排障他把下一跳写成对端路由器的环回口地址结果路由始终不活跃浪费了半天时间。静态路由适合网络拓扑稳定的小型环境一旦网络规模变大、链路出现冗余静态路由的维护成本就上来了。这时候就需要动态路由协议自动学习、自动收敛这就是OSPF登场的时机。3.2 OSPF协议链路状态协议是怎么选路的OSPF开放式最短路径优先是目前企业内网用得最多的动态路由协议。它通过SPF算法计算最短路径树能够快速响应网络拓扑变化而且支持多区域设计适合中大型网络。OSPF配置中有几个必懂概念Router ID路由器标识、区域Area、邻居关系、开销值Cost。Router ID一般手动指定为设备上最大的环回口地址避免自动选举导致的不稳定。区域0是骨干区域其他区域必须和骨干区域直连否则路由学不到。邻居关系的建立靠Hello报文广播网络类型下的Hello间隔是10秒Dead间隔是40秒。如果邻居关系总是不起来优先检查区域ID是否一致、认证是否匹配、Hello间隔和Dead间隔配置是否相同。OSPF选路依据链路开销开销值等于参考带宽除以接口带宽默认参考带宽是100Mbps所以千兆接口的开销就是100。当网络中存在多条等价路径时OSPF默认支持4条等价负载分担把流量分流到多个链路上。实际工作中我还会用bandwidth-reference命令把参考带宽调到千兆级别避免高速接口计算出不合理的开销值。3.3 ACL访问控制列表策略安全的第一道闸门ACL全称访问控制列表名字听着高大上本质就是一张规则表允许谁、拒绝谁、匹配什么协议、流向哪个方向。企业网络中最常见的安全需求就是“只让财务网段的电脑访问财务服务器其他网段一律禁止”。这种需求用一个标准ACL加一个扩展ACL就能实现。标准ACL范围在2000-2999只能匹配源地址扩展ACL范围在3000-3999可以匹配源地址、目的地址、端口和协议类型。配置时注意ACL必须调用在接口的特定方向上方向分为入方向inbound和出方向outbound。数据包进入接口时匹配入方向ACL离开接口时匹配出方向ACL。最常用的经验法则是ACL尽量靠近源地址部署这样非法流量在源端就被丢弃不浪费骨干链路带宽。规规矩矩写ACL还有个隐藏的坑访问控制列表默认最后有一条隐含的拒绝所有规则。也就是说你只写了允许某几段地址的规则没有单独放行其他流量那其他流量全部会被丢弃。所以ACL配置完一定要做验证测试拿源、目的、协议各跑一遍确认行为符合预期。3.4 NAT地址转换内网访问互联网的核心技术还在坚持只能用公网IP才能上互联网那你肯定还没搞懂NAT。NAT网络地址转换就是把内网的私有IP地址映射成公网IP地址解决IPv4地址不够用的问题。企业出口路由器上最常见的做法是配置PAT端口地址转换让所有内网用户共享同一个公网IP同时靠端口号区分不同会话。NAT的配置核心是识别需要转换的流量一般用ACL匹配内网网段然后在出接口上启用ip nat inside和ip nat outside最后绑定ACL关系。我遇到过不少新手把inside和outside接口搞反导致内网PC能访问互联网但服务器对公网提供服务完全不通。NAT的类型不止PAT一种还有静态NAT和动态NAT。静态NAT常用来把内网服务器映射到固定公网IP方便外部访问。做这种映射时注意公网IP和内网IP的对应关系要清晰不然端口冲突和地址抢占会让你排查到怀疑人生。如果公司是双出口链路还得考虑NAT的负载分担和故障切换这块内容涉及策略路由篇幅有限先记下“多出口NAT要配合策略路由和IP地址探测使用”这个结论就好。4. 应用层协议与网络服务工作中天天打交道的那些4.1 DHCP自动分配IP配置一次管一年每次看到有人手工给几百台电脑设置IP地址我都想劝他赶紧用DHCP。DHCP的全称是动态主机配置协议它让终端设备开机后自动从服务器获取IP地址、子网掩码、网关和DNS。这不仅能避免地址冲突还省去了大量手工配置工作。DHCP的工作流程可以简化为四步发现、提供、选择、确认。客户端广播发送DHCP Discover报文服务器回应DHCP Offer客户端选择后发送DHCP Request服务器最后确认DHCP Ack。在企业网络中一般直接在三层交换机或路由器上开启DHCP服务按VLAN划分地址池。比如给办公VLAN规划一个192.168.10.0/24的地址池排除掉网关地址和服务器静态绑定地址剩下的动态分配给终端。排障方面有一个高频问题终端一直获取不到IP地址。排查思路依次是确认VLAN三层接口地址是否配置、DHCP地址池是否创建、排除地址区间是否把该分配的段全占了、中继配置是否指向了正确的DHCP服务器。还有一个细节如果启用了DHCP Snooping即DHCP侦听要记得把连接合法DHCP服务器的端口配置为信任端口否则合法服务器发出的响应报文会被交换机丢弃全网终端都拿不到地址。4.2 DNS解析为啥访问网站第一关总是它你可以在浏览器里输入一串IP地址访问网站但正常人记不住十几位的数字所以DNS就出现了。DNS把域名转换成IP地址相当于互联网的电话簿。DNS解析出错时最典型的现象就是“能上微信但网页打不开”因为部分应用使用IP直连而浏览器依赖域名解析。排查DNS问题时我习惯先手动指定一个公共DNS比如223.5.5.5或114.114.114.114看问题是否复现。如果换了DNS就能打开基本可以确定是原DNS服务器或解析链路有问题。如果换DNS还是打不开那问题大概率不在DNS而在TCP/IP连通性上。企业内网中DNS服务通常放在域控制器上再配置转发器把外部域名转发给运营商DNS。内网业务建议使用内部域名和内部DNS避免内部流量绕到公网解析浪费时间。如果你发现某些域名解析特别慢可以用nslookup命令查一下解析耗时再用dig看具体走的是哪台DNS服务器定位是递归查询还是缓存命中导致的问题。4.3 HTTP与HTTPSWeb服务背后的协议差异HTTP和HTTPS是上网冲浪时最常接触的应用层协议。HTTP默认端口是80传输内容明文HTTPS默认端口是443在HTTP和TCP之间加了一层TLS/SSL加密。用生活类比HTTP像寄明信片路上每个人都能看到内容HTTPS像寄密封信封只有收件人才能拆开。排查Web访问故障时要分层去看。第一层确认网络通不通用ping测试web服务器IP第二层确认端口通不通用telnet IP 80或nc -vz IP 443探测第三层才看HTTP状态码。状态码的意义必须记牢200是成功301/302是重定向403是权限拒绝404是资源不存在500是服务器内部错误502/504是网关或代理故障。实际工作中我发现很多网络工程师到第二层就停住了实际上很多所谓的“网络问题”是应用层配置错误。比如反向代理配置漏了导致502后端服务器超时导致504。这些虽然属于应用运维的范畴但网工在排障时如果能看懂状态码就能快速把问题分流给正确的团队。4.4 Telnet与SSH管理设备的两种登录方式配交换机、路由器总得上设备敲命令。老设备支持Telnet新环境更推荐SSH。Telnet是明文传输用户名密码在网络上裸奔抓包就能看到。SSH是加密传输即使抓包也拿不到有效信息。所以凡是能支持SSH的设备绝对不用Telnet。配置SSH的关键步骤包括生成本地密钥对、配置VTY线路认证方式为本地用户、启用SSH协议、配置登录超时和重试次数。我用华为设备举个例子rsa local-key-pair create生成密钥ssh user admin authentication-type password创建SSH用户再把VTY线路下transport protocol改成ssh最后aaa里创建本地账号。整套下来大概十行命令非常熟练的话三分钟就能完成。安全习惯上还有两点建议管理VLAN单独划一个不要把设备管理地址和业务地址混在一起SSH登录之后记得保存配置不然设备一重启配置全部丢失。这个“忘记保存配置导致设备重启后失联”的案例我已经听过太多遍了。5. 排障与工具网工真正拉开差距的地方5.1 Ping和Tracert最基础也最好用的连通性工具我见过太多人一遇到网络慢就开抓包工具实际上80%的问题用ping就能定位。Ping基于ICMP协议用来测试主机到目标设备之间的网络连通性。关键看几个指标丢包率、时延、TTL值。不同的操作系统默认TTL不一样Windows通常128Linux通常64 Cisco设备通常255。如果你Ping一个地址返回的TTL是125说明中间经过了3跳设备128-1253。Ping不通时一定要区分“目标不可达”和“请求超时”。“目标不可达”通常说明路由缺失或ACL拦截“请求超时”说明包发出去但没回应可能是链路中断、设备丢弃也可能是目标防火墙禁Ping。这里要注意防火墙禁Ping不等于服务器故障别一看到超时就断定机器挂了。搭配tracertLinux下叫traceroute可以更直观地看到路径上每一跳的延迟迅速判断瓶颈在哪一跳。5.2 抓包分析靠Wireshark给网络做“CT”如果说Ping是体温计那抓包分析就是给网络做CT。Wireshark是每个网络工程师电脑里必备的工具。它能捕获网卡上的所有数据包帮你看到真实流量里到底发生了什么。排查TCP重传、ARP异常、应用层协议交互都离不开它。抓包的关键不是打开工具点开始而是提前想清楚过滤条件。以太网帧层面用eth.addr过滤IP层用ip.addr过滤TCP/UDP层用tcp.port或udp.port过滤。比如排查某台服务器响应慢过滤器写成ip.addr192.168.10.10 and tcp.port443只看这台服务器443端口的流量不至于被海量无关包淹没。再配合tcp.time_delta看每个包的时间间隔就能判断是客户端发得慢还是服务端回得慢。抓包也有禁忌不要在核心链路上长期大流量抓包否则可能影响设备转发性能。一般做法是在故障点两端分别抓包然后做对比。比如用户说访问应用系统很慢客户端抓一份包服务器侧抓一份包两相对照问题出在哪一段链路上一目了然。这种方式定位问题非常高效但需要一点耐心和相关经验积累。5.3 TCP握手与状态网络慢问题的重要线索TCP三次握手和四次挥手是网工必考的基础也是排查网络性能问题的重要抓手。第一次握手客户端发送SYN包第二次握手服务器回应SYNACK包第三次握手客户端回复ACK包。如果你在抓包里发现客户端持续重传SYN包但服务器一直没有回应SYNACK那可能是服务器端口没有监听、防火墙丢弃了包或者中间的负载均衡器出了问题。四次挥手过程稍复杂一些主动关闭方发送FIN包对方确认后再由另一方发送FIN包并得到ACK。实际故障中经常出现大量TIME_WAIT状态的连接堆积这通常是短连接并发过高导致的。如果服务器上netstat -an查询看到几万个TIME_WAIT就要考虑调整内核参数。还有个常见故障叫TCP重传。抓包里如果看到大量连续的TCP Retransmission基本可以断定链路存在丢包或拥塞。先用ping测丢包率如果丢包不严重再看是不是双工不匹配或缓冲区溢出。我处理过一起无线网络案例表面现象是下载速度不稳定抓包发现大量TCP Dup ACK最后排查到是AP的射频口和终端协商速率过低换了信道后就恢复正常了。5.4 故障排查的基本流程先把问题范围圈起来掌握工具很重要但比工具更重要的是排查思路。我总结了一套自己用了多年的流程确认现象、缩小范围、逐层排查、验证恢复。确认现象时多问一句“是什么时候开始的”“是全部终端还是部分终端”“访问什么业务有问题”。这三个问题能把问题范围圈掉一大半。比如“只有财务室的三台电脑无法访问ERP”范围就锁定在这三台电脑和财务接入交换机这条路径上而不是满网络瞎找。然后从接入交换机端口状态、所属VLAN、网关可达性逐层检查定位到具体环节后再做针对性修复。这种思路听起来简单但真正遇到故障保持冷静的人不多。我见过有同事一上来就重启核心交换机结果业务全断后来发现只是某台接入交换机光模块脏了。所以排障一定要按照“物理层、链路层、网络层、传输层、应用层”的顺序来。物理层的坑最多也最容易忽略网线松动、光模块脏污、电源故障。很多“疑难杂症”最后查出来只是跳线水晶头接触不良这类场景我亲身经历过不少次。5.5 常用命令速查记不住就直接抄走排查网络时有些命令使用频率极高我把常用的整理成一张速查表。ping -t是Windows下持续Pingping -c 100是Linux下指定次数ipconfig /all查看本机完整IP配置netstat -an查看本机所有连接状态arp -a查看ARP缓存表tracert和traceroute看路由路径nslookup查域名解析记录show ip interface brief查看设备接口状态display this在华为设备上查看当前接口下的配置display ip routing-table查看设备路由表。需要强调一点命令是工具关键是理解输出。看到netstat -an里有大量SYN_SENT你能联想到本机发出的连接没有被响应看到路由表里多了一条奇怪的静态路由你能想到可能是有人手动配置过。每个输出背后都对应一种网络状态读懂了才能快速定位问题。这套思路在你面对任何厂商的设备时都通用因为底层的TCP/IP协议栈是一样的。做网工这行这些年我自己最大的体会就是知识点之间真的会互相串联。你VLAN划分不对后面OSPF邻居可能就会起不来你ACL写错一条NAT转换可能就全乱了。所以别觉得基础知识点琐碎恰恰是这些基本功决定了你在复杂故障面前是手忙脚乱还是胸有成竹。最后再分享一个小技巧建议每个知识点都亲手在模拟器或者真机上敲一遍配置哪怕只是搭两台路由器的环境做完立刻把配置文件导出来对照思考一遍。很多知识点看教程觉得懂了实际配置时会发现各种意想不到的问题——比如接口没启用、掩码写错、VLAN没划进去。踩过这些坑之后你才是真正掌握了而不是“看过就是会了”。把这30个点吃透再去接触MPLS、BGP、SDN这些进阶内容会发现底子越扎实学新东西越快。