OSPF(开放最短路径优先)协议概述:

 - 链路状态路由协议
 - 无类路由协议
 - 要点:RouterID、区域ID
 - 触发更新 、以传播 LSA 代替路由表更新
 - 快速响应变更(比距离矢量路由协议快)
 - 邻居发现--使用Hello包发现邻居并简历相邻关系,通过组播地址发送给所有参与SPF计算的路由器
  -组播地址:224.0.0.5、224.0.0.6
 - OSPF采用SPF算法计算到达目的的最短路径
      -链路(Link):路由器接口
      -状态(State):描述接口以及其与邻居路由器之前的关系
 - 三张表:
     -邻居表   //show ip ospf neighbor
     -拓扑表  //show ip ospf database
     -路由表    //show ip route

OSPF Area:

  -为了适应大型的网络,OSPF在AS内划分多个区域

    区域0:主干区域

    其他区域:正常区域;所有正常区域与主干区域直连 (也可以通过虚链路穿透)
  -每个OSPF路由器只维护所在区域的完整链路状态信息

  

OSPF Router-ID:

  -Router-ID:用于在一个OSPF区域中唯一标识一台路由器

  -OSPF Router-ID的设定可以通过手工配置的方式,或者通过自动选取的方式

  -自动选取的机制是:若配置有loopback口,则选取最大的loopback口地址,若无,则选取活跃物理接口中IP地址最大的作为Router-ID

OSPF ProcessID(仅本地有效):

  一、OSPF单进程

  

  -OSPF ProcessID,范围为1-65535,仅本地有效,用来在本地区分不同的OSPF进程

  -上图意思是,对于R1而言,它并不关心它的直连OSPF邻居-R2使用的是什么OSPF进程号

  -虽然OSPF ProcessID本地有效,但是仍然建议,除非有特殊需求,否则全网使用一致的OSPF进程ID,这将方便网络管理和维护

  二、OSPF多进程

  

  -一台路由器可创建多个OSPF进程,使用OSPF ProcessID进行区分,不同的进程相互独立;

  -上图R2使用OSPF进程20与R1建立邻居关系,使用OSPF进程30与R3建立OSPF邻居关系;

  -这两个OSPF进程相互独立,R2通过OSPF进程20/10从R1/R3学习到的OSPF路由(严格的说,应该是LSA),默认不会直接更新给R3/R1;

  -R2这两个OSPF进程虽然彼此隔离,但是都可以为R2自身贡献路由,例如R1更新过来一条路由1.1.1.0,R3更新过来一条3.3.3.0,那么在R2的全局路由表里都是能看到这两条路由的。这两条路由不会互相灌进对方的OSPF进程(造成的直接结果是R1没有R3的路由,R3没有R1的路由),除非 -- 路由重发布;

  -有一点要注意:如果R1及R3都向R2更新同一条路由。R2会根据COST来选,如果等价,R2会以"先到先得"的原则,谁的路由先过来,就优选谁;

//*什么情况下需要用到多OSPF进程呢?一般而言,一台路由器创建一个OSPF进程,可以实现网络的需求,但是在一些特殊的、复杂的环境当中,单一的OSPF进程可能无法满足要求,因此在一台路由器上创建多个OSPF进程,这样一来的直接好处是,这台路由器从原先的角色--OSPF interArea Router,变成了一台ASBR,它可以在进程之间重发布、可以过滤路由或LSA、可以操控路由、可以做基于route-map的策略、可以做路由汇总等等。

OSPF度量值(Metric):
  -OSPF使用路径开销(Cost)作为度量值;默认情况下,该值的计算结果取决于接口的带宽

  -在每一个运行OSPF的接口上,都维护者一个接口Cost

  -接口Cost=100M/接口带宽,其中100M为OSPF的参考带宽
  -路径开销是指到达目标的所有路径开销之和

  

  修改接口的Cost值

Router(config)#interface fa0/
Router(config-if)#ip ospf cost number(取值范围1~)   //OSPF路由器在接口上使用cost值来决定最佳路径

  配置loopback接口地址

//用于产生路由器的Router ID
Router(config)# interface loopback
Router(config-if)# ip address IP地址 掩码

  开启OSPF路由进程

//本路由器的进程号,用于标识同一路由器上的多个OSPF进程(仅本地有效)
Router(config)# router ospf 进程号

  指定OSPF协议运行的接口和所在的区域

//宣告特定的网络到OSPF区域
Router(config-router)# network 网络号 反向掩码(通配符掩码) area 区域号

 *通配符是一个用于决定哪些IP地址位该精确匹配(0代表精确匹配)哪些地址位被忽略的32位数值,通常用于处理访问控制列表(ACL)、OSPF和EIGRP等路由协议的网络通告。

OSPF建立邻居关系需满足条件:
  -Area-id:两个路由器必须在共同的网段上,它们的端口必须属于该网段上的同一个区,且属于同一个子网

  -验证(Authentication OSPF):同一区域路由器必须交换相同的验证密码,才能成为邻居

  -Hello Interval和Dead Interval: OSPF协议需要两个邻居路由器的这些时间间隔相同,否则就不能成为邻居路由器
  -stub区域标记:两个路由器可以在Hello报文中通过协商Stub区域的标记来成为邻居

OSPF工作流程

  

  1、OSPF网络中,直连的路由器之间建立邻接关系(建立邻居表)
  

  2、OSPF将LSA泛洪到区域中的所有OSPF路由器,从而使这些路由器了解该OSPF网络内的链路状态信息,以创建 OSPF 链路状态数据库(建立拓扑表)

  

  3、使用 SPF 算法计算到每个目的地的最短距离,并将其置于路由表中(建立路由表) 
  

宣告方式:
  一、网段宣告

OSPF单区域配置命令:

  

 单区域存在的问题

  LSA泛洪严重,OSPF路由器的负担很大

  区域内部动荡会引起全网路由器的SPF计算

  LSDB庞大,资源消耗过多,设备性能下降,影响数据转发

  每台路由器都需要维护的路由表越来越大,单区域内路由无法汇总

OSPF多区域配置命令:
  

  R1

R1(config)#interface GigabitEthernet0/0
R1(config-if)#ip address 10.64.0.1 255.255.255.0
R1(config-if)#ip ospf cost 10
R1(config)#router ospf 9
R1(config-router)#network 10.64.0.0 0.0.0.255 area 0

  R2

R2(config)#interface GigabitEthernet0/0
R2(config-if)#ip address 10.64.0.2 255.255.255.0
R2(config)#interface GigabitEthernet0/1
R2(config-if)#ip address 10.2.1.2 255.255.255.0
R2(config)#router ospf 8
R2(config-router)#network 10.64.0.0 0.0.0.255 area 0
R2(config-router)#network 10.2.1.0 0.0.0.255 area 1

  R3

R3(config)#interface GigabitEthernet0/1
R3(config-if)#ip address 10.2.1.1 255.255.255.0
R3(config)#router ospf 5
R3(config-router)#network 10.2.1.0 0.0.0.255 area 1

 多区域的优点
  减少了LSA洪泛的范围,有效地把拓扑变化控制在区域内,达到网络优化的目的

  在区域边界可以做路由汇总,减小了路由表

  充分利用OSPF特殊区域的特性,进一步减少LSA泛洪,从而优化路由

  多区域提高了网络的扩展性,有利于组建大规模的网络

  二、接口宣告

//查看邻居列表
Router#show ip ospf neighbor
//查看链路状态数据库
Router#show ip ospf database
//查看OSPF接口
Router#show ip ospf interface  
//查看ospf路由条目
Router#show ip route ospf
//查看OSPF的配置
Router#show ip ospf
//查看当前路由协议
Router#show ip protocols
//查看到达网络192.168.1.0的路由信息
Router#show ip route 192.168.1.0

CCNA2.0笔记_OSPF v2的更多相关文章

  1. CCNA2.0笔记_OSPF v3

    OSPF v3 是可以在ipv6上实现路由的一种路由协议 OSPF v2(for IPv4),OSPF v3(for IPv6)在一台路由器中互相独立运行 OSPF v3与v2有很多类似的功能: - ...

  2. CCNA2.0笔记_动态路由

    动态路由协议: 向其他路由器传递路由信息 接收(学习)其他路由器的路由信息 根据收到的路由信息计算出到每个目的网络的最优路径,并由此生成并维护路由表 根据网络拓朴变化及时调整路由表,同时向其他路由器宣 ...

  3. CCNA2.0笔记_安全管理设备

    设备安全 配置Console密码 Switch(config)#line console 0 Switch(config-line)#login Switch(config-line)#passwor ...

  4. CCNA2.0笔记_WAN技术-帧中继

    帧中继   -使用虚电路进行连接: -提供面向对象的服务 -帧中继 PVC 由 DLCI 标识,PVC 的状态通过 LMI 协议报告 Frame Relay NBMA连接引起的路由协议问题:  -水平 ...

  5. CCNA2.0笔记_WAN技术-专线

    WAN拓扑 Routers.CSU/DSU.WAN switches.Core routers.Modems 使用 数据链路层协议(二层) 来建立对端连接 WAN的三种连接方式 广域网链路类型: ·V ...

  6. CCNA2.0笔记_NAT

    NAT:园区网内的PC是私有地址,整个园区网共享一个公有IP,如果园区网内的PC不做NAT,那么在发数据包给外网的时候会出现传输问题 NAT的原理:改变IP包头,使目的地址.源地址或两个地址在包头中被 ...

  7. CCNA2.0笔记_ACL

    要点: 1.按顺序执行,一旦某条语句匹配,后续语句不再处理. 2.默认ACL 结尾语句是deny any,所以你要记住的是在ACL 里至少要有1 条permit 语句. 3.记得创建了ACL 后要把它 ...

  8. CCNA2.0笔记_ipv6的EIGRP

    IPv6的eigrp特征: 邻居发现 增量更新 快速收敛 负载均衡 三个表 -邻居表 -拓扑表 -路由表 配置ipv6的eigrp Router(config)#ipv6 unicast-routin ...

  9. CCNA2.0笔记_EIGRP

    EIGRP特征: •高级距离矢量路由协议 •快速收敛——路由条目不过期,拥有备份路由 •负载均衡 •无类路由 -支持 VLSM 和不连续子网,可关闭自动汇总(建议关闭) •占用带宽小 -触发更新(当拓 ...

随机推荐

  1. python编码规范、js编码规范及IDE的检查插件pylint/eslint等

    一.python规范 参考:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/的风格规范和语 ...

  2. 如何Oracle查出一个用户具有的所有系统权限和对象权限

    1. 系统权限 SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'LCAM_SYS_1216' UNION ALL SELECT * FROM DBA_SYS_ ...

  3. 关于判断语句中如:while not xx: 或者:if not xx: 的含义及用法解析

    关于判断语句中如:while not xx: 或者:if not xx: 的含义及用法解析 name='' while not name: name=raw_input(u'请输入姓名:') prin ...

  4. 你以为border-radius只是圆角吗?【各种角度】

    border-radius,国内翻译成圆角,你可能以为这个属性就是用来画圆角,没错,但是除此之外,它还可以做点别的事情. radius其实指的是边框所在圆的半径,这个CSS3属性不仅能够创建圆角,还可 ...

  5. http://www.ruanyifeng.com/blog/2013/07/gpg.html

    http://www.ruanyifeng.com/blog/2013/07/gpg.html

  6. 【实践】用 js 封装java shuffle函数(打乱数组下标方法)

    此方法返回的会是一个全新的数组 所以并不会像java里的shuffle函数一样返回一个引用一样的数组 思路如下: 1.新建一个函数传入需要打乱下标的数组 2.获取数组的长度 3.新建一个用来保存并且返 ...

  7. DevExpress 项目目录列表参考(收集的 350个cs project)

    DevExpress.ExpressApp.Tools\DBUpdater\DBUpdater.csproj DevExpress.BonusSkins\DevExpress.BonusSkins.c ...

  8. database工具

    JetBrains DataGrip:一个可以支持多种数据库的IDE

  9. 算法笔记_098:蓝桥杯练习 算法提高 盾神与条状项链(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n ...

  10. ES6 for...of循环

    1.for of const arr = ['red', 'green', 'blue']; for(let v of arr) { console.log(v); // red green blue ...