在现实环境中,一个单一的IP路由协议是管理网络中IP路由的首选方案,但是,在企业环境中,网络中是存在多种路由协议的,如果想要这些网络都互连互通,就要至少有一台路由器运行多种路由协议来实现不同网络之间的通信。就需要使用这篇博文所介绍的路由重分发

路由重分发通常在那些负责从一个AS学习路由,然后向另一个AS广播的路由器进行配置,简单来说就是将一种路由协议产生的路由条目转换成另一个路由协议。比如:一台路由器既运行OSPF又运行RIP,如果OSPF进程被配置为通告由RIP学习到的路由到OSPF AS中,这种做法就可以成为“重分发RIP”。

进行路由重分发时,最常考虑的因素有:度量值和管理距离。

OSPF使用的度量值成本;RIP使用的度量值时跳数。

关于路由的管理距离:
1.直连的管理距离是0;
2.静态的管理距离是1;
3.OSPF的管理距离是110;
4.RIP的管理距离是120。

使用路由重分发说白了就是改变路由协议的度量值和管理距离。

OSPF重分发路由的路径协议有两种,计算开销的方式是:
类型1(E1):内部开销+外部开销;
类型2(E2):只计算外部开销。

OSPF路由重分发_第1张图片
不是自己内部发布的路由,就称为外部路由,如果想要实现全网互通,就必须使用重分发路由。

配置重分发之前,必须注意一下几个方面:
1.决定在哪里添加新的路由协议;
2.确定ASBR;
3.决定哪个协议在核心,哪个协议在边界;
4.决定路由充分发的方向。

接下来我们结合一个简单的实验拓补,来了解一下配置
OSPF路由重分发_第2张图片
拓补图中IP地址、loopback口的地址已经配置完成(拓补图中担任ASBR角色的路由器已经标志出来了),按照实验拓补图上配置路由协议
路由器的简单配置,这里就一一介绍了

R1(config)#router ospf 1
R1(config-router)#net 192.168.7.1 0.0.0.0 area 1
R1(config-router)#net 192.168.2.0 0.0.0.255 area 1
R1(config-router)#net 192.168.3.0 0.0.0.255 area 0
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.5.2      
R2(config)#router ospf 1
R2(config-router)#net 192.168.8.1 0.0.0.0 area 0
R2(config-router)#net 192.168.3.0 0.0.0.255 area 0
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#no auto-summary 
R2(config-router)#net 192.168.4.0
R3(config)#router os 1
R3(config-router)#net 192.168.9.1 0.0.0.0 area 1
R3(config-router)#net 192.168.2.0 0.0.0.255 area 1
R3(config)#ip route 192.168.10.0 255.255.255.255 192.168.1.2
R4(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1
R5(config)#router rip
R5(config-router)#version 2
R5(config-router)#no auto-summary 
R5(config-router)#net 192.168.4.0 
R5(config-router)#net 192.168.11.0
ISP(config)#ip route 0.0.0.0 0.0.0.0 192.168.5.1

现在网络拓补中不属于同一种路由协议的路由条目不能进行交换,不属于同一个区域的路由现在是不通的,现在才可是真正的需要使用“路由重分发”,接下来介绍一下如何配置路由重分发只在担任ASBR路由器上配置就好

R1(config)#router ospf 1
R1(config-router)#default-information originate       
#宣告一条默认路由添加到OSPF区域中
R2(config)#router rip
R2(config-router)#redistribute ospf 1 metric 10  
#把OSPF区域中的路由条目转换成RIP路由条目,必须加metric(跳数)后面的数字自己随便定义,但是最大可以等于15,不允许大于15.
R2(config)#router ospf 1
R2(config-router)#redistribute rip subnets   
#把rip路由条目转换成OSPF的路由条目,必须加subnets(子网),可以省略metric(成本)默认是20,类型默认是类型2
R3(config)#router ospf 1
R3(config-router)#redistribute static subnets  
#将静态路由添加到OSPF区域中
R3(config-router)#redistribute connected subnets  
#将直连网络添加到OSPF区域中

现在已经配置完成了,实现全网通了,查看一下每个路由器的路由表
R1的路由表
OSPF路由重分发_第3张图片
R2的路由表
OSPF路由重分发_第4张图片
R3的路由表
OSPF路由重分发_第5张图片
R4的路由表
OSPF路由重分发_第6张图片
R5的路由表
OSPF路由重分发_第7张图片
ISP的路由表
OSPF路由重分发_第8张图片
路由表中,C表示直连路由、S表示静态路由、R表示通过RIP学到的路由、O表示通过OSPF学习到路由。
上面配置重分发的命令是最简单的,最简洁的,不能省略了,完整的命令格式:
OSPF路由重分发

其中,有关的参数:
protocol:指明路由器要进行路由重分发的源路由协议,主要的值有:bgp、egp、isis、ospf[process-id]、static、connected和rip。其中,static表示重分发静态路由,connected表示重分发直连路由、ospf[process-id]表示重分发另一个另一个OSPF进程的路由,rip表示重分发rip路由信息;
metric:可选参数,用来指明重分发路由的度量值;
metric-type:指定重分发路由的类型,可取1或2两个值,1即E1,2即E2,默认是E2。
subnets:连其子网一起宣告。

根据需要自己添加!
实验完成!