网站重构怎么做百度服务中心电话
一.OSPF协议:
A.特点
1.使用可靠的洪泛机制,向区域中的全部路由器发送信息,路由器通过输出端口(此处称为回环端口)向其所有的邻居路由发送信息(链路状态信息),之后每一个相邻路由器再将此消息转发给它的邻居路由,但不会转发给刚刚发送给它消息的路由,就这样不断转发,区域中每个路由器最终会包含全网的信息。
2.路由器之间交换的信息与本路由相邻的所有路由器的是链路状态
3.OSPF只在链路状态发生变化时,采用洪泛法向相邻路由发送信息。
每一个路由器都具有全网的拓扑结构图,称为链路数据库LSDB。
B.工作过程
1)每台路由器学习激活的直接相连的网络。
2)每台路由器和直接相连的路由器互交,发送Hello报文,建立邻居关系。
3)每台路由器构建包含直接相连的链路状态的LSA(Link-State Advertisement,链路状态通告)。链路状态通告(LSA)中记录了所有相关的路由器,包括邻路由器的标识、链路类型、带宽等。
4)每台路由器泛洪链路状态通告(LSA)给所有的邻路由器,并且自己也在本地储存邻路由发过来的LSA,然后再将收到的LSA泛洪给自己的所有邻居,直到在同一区域中的所有路由器收到了所有的LSA。每台路由器在本地数据库中保存所有收到的LSA副本,这个数据库被称作"链路状态数据库(LSDB,Link-State Database)"
5)每台路由器基于本地的"链路状态数据库(LSDB)"执行"最短路径优先(SPF)"算法,并以本路由器为根,生成一个SPF树,基于这个SPF树计算去往每个网络的最短路径,也就得到了最终的路由表。
下图演示了链路状态路由协议路由表的生成过程:
回环端口
一个在路由器上创建并分配IP地址的逻辑接口(或有时被称为软件接口)。该接口是稳定的,如果配置了,其IP地址常用来作为路由选择协议如BGP和OSPF的路由。
如果你不配置回环接口,路由器上的最高IP地址将成为此路由器的路由器ID.而此路由器ID则用于通告路由以及选举指定路由器(DR)和备份指定路由器(BDR)。
每一台路由器创建一个 loopback 接口,并在该接口上单独指定一个IP 地址作为管理地址。
作用:
1、测试,因为他永远都不会出故障。
2、ID,在路由协议里可以用LO的IP来标识路由器,并且不会变化。
D.术语
链路(Link):当一个接口加入OSPF进程,就被当做是OSPF的一条链路。
链路状态(Link-State):包括接口的IP、子网、网络类型、链路花费、链路上的邻居等。
路由器ID(Router ID,简称RID):RID是一个用来标识路由器的IP地址,可以在OSPF路由进程中手工指定;如果没有指定,路由器默认选择回环接口中最高的IP作为RID;如果没有回环地址,路由器使用所有激活的物理接口中最高的IP作为RID。
邻居(Neighbor):两台或多台路由连接在一个公共的网络上;比如两台路由通过串行线路相连,或多台路由通过以太网相连。
邻接(Adjacency):邻接是两台路由器之间的关系,OSPF只与建立了邻接关系的邻居共享路由信息。
区域(Area):OSPF通过划分区域来实现分层设计,跨越两个或两个以上区域的路由被称作ABR(Area Border Router,区域边界路由)。所有的区域都和"Area 0"相连,"Area 0"被称作骨干区域,骨干区域路由器具有整个自制系统中所有路由条目,LSA的扩散仅限制在区域内,通过划分多个区域可以减小LSA扩散过程中对硬件的负担。
指定路由器(Designated Router,简称RD):当OSPF链路被连接到多路访问的网络中时,需要选择一台指定路由器(DR),每台路由器都把拓扑变化发给DR和BDR,然后由DR通知该多路访问网络中的其他路由器。
若N个路由器连接在一个以太网中,在洪泛发送路由信息时,要向其它N-1个路由发送链路状态信息,共有N(N-1)个链路状态要在以太网上传送,DR代表局域网中所有的链路向连接到该网络上的各路由器发送状态信息
备用的指定路由器(Backup Designated Router,简称BDR):当DR发生故障的时候,BDR转变成DR,接替DR工作。
花费(Cost):OSPF中使用的唯一度量值,使用链路的带宽计算得来。
E.5种类型数据包
(1)问候Hello分组
用于邻居关系的构建,发现链路的可达性。
Hello报文用来建立和维护OSPF路由器间的邻接关系,它的主要作用是:发现OSPF邻居,建立和维护邻接关系;在多路访问中选择DR和BDR。OSPF洪泛链路状态通告给其他路由前需要先建立邻接关系,通过在OSPF协议的接口上发送Hello报文判断是否有其他OSPF路由器运行在相同的链路上。
2)DBD(Database Description,数据库状态描述包)
DBD包是发送端对自己链路状态数据库的一个简短描述,接收路由器根据接收到的DBD包对比自己的链路状态数据库,检测发送端和接收端的链路状态数据库是否同步。
OSPF为减小开销,把所有的链路状态信息综合起来,得到链路数据库LSDB。
3)LSR(Link-State Request,链路状态请求包)
接收端可以发送LSA来请求接收到的DBD中的某些详细信息。
4)LSU(Link-State Update,链路状态更新包)
LSU用来更新OSPF路由信息,回复LSR请求。
5)LSAck(Link-State Acknowledgement,链路状态确认)
当收到一个LSU,路由器发送LSAck确认。
邻居关系的建立过程
OSPF中邻居建立过程演示图如下:
Down:OSPF初始状态,还没有开始交换信息。
Init:交换信息初期,表示已经收到了邻居的Hello报文,但是报文中没有列出本路由的RID,也就是说对方还没有收到本路由发出的Hello报文。
Two-Way:双向阶段,双方都收到了对方发送的Hello报文,建立了邻居关系。在多路访问的网络中,两个接口状态是DROther的路由器之间将停留在此状态,其他情况将继续转入高级状态。在此状态下的路由器是不能共享路由信息的,想共享路由信息,必须建立邻接关系。(注意邻居关系和邻接关系的区别)
Exstart:准备开始交换阶段,双方通过Hello报文决定主从关系,最高RID的路由将成为主路由,最先发起交换。主从关系确立后进入下一个阶段。
Exchange:开始交换阶段,路由器将本地的"路由状态数据库(LSDB)"用"数据库描述(DBD)"报文来描述,然后发给邻路由。如果这个阶段中的路由收到不在其数据库中的有关链路的信息,那么在下一个阶段中将请求对方发送该路由条目的完整信息。
Loading:加载阶段,路由器通过发送"链路状态请求(LSR)",来向邻居请求一些路由条目的详细信息。邻居则会使用"链路状态更新包(LSU)"来回复LSR请求,收到邻居发回的LSU后,再发送LSAck向发送LSU的路由进行确认。
FULL:完全邻接状态,Loading结束后,路由器之间就变成了"Full adjacency"
基本配置实例
使用OSPF配置下面的拓扑,三台c3640路由使用以太网接口连接在一台二层非网管交换机上(GNS3中自带的那个"Ethernet switch",非IOU中的二层可网管交换机),设备间连线和IP如下图
R1配置:
R2配置:
R3配置:
OSPF路由表:
OSPF邻居表:
OSPF拓扑表:
此协议的管理距离是110、OSPF路由进程ID的范围必须在1-65535之间,而且只具有本地含义,不同路由器的路由进程ID可以不同、区域ID在0-4294967295,当区域值取0时本区域称为主干区域。
w
Router ID选举规则
Router ID简称RID,用来唯一标示OSPF网络中的每一台路由器。如果两条OSPF路由器的RID一样,彼此间无法建立邻接关系。RID是以IP地址的形式出现的,RID可以是一个并不存在的IP地址,RID仅仅作为路由的标识,不用于寻址。
1)Router-id 配置命令最优先
2)如果没有手动指定RID,路由器默认使用最大已激活的回环接口IP作为RID(注意,这个最大并不是接口号最大,而是IP地址最大,比如33.3.3.3大于3.3.3.3)
3)如果路由器没有手动指定RID,也没有激活的回环接口,路由器默认选择最大激活的物理接口的IP地址作为RID。(接口的IP最大,而不是接口号最大)
DR和BDR选举规则
先用下面的图来说明一下为什么多路访问的以太网中需要选举DR和BDR,选举它们有什么好处:
在上图的多路访问的网络中,如果没有选举DR和BDR,为了交互路由信息,每台路由器都需要和其他路由建立邻接关系,就会有10个邻接关系,如果其中一台路由离开,要和所有的路由断开邻接关系,新的路由加入,也需要和所有路由建立邻接关系,这样会影响收敛效率。
如果选举了DR和BDR,那么所有DROther路由器只需要和DR以及BDR建立邻接关系即可,DROther之间的关系停留在Two-Way状态,如果网络上有路由条目更新,DROther向组播地址224.0.0.6发出,224.0.0.6是DR和BDR的组播地址,DR接收到这个更新后,再用224.0.0.5组播地址向其他的DROhter发送LSA。这样不仅加快的网络收敛速度,也节约了网络带宽的占用。
类似于中介和第三方交易平台,只需与DR中介沟通,无需和所有的连接。从而加快了收敛速度。
DR和BDR选举规则:
1)OSPF路由器选择网络中接口优先级最高的路由器为DR,接口优先级次高的路由器为BDR,以太网接口默认的优先级都为1。
2)如果优先级相同,将使用RID最高的为DR,次高的为BDR
按照上面的选举规则,查看R3的邻居表:
可以通过下面的命令让R3永远是DR:
这个时候如果R3出现了故障Down掉了,R1和R2将不能通过以太网正常的交换OSPF信息。另外必须强调一点,DR和BDR的选举是基于接口的,比如一台路由器的某个接口可能在那个网段是DR,但另外一个接口在另外一个网段却是BDR或者DROther,这都是有可能的。
i.度量值计算方法
OSPF中使用的度量值是"花费(Cost)",默认OSPF使用100Mb/s作为参考带宽,使用100Mb/s除以实际链路带宽,得出的值取整(对于小于0的结果,取1),就是那条链路上OSPF的度量值,即"花费"。
比如串行线路的带宽是1.544M,快速以太网的带宽是100M,计算他们的"花费":
串行线路的花费=100M/1.544≈64 (取整,且不四舍五入)
快速以太网线路花费=100M/100M=1
继续上面的实验,将R1和R2的快速以太网接口的优先级再次调整成1,并且开启R3的lo0接口,然后我们查看R1的OSPF路由条目验证这一点:
关闭R1的快速以太网接口,再次查看R1路由表:
可以通过下面的方法修改计算花费的参考带宽:
将所有路由的参考带宽全部设置成10000M后,再次查看R1路由表:
这里拿去往3.3.3.0/24网络的6577举例计算花费:
R1和R2相连的串行链路花费=10000M/1.544M≈6476(取整且不四舍五入)
R2去往R3中间是快速以太网线路,花费=10000M/100M=100
R3上的Lo1接口的花费=10000M/8000M≈1(取整且不四舍五入)
所以结果就是这三条线路花费的总和,即6577。
可以通过下面的命令查看某接口的OSPF信息:
OSPF高级配置
OSPF链路的验证分为两种,一种明文验证,一种MD5验证,默认OSPF链路没有使用验证,在没有使用任何验证前,通过下面的命令来查看一下R1的OSPF分组的接收情况:
默认路由实例
在R1上新建一个回环接口lo1,IP设置成11.11.11.11,因为R1并没有将所有接口都发布到OSPF进程中,所以lo1不会被其他路由器学习到,下面将这个新增加的接口设置成R1的默认路由出口,并且宣告给其他路由:
"O*E2"中O表示从OSPF学习到的路由,E2表示该路由是OSPF外部类型2的路由,OSPF使用E1和E2标记外部路由,E1表示除计算外部来的花费外,还要计算OSPF内部花费,而E2则只计算外部花费,不计算OSPF域内花费,这就是这条默认路由的花费为1的原因。