未名2。

OSPF

距离矢量:RIP、EIGRP,邻居交换的是路由,是计算后的的结,不够准确
链路状态:OSPF,邻居交换LSA,路由是自己计算,有更多更准确详细的关于网络拓扑的信
息。
OSPF的协议号:OSPF=89,EIGRP=88

OSPF区域内交换LSA,域间交换路由。
Open Shortest Path First开放式最短路径优先协议:
是一种典型的链路状态路由协议,在同一个区域中,所有运行OSPF协议的路由器都维护
一个相同的描述链路状态信息的拓扑数据库,OSPF用这个拓扑数据库通过SPF算法计算出
最佳路由放到其路由表。

整个网络分成 area
area中的一个机器跟周围的人(同一个网段)建立邻居联系(HELLO报文)。
这群人中威望(优先级)最高的人会成为首领(DR、BDR)。其它人则是小弟
(DRother 邻居关系)
你跟首领是上下级关系,你向他报告(邻接)。而其它人虽然跟你有连接,但你们不
会有过多交往。
小弟和首领之间会交换信息(DR和DRother之间),首先是告诉彼此知道的地图的地
名(database description数据库存描述报文DBD)。
比如你对比后发现地图中缺少了某个地名,则会向对方索求这个地名的详细资料
(link state request请求更新LSR),以便你描绘地图。
然后对方会将一份详细资料发送回来(link state update更新LSU)。
收到这个资料后,要致谢表示收到了(ack)。
这样你便尽可能的描绘出了一份地图(link state database链路状态数据库)。
通过利用这个地图,你通过SPF算法,计算到所有地方的最短的路,记为一张表(routing
table路由表)。如果路由表中的某一条路不通了,则要通过地图重新计算到目的地
的新路再放到路由表中。
虽然你周围的一群人跟你有联系(邻居关系),但消息却要通过首领来知道(邻接关
系)。


OSPF
OSPF将网络分为5种类型:

point-to-point:hello发送到224.0.0.5,邻居自动发现,不要DR。

  • 应用:HDLC、PPP、帧中继点对点子接口

broadcast multiAccess: hello发送到224.0.0.5,邻居自动发现,要DR---不要手工干预

  • 应用:ethernet

point-to-multipoint:认为是多个点到点的网络,所以不要DR,hello发送到224.0.0.5,邻居自动发现(要求虚电路能够允许发送广播or组播)

NBMA(non broadcast multiAccess):hello发送到单播地址,邻居手工指定(router ospf  1、neighbour x.x.x.x),要DR, 要人工干预(让OSPF选出正确DR)

  • 应用:帧中继未划分子接口、帧中继划分多点子接口

点到多点非广播:邻接关系手工配置,不要DR

----------------配置网络类型:

  • in s0/0

  • ip ospf network ?


OSPF中有5种报文:

  • 1、HELLO。

  • 2、datebase description 描述本地数据库的摘要。

  • 3、LS request请求链路状态(发给对方)。

  • 4、LS update请求更新(对方响应你的请求,回应过来的更新数据)。

                ---------LSA: LSU中包括了LSA,LSU是载体,LSA须放到LSU里面发送。LSDB同后,30min  发送一次或者触发更新。

  • 5、LS ACK(你收到了,回应确认信号)。

LSA的7种类型:

  • 1、router LSA:每个路由器为其所属区域产生一条,描述它的链路状态信息,区域内泛洪
    2、network LSA:DR产生,补充R LSA中无法讲的多路访问的网络信息(该多路访问网络的掩码、该多路访问网络的路由器列表,区域内泛洪)
    TYPE1+TYPE2=本区域的网络拓扑,利用STP计算出区域内部路由

    3、summary LSA:原始ABR产生,由后续ABR重新生成,整个OSPF域泛洪,泛洪的是路由,每一条区域路由,将对应产生一条type3 LSA,最好将它汇总(在ABR上汇总),减少带宽
    4、ASBR-summary LSA:ASBR所在区域的ABR产生,目的是让其它区域的路由能够知道ASBR所在的位置
    5、AS Extermal LSA(外部LSA):ASBR产生,每一条外部路由引入时,对应产生一条TYPE5
    type4让别人知道ASBR的位置,type5产生外部路由
    type4+type5=计算AS外部路由,泛洪整个OSPF域,泛洪过程中,type5内容没有更改
    6、
    7、NSSA

OSPF数据结构:

  • 邻居表:(邻居关系条件:同一子网、HELLO HOLD间隔、area、验证、stub区域标志、MTU)

  • 链路状态数据库LSDB:每个路由器保存的LSDB都相同,LSDB同步

    完以后,STP计算得到最佳路由后提交到路由表。

  • 路由表:(路由表是根据链路状态数据库计算出的,所以链路状态数据库包括了路由表

          所有的areaN都必须和area0相连,如果没有0区域,则其它的区域之间不可以发现对
          方。单区域不为0也可以。
          邻居之间通过HELLO包发现并维持:

  • EIGRP 5s发送一次,12倍的HELLO时间是死亡时间,邻居之间时间设置可以不一致。

  • OSPF  10s发送一次,4位的HELLO时间是死亡时间,邻居之间的时间设置必一致。

OSPF是基于带宽的: 

  • cost=100 000 000/接口带宽 (以100M作为标准),所以cost为1的时候最好,如果接口带宽大于100M,cost一样是1。

RID:物理接口IP最大的为RID。如果有逻辑接口(摸不到的)存在,如loopback0,则
loopback为RID
如果有两个逻辑接口,则逻辑接口IP大的为RID。

推荐使用lookback作为RID。
DR(Designated Router )和BDR(Backup Designated Router)
DR:
在广播和NBMA类型的网络上(串口不会有DR和BDR,因为串口是点对点类型的网络,
只有一对路由器),任意两台路由器之间都需要传递路由信息(flood),如果网络
中有 N 台路由器,则需要建立N *(N-1)/2 个邻接关系。任何一台路由器的路由变化
,都需要在网段中进行N*(N-1)/2 次的传递。这是没有必要的,也浪费了宝贵的带
宽资源。为了解决这个问题,OSPF协议指定一台路由器DR(Designated Router)来
负责传递信息。所有的路由器都只将路由信息发送给DR,再由DR将路由信息发送给本
网段内的其他路由器。两台不是DR的路由器(DROther)之间不再建立邻接关系,也
不再交换任何路由信息。这样在同一网段内的路由器之间只需建立N个邻接关系,每
次路由变化只需进行2N 次的传递即可。
作为中间人,人家传的包都要经过它。比较HELLO优先级,最高的为DR,次高为BDR,
相同时,比较RID.
RID推荐使用lookback口。
BDR:作为中间人备份。
DROTHER:不是DR 也不是BDR。
选举完成后,
DRother只会和DR,bdr成为邻接。DROTHER之间不会和彼此形成邻接,但是是邻居关
系。
DR BDR发送HELLO到224.0.0.5,监听224.0.0.6
BRother发送HELLO到224.0.0.6监听224.0.0.5

DR/BDR:多路访问中减少邻接个数使LSA泛洪量小,节省带宽。


LSDB:由LSA组成,LSU是LSA的载体。

  1. 路由器收到LSA

  2. 看LSDB里面有没有,如果有,看序列号是不是相同,相同,就忽略它。

  3. *(A阶段):如果没有,加到LSDB。

  4. 然后发送LSACK给发送源。

  5. 把更新发送给所有的邻居,(flood lsa)

  6. 重新运行SPF算法,计算新的路由表。

  7. 收到的LSA,LSDB里面有了,但序列号不一样,序列号高的,则执行A阶段,如果序列号低,则把LSU发送给源,告诉它这个更新。


路由器之间建立联系过程:

init state:

A先说,im RID i see no one.谁先说都是随机的。
B收到后,则加到邻居表里面,然后反馈,im RID i see U。
A收到后加到邻居表。

(RID推荐使用lookback口。)

收到邻居的hello(包括邻居的ID和一个邻居的邻居组成的列表),如果从邻居的
邻居表中看到自己的ID,进入two-way(即路由器ID彼此出现)
***************************twoway形成。

如果是广播链路,则要先选举DR、BDR

  • router id大的成为DR

  • 非抢占式选举

  • router osif 1、router-id x.x.x.x最优先

  • loopback接口最大的ip为RID,物理接口最大IP的为RID

Extart:

互为邻居的两台路由器,根据直连的接口IP选出较大的为master,主要决定谁来发起通信,这个无关紧要。

A hello说我来负责exchange(DR),因为我RID是...

B hello说我才是exchange,因为我RID比你高。

协商完成,B成为DR。


Exchange:

交换数据库描述分组,DBD包:B send database description of LSDB。

A回DBD。

双方收到后发送LSack。


Loading:

交换LSR&LSU,以填充LSDB

LSR包:A说 i need XXX。

B回LSU:here u r,多条LSA级成LSU。

A回ACK。


Full。


串口链路上会形成FULL state状态。(因为它们是点对点的)
以太网广播类型的网络(多路访问):
DRother之间只能形成 twoway状态(因为DRother之间彼此之间不交换信息)
DR BDR和DRother之间是FULL state状态。

A发送LSU到DR,DR把LSU洪泛到本区,其它人收到LSU之后则继续往下面洪泛,然后执
行算法,重新计算路径。

OSPF汇总:

RIP、EIGRP接口汇总,距离矢量

OSPF:在路由器上汇总

router ospf 1
area area-id range 172.16.0.0 255.255.0.0

ABR:汇总区域内路由
ASBR:汇总OSPF区域外路由


下发缺省路由:

在网络的边界,将通告0.0.0.0/0路由给OSPF区域内所以有路由器,这样其它OSPF路由器就可以学习到0.0.0.0的缺省路由
至于本路由器,可以通过静态配置0.0.0.0或其它路由协议BGP得到0.0.0.0的路由

1、非强制下发
router ospf 1
default-information orieinat
该路由器的路由表必须存在0.0.0.0/0的路由(并且该缺省路由不是通过OSPF进程学习到的),才能下发缺省路由(手工配置、BGP)。允许通过OSPF进程学习0.0.0.0/0

2、强制下发
router ospf 1
default-information orieinat always
该路由器无条件下发缺省路由,不允许通过本OSPF进程学习0.0.0.0/0

问题:
若2个出口路由器都配置了OSPF非强制下发缺省路由,不会形成环路
若2个出口路由器都配置了OSPF强制下发缺省路由,不会形成环路
若1个出口配置OSPF强制下发,另1个出口配置非强制下发,不会形成环路

OSPF特殊区域

Normal:
stub:不允许type4和type5(5是4的补充,所以相当于也不允许5、使用缺省路由去往自治系统外部
totally stub:不允许type 3、4、5,使用缺省路由去往其它区域
nssa:stub+type7,外部需要向stub注入外部路由,由于stub区域无LAS 5,则产生了类型7,nssa区域的ABR会将type7 转化成type5


vritual link

骨干区域、非骨干区域:非骨干区域之间相连会造成环路(STP只能保证区域内无环),域间无环要求非骨干区域之间互不相连,所有流量通过骨干区域。
virtual-link:两个区域0之间隔着区域1(区域0之间要通过vritual-link相连)。
配置:在ABR 1.1.1.1上配:   area 1 virtual-link 2.2.2.2(对端RID)
两端都要配。

或者区域0和区域2之间隔着区域1(区域0和2之间要通过vritual-link相连)


命令:
router ospf 65535 (进程ID,同一个路由器上可能运行多个OSPF,通过进程ID区分)
network 10.1.1.0 0.0.0.255 area 0(意思是在这个网段上所在的接口启用OSPF。推荐,加掩码好像也行???

使用精确匹配。这个跟RIP上的network命令意思不一样,RIP的是宣告该网段。
network 10.1.1.2 0.0.0.0 area 0(推荐精确匹配)。

查看RID:
sh ip protocals
sh ip ospf nei
sh ip ospf int
sh ip ospf

查看带宽:
sh int s0/0

查看cost:
sh ip ospf int s0/0
更改cost:
ip ospf cost 1234

生效:
clear ip ospf procals

当F0/0--F0/1 相连时,虽然是多路访问类型(也会型成DR BDR),但可以看成是点对点的,所以可以设置成点对点的网络类型,这样它们就不会选DR BDR了
int f0/0
ip ospf network point-to-point

修改网络类型:
int f0/0
ip ospf network point-to-point/broadcast/point-to-multipoint

int f0/0
ip ospf hello-interval 30 HELLO时间为30s
ip ospf dead 10 死亡时间为10s

hello dead network MTV两个端口之间这些值不一样的话则不能形成邻居。

评论