一、动态路由协议基础
一(1)、常用的动态路由协议
距离矢量型:RIP、BGP
链路状态型:OSPF、IS-IS
一(2)、衡量动态路由协议好坏的指标
- 正确性:能够正确找到最优的路由,并且不会产生环路
- 快收敛:当网络的拓扑结构发生了变化以后,能够迅速学习到网络中变化的路由,这个学习速度的快慢,我们称为收敛时间。
- 低开销:协议自身的开销(内存,CPU,网络带宽等)
- 安全性:协议自身不易受到攻击,有安全机制
- 普适性:该协议是否可以使用各种拓扑结构及网络规模
一(3)、思考问题
-
常见的动态路由协议有哪些?
矢量型:RIP、BGP
链路状态型:OSPF、IS-IS -
动态路由协议按照使用范围可以分为哪几类?按照使用算法呢?
范围:网关协议(EGP)、边界网关协议(BGP)
算法:距离矢量型、链路状态型 -
静态路由的负载分担和备份的区别是什么?
路由备份和负载分担各有优点,负载分担是两个路由都能一起使用。而路由备份是其中一条主路由down掉,启用备份路由。 -
什么是缺省路由(默认路由) ?
缺省路由(Default Route)是路由表中一种特殊的静态路由,当网络中报文的路由无法匹配到当前路由表中的路由记录时,缺省路由用来指示路由器或网络主机将该报文发往指定的位置 -
什么是等价路由?
等价路由(ECMP)即为到达同一个目的 IP 或者目的网段存在多条 Cost 值相等的不同路由路径。
二、RIP动态路由
二(1)、RIP动态路由协议的基本配置
[R1]rip 启动rip进程
[R1-rip-1]network 1.0.0.0 宣告直连主类网络
[R1-rip-1]network 12.0.0.0 宣告直连主类网络
二(2)、RIP动态路由协议的工作过程
- 运行RIP路由器,每过30秒,会把自己完整路由表发送给之间相连的邻居,并且发送出去的时候以跳数加+1发出去
- 在RIP中是以跳数作为度量值的。
- 当R2收到R1的路由表以后,先检查自己路由表,如果自己的路由表中没有就学习,如有,则比较度量值,R2 会把度量值小的路由放到路由表中
二(3)、解决距离矢量型路由协议环路的办法
![](https://i-blog.csdnimg.cn/blog_migrate/7ff92ce8427272544d795f1ba5667283.png)
- 问题描述:
- 路由器R1把路由表发送给R2,R2把路由表给R3
- 如果R1和R2之间断开,R2会知道R1出现故障
- R2通过30s通知给R3,但R3通过10s给R2发路由表,R2会收到R1是好的,R2告诉R4,R4告诉R3,R3告诉R2,形成路由环路
- 触发更新:一旦链路出现了故障以后,马上通知给邻居,触发跟新不是用来解决环路的,而用来避免环路的发生,RIP 默认就启用的一个功能
- RIP 是以跳数作为度量值,他的有效跳数只有15跳,当到一个目的要16跳的时候,rip会认为该目的是不可达的,那么RIP会丢弃这个数据包。因此rip有这样特性,所以他不能应用在大型的网络中
- 水平分割:路由器不会把从一个接口学习到的路由,在从该接口发送出去,默认也是启用
- 路由中毒/毒性反转/路由毒化:路由器中的某一条路由出现了故障,路由器会马上向外发送一条该路由跳数为16跳的路由,默认启用的。
- rip计时器:
Update t ime: 30 sec
Age time : 180sec
Garbage-collect time : 120 sec
rip每过30秒会发送自己完整的路由表给他的邻居,如果在180秒内,没有收到邻居的路由表,那么该路由器就会认为邻居出现了故障。但这个时候,该路由器还认为即使邻居出现了故障,但是它相信邻居会重新和我连接,所以180秒后,邻居的路由还在我的路由表中,然后在开始倒计时120秒,如果120秒内,邻居还没有和我建立连接,那么该路由器就会认为邻居出现了故障,从而在自己的路由表中删除该邻居的路由信息。
二(4)、RIPv1和RIPv2的区别以及报头格式
1、允许RIP的路由器会发送request和response两种类型的数据包和对方建立邻居关系(request是请求,response是给request的应答)
2、RIPv1使用的是广播和单播来建立邻居关系,并且使用广播的方式来更新路由(默认RIP运行的都是v1)
3、RIP的封装结构示意图:
E2 | IP | UDP | RIP |
---|
IP报头中,如果是1代表的是ICMP,17代表的是UDP
RIP使用的是UDP的源和目的的520端口
在RIP报头中: request 的协议号是1,response 的协议号是2
二(5)、RIPv1 不连续子网的问题,因为RIPv1会对路由进行.
- 自动汇总,所以就产生了不连续子网的问题。要解决这个问题,需要使用RIPv2, RIPv2会对路由进行自动汇总
- RIPv2手动汇总的作用:减小路由表的大小,从而提高路由器的性能。
- 如果删除了所有的明细路由,那么手动汇总路由也会消失。如果地址汇总写错了,是不会有效果.
- RIPv1和RIPv2的区别
1. v1会对所有的路由在主类网络的边界进行自动汇总,v2支持自动汇总且可以手动汇总
注意:根据R2上的现象,看到的是已经自动汇总了,那是因为默认在水平分割开启的情况下不会自动汇总,关闭的情况下会自动汇总。
2. v1使用广播进行路由更新,v2使用的是组播进行路由更新,且组播地址为224.0.0.9
3. v1是不支持验证的,v2是可以支持验证的
4. v1不支持VLSM,和CIDR, V2支持VLSM,不支持CIDR
5. RIP 的验证
RIP支持两种:明文(抓包看得见),密文(抓包看不见)
二(6)、RIP验证
[R2- Gigabi tEthernet0/0/0]rip authentication- modemd5 ?
nons tandard Nons tandard MD5 authenticationpacket format (IETF)
usual Huawei MD5 authentication packetformat
- Usual华为私有的MD5加密算法
- Nonstandard(IETF) 国际标准的加密算法
二(7)、引入外部路由
不想把33.3.3.3的路由宣告进RIP,但是又想让RIP中的路
由学习到33.3.3.3的路由,就需要把直连路由引入到RIP中[R3- rip-1] import- route direct
二(8)、附加度量值(cost)
[R1- rip- 1]preference 30
修改本地RIP路由协议的默认优先级[R1- Gigabi tEthernet0/0/0]rip metricout 5
用度量值为5发出去[R1- Gi gabi tEthernet0/0/0]rip metricin 10
进来的路由的度量值加10
三、OSPF动态路由
1、OSPF的基本配置[r1]ospf 1
启动0SPF进程,进程号为1,进程号只具有本地意义[r1]ospf 1 router-id 1.1.1.1
在0SPF进程后面可以加Router- ID的参数
- Router-id:用来标识一台OSPF路由器,并且该标识使用点分十进制格式来表示,且几乎所有的OSPF报文中都会携带Router-id参数
- 注意:如果一开始启动了OSPF 进程,没有配置Router-id,那么OSPF 路由器会自己选举Router-id,当他自己选完以后,该Router-id就会生效,这个时候我在去手动指定的话,需要重启OSPF进程,那么我手动指定的Router-id 才会生效
<r1>reset ospf process
重启OSPF进程,这样手动指定的router-id才会生效Warning: The OSPF process will be reset. Continue? [Y/N]:y
OSPF选举router- id的过程:
- 如果手动指定router- id,为最优
- 如果没有手动指定,那么就选择最大已经激活的换回接口的地址
如: lo0: 1.1.1.1 lo1:2.2.2.2,lo1是最大的换回口 - 如果即没有手动指定,也没有换回接口,就选择最大的已经激活的物理地址
[r1-ospf-1]area 0
进入区域0,区域0也叫主干区域宣告直连网络进区域0[r1- ospf-1- area 0.0.0.0]network 1.1.1.10.0.0.0
[rl ospf-l-area 0.0.0.0]network 12.1.1.0 0.0.0.255
OSPF的区域表示格式
[r1-ospf-1]area 0可以用十进制来表示一个区域,也可以用点分十进制格式来表示一个区域。无论是用十进制来写,还是点分十进制格式来写,路由器放肯定是点分是进制格式。
0 0.0.0.0
10 0.0.0.10
1000 0.0.3.232-->1000(10)转1111101000(2)-->0.0.21+20.28+27+26+24-->0.0.7.232
- 反掩码(通配符掩码):
- 作用:匹配的IP地址的范围
- 二进制0,表示精确匹配
- 二进制1,表示一个范围,即可以是0,也可以是1
- network 1.1.1.1 0.0.0.0表示精确匹配该IP地址
- network 12.1.1.0 0.0. 0.255表示匹配的IP地址范围是12.1.1.0~12.1.1.255,把该范围内的所有地址都宣告进区
域0
- OSPF有六种邻居状态机制
1. init
2. two- way
3. exstart
4. exchange
5. loading .
6. full
OSPF是相互发送Hello包来建立邻居关系的
2、OSPF 数据结构封装示意图