CCIE SP-OSPF 小结

经过两个星期的努力,终于结束了OSPF的Training。
下面做些总结,由于内容较多,只概述重点,作为之后复习之用。

链路状态路由协议特点

距离矢量路由协议与链路状态路由协议有很多的不同,这里我不过多参数。
我只举一个例子:
1.对于距离矢量路由协议,大家可以把它看成“指示牌”。人们看到后,只知道下一个站点怎么走,距离是多少,无法预知更远的。
2.对于链路状态路由协议,大家可以把它看成“地图”,如果想去一个地点,我们会根据需要根据地图标记出最短的路径。

SPF算法简介

SPF是链路状态路由协议的核心算法,包括ISIS、OSPF。
那么它是如何工作的呢?
1. 描述自己的直连网络—刚加电
2. 向邻居发送Hello包—建立邻居关系
3. 建立链路状态数据包(LSP)—建立邻接过程
4. 向邻接泛洪链路状态数据包—更新LSDB
5. 构建链路状态数据库—同步LSDB

对于SPF算法,可以用一个比较形象的实例来说明:
在一个班里,老师给了每个学生5张纸片。让他们把自己、前、后、左、右的名字分别写在纸片上,交给老师。这时老师把纸片都收上来,并按着纸片的内容写在黑板上,这样呈现在黑板的内容就是实际的座位排列。

其中5张纸片就相当于LSP,不但包括自己的信息,也包括直连的。
老师把这些纸片收集上来,就相当于是LSP泛洪的过程。
老师把这些纸片的内容分析后形成了一张完成的座位排列表,这个过程就相当于构建了一张精确的拓扑图(LSDB)。

OSPF简介

1. OSPF有三张表:邻居表、拓扑表(LSDB)和路由表。
2. 在OSPF中有邻居和邻居的概念。是邻居但不一定是邻接,在多路访问中,Dothers路由器之间只是邻居,不是邻接,所以只能维持在2-way状态;相反,是邻接一定是邻居。
3. 链路状态路由器没有定期更新,对于OSPF来说,LSA会30分钟泛洪一次,这叫做强制更新;注意这个30分钟不是非常准,为了防止所有LSA同时更新,会或多或少。
4. LSA序列号起始于0X80000001,终于0X7fffffff,每更新一次序列号加1。
5. 如果序列号轮了一周,又回到0x80000001,那么此时这个LSA被设置为maxage(1小时)并清除掉。

OSPF网络类型

点对点(PTP) – 不需要选举DR、BDR
广播多路访问 – 需要选举DR、BDR
非广播多路访问(NBMA)
点对多点 – 不需要DR、BDR,多个PTP链路
虚拟链路
对于现在常见的网络环境,很少碰到NBMA、点对多点和虚链路,所以直接可以忽略掉,如果用到,再查也不迟。

OSPF报文类型

这个在OSPF中非常重要!
建议结合邻接建立过程,仔细研究5种数据包的结构,研读TCP/IP卷一
报文头部 — 标注路由协议为OSPF

Hello (1)— 间隔、优先级、等待时间、DR、BDR、邻居

数据库描述(2)—MTU、DB描述、router-id、LSA的序列号
注:关于MTU在这里稍微说下,当收到DB报文中的MTU高于本身端口配置的IP MTU时,邻居会建立不起来。换言之如果小于,那么就能建立,而且结果类似于“ip ospf mtu-ignore

链路状态请求(3)

链路状态更新(4)—Flag(V、E、B),路由信息
可以通过“show ip ospf da router x.x.x.x”来确认这个Flag

链路状态确认(5)

建立邻接的过程

这个过程也非常重要,具体细节在此略过,详细请看卷一。
Down – 初始状态
INIT – 收到邻居发来的Hello报文
2WAY – 当收到Hello报文中有自己的ID时;如果在Init时收到DBD报文,会直接进入2WAY
EXSTART – 协商邻居主从关系
EXCHANGE – 更新请求列表中的DBD,同步数据库
Loading – 第一次更新LSA后,还有信息需要更新
Full – 完全邻接状态

在此需要注意的是:在PTP网络环境下DBD是组播发送;在多路访问环境下路由器会先用ARP来获得地址,然后以单播发送DBD

常用LSA介绍

路由器LSA(Type 1):在同一个域内,他们用LSA1传送Hello信息
网络LSA (Type 2):存在DR和BDR的概念
AllDRouters: 224.0.0.6
AllSFPRouter:224.0.0.5

网络汇总LSA (Type 3)
注意:如下图所示,Sangria向Area22发送Area10的LSA3信息跟Chardonary发送的LSA3一样么?
为了减少LSP泛洪的影响,OSPF有了Area的概念,每个区域都有自己的LSDB。所以在Area22的数据库中,是不知道ABR Chardonary的,因此这个LSA3是Sangria产生的。Area22的router要去Area10的区域,他会直接把信息发给Sangria,Sangria才知道如何到达Chardonnay。

ASBR汇总LSA (Type 4)
AS外部LSA (Type 5)
如下图所示,LSA5是由ASBR发送的,而且不受任何区域限制,正因为如此,所以才会有LSA4。因为对于Area10来说,Shiraz并不知道如何到达ASBR,换句话说在Area10的LSDB中没有ASBR的信息,所以需要ABR Chardonnay发送LSA4,通告如果访问域外路由,发给我,我知道如何到。
在LSA5的域外路由中有两个概念:
E1:计算到ASBR的metric (Comparable directly to link state metric)
E2:不计算到ASBR的metric (Larger than any link state path),默认metric为20
路由器默认优选E1路由,在同类型的路由中才对比metric
以下是E1的例子(R3重分发lo1时,metric改成1000):
R2(f3/0: cost 100)——(f3/0 default cost 1)R3(lo1:5.5.5.5)

R2#sh ip ospf da external      
            OSPF Router with ID (2.2.2.2) (Process ID 1)
                Type-5 AS External Link States
  Routing Bit Set on this LSA
  LS age: 735
  Options: (No TOS-capability, DC)
  LS Type: AS External Link
  Link State ID: 5.5.5.5 (External Network Number )
  Advertising Router: 3.3.3.3
  LS Seq Number: 80000002
  Checksum: 0x8C9B
  Length: 36
  Network Mask: /32
        Metric Type: 1 (Comparable directly to link state metric)
        TOS: 0 
        Metric: 1000 
        Forward Address: 0.0.0.0
        External Route Tag: 0

R2#sh ip ospf int f3/0 | i Cost
  Process ID 1, Router ID 2.2.2.2, Network Type BROADCAST, Cost: 100

R2#sh ip route 5.5.5.5
Routing entry for 5.5.5.5/32
  Known via "ospf 1", distance 110, metric 1100, type extern 1
  Last update from 23.1.1.3 on FastEthernet3/0, 00:02:45 ago
  Routing Descriptor Blocks:
  * 23.1.1.3, from 3.3.3.3, 00:02:45 ago, via FastEthernet3/0
      Route metric is 1100, traffic share count is 1

末梢网络(Stub Areas)
如下图所示,在Area10中存在了LSA3、4、5类的路由,其实Shriaz根本不用知道那么多,只要知道如果访问域间或域外路由,发给ABR就可以了。

所以外部路由完全可以忽略,这样可以减少LSDB的大小。在末梢网络中,LSA5的路由被过滤掉了,既然LSA5的路由没有了,LSA4的路由信息也随之消失了。
这时ABR会发送一条默认路由到本区域中。
注:在stub中,E-bit=0(hello报文或DB报文中的option参数)

完全末梢(Totally Stubby Areas)
这个比较好理解,既然有了默认路由,而且这个默认路由就是指向ABR的,所以就没必要有LSA3了,因此直接在ABR上可以把LSA3消除掉。现在再看看Area10的数据库……世界从此安静了~嘿嘿

非纯末梢(Not-So-Stubby Areas)
由于末梢网络是不允许存在ASBR的,但实际应用中可能会需要在Stub网络环境中分布域外的路由,这时就破坏了Stub,因此才有的非纯末梢网络。
在此区域中会产生LSA7,也就是NSSA的LSA。
LSA7只在NSSA域内传送,当把LSA7发送到其他区域时,ABR会把它转化为LSA5,以外部路由的形式发送出去。
P-bit=1 转7类LSA为5类LSA
P-bit=0 只能NSSA内部,不转5类LSA,所以也就不能在area0传播

注:对于普通的NSSA,他跟stub一样,会消除lsa4和lsa5,但是不会自动产生默认路由(stub区域之所以有默认路由,是因为区域内的路由器要访问域外路由,而域外路由被stub过滤掉了,而在NSSA中是不允许存在LSA5的,所以没必要产生默认路由,但这样NSSA区域的设备就无法访问其他ASBR发送的LSA5的路由了),这时就需要配置“area 22 nssa default-ori”。如果不配置上面配置,可以在NSSA配置“no summary”,这样就消除了LSA3,也就会自动生成域间默认路由了。

本文出自 Frank's Blog

版权声明:


本文链接:CCIE SP-OSPF 小结
版权声明:本文为原创文章,仅代表个人观点,版权归 Frank Zhao 所有,转载时请注明本文出处及文章链接
你可以留言,或者trackback 从你的网站

No Responses to “CCIE SP-OSPF 小结”

  1. […] DB报文中MTU的详细内容,可以看我的另一篇总结《CCIE SP-OSPF 小结》),加了一个新的命令“mpls mtu override”,可以使MPLS […]

留言哦

blonde teen swallows load.xxx videos