1
、路由器
IOS
中核心部件和作用
RAM
:随机
存储
存取器(
Random-Access Memory
),运行配置或活动配置文件(
running-config
)保存在这里。
ROM
:只读存储器(
Read Only Memory
),这种存储器存储了个可引导的
IOS
映像,这个映像通常并不用于一般操作。
ROM
包含着在路由器知道到哪去找完整
IOS
映像之前用来引导路由器的代码,或是当遇到问题时作为备份的可引导的映像。
Flash Memory
:闪存,存储了功能完备的
IOS
映像文件,它是路由器启动时寻找
IOS
的默认位置。
NVRAM
:非易失性随机存取存储器,存储了初始或“启动”配置文件(
startup-config
)。
2
、
IOS
启动过程
(
1
)路由器执行加电自检(
POST
)以查找和验证硬件。
(
2
)路由器从
ROM
中加载并运行自引导程序代码。
(
3
)路由器
IOS
或其他软件并加载之。
(
4
)路由器找到配置文件并将它加载到运行配置中。
3
、路由器转发原理
路由器的主要目的在于连接多个网络,并将数据包从一个网络转发到下一个网络。路由器通常都有多个接口。每个接口都是不同
IP
网络的成员或主机。路由器主要在第
3
层(网络层)做出转发决定。路由器的转发靠路由表,路由表在路由器中维护的路由条目,路由器根据路由表做路径选择。路由器获知远程网络的方式有两种:使用路由协议动态获知,或通过配置的静态路由获知。
4
、距离矢量路由协议、链路状态路由协议的区别
距离矢量路由协议:
1
、只能从相邻的路由器上获得网络拓扑;
2
、计算网络中所有链路的矢量和距离并以此为依据确认最佳路径;
3
、路由器之间共享其所知道的所有路由信息,但仅仅与其邻居路由共享;
4
、频繁的、周期性更新,路由器在给邻居发送更新之前,必须先运行路由更新算法,收敛速度慢;
5
、拓扑发生变化后,所有受到影响的路由条目都将被通告。
典型的距离矢量路由协议是
RIP
和
IGRP
。
链路状态路由协议:
1
、使每个路由器通过拓扑数据库建立整个网络的拓扑图;
2
、在全网拓扑图的基础上通过最短路径优先算法计算出通往各目标网段的最佳路径;
3
、只通告他们直连的链路状态,但是这种状态会与所有路由共享;
4
、触发式更新,只更新链路状态,状态信息收到后再进行路由算法的计算,收敛速度快;
5
、拓扑发生变化时,只通告受影响的链路状态,更新信息少。
典型的链路状态路由协议是
OSPF
。
5
、有类路由、无类路由的区别
IP
路由协议可以被分为两大类,一类是有类的,另一类是无类的。
IP Classful
:
RIP v1, IGRP ,EGP
IP Classless :RIP v2 ,EIGRP, OSPF, IS-IS, BGP
有类的路由不会识别子网的信息,如宣告
10.0.1
.0/24
,
172.16.1.0/22
,
192.168.1.64/28
路由表中只会识别
A
类
10.0.0.0/8
,
B
类
172.16.0.0/16
,
C
类
192.168.1.0/24
。
无类的路由协议不会根据
A B C
类来识别,根据子网掩码的长度来区分网段,所以说无类的路由协议都可以不支持路由自动汇总。
有类的路由自然也就不支持
VLSM
,无类的路由就可以支持
VLSM
。
6
、
RIPv1
和
RIPv2
的区别
1.RIPv1
是有类路由协议,
RIPv2
是无类路由协议
2.RIPv1
不能支持
VLSM
和不连续子网,
RIPv2
可以支持
VLSM
和不连续子网
3.RIPv1
没有认证的功能,
RIPv2
可以支持认证,并且有明文和
MD5
两种认证
4.RIPv1
没有手工汇总的功能,
RIPv2
可以在关闭自动汇总的前提下,进行手工汇总
5.RIPv1
是广播更新,
RIPv2
是组播更新
6.RIPv1
对路由没有标记的功能,
RIPv2
可以对路由打标记(
tag
),用于过滤和做策略
7.RIPv1
发送的
update
多可以携带
25
条路由条目,
RIPv2
在有认证的情况下最多只能携带
24
条路由
8.RIPv1
发送的
update
里面没有
next-hop
属性,
RIPv2
有
next-hop
属性,可以用于路由更新的重定
9. RIPv1
更新时不包含子网掩码,
RIPv2
更新时携带子网掩码
距离矢量路由协议有一个严重的缺点,缓慢的收敛时间过程会造成路由回路(
Routing Loop
)。
解决方法:
1.
定义最大值:
距离矢量路由算法可以通过
IP
头中的生存时间(
TTL
)来纠错,但路由环路问题可能首先要求无穷计数。为了避免这个延时问题,距离矢量协议定义了一个最大值,这个数字是指最大的度量值(如
rip
协议最大值为
16
),比如跳数。也就是说,路由更新信息可以向不可到达的网络的路由中的路由器发送
15
次,一旦达到最大值
16
,就视为网络不可到达,存在故障,将不再接受来自访问该网络的任何路由更新信息。
2.
水平分割:
一种消除路由环路并加快网络收敛的方法是通过叫做“水平分割”的技术实现的。其规则就是不向原始路由更新的方向再次发送路由更新信息(个人理解为单向更新,单向反馈)。比如有三台路由器
ABC
,
B
向
C
学习到访问网络
10.4.0
.0
的路径以后,不再向
C
声明自己可以通过
C
访问
10.4.0.0
网络的路径信息,
A
向
B
学习到访问
10.4.0.0
网络路径信息后,也不再向
B
声明,而一旦网络
10.4.0.0
发生故障无法访问,
C
会向
A
和
B
发送该网络不可达到的路由更新信息,但不会再学习
A
和
B
发送的能够到达
10.4.0.0
的错误信息。
3.
路由环路问题:
定义最大值在一定程度上解决了路由环路问题,但并不彻底,可以看到,在达到最大值之前,路由环路还是存在的。为此,路由中毒就可以彻底解决这个问题。其原理是这样的:假设有三台路由器
ABC
,当网络
10.4.0.0
出现故障无法访问的时候,路由器
C
便向邻居路由发送相关路由更新信息,并将其度量值标为无穷大,告诉它们网络
10.4.0.0
不可到达,路由器
B
收到毒化消息后将该链路路由表项标记为无穷大,表示该路径已经失效,并向邻居
A
路由器通告,依次毒化各个路由器,告诉邻居
10.4.0.0
这个网络已经失效,不再接收更新信息,从而避免了路由环路。
5.
抑制计时器:
抑制计时器用于阻止定期更新的消息在不恰当的时间内重置一个已经坏掉的路由。抑制计时器告诉路由器把可能影响路由的任何改变暂时保持一段时间,抑制时间通常比更新信息发送到整个网络的时间要长。当路由器从邻居接收到以前能够访问的网络现在不能访问的更新后,就将该路由标记为不可访问,并启动一个抑制计时器,如果再次收到从邻居发送来的更新信息,包含一个比原来路径具有更好度量值的路由,就标记为可以访问,并取消抑制计时器。如果在抑制计时器超时之前从不同邻居收到的更新信息包含的度量值比以前的更差,更新将被忽略,这样可以有更多的时间让更新信息传遍整个网络。
6.
触发更新:
正常情况下,路由器会定期将路由表发送给邻居路由器。而触发更新就是立刻发送路由更新信息,以响应某些变化。检测到网络故障的路由器会立即发送一个更新信息给邻居路由器,并依次产生触发更新通知它们的邻居路由器,使整个网络上的路由器在最短的时间内收到更新信息,从而快速了解整个网络的变化。但这样也是有问题存在,有可能包含更新信息的数据包被某些网络中的链路丢失或损坏,其他路由器没能及时收到触发更新,因此就产生了结合抑制的触发更新,抑制规则要求一旦路由无效,在抑制时间内,到达同一目的地有同样或更差度量值的路由将会被忽略,这样触发更新将有时间传遍整个网络,从而避免了已经损坏的路由重新插入到已经收到触发更新的邻居中,也就解决了路由环路的问题。
其中的路由中毒和反向中毒在提示一下:
路由中毒:是指在路由信息在路由表中失效时,先将度量值变为无穷大,而不是马上从路由表中删掉这条路由信息。
(
这句话要理解,如
RIP
协议中,其度量值变为
16
,意味着路由不可达
)
再将其信息发布出去,这样相邻的路由器就得知这条路由己无效了。
毒性反转与路由中毒概念是不一样的,它是指收到路由中毒消息的路由器,不遵守水平分割原则将中毒消息转发给所有的相邻路由器,也包括发送中毒信息的源路由器,也就是通告相邻路由器这条路由信息己失效了。主要目的是达到快速收敛的目的。
7
、各种协议发送的
hello
包默认时间间隔
RIP
:每
30
秒发送一次更新,保持时间
180s
;
IGRP
:每隔
90
发送一次
hello
包,保持时间
270s
;
EIGRP
:每隔
5
秒钟发送一次
hello
包,保持时间
15s
;
OSPF
:每隔
10
秒钟(或
30
秒)发送一次
hello
包,
Dead
间隔默认是
Hello
的
4
倍。
8
、
CDP
作用
CDP
:思科发现协议
(
Cisco Discovery Protocol
),工作在数据链路层。
CDP
主要是用来获取相邻设备的协议地址以及发现这些设备的平台信息。
CDP
也可为路由器的使用提供相关接口信息。
CDP
是一种独立媒体协议,与介质和协议无关,运行在所有思科制造的设备上,包括路由器、网桥(
bridge
)、接入服务器(
access server
)和交换机。
8
、
OSPF
建立邻居关系的过程
第一步:建立路由器的邻接关系
所谓
“
邻接关系
”
(
Adjacency
)是指
OSPF
路由器以交换路由信息为目的,在所选择的相邻路由器之间建立的一种关系。
路由器首先发送拥有自身
ID
信息(
Loopback
端口或最大的
IP
地址)的
Hello
报文。与之相邻的路由器如果收到这个
Hello
报文,就将这个报文内的
ID
信息加入到自己的
Hello
报文内。
如果路由器的某端口收到从其他路由器发送的含有自身
ID
信息的
Hello
报文,则它根据该端口所在网络类型确定是否可以建立邻接关系。
在点对点网络中,路由器将直接和对端路由器建立起邻接关系,并且该路由器将直接进入到第三步操作:发现其他路由器。若为
MultiAccess
网络
,
该路由器将进入选举步骤。
第二步:选举
DR/BDR
不同类型的网络选举
DR
和
BDR
的方式不同。
MultiAccess
网络支持多个路由器,在这种状况下
, OSPF
需要建立起作为链路状态和
LSA
更新的中心节点。选举利用
Hello
报文内的
ID
和优先权
(Priority)
字段值来确定。优先权字段值大小从
0
到
255
,优先权值最高的路由器成为
DR
。如果优先权值大小一样,则
ID
值最高的路由器选举为
DR
,
优先权值次高的路由器选举为
BDR
。优先权值和
ID
值都可以直接设置。
第三步:发现路由器
在这个步骤中,路由器与路由器之间首先利用
Hello
报文的
ID
信息确认主从关系,然后主从路由器相互交换部分链路状态信息。每个路由器对信息进行分析比较,如果收到的信息有新的内容,路由器将要求对方发送完整的链路状态信息。这个状态完成后,路由器之间建立完全相邻(
Full Adjacency
)关系,同时邻接路由器拥有自己独立的、完整的链路状态数据库。
在
MultiAccess
网络内,
DR
与
BDR
互换信息,并同时与本子网内其他路由器交换链路状态信息。
在
Point-to-Point
或
Point-to-MultiPoint
网络中,相邻路由器之间互换链路状态信息。
第四步
:
选择适当的路由器
当一个路由器拥有完整独立的链路状态数据库后,它将采用
SPF
算法计算并创建路由表。
OSPF
路由器依据链路状态数据库的内容,独立地用
SPF
算法计算出到每一个目的网络的路径,并将路径存入路由表中。
OSPF
利用量度(
Cost
)计算目的路径,
Cost
最小者即为最短路径。在配置
OSPF
路由器时可根据实际情况,如链路带宽、时延或经济上的费用设置链路
Cost
大小。
Cost
越小,则该链路被选为路由的可能性越大。
第五步:维护路由信息
当链路状态发生变化时,
OSPF
通过
Flooding
过程通告网络上其他路由器。
OSPF
路由器接收到包含有新信息的链路状态更新报文,将更新自己的链路状态数据库,然后用
SPF
算法重新计算路由表。在重新计算过程中,路由器继续使用旧路由表,直到
SPF
完成新的路由表计算。新的链路状态信息将发送给其他路由器。即使链路状态没有发生改变,
OSPF
路由信息也会自动更新。
9
、
DR
、
BDR
的选举过程
DR
,
BDR
的选举原则:
首先比较端口优先级大小,值大的优先选;
其次若配置了
loopback
口,则优先选择
loopback
口;
最后比较路由器所有端口的逻辑地址大小,越大的越易被选中。
DR
与
BDR
的选择是通过
Hello
报文来进行的,而
Hello
报文又是通过每个网段上
IP
多播报文来进行交换的。在一个网段上,
OSPF
优先级最高的那台路由器将成为
DR
,
OSPF
优先级次高的那台路由器将成为
BDR
。若
OSPF
的优先级相同,则路由器的
Router ID
大者将成为
DR
。默认情况下,
OSPF
的优先级为
1
。一定要记住
DR
和
BDR
的概念只在每个多址可达的网段上才有,如
Point to Point
,
Point to MultiPoint
等网络上没有这个概念。
可以在端口模式下使用下面的命令来设置路由器端口的
OSPF
优先级:
ip ospf priority <value>
可用在特权模式下使用下面的命令查看端口的
OSPF
优先级:
show ip ospf interface Ethernet 0
如果端口的
OSPF
优先级为
0
则表示该端口永远不会被选择为
DR
或
BDR.
OSPF
端口优先级为
0
时,端口状态为
DROTHER.
10
、
RIP
和
OSPF
区别
RIP
和
OSPF
是目前应用较多的路由
协议
,它们同属于内部网关协议,但
RIP
基于距离矢量算法,而
OSPF
基于链路状态的最短路径优先算法。它们在网络中利用的传输技术也不同。
RIP
是利用
UDP
的
520
号端口进行传输,实现中利用套接口编程,而
OSPF
则直接在
IP
上进行传输,它的协议号为
89
。在
RIP
当中,所有的路由都由跳数来描述,到达目的地的路由最大不超过
16
跳,且只保留唯一的一条路由,这就限制了
RIP
的服务半径,即其只适用于小型的简单网络。同时,运行
RIP
的路由器需要定期地(一般
30s
)将自己的路由表广播到网络当中,达到对网络拓扑的聚合,这样不但聚合的速度慢而且极容易引起广播风暴、累加到无穷、路由环致命等问题。为此,
OSPF
应运而生。
OSPF
是基于链路状态的路由协议,它克服了
RIP
的许多缺陷:
第一,
OSPF
不再采用跳数的概念,而是根据接口的吞吐率、拥塞状况、往返时间、可靠性等实际链路的负载能力定出路由的代价,同时选择最短、最优路由并允许保持到达同一目标地址的多条路由,从而平衡网络负荷;
第二,
OSPF
支持不同服务类型的不同代价,从而实现不同
QoS
的路由服务;
第三,
OSPF
路由器不再
交换
路由表,而是同步各路由器对网络状态的认识,即链路状态数据库,然后通过
Dijkstra
最短路径算法计算出网络中各目的地址的最优路由。这样
OSPF
路由器间不需要定期地
交换
大量数据,而只是保持着一种连接,一旦有链路状态发生变化时,才通过组播方式对这一变化做出反应,这样不但减轻了不参与系统的负荷而且达到了对网络拓扑的快速聚会。而这些正是
OSPF
强大生命力和应用潜力的根本所在。
11
、
EIGRP
的特征
EIGRP
协议的特点如下:
1
、运行
EIGRP
的路由器之间形成邻居关系,并交换路由信息。相邻路由器之间通过发送和接收
Hello
包来保持联系,维持邻居关系。
Hello
包的发送间隔默认值为
5s
钟。
2
、运行
EIGRP
的路由器存储所有与其相邻路由器的路由表信息,以便快速适应路由变化。
3
、如果没有合适的路由存在,
EIGRP
将查询其相邻的路由器,以便发现可以替换的路由。
4
、采用不定期更新,即只在路由器改变计量标准或拓扑出现变化时发送部分更新信息。
5
、支持可变长子网掩码
(VLSM)
和不连续的子网,支持对自动路由汇总功能的设定。
6
、支持多种网络层协议,除
IP
协议外,还支持
IPX
、
AppleTalk
等协议。
7
、在运行
EIGRP
的路由器内部,有一个相邻路由器表、一个拓扑结构表和一个路由表。
8
、使用
DUAL
算法,具有很好的路由收敛特性。
9
、具有相同自治系统号的
EIGRP
和
IGRP
之间彼此交换路由信息(
EIGRP
和
IGRP
的无缝结合)。
12
、
EIGRP
建立邻居关系的过程
当一个安装了
EIGRP
的路由器首次启动,它向所有
EIGRP
的接口发送
Hello
包时使用地址
224.0.0.10
,使用
Hello
包有两个目的:发现邻居路由器,并在发现邻居路由器后判断这个邻居是
OK
的还是完蛋了。
一旦一个新邻居被一个
Hello
包发现,路由器就会记录下所发生邻居的
IP
地址和接口。这个路由器接着向这个邻居发送一个更新,包含所有它知道的路径,它的邻居也会做同样的工作。这个信息被存储在
EIGRP
拓扑表中。
接着,每
5
秒钟发送一次
Hello
包(或者在低速
NBMA
网络中每
60
秒发送一次)。
Hello
包使得路由器动态地快速地发现邻居的消失。如果在保持计数器超期之前还没有从它邻居路由器处收到
Hello
包,那么这个邻居就被宣布取消。此时邻居邻接被删除,并且所有与那个邻居相连的路径被取消。
本文出自 “上帝的眵目糊” 博客,谢绝转载!