草庐IT

OSPF的不规则区域

Xcgouge0972 2023-04-09 原文

目录

区域划分的要求:

1,使用VPN隧道使非法的ABR合法化

2,使用OSPF虚链路解决不规则区域问题

3,多进程双向重发布

LSA ---- 链路状态通告

LSA的头部内容:


区域划分的要求:

        1,区域之间必须存在ABR设备
        2,区域划分必须按照星型拓扑结构划分。
1,远离骨干的非骨干区域
2,不连续骨干

1,使用VPN隧道使非法的ABR合法化

在这个过程中,可以注意到一点,就是R4在创建虚拟专线后,可以直接通过拓扑信息学习到区域0的路由信息,同时也可以通过R2将区域0的路由信息发送给R4,而R4会无条件信任自己通过拓扑学来的路由信息,就算使开销值非常大。
使用VPN隧道解决不规则区域的缺点:
1,因为隧道的存在,可能出现选路不佳的情况,导致数据额外进行封装,浪费资源。
2,可能会出现重复更新的情况
3,因为虚拟链路的存在,AR4和AR2之间需要建立邻居关系,就导致 AR2和AR4之间的周期性数据都要穿过中间的区域1,导致中间区域的资源浪费。

2,使用OSPF虚链路解决不规则区域问题

[r4-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2 --- 虚链路的配置一定使双向的。
虚链路只能穿越一个区域 --- 虚链路永远属于区域0。
[r2]display ospf vlink --- 查看VLINK信息

使用虚链路解决不规则区域的缺点:
1,因为虚拟链路的存在,AR4和AR2之间需要建立邻居关系,就导致AR2和AR4之间的周期性数据都要穿过中间的区域1,导致中间区域的资源浪费。
2,只能穿越一个区域

3,多进程双向重发布

重发布需要运行在同时运行不同协议的边界路由器上,OSPF把这样的边界路由器称为ASBR --- 自治系统边界路由器(协议边界路由器)---只有执行了重发布动作之后的设备才能被称之为ASBR设备。
[r4-ospf-2]import-route ospf 1
导入的路由信息其标志为 --- O_ASE ---- 被认定为域外的路由信息 --- 这部分路由信息的可控性较差。

LSA ---- 链路状态通告

OSPF协议在不同网络环境下产生的携带不同信息的载体。
LSDB --- 链路状态数据库
SPF --- 最短路径优先算法
Type --- LSA的类型,在OSPFV2版本中,需要掌握的LSA类型一共有6种。
LinkState ID --- 链路状态标识符 --- 用来标记一条LSA信息,相当于是一条LSA信息的名字。
AdvRouter --- 通告路由器 --- 发出这条LSA信息的设备的RID。
链路状态类型,链路状态ID,通告路由器 ---- “LSA三元组” --- 通过着三个参数可以唯一的标识出一条LSA。

LSA的头部内容:

LSA的三元组
Age --- LSA的老化时间
        单位是s --- 当一条LSA信息被路由器产生时从0开始计时,整个LSA在网络种传递的全过程,计时不中断。当有新的LSA到达时,将会覆盖旧的LSA信息。一般情况下,LSA的老化时间应该小于1800S(因为OSPF每1800S会进行一次周期更新。)为了防止老化时间无限制的增长,我们设计了一个最大老化时间 --- MAX age --- 3600S ---- 当一条LSA的老化时间到达最大老化时间时,将被认定失效,将从本地的LSDB种删除掉。
        OSPF的周期更新是按照每条LSA的老化时间来进行计时的,当一条LSA的老化时间到达1800S时,将进行周期更新,重新发送这条LSA信息。当一台设备发出的LSA老化时间接近,但不相同时,则需要分别进行周期更新,导致资源浪费 --- 组步调计时器 --- 300S ---这是一种优化机制,当一条LSA信息的老化时间到达1800S后,将不直接进行周期更新,而是再等300S,到达2100S之后后,会一次性将所有老化时间在1800S - 2100S之间的LSA信息一起进行更新。
序列号
        32位二进制构成,由8位16进制来表示 --- 一台路由器,每发送同一条LSA信息,则将携带一个序列号,并且序列号依次加1。
序列号空间
1,直线型序列空间 --- 从最小值开始一直到最大值,依次加1,新旧关系容易判断,但是数量有限。若超出上限,则将无序号可用,导致新旧关系无法判断。
2,循环型序列空间 --- 序号可以循环使用,不会出现序号使用完的情况,但是若两个序号差值比较大的时候,可能会导致新旧关系无法判断。
3,棒棒糖型序列空间 --- OSPF使用的就是这种序列空间,但是,其进入循环部分后,依旧会面临循环型序列空间的问题,所以,OSPF要求其不能进行循环,相当于是一个直线型序列空间,其取值0X80000001 - 0X7FFFFFFE。
OSPF刷新序列号空间的方法:当一条LSA信息的序列号达到0x7FFFFFFE时,发出的路由器会将他的老化时间改为3600S,其他设备收到这条LSA信息后,会根据序号判断这是一条最新的LSA信
息,将改信息刷新到本地LSDB中。之后,因为这条LSA信息的老 化时间达到3600S,则将这条LSA信息删除掉。始发的路由器会再发送一条相同的LSA信息,其序列号使用0x80000001,其他设备收到后将会把最新的LSA信息刷新到LSDB中,则刷新了序列号空间。
chksum --- 确保数据完整性 --- 校验和也会参与LSA的新旧比较。当两条LSA三元组相同,并且序列号也相同时,则可以使用校验和比较,校验和大的认定为新。

Type - 1LSA --- 网络中所有设备都会发送,并且只发送一条一类LSA。一类LSA的LS ID取值等同于通告者的RID。
LINK --- 用来描述路由器接口连接情况的参数,一个接口可以使用多条Link来进行描述
Link type --- 这个类型主要和接口的网络类型有关,他会根 据接口的网络类型判断这个接口运行在一个什么样的网络当中。

Type-2LSA --- 在MA网络当中,仅依靠1类LSA可能会出现信息描述不完整的情况,所以,需要通过2类LSA对缺失的信息进行补充。 ---因为2类LSA提供的都是公共信息,所以,并不需要所有设备都发,在一个MA网络当中,只需要一台设备发送就可以了。
所有携带路由信息的LSA都需要通过1类和2类LSA进行验算 。 ---- 所谓验算就是指传递路由信息的通告者的位置信息需要通过1类,2类LSA信息计算出来。
Type-3LSA --- 传递的是域间路由信息,主要携带的是目标网段信息和开销值。目标网段信息通过LS ID来进行携带,里面也会包含其掩码信息。其中的开销值指的是通告者到达目标网段的开销值。
Type-5 LSA
Metric(cost) --- 5类LSA携带的通过重发布导入进来的域外的路由信息,因为不同网络对度量值的评判标准不同,所以,当域外路由导入到本网络当中,我们将放弃其原先的开销值,而赋予他一个定义值 --- seed-metric ---- 种子度量值。OSPF网络中默认的种子度量值为1。
[r4-ospf-1]import-route rip 1 cost 10 --- 在重发布时修改种子度量值
E Type --- 一个标记位,当标记位置0时,则代表使用类型1;当标记位置1时,则代表使用类型2 ---- 指的是开销值的类型 --- OSPF协议,默认使用类型2。
        类型1:如果开销值类型为类型1,则域内所有设备到达域外目标网段的开销值等于本地到达通告者的开销值加种子度量值。
[r4-ospf-1]import-route rip 1 type 1 --- 重发布时修改开销值类型
        类型2:如果开销值类型为类型2,则所有域内设备到达域外目标网段的开销值都等同于种子度量值。
Forwarding Address --- 转发地址 --- 一个重定向地址,类似于RIPV2中的下一跳字段,当出现选路不佳的情况,则将会把最佳选路信息携带在这个字段上,则将按照转发地址寻找下一跳,而不再按照算法寻找通告者。5类LSA中,在不存在选路不佳的情况下,将使用0.0.0.0来进行填充。
Tag --- 路由标记 --- 可以给5类LSA打标记,方便后面通过标记来抓取流量。
[r4-ospf-1]import-route rip 1 tag ?
INTEGER<0-4294967295> Tag value
Type - 4 LSA --- 辅助5类LSA完成验算过程,找到ASBR的位置。里面只携带一个开销值,指的是通告者到达ASBR的开销。

V --- 置1,则代表该路由器是VLINK的一个端点
E --- 置1,则代表该路由器是ASBR设备
B --- 置1,则代表该路由器是区域边界设备ABR。

有关OSPF的不规则区域的更多相关文章

  1. ruby-on-rails - 缺失区域;使用 :region option or export region name to ENV ['AWS_REGION' ] - 2

    我知道还有其他相同的问题,但他们没有解决我的问题。我不断收到错误:Aws::Errors::MissingRegionErrorinBooksController#create,缺少区域;使用:region选项或将区域名称导出到ENV['AWS_REGION']。但是,这是我的配置开发.rb:config.paperclip_defaults={storage::s3,s3_host_name:"s3-us-west-2.amazonaws.com",s3_credentials:{bucket:ENV['AWS_BUCKET'],access_key_id:ENV['AWS_ACCE

  2. ruby - Rubocop 规则 : Never use 'do' with multi-line 'while - 2

    我有以下代码#coloursarandomcellwithacorrectcolourdefcolour_random!whiletruedocol,row=rand(columns),rand(rows)cell=self[row,col]ifcell.empty?thencell.should_be_filled??cell.colour!(1):cell.colour!(0)breakendendend做什么并不重要,尽管它应该很明显。关键是Rubocop给了我一个警告Neveruse'do'withmulti-line'while为什么我不应该那样做?那我该怎么办呢?

  3. ruby-on-rails - 用 Solr 全文搜索不规则的说唱歌手名字 - 2

    我正在myrapwebsite上实现全文搜索功能,我遇到了一些关于说唱歌手和歌曲名称的问题。例如,某人可能想使用查询“camron”(省略中间单词撇号)来搜索说唱歌手“Cam'ron”。同样,有人可能会使用查询“3peat”来搜索歌曲“3Peat”。“TheNotoriousB.I.G.”有点奇怪:“TheNotoriousBIG”和“TheNotoriousB.I.G.”两者都有效(我猜是因为solr.StandardFilterFactory从首字母缩略词中删除了点?),但“TheNotoriousB.I.G”(即减去结尾的点)没有。理想情况下,这些名称的所有合理变体都应该有效。我

  4. ruby-on-rails - Rails 3 - 如何跳过验证规则? - 2

    我有这个验证规则的注册表单:validates:email,:presence=>{:message=>'cannotbeblank.'},:allow_blank=>true,:format=>{:with=>/\A[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]+\z/,:message=>'addressisnotvalid.Please,fixit.'},:uniqueness=>true此规则检查,如果用户填写注册表单电子邮件地址(+其正确格式)。现在我正尝试添加使用Twitter登录的机会。Twitter不提供用户的电子邮件地址。在这种情

  5. ruby - 使用适用于 Ruby 的 AWS 开发工具包发布到 SNS 主题时指定区域 - 2

    我正在使用适用于Ruby的AWS开发工具包向Rails3应用程序发布消息和AWSSNS主题,如下所示:sns=AWS::SNS.newtopic=sns.topics['arn:aws:sns:eu-west-1:55555555555:my_topic']topic.publish("MESSAGE",:subject=>"SUBJECT")当我发布到“us-east-1”中的主题时,它按预期工作,但发布到“eu-west-1”区域中的主题时不起作用:AWS::SNS::Errors::InvalidParameter-Invalidparameter:TopicArn:使用AWSS

  6. ruby - 方法调用中括号的使用规则是什么? - 2

    在调用方法时,我不能在以下情况中省略括号:t=[]t.push{}#=>[]#Iexpected[{}]t.push({})#=>[{}]我应该应用什么规则来避免这种情况? 最佳答案 当您将{}作为唯一参数传递时(因此调用中没有逗号),Ruby无法判断您的意思是空散列还是空block,因此您需要使用括号区分它:t.push(){}t.push({})在其他情况下,根据经验,如果您直接将方法调用用作参数,则需要括号,即methodarg0,arg1,other_method(arg01,arg02),arg2,arg3当您的方法调用变

  7. OSPF综合实验 - 2

    文章目录实验要求实验思路IP地址规划路由实验配置R1上配置R2上配置R3上配置R4上配置R5上配置R6上配置R7上配置R8上配置R9上配置R10上配置R11上配置R12上配置实验测试R10pingR4的环回R10pingR12的环回R10pingR1实验要求R4为ISP,其只能配置IP地址;R4与其他所有直连设备间均使用公有IP;R3-R5/6/7为MGRE环境,R3为中心站点;整个OSPF环境IP基于172.16.0.0/16划分;所有设备均可访问R4的环回;减少LSA的更新量,加快收敛,保障更新安全;全网可达实验思路IP地址规划公网IP随便配置,这里我R3-R4的网段为34.1.1.0/2

  8. 思科与华为设备OSPF配置命令对比 - 2

    思科与华为设备OSPF配置命令对比[Huawei]ospf1//启动OSPF进程,进入OSPF视图Cisco(config)#routerospf110[Huawei]ospf1router-id10.1.1.1//启动OSPF进程,进入OSPF视图,手动输入router-idCisco(config-router)#router-id1.1.1.1[Huawei-ospf-1]area0//创建并进入OSPF区域视图(骨干区域)[Huawei-ospf-1-area-0.0.0.0]network10.0.1.00.0.0.255//配置区域所包含的网段[Huawei-GigabitEthe

  9. ruby-on-rails - 在 Rails 3 中的区域设置更改后重定向到新域中的同一页面 - 2

    使用带有以下gem的Rails3.2.8的应用程序gem'friendly_id','~>4.0'gem'route_translator'在/config/initializers/i18n.rbTLD_LOCALES={"com"=>:en,"jobs"=>:en,"net"=>:en,"in"=>:en,"de"=>:de,"ch"=>:de,"at"=>:de,"br"=>:pt,"ar"=>:es,"cl"=>:es,"mx"=>:es}在/app/controllers/application_controller.rb中,使用前置过滤器为每个请求设置语言环境:before

  10. Ruby 和规则引擎 - 2

    我正在寻找一种让用户定义一组规则来过滤对象的简单方法。例如。让他们定义类似“如果预订日期100.00则通知我预订”或多或少:我想要一个带有自定义DSL的Ruby规则引擎。有图书馆提供吗?遇到Ruleby,但它还不支持自定义DSL。最好的方法是什么? 最佳答案 看看wongi-enginegem是一个基于Rete算法的新规则引擎,最近引起了相当多的关注。 关于Ruby和规则引擎,我们在StackOverflow上找到一个类似的问题: https://stacko

随机推荐