ospf配置命令_思科设备 OSPF 的相关知识点
- 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 process
- OSPF 运行于 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 <区域号> stub
- Totally 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-routers
- ABR 一定要和Area 0挂靠,否则不能产生3类LSA。
- 伪ABR:在 Area 0 中没有Full邻居。
- 不遵循 3 类 LSA 防环原则。
- 例如:一台路由器只有环回口宣告进了 Area 0。
- 真ABR:在 Area 0 中有Full邻居。
- 遵循3类LSA防环原则。
- 伪ABR:在 Area 0 中没有Full邻居。
- 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 一般使用 iSPF 以及 PRC 算法计算同一区域内的路由。
- 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 基本相同,只是不支持组播,需要手动指定邻居而已。
- Loopback:环回
- 如果帧中继中 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 的网络类型(不同网络类型的 OSPF 的运行方式有所不同)
- 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)、校验和、序列号)。
- Hello
- 隐式确认与显式确认
- 显式确认:使用独立、具有确认功能的其它类型报文(LSU、LSAck)作确认。
- LSR、LSU 使用显式确认(LSR 使用 LSU 作为确认,LSU 使用 LSAck 作为确认)。
- 隐式确认:使用相同类型的回应报文作确认。
- 只用于DBD交互。
- 邻居路由器可使用相同序列号的DBD既做确认又做回应。
- 只用于DBD交互。
- 显式确认:使用独立、具有确认功能的其它类型报文(LSU、LSAck)作确认。
- 隐式确认的序列号谁说了算?
- 需要在邻接状态机为 Exstart 时选举出 Master/Slave 路由器。
- 路由器ID大者做 Master。
- 序列号由 Master说了算。
- 需要在邻接状态机为 Exstart 时选举出 Master/Slave 路由器。
- OSPF 邻居的分类
- Neighbor(邻居):只交互过Hello报文(状态机为 2-way)。
- Adjacency(邻接):交互过全部类型的OSPF报文、LSDB已经同步完成(状态机为 Full)。
- OSPF 的报文
- DR(指定路由器)、BDR(备份指定路由器)
- DR、BDR 指的是路由器的某些接口。
- 选举一般只在某些网络类型的MA 网络中进行。
- 用来解决 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 <优先级>
- 先比较优先级,优先级相同再比较路由器ID。优先级或路由器 ID 最高者当选DR,次高者当选BDR,其他路由器做DROthers。
- 如果 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已经同步。
- Down
- OSPF 可以在邻接关系建立的过程中生成路由条目。
- DR(指定路由器)、BDR(备份指定路由器)
- 被动接口
- 将某个接口设置为被动接口之后,该接口不能发送Hello报文。
- 也就没法建立邻居,没法收发路由条目
- 设置某个接口为被动接口的命令:Router(config-router)#passive-interface <接口名>
- 将某个接口设置为被动接口之后,该接口不能发送Hello报文。
- OSPF 的 LSA
- 1类:路由器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 router
- 2类:网络LSA(常用)
- 产生的路由器:MA网络中的DR。
- 扩散范围:该区域内所有路由器。
- 主要包含信息:该MA网络中所有路由器的ID及子网掩码。
- 作用:作为一类LSA的补充。
- 一些特征
- LSID:DR连接MA网络接口的IP地址。
- Adv Router:DR的路由器ID。
- 网络中有多少个DR就有多少条2类LSA。
- 查看 2 类 LSA 的命令:Router#show ip ospf database network
- 3类:汇总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 summary
- 4类:汇总边界路由器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-summary
- 5类: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 external
- 6 类:组播 LSA
- MOSPF 专用。
- 仅通过 6 类 LSA 不能产生组播分发树。
- 7类:NSSALSA(常用)
- 产生的路由器:NSSA区域中的ASBR。
- 扩散范围:该NSSA区域内的所有路由器。
- 一些特征
- 特殊的5类LSA。
- 只存在于NSSA区域中。
- 扩散出NSSA区域时必须由ABR转换为5类LSA。
- 查看 7 类 LSA 的命令:Router#show ip ospf database nssa-external
- 1类:路由器LSA(常用)
- LSA 的三元组(唯一标识一个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-router)#auto-cost reference-bandwidth <带宽值(Mbps)>
- 修改接口带宽的命令
- Router(config-if)#bandwidth <带宽值(Kbps)>
- 直接修改接口度量值的命令
- Router(config-if)#ip ospf cost <度量值>
- 度量值=参考带宽(bps) /接口带宽(bps)
- SPF 矢量图
- 包含元素
- 树干/树枝:基于 1(Point-to-Point、Transit、Virtual、Stub 链路)、2类LSA 形成。
- 树叶:基于 3、4、5、7类LSA 形成。
- 基本元素画法
- 包含元素
- OSPF 度量值
- SPF 矢量图画法原则
- 先画 Point-to-Point、Transit、Virtual 链路,再画 Stub 链路,最后挂上相应的路由条目。
- Point-to-Point、Transit、Virtual 链路先画度量值小的那节。
- 每台路由器只会画单向路径。
- 3、5 类 LSA 产生的路由条目挂在本区域的 ABR 上。
- SPF 矢量图画法原则
- 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 N2
- OSPF 默认所有类型的路由管理距离均为 110。
- 修改 OSPF 管理距离的命令
- Router(config-router)#distance ospf inter-area <区域间路由管理距离> intra-area <区域内路由管理距离> external <外部路由管理距离>
- 修改 OSPF 管理距离的命令
- 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 工具为通告的默认路由添加某些参数。
- 标准重分发:Router(config-router)#redistribute <路由协议> [路由协议的参数] [metric-type 1|2] [subnets] [nssa-only] [metric <度量值>]
- OSPF 重分发进其它路由协议默认不会重分发外部路由。如果需要重分发外部路由的话可以在重分发命令后面加上 match internal external。
- OSPF 的路由类型
- 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-fa
- 7 类 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> 需要两台路由器互指。
- Router(config-router)#area <区域号> virtual-link <目的路由器ID>
- 查看 Virtual Link 状态的命令
- Router#show ip ospf virtual-links
- Forward Address(FA)
- OSPF 路由汇总/聚合
- 区域间路由汇总/聚合
- 做完汇总之后,路由器会先抑制所有明细路由,再产生汇总路由发送给其他区域。
- 如果在汇总命令后面加上了 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-digest
- Virtual 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进程才能生效。
- 配置命令
- 接口级认证
- 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地址,必须手动指定一个路由器ID
- Router(config)#interface <接口名>
- Router(config-if)#ospfv3 <进程号> ipv6 area <区域号>
- 思科路由器通过 OSPFv3 来为 IPv4 做路由的命令
- 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 路由条目。
- 携带AGUA地址及掩码。
- 1、2类LSA
- OSPFv3 先形成拓扑,后计算路由。
- OSPFv3的LSA 简介
ospf配置命令_思科设备 OSPF 的相关知识点相关推荐
- ipv6 ospf配置方法_【思唯网络学院】网络故障大全及处理原理和方法
第一章 故障处理方法 一.网络的复杂性 一般网络包括路由.拨号.交换.视频.WAN(ISDN.帧中继.ATM.-).LAN.VLAN.- 二.故障处理模型 1. 界定问题(Define the Pro ...
- 华为交换机配置ospf配置命令
下面是华为交换机配置 OSPF 的命令步骤: 配置系统支持 OSPF 协议: system-view [Huawei] protocol ospf
- ensp查看历史配置命令_网络工程师 | 手把手教你用华为ensp模拟器玩vxlan实验(静态方式)...
一.背景 随着云计算.虚拟化技术的发展,业务有时需要再不同地方同网段进行通信,即大二层网络.比如虚机迁移,从A数据中心迁移到异地数据中心. 首先,我们都知道,路由器是用来隔离广播域的,同网段通信都在一 ...
- o oia ospf 路由优先_动态路由OSPF中注入默认路由,原来都是这么玩的,进去看看...
一 .OSPF网络注入默认路由 二. 实战步骤 1.本实验用 R1 的环回接口 1 来模拟 Internet. (1)步骤 1:配置路由器 R1 R1(config)# interface loopb ...
- eigrp配置实验_思科CCIE认证技术详解IPv6协议下的静态路由配置
无论是 NAT,还是 CIDR 等都是缓解 IP 地址短缺的手段,而 IPv6 才是解决地址短缺的最终方法.IPv6 是由 IETF 设计的下一代互联网协议,目的是取代现有的互联网协议 IPv4. I ...
- 华为ar2200series配置手册_思科ASA系列防火墙配置手册
思科ASA系列防火墙配置手册 思科ASA系列防火墙配置手册 使用console连接线登录方法 1.使用cisco的console连接线,连接设备的console口和计算机com口(笔记本用USB转CO ...
- 查看电脑配置命令_注册表
查看电脑配置命令 2008年06月16日 星期一 13:59 打开注册表 开始--运行--regedit 什么是注册表? 注册表因为它复杂的结构和没有任何联系的CLSID键使得它可能看上去很神秘.不幸 ...
- 迈普路由器访问控制列表配置命令_迈普路由器常用使用功能讲解.ppt
MP路由器常用使用功能 东北技术服务部 --牛克伟 TEL4008868669 提 纲 产品简单介绍 命令入门介绍 常用功能讲节 常见故障排查 产品简单介绍 产品简单介绍 命令入门介绍 路由器配置方式 ...
- 思科nat配置实例_思科3750交换机配置DHCP服务器实例网络环境
思科3750交换机配置DHCP服务器实例网络环境: 一台3750交换机,划分三个vlan, vlan2 为服务器所在网络,命名为server.IP地址段为192.168.2.0,子网掩码:255.25 ...
最新文章
- C# - list数据填充到Dataset里
- 《程序员修炼之道》备忘清单
- php self this static,PHP 中 self、static、$this 的区别和后期静态绑定详解
- 我的第一个python web开发框架(11)——工具函数包说明(二)
- matlab imwrite将图像保存到其他目录
- Python递归打印函数
- MS DOS窗口进入JAVA源程序,从java程序运行MS-DOS命令
- rest syntax(parameters)
- pytorch-使用GPU加速模型训练
- Atitti 编程语言高级 api 与高级知识 堆栈api 异常api Meta anno注解元数据api Ref 反射api Database meta api 字节码库如果你正在编写一个框架或者
- springboot整合PageHelper实现分页效果
- 汽车用组合仪表设计规范
- 基于ELK 7.50搭建elastalert 监控报警和权限控制
- ERP系统-库存子系统-采购/成品入库单
- 接口测试工具设计与实现
- 中标麒麟桌面版7.0(NeoKylin linux desktop release 7.0)配置pyqt5运行环境说明
- 金蝶K3CLOUD7.2内部培训PPT下载
- CTF训练(密码学)——Atbash Cipher
- pacman使用介绍
- ES系列:字段类型不对时,如何保存文档到索引
热门文章
- android日记本实训报告,实训笔记
- 在Linux上安装Zookeeper
- 基于JAVA+SpringMVC+Mybatis+MYSQL的流浪宠物救助系统
- 基于JAVA+SpringBoot+Mybatis+MYSQL的中小型超市进销存管理系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的大学生兼职网站
- bcd转ascii码 流程图_4-20mA转RS485,MODBUS数据采集模块
- Codeforces 301A. Yaroslav
- Nginx之进程间的通信机制(信号、信号量、文件锁)
- 解决MySQL在修改列时因为外键依赖出错的问题
- Date-calendar 类