今天偶尔跟同事聊到网络的问题,这一阵子忙的,把学过的东西都忘得迷迷糊糊的了,今晚回来重新把这个点先整理下来,待我有时间再把这块串成线。
看了一篇很有意思的小文章,转载过来,比我们老师讲的有意思,不过哈哈,当年茱莉雅老师给我们讲的也不差。嘿嘿。。。。来,先看个小童话:
http://kingdee.blog.51cto.com/98119/27310
可以把整个网络(一个自治系统AS)看成一个王国,这个王国可以分成几个 区(area),现在我们来看看区域内的某一个人(你所在的机器root)是怎样得到一张 世界地图(routing table)的。
首先,你得跟你周围的人(同一网段如129.102)建立基本联系。你大叫一声 “我在这!”(发HELLO报文),于是,周围的人知道你的存在,他们也会大叫,这样 你知道周围大概有哪些人,你与他们之间建立了邻居(neighbor)关系,当然,他们 之间也有邻居关系。
在你们这一群人中,最有威望(Priority优先级)的人会被推荐为首领( Designated Router)首领与你之间是上下级关系(adjacency邻接),它会与你建立 单线联系,而不许你与其它邻居有过多交往,他会说:“那样做的话,街上太挤了 ”。
你只好通过首领来知道更多的消息了,首先,你们互通消息,他告诉你他知 道的所有地图的地名,你也会告诉他你现知道的地名,当然上也许只有你一个点。 (Database Deion数据库描述报文)
你发现地名表中有你缺少的或比你新的东西,你会问他要一份更详细的资料 ,他发现你的地名表中有他需要的东西,他也会向你索求新资料。(Link State Request连接状态请求报文)
当然,你们毫不犹豫地将一份详细资料发送给对方。(Link State Update连 接状态升级报文)
收到地图后,互相致谢表示收到了。(Link State Ack连接状态响应报文)
现在,你已经尽你所能得到一份地图(Link State DataBase连接状态数据库 ),你去查找地图把到所有地方的路挑一条最近(shortest path最短路)的,记 为一张表格(routing table路由表),当然以后查这份表格就知道到目的地的一 条最近的路了。地图也要收好,万一表格上的某条路不通了可以通过图去找一条新
的路。
其实跟你有联系的,只是周围一群人,外面的消息要通过首领来知道。因为 你的地图是跟首领的一致,我们假设你是首领,你要去画一份世界地图。
你命令所有手下向你通报消息,你可以知道你这一群人的任何一点点小动静 (event事件)。你手下还会有同时属于两群人的家伙(同一区内两网段),他会 告诉你另一群人的地图,当然也会把你们这一群人的地图泄露,(不过,无所谓啦 )。这样,整个区的地图你知道了(对于不知道的那也没办法,我们尽力了)。
通过不停地交换地图,现在,整个区的人都有同样的地图了,住在区边境上 的人义不容辞地把这个区的地图(精确到每一群人)发送到别的区,把别的区信息 发送进来。国王会把这些边境的人命名为骨干(backbone area)。通过骨干人士 的不懈努力,现在,整个国家的地图你都了解得一清二楚了。
有些人“里通外国”(AS Boundary Router自治系统边界路由器) ,他们知 道一些“出国”(AS External route自治系统外部路由)的路,当然他们会把这些 秘密公之与众(import 引入),通过信息的传递,现在,你已经有一张完整的“ 世界地图”了。
OSPF是这样标记最短的路的:对于某个目的地,首先,考虑是否有同一区内 部到目的地的路(intra area区域内),如果有,则在其中取一条离你最近的(花 费最小),写进你的表格中,这个目的地可能是到本群体某个人也可能是到其他群 体的,对于经过其他区域的路由,你会不予考虑,跟自己人(同区域)打交道总比
与外人(其他区域)打交道好;如果没有本区的路,你只好通过别的区域了(区域 间),你只要在地图上找最近的就是了;如果你发现目的地在国外,你也只能先把 它标记到你的表格上,期待什么时候王国扩张到那,你就可以把它标记到国内地图 上了。
OSPF就是这样,给你一份“世界地图”,并且在上面标记了最短的路,如此 而已罢了
看完了上面的童话,也就熟悉了ospf协议的大概意思,这个协议时用来干嘛的。。接下来我们再接触一些古板的东西,会有一个严谨的概念:
http://february.blog.51cto.com/717356/149114
知识1:OSPF概述
开放式最短路径优先协议(Open Shortest Path First,OSPF)是基于开放标准的发链路状态路由选择协议
1.OSPF是内部网关路由协议
内部网关路由协议(IGP):用于在单一自治系统(Autonomous System-AS)内决策路由
自制系统(AS):执行统一路由策略的一组网络设备的组合
2.OSPF区域
为了适应大型的网络,OSPF在AS内划分多个区域;一定要划分区域0(骨干区域),其他区域必须和区域0相连。
每个OSPF路由器只维护所在区域的完整的链路状态信息
3.链路状态路由协议
OSPF是链路状态路由协议,链路状态路由协议中的路由器了解OSPF网络内的链路状态信息
链路状态路由协议中,直连的路由器之间建立邻接关系,互相“交流”链路信息,来“画”出完整的网络结构
知识2:Router ID
Router ID 是在OSPF区域内唯一标识一台路由器的IP地址。
Router ID选取规则
§ 首先,路由器选取它所有loopback接口上数值最高的IP地址
§ 如果没有loopback接口,就在所有物理端口中选取一个数值最高的IP地址
Router ID 不具备强占性,Router ID 只要选定就不会改变,即使是物理接口关闭,Router ID 也不会变,除非重启路由器或进程。
知识3:OSPF的工作过程
邻居列表
• 列出每台路由器全部已经建立邻接关系的邻居路由器
链路状态数据库(LSDB)
• 列出网络中其他路由器的信息,由此显示了全网的网络拓扑
路由表
• 列出通过SPF算法计算出的到达每个相连网络的最佳路径
知识4:OSPF邻接关系
邻接关系的建立过程
建立邻接关系的条件
1、Area-id:两个路由器必须在共同的网段上,它们的端口必须属于该网段上的同一个区,且属于同一个子网
2、验证(Authentication OSPF):同一区域路由器必须交换相同的验证密码,才能成为邻居
3、Hello Interval和Dead Interval: OSPF协议需要两个邻居路由器的这些时间间隔相同,否则就不能成为邻居路由器。
4、stub区域标记:两个路由器可以在Hello报文中通过协商Stub区域的标记来成为邻居
知识5:OSPF的网络接口类型
路由器接口类型不同,在建立邻接关系的时候,OSPF路由器执行的操作也略有不同,所以定义了4种类型,如下
知识6:OSPF多址网络中的DR与BDR
一个网段上的其他路由器都和指定路由器(DR)构成邻接关系,而不是它们互相之间构成邻接关系
广播多址型网络选DR或BDR在2-way阶段,他们不具备强占性,要想成为DR必须先成为BDR。
DR与BDR的选举
通过Hello报文选择DR和BDR来代表OSPF网段
通过组播发送Hello报文
具有最高OSPF优先级的路由器会被选为DR
如果OSPF优先级相同,则具有最高Router ID的路由器会被选为DR
其他的路由器(DRothers)只和DR及BDR路由器之间形成邻接关系
每台路由器的每一个多点访问的接口都有一个路由器的优先级(Router Priosrity),用一个8位的无符号整数来表示,范围是0—255,数值越大,优先级越高,默认优先级是1,可以通过命令ip ospf priority来更改,具有0优先级的路由器不能成为DR或BDR。
知识7:OSPF包类型
1.HELLO协议:
当路由器上启动OSPF进程时,每台路由器都会间隔一定的时间发送Hello包
Hello包通过组播地址224.0.0.5发送
OSPF路由器使用Hello包发起建立邻接关系并监视这种关系的存在和消失
在广播网或者点对点网上,Hello的发送间隔是10秒;在NBMA网络上,Hello的发送间隔是30秒
2.Hello报文用于发现和维护邻居关系,并保证邻居间的双向通信。不同类型的网络种,Hello协议的工作方式如下:
多址网络:周期性的组播Hello包,允许邻居的动发现,尝试进行指定路由器DR/备份路由器BDR的选举。
点到多点型网络:发送Hello包给于直连的能通信的全部路由器。
DBD和LSR报文用于建立邻接关系。
LSU和LSAck报文用于实现OSPF可靠的更新机制。
知识8:OSPF的路由传播
整个OSPF的拓扑图可以描绘成一组互联的路由器或一组互联的节点。为了使这些节点能够在这些逻辑的拓扑上完全的进行路由选择,每一个节点都必须拥有一个关于这个拓扑结构的相同的拓扑图,这个拓扑图就是拓扑数据库,也叫链路状态数据库。这个数据库由路由器可以接收到的所有LSA组成。在拓扑图中发生的一个变化将可以表示为一条或多条LSA的变化。
泛洪(Flooding)过程就是将这些变化或更新的LSA发送到整个网络中去,以保证每一个节点的数据库都可以更新。
泛洪过程将会使用到下面两种类型的OSPF报文
链路状态更新报文(Link State Updatapackets,类型4)
链路状态确认报文(Link State Acknowledgmentpackets,类型5)
在点到点网络中,路由器以组播的方式将更新报文发送到组播地址(224.0.0.5)。在点到多点网络上,路由器是以单播方式将更新报文发送到邻接邻居的接口地址的。
在广播型的网络上,DRouthers路由器只能和DR与BDR路由器形成邻接关系,因此更新报文将发送到组播地址(224.0.0.6),相应,DR路由器也将以组播的方式发送包含LSA的更新包问道网络上与之建立邻接关系的路由器。接着,所有的路由器将从他们所有其他的接口上泛洪LSA通告。
知识9:OSPF度量值
OSPF用来度量路径优劣的度量值称为Cost(代价),是指从该接口发送出去的数据报的出站口代价。并用16位无符号的整数表示,范围在1--65535之间。默认代价是 ,表示一个整数,BW是指再接口上配置的带宽,而 是Cisco路由器使用的参考带宽。
接口的代价值可以通过命令 ip ospf Cost 来改变
知识10:OSPF路由协议的应用环境
1.OSPF的使用地方
网络的规模 :网络中的路由器在10台以上;中等或大规模的网络
网络的拓扑结构 :网络的拓扑结构为网状,并且任意两台路由器之间都有互通的需求
其它特殊的需求 :要求路由变化时能够快速收敛,要求路由协议自身的网络开销尽量降低
对路由器自身的要求 :运行OSPF协议时,对路由器的CPU的处理能力及内存的大小都有一定的要求,性能很低的路由器不推荐使用OSPF协议
2.OSPF的特点
可适应大规模网络
路由变化收敛速度快
无路由环
支持变长子网掩码VLSM
支持区域划分
支持以组播地址发送协议报
3.OSPF与RIP的比较
知识11:OSPF单区域介绍
1.区域ID
是通过一个32为的区域ID(Aera ID)来标识的。
2.相连的路由器接口
指的是连接到区域的路由器的接口。一个路由器的接口属于且仅属于一个区域。
3.路由器链路状态通告列表
区域内的每台路由器产生的链路状态通告,他描述了连接到区域的路由器接口的状态。
4.网络链路状态通告列表
由DR/BDR产生的链路状态通告。用于描述链接到该区域的路由器。
5.汇总链路状态通告列表
由ABR发起的链路状态通告。用于描述区域间的或者达到AS外部的路径信息
6.最短路径树
每台路由器都会以自身作为树的根利用SPF算法来计算到达目的网络的最短路劲。
知识12:配置命令
v 配置loopback接口地址
Router(config)# interface loopback 0
Router(config-if)# ip address IP地址掩码
v 启动OSPF路由进程
Router(config)# router ospf 进程号
v 指定OSPF协议运行的接口和所在的区域
Router(config-router)# network 网络号反向掩码 area 区域号
v 修改接口的Cost值
Router(config-if)#ip ospf cost number
例如:
Router(config)#interface s0
Router(config-if)#ip ospf cost 1000
v 配置OSPF计时器
Router(config-if)#ip ospf hello-interval 时间(s)
Router(config-if)#ip ospf dead-interval 时间(s)
例如:
Router(config)#interface e0
Router(config-if)#ip ospf hello-interval 5
Router(config-if)#ip ospf dead-interval 20
v 查看邻居列表
Router#show ip ospf neighbor
v 查看链路状态数据库
Router#show ip ospf database
v 查看路由表
Router#show ip route
查看OSPF的配置
Router#show ip ospf
v 查看OSPF接口数据结构
Router#show ip ospf interface 接口