首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

高级工程师:OSPF的STUB区域

从理解上来看,Type-5类外部路由实际上和OSPF的区域没有任何关系,它忽略区域的界限,传播到OSPF的每一台路由器上。

从原理上来看,ABR必然存在所连接的每个区域的链路状态数据库。为了描述方便,我们假定ABR连接了区域和区域1。

很显然,RTB是ABR。RTA引入了N条外部路由,那么在RTB上,区域的LSDB中也会存在N条Type-5类LSA,作为ABR,RTB一定会把这些Type-5原封不动地扔到区域1的LSDB中,并同步给RTC,同时,生成Type-4传入区域1,告诉区域1可以通过RTB来访问这些外部路由。

这并没有任何问题,可是很多时候,如果这个区域1位于网络的边缘,ABR是否有必要把这些Type-5外部路由全部扔到区域1中呢?

我们思考一下,RTC上这些外部路由的下一跳是谁?

毫无疑问是RTB,因为RTB生成了Type-4扔进了区域1,所以RTC上这些外部路由的下一跳全部都是RTB。

当然,如果这些外部路由只有几十条,几百条,那都不是事儿,RTC查找几百条路由还是很easy的。

可是,如果这些外部路由有几千条、几万条呢?

我们知道,路由的查找是遍历(就是从头到尾看)整个路由表,然后在所有匹配到的路由条目中匹配掩码最长的,所以,路由表越大,查找越慢。

几千条、甚至几万条路由,够RTC喝一壶的,如果RTC只是一台中低端的路由器,它的CPU占用率会让你觉得它跟“死了”差不多!

怎么解决呢?很容易让人想到在RTB上,通过路由控制(如路由过滤、路由策略等)方法过滤掉这些外部路由,不让它们从区域进入到区域1。

想法挺好,可是行不通。

OSPF中有一个很特别的概念,几乎很少有书上提及,叫做“路由权限”。

简单来说,就是只有路由(不管是Type几)的始发者才能影响链路状态数据库LSDB,其他路由器没有权限增加或删除LSDB中的内容。

比如,区域间路由Type-3是由ABR生成的,那么,只有ABR可以对Type-3进行过滤、聚合等操作,来影响一个区域的LSDB中Type-3的内容,其他路由器没权限。

再比如,外部路由是ASBR引入的,那么只有ASBR可以对自己引入的这些外部路由进行过滤、聚合等操作,来影响所有OSPF路由器的LSDB中Type-5的内容,其他任何路由器都没有权限把这些外部路由从LSDB中删除。

这就麻烦了,不能在RTB上过滤这些外部路由。可是如果在RTA上过滤,那么区域中也没有了。

所以,OSPF引入了“特殊区域”的概念,来解决这个问题。

在上面的问题中,如果把区域1设置成stub区域,那就没有任何问题了!

Stub区域,也可以叫“末节区域”、“末梢区域”,是OSPF的一种特殊区域。除了骨干区域外,其他区域都可以设置成stub区域。

Stub区域的特点是,连接stub区域的ABR不会把Type-4和Type-5扔到stub区域中。

那在区域中,这些外部路由有没有受到影响呢?

并没有任何影响!

也就是说,上图中只要区域1是stub区域,那么相貌平平的RTB虽然只是ABR,并不是这些外部路由的始发者,却把这些外部路由阻挡在了区域1外面,RTC上不会有哪怕一条外部路由,这让RTC流下了感动的泪水!

感动了一会,RTC擦擦眼泪,咦?不对啊,虽然我没有这些外部路由了,那我也没法访问它们啊!

作为ABR的RTB微微一笑,好办,我给区域1扔一条缺省路由吧,你们用这条缺省路由来访问外部网络。

虽然是一条缺省路由,但也要穿上链路状态的外衣,免得别人说三道四,影响OSPF“链路状态”路由协议的名声。穿什么好呢?Type-3吧。

于是,ABR向stub区域扔了一条Type-3类缺省路由,stub区域中的路由器虽然没有任何一条外部路由,但也可以用这条缺省路由高高兴兴地访问了。

外部路由的问题虽然解决了,可是如果网络规模非常大,区域间的Type-3也会非常多。把区域1设置为stub区域后,RTC虽然没有了外部路由,但是Type-3路由一条也没有少。如果这些路由也有几千几万条,RTC又哭了,只能向ABR求救。

RTB又微微一笑,Type-3?都是我扔过去的,我有权限,小菜一碟,so easy。

可是RTB发现要过滤这些Type-3并不轻松,如果这些Type-3的路由前缀没有规律,很难聚合,那么要用很多很多前缀列表或者ACL来匹配它们。如果有几千甚至几万条没有规律的Type-3路由,RTB就傻了!

而且,这些Type-3路由的下一跳,也全部都是RTB。

怎么办,另一个特殊区域Totally Stub可以解决这个问题。

Totally Stub区域,也叫“完全末节区域”、“完全末稍区域”。如果ABR连接了一个Totally Stub区域,那么ABR不仅不会向Totally Stub区域扔Type-4及Type-5,连Type-3也不会扔进去。但为了让Totally Stub区域能访问其他区域和外部路由,ABR也会向Totally Stub区域扔一条穿着Type-3外衣的缺省路由!

这下,RTC可以彻底放心了,除了自己区域的路由和一条Type-3缺省路由外,啥也没有。

不过,OSPF对Stub区域和Totally Stub区域有个严格规定:区域内不准有ASBR!

这很好理解,本来这两个特殊区域里就不存在Type-5,被ABR过滤了,如果区域内有ASBR,必然引入了Type-5,这自相矛盾。

小Q:Totally Stub区域里有没有Type-3路由?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200825A04N2X00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券