Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >关于环路,总结一下聪明的人类都是怎么解决的?

关于环路,总结一下聪明的人类都是怎么解决的?

作者头像
ICT系统集成阿祥
发布于 2024-12-03 08:04:34
发布于 2024-12-03 08:04:34
1350
举报
文章被收录于专栏:数通数通

人类的创造力与破坏力同样强大"。

网路互通,同样也衍生出纷繁复杂的路由协议和各种因特网服务,以及"网络安全"这个庞大的领域。

这也是为什么说当今所有的网络通讯流量中,80%的资源都被浪费,只有20%被用以有效数据的传输。

防环机制就是在这样一个大背景下产生的

环路出现在互联网的各个层面,不同环路的出现原因与解决方法也不同。

通常网络环路分为第二层环路和第三层环路,所有环路的形成都是由目的路径不明确导致混乱而造成的。

二层环路主要就是交换机广播流的恶性循环。

三层环路就复杂多了,通常由各种网络故障导致,也是本文研究的重点。

本文将三层环路分成三类:单链路环路、跨结点环路、区域/AS间环路。

交换层广播流与生成树

众所周知,交换网络是一个小型的本地接入网(LAN),所以二层交换机默认允许转发广播流(路由器则默认丢弃)。

除了广播流,交换机查询mac地址表无果时会将数据帧从除接收接口外的所有接口发送出去。

所以最初,当三个交换机两两相连时,一个数据帧会在其中无限循环。

生成树就是为了让交换网络中防环而出现的。

由于具体的生成树工作原理过于复杂需另成文,在此只做介绍不做详解。

生成树最原始的版本是802.1d,也就是STP(Spanning Tree Protocol),但这个版本的标准是所有VLAN共用一个生成树,所以也叫CST(Common Spanning Tree)思科在此基础上增强了一下,发布了PVST+(Per Vlan Spanning Tree)。

802.1d的下一个版本是802.1w,也就是RSTP(Rapid STP),但还是共用生成树,搞不懂IEEE不长点记性。于是思科又搞了一下,发布了PVRST+。

IEEE又基于思科的MISTP的方案,发布了802.1s(MSTP),这个就比较强了,但凡是大一点的交换网络都用MSTP,也是现在的主流。

RIP的5种防环机制

Rip作为一个古老的路由协议,虽然正逐渐被淘汰,还是有必要了解一番以理解路由协议的进化史。

先谈一个易理解的的程序员逻辑,即路由器接从F0接口收到的某个路由条目A不应该从F0反发出去(水平分割),但是距离矢量路由协议的路由更新要向外发送完整的路由表,因此从F0发出之前将A路由的度量值改为15,这样对方收到的A的度量值为16不可达(计数最大跳&毒性逆转)。

当路由器R1检测到某网段的网络故障(比如收到icmp报错),它将要做两件事。

第一,告诉其他路由器:"你们无法从我这里到达这个子网";

第二,寻找其他路径到达这个子网。

此时R1将抑制定时器,即在规定时间内不接收邻居发来的关于该子网的路由。试想若没有抑制定时器,这时邻居正好发送该子网的路由,而这条路径恰好经过R1,那么后果将不堪设想。

在抑制时间内R1在做什么呢?

当然是等待rip网络中所有路由器都收到这条16跳的路由后更正自己的路由表,因此需要触发更新,不必等时间到期再发路由表。

此外当某接口的度量值被改动了也会触发更新,防环原理相同。

可以看出rip的5个防环机制中,设置最大跳才是终极武器,它配合抑制定时器,不仅能解决"单链路环路",更能防止"跨结点环路"。

EIGRP与DUAL算法

视角:周围可视/局部视角。

Eigrp的进步之处在于多了两张表:邻居表与拓扑表。

邻居表的建立直接避免了单链路环路:当在收到的路由更新中看到下一跳是自己,那没得说了,这条更新定是来源于我的,拒收。

Eigrp的核心算法叫DUAL(弥散更新),其中有一条公式专门用来防止跨结点环路:当邻居通向一个网络的报告距离(RD)比本地路由器通向同一个目的网络的可行距离(FD)短时,即符合了可行性条件(FC),该路径被写进拓扑表。

但这样的算法可想而知也是有缺陷的,即很多高开销的可行备份路径也会被当做"环路"而拒绝收录。

有一个特例:手动汇总导致的环路。

其实汇总本身是有"缺陷"的,当路由器把汇总的主类网路由更新传给对端时就相当于让对端生成了一些关于那些"不存在"的子类网路由指向自己。

这样就不合理了,如果该路由器有一个默认路由指向对端的话,环路就形成了,一个以不存在的子网ip为目的地址的恶意数据包就会在两个路由器之间无限循环,直到跳数寿命终结。

解决方法(默认开启)是利用null0接口。

本地生成的汇总路由指向这个逻辑空接口,这里要提一下路由查询的先后顺序:收到数据包先查看普通的单播路由条目,再查看本地汇总路由条目,最后才看默认路由。如图,这样就可以识别出那些数据包是恶意数据包,并且从null0口丢弃。

Link state路由协议与SPF算法

视角:全局(整个区域)视角/上帝视角。

除了拥有邻居表,Ospf有一张很强悍的表,叫LSDB(链路状态数据库)(同is-is)。

在每个ospf区域中,通过互发lsa(跨网段传输的链路通告),每个路由器都能够获悉所在的整个区域的拓扑和链路状态。

这样一来在区域内选路就可以从全局的视角锁定最佳路径,并且百分百无环路,无论是单链路环路还是跨结点环路都可避免,这是链路状态路由协议的创新之处。

OSPF区域间路由环路的避免又是通过哪种方式实现的?

答案是:分层结构的拓扑实现。

Ospf规定所有常规区域都要链接到骨干层,即使物理上与骨干层分隔,也要有条逻辑链路(虚链路)连接到骨干区域。这种树形结构从根本上就摒弃了环路。

因此ospf也是天然无环的。

与ospf相似的IS-IS,则不要求L1层必须连接到L2层,因而有两个独特的防环机制:第一,非L2区域的通信都要通告L2区域转发;第二,L2区域路由默认不会进入L1(除了路由泄露)。

因而实现了防环。

BGP的高层防环机制

谈到Bgp就要有关AS自治系统,bgp的防环主要分为AS内防环与AS间防环(可以类比ospf的区域内和区域间)。

AS间:路由更新的as-path字段包含所经过的所有AS号,当bgp路由器看到路由更新中有自己的AS号就会果断放弃这条更新(但在特殊情况下可以用命令取消这个特性)。

这就是距离向量与距离矢量之间的区别:距离矢量路由协议(如rip)只记录到达目的地经过多少步,而距离向量路由器则记录了途中经过的路径。

看来学好思科还得咬文嚼字啊。

Ibgp的水平分割原则是:从IBGP邻居所收到的路由信息,不会传递给其它的IBGP邻居,但可以传递给EBGP邻居。

注意这和rip的水平分割不大一样。

水平分割是为了防止3个及以上的ibgp peer围绕成环,造成自治系统内部的跨结点环路。

除了网络故障带来的路由环路,网络的不合理规划也会造成环路。

比如在BGP中如果让ibgp间的中转路径路由器处于另一个AS内的话就会造成环路。

当然这只是其中一个例子,意在说明人为的环路是很难避免的,但思科想的还真周到,提供了next-hop-unchange这条命令来处理上面那个环路。

注意,通常使用路由反射器(RR)来解决水平分割带来的路由不学习的问题,但有趣之处在于,水平分割用来防环,路由反射器用来防水平分割,因而反射器又产生了环。后来RR经过改进,增加了一个特性叫插入簇ID与起源ID。默认情况下RR会在路由更新中加入自己的router-id以及路由更新的起源路由器的router-id,这也是一种路径向量的机制。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ICT系统集成阿祥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于网络的一次推演(续)
本文用一个连续的思路对网络做了推演,为上一篇文章的延续。旨在最终解构复杂网络架构。包含:RIP、OSPF、EIGRP、BGP和常用的数据中心网络架构等。上一篇文章详见《关于网络的一次推演》
晴日飞鸢
2022/03/17
1.6K1
四种动态路由比较:RIP、OSPF、ISIS、BGP
RIP(Routing Information Protocol,路由信息协议)是使用最久的协议之一。RIP是一种分布式的基于距离向量的路由选择协议,RIP协议是施乐公司20世纪80年代推出的,主要适用于小规模的网络环境。RIP协议主要用于一个AS(自治系统)内的路由信息的传递,每30s发送一次路由信息更新。
网络技术联盟站
2021/11/05
4.1K0
吃透BGP,永远绕不开这些基础概述,看完再也不怕BGP了!
一是这玩意儿本来就很复杂,需要处理大量的路由信息和复杂的算法;再一个是需要你有一定的实战经验才能深入理解运作。
网络工程师笔记
2023/11/13
4.9K0
吃透BGP,永远绕不开这些基础概述,看完再也不怕BGP了!
弄它!!!小小BGP!理论加实验分分钟拿下!带你体验大网的世界!
• 理解IGP与EGP的区别及工作场景。 • 理解BGP基本概念(AS的概念、协议特征、报文类型、状态机、对等体类型、同步规则、路由黑洞问 题、IBGP水平分割规则、BGP的各种表项等)。 • 理解BGP的基础工作机制。 • 掌握BGP的基础配置
不吃小白菜
2020/09/03
2.4K0
弄它!!!小小BGP!理论加实验分分钟拿下!带你体验大网的世界!
BGP基础知识
今天海翎光电的小编主要介绍一下BGP的相关基础知识,文章浅显易懂,适合对BGP完全没有了解的同学。
利又德智能感知
2023/02/03
1.9K0
BGP基础知识
硬核干货:6000字 30张图,带你彻底搞懂BGP动态路由!
之前基本上已经将路由协议讲完,每篇文章可以说是呕心创作,也得到了大家的支持,现在还剩最后一个动态路由协议:BGP。
网络技术联盟站
2022/06/19
1.9K0
硬核干货:6000字 30张图,带你彻底搞懂BGP动态路由!
路由协议
那个口也不绑定,它所提供的对应关系是 IP 地址和MAC地址的对应关系。如果硬是要说他是哪个口,比如PC 上的网卡,那他就是绑定在这个口上。当然,如果有多网卡,那么ARP 缓存也是分开的
见贤思齊
2020/10/28
8480
路由协议
基于华为ENSP的OSPF-开放式最短路径优先协议保姆级别详解(1)
盛透侧视攻城狮
2025/01/20
1600
基于华为ENSP的OSPF-开放式最短路径优先协议保姆级别详解(1)
干货 | 思科网络工程师的网络排错笔记 —— 收藏必备!
一般网络包括路由、拨号、交换、视频、WAN(ISDN、帧中继、ATM、…)、LAN、VLAN、…
网络技术联盟站
2019/09/17
3.6K0
动态路由协议之RIP协议,最古老的距离矢量协议!
RIP 英文全称:Routing Information Protocol,中文术语:**路由信息协议**,是一种**距离矢量**路由协议,用**跳数**作为路由度量。
网络技术联盟站
2022/06/02
1.9K0
动态路由协议之RIP协议,最古老的距离矢量协议!
OSPF BGP
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议::AS内部路由(本质区别),采用链路状态路由选路技术 开放式最短路径优先协议是一种为IP网络开发的内部网关路由选择协议其由三个子协议组成hello协议,交换协议,扩散协议,其中hello协议负责检查链路是否可用并完成指定路由
用户5760343
2022/05/19
1.5K0
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
H3CNE我是太熟悉了,大学时候考H3CTE证书,H3CNE属于基础部分,那本《构建中小型企业网络》书籍不知道被我翻了多少遍,左一遍又一遍,看到最后,随便提到哪个技术点,我能一下子翻到,笔记也是做的密密麻麻。
网络技术联盟站
2023/03/01
2.9K0
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
OSPF、EIGRP、RIPv2、IS-IS、BGP动态路由大家庭,网工收藏!
路由协议的目的是实现端点之间端到端的网络层连接,每个会话的端点之间总是有一个前向和反向路径选择。
网络技术联盟站
2023/03/01
1.3K0
OSPF、EIGRP、RIPv2、IS-IS、BGP动态路由大家庭,网工收藏!
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
H3CNE我是太熟悉了,大学时候考H3CTE证书,H3CNE属于基础部分,那本《构建中小型企业网络》书籍不知道被我翻了多少遍,左一遍又一遍,看到最后,随便提到哪个技术点,我能一下子翻到,笔记也是做的密密麻麻。
网络技术联盟站
2023/02/07
2.4K0
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
网络层控制平面
**路由: 按照某种指标(传输延迟,所经过的站点数目等)找到一条 从源节点到目标节点的较好路径 **
用户11097514
2024/05/31
2020
网络层控制平面
RIP协议原理,请认真看完!
②动态路由 动态路由协议通过路由信息的交换生成并维护转发引擎所需的路由表。当网络拓扑结构改变时动态路由协议可以自动更新路由表,并负责决定数据传输最佳路径。
网络技术联盟站
2020/02/17
8K0
28张图硬是将H3CNE知识点总结成全网第一技术锦囊,附整个H3CNE完整思维导图下载
H3CNE我是太熟悉了,大学时候考H3CTE证书,H3CNE属于基础部分,那本《构建中小型企业网络》书籍不知道被我翻了多少遍,左一遍又一遍,看到最后,随便提到哪个技术点,我能一下子翻到,笔记也是做的密密麻麻。
网络技术联盟站
2023/03/13
1.6K0
28张图硬是将H3CNE知识点总结成全网第一技术锦囊,附整个H3CNE完整思维导图下载
路由知识 静态路由 rip eigrp ospf
第1章 路由选择原理 1.1 几个概念 1.1.1 被动路由协议 用来在路由之间传递用户信息 1.1.2 主动路由协议 用于维护路由器的路由表 R2#show ip route Codes: C -
惨绿少年
2017/12/27
1.9K0
边界网关协议 (Border Gateway Protocol) 学习
边界网关协议 (Border Gateway Protocol) 简称BGP,简单说就是用于网络域边界的路由协议。 BGP主要用于不同自治网络间的路由通信,比如公司机房和多个运营商的边界网络。 不同的公司内网会用各种不同的由协议,但用于网络边界的路由协议只有BGP。公网网络条目众多,内部网关协议(IGP)无法承载,而BGP可以轻松应对。 BGP既不是纯粹的矢量距离协议,也不是纯粹的链路状态协议,通常被称为通路向量路由协议。
sean.liu
2022/11/28
5940
边界网关协议 (Border Gateway Protocol) 学习
【重识云原生】第四章云网络4.3.7.4节——BGP协议高级特性
        为保证 IBGP 对等体之间的连通性,需要在 IBGP 对等体之间建立全连接关系。假设在一个 AS 内部有 n 台设备,那么建立的 IBGP 连接数就为 n(n-1)/2。当设备数目很多时,设备配置将十分复杂,而且配置后网络资源和 CPU 资源的消耗都很大。在 IBGP 对等体间使用路由反射器可以解决以上问题。
江中散人_Jun
2022/06/12
9930
【重识云原生】第四章云网络4.3.7.4节——BGP协议高级特性
推荐阅读
相关推荐
关于网络的一次推演(续)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档