路由协议的后宫宠妃 - IS-IS大揭秘

谁说世界杯期间就不update知识了?

当你点开这篇文章,我不得不说,你前途无量。

为什么,世界杯期间谁还去学习精进那?

你果然器宇不凡。

既然进来了,就读一下吧,读完顺便点个赞,在关注我一下,那就更好了~

好了,废话不说,上菜。

故事背景

OSPF路由协议,相信你配置的熟练,听得耳烂,看的厌烦。

毫无疑问,OSPF在业界是出了名的成功,无论是同一个厂家的设备,还是异厂家对接,OSPF都是一个非常不错的选择。

稳定的输出,简单的配置,丰富的功能。

可是,还有一个OSPF的孪生姐妹,功能与OSPF类似,而且输出极其稳定,它就是今天我们要说的主角:IS-IS,这位路由界的深宫妃子。

之所以想起聊聊这位后宫美人,是因为大家对她都比较陌生,只闻其名,不见其人。刚好在我的《老司机网络运维干货集锦 》专栏里面,有朋友问道IS-IS协议的诸多细节,我觉得有必要通过一个简单易懂的文章,同大家聊聊IS-IS的特点。

如何聊?

逐个盘点知识细节?这不是我的风格,我们就追求简单易懂,上手即用。

所以最好的方法,就是通过一个熟悉的东西作为参照对象,从而让你能够快速上手。

这个对象,不用说,非OSPF莫属。

IS-IS协议简介

IS-IS全名并不是中东某某集团、让你出国玩的时候很不爽的那一帮人。他们的名字中间少了一个横杠(-)。

此处说的IS-IS,名为中间系统-中间系统。

英文名:Intermediate System to Intermediate System?(IS-IS)

名字很奇怪,之所以叫做“中间系统”,则是ISO这帮人对于网络设备的一个称呼,因为网络设备是介于终端之间。所以称之为中间设备,这就好像写什么文书,本来大白话可以说清的,非得一副文绉绉的样子。

而终端,例如服务器,主机等,则称作终端系统“End System”。

选手介绍完毕。

总览

下图为OSPF 和IS-IS的各项区别和相似之处:

由于篇幅有限,也不想把文章当做说教之处,本文仅仅从里面挑出几个比较有意思的点和你一起分享。

还是那句话,掌握思路比学到具体的知识更重要。

而且说到知识储备,有谁拼得过百度和google呢?能搜就行了。

接下来,开始进入PK环节:

底层协议PK

OSPF:

OSPF是基于IP的路由协议,利用IPv4包头承载OSPF的数据包。如下图所示:

IS-IS:

IS-IS就不一样了,IS-IS是基于ISO的OSI协议模型的。

不知道大家是否还记得常说的OSI 7层协议模型,什么物理层,数据链路层,网络层等等。

其实这就是OSI 7层模型,而这7层模型中,还存在很多各种各样的协议,见过的没见过的。

如下图所示:

你可能很奇怪,比如网络层,协议不应该是IP么?传输层不应该有TCP,UDP么?怎么都看不到了。

其实TCP也好,IP也罢,都是基于TCP/IP协议模型,而非传统的OSI模型。

只是随着时间的推移,人们喜欢OSI的模型来描述网络层级,因为它更精确。

但是同时用现今流行的网络协议来对应到OSI层级上,所以就出现了,网络层IP,传输层TCP、UDP等协议的说法。

回到正题,你会发现,IS-IS就在上图中Network网络层的层级里面。

刚开始IPv4还没占领全宇宙的时候,OSI的这些古怪协议都还有人用,自然而然,就需要一个路由协议来学习各个奇葩协议的网段,IS-IS就应运而生了。

相比OSPF使用IP地址来互相建立邻居,IS-IS也需要一个OSI界的地址族,这就是NET(Network Entity Title:网络实体名称)。

一个典型的IS-IS NET的地址结构是这样的:

最左边的49.0001是区域号码,中间的192xxxx8001是系统号,右边的NSEL号码配置为00,代表路IS-IS路由器自身的地址。

NET地址小窍门:

有没有发现上面的1922.5112.8001很熟悉。

其实他是这样的:192.251.128.001。这不就是一个 传统的IPv4地址么。

完全正确。

由于IS-IS的NET地址一台路由器只需要配置一个,通常都配置在lo0接口上。

所以最方便的就是把Lo0的IPv4地址转换一下变为NET地址。

例如192.168.1.1 可以转换为:49.0001.1920.1680.1000.1000.00

最后,让我们一起看看IS-IS的数据包结构:

区域划分

多区域的OSPF

OSPF为了获取网络部署的灵活性,和各项路由功能,特定把整个OSPF域做了如下划分:

  1. Area 0 骨干区域,骨干区域用于连接其他OSPF区域。
  2. Area xxx 非骨干区域,连接到骨干区域。非骨干区域可以实现各种功能,以及在非骨干和骨干区域之间实施路由策略。

一般情况下,OSPF的多区域网络划分是这样的:

上述拓扑相信大家已经司空见惯。

但是请再次注意一点,那就是两个区域之间的连接,是通过一台路由器相连,此路由器我们称之为ABR。

换句话来说,一台路由器跨越了两个区域。

同时,OSPF可以有很多区域,你可以基于你的需求来定义区域的数量。

回过头来看看IS-IS。

双区域的IS-IS

传统模式

IS-IS也有区域的概念,但是相对于OSPF,它的区域则是简单的多。

IS-IS仅仅存在两个区域层级:

Level 2:骨干区域,类似于OSPF的Area 0。

Level 1:非骨干区域,类似于OSPF的非Area 0的区域。

两者之间的关系,如下图所示:

上述拓扑中,level 2作为主干,左右两侧作为分支。

但是请注意,左右两边没有Area号码这一说,都是同属于Level 1。

同时,OSPF的ABR部分,则称作L1/L2路由器,即把L1和L2互联起来的路由器。

众人大呼上当,这不是和OSPF一模一样么,换汤不换药,就是把Area改为Level而已,ABR换一个名字?

真是如此吗?

独立模式

让我们在看另外一个拓扑:

上图有两台路由器,他们建立了IS-IS邻居关系,而且同时在Level1和Level2层级上建立邻居关系。

这就神奇了,你见过哪一个OSPF路由器可以同时把Area 0和Area 1重叠起来建立么?

OSPF不可以,但是IS-IS可以。

IS-IS的Level 1和Level 2的邻居状态数据库等一切信息都是互相独立的,两者之间不产生交集,也不共享路由信息。

除非像上述传统模式拓扑内,存在一个L1/L2路由器,同时把两边衔接起来,此时L1和L2才存在互相通告路由的可能性。

IS-IS有趣的网络结构就此结束了么?

肯定不会,下一个。

多域模式

在看图之前,先问个问题,你见过OSPF存在不同的域么?

没有吧,OSPF没有类似于EIGRP或者BGP那样,存在一个自治系统号。

所以你不会看到下面这样的OSPF拓扑图:

但是,IS-IS却可以。

回到本文上半部分讲述IS-IS NET地址时,存在一个Area id区域号码。上述的例子是49.0001。

换句话说,IS-IS就可以存在多个域。

而域和域之间肯定存在互联关系,自然而然就引入下面的拓扑:

上述拓扑中,存在三个IS-IS域。

他们之间必须通过L2骨干链路互联,而且互联的方式是两两互联,两两之间分别处于不同的域内。

这个再次和OSPF区别开来,OSPF的Area之间通过一台ABR互联。

DR/BDR vs DIS

既然说到域,就顺带提提DR、BDR 指定路由器,备份指定路由器。。

DR和BDR是在OSPF广播型链路中,为了减少大量路由器两两之间交换的链路状态信息,遂选举出一个“村官”来管大家,所有同一个LAN里面的OSPF路由器都要和村长DR联系,同时还有一个副村长BDR,免得村长挂了。

那IS-IS里面是否也有类似的设计呢?

答案是有的。

IS-IS里面不叫DR,BDR。而是叫做DIS:Designated Intermediate System。

DIS是何须人也?其实非常容易理解:OSI模型里面Router路由器 = Intermediate System中间系统。

两边同时加上一个Designate指定一词,得到DR=DIS。

这就好理解了吧。

但是注意,IS-IS内没有BDR,即BDIS一说,IS-IS不喜欢副村长。

协议特性:LSA vs TLV

LSA:OSPF的生命源泉

相信大家都知道OSPF都有哪一些常见的LSA类型,而每一个LSA都代表什么意思。

例如一类LSA,二类LSA,3类,5类。7类等。

这些LSA汇总在一起,定义了OSPF的各种功能特性

毫不夸张的说,LSA赋予了OSPF蓬勃的生命力。

同时,正因为有了LSA,随着时代的发展,当OSPF需要更多的功能时。

就可以通过开发新的LSA类型来满足其功能上的需求,例如LSA9-11,负载MPLS相关的功能等。

同样的,IS-IS也得有它的一套绝活,否则怎么能在江湖上立足呢?

TLV:IS-IS的立命之本

TLV,全称:Type,Length,Value,翻译过来就是类型,长度,值。

它作为一个典型的编码,被极其广泛的应用在IS-IS协议内部。

通过定义不同的TLV,IS-IS也获得了不同的功能。

常见的TLV如下所示:

Juniper 路由器 IS-IS输出结果下的TLV对应图:

IPv6怎么搞定?

OSPF和IS-IS相安无事很多年,大家各司其职。

OSPF风靡全世界的企业网,而IS-IS则稳坐运营商骨干网IGP协议的鳌头。

可是,突然有一天,一个不速之客来了。

那就是IPv6。

就在大家都嚷嚷说要上IPv6的时候,两个协议也需要继续跟进。

OSPF 的困兽之斗

先说说OSPF。

刚才说过,OSPF若需要新的协议特性和功能,就通过开发LSA类型来解决。

可是这次这方法不灵光了。

为什么?

因为OSPF的根是在IPv4上,邻居关系,hello包的组播地址,一切的一切都是以IPv4为基础。

所以OSPF若要新增IPv6的功能,不是简简单单一个LSA就能搞定的问题了。

所有一切都得推倒重来。

于是乎,无奈之下-OSPFv3诞生了。

OSPFv3同时兼容了IPv4和IPv6,虽然很好。

但是它意味着你需要单独在跑一个路由协议,OSPF和OSPFv3是两个独立的协议。

我知道,很疼。

IS-IS第二春

IS-IS,就很有意思了。

当IS-IS看到OSPF这般难受时,不禁大笑。

为何?

因为IS-IS特殊的身世。

还记得,IS-IS可是诞生于ISO的OSI模型之下,它和后来的IP一点瓜葛都没有。

所以,这是IS-IS的根:OSI网络模型。

后来1990年,IS-IS通过新增一个TLV的方式,把IPv4加进来了。

对他来说,新增IPv4就是一个TLV而已。

同理,新增IPv6也就是另外一个TLV而已。

就因为这样,当你运行IS-IS的时候,你不需要开启任何特殊功能,IS-IS同时兼容IPv4和IPv6。

运营商的同学们也没有任何心理负担,只需要配置IPv6地址在接口上,马上就有了一张原生的IPv6网。

怎么一个爽字了得。

这就印证了一句话:风水轮流转,今年到我家

想当年OSPF就因为选择了IPv4作为其基础,从此走向了康庄大道。

可是,有时候你觉得,某些东西是你的绝对优势的时候。

某一天,峰回路转,它反而让你寸步难行。

路由协议都是这样。

何况人生呢?

结束语

经过一番胡侃瞎聊,相信你就算从来没碰过IS-IS这个协议,现在也有一个大致的了解了。

我也没打算花大篇幅一个个的给你讲IS-IS的诸多细节,内容繁多不说,你看了看可能就半路撤退了,内容没有获取到,反而浪费你宝贵的时间。

授人以鱼不如授人以渔~

好了,轮到你给小伙伴们吹嘘了。。。

广告时间 - 老司机网络运维干货集锦

推广专栏啦,我在51cto搞了一个网络运维的专栏。

感兴趣的朋友们不要错过哈。

此专栏通过“网络路由篇”,“网络交换篇”,“网络安全篇”,“QoS篇”四大典型技术模块,分别给各位讲述运维中的网络设计思路和一些运维的技术难题。

知识不多-全是干货。

要不,来一份?

传送门如下:
老司机网络运维干货集锦

原文地址:http://blog.51cto.com/gingerbeer/2130706

时间: 2024-10-09 22:15:03

路由协议的后宫宠妃 - IS-IS大揭秘的相关文章

一部电视剧《双世宠妃》

昨天看了一天的电视剧,细细想来这部电视剧让我产生了很多遐想.起初,我未先看剧而迷上了这剧的主题曲<九张机>. 我对这首歌的名字十分好奇,便去搜了搜,没想到居然还是一个典故.接下来让我先回味一下这个典故: <九张机>是宋词词牌名,最早见<乐府雅词>中录取的宋代无名氏的词.其词为联章体,共有两组:一组为九首(由九部分组成).一组为十一首(由十一首组成).<九张机>在乐府中原来被称做<醉留客>,主要通过掷梭来描写闺中幽怨凄婉的思绪.丝丝含情,缕缕凝怨.

NOIP模拟赛 czy的后宫6

czy的后宫6 题目描述 众所周知的是丧尸czy有很多妹子(虽然很多但是质量不容乐观QAQ),今天czy把n个妹子排成一行来检阅.但是czy的妹子的质量实在……所以czy看不下去了.检阅了第i个妹子会增加czy a[i]的肾虚值,他打算在检阅过程中最多休息m次(一开始检阅算0次休息,就是说czy最多可以检阅m+1次),每次休息过后czy又会龙精虎猛的继续检阅.问怎样分配才能使得czy在检阅过程中的最大肾虚值最小. 当然这么简单的问题czy早就会做啦……他原来还想算算满足肾虚值最小的条件下有几种方

CodeVS4416 FFF 团卧底的后宫

题目描述 Description 你在某日收到了 FFF 团卧底的求助,在他某日旅游回来,他的后宫们出现了一些不可调和的矛盾,如果 FFF 团卧底把自己的宝贝分给 a 号妹子,那么 b 号妹子至少要在站在 a 号妹子的右边距离 d,妹子才愿意得到那个宝贝.可是后宫里也有玩得好的妹子呀,她们总是渴望亲近一点,如果把自己的宝贝分给 a 号妹子,那么与她亲近的妹子与 a 号妹子的距离不会超过 l.现在总共有 n 个妹子,k 个这样的矛盾关系,m 个亲近关系.假设他的宝贝是无限的,保证每一个妹子都有宝贝

即可观看的法国看来很快的供电局开关即可看到后宫

www.jiaoyou8.com/friends_diary/%d0%c4%c1%e9%d6%ae%b8%e8/0_0_0/view_0010836452_no_0_0.html www.jiaoyou8.com/friends_diary/%d0%c4%c1%e9%d6%ae%b8%e8/0_0_0/view_0010836467_no_0_0.html www.jiaoyou8.com/friends_diary/%d0%c4%c1%e9%d6%ae%b8%e8/0_0_0/view_001

czy的后宫——矩阵快速幂优化DP

题意 有 n 个位置排成一行,可以放 m 种妹子.每个位置可以放也可以不放,规定某些妹子不能相邻,求方案数. 分析 #include<bits/stdc++.h> using namespace std; typedef long long ll; ll qmul(ll x,ll y,ll p){ //快速乘 x%=p; y%=p; ll ans=0; while(y){ if(y&1){ ans+=x; if(ans>=p) ans-=p; //这样写不能有负数 } x<

苹果搜索广告后台大揭秘,最全最细致详解,手把手设置教程「后附官方视频」-b

WWDC2016 搜索广告分会视频和 PPT 发布了,ASO100 带开发者第一时间了解 Search Ads 后台设置(文末有原声视频). 首先介绍一下搜索广告的模式和竞价规则 广告模式为 CPT(Cost Per Tap,按点击收费),类似于国内的 CPC 广告模式.广告的展示受两个因素的影响:相关性与出价. 如下图,所有相关性低的广告都不被展示(无论出价高低),相关性相差不多时,展示出价高的广告. 苹果根据两方面来判断相关性,一是 App 文本的元数据(来源于描述等位置),二是用户点击广告

?快速删除大文件的前几行或后几行及快速获取大文件的n到m行数据

快速删除大文件的前几行或后几行 http://stackoverflow.com/questions/17330188/remove-first-n-lines-of-a-file-in-place-in-unix-command-line 快速获取大文件的n到m行数据 http://unix.stackexchange.com/questions/47407/cat-line-x-to-line-y-on-a-huge-file

opencv2实现多张图片路线路牌(直线和圆)检测并将处理后的图片合成视频_计算机视觉大作业2

linefinder.h #if !defined LINEF #define LINEF #include<cmath> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #define PI 3.1415926 using namespace cv; using namespace std; class LineFinder { private: // original i

Win10 通过升级安装完成后出现了中文字体忽大忽小的问题解决。

  解决方法:   下载Win10的中文语言包.