r2#sh ip ospf border-routers 查看ABR
修改OSPF接口优先级
r1(config)#int e 0
r1(config-if)#ip ospf priority 100
修改OSPF默认LOOPBACK口地址32位
r1(config)#int lo 0
r1(config-if)#ip ospf network point-to-point
DR选举原则:
1:在选举期间(默认40秒),优先级高的成为DR,次高的成为BDR;
2:在选举期间,如果优先级一样,router-id高的成为DR,次高的成为BDR;
3:在选举期外,不存在抢占性;
4:DR失效以后,BDR升级成为DR,重新选举BDR;
5:clear ip ospf process(重启OSPF进程)可以重选。
查看LSDB:
sh ip ospf database 包括所有LSA类型
查看LSA 1型(类型一描述邻居)
sh ip ospf database (router) 查看LSA类型1(Router Link States)
类型二描述DR,所以要多路访问才会出现:
sh ip ospf database (network)
多了Net link states 类型二(包括link id,DR是谁,接口,掩码多少,存在多少邻居)
通过上两种LSA信息可以描述这个AREA的拓扑。
类型三描述跨区域信息(ABR)
summary net link 不同区域不能描述对方拓扑。
LSA 5型
external link states
stub区域(所有该区域的路由器都要配)
r3/5:
router ospf 110
area 35 stub
过滤5类的LSA(外部路由)
生成3类的LSA默认路由
total stub除了过滤域外路由(如引入的eigrp路由)外,还过滤OSPF域间路由LSA 3。
同样生成3类默认路由
该区域所有路由器都打上:
router ospf 110
area 35 stub
该区域的ABR上打
area 35 stub no-summary
LSA 4型:
因为LSA 5型的公告路由器(ASBR)是不会改变的,所以需要4型来为除了AREA0 以外的区域寻路。
LSA类型4的作用,描述ASBR所在位置
LSA类型4由区域的ABR产生。
NSSA区域
Not-so-stubby areas:
可以过滤area0发来的外部路由,但可以引进外部路由到其他area。
过滤5类LSA,但是可以引入外部路由
产生LSA 7(由区域概念 nssa本区域可以看到O N2,别的区域看不到。)
NSSA区域的ABR同时也是ASBR,负责把7类LSA转换成5类LSA。
OSPF(Open Shortest Path Fisrt)
理论:
OSPF三张表(OSPF AD:110)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.Neighbor table(列出了所有和本路由器直接相连的OSPF邻居)
2.Topology table(LSDB链路状态数据库)
列举了所有从自己的邻居那得到的LSA,(Flooding/泛洪),
在同一个OSPF区域中的路由器,都有完全一致的OSPF Database。
一个OSPF区域,就对应着一个OSPF Database。
3.Routing table:(从OSPF这个路由协议,学到的路由。)
在OSPF的数据库中,通过SPF算法,计算得到了路由。
也称为:Forwarding Database
OSPF网络的层次化设计,区域划分,及划分的目的:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ospf two-level hierarchy:
Transit area (backbone or area 0)
Regular areas (nonbackbone areas)
划分的目的:
1.提高路由效率:
缩减部分路由器的OSPF的路由条目。
对某些特定的LSA,可以在区域边界(ABR/ASBR)上,实现汇总/控制/过滤。
(通过OSPF的汇总路由/默认路由实现OSPF区域之间的全网互通)
2.提高网络稳定性:
当某个区域内的一条OSPF路由出现抖动时,可以有效控制受影响的波及面。
(对于大型的路由协议来说,稳定是很重要的一个因素。)
3.OSPF VS. IS-IS的区域可扩展性的对比:两种协议的算法都是基于SPF算法
OSPF:以Area0为BackBone。(比较好)
IS-IS:以Level2的链路为BackBone,以链路为区域分界。 (很好)
OSPF Routing updates and topology information are only passed between FULL adjacent routers.
物理网络链路类型分类:(L2概念)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.P2P(HDLC/PPP Serial/ Point2Point Sub-if)    一定要求是Full状态.
  (点对点链路)                        (没有DR/BDR的选举的,代表是E1,两台路由器直连)
  (WAN/广域网)
 
2.BMA:Broadcast Multi-Access
(EtherNet/TR/FDDI)(代表是局域网)    (有DR/BDR的选举的)

默认可以传输广播流量的,多路访问网络

3.NBMA:Non-Broadcast Multi-Access
(FR/ATM/X.25)(代表是广域网,如帧中继)    (有DR/BDR的选举的)    

默认不传输广播流量的,多路访问网络

OSPF的SPF算法:
~~~~~~~~~~~~~~~~~
1.每一个OSPF区域,就对应着一个独立的OSPF Database(LSDB)
    意味着同在一个OSPF区域中的,所有路由器,都有相同的一个LSDB
2.每一个OSPF路由器,都生成了以自己为根的,一棵SPF树。
3.从本路由器出发,到特定目标网络的整体开销最小的那个路径,成为最佳路径。
4.那么这条最佳路径,就成为OSPF这个协议,提交给路由表的,到达这个目标网络的路由。
LSA的传播更新规律(OSPF是LS协议,无需遵循水平分割,DV协议才遵循水平分割。)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Step1:如果本路由器从来没有收到过此LSA,那么路由器就将其加入LSDB,并且转发/泛洪此LSA,同时继续SPF计算,得出达到此目标的最佳路由。
Step2:如果本路由器,曾经受到过描述同一个网络的LSA:(seq:100)
    2-1.如果新收到的LSA序号与自己已有的相同(seq:100),则丢弃此LSA。
    2-2.如果新收到的LSA序号比自己已有的更新(seq:101),则同Step1,去计算最佳路由。
    2-3.如果新收到的LSA的序号,比自己的更旧(seq:99),就将自己较新的LSA,发送给源。
OSPF的5种数据包
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.Hello(建立和维护邻居(Neighbor)关系,路由器发送Hello包的缺省时间间隔是10秒)
2.DBD(Database Description)
3.LSR(LinkStatus Request)
4.LSU(LinkStatus Update)(LSA是包含在LSU中的)
5.LSAck
OSPF的Protocol ID:89(EIGRP:88)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在OSPF的Hello包中,影响建立邻居关系的4个关键因素:
    Hello/dead interval
    Area-ID(链路所在的Area ID)
    Authentication password(OSPF认证的密码)
    Stub area flag(NSSA标示位)
这四个因素必须匹配才能建立邻居,否则无法建成OSPF邻居
在BMA网络和点对点网络上,默认的Hello Interval值是10秒,Dead Interval值是40秒。在NBMA网络上,默认的Hello Interval值是30秒,Dead Interval值是120秒。
修改Hello Interval和Dead Interval的值:(在接口上修改)
R1(config-if)#ip ospf hello-interval time(time的取值为1-65535秒)
R1(config-if)#ip ospf dead-interval time(time的取值为1-65535秒)
OSPF邻接关系的建立过程:
~~~~~~~~~~~~~~~~~~~~~~~~
1.Down(路由器A从运行OSPF的接口以组播地址224.0.0.4发送Hello数据包)
2.Init(所有收到从路由器A发送来的Hello数据包的路由器,都把路由器A添加到自己的邻居Neighbor列表中)
3.Two Way(所有收到路由器A的Hello包的路由器都向其发送一个单点传送的回复Hello包,其中包含有它们的信        息。路由器A收到这些信息后,检查这些数据包,把哪些Hello包的邻居域中有自己ID的路由器也加入        自己的    邻居列表中。在这个过程中同时选举出DR和BDR)
4.Exstart(DR和BDR与其他的路由器建立相邻关系(Adjacency)。
5.Exchange(由DR向其他路由器发送数据库描述数据包(DBD,Database Description)。DBD有序号,由DR决定DBD        的序号)
6.Loading(发送链路状态请求包的过程)
7.Full(路由器及哪个新的链路状态条目添加到它们的链路状态数据库中。当所有的LSR都得到答复时,相邻的路由        器就被认为达到了同步并处于“Full”状态了。路由器必须在达到Full状态后才能正常转发数据。此        时区域内的每个链路应该都有相同的数据链路状态数据库。)
OSPF数据包的发送地址
~~~~~~~~~~~~~~~~~~~~~~~~~~~
DR/BDR notifies LSU on 224.0.0.5(映射到二层MAC地址:010005e0000005)
DR-Other notifies LSU to OSPF DR on 224.0.0.6(映射到二层MAC地址:010005e0000006)
DR负责宣告整个网络的路由更新,BDR或DR-Other只能先把路由更新先发给DR,然后再由DR发给BDR和DR-Other
每次收到LSU,路由器在重新计算路由表之前等待一段时间,默认是5秒。每个LSA都有一个老化(Aging)计时器,到期时由产生该LSA的路由器再发送一个有关该网络的LSU以证实该链路仍然是活跃的,这个Aging时间默认是1800秒。
DR和BDR是在交换Hello数据包的过程中选举出来的,然后其他路由器都与DR和BDR建立相邻关系。每台DR-other路由器都只与DR和BDR建立相邻关系(Adjacency),交换链路状态信息。
LAB1.OSPF的Router-ID(要求全网唯一)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一旦启动OSPF,立刻确定Router-ID
通过此命令察看Router-ID:
R1#show ip ospf
在OSPF路由器上,确定Router_ID的3个优先级别:
Step1:(建议使用router-id命令来确定Router-ID)
通过router-id命令,修改Router-ID,其优先级别最高,也是建议的。(先建立一个LOOPBACK口作为R-ID用)
R1(config)#router ospf 110
R1(config-router)#router-id 100.0.0.1
Step2:假如没有通过router-id命令指定router-id,
那么路由器会自动的将自己的环回口的IP,作为router-id.
如果存在多个环回口,
那么路由器会自动的选择一个IP地址最大的那个环回口IP作为自己的Router-ID。
Step3:
如果路由器上,连一个环回口都没有,
那么路由器会自动从当前是Active(激活状态下:UP/UP)的物理接口中,
选择IP地址最大的那个接口的IP作为自己的Router-ID。这是很不稳定的,不建议的方法。
LAB2.通过反掩码控制有哪些接口,在运行OSPF(在OSPF/EIGRP中,network命令中携带的反掩码不表示接口网络长度,而表示运行路由协议的接口的范围,即有哪些接口在运行OSPF)
反掩码/通配符:wild card bits
反掩码原则:
0:表示准确匹配
1:表示忽略不计
LAB3.
show ip ospf neighbor (detail) (查看路由器的OSPF邻居表,当前有哪些OSPF的邻居,DR/BDR/DR-other状态)
show ip ospf interface (查看有哪些接口在运行OSPF,本路由器是DR,或者BDR,还是DR-other,还有优先级)
show ip ospf database
show ip route ospf
LAB4.DR/BDR的选举:(只发生在多路访问网络/Multi-Access Network,BMA和NBMA)
1.在点对点链路,是没有DR/BDR的选举
2.在BMA网络中:
2-1.OSPF首先通过优先级,控制DR/BDR的选举:
    优先级越大,越可能成为DR。OSPF路由器的优先级,默认是1。
    如果需要进行DR的人为控制,应该建议,通过OSPF的接口优先级进行控制。
修改特定接口的优先级
R1(config)#int s0
R1(config-if)#ip ospf priority 10
R1#clear ip ospf process(清OSPF进程)
特别注明:OSPF的优先级是针对某个特定的MA接口而言的,不是针对整个路由器的。
2-2.如果OSPF路由器的优先级,全部都是默认值1,路由器默认通过Router-ID,选举DR/BDR,Router-ID最大的成为DR,次大的成为BDR。其余的统统都是DR-other。
3.在Hub&Spoke的NBMA网络中,中心点(HUB)应该成为DR。
结论:
1.同一个路由器的不同MA接口,可能在不同的MA网络中,充当不同的DR/BDR/DR-other.
2.在一个MA网络中:
DR/BDR与所有的邻居都是Full状态,DR-Other与DR/BDR是Full的,但与别的DR-Other是2way状态。
特别注意:
只有Full状态才能交换路由信息。
关于MA(Multi-Access)网络的DR/BDR的选举:
Step1.根据OSPF路由器的OSPF接口的优先级选举DR/BDR:
    每个接口默认的优先级都是:1。
    其中优先级最大的成为DR,次大的成为BDR,其它的都是DR-Other。
    如果有路由器的Pri:0,放弃DR/BDR的选举,成为DR-Other。
    (OSPF Priority:0~255)
Step2.如果接口的优先级相同,将使用Router-ID来进行DR/BDR的选举:
    其中Router-ID最大的成为DR,次大的成为BDR,其它的都是DR-Other.
在选出DR/BDR后,如果有新的优先级更高的路由器加入,那么新加入的路由器并不会成为DR/BDR,需要在下次选举中才能生效。
最长匹配,AD比较,Metric比较
先比较最长匹配如(10.2.2.0/24,10.0.0.0/8,将选10.2.2.0/24,而不管路由协议的AD),然后比较AD,最后比较Metric。

1.4-动态路由协议OSPF①的更多相关文章

  1. HCNA Routing&Switching之动态路由协议OSPF基础(一)

    前文我们了解了基于路径矢量算法的动态路由协议RIP防环以及度量值的修改相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15012895.html:今天我 ...

  2. HCNA Routing&Switching之动态路由协议OSPF建立邻居的条件

    前文我们了解了OSPF的router id.数据包结构.类型.不同类型的数据包作用以及OSPF状态机制,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15027 ...

  3. 1.4-动态路由协议OSPF⑧

    OSPF认证(保证寻路协议级别的网络安全) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 按照参与认证的成员,进行分类: 1:链路认证(参与认证的成员 ...

  4. 1.4-动态路由协议OSPF⑥

    OSPF Network Type/网络类型     (Run Mode/运行模式) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 物理 ...

  5. 1.4-动态路由协议OSPF④

    多区域的OSPF: 划分多区域的主要目的: 1.减少每个区域中的路由条目,进而减少每个路由器的内存中的路由,及其内存消耗,提高转发效率. 2.因为每一个OSPF区域对应在一个OSPF LSDB,配合在 ...

  6. 1.4-动态路由协议OSPF③

    OSPF的路由汇总 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         用默认的网络地址 因为 无论在何种路 ...

  7. 1.4-动态路由协议OSPF②

    LAB2.通过反掩码控制有哪些接口,在运行OSPF ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   step1:启动OSPF,并宣告网络: R1(config ...

  8. 1.4-动态路由协议OSPF⑤

    OSPF的特殊区域(Stub/total Stub区域,无法引入外部路由): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 第一种 ...

  9. HCNA Routing&Switching之动态路由协议OSPF基础(二)

    前文我们主要了解了OSPF的区域.区域分类.路由器类型.OSPF的核心工作流程,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/15025533.html:今天 ...

随机推荐

  1. C#模拟百度登录并到指定网站评论回帖(四)

    基本的实现功能前面已经全部讲完,基本上可以复制黏贴完成登录百度的过程了 今天的这一贴就说说怎么获取百度的验证码 内容回顾:还记得前面第一贴说的如果登录发生异常,百度会发回2个值吗?是的,就是codeT ...

  2. springboot与dubbo整合入门(三种方式)

    Springboot与Dubbo整合三种方式详解 整合环境: jdk:8.0 dubbo:2.6.2 springboot:2.1.5 项目结构: 1.搭建项目环境: (1)创建父项目与三个子项目,创 ...

  3. 业余开发Android App的架构演变

    闲暇之余,开发了一款休闲类app,虽然用户量不多,但确实花了不少心血在这上面.然而,开发出来的结果,与之前想好的架构,还是有不少区别. 下面,记录下这款app架构的演变: 最初,只想写个app,能与机 ...

  4. Android 读取asset文件

    * * 从Assets中读取图片 */ private Bitmap getImageFromAssetsFile(String fileName) { Bitmap image = null; As ...

  5. PHP实现写LOG日志的代码

    这篇文章给大家介绍的内容是关于PHP实现写LOG日志的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. public function write_log(){ //设置目录时间 ...

  6. Django基础核心技术之Model模型的介绍与设计

    Django基础核心技术之Model模型的介绍与设计原创: Yunbo Shi Python Web与Django开发 2018-05-03Django网络应用开发的5项基础核心技术包括模型(Mode ...

  7. CAD使用SetxDataDouble写数据(网页版)

    主要用到函数说明: MxDrawEntity::SetxDataDouble 写一个Double扩展数据,详细说明如下: 参数 说明 [in] BSTR val 字符串值 szAppName 扩展数据 ...

  8. oracle数据库子查询的结果需要使用多次解决办法

    with c as (select a.trandt,sum(a.tranam) tranam from tran a group by a.trandt )--将子查询抽取出来,以后可以直接用.该方 ...

  9. pipreqs(找当前项目依赖的包)

    pipreqs pipreqs可以帮你找到当前项目的所有组件及其版本.就是当别人给你一个程序的时候,你要在自己电脑上运行起来,就需要安装程序所依赖的组件,总不能自己一个一个找吧. # 安装 pip3 ...

  10. Django REST framework 数据处理api

    一.url分发 以防有其他业务线的需要,导致url杂乱,将每个app用到的url都设置在自己的应用中. # 项目下的url url(r"^api/(?P<version>\w+) ...