几个月前有个小伙子问我,说想转行做网络工程师,买了一堆砖头书,啃了一个月发现啥也没记住,问我有没有什么诀窍。我说你先别急着啃书,你先搞清楚一件事——网络工程师的资料和课程满天飞,缺的不是内容,是你的学习方法和笔记体系。
我做网络工程这块有年头了,从接入层交换机玩到核心路由,从几十人的小办公室做到几千人的园区网。这中间踩过坑、背过锅、也帮人擦过无数次屁股。回头看看,真正让我从“能配通”变成“排障快”的,不是哪本书,而是我自己沉淀的那套学习笔记。这篇东西,就是把我这些年的笔记方法、核心知识点、实操套路、避坑心得整理出来,给正在往这条路走的朋友做个参考。不管你是刚入行的新人,还是准备考认证的在校生,或者是被网络故障逼到头秃的运维,这里面应该都有你能直接拿走用的东西。
1. 学习笔记到底在记什么
很多人的笔记是记流水账,设备型号、命令语法抄了一堆,到了排障的时候翻半天找不到关键信息。我自己的笔记体系,从第一天开始就不是为了“记录”,而是为了“检索”和“复现”。
1.1 笔记不是抄书,是建立自己的排查索引
刚入行那会儿,我也干过傻事。把配置手册里的命令一条条抄下来,抄了三大本,觉得特有成就感。结果真上了机房,设备告警灯一闪,我翻本子翻了十分钟,还是不知道该先看哪条命令。
后来我师父跟我说了一句话,点醒了我:笔记是给你自己用的工具,不是一个展览品。你记下来的东西,必须能让你在三分钟内定位到问题,不然就是废纸。
我现在的笔记分四层:
第一层是拓扑图。每做一个项目,不管多小,先把网络拓扑画出来。这个拓扑图就是你的地图,没有地图就上路,迟早迷路。
第二层是地址规划表。哪个网段给办公,哪个网段给服务器,网关在哪台设备上,VLAN和网段的对应关系是什么。这一层是网络的地基,地基歪了,上面盖什么都白搭。
第三层是配置要点。不是抄命令,而是记“为什么这么配”。比如我记的不是“在接口下配了port trunk allow-pass vlan all”,而是“这个接口做了trunk,因为下联交换机上有办公和监控两个VLAN的终端,必须放行这些VLAN的流量,否则终端会获取不到地址”。
第四层是故障案例库。每一次排障,不管大小,最后都要整理成一个案例,包括现象、排查过程、根因、解决办法。这一层才是你经验值增长的地方。
这样记笔记,你可能觉得前期慢,但积累三个月之后再回头翻,你会发现自己已经能通过之前记录的蛛丝马迹,快速定位新问题的方向了。
1.2 一套适合大多数人的知识骨架
很多人面对一堆知识点不知道从哪下手。我给初学者的建议是,先搭骨架,再填肉。
网络工程师的核心知识骨架,说白了就三块:数据链路层怎么转发、网络层怎么路由、以及贯穿始终的IP地址规划。学的时候别东一榔头西一棒子,就按这个主线走。
我自己的笔记目录长期保持着这几个大块:
- 基础理论:TCP/IP协议栈,MAC地址、IP地址、端口号这些东西到底是干嘛的
- 交换技术:VLAN、Trunk、STP(生成树协议)、链路聚合,这些是园区网的基础
- 路由技术:静态路由、默认路由、OSPF(开放式最短路径优先协议),搞明白路由表是怎么来的
- 地址规划:子网掩码、VLSM(可变长子网掩码)、DHCP(动态主机配置协议),这是实战里最见功底的部分
- 安全基础:ACL(访问控制列表)、NAT(网络地址转换)、端口安全,这部分现在越来越重要
- 排障方法论:分层排查思路、抓包分析、日志查看
骨架搭好之后,每个知识点往里填。填的时候记住一个原则:能结合实验验证的,不要只看理论。你看一百遍OSPF的报文格式,不如抓一次包看看两个邻居之间到底发了什么。
2. 核心知识点拆解:为什么这几个必须吃透
初学者最容易犯的毛病是贪多嚼不烂。今天看看BGP(边界网关协议),明天摸摸MPLS(多协议标签交换),折腾一个月发现自己连最基础的VLAN都没搞明白。我说句不好听的,如果你连二层交换都说不清楚,你学BGP纯属浪费生命。
下面这几个点,是我认为不管做哪行网络都必须吃透的。面试问的是这些,工作上用的也是这些。
2.1 地址规划是网络的地基
有次做某办公网改造项目,前期规划的人偷懒,直接给所有部门按顺序分了几个连续的C段。表面上看没什么问题,结果一到后期做流控和防火墙策略,发现根本没法写精准匹配规则,因为部门之间IP太连续了,没法用一条规则圈定某个部门的终端。最后只能重新广播一个子网掩码,把原来的一段地址重新切分,折腾了整整一个周末。
这就是典型的地址规划没做好。
理解地址规划,先得理解子网掩码的本质。子网掩码就是告诉你,IP地址里哪几位是网络位,哪几位是主机位。比如192.168.10.0/24,这个“/24”表示前24位是网络位,后8位是主机位,也就是一个标准C段,能容纳254台主机。
但在真实场景里,254台主机的段太大了。你可能只是给财务室十几台电脑划一个网段,用/24纯属浪费。这时候就需要VLSM,可变长子网掩码,把地址切成更小的块。
比如你有一个192.168.10.0/24的段,想切成4个能容纳50台主机的小段。50台主机需要6个主机位(2的6次方等于64,减去网络地址和广播地址,剩62个可用),那么掩码就是32减6等于26,也就是/26。借了2位作为子网位,可以分出4个/26子网:192.168.10.0/26、192.168.10.64/26、192.168.10.128/26、192.168.10.192/26。每个子网的可用地址范围分别是1-62、65-126、129-190、193-254。
这块计算对新人来说有点绕,我刚学的时候也掰扯不清。我给你个土办法:你先记住一个表,/24是254个可用地址,/25是126个,/26是62个,/27是30个,/28是14个,/29是6个,/30是2个。这个表只要记住了,日常规划基本够用。等你熟练了,自然能理解其中的二进制原理。
做规划的时候,我习惯把地址段按用途区分开,核心原则是“预留要充足,分块要清晰”。服务器段用独立网段,终端段按楼层或部门切小段,设备互联段用/30的段,一个点到点的链路只需要2个可用地址。这样后期做策略、做路由汇总、做排障,都会清爽很多。
2.2 交换与环路:STP和VLAN是绑定在一起的
交换这块,我印象最深的是第一次遇到网络环路。那会儿在帮某单位的机房做维护,早上还好好的网络,下午突然整个办公区都上不了网,交换机CPU疯狂飙升,指示灯一片狂闪。我以为是设备坏了,重启了接入交换机,好了一分钟又断了。后来排查了半天,发现是某个工位下面多了一根网线,把两个口串联了起来,形成了环路。
这就是二层环路。如果不做防护,广播帧会在环路里无限循环,把网络打瘫。
解决办法就是STP(生成树协议)。STP的原理简单说就是:通过选举,把环路中某个端口阻塞掉,逻辑上剪开这个环,让网络变成一棵树,流量就走唯一的路径。当主链路断了,它再通过协商把之前阻塞的端口放开,恢复通信。
这里有个关键概念:STP不是防止环路出现,而是环路出现之后自动把冗余路径逻辑上关掉。所以很多人配完STP就高枕无忧了,这个思维是错的。STP的收敛要时间,通常要几十秒,如果链路频繁抖动,那用户体验会很难受。现在一般建议用RSTP(快速生成树协议)或者MSTP(多生成树协议),收敛速度快很多。
VLAN和STP的关系是,VLAN是为了隔离广播域,STP是为了在冗余链路里避免环路。这俩是配套的。你要做冗余,就得在两台交换机之间连两根线,一根工作一根备份,这个时候没有STP就是灾难。你要做隔离,就得划VLAN,不同VLAN之间靠三层路由来通,不能直接在二层转发。
记这块笔记的时候,我的建议是画图,把根桥选举、端口角色的状态变化画出来,画完你会发现自己对STP的理解完全不一样了。
2.3 路由与选路:静态和动态的取舍
路由这块,很多新人容易搞混一个概念:路由是三层的事,交换是二层的事。二层靠MAC地址转发,三层靠IP地址路由。
我见过最经典的错误是:给两台电脑配了IP,一个在192.168.1.0网段,一个在192.168.2.0网段,中间用一台傻瓜交换机连着,然后问我为什么ping不通。能通才怪,二层交换机不认IP,它只认MAC。不同网段之间要通信,必须经过路由设备,也就是三层交换机或者路由器。
在配置路由的时候,静态路由和动态路由怎么选,是体现一个工程师水平的地方。
静态路由的好处是精准、可控、不占资源。适合网络规模小、拓扑固定的场景。比如一条点到点专线,两端各配一条静态路由指向对端网段,干净利落。
动态路由的好处是自动适应拓扑变化。链路断了,它自己会通过协议计算出新的路径。OSPF就是最常用的动态路由协议之一。
OSPF有几个概念必须搞明白:邻居关系、链路状态数据库、最短路径树。它的工作过程可以类比成一个团队互相通报消息:每台路由器把自己的接口状态(哪些网段连着哪些邻居)通过LSA(链路状态通告)告诉全网,最终每台路由器都有一张完整的网络地图,然后自己用SPF算法算出到每个目的地的最短路径。
有一次我做某跨区域网络割接,需要在两台核心设备上做路由冗余。当时选择的方案是OSPF,因为拓扑里有两条物理链路,跨了三个区域,靠静态路由没法做到自动切换。配置完成之后,我拔掉一根光纤测试,业务中断时间不超过两秒,这就是动态路由的价值。
但这块我劝你别急着上手玩。先把静态路由配熟,理解了路由表是怎么查的,再去学OSPF。不然你连邻居起不来都不知道该查什么方向。
3. 实操过程:从零搭一套能跑的实验环境
学网络最忌讳只看不动手。光看书,你永远不知道配置命令敲错一个字母是什么报错;你永远体会不到设备之间协商不上的那种抓狂。所以我强烈建议,学网络一定要在模拟器上搭一套自己的实验环境。
3.1 设备与工具选型
模拟器这块,市面上常见的选择有这几种:某厂商官方的模拟器,图形化做得不错,适合刚入门练手;还有那种跑在虚拟机里的多厂商模拟环境,能跑更复杂的拓扑,适合进阶。另外一个开源抓包工具也是必备的,当你配完协议之后,用它能直观看到报文的交互过程,一句话比书上的十句话都有用。
我之前带过好几个实习生,习惯都是这样带的:先用官方模拟器把VLAN、静态路由、OSPF这些基础实验跑通,然后装一个抓包工具,在模拟环境里抓OSPF的Hello报文、抓TCP三次握手,亲眼看到报文长什么样。做完这一步,他对网络的理解会有一个质的提升。
我自己的实验环境配置很简单:一台普通电脑,装了模拟器,内存分配了8G,再加一台虚拟化软件跑两个客户端虚拟机用来做测试终端。拓扑跑起来,延迟和真实设备肯定有差距,但学习协议交互逻辑完全够用。如果有条件,能找两台真实交换机玩一玩更好,但模拟器先玩熟了,真机上手会快很多。
3.2 一个完整的实验:多VLAN互通
说一个最经典、也最实用的实验,多VLAN互通。这个实验做完,后面做再复杂的园区网,核心思路都是一样的。
场景是这样的:模拟某办公室有三栋楼,分别是财务部、技术部和访客区。财务部和技术部需要保持隔离,但技术部要能跨VLAN访问服务器区。如果再加一张网卡,在我这里就是四个网段,分别给财务、技术、服务器和访客网络。
拓扑长这样:一台三层交换机做核心,两台二层交换机做接入。财务技术服务器分属不同VLAN。
第一步,在接入交换机上创建VLAN,然后把接口划入对应的VLAN:
vlan 10 name Finance vlan 20 name Technology vlan 30 name Server然后把连接PC的接口设成access模式,指定到对应VLAN:
interface gigabitethernet 0/1 port link-type access port default vlan 10这里要提醒一点:access口就是给终端用的,接PC、接服务器,这个口只属于一个VLAN。而交换机之间互联的口,需要放行多个VLAN,必须用trunk口:
interface gigabitethernet 0/2 port link-type trunk port trunk allow-pass vlan 10 20 30第二步,配置三层交换机的VLANIF接口,也就是给每个VLAN一个网关地址:
interface vlanif 10 ip address 192.168.10.254 255.255.255.0 interface vlanif 20 ip address 192.168.20.254 255.255.255.0 interface vlanif 30 ip address 192.168.30.254 255.255.255.0配置完这一步,终端把默认网关指到对应的VLANIF地址,不同VLAN之间就能通了。原理是:终端发现目标IP和自己不在同一个网段,就把报文扔给网关,也就是三层交换机的VLANIF接口,三层交换机查找路由表,发现目标网段是直连网段,就转发到对应的VLAN里。这就是VLAN间路由。
第三步,验证。从技术部的终端上ping服务器,能通就说明三层转发没问题。再用抓包工具看,你会发现跨VLAN的流量是带着VLAN标签转发的,到了接入交换机往终端送的时候才剥掉标签。这就是trunk的作用。
3.3 抓包验证:让协议细节可被触摸
当一个实验配通之后,不要急着换下一个实验。我给自己定的规矩是:每个协议至少抓一次包。
比如实验配好之后,打开抓包工具监听在模拟环境的接口上。你搜协议名,就能看到OSPF的Hello报文。每个10秒发一次,里面带着路由器ID、邻居列表、区域ID这些信息。你亲眼看到这些字段的时候,之前书上看不懂的协议文案瞬间就能理解了。
抓包工具基本用法很简单。装上之后,选接口点开始就能抓。
tcpdump -i eth1 host 192.168.30.2 and port 80 -nn-nn表示不做域名解析,显示IP和端口号。这样抓出来的包干净,看得出真实地址。Wireshark的操作类似,用过滤器写ip.addr == 192.168.30.2 && tcp.port == 80就行。
我个人觉得,在网络学习中,抓包是最被低估的一项技能。很多老工程师排查问题快,不是因为记忆力好,是因为他们能快速通过抓包定位到问题在哪一层。如果你从学习阶段就养成抓包的习惯,后面工作会顺手很多。
4. 常见问题与排查技巧实录
这个部分,我把这些年遇到的高频问题整理一下。你在自己实验、以后工作中碰到类似问题,直接对着查,能省不少时间。
4.1 网络不通:从一层一层往上查
网络不通的时候,我的习惯是分层排查,从物理层开始,一层一层往上。但是很多人一上来就是ping,ping不通就发懵。ping其实只能告诉你网络不通,但没法告诉你不通在哪一层。
先看物理层。接口灯亮不亮,网线接没接对,光模块有没有收到光。物理层不通,后面都白搭。
然后看数据链路层。二层接口状态是不是UP,接口有没有被划到正确的VLAN,trunk口放行的VLAN对不对。这个时候在交换机上查看接口状态就很关键。
display interface brief display vlan summary以上是通用的查看命令,具体模拟器或者厂商设备关键字会略有差异,但思路是走的通的。如果接口是DOWN的,那是不是线缆问题;如果是UP但是VLAN不对,那终端获取不到正确的地址。
接着看网络层。终端网关配没配对,路由表有没有到目标网段的路由。在设备上查看路由表:
display ip routing-table如果路由表里没有目标网段的路由,那就要看是静态路由没指,还是动态路由没起来。
最后看上层。安全策略、ACL有没有拦截,TCP/UDP端口对不对。
这套流程看起来简单,但是大部分新人碰到问题就是一通乱试,把自己搞晕。我笔记本里始终留着这个排查流程图,每次上现场之前先过一遍,速度能快不少。
4.2 OSPF邻居起不来,八成是这几个原因
OSPF邻居起不来,是实验和面试里都高频出现的问题。我给它列个快速排查清单:
一是区域ID不一致。两台设备,一个配在区域0,一个配在区域1,邻居永远不可能建立起来。OSPF规定,邻居必须在同一个区域,否则报文会被直接丢弃。
二是认证不匹配。如果配了认证,一方配了密码一方没配,或者密码不一致,邻居也起不来。查认证配置对不对,是这个问题最关键的步骤。
三是接口网络类型不一致。比如一方是广播型,一方是点对点型,两边协商不到一块,邻居也起不来。
四是最容易忽略的,hello间隔和失效时间不一致。OSPF邻居之间会周期性发hello报文,如果两边参数不一致,报文收下来也是无效的。
遇到OSPF邻居故障,我的习惯是先在设备上看邻居状态是DOWN还是EXSTART/EXCHANGE。不同的状态代表不同的阶段,卡在哪一步就查哪一步的配置。这个习惯让你不用盲猜,省下大量时间。
4.3 配置正确但业务不通,先查这几个隐蔽角落
有次割接遇到一个诡异故障:VLAN、路由、策略配置全检查了一遍,看着都是对的,业务就是不通。后来排查了半天,发现是接口下配了流量策略,把部分VLAN的报文给丢了。
这类隐蔽问题,通常集中在几个地方:
- 接口下可能有残留的禁用配置,比如端口被shutdown后又忘了undo
- 有ACL策略,允许或拒绝规则里的地址写错了
- 有VLAN过滤或端口隔离的配置,看起来不影响,实际悄悄把流量丢了
- 生成树端口角色不对,被阻塞了
遇到“配置看着对,但就是不通”的时候,我的土办法是:把这条链路涉及的所有接口配置全部列出来,一条条过。不放过任何一行看似无关的配置。很多时候问题就藏在你觉得“不会有影响”的那一行里。
比如端口隔离。为了安全考虑,有的交换机端口启用了端口隔离,端口隔离的作用就是同一个VLAN内部,不同端口之间不能直接二层通信。如果你配了隔离又不记得,PC互访就会失败。这种问题是理论上觉得通了但实际上物理上被隔离,属于典型的“配置看着对,业务起不来”。
5. 学习节奏与经验心得
最后聊聊我自己这些年摸着石头过河的一点经验。不一定适合所有人,但至少能给你一个参考坐标。
5.1 三个阶段:从会配到会排障
第一个阶段目标是“会配”。把VLAN、静态路由、OSPF这些基础实验全部通一遍。这个阶段不用着急,配一遍不行就配第二遍,直到不看笔记也能把配置敲出来。达到这个程度,大概需要两个月每天两小时。
第二个阶段目标是“理解”。不只是会配,要能说出为什么这么配。比如OSPF为什么要分区域,为什么要选DR(指定路由器)/BDR(备份指定路由器)。理解这个层次,你需要抓包、画图、看协议细节。这个阶段大概三到四个月。
第三个阶段目标是“排障”。给自己制造故障,专门练习排查。比如配好一个完整的网络,然后故意改错一个配置,看自己能不能快速定位。能自己把故障定位出来,你才算是真正掌握了排障的思路。这个阶段没有止境,工作了也是在做这件事。
5.2 时间投入与心态建设
学网络是个慢功夫,急不来。有些人总想一个月学成然后拿高薪。这个心态本身就会导致失败。我不劝你佛系,只要方向对、节奏稳就行。
我当时的节奏是每天至少两个小时,周末加半天。这个节奏不算快,但是坚持了半年之后,我突然发现自己看问题的方式不一样了。以前看到一个网络拓扑图发懵,现在扫一眼大概就知道哪个地方可能会出问题。这种“感觉”不是天赋,是积累出来的模式识别。
我觉得大家也可以把笔记当成自己的技术资产,花在上面的时间不是消耗,是沉淀。等你做了三五年之后,翻翻最初的笔记,你会看到自己的成长轨迹,这个比什么都值。
最后分享一个可以立刻用的小技巧。准备一张A4纸,把你现阶段最不懂的三个知识点写在最上面。每次学习新东西之前,先看一眼这三个知识点。如果新内容和它们有关,就把相关知识补进去。每周更新一次这张纸,直到上面三个问题变成六个问题,或者原来不懂的变成了现在顺手就用的技能。这个操作我一直用到现在,相当于给自己做一个动态的学习地图,比盲目跟着教程走效率高很多。