路由器与ospf协议的深入了解。

编程知识 更新时间:2023-05-02 04:36:08

什么是路由器?

具有路由,转发机制的网络设备。

什么是路由,什么是转发?

决定数据包从来源端到目的端所经过的路由路径 (host到host之间的佳传输路径),这个过程称为路由。

将路由器输⼊端的数据包移送至适当的路由器输出端(在路由器内部进行)这个过程称为转发。

路由器的基本工作原理

在网络层使用路由方式转发数据包,实现异种网络的互连。

路由器的发展阶段

第一代:固定接口,集中转发。

满足低速网络互联需求,集中式转发,处理能力是最大的瓶颈;接口种类少,固定配置。

第二代:集中转发,模块化接口。

满足低速网络互联需求;接口种类多,配置灵活,集中式转发,一次查表多次路由,直接在网卡层面处理数据包,网卡自带内存与cache,数据不经过cpu与内存,直接走系统总线。处理能力依然是最大瓶颈。

第三代:分布式软件转发。

分布式转发,处理能力较强,接口种类多,配置灵活,交换结构路由层面与转发层面分开。共享总线的容量直接限制了路由器的吞吐率,成为系统无法避免的瓶颈。

第四代:基于asic与交换矩阵

IP处理能力出现突破,端口丰富且容量大,实现了无阻塞交换,接口拥有cam芯片,不依赖于网卡。但对QOS,MPLS VPN,组播,IPV6的支持能力较弱。

第五代:全业务路由器

集成了众多功能的路由设备,具有高性能NP芯片,线速转发,拥有物理层处理链路层处理,合法性检查,表查找,流分类处理,QOS处理,入队列处理,切片处理等功能,实现了高速无阻塞交换,支持组播交换。

第六代:多级交换网结构路由器。

多级交换结构、严格意义上的无阻塞结构,由多个交换单元互连起来,多级结构在操作上较复杂,但是可以扩展到成百上千个端口,这对于下一代 Internet核心路由系统是绝对必要的。

NP与ASIC的比较

性能更高:内部集成数十个CPU及硬件协处理器,硬件加速器,在实现复杂的拥塞管理,队列调度等QOS功能前提下,仍能保持线速转发,实现“硬转发”;

扩展更灵活:预留的用户接口可编程,扩展灵活;业务支持能力强;对新的增值业务(MPLS,QOS,组播等)迅速支持;

管理灵活,开发方便,大大缩短了二次开发周期;预留IPv6接口,可通过软件平滑升级;

可靠性高:芯片转产前通过了严格的疲劳性测试,适合开发电信级设备。

控制路径:处理目的地址是本路由器的高层协议报文,特别是各种路由协议报文。不是路由器的关键路径,但是负责完成路由信息的交互,从而保证了数据路径上的报文沿着最优的路径转发。

数据路径:处理目的的地址不似乎本路由器而需要转发的报文,因此数据路径是整个路由器的关键路径,他直接影响路由器的整体性能。

控制报文给路由引擎,转发报文给转发引擎。

路由功能:用于转发表,包括IP地址/子网/下一跳

转发表:由源地址到目的地址和接口标记组成

转发芯片:asic芯片

新转发表:三元匹配:0 ,1, 不关心的其他。

Cam芯片:二元匹配芯片。一种ASIC芯片,分析转发表时一次性工作即可找到地址(快)

Tcam芯片:三元匹配芯片。表排列精确在上不精确在下。用于ip路由器和acl,qos(路由匹配,策略匹配,防火墙匹配,最长匹配原则)

输入端口处理:物理层接受数据包,识别信号脉冲转化为01代码,发送至数据链路层,网络层分组转发。

OSPF

SPF(short
path first d.j算法)

建立过程:路由器以自己为根构建最短路径树,第一步通过d.j算法在考虑路由器和传输网络之间的连接下,根据连接状态数据库子集形成树。第二步,考虑存根网络连接,作为叶子加入树。

OSPF的状态机:邻居间关系的各个阶段

Down: 一旦本地发出hello包进行下一状态

Init
初始化:接收到的hello包中若存在本地的RID,那么进入下一状态

2way双向通信:邻居关系建立的标志

条件匹配:

1、点到点网络直接进入下一状态

2、MA网络将进行DR/BR选举(40S),非DR/BDR间不能进入下一状态;

Exstart
预启动:使用类似hello
的DBD包来进行主从关系选举,RID数值大为主;优先进入下一状态。

Exchange
准交换:使用真实的DBD来共享数据库目录,需要ACK确认;

Loading加载: 使用LSR/LSU/LAack来获取未知的LSA信息;

Full转发:邻接关系建立的标志;

Lsa加载不完全时,会卡在loading状态。

卡在建邻状态的情况有:

1相同的route id

2认证

3区域id 不同

4区域标志不同

5优先级都为0时

6 mtu不一致

7 包交互问题

8 lsa加载不完整

9 hello时间不一致

10 ma网络类型会检测接口地址的掩码,不一致会出问题

11 abr出接口包不通

1类lsa的网络类型(构建拓扑)

Point to point 两台路由器经由两条有向线段直接相连,每个方向一条。

连接两个接口的网段被表示成Stub网段。

Transit 多路 一种ma网络 网段有能力转发既不是本网段产生的,也不以本网段做为目的地的数据。

有至少两台路由器的广播型网段或NBMA网段就是一种Transit网段。

Stub 网段表示该网段只有数据入口,例如一个Loopback接口就是一个Stub网段。

virtual link
路由器lsa由区域内所有路由器产生。

2,网络lsa由区域内的DR或BDR产生,网络lsa也仅仅在产生这条网络的lsa的区域内部进行宏泛。

3,网络汇总lsa由abr产生,可以通知本区域内的路由器通往区域外的路由信息。在一个区域外部但仍然在一个OSPF自治系统内部的缺省路由也可以通过这种LSA来通告。如果一台ABR路由器经过骨干区域从其他的ABR路由器收到多条网络汇总LSA,那么这台始发的ABR路由器将会选择这些LSA通告中代价最低的LSA,并且将这个LSA的最低代价通告给与它相连的非骨干区域。

4,ASBR汇总LSA 也是由ABR产生,但是它是一条主机路由,指向ASBR路由器地址的路由。

5,自治系统外部LSA 由ASBR产生,告诉相同自治区的路由器通往外部自治区的路径。  自治系统外部LSA是惟一不和具体的区域相关联的LSA通告,将在整个自治系统中进行泛洪。

6,组成员LSA 目前不支持组播OSPF (MOSPF协议)

7,NSSA外部LSA由ASBR产生,几乎和LSA 5通告是相同的,但NSSA外部LSA通告仅仅在始发这个NSSA外部LSA通告的非纯末梢区域内部进行宏泛。

在NSSA区域中,当有一个路由器是ASBR时,不得不产生LSA 5报文,但是NSSA中不能有LSA
5报文,所有ASBR产生LSA 7报文,发给本区域的路由器。

Type-3 LSA及Type-4 LSA的防环

OSPF要求所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转。

OSPF要求所有的非0区域必须与骨干区域直接相连,区域间(Inter-Area Route)路由需经由骨干区域中转。这个要求使得区域间的路由传递不能发生在两个非0的区域之间,这在很大程度上规避了区域间路由环路的发生,也使得OSPF的区域架构在逻辑上形成了一个类似星型的拓扑

ABR只能够将其所连接的区域的区域内部路由注入到Area0,但是可以将区域内部路由及区域间的路由注入到非0常规区域。ABR从非骨干区域收到的Type-3)LSA不能用于区域间路由的计算。

OSPF对ABR有着严苛的要求,区域间的路由传递的关键点在于ABR对Summary LSA的处理。

当一台ABR在非Area0的区域中收到Type-3
LSA时,虽然它会将其装载进LSDB,但是该路由器不会使用这些Type-3
LSA进行路由计算,当然它更不会将这些Type-3 LSA再注入回Area0中。

ABR不会将描述一个Area内部的路由信息的Type-3
LSA再注入回该区域中。

实际上,OSPF区域间路由的传递行为,很有点距离矢量路由协议的味道。以下图为例,在Area1中,R1及R2都会泛洪Type-1 LSA、Type-2 LSA,两台路由器都能够根据这些LSA计算区域内路由,而R2作为ABR还担负着另一个责任,就是向Area0通告区域间的路由,实际上它是向Area0中注入用于描述Area1内路由的Type-3 LSA,而这些Type-3 LSA是不会发回Area1的——是的,类似水平分割行为对吧?接下来R3利用这些Type-3 LSA计算出了区域间的路由,并且为Area2注入新的Type-3 LSA用于描述区域间的路由,而这些Type-3 LSA同样的不会被注入回Area0。

R2在向Area0通告Type-3 LSA,为每条区域间路由携带上Cost值,这个值就是它自己到达各个目标网段的Cost,而R3收到这些Type-3
LSA并计算路由时,路由的Cost就是在R2所通告的Cost值的基础上,加上R3自己到R2的Cost值,然后,R3向R4通告这些区域间的路由时也携带者自己到达目标网段的Cost,而R4到达目标网段的Cost则是在R3的通告值基础上累加自己到R3的Cost——典型的距离矢量行为。

Type-3 LSA还涉及了DN比特位,用于在MPLS VPN环境下的环路规避

DN位:PE生成Type3 、Type5与Type7
LSAs(cisco设备是按照RFC4577,只对Type3 LSA置位,华为type5也置位) 发布给CE 时,将标志位DN置位,其他类型LSA 的DN 值为0。PE 路由器的OSPF进程在进行SPF计算时,忽略DN 置位的Type3、Type5 和Type7
LSAs。

DN
bit的作用是为防止路由环路。当PE收到DN bit置位的LSA不会进行处理,这样就防止了在CE双归的场景下,由于一个PE从CE学到另一个PE产生的LSA而产生的环路。

域外防环

1)利用type-4 LSA防环

当一台OSPF路由器将外部路由引入OSPF域后,它就成为了一台ASBR,被引入的外部路由以Type-5 LSA在整个OSPF域内泛洪。一台路由器使用Type-5 LSA计算出路由的前提是两个,其一是要收到Type-5 LSA,其二是要知道产生这个Type-5 LSA的ASBR在哪里。与ASBR接入同一个区域的路由器能够根据该区域内泛洪的Type-1 LSA及Type-2 LSA计算出到达该ASBR的最短路径,从而计算出外部路由。而其他区域的路由器就没有这么幸运了,因为ASBR产生的Type-1 LSA只能在其所在的区域内泛洪,所以才需要Type-4 LSA。因此其他区域的路由器在获取Type-4 LSA后便能计算出到达ASBR的最短路径,进而利用该ASBR产生的Type-5 LSA计算出外部路由。Type-5 LSA将会被泛洪到整个OSPF域,表面上看,它本身并不具有什么防环的能力,但是实际上,它并不需要,因为它可以依赖Type-1 LSA及Type-4 LSA来实现防环。

2)type-5 LSA中 external route tag防环

五类LSA Route-tag与DN位置位都存在时(思科dn不置位),首先根据Route-tag值来判断是否引入该路由,如果Route-tag值中的AS号信息与引入的BGP的AS号一致,则拒绝引入该路由。

7类转5类时,如果有两个bdr,使用route id 大的bdr转

如果想做分点自动扩张,应选择ma或者点到多点网络

Mgre伪广播(广播映射)也可以

一般而言,最好的方案是点到多点,可以通过mgre改良可以克服分支与分支连接要经过stub的缺点

五类比三类多个FA地址(forward address)

FA的表示 全零或有地址0.0.0.0

有地址时覆盖原asbr,fa地址做下一跳

FA的接口必须是ma网络类型

Fa会引起路由表的递归查找,不是o,整个路由表会消失,(路由不加表现像)

Fa本质上是下一跳

Bma与点到点建邻也会发现路由不加表现像

Ospf的过滤操作

1 分发列表过滤,只能写in方向,还可以匹配route-map(ip route-source匹配的是rid)

2 域间过滤,过滤三类lsa路由,用来过滤特定的路由+not-advertise关键字

Ospf
stub router

所有经过它的lsa会赋予最大的metric 65535

瞬时黑洞属于一种特殊的路由黑洞,出现可能会自动消失(在一台路由器重启后,路由信息未收敛成功时,选择该路由器存在的一条链路进行数据转发时可能会出现瞬时黑洞)

Max-metric
router-lsa on-startup wait-for-bgp在设备重启的时候ospf会等待bgp收敛完成后取消最大mertic设置max,,,,lsa永远经过他的lsa会使最大的metric

Ospf的完美重启(用于路由 ,交换双引擎设备)

Graceful
restart

不清空fib表

更多推荐

路由器与ospf协议的深入了解。

本文发布于:2023-04-25 22:52:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/529d2c840af6adb12a4d80daeee7e1e8.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:路由器   协议   ospf

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 103861文章数
  • 26192阅读数
  • 0评论数