十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

网络作业1全解析:VLAN划分、静态路由与抓包验证实战

网络作业1全解析:VLAN划分、静态路由与抓包验证实战 收到网络作业1这个题目时很多人第一反应是这不就是把几台设备配通吗。等我自己完整做下来才发现这道题表面上只考VLAN划分、静态路由和抓包分析实际上把二层交换、三层路由、协议交互整条链路全串起来了。这篇内容适合正在上网络课、被类似作业卡住的在校学生也适合自学网络但缺实验环境、想知道配完每一步会发生什么的入门者。我会把这次作业从需求拆解、拓扑设计、地址规划到逐条配置、抓包验证、故障排查的完整过程写清楚重点讲那些不踩一次很难顿悟的细节。1. 作业要求里的隐藏考点这张网络作业1到底在考什么1.1 表面是配通实际考的是二三层联动网络作业1这种命名方式通常是课程前几周布置的第一个综合实验。题目文字往往很短比如搭建一个小型局域网实现多个部门互相访问并通过抓包验证通信过程。但就是这么一段短描述背后藏着的考点并不少。第一个隐藏考点是广播域隔离。如果不做任何VLAN所有设备在同一个广播域里一台PC发ARP广播全网都能收到。实验规模小看不出来但真实网络里这会造成极大的带宽浪费和安全隐患。所以作业里一旦出现部门和互访这类词实际上就是在要求用VLAN把不同部门切开。第二个隐藏考点是VLAN跨设备传递。几台PC不会只挂在同一台交换机上接入层交换机之间通常要用Trunk链路才能让同一个VLAN在不同设备间共享。很多人在这一步丢分配因为没有意识到Trunk的allowed vlan列表默认只放行VLAN 1新加的VLAN如果没被明确允许跨交换机就不通。第三个隐藏考点是三层路由。VLAN之间要通信必须有一个三层网关来做报文转发。这里有两种常见做法一是用路由器单臂路由二是用三层交换机上的SVI接口。现在的课程更倾向于后者因为它在架构上更接近真实局域网的核心层设计。第四个隐藏考点最容易忽略回程路由。很多人配置完静态路由去ping对端不通第一反应是我路由配错了吗结果检查了一遍发现配置都对最后才发现是回程路径上没有让对方路由回来的条目。网络通信从来都是双向的单方向有路由不叫通。1.2 我用什么环境复现并验证这份作业实验环境我选的是Cisco Packet Tracer 8.2。选择理由很简单一是免费能装在任何人的电脑上二是它自带抓包模拟功能不用再额外搭Wireshark环境三是设备配置命令和真实思科设备基本一致工作后也能直接迁移经验。如果你用的是华为eNSP或者思科GNS3思路也一样只是命令写法有差异比如思科的VLAN接口配置是interface vlan 10华为里面叫interface Vlanif 10思科的是ip routing开启三层转发华为设备只要创建了Vlanif默认就能路由。这些差异我会尽量在关键位置提一下避免你拿华为命令套思科文档然后卡住。拓扑规模我没有贪大一共用了两台二层接入交换机、一台三层核心交换机、一台出口路由器再挂上几台PC和一台模拟服务器。设备数量不多但覆盖了接入层、汇聚层、核心层、出口路由这四层结构。作业不是为了炫技而是为了验证一类通信场景规模合适就行了。2. 画清拓扑和IP账再动手私网规划里最容易被忽略的计算2.1 三层结构拓扑怎么排很多初学者拿到题目第一件事就是打开模拟器拖设备拖完直接开始配IP。这是最容易翻车的做法。拓扑结构和地址规划没有先在纸上想清楚后面每配一步都可能要返工。我采用的拓扑是这样排的接入层放两台交换机SW-A和SW-BSW-A上挂两个PC属于行政部两个PC属于技术部SW-B上挂一个行政部PC和一个服务器所有上联口都接到核心交换机SW-Core。SW-Core是一台三层交换机负责VLAN间路由和对外连接。SW-Core再向上接一台出口路由器R1R1一侧连核心另一侧连一个模拟外网区域。这样排的理由很直接。接入层只做VLAN划分和端口接入主干Trunk放在核心设备上路由和策略集中到核心层统一控制。以后要扩展只需要在SW-Core上加VLAN、加SVI、加路由条目接入交换机基本不用动。这就是真实网络里核心做路由、接入做接入的分层思想。在排拓扑的时候要注意一个细节接入层交换机的上联口必须是Trunk模式否则VLAN标签无法通过。模拟器里默认创建的所有接口都是access模式如果你只划分了VLAN但忘了把上联口改成trunkVLAN 20的PC一定无法跨交换机通信这是前期最常见的失误。2.2 网段与网关分配以及/30点对点链路为什么要这么算我的地址规划表如下用途VLAN网络地址网关地址说明行政部VLAN 10192.168.10.0/24192.168.10.1面向办公PC技术部VLAN 20192.168.20.0/24192.168.20.1面向开发测试PC服务器区VLAN 30192.168.30.0/24192.168.30.1放共享服务器核心到出口互联无10.0.0.0/3010.0.0.1 / 10.0.0.2点对点链路很多初学者不明白为什么互联段要用/30。这里值得算一笔账。路由器之间只需要两个可用IP一个给核心一侧一个给出口路由器一侧。如果用/24理论上有254个可用地址但实际只用了两个剩下的全是浪费而且广播域过大没必要。用/30掩码255.255.255.252可用地址恰好是2个不多不少。具体计算过程是/30表示网络位30位主机位2位所以总的地址数量是2的2次方等于4个去掉网络地址和广播地址剩下两个可用IP。比如10.0.0.0/30这个网段网络地址是10.0.0.0可用地址是10.0.0.1和10.0.0.2广播地址是10.0.0.3。这个小账必须在脑子里算清楚不然配置地址掩码时容易顺手写成255.255.255.0后半段全乱。PC端的IP地址我是分批规划的行政部分配192.168.10.10到192.168.10.20技术部分配192.168.20.10到192.168.20.20服务器区固定为192.168.30.10。网关统一指向对应VLAN的SVI地址。这样做的好处是出问题时看IP就能判断设备属于哪个VLAN排障速度快很多。2.3 动手配置前先预判路由表配置前预判路由表是我这次做作业收获最大的一步。把预期路由表先在纸上写出来配置的时候就有据可依排查的时候也能快速看出偏差。核心交换机SW-Core上应该有这些直连路由和静态路由192.168.10.0/24直连VLAN 10192.168.20.0/24直连VLAN 20192.168.30.0/24直连VLAN 3010.0.0.0/30直连接口GE0/240.0.0.0/0静态路由下一跳指向10.0.0.2出口路由器R1上则应该有三条指向内网的回程路由192.168.10.0/24下一跳10.0.0.1192.168.20.0/24下一跳10.0.0.1192.168.30.0/24下一跳10.0.0.1这里最关键的一步是核心交换机上的默认路由。因为内网所有未知目标地址也就是去往外网的流量都必须统一发给出口路由器。没有这条默认路由PC访问外网时核心交换机根本不知道该把报文交给谁。而R1上面的三条静态路由恰恰就是前面提到的回程路由。R1收到从外网返回的报文报文目的是192.168.10.10之类的内容网地址如果R1没有对应路由它就没有办法把报文转发回核心交换机结果就是PC能发出访问但等不到响应。通路是双向的这个问题在作业里极其常见。3. 从接入层到出口路由器完整配置逐条拆解3.1 接入层交换机的VLAN与Trunk配置我先从SW-A开始配置。两台接入交换机配置逻辑一样这里以SW-A为例。enable configure terminal hostname SW-A # 创建VLAN vlan 10 name Admin exit vlan 20 name Tech exit # 将端口划分到对应VLAN interface GigabitEthernet0/1 switchport mode access switchport access vlan 10 exit interface GigabitEthernet0/2 switchport mode access switchport access vlan 10 exit interface GigabitEthernet0/3 switchport mode access switchport access vlan 20 exit interface GigabitEthernet0/4 switchport mode access switchport access vlan 20 exit # 上联口配置Trunk interface GigabitEthernet0/24 switchport mode trunk switchport trunk allowed vlan 10,20 exit创建VLAN这步很好理解但要注意VLAN只有被创建出来端口才能用它。如果不创建直接写switchport access vlan 10多数真实设备会报错或自动创建而模拟器环境可能直接忽略酿成隐性问题。Trunk上联口我特意写了switchport trunk allowed vlan 10,20这一句用来指定允许哪些VLAN通过。默认情况下trunk口放行VLAN 1如果你没加allowed这句VLAN 10和20的标签跨不过去。这也是许多同学配完发现本VLAN内PC能通、跨交换机PC不同的根因。SW-B的配置思路相同只需要把服务器所在的VLAN 30加进去并把对应端口划到VLAN 30。配置完成后我习惯用show vlan brief快速确认端口归属用show interfaces trunk确认trunk状态是否正常。3.2 三层交换机的SVI和默认路由进入核心交换机SW-Core这是整张拓扑的转发枢纽。这里要同时完成三层SVI地址、路由功能和默认路由三个任务。enable configure terminal hostname SW-Core # 开启三层路由功能 ip routing # 创建VLAN及SVI网关 vlan 10 name Admin exit vlan 20 name Tech exit vlan 30 name Server exit interface vlan 10 ip address 192.168.10.1 255.255.255.0 no shutdown exit interface vlan 20 ip address 192.168.20.1 255.255.255.0 no shutdown exit interface vlan 30 ip address 192.168.30.1 255.255.255.0 no shutdown exit # 上联路由口连接出口路由器 interface GigabitEthernet0/24 no switchport ip address 10.0.0.1 255.255.255.252 no shutdown exit # 默认路由指向出口路由器 ip route 0.0.0.0 0.0.0.0 10.0.0.2ip routing这行命令是很多人容易忽略的。模拟器中的三层交换机默认并没有开启路由能力必须手动执行这条命令SVIs才能转发不同VLAN之间的报文。如果你发现SVI地址明明配了、接口也起来了但VLAN之间就是不通第一反应就应该是检查有没有执行这行命令。上联口接路由器时我执行了no switchport把这个物理端口从二层端口切换成三层路由口。如果不切换交换机默认把端口当二层口用你配了IP不生效。华为设备不需要这一步因为华为默认接口可以直接配置IP地址但思科设备必须记录这个操作。对于接交换机的上联口比如GE0/1和GE0/2也要配置Trunk模式把VLAN 10、20、30全部允许通过。这里我强调一下核心交换机对接入交换机的口和对接路由器的口含义完全不同前者是二层Trunk承载带VLAN标签的以太网帧后者是三层路由口承载的是普通IP报文。这个对比理解清楚了整个配置逻辑就通了。3.3 出口路由器与PC端配置R1出口路由器的配置如下enable configure terminal hostname R1 # 连接核心交换机的接口 interface GigabitEthernet0/0 ip address 10.0.0.2 255.255.255.252 no shutdown exit # 连接外网模拟区域的接口 interface GigabitEthernet0/1 ip address 203.0.113.1 255.255.255.0 no shutdown exit # 回程路由让外网流量能路由回内网 ip route 192.168.10.0 255.255.255.0 10.0.0.1 ip route 192.168.20.0 255.255.255.0 10.0.0.1 ip route 192.168.30.0 255.255.255.0 10.0.0.1PC端的配置有两种方式。一种是在每台PC上手工填写静态IP、掩码、网关和DNS另一种是在核心交换机上配置DHCP地址池。课程作业一般要求掌握DHCP所以我在核心交换机上加了一段DHCP配置ip dhcp pool vlan10_admin network 192.168.10.0 255.255.255.0 default-router 192.168.10.1 dns-server 8.8.8.8 lease 8 exit ip dhcp pool vlan20_tech network 192.168.20.0 255.255.255.0 default-router 192.168.20.1 dns-server 8.8.8.8 lease 8 exit配完后PC端把IP获取方式改成DHCP即可。这里有一个容易踩的坑DHCP地址池里的网关必须和对应VLAN的SVI地址完全一致否则PC拿到了地址但不知道该往哪个网关发报文结果是DHCP成功却无法上网。所有配置完成后别急着关模拟器一定要用copy running-config startup-config保存配置。Packet Tracer里如果不保存关闭后再打开全部配置会清空那种我明明配对了为什么重启后全没了的绝望大多数网络学习者都经历过。4. 抓包验证把能通变成看清报文怎么流转4.1 我常用的三类抓包过滤条件作业做到ping通只能算完成了一半题目里经常附带的抓包验证才是拉开差距的地方。抓包不是给你看的而是证明你真正理解数据包是怎么从源地址走到目的地址的。我本次使用Packet Tracer的模拟模式抓包也能用Wireshark对真实环境抓包。无论哪种工具过滤条件思维方式一致。我常用的三类过滤条件如下场景过滤表达式作用看ARParp观察地址解析过程排查同网段通信问题看ICMPicmp观察ping请求和响应是否成对出现看TCP/HTTPtcp.port 80或http观察TCP握手和应用层请求响应以PC1去ping PC3为例整个过程分为两个阶段。第一阶段PC1发现目的IP不在自己的网段于是把报文交给网关但此时PC1还不知道网关的MAC地址会先发送一个ARP广播请求询问谁是192.168.20.1第二阶段网关回应自己的MAC地址PC1才封装ICMP报文把目的MAC填成网关MAC目的IP填成PC3的IP发出包去。如果你在抓包结果里只看到ARP请求但没有ARP回复说明网关配置有问题可能地址没配、VLAN不对、SVI接口没有起来。如果你看到ICMP request有发出但没有reply回来则问题大概率出在回程路径上。抓包的结果不是用来交差的它直接指出了问题的方向和位置。4.2 用报文顺序反推连通性故障有一次我做完作业自测PC1能ping通网关能ping通VLAN 20里的PC3但PC1访问服务器PC5时总是请求超时。我第一反应是服务器所在VLAN 30的路由有问题。结果抓包发现PC1发给网关的ARP请求有响应然后ICMP request也发出了但服务器完全没有回应。问题到底出在哪里我继续在服务器侧抓包发现服务器确实收到了ICMP request但它的网关地址配置成了192.168.30.254而我规划的网关是192.168.30.1。于是服务器尝试向一个不存在的ARP地址请求解析自然没有人回应报文就卡死在那里永远发不出去。问题不在路由而在服务器的网关配置错误。这个案例告诉我们一个核心方法排查网络故障时一定要分段看报文走到了哪里。先看源端有没有发出再看中间设备有没有转发最后看目的端有没有收到并回包。抓包工具能帮我们把每一段都照出来只要顺着包走就一定能定位到失联的位置。5. 我在这版作业里踩过的坑和完整排查链路5.1 故障复现VLAN20跨网段ping不通我做模拟验证时遇到最典型的故障是VLAN 20的PC3无法ping通网关192.168.20.1。当时我的排查链路如下这条链路对其他人有很强的复用价值。第一步在PC3上用ipconfig检查IP地址、子网掩码、网关三项。发现PC3是DHCP获取的地址拿到的IP是192.168.20.10网关是192.168.20.1参数本身没有问题。第二步用ping 192.168.20.1测试到网关的连通性。结果不通。这说明问题不在外部路由而在PC3所在链路或者核心交换机的SVI上。第三步检查PC3到SW-A这条链路。我用show vlan brief在SW-A上查看端口归属发现GE0/4口确实属于VLAN 20端口状态是up看起来正常。第四步检查SW-A的上联Trunk。执行show interfaces trunk结果发现GigabitEthernet0/24虽然模式是trunk但Allowed VLAN列表里只显示VLAN 1。原因是我在SW-A上创建VLAN 20后在配置trunk口时漏掉了switchport trunk allowed vlan 10,20这条命令。按照思科默认行为trunk口不会自动放行新创建的VLAN。修复方式是在SW-A的上联口重新配置interface GigabitEthernet0/24 switchport trunk allowed vlan 10,20执行之后PC3立即就能ping通网关192.168.20.1了。这个案例看起来很普通但在大批同学的作业中非常典型问题不在核心而在接入侧标准排查链路一分钟就能定位。再深挖一层很多人会问为什么PC3不在本地做ARP解析而是要把报文交给网关因为PC3的目的IP是192.168.20.1它判断这个IP不在自己的同网段内所以不直接ARP请求192.168.20.1的MAC而是把报文封装给网关由网关继续转发。但跨网段访问时如果连网关都不可达后续一切都是空谈。5.2 地址变了但ARP还是旧映射第二个坑更隐蔽改完IP后发现ping不通但配置检查全对最后查出来是ARP缓存没更新。具体场景是这样的我把PC2的IP从192.168.10.10改成192.168.10.11然后用PC1去ping新的IP地址。PC1的ARP缓存里还保留着192.168.10.10对应某MAC的旧条目而新IP 192.168.10.11是刚分配的PC1需要重新发ARP请求。正常情况下这是自动完成的但模拟器或者某些实验环境刷新较慢就会出现目标机器明明在线、却一直不能及时解析地址的情况。解决这个问题的办法很简单。在PC的命令行里执行arp -d *清空本机的ARP缓存再重新ping一般立刻就好。在核心交换机上如果设备本身缓存了错误ARP条目也用clear arp-cache命令清除。如果是在真实网络环境中碰到类似问题还需要检查是否有多台设备抢占了同一个IP这是ARP相关的常见根因。这个小问题很容易被忽视因为人的惯性思维是配置不对就查配置。但在网络里报文的转发依赖的往往是下一跳设备的实时状态缓存和表项一样需要关注。5.3 做完后我会怎么调整后续学习路径这版作业做完以后我对自己的评估是基础配置能力过关了但协议理解和排障经验还需要刻意练习。具体我给自己有三个改进方向。第一个方向是把静态路由升级成动态路由。作业里网络规模小静态路由手动配最直观。但一旦扩大到几十台设备手工维护静态路由不现实。下一步我会在同样的拓扑上把R1和SW-Core之间改成OSPF用show ip route对比动态学习的路由和手工配置的静态路由有什么区别。第二个方向是增加故障注入练习。模拟器上故意把某条trunk的allowed vlan删掉、把某个SVI的no shutdown关掉然后在PC端反复ping观察报错表现。经过几次这样的练习我对报文的走向会更敏感排查速度会快很多。第三个方向是把抓包和协议分析做细。不要只看有没有响应而是把TCP三次握手的SYN、SYN-ACK、ACK序号变化自己数一遍把HTTP请求的请求行、头部字段逐项对照一遍。这个过程虽然慢但是最扎实的学习方式。6. 最后分享两个作业之外的实际体会第一个体会是配置命令背熟只是及格线真正拉开差距的是判断问题出在哪一层的直觉。碰到网络故障先想清楚这是二层问题、三层问题还是应用问题再决定查VLAN、查路由还是查服务整个排查效率会完全不同。第二个体会是网络实验千万不要配完就删尽量把每一版拓扑和配置都保留下来。模拟环境里保存一个跑通的基线版本既能随时回来对照也方便后续做扩展练习。等到工作以后这种有基线、可回滚、能对照的工作方式会帮你省下大量返工时间。这版网络作业1已经跑通但它给我的价值不止是交一份作业而是让我第一次把一个小型局域网从设计到验证完整走了一遍。
返回列表