OSPF技术基础知识详解.docx
- 文档编号:29929375
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:18
- 大小:101.79KB
OSPF技术基础知识详解.docx
《OSPF技术基础知识详解.docx》由会员分享,可在线阅读,更多相关《OSPF技术基础知识详解.docx(18页珍藏版)》请在冰豆网上搜索。
OSPF技术基础知识详解
OSPF技术基础知识详解
一.1OSPF协议简介和特点
OSPF是OpenShortestPathFirst(即“开放最短路由优先协议”)的缩写。
它是IETF(InternetEngineeringTaskForce)组织开发的一个基于链路状态的自治系统内部路由协议(IGP),用于在单一自治系统(Autonomoussystem,AS)内决策路由。
在IP网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。
当前OSPF协议使用的是第二版,最新的RFC是2328。
为了弥补距离矢量协议的局限性和缺点从而发展出链路状态协议,OSPF链路状态协议有以下优点:
●适应范围——OSPF支持各种规模的网络,最多可支持几百台路由器。
●最佳路径——OSPF是基于带宽来选择路径
●快速收敛——如果网络的拓扑结构发生变化,OSPF立即发送更新报文,使这一变化在自治系统中同步。
●无自环——由于OSPF通过收集到的链路状态用最短路径树算法计算路由,故从算法本身保证了不会生成自环路由。
●子网掩码——由于OSPF在描述路由时携带网段的掩码信息,所以OSPF协议不受自然掩码的限制,对VLSM和CIDR提供很好的支持。
●区域划分——OSPF协议允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用网络的带宽。
●等值路由——OSPF支持到同一目的地址的多条等值路由
●路由分级——OSPF使用4类不同的路由,按优先顺序来说分别是:
区域内路由、区域间路由、第一类外部路由、第二类外部路由。
●支持验证——它支持基于接口的报文验证以保证路由计算的安全性。
●组播发送——OSPF在有组播发送能力的链路层上以组播地址发送协议报文,即达到了广播的作用,又最大程度的减少了对其他网络设备的干扰。
OSPF链路状态协议有以下两个问题要注意:
●在初始发现过程中,链路-状态路由协议会在网络传输线路上进行洪泛(flood),因此会大大削弱网络传输数据的能力。
●链路-状态路由对存储器容量和处理器处理能力敏感。
一.2OSPF支持的网络类型
OSPF支持的网络类型有:
图错误!
文档中没有指定样式的文字。
1点到点网络
1.Point-to-point
链路层协议是PPP或LAPB时,默认网络类型为点到点网络。
无需选举DR和BDR,当只有两个路由器的接口要形成邻接关系的时候才使用。
NBMA用单播发送协议报文,需要手工配置邻居。
点到多点是可选的,即可以用单播发送,又可以用多播发送报文。
在NBMA上需要选举DR与BDR,而在P2MP网络中没有DR与BDR。
另外,广播网中也需要选举DR和BDR。
一.2.1OSPF的报文类型
OSPF的报文类型一共有五种
●HELLO报文(HelloPacket):
最常用的一种报文,周期性的发送给本路由器的邻居。
内容包括一些定时器的数值,DR,BDR,以及自己已知的邻居。
HELLO报文中包含有RouterID、Hello/deadintervals、Neighbors、Area-ID、Routerpriority、DRIPaddress、BDRIPaddress、Authenticationpassword、Stubareaflag等信息,其中Hello/deadintervals、Area-ID、Authenticationpassword、Stubareaflag必须一致,相邻路由器才能建立邻居关系。
●DBD报文(DatabaseDescriptionPacket):
两台路由器进行数据库同步时,用DBD报文来描述自己的LSDB,内容包括LSDB中每一条LSA的摘要(摘要是指LSA的HEAD,通过该HEAD可以唯一标识一条LSA)。
这样做是为了减少路由器之间传递信息的量,因为LSA的HEAD只占一条LSA的整个数据量的一小部分,根据HEAD,对端路由器就可以判断出是否已经有了这条LSA。
●LSR报文(LinkStateRequestPacket):
两台路由器互相交换过DBD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的或是对端更新的LSA,这时需要发送LSR报文向对方请求所需的LSA。
内容包括所需要的LSA的摘要。
●LSU报文(LinkStateUpdatePacket):
用来向对端路由器发送所需要的LSA,内容是多条LSA(全部内容)的集合。
●LSAck报文(LinkStateAcknowledgmentPacket)用来对接收到的DBD,LSU报文进行确认。
内容是需要确认的LSA的HEAD(一个报文可对多个LSA进行确认)。
一.3OSPF的邻居状态机
●Down:
邻居状态机的初始状态,是指在过去的Dead-Interval时间内没有收到对方的Hello报文。
●Attempt:
只适用于NBMA类型的接口,处于本状态时,定期向那些手工配置的邻居发送HELLO报文。
●Init:
本状态表示已经收到了邻居的HELLO报文,但是该报文中列出的邻居中没有包含我的RouterID(对方并没有收到我发的HELLO报文)
●2-Way:
本状态表示双方互相收到了对端发送的HELLO报文,建立了邻居关系。
在广播和NBMA类型的网络中,两个接口状态是DROther的路由器之间将停留在此状态。
其他情况状态机将继续转入高级状态。
●ExStart:
在此状态下,路由器和它的邻居之间通过互相交换DBD报文(该报文并不包含实际的内容,只包含一些标志位)来决定发送时的主/从关系。
建立主/从关系主要是为了保证在后续的DBD报文交换中能够有序的发送。
Exchange:
路由器将本地的LSDB用DBD报文来描述,并发给邻居。
Loading:
路由器发送LSR报文向邻居请求对方的DBD报文。
Full:
在此状态下,邻居路由器的LSDB中所有的LSA本路由器全都有了。
即,本路由器和邻居建立了邻接(adjacency)状态。
注:
红色的状态是指稳定的状态(down、two-way、full),其他状态则是在转换过程中瞬间(一般不会超过几分钟)存在的状态。
本路由器和状态可能与对端路由器的状态不相同。
例如本路由器的邻居状态是Full,对端的邻居状态可能是Loading。
OSPF是基于链路状态算法的路由协议,所有对路由信息的描述都是封装在LSA中发送出去。
LSA根据不同的用途分为不同的种类,目前使用最多的是以下五种LSA:
●RouterLSA(Type=1):
是最基本的LSA类型,所有运行OSPF的路由器都会生成这种LSA。
主要描述本路由器运行OSPF的接口的连接状况,花费等信息。
对于ABR,它会为每个区域生成一条RouterLSA。
这种类型的LSA传递的范围是它所属的整个区域。
●NetwrokLSA(Type=2):
本类型的LSA由DR生成。
对于广播和NBMA类型的网络,为了减少该网段中路由器之间交换报文的次数而提出了DR的概念。
一个网段中有了DR之后不仅发送报文的方式有所改变,链路状态的描述也发生了变化。
在DROther和BDR的RouterLSA中只描述到DR的连接,而DR则通过NetworkLSA来描述本网段中所有已经同其建立了邻接关系的路由器。
(分别列出它们RouterID)。
同样,这种类型的LSA传递的范围是它所属的整个区域。
●NetworkSummaryLSA(Type=3):
本类型的LSA由ABR生成。
当ABR完成它所属一个区域中的区域内路由计算之后,查询路由表,将本区域内的每一条OSPF路由封装成NetworkSummaryLSA发送到区域外。
LSA中描述了某条路由的目的地址、掩码、花费值等信息。
这种类型的LSA传递的范围是ABR中除了该LSA生成区域之外的其他区域。
●ASBRSummaryLSA(Type=4):
本类型的LSA同样是由ABR生成。
内容主要是描述到达本区域内部的ASBR的路由。
这种LSA与Type3类型的LSA内容基本一样,只是Type4的LSA描述的目的地址是ASBR,是主机路由,所以掩码为0.0.0.0。
这种类型的LSA传递的范围与Type3的LSA相同。
●ASExternalLSA(Type=5):
本类型的LSA由ASBR生成。
主要描述了到自治系统外部路由的信息,LSA中包含某条路由的目的地址、掩码、花费值等信息。
本类型的LSA是唯一一种与区域无关的LSA类型,它并不与某一个特定的区域相关。
这种类型的LSA传递的范围整个自治系统(STUB区域除外)。
●ASExternalLSA(Type=7):
类型7的LSA被应用在非完全末节区域中(NSSA)。
一.4区域种类
区域的特性决定着它可以接收的路由信息的类型。
可能的区域类型包括以下几个:
●标准区域:
这个默认的区域接收链路状态更新、路由汇总和外部路由信息。
●骨干区域(转发区域):
骨干区域是连接所有其他区域的中心点。
骨干区域的区域号总是“0”。
所有其他区域都连接到这个区域以交换路由信息。
OSPF骨干区域拥有所有标准区域的特性。
●末节区域:
这种区域不接受任何自治系统外部路由的信息,比如非OSPF网络的信息。
如果路由器需要连接AS外的网络,它们应用缺省的0.0.0.0路由。
末节区域不能包含ASBR。
●完全末节区域:
这种区域不接受任何AS外部的路由,也不接收AS内部的其他区域的汇总信息。
如果路由器需要发送数据到外部网络或是其他区域,它使用缺省的路由发送数据包。
完全末节区域不能包含ASBR。
●非完全末节区域(NSSA):
NSSA是对OSPFRFC的补充。
这种区域定义了类型7的LSA。
NSSA提供类域末节区域和完全末节区域同样的好处。
但是,在NSSA中允许存在ASBR,这的点与末节区域不同。
为了解决ASE路由(自治系统外部路由)单向传递的问题,NSSA中重新定义了一种LSA——Type7类型的LSA,作为区域内的路由器引入外部路由时使用,该类型的LSA除了类型标识与Type5不相同之外,其它内容基本一样。
这样区域内的路由器就可以通过LSA的类型来判断是否该路由来自本区域内。
协议规定:
在NSSA的ABR上将NSSA内部产生的Type7类型的LSA转化为Type5类型的LSA再发布出去,并同时更改LSA的发布者为ABR自己。
STP的基本原理
基本思想:
在网桥之间传递特殊的消息(配置消息,也称作BPDU消息),包含足够的信息做以下工作:
从网络中的所有网桥中,选出一个作为根网桥(Root)
计算本网桥到根网桥的最短路径
对每个LAN,选出离根桥最近的那个网桥作为指定网桥,负责所在LAN上的数据转发
网桥选择一个根端口,该端口给出的路径是此网桥到根桥的最佳路径选择
确定除根端口之外的包含于生成树上的端口(指定端口)
BPDU的作用
⏹选举根桥
⏹检测发生环路的位置
⏹阻止环路的发生
⏹通告网络状态的改变
⏹监控生成树的状态
STP的端口状态
⏹阻塞
⏹倾听
⏹学习
⏹转发
⏹关闭(off)
RSTP(RapidSpanningTreeProtocol)称为快速生成树协议,它在保持STP所有优点的基础上,比STP提供了更快的收敛速度,即在网络拓扑发生变化时,原来冗余的交换机端口在点对点的连接条件下端口状态可以迅速迁移(Discard→Forward)。
⏹改进一
在新拓扑结构中的根端口可以立刻进入转发状态,如果旧的根端口已经进入阻塞状态,而且新根端口连接的对端交换机的指定端口处于Forwarding状态。
⏹改进二
指定端口可以通过与相连的网桥进行一次握手,快速进入转发状态。
⏹改进三
网络边缘的端口,即直接与终端相连,而不是和其他网桥相连的端口可以直接进入转发状态,不需要任何延时。
IGP(Interiorgatewayprotocols)——内部网关协议,定义为在一个自治系统内部使用的路由协议(包括动态路由协议和静态路由)。
IGP的功能是完成数据包在AS内部的路由选择。
RIPv1&v2,OSPF,ISIS都是典型的IGP。
EGP(Exteriorgatewayprotocols)——外部网关协议,定义为在多个自治系统之间使用的路由协议。
它主要完成数据包在AS间的路由选择。
BGP4就是一种EGP。
IGP只作用于本地AS内部,而对其他AS一无所知。
它负责将数据包发到主机所在的网段(segment)。
EGP作用于各AS之间,它只了解AS的整体结构,而不了解各个AS内部的拓扑结构。
它只负责将数据包发到相应的AS中,其他工作便交给IGP来做。
每个自治系统AS都有唯一的标识,称为AS号(ASnumber),由IANA(InternetAssignedNumbersAuthority)来授权分配。
这是一个16位的二进制数,范围为1~65535,其中65412~65535为AS专用组(RFC2270),不在Internet上传播。
类似于IP地址中的私有地址。
BGP-4是典型的外部网关协议,是现行的因特网实施标准。
它完成了在自治系统AS间的路由选择。
可以说,BGP协议是当代整个Inetnet的支架。
BGP经历了4个版本:
RFC1105(BGP-1),RFC1163(BGP-2),RFC1267(BGP-3),RFC1771(BGP-4),并且还涉及其他很多的RFC文档。
在RFC1771新版本中,BGP开始支持CIDR(Classlessinterdomainsrouting)和AS路径聚合,这种新属性的加入,可以减缓BGP表中条目的增长速度。
支持IPV6的BGP版本是BGP4+,标准是RFC2545。
⏹BGP是一种增强型距离矢量(DistanceVector)路由协议
⏹传输协议:
TCP,端口号:
179
⏹支持CIDR(无类别域间选路)
⏹路由更新只发送增量路由
⏹具有丰富的路由过滤和路由策略配置
建立了BGP会话连接的路由器被称作对等体(peersorneighbors),对等体的连接有两种模式:
IBGP(InternalBGP)和EBGP(ExternalBGP)。
IBGP是指单个AS内部的路由器之间的BGP连接,而EBGP则是指AS之间的BGP连接。
BGP使用四种类型的消息:
⏹OPEN–用于建立BGP连接
⏹KEEPALIVE–用于保持BGP连接
⏹UPDATE–发送BGP路由更新或撤消
⏹NOTIFICATION–BGP差错提示信息
OPEN消息用于BGP连接的建立,它包含以下内容:
⏹版本号:
在对等体之间协商都双方支持的最高版本号
⏹AS号:
本BGP路由器的AS号码,占2字节
⏹保持时间:
双方协商后取两者的较小值
⏹BGP标识:
表示发送者的ID,一般是Loopback地址
⏹可选参数:
如密码认证等
KEEPALIVE消息用于保持BGP连接,其长度是19个字节:
⏹发送周期:
缺省为30秒(对等体之间发送)
⏹保持时间(Holdtime),一般为90秒
⏹每次从邻居处接收到Keepalive报文将重置holdtime定时器;如果holdtime定时器超时,peer就认为对等体down掉。
⏹在建立BGP连接时,双方协商保持时间的时候将会取最低值
UPDATEMessage-更新消息
⏹相同属性的路由才能在一个Update消息中更新出去
⏹Update也用于撤消那些“不可达路由”(UnreachableRoutes)
⏹如果路由稳定,将不会发送“更新消息”(Update)
⏹更新可以只是针对路由条目的属性更新
⏹更新包具有Keepalive报文的功效,使Holdtime定时器复位
NOTIFICATIONMessage-差错通告消息
⏹当检测到有错误发生时,将会发送“通告消息”(Notification
message)
⏹“通告消息”(Notificationmessage)将会关闭BGP会话
⏹可能出现的错误信息包括:
验证失败,路由回路,等等
BGP路由通告原则
⏹多条路径时,BGPSpeaker只选最优的给自己使用;
⏹BGPSpeaker只把自己使用的路由通告给相邻体;
⏹BGPSpeaker从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP);
⏹BGPSpeaker从IBGP获得的路由不向它的IBGP相邻体通告;
⏹BGPSpeaker从IBGP获得的路由是否通告给它的EBGP相邻体要依IGP和BGP同步的情况来决定;
⏹连接一建立,BGPSpeaker将把自己所有BGP路由通告给对等体。
BGP同步
⏹因为IBGP之间可能非直接连接,这样非BGP路由器参与对BGP路由条目的数据包转发,需要IGP路由器也有相关BGP路由。
⏹从IBGP邻居学习到的路由,必须在IGP中存在才能通告给EBGP邻居,这就是BGP与IGP的同步。
该功能缺省生效,一般需手动关闭
BGP路由通告方式一Network命令
BGP是用来通告路由的,每台运行BGP协议的路由器都把本地网络通告到Internet上,这样几十万台路由器通告的路由数量达到20多万条。
这就是目前我们能够自如地访问Internet上各种服务的原因。
当然,除了应用于Internet路由通告之外,BGP协议在一些内部专用网络上也发挥作用,其通告的路由往往是私有地址的路由,如城域网中的VPN用户路由、中国电信的固网3G中的路由等等。
BGP要通告的路由必须首先存在于IGP路由表中,将IGP路由信息注入BGP,是BGP路由更新的来源。
它直接影响到因特网的路由稳定性。
信息注入有两种方式:
动态和静态。
动态注入又分为完全注入和选择性注入。
完全动态注入是指将所有的IGP路由再分布(Redistribution)到BGP中。
这种方式的优点是配置简单,但是可控性弱,效率低。
选择性的动态注入则是将IGP路由表中的一部分路由信息注入BGP(如使用network命令)。
这种方式会先验证地址及掩码,大大增强了可控性,提高了效率,可以防止错误的路由信息注入。
但是无论哪种动态注入方式,都会造成路由的不稳定。
因为动态注入完全依赖于IGP信息,当IGP路由发生路由波动时,不可避免的会影响到BGP的路由更新。
这种路由的不稳定会发出大量的更新信息,浪费大量的带宽。
对于这种缺陷,可以使用在边界处使用路由衰减和聚合技术来改善。
静态注入就可以有效解决路由不稳定的问题。
它是将静态路由的条目注入到BGP中去。
由于静态路由条目是人为的加入的,不会受到IGP波动的影响,所以很稳定。
它的稳定性防止了路由波动引起的反复更新。
但是,如果网络中的子网划分边限不是非常分明的话,静态注入也会产生数据流阻塞等问题。
BGP通告路由的常用方法就是使用Network命令选择欲通告的网段,该命令指定目的网段和掩码,这样在IGP路由表中的匹配该条件的一群路由都进入到BGP路由信息表中,被策略筛选后通告出去。
之所以说一群路由,是因为指定网段所包含的子网将全部被通告。
如BGP中使用network18.0.0.0255.0.0.0命令后,如果路由表中有18.0.0.0/8的网段、18.1.0.0/16的网段、18.2.0.0/24的网段等网段,则都会被归入到BGP路由信息表中。
如果路由表中无该网段或其子网,则无路由进入到BGP路由信息表中。
因此,有时候为了配合BGP路由的通告,需要在路由器上配置一些指向Loopback地址的静态路由。
值得注意的是,进入到BGP路由信息表中的路由并不一定能够通告出去,这跟BGP的路由过滤或者路由策略息息相关!
BGP路由通告方式二路由重分布
在路由条目数量很多,聚合不方便的情况下,BGP路由通告不得不选择完全动态注入的方式,将某一种或多种的IGP路由再分布(Redistribution)到BGP中。
这样配置快捷方便。
如下所示,ZXR10支持各种IGP协议到BGP的重分布:
GER(config-router)#redistribute?
connectedConnected
isis-1IS-ISlevel-1routesonly
isis-1-2IS-ISlevel-1andlevel-2routes
isis-2IS-ISlevel-2routesonly
ospf-extOpenshortestpathFirst(OSPF)externalroutes
ospf-intOpenshortestpathFirst(OSPF)internalroutes
ripRoutinginformationprotocol(RIP)
staticStaticroutes
在重分布的过程中,可以指定这些路由条目的各种BGP属性值。
常用的方法是使用路由映射图(route-map)来加以实现。
NAT是一种地址映射技术,将主机的私有IP地址映射为一个外部唯一可识别的公用IP地址
NAT对于内部主机和外部网络是透明的,NAT在内部网络和外部网络相连的接口上将内部网络发出去的数据包的源地址修改为外部可用的公用地址;再将外部网络返回给内部主机的数据包的目的地址修改为该主机的内部私有地址。
这样,在外部网络来看,它看到的该内部主机是具有公用地址的主机,并不知道该主机是私有网络内的主机;而在内部主机来看,它发出去的和收到的IP包都以其自身的私有IP地址作为源和目的地址,并不用区分自己使用何种地址。
NAT(网络地址转换),其作用如下:
有效的节约internet公网地址,使得所有的内部主机使用有限的合法地址都可以连接到Internet网络
使用NAT有很多的优点:
最大的优点是可以限制需要进行IANA注册的专用内联网所用的IP地址数,显著地节省公网IP地址,缓解IP地址资源匮乏的问题;
减少和消除地址冲突发生的可能性;
小型网络可以通过NAT的方式,使得私有网络灵活的接入Internet;
对外界隐藏内部网络的结构,维持局域网的私密性。
NAT在带来优点的同时,也带来了不少缺点:
使用NAT必然要引入额外的延迟;
丧失端到端的IP跟踪能力;
一些特定应用可能无法正常工作,如地址转换对于报文内容中含有有用的地址信息的情况很难处理。
地址转换由于隐藏了内部主机地址,有时候会使网络调试变得复杂。
地址转换技术可以有效的隐藏内部局域网中的主机,因此同时是一种有效的网络安全保护技术。
同时地址转换可以按照用户的需要,在内部局域网内部提供给外部FTP、WWW、Telnet服务。
⏹因特网地址分配组织规定以下的三个网络地址保留用做私有地址:
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.255
随着网络规模和网络中的流量不断扩大,网络管理员面临一个问题:
如何在保证合法访问的同时,拒绝非法访问。
这就需要对路由器转发的数据包作出区分,哪些是合法的流量,哪些是非法的流量,通过这种区分来对数据包进行过滤并达到有效控制的目的。
这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OSPF 技术 基础知识 详解
![提示](https://static.bdocx.com/images/bang_tan.gif)