网工修炼手册

张开发
2026/6/27 10:32:59 15 分钟阅读
网工修炼手册
最近打算在网工领域沉淀一下整理了一些网工常见知识点用作平常自己复习也跟大家分享一下。TCP/IP三次握手分别发生了什么TCP三次握手是为了建立可靠连接第一次客户端发送 SYNseqx请求建立连接第二次服务端返回 SYNACKseqyackx1第三次客户端发送 ACKacky1连接建立为什么必须三次两次行不行三次握手的目的是确认双方收发能力正常同时防止历史连接请求导致误连接。简单讲人话版如果只有两次A发了一个旧的SYN网络延迟B收到后直接建立连接A其实根本没想连就会产生幽灵连接假连接SYN攻击是怎么回事SYN攻击是攻击者发送大量SYN但不完成握手占用服务器半连接队列资源造成拒绝服务攻击流程攻击者发送大量 SYN服务器回复 SYNACK攻击者不回 ACK结果服务器进入半连接状态SYN_RCVD维护大量连接队列资源耗尽DoS“利用的是TCP三次握手的机制漏洞”ARPARP完整过程A怎么找到B的MACARP用于通过IP地址解析MAC地址主机先查ARP缓存如果没有则发送广播ARP请求同一广播域内主机收到后只有目标IP匹配的主机会单播回复自己的MAC主机会将IP-MAC映射写入ARP表如果目的 IP 和本机 IP 属于同一网段则 ARP 请求查询的就是目的 IP 的 MAC 地址。如果目的 IP 和本机 IP 不属于同一网段当本机存在到达目的 IP 的路由时则 ARP请求查询的就是该路由下一跳的 MAC 地址﹔如果没有明细路由就请求查询缺省路由下一跳也就是网关)的 MAC 地址。ARP是广播还是单播ARP请求是广播ARP响应是单播ARP有没有攻击怎么攻击ARP存在安全问题例如ARP欺骗攻击者伪造ARP响应使数据流量经过攻击者实现中间人攻击攻击者伪造ARP响应例如告诉A“网关的IP对应的是我的MAC”结果A把数据发给攻击者攻击者可以窃听中间人攻击篡改数据或直接丢弃断网OSPF为什么要划分区域OSPF划分区域的主要目的是控制LSA泛洪范围减少LSDB规模从而降低设备资源消耗同时提升收敛速度并实现故障隔离Area 0 是干嘛的Area 0是骨干区域所有非骨干区域必须与Area 0相连跨区域通信必须经过Area 0OSPF如何防环?通过SPS算法和LSDB实现区域内防环通过强制星型拓扑所有非骨干区域必须与Area0相连跨区域通信必须经过Area 0实现区域间防环还有ABR的水平分割机制。DR / BDR 是为了解决什么问题在广播网络中如果没有DR/BDR所有路由器需要建立全互联邻接关系会产生大量LSA泛洪引入DR/BDR后所有路由器只与DR建立邻接由DR负责LSA转发从而减少邻接数量和网络开销BGP vs OSPF最大区别是什么核心各自用在什么场景OSPF和BGP的本质区别在于OSPF是内部网关协议基于链路状态主要用于自治系统内部目标是计算最短路径实现快速收敛而BGP是外部网关协议基于路径矢量主要用于不同自治系统之间核心是通过策略控制路由选择而不是单纯追求最短路径因此OSPF更关注效率而BGP更关注策略和可控性两台路由器运行 OSPF但邻居一直建不起来当OSPF邻居无法建立时我会先从基础连通性入手确认接口状态、IP地址是否正常以及是否能够互相ping通如果基础连通性正常再检查OSPF的配置是否在同一个区域接口是否正确启用OSPF接着重点检查Hello和Dead时间是否一致网络类型是否匹配以及Area ID是否一致同时还需要确认Router ID是否冲突✅ Step 1基础连通性接口是否 up/upIP 地址是否在同一网段或可达能否 ping 通对端接口IP 如果这里都不通➡️ OSPF不用看了先修基础✅ Step 2接口与OSPF配置检查是否在同一个 area是否开启 OSPF网络类型是否一致broadcast / p2p✅ Step 3OSPF关键参数匹配重点检查Hello IntervalDead IntervalArea ID 是否一致子网掩码是否一致 这些不一致 → 无法建立邻居✅ Step 4Router ID是否重复是否手动配置冲突是否自动选取异常OSPF 邻居关系建立的过程是怎样的OSPF邻居建立过程分为多个状态初始为 Down 状态路由器开始发送 Hello 报文当收到对方的 Hello 报文后进入 Init 状态当双方互相在 Hello 报文中看到对方的 Router ID 时进入 2-Way 状态在广播网络中会在此阶段进行 DR/BDR 选举之后进入 ExStart 状态协商主从关系并确定初始序列号接着进入 Exchange 状态交换 DD 报文描述各自的 LSDB然后进入 Loading 状态通过 LSR 和 LSU 请求和同步缺失的LSA最终进入 Full 状态邻接关系建立完成是不是所有邻居都会进入 Full 状态为什么在广播网络中并不是所有OSPF邻居都会进入Full状态为了减少邻接关系数量OSPF引入了DR和BDR机制DR和BDR会与所有DRother建立邻接关系Full状态而DRother之间只保持2-Way状态不会进入Full这样可以减少LSA泛洪和邻接关系数量提高网络效率DR是怎么选举出来的DR的选举首先比较优先级优先级高的当选优先级默认为1取值范围是0到255其中0表示不参与选举如果优先级相同则比较Router IDRouter ID大的当选为DR其次选出BDR并且DR选举是非抢占的即一旦选举完成不会因为新加入更高优先级的设备而改变Router ID 选举Router ID 可以手动配置如果没有手动配置则会优先选择本地Loopback接口中IP地址最大的作为Router ID如果没有Loopback接口则会选择物理接口中IP地址最大的作为Router ID并且Router ID一旦选定不会自动改变除非重启OSPF进程如果你发现 OSPF 邻居一直卡在 ExStart 状态你会怎么处理ExStart阶段主要是协商主从关系并准备交换数据库如果这个阶段卡住一般说明数据库同步前的参数存在问题如果OSPF邻居卡在ExStart状态我会首先怀疑MTU不一致的问题可以通过查看接口MTU配置确保两端一致或者通过抓包查看DD报文协商过程如果确认是MTU问题可以调整接口MTU或者关闭MTU检查此外也可能是主从协商异常或链路不稳定导致需要进一步排查NAT(Network Address Translation 网络地址转换 )NAT为什么存在它解决了什么问题NAT是一种实现IP地址转换的技术主要用于解决IPv4地址不足的问题同时也可以实现内网隐藏和安全隔离常见的NAT类型包括静态NAT一对一固定映射动态NAT通过地址池进行动态映射NAPTPAT通过IP地址端口复用实现多对一转换是最常用的方式Easy-IP基于接口IP的NAPT实现NAT Server用于将公网地址的端口映射到内网服务器实现外网访问内网服务其中NAPT通过端口复用极大提高了公网IP的利用率是实际网络中最常用的方式BGPBGP和OSPF有什么区别BGP是路径矢量的外部网关协议主要用于AS之间的路由控制强调策略和稳定性OSPF是链路状态的内部网关协议主要用于AS内部强调快速收敛BGP如何防环的从邻居类型来看BGP 的防环机制分为 EBGP 和 IBGP 两种情况对于 EBGP主要通过 AS_PATH 属性防止环路每经过一个 AS就会将 AS 号加入 AS_PATH当路由返回时如果 AS_PATH 中包含本地 AS则丢弃该路由对于 IBGP通过水平分割机制防止环路即从 IBGP 学到的路由不会再通告给其他 IBGP 邻居在使用 Route Reflector 的情况下引入 ORIGINATOR_ID 和 CLUSTER_LIST 属性进一步防环BGP状态机BGP 状态机用于描述邻居关系建立过程一共有六个状态Idle、Connect、Active、OpenSent、OpenConfirm 和 Established。初始为 Idle 状态然后进入 Connect 状态尝试建立 TCP 连接如果失败进入 Active 状态重试TCP 建立成功后进入 OpenSent 状态交换 OPEN 报文随后进入 OpenConfirm 状态通过 KEEPALIVE 确认最终进入 Established 状态开始交换路由信息。其中 Established 是邻居建立成功的标志状态。BGP几种报文BGP 一共有四种报文类型OPEN、UPDATE、KEEPALIVE 和 NOTIFICATION。其中 OPEN 报文用于建立邻居关系并进行参数协商UPDATE 报文用于通告或撤销路由信息是 BGP 最核心的报文KEEPALIVE 报文用于维持邻居关系NOTIFICATION 报文用于在出现错误时通知对方并终止连接。BGP收敛慢的原因BGP收敛慢的原因在于其基于TCP、路径矢量机制以及复杂的策略选路过程同时其设计目标是稳定性而非快速收敛因此在路由变化时传播和计算都相对较慢1️⃣ 依赖TCPBGP运行在 TCP179端口建立邻居本身就有开销 相比OSPF直接跑IPBGP更重2️⃣ 选路机制复杂策略驱动不像OSPF用最短路径算法BGP需要比较多个属性常见顺序简化Local PreferenceAS_PATHOriginMEDeBGP优先于iBGP最终再比Router ID等 多因素决策 → 慢3️⃣ 不像OSPF那样全网泛洪LSAOSPF拓扑变化 → LSA泛洪 → 快速同步BGP路径逐步传播 → 收敛依赖更新传播 天然慢于链路状态协议4️⃣ 设计目标不同OSPF快速收敛内部网络BGP稳定优先互联网规模 宁可慢一点也要避免震荡实战PC A ping 不通 PC B当A ping不通B时我会按从下到上的顺序排查1. 物理层检查网线、接口状态up/down、指示灯是否正常2. 数据链路层查看MAC地址表、ARP表确认是否能解析到目标MAC3. 网络层检查IP地址、子网掩码、网关是否正确使用ping分段测试ping本地回环127.0.0.1ping本机IPping网关ping目标主机4. 路由问题如果跨网段检查路由表是否有到达目标网段的路由5. 策略与安全检查ACL、防火墙策略是否禁止ICMP或相关流量6. 抓包分析使用Wireshark查看数据包是否发送/返回定位问题位置PC1VLAN10 ping 不通 PC2VLAN20当VLAN10和VLAN20的主机无法通信时我会先检查各自的IP地址、子网掩码和默认网关是否正确配置然后检查交换机的VLAN划分是否正确端口是否被正确划入对应VLAN以及trunk链路是否允许相关VLAN通过如果涉及跨VLAN通信还需要确认是否存在三层设备进行路由例如三层交换机的SVI接口是否配置IP并开启路由功能或者是否有单臂路由配置同时也需要排查是否存在ACL或安全策略阻断通信Step 1检查二层是否通端口是否加入正确 VLANaccess/trunk 配置是否正确trunk 是否允许对应 VLAN 通过VLAN 是否在交换机上存在 如果二层不通三层肯定不通 Step 2检查主机配置IP 地址是否正确子网掩码是否一致默认网关是否配置正确 ❗重点不同 VLAN 通信必须依赖网关 Step 3检查三层设备核心如果是跨 VLAN 通信需要 三层交换机或路由器支持SVIVlan Interface或单臂路由Router-on-a-stick检查VLAN接口是否配置IP是否开启三层转发ip routing路由是否存在 Step 4排查策略/安全ACL 是否拦截防火墙策略是否禁止跨 VLAN 通信大面积访问外网变慢但不是完全断网网络访问变慢通常需要从出口带宽、设备性能、路由路径、策略控制以及DNS等多个层面逐步排查而不是单一因素导致Step 1先判断是“整体慢”还是“局部慢”所有人都慢 网络侧问题可能性大只有部分用户慢 可能是终端 / 路由 / 策略问题 Step 2检查出口设备很关键路由器 / 防火墙 CPU 是否过高会话数是否达到上限NAT表是否耗尽是否存在连接风暴 这些都会导致“能用但很慢” Step 3检查带宽你说的点在这里出口链路是否打满是否存在突发流量是否有大流量业务占用视频、下载等 可以用流量监控确认 Step 4检查路由与路径是否发生路由变化绕路BGP路径是否变差是否选到了不优路径 Step 5检查策略/安全设备ACL / 防火墙是否做了限速或检查QoS策略是否限制带宽IPS/IDS是否深度检测导致延迟 Step 6DNS问题容易被忽略域名解析慢 → 体感“上网慢”DNS服务器响应慢或不可用 Step 7应用层问题服务器响应慢CDN异常外部服务本身慢可以 ping 通对方IP但业务访问不通比如网页打不开你会怎么排查如果能够ping通目标IP但无法访问网页我会首先判断问题是否出在传输层或应用层首先检查目标端口是否可达例如通过telnet或curl测试80或443端口如果端口不通可能是服务未启动或被防火墙/ACL拦截如果端口正常再检查服务器端的Web服务是否正常运行同时需要排查DNS解析是否正确如果是通过域名访问需要确认是否解析到了正确的IP最后可以通过抓包工具分析TCP连接过程进一步定位问题会持续更新更多网络工程师相关知识。

更多文章