ARTICLE DETAIL

资讯详情

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

零基础学网络:吃透MAC地址、ARP、VLAN与静态路由实战

零基础学网络:吃透MAC地址、ARP、VLAN与静态路由实战 作为带网络方向课程的培训讲师每年都有不少零基础的学生从我这毕业。我发现很多人在学完“计算机网络基础1”也就是搞懂了OSI七层模型、TCP/IP四层模型知道每层大概干什么之后就卡住了。大家普遍觉得模型背得滚瓜烂熟但一让配置个IP地址、排查个网络不通还是两眼一抹黑。“一阶段-计算机网络基础2”这个阶段实际上就是来解决这个问题的。它不再停留在“认识网络”的层面而是深入到“让数据真正跑起来”的底层逻辑核心是吃透数据链路层和网络层这两个最关键的环节。这篇文章我就结合这些年带学生做实验、排故障的实操经验把“网络基础2”里最绕不开的几个硬骨头——MAC地址与ARP、IP地址与子网掩码、VLAN划分、静态路由配置掰开揉碎了讲清楚顺带附上我在实验环境里摸爬滚打总结出来的避坑指南。1. 内容整体设计与思路拆解1.1 “基础2”到底比“基础1”多了些什么“基础1”通常解决的是“是什么”的问题比如什么是协议、什么是分层、TCP和UDP有啥区别。到了“基础2”重心必须转向“怎么用”和“为什么这么设计”这是从理论走向实战的分水岭。这一阶段的核心内容基本围绕下面这几件事展开MAC地址和IP地址各自扮演什么角色谁主外、谁主内它们之间靠什么协议互相“翻译”。IP地址不够用了怎么办私有地址和公网地址怎么配合工作。一个交换机怎么做到“隔离广播”而不隔离用户流量也就是VLAN技术。不同网段之间怎么跨越障碍通信这就引入了网关和静态路由。如果你去翻很多高校的《计算机网络》教材会发现“基础2”对应的就是第二章到第四章的内容。但光看教材是不够的因为教材喜欢把知识点分条列出来而实际网络是一个整体数据从一台电脑出发到另一台电脑MAC地址在变、IP地址不变这个动态过程才是理解网络的关键。1.2 为什么坚持“先底层后上层”的学习顺序我一直跟学生强调学网络基础千万不能跳着学尤其是不能一上来就折腾应用层的东西。有人觉得我只要会配置路由器能上动态路由协议就行了何必管底层的MAC帧结构。但实际工作中90%的网络故障都出在底层。举一个我常举的例子你在浏览器里输入一个网址敲下回车。系统先得知道目标服务器的IP地址吧这是DNS干的活。有了IP地址之后数据还是发不出去因为数据链路层不认识IP地址它只认MAC地址。这时候就需要ARP协议去问一句“谁有这个IP地址请把你的MAC地址告诉我。”拿到MAC地址数据帧才能被封装好沿着网线送出去。整个链条里网络层负责“找到路”数据链路层负责“走好每一步”。如果底层的MAC地址解析错了或者子网掩码算错了上层应用做得再好也白搭。所以这一阶段必须耐住性子把底层协议吃透。2. 核心细节解析与实操要点2.1 认识数据中心从快递包裹看TCP/IP封装理解网络通信我特别喜欢拿寄快递来打比方。你寄一个包裹需要填写寄件人和收件人的姓名电话这就像应用层的端口号还需要填写地址这就像IP地址。包裹里塞的货就是你真正要传的数据。但是快递员搬运的时候他看的不是你写在快递单上的名字而是包裹外包装上的那个物流条形码这个码就是MAC地址。不过这个类比有个注意点MAC地址在数据的每一跳传输中都会发生变化。你家里路由器发出去的帧源MAC地址是路由器的LAN口目的MAC地址是电脑的网卡。而从路由器到运营商设备时源目的MAC地址又会变成路由器的WAN口和对端设备的MAC。IP地址却是一直不变的。这正是网络层和数据链路层各司其职的经典体现。2.2 ARP协议地址解析的“翻译官”ARP全称Address Resolution Protocol地址解析协议。它的作用就一句话根据IP地址获取MAC地址。但这句话背后有几个天天有人踩的坑。ARP缓存是怎么回事如果每发一个包都要广播问一次“谁是192.168.1.1”那网络早就被广播风暴淹没了。所以每台设备上都有一个ARP缓存表记录着最近解析过的IP与MAC对应关系。在命令行里输入arp -a就能看到这张表。怎么清理ARP缓存有些时候网络环境变了比如换了个路由器缓存里的老条目会导致IP地址解析到旧MAC地址上结果就是突然断网。Windows下用arp -d清空缓存然后重新ping一下目标地址就能触发新的ARP请求。ARP欺骗为什么防不胜防因为ARP协议设计之初就没考虑安全。局域网内任何一台设备都可以主动发送ARP应答包声称“我是网关”。其他设备一收到想都不想就更新缓存。这就是很多内网攻击的底层原理。学习基础2时知道这个机制至少排查问题时思路能拓宽不少。实操中你在路由器上ping一台PC执行display arp就能看到路由器学到的ARP表项。如果ping不通先看ARP表里有没有目标IP的条目没有就说明二层就断了压根没通信上。2.3 IP地址与子网掩码划分子网的底层逻辑这块可以说是“基础2”的重头戏很多人都是在这里开始掉队的。先说一个核心概念子网掩码不是“陪衬”它是用来判断两台计算机是否在同一网段的唯一依据。光看IP地址本身你是无法判断它在哪个网段的比如192.168.1.10和192.168.2.10如果掩码是255.255.255.0那它们不在同一网段但如果掩码是255.255.0.0它们就在同一网段。所以判断规则是先把IP地址和子网掩码都转成二进制然后进行AND运算对应位都是1结果才是1得出的结果就是网络号比一比网络号是否相同。很多人会觉得这个计算过程反锁其实有个快速技巧子网掩码连续的1对应的IP部分就是网络位。比如掩码是255.255.255.0表示前三组数是网络位最后一组是主机位。那么192.168.1.x和192.168.2.x肯定不在一个网段。而掩码是255.255.0.0时只有192.168这前两组是网络位那后两组变化不影响同网段判断。掌握这个概念之后再去看设备连通性测试就一目了然了。同网段互访直接走二层交换机不同网段互访必须经过网关也就是路由器进行三层转发。2.4 网关与默认路由不同网段通信的“大门”网关这个概念很多学生第一反应就是“路由器的IP地址”。这样说不算错但不严谨。网关是一个概念指的是连接不同网络的那个设备接口的IP地址。你设备上配置的默认网关决定了凡是目的IP不在我本网段的数据包统统甩给这个网关去处理。所以配置电脑IP地址时有个极易踩坑的点是忘了配网关。同网段通信时网关可有可无但你要访问外网或别的网段没有网关就永远不通。我曾经见过一个学生把网关配成了自己电脑的IP也就是说网关和自己同一个地址结果上不了网排查半天就是这个低级错误。3. 实操过程与核心环节实现3.1 搭建一个最简实验环境纸上谈兵没有用我建议所有学“基础2”的人都动手搭建一个虚拟实验环境。我用得最顺手的是Cisco Packet Tracer这东西虽然叫“模拟器”但用来练手网络基础绰绰有余。第一步拖两台PC和一个交换机到拓扑区用直通线连起来。PC1的IP设为192.168.1.1掩码255.255.255.0网关留空不必填。PC2的IP设为192.168.1.2掩码一样。第二步用命令行工具测试连通性。在PC1上打开Desktop的Command Prompt输入ping 192.168.1.2。如果通了说明二层通信没问题交换机确实在正常工作。如果不同检查交换机端口状态看看是不是线缆类型选错了模拟环境里常见问题。这个实验虽然简单但价值在于亲眼看着数据帧在交换机里怎么泛洪、怎么转发。把交换机的端口状态和PC的ARP表对照起来看你就吃透了二层通信的全过程。3.2 交换机上配置VLAN到底改了些什么接着上面两步我们做一个进阶实验也是最贴合真实工作场景的VLAN实验。假设公司有两个部门财务部VLAN 10和行政部VLAN 20现在要求他们之间二层隔离也就是不能互相直接通信。在Packet Tracer里放一台交换机接四台PC财务两台行政两台。默认情况下所有端口都在VLAN 1所以大家都能互通。这时候打开交换机的CLI执行Switchenable Switch#configure terminal Switch(config)#vlan 10 Switch(config-vlan)#name Finance Switch(config-vlan)#exit Switch(config)#vlan 20 Switch(config-vlan)#name Admin Switch(config-vlan)#exit然后把端口划进对应VLANSwitch(config)#interface fastEthernet 0/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 10其余三个口同理配置。配置完成后再用PC1去ping财务部的PC3你会发现已经ping不通了。这时候再测一下财务部内部的两台PC是通的。这个对比实验非常直观地展示了VLAN的核心作用隔离广播域。但划了VLAN之后问题又来了如果财务部确实需要访问行政部的打印机怎么办那就需要三层设备把VLAN间的路由配上也就是所谓“单臂路由”或者“三层交换机VLANIF接口”。3.3 静态路由配置实验接着VLAN的场景我们把拓扑升级一台路由器R1下面接两个网段192.168.10.0/24和192.168.20.0/24。要让这两个网段通信除了两台终端的网关都指向R1对应接口之外如果R1直连着这两个网段那它天然知道怎么转发不需要额外路由。真正的难点在于“非直连网段”怎么写路由表。再插一台路由器R2R1连R2R2后面再挂一个192.168.30.0/24网段。想让192.168.10.x访问192.168.30.xR1必须知道往哪里丢包。这就要写静态路由了。在真实设备或模拟器的CLI中Routerenable Router#configure terminal Router(config)#interface gigabitethernet 0/0 Router(config-if)#ip address 192.168.10.1 255.255.255.0 Router(config-if)#no shutdown Router(config-if)#exit Router(config)#interface gigabitethernet 0/1 Router(config-if)#ip address 192.168.100.1 255.255.255.0 Router(config-if)#no shutdown Router(config-if)#exit Router(config)#ip route 192.168.30.0 255.255.255.0 192.168.100.2最后一条命令就是静态路由的核心目标网段192.168.30.0/24下一跳是192.168.100.2。注意这里写的是下一跳地址而不是接口名因为多路由存在时只有下一跳地址才能精确定位出接口。3.4 抓包看三次握手从理论到亲眼所见“基础2”如果只练配置不抓包那还有一半的坑没踩到。我强烈建议装一个Wireshark顺手到爆炸。随便ping一个地址在Wireshark里就能看到完整的ICMP报文流程也能看到ARP请求和应答的成对出现。我让每个学生做的练习是清空ARP缓存然后过滤Wireshark里的arp字段执行ping。你会发现Wireshark里先出现广播地址ffffffffffff的ARP请求包然后紧接着出现单播的ARP应答包。亲眼见到这个完整过程比死记硬背一百遍“ARP先请求后应答”都管用。4. 常见问题与排查技巧实录4.1 ping不通的排查路径只要网络有点啥问题第一个想到的就是ping。但ping不通原因可能是五花八门的。我把“基础2”阶段的学员工作总结成一张速查表碰到ping不通按照这个顺序查效率最高排查步骤命令/操作预期结果如果不行说明什么查IP配置ipconfig有正常的IPv4地址且不是169.254.x.x开头的没从DHCP拿到地址或者网线没插好查ARP邻居arp -a能看到目标IP且对应的MAC不是非法的ARP请求发不出去二层被隔离或物理故障查路由表route print有通往目标网段的条目默认网关存在网关缺失或掩码配错查防火墙禁用本机防火墙临时测试通了就是防火墙拦了需要放行ICMP或对应端口这里面最容易被忽略的就是169.254.x.x这个地址。Windows系统在网卡无法通过DHCP获取地址时会自动分配一个169.254开头的地址。看到这个地址基本上可以断定是三层没通了先检查DHCP服务器或者手动配置一个静态IP。4.2 VLAN配了还是互通多半是Trunk没放行我曾经带过一个项目交换机之间用Trunk连接VLAN 10和VLAN 20都创建了各端口也划对了。但VLAN 10跨交换机通信就是不通。查了半小时发现两台交换机对接的Trunk口上没有allow VLAN 10通过。CLI里查看Switch#show interfaces trunk如果Trunk口已经配置但allowed vlan列表里没有10和20那10和20的流量会被直接丢弃。这个坑特别经典因为在思科设备上默认的VLAN范围是1-1005理论上新建的VLAN都会在里面但有些情况下配置了VLAN pruning或者人为修改过allowed vlan范围就会中招。4.3 两台设备直连掩码不一致导致的“假通”还有一种特别迷惑人的现象PC1是192.168.1.1/24PC2是192.168.1.2/16。它们两互相ping居然是通的。很多新手就觉得这没问题啊。但实际上一旦PC2访问的是192.168.2.x网段由于它的掩码是16位它会把192.168.2.1当成同一链路的地址不通过网关直接发送ARP请求结果找不到那台设备。这种隐藏路由隐患需要在实验环境里多折腾才能体会。4.4 抓包时的常见误判Wireshark里看到“TCP Retransmission”很多人第一反应是网络丢包了。但如果你在抓包时把自己发出的请求过滤一下会发现很多时候重传是因为接收端开了TCP延迟确认Delayed ACK机制或者接收端的处理能力跟不上。我的建议是看到重传不要慌先统计一下重传的比例。偶尔一个两个重传只要不持续增长一般不是物理链路问题。还有一种误判是看到大量广播包就觉得是广播风暴。正常网络里有ARP广播、DHCP广播、NETBIOS广播数量都不少。判断是不是风暴要看广播包占整体流量的比例通常跑个流量监测工具就能判断。本质上学“基础2”阶段我们每做一步都要多问一句“为什么”为什么网关要这样配为什么VLAN能隔离广播为什么静态路由要写上下一跳而不是只写出接口当这些问题在实验里都能对号入座时你会发现自己再看到网络故障脑海里的排查思路会清晰得多。我个人在这几年带实验的过程里最深的一点体会是绝大部分人学网络的瓶颈不是智商而是动手太晚、动脑太少。Packet Tracer装好之后建议别急着去敲复杂的ACL或OSPF就把交换机、路由器的二层三层基础配置反复折腾把MAC、IP、子网掩码、网关这几个要素彻底搞熟后面学什么都顺。这套内容我建议至少花三到四周的时间来消化每周动手两到三次实验。等你可以不查资料一口气把“两台不同VLAN的设备通过三层路由通信”这个实验独立做出来并且能清楚地讲出中间每一个数据包的走向时“一阶段-计算机网络基础2”这块就算真正学到手了。
返回列表