OSPF基本配置命令进入 OSPF 进程配置模式:Router(config)#router ospf <进程号>在 OSPF 进程中宣告接口:Router(config-router)#network <接口IP地址> 0.0.0.0 area <区域号>0.0.0.0为反掩码,用于匹配一部分接口,能够被最短反掩码匹配到的接口优先宣告。在接口配置模式中直接宣告接口(优先级高于进程宣告):Router(config-if)#ip ospf <进程号> area <区域号>Show 命令查看 OSPF 配置:Router#show running-config | section ospf查看哪些接口被宣告进 OSPF 进程中:Router#show ip ospf interface brief查看 OSPF 邻居:Router#show ip ospf neighbor查看 OSPF 路由表:Router#show ip route ospf查看 LSDB 报头:Router#show ip ospf database重置 OSPF 进程:Router#clear ip ospf processOSPF 运行于IP协议之上,协议号为89。OSPF 的ToS字段为IP优先级6。ToS 字段的前 3 bit 为 110。OSPF 报文只支持单播或组播发送。OSPF 是基于链路状态的路由协议,同一区域内的路由器之间不交互路由表(而是交互LSA)。OSPF 支持无限的跳数。OSPF 既支持触发更新,也支持周期性更新(默认每30min泛洪一次 LSA)。OSPF 的进程号只具有本地意义。如果一个接口同时被多个进程宣告,那么只有第一个宣告它的进程有效。OSPF 是一种层次化的路由协议它可将整个网络基于接口分为众多区域(不同的接口可宣告进不同区域)。一个区域可以看作是一个AS的子集。小型网络设计多区域的意义不大。如果某个区域内的某台路由器某个宣告进 OSPF 的接口不停地Up/Down,将会导致该区域内所有路由器的LSDB不停地变动。在这种情况下,划分多区域可以减小由于接口不停地 Up/Down 造成的影响范围。在多区域 OSPF 网络中,必须指定一个编号为 0(Area 0)的骨干区域(也叫传输区域)。在同个区域内绝对不可能出现路由环路。区域中的每台路由器都知道区域中其它所有路由器是怎么连接的。非骨干区域都必须和骨干区域有连接。强制形成星型拓扑,防止环路产生。由于区域间无法传递拓扑信息,因此只有区域或AS间才可进行路由汇总或聚合。区域间的路由使用距离矢量协议的算法来计算。非骨干区域的类型常规区域Hello报文中的Flag字段:E=1(允许5类LSA存在),N=0(不是 NSSA 区域)。Stub区域:末节区域不允许ASBR(4、5类LSA)存在。ABR 不会让 4、5 类 LSA 进入 Stub 区域。Hello 报文中的Flag字段:E=0(不允许5类LSA存在),N=0(不是NSSA区域)。Stub 区域内的ABR会下放度量值为1的默认路由(3类LSA)到该 Stub 区域内。区域内所有路由器均要配置。配置 Stub 区域可减少LSA的数目及路由表条目。适用于没有多余选路需求(要访问区域外的网段只能通过ABR)的区域。Stub 区域中不允许存在Virtual Link。Area0不允许配置成Stub区域。配置命令Router(config-router)#area <区域号> stubTotally Stub区域:完全末节区域在Stub区域的基础上,不允许3类LSA(ABR 生成默认路由对应的 LSA 除外)存在。在 Totally Stub 区域中,只允许一条由ABR产生的默认路由对应的3类LSA存在。只需在 ABR 上配置 Stub 区域命令的后面加上no-summary就可以了。NSSA(No-so-Stubby)区域:不那么末节区域Hello 报文中的Flag字段:E=0(不允许5类LSA存在),N=1(NSSA区域)。在 Stub 区域的基础上支持ASBR。NSSA 区域内的ABR以及ASBR不会主动下放默认路由。ASBR重分发进OSPF的路由条目以7类LSA(特殊的 5 类 LSA)的方式发送。7 类 LSA 在扩散到其他区域之前必须由该区域内路由器ID最高的ABR转换为5类LSA,且转换者对其他区域来说才是ASBR(前提是转换后的 5 类 LSA 不带FA)。在新版的 IOS 中,也可强制指定转换者。强制指定转换者的命令:Router(config-router)#area <区域号> nssa translate type7 always区域内所有路由器均要配置。NSSA 区域中不允许存在Virtual Link。Area0不允许配置成NSSA区域。如果 NSSA 区域中存在伪ABR,而恰巧该伪ABR的路由器ID是NSSA区域中最大的,则会导致转换后的 5类LSA 不能发往NSSA区域外。应尽量确保NSSA区域内只包含一台ABR,否则可能会出现非对称路由、次优路径或环路。非对称路由可能会出现的环境:非转换者 ABR 下放的默认路由的度量值比转换者 ABR 下放的默认路由的度量值小,这就导致了 NSSA 区域内主机访问区域外网络时去包走的是非转换者 ABR,而回包走的却是转换者 ABR(因为只有转换者 ABR 才能向 NSSA 区域外通告 5 类 LSA,这导致了 NSSA 区域外的主机访问 NSSA 区域内的网络只能走转换者 ABR)。配置命令Router(config-router)#area <区域号> nssa[default-information-originate] [no-redistribution]default-information-originate表示以7类LSA的方式向该区域内下放默认路由(如果是ASBR,则路由表中必须要有默认路由才能生效)。no-redistribution表示不要将重分发进 OSPF 的路由条目下放到 NSSA 区域中。如果路由器在 NSSA 区域中既是 ABR 也是 ASBR,且还是 NSSA 区域的出口的话,可以添加这个关键字。Totally NSSA区域:完全 NSSA 区域在 NSSA区域的基础上,不允许3类LSA(ABR 生成默认路由对应的 LSA 除外)存在。在 Totally NSSA 区域中,只允许一条由ABR产生的默认路由对应的3类LSA存在。该区域内的ASBR不能是整网的出口(ASBR 不能有默认路由)。因为该区域内ABR下放的默认路由(O IA)的优先级要比ASBR下放的默认路由(O N1/2)的优先级高。比较少用。只需在 ABR 上配置 NSSA 区域命令的后面加上no-summary就可以了。路由器类型普通路由器ABR(区域边界路由器)ASBR(自治系统边界路由器)查看 ABR 和 ASBR 的命令:Router#show ip ospf border-routersABR一定要和Area 0挂靠,否则不能产生3类LSA。伪ABR:在Area 0中没有Full邻居。不遵循 3 类 LSA 防环原则。例如:一台路由器只有环回口宣告进了 Area 0。真ABR:在Area 0中有Full邻居。遵循3类LSA防环原则。ASBR 可以放在任意区域中(Stub 以及 Totally Stub 区域除外)。Area 0不允许过滤LSA(必须包含全路由)。目前 OSPF 一般使用iSPF以及PRC算法计算同一区域内的路由。每台路由器都以自身为根,计算从自身去往每一个网络的路径,再结合 LSA 中的网络信息生成路由条目。运行 OSPF 的路由器必须有一个路由器ID。如果不指定路由器 ID,OSPF 默认使用环回口中最大的IP地址作为路由器 ID。如果没有设置环回口则使用接口中最大的IP地址作为路由器 ID。如果在已经有 OSPF 邻居的情况下修改了路由器 ID,那么必须重置OSPF进程才能让设置生效。指定路由器 ID 的命令:Router(config-router)#router-id <路由器ID>OSPF 的网络类型(不同网络类型的 OSPF 的运行方式有所不同)Loopback:环回环回口默认的网络类型。不发送Hello。不建立邻居。只能通告/32路由。可能会影响MPLS标签分发。仅限环回口使用。Broadcast:广播以太网默认的网络类型。10s发送一次Hello。支持组播发送OSPF报文。选举DR/BDR。所有节点逻辑直连通告路由条目的下一跳为生成这条路由条目的路由器接口的IP地址。Non-Broadcast(MBMA):非广播帧中继(含多点子接口)默认的网络类型。30s发送一次Hello。不支持组播发送OSPF报文。需要手动指定OSPF邻居(思科只需要单向指定)。选举DR/BDR。在帧中继环境中,必须让Hub节点当DR。然后让所有Spoke节点当DROthers就好了(当 BDR 没有任何意义,因为如果 Hub Down 了的话整个网络就都不可用了)。所有节点逻辑直连通告路由条目的下一跳为生成这条路由条目的路由器接口的IP地址。Point-to-Point:点对点PPP、HDLC、帧中继点对点子接口、BRI等默认的网络类型。10s发送一次Hello。支持组播发送OSPF报文。只能建立一个邻居。如果用在 MA 网络中且邻居不止一个的话会造成邻居频繁 Up/Down。不选举 DR/BDR。Point-to-MultiPoint:点对多点无默认对应接口类型(需要通过命令才能使用)。30s发送一次Hello。支持组播发送OSPF报文。不选举 DR/BDR。邻居一旦建立完毕,会把自身接口的IP地址以/32形式的路由通告给对方。所有节点不逻辑直连通告路由条目的下一跳为发出这条路由条目的路由器接口的IP地址。帧中继的完美解决方案(不用在 Spoke 节点做额外的 DLCI 映射)。Point-to-MultiPoint Non-Broadcast:点对多点非广播跟 Point-to-MultiPoint 基本相同,只是不支持组播,需要手动指定邻居而已。如果帧中继中Hub节点用Point-to-MultiPoint,Spoke节点用Point-to-Point的话,默认是无法建立邻居的(因为Hello周期不一致)。Point-to-Point可以和Broadcast建邻居,但无法传递路由(因为1类LSA中链路的类型不一致)。环回口只能使用Loopback、Point-to-Point网络类型使用Point-to-Point时可以通告非/32路由。修改网络类型的命令:Router(config-if)#ip ospf network <网络类型>OSPF 使用的组播组地址224.0.0.5:所有OSPF路由器都监听。224.0.0.6:MA网络中的DR、BDR监听。OSPF 的报文Hello用于邻居建立及邻接关系维护。发送周期和网络类型有关。邻居建立之后,如果在4倍Hello周期(Dead时间)内都没有收到回应则Down邻居。强制指定 Hello 周期的命令:Router(config-if)#ip ospf hello-interval <秒数>设定 Hello 周期为最小值(50 毫秒)的命令:Router(config-if)#ip ospf dead-interval minimal hello-multiplier 20指定 Hello周期的同时 Dead时间也会被修改(前提是没有指定Dead时间)。强制指定 Dead 时间的命令:Router(config-if)#ip ospf dead-interval <秒数>路由器之间如果只交互过 Hello报文,则只能将邻接关系建立到2-way状态机。DBD(数据库描述)包含LSA报头(LSA的名字(LSID)、通告的路由器(Adv Router)、校验和、序列号)。包含Flags字段(Init位、More位、M/S位)。在2-way邻接状态机之后发送。支持显式确认和隐式确认。LSR(链路状态请求)包含LSA三元组(LSA的名字(LSID)、通告的路由器(Adv Router)、LSA的类型)。LSU(链路状态更新)包含完整LSA。一个LSU报文中可包含多个LSA。LSAck(链路状态确认)针对LSU中的LSA进行确认。包含LSA报头(LSA的名字(LSID)、通告的路由器(Adv Router)、校验和、序列号)。隐式确认与显式确认显式确认:使用独立、具有确认功能的其它类型报文(LSU、LSAck)作确认。LSR、LSU使用显式确认(LSR使用LSU作为确认,LSU使用LSAck作为确认)。隐式确认:使用相同类型的回应报文作确认。只用于DBD交互。邻居路由器可使用相同序列号的DBD既做确认又做回应。隐式确认的序列号谁说了算?需要在邻接状态机为Exstart时选举出Master/Slave路由器。路由器ID大者做Master。序列号由Master说了算。OSPF邻居的分类Neighbor(邻居):只交互过Hello报文(状态机为2-way)。Adjacency(邻接):交互过全部类型的OSPF报文、LSDB已经同步完成(状态机为Full)。DR(指定路由器)、BDR(备份指定路由器)DR、BDR 指的是路由器的某些接口。选举一般只在某些网络类型的MA 网络中进行。用来解决MA网络中邻接关系过于复杂的问题。MA 网络中每添加一台路由器,整网邻居数量将呈几何倍数增长。通过网络类型来决定是否进行选举。到达2-way状态机之后再进行选举。选举最多花费4倍Hello周期。不是DR、BDR的路由器称为DROthers。DROthers 之间不需要交互 DBD。DR/BDR选举规则先比较优先级,优先级相同再比较路由器ID。优先级或路由器 ID最高者当选DR,次高者当选BDR,其他路由器做DROthers。优先级为0的接口只能做DROthers,即没资格参选。设置接口优先级的命令:Router(config-if)#ip ospf priority <优先级>如果DR挂了,BDR将会接替DR的角色,同时选举出另一个BDR。DR/BDR在正常情况下不能被抢占,如需抢占只能重置OSPF进程。Hello报文中会包含当前网络已认可的DR、BDR。需要选举 DR/BDR 的网络中可以没有BDR,但一定要有DR。DR/BDR 的选举要求接口地址在同一个子网段内。如果一个 MA 网络中有不同网段的邻居,那么选举会分网段进行。所有路由器需要与DR、BDR建立Full邻居。DROthers之间只需要建立到2-way邻居即可。所有路由器只需要把自身的LSA发送给DR、BDR(目的IP为224.0.0.6),由DR整理之后再统一通告(BDR只会整理不会通告)给所有路由器(目的IP为224.0.0.5)。OSPF邻接状态机Down刚刚在接口上启用 OSPF,还没有收发过OSPF流量。Attempt(可选)MBMA网络、点到多点网络手动指定邻居之后尝试与邻居建立连接的过程。Init收到邻居的Hello、但邻居没有收到我的Hello(邻居发送的Hello报文中没有包含我的路由器ID)。2-way邻居已经收到我的Hello(邻居发送的Hello报文中已经包含我的路由器ID)。2-way之后开始选举DR/BDR。到达该状态机需要满足的条件OSPF版本号一致。不能冲突的路由器ID。区域一致。Hello周期、Dead时间一致。E、N位一致。认证信息一致。接口在同一子网中(Point-to-Point网络类型除外)。Exstart邻居双方交互它们的第一个DBD,Flags位中的Init=1,More=1,M/S=1,用于选举Master(序列号为随机)。选举出 Master 之后,Slave将进行第一次隐式确认(Flags位中的Init=0,More=1,M/S=0,序列号为Master指定的序列号)。包含链路的MTU信息。在思科路由器上如果链路两端的MTU不一致,会卡在这个状态机。这两个DBD均不包含LSA信息。Exchange交互DBD(当两台路由器的DBD大小不一致时将使用显式确认)。Loading交互LSR、LSU。Full两台路由器的LSDB已经同步。OSPF 可以在邻接关系建立的过程中生成路由条目。被动接口将某个接口设置为被动接口之后,该接口不能发送Hello报文。也就没法建立邻居,没法收发路由条目设置某个接口为被动接口的命令:Router(config-router)#passive-interface <接口名>OSPF 的LSA1类:路由器LSA(常用)产生的路由器:所有路由器。扩散范围:该区域内所有路由器。主要包含信息:宣告进OSPF的接口的详细信息以及度量值。以链路的形式来描述各个接口信息。链路类型Point-to-Point不用选DR/BDR(例如Point-to-Point网络类型的接口)。须配合Stub类型的链路才可生成路由条目。Link ID:邻居的路由器ID。包含的数据:该链路本地接口的IP地址。Transit需要选DR/BDR(例如Broadcast网络类型的接口)。须配合2类LSA才可生成路由条目。Link ID:DR连接该MA网络接口的IP地址。包含的数据:该链路本地接口的IP地址。Stub连接主机的链路(末节链路)。配合Point-to-Point类型的链路可生成路由条目。Link ID:该链路本地接口的前缀。包含的数据:该链路本地接口的掩码。Virtual虚链路专用。Link ID:虚链路对端路由器的路由器ID。包含的数据:去往对端路由器的本地始发地址。作用:让路由器知道该区域内的网络是如何分布的,并画出该区域的拓扑图(如果该路由器存在需要选举DR/BDR的网络,那么还需要2类LSA辅助)。一些特征LSID:通告路由器的ID。Adv Router:与LSID相同。Type字段无:普通路由器。B:ABR。E:ASBR。每台路由器关于它所属的每个区域只会产生一条1类LSA。前缀抑制在 1 类 LSA 中只通告环回(类型)接口以及被动接口的信息。启用前缀抑制的命令:Router(config-router)#prefix-suppression如果不想通告被动接口的信息,也可在接口配置模式下执行命令:Router(config-if)#ip ospf prefix-suppression查看 1 类 LSA 的命令:Router#show ip ospf database router2类:网络LSA(常用)产生的路由器:MA网络中的DR。扩散范围:该区域内所有路由器。主要包含信息:该MA网络中所有路由器的ID及子网掩码。作用:作为一类LSA的补充。一些特征LSID:DR连接MA网络接口的IP地址。Adv Router:DR的路由器ID。网络中有多少个DR就有多少条2类LSA。查看 2 类 LSA 的命令:Router#show ip ospf database network3类:汇总LSA(常用)产生的路由器:ABR。扩散范围:整个AS。主要包含信息:区域中的路由条目(不包含拓扑信息,可汇总/聚合,一个路由条目对应一个 LSA)。不含拓扑信息也能防环的原因:去往同一区域中的 ABR 的路径是无环的(因为能够得知拓扑信息),ABR 去往其他区域的路径也是无环的(因为 OSPF 强制各个区域连成星型拓扑)。把这两段链路连接在一起,只要保证拓扑是无环的,整条路径就是无环的。作用:在区域间传递路由条目。一些特征LSID:区域间路由的前缀。Adv Router:ABR 的路由器ID。当一条 3 类 LSA跨越ABR时会修改Adv Router为当前被跨越ABR自身的路由器ID(相应的度量值也会被修改)。防环原则当真ABR从非骨干区域收到3类LSA时,不会进行路由计算。非骨干区域形成的 3 类 LSA 在传递给另一个非骨干区域时必须经过骨干区域中转。在 MPLS 中的防环机制当绑定到 VRF 的 OSPF 进程在收到邻居发送的三类 LSA 时不会计算路由。关闭该防环机制的命令:Router(config-router)#capability vrf-lite查看 3 类 LSA 的命令:Router#show ip ospf database summary4类:汇总边界路由器LSA(常用)产生的路由器:ASBR所在区域内的ABR。扩散范围:除了ASBR所在区域外的其它区域。主要包含信息:ASBR路由器的ID、该ABR 到达ASBR的度量值。作用:告诉其它区域内的路由器通过该ABR可到达ASBR及该ABR到达ASBR的度量值。一些特征LSID:ASBR所在区域内ABR的路由器ID。Adv Router:与LSID相同。当一条 4 类 LSA跨越ABR时会修改Adv Router为当前被跨越ABR自身的路由器ID(相应的度量值也会被修改)。查看 4 类 LSA 的命令:Router#show ip ospf database asbr-summary5类:AS外部LSA(常用)产生的路由器:ASBR。扩散范围:整个AS。主要包含信息:重分发进OSPF的路由条目(不包含拓扑信息,可汇总/聚合,一个路由条目对应一个 LSA)。作用:向 AS 内通告重分发的路由条目。一些特征LSID:外部路由的前缀。Adv Router:ASBR的路由器ID。当一条 5 类 LSA跨越ABR时Adv Router 不会被修改(需要4类LSA或Forward Address辅助才能计算路由)。如果路由器只收到5类LSA,那么它只能加入到 LSDB 中但并不能计算路由(包含 Forward Address 的除外)。支持使用 tag 进行路由标记。tag 的默认值为 0。查看 5 类 LSA 的命令:Router#show ip ospf database external6 类:组播 LSAMOSPF 专用。仅通过 6 类 LSA 不能产生组播分发树。7类:NSSALSA(常用)产生的路由器:NSSA区域中的ASBR。扩散范围:该NSSA区域内的所有路由器。一些特征特殊的5类LSA。只存在于NSSA区域中。扩散出NSSA区域时必须由ABR转换为5类LSA。查看 7 类 LSA 的命令:Router#show ip ospf database nssa-externalLSA 的三元组(唯一标识一个LSA):LSA 的名字(LSID)、通告的路由器(Adv Router)、LSA的类型。1、2 类 LSA 包含拓扑信息。包含路由器ID、运行OSPF的接口及网络、接口连接了哪些邻居、接口的地址等。LSA 存放在路由器的LSDB(俗称拓扑表)中。OSPF收敛完成的标志:每台路由器(同一区域内)的LSDB都一致。只有路由器在相同区域中,LSDB 才能保持一致。LSA 有老化计时器,默认为60min,正向计时。计时器超时之后LSA将自动被删除。LSA 可原封不动地发送多跳(扩散泛洪传递)。仅限同一区域。距离矢量协议中的路由条目每传递一跳都会改变。LSA 的防环机制当一台路由器收到 LSA 之后,若LSDB中没有,则接收并回复LSAck,然后泛洪给其它邻居;若LSDB中有,则比较LSA的新旧程度。先比序列号,大的新;再比老化计时器,小的新,相差小于15min视为一致;最后比校验和,大的新)。若本地的LSA比接收到的LSA旧,则接收并回复LSAck,然后泛洪给其它邻居;若本地的LSA与接收到的LSA新旧程度相同,则丢弃收到的LSA;若本地的LSA比接收到的LSA新,则丢弃收到的LSA,然后反向通告本地的LSA。LSA 的序列号线性空间:0x80000001(负数)~0x7FFFFFFF(正数)每新生成一个LSA序列号+1。当 LSA 的序列号达到最大值时,新的LSA的序列号将会被重置。这就导致了新的LSA的序列号比旧的LSA小,邻居不接收反而会反向通告旧的LSA。这时就需要等到最大序列号的LSA的老化计时器超时之后才能恢复正常。解决方案:当 LSA 的序列号接近最大值时,LSA 的老化计时器将会缩短,以便及时重置全部 LSA 的序列号。LSDB 过载保护思科专有。可限制接收 LSA 的数目,超过之后自动 Down 邻居。当 Down 邻居超过一定次数后,不再自动建立邻居。可防止低性能路由器在 OSPF 上消耗过多资源。路由器自身产生的 LSA 不耗费资源。基本配置命令Router(config-router)#max-lsa <最大LSA数目>OSPF 度量值度量值=参考带宽(bps) /接口带宽(bps)默认参考带宽为100,000,000 bps(100 Mbps)取控制层面路由流向的所有入接口的带宽。修改接口的带宽不会影响从该接口发出路由条目的带宽。整条链路的度量值等于每条链路的度量值之和(分段计算)。由DR去往同一网段中其他路由器的度量值为0。修改参考带宽的命令Router(config-router)#auto-cost reference-bandwidth <带宽值(Mbps)>参考带宽不一致不会影响邻居的建立。修改接口带宽的命令Router(config-if)#bandwidth <带宽值(Kbps)>直接修改接口度量值的命令Router(config-if)#ip ospf cost <度量值>SPF矢量图包含元素树干/树枝:基于1(Point-to-Point、Transit、Virtual、Stub 链路)、2类LSA形成。树叶:基于3、4、5、7类LSA形成。基本元素画法SPF 矢量图画法原则先画 Point-to-Point、Transit、Virtual 链路,再画 Stub 链路,最后挂上相应的路由条目。Point-to-Point、Transit、Virtual 链路先画度量值小的那节。每台路由器只会画单向路径。3、5 类 LSA 产生的路由条目挂在本区域的 ABR 上。OSPF 的路由类型O:区域内路由(通过1、2类LSA获取)。O IA:区域间路由(通过3类LSA获取)。O E1:重分发进OSPF的路由(通过4、5类LSA获取),且度量值在路由条目传递过程中会累加。如果同时收到多条相同目的地的 O E1 路由,直接比较度量值,谁小谁加表。如果既关注内部开销,又关注外部开销,那么在重分发时可以使用这类路由。O E2:重分发进OSPF的路由(通过4、5类LSA获取),且度量值在路由条目传递过程中保持不变。如果同时收到多条相同目的地的 O E2 路由,先比较外部度量值(Seed Metric),再比较内部度量值(本地去往ASBR的度量值)。谁小谁加表。如果只关注外部开销,那么在重分发时可以使用这类路由。O N1:NSSA区域中重分发进OSPF的路由(通过7类LSA获取)。其他特性同 O E1。O N2:NSSA区域中重分发进OSPF的路由(通过7类LSA获取)。其他特性同 O E2。各路由类型的优先级:O > O IA > O E1 = O N1 > O E2 = O N2OSPF 默认所有类型的路由管理距离均为110。修改 OSPF 管理距离的命令Router(config-router)#distance ospf inter-area <区域间路由管理距离> intra-area <区域内路由管理距离> external <外部路由管理距离>OSPF 支持修改某条内部或外部路由的管理距离,也支持修改由某台路由器产生的所有路由条目的管理距离。OSPF 路由重分发重分发进 OSPF 的路由(包含通告的默认路由)可设置一个默认度量值(Seed Metric)。BGP重分发进 OSPF 的Seed Metric 为1,其它路由协议为20。设定 Seed Metric 的命令Router(config-router)#area <区域号> default-cost <度量值>默认路由在无法重分发进 OSPF。重分发命令标准重分发:Router(config-router)#redistribute <路由协议> [路由协议的参数] [metric-type 1|2] [subnets] [nssa-only] [metric <度量值>]metric-type用于指定度量值的计算方式(见上面的 O E1、O E2 路由类型)。subnets用于开启子网路由宣告(OSPF 默认只重分发主类路由)。nssa-only用于 NSSA 区域的 ABR 上,只把重分发的路由下放到 NSSA 区域中。metric用于指定该路由条目的 Seed Metric。以5类LSA通告路由器为默认网关:Router(config-router)#default-information originate [always]后面加always可以在路由器没有配置默认网关的情况下通告。但需要注意的是,加了always之后路由器将不会把别人通告(从 OSPF)的默认路由加入到路由表中。也可使用route-map工具为通告的默认路由添加某些参数。OSPF重分发进其它路由协议默认不会重分发外部路由。如果需要重分发外部路由的话可以在重分发命令后面加上match internal external。Forward Address(FA)5、7类LSA特有的字段。用来强行指定外部路由下一跳的方向,可防止非对称路由、次优路径或路由环路。当5类LSA中包含FA时不用4类LSA就可计算路由。5类LSA的FA为重分发进OSPF的路由条目本身的下一跳地址。7类LSA一定有FA。5类LSA需要满足以下条件才能产生 FA。ASBR宣告重分发进OSPF的路由条目的下一跳接口进入OSPF,且该接口不能是被动接口。ASBR对于该重分发进OSPF的路由条目的下一跳接口不能是Point-to-Point、Point-to-MultiPoint类型。7类LSA的FA为NSSA中的ASBR的最大环回口地址(没有环回口地址则为最大接口地址)。当7类LSA转换为5类LSA之后,FA默认保持不变。7 类 LSA 转 5 类 LSA 时不保留 FA 的命令(只能在转换者 ABR 上执行)Router(config-router)#area <区域号> nssa translate type7 suppress-fa7 类 LSA 转 5 类 LSA 时如果不保留FA,那么当 7 类 LSA 所对应的路由条目是O N1类型的话,转换后的 O E1 类型的路由条目NSSA区域内的那段内部度量值将设为0。FA必须通过OSPF路由可达(1、2、3类LSA),否则该外部路由将只会被加入 LSDB。去往 FA 的静态路由可以覆盖OSPF路由,这会导致 FA 不是通过 OSPF 可达的。Virtual Link是在一个区域内的虚拟点到点链路。Virtual Link 的用途分离的Area 0相连接(例如 Area 0 <--> Area 1 <--> Area 0)远离Area 0的区域连接(例如 Area 0 <--> Area 1 <--> Area 2)没有Area 0的区域连接(只是 ABR 的环回口宣告进 Area 0(伪 ABR),例如 Area 1 <--> Area 2 <--> Area 3)只有在相同区域内的两台路由器才能使用 Virtual Link。Virtual Link 会造成OSPF的星型拓扑被破坏,大大增加出现环路的可能性。因此不应该长时间使用。Virtual Link 做区域间汇总可能会出现环路。通过Virtual Link传递的路由条目的出接口为去往Virtual Link对端地址的树形结构出接口(物理接口)。思科在 Virtual Link 上面默认不会发送Hello。该特性称为Hello抑制。思科通过Virtual Link获取的LSA永不过期(不用定时泛洪)。该特性称为DNA。该特性可以减少 LSA 泛洪的数量。配置命令Router(config-router)#area <区域号> virtual-link <目的路由器ID><目的路由器ID>需要两台路由器互指。查看 Virtual Link 状态的命令Router#show ip ospf virtual-linksOSPF 路由汇总/聚合区域间路由汇总/聚合做完汇总之后,路由器会先抑制所有明细路由,再产生汇总路由发送给其他区域。如果在汇总命令后面加上了not-advertise关键字,则既抑制明细路由,又不发送汇总路由(等于做了路由过滤)。使用filter-list工具调用前缀列表可进行区域间的路由过滤。汇总路由的度量值取所有明细路由的最小度量值。配置命令Router(config-router)#area <区域号> range <汇总网段> <子网掩码>外部路由汇总/聚合由ASBR进行。配置命令Router(config-router)#summary-address <汇总网段> <子网掩码>如果在汇总命令后面加上了not-advertise关键字,则既抑制明细路由,又不发送汇总路由(等于做了路由过滤)。OSPF认证级别0 级:不认证1 级:明文认证2 级:HMAC密文认证HMAC值= MD5(报文+密码)OSPF认证范围接口级认证先设定认证密码,再设定认证方式。配置命令设定密文认证密码:Router(config-if)#ip ospf message-digest-key <密码ID> md5 <密码>设定明文认证密码:Router(config-if)#ip ospf authentication-key <密码>设定密文认证方式:Router(config-if)#ip ospf authentication message-digest设定明文认证方式:Router(config-if)#ip ospf authentication密文认证邻居两边的<密码ID>和<密码>必须一致。区域级认证(只支持 HMAC 密文认证)依旧要在每个接口上设置认证密码。配置命令Router(config-router)#area <区域号> authentication message-digestVirtual Link 认证配置命令密文认证:Router(config-router)#area <区域号> virtual-link <目的路由器ID> authentication message-digest message-digest-key <密码ID> md5 <密码>明文认证:Router(config-router)#area <区域号> virtual-link <目的路由器ID> authentication authentication-key <密码>在思科路由器上由于存在Hello抑制特性,在已经建立完成的 Virtual Link上配置认证需要重置OSPF进程才能生效。由1、2类LSA生成的路由条目只能做本地抑制。OSPF 调用前缀列表进行路由过滤的命令Router(config-router)#area <区域号> filter-list prefix <前缀列表名称> in|out目前用于IPv4路由的OSPF版本为v2。OSPFv2 最大的缺陷就是将某些重要LSA中的路由信息和拓扑信息绑定起来,这导致了 OSPFv2 根本无法支持 IPv6。不过后来的 OSPFv3 也有这种缺陷,导致最初的 OSPFv3 也只支持 IPv6。后来思科改进了 OSPFv3(称为二代OSPFv3),把 LSA 中的拓扑信息和路由信息剥离开来(LSA 类型可自定义),才解决了这个问题(增加了协议的可扩展性)。但改进后的 OSPFv3 依然不能和OSPFv2 互操作。思科路由器通过 OSPFv3 来为 IPv4 做路由的命令Router(config)#ipv6 unicast-routing%开启IPv6路由功能Router(config)#router ospfv3 <进程号>Router(config-router)#address-family ipv4 unicast%进入IPv4单播地址簇配置模式Router(config)#interface <接口名>Router(config-if)#ipv6 enable%开启接口的IPv6功能Router(config-if)#ospfv3 <进程号> ipv4 area <区域号>思科路由器通过 OSPFv3 来为 IPv6 做路由的命令Router(config)#ipv6 unicast-routing%开启IPv6路由功能Router(config)#router ospfv3 <进程号>Router(config-router)#address-family ipv6 unicast%进入IPv6单播地址簇配置模式Router(config-router-af)#router-id <路由器ID>%如果路由器没有IPv4地址,必须手动指定一个路由器IDRouter(config)#interface <接口名>Router(config-if)#ospfv3 <进程号> ipv6 area <区域号>OSPFv3的LSA简介1、2类LSA和OSPFv2的 1、2 类 LSA 相比少了与网络相关的参数。没有接口 IP、掩码、度量值等形成路由条目的必备参数。只能形成拓扑,不能形成路由。8类LSA:链路LSA只能在本地链路中发送。配合1、2类LSA可形成直连网络Link Local地址的路由条目。9类LSA:区域内前缀LSA携带AGUA地址及掩码。在为 IPv4 做路由时将携带 IPv4 地址及掩码。配合1、2类LSA可形成AGUA地址的路由条目。在为 IPv4 做路由时可配合 1、2 类 LSA 形成 IPv4 路由条目。OSPFv3先形成拓扑,后计算路由。
1200字范文,内容丰富有趣,写作的好帮手!