详细讲述路由器控制和路由器重分布
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
详细讲述路由器控制和路由器重分布
时间:2008-07-26 来源:作者:刘斌
10.1 路由重分布
10.1.1 路由重分布原则
路由重分布的作用:可以使得多种路由协议之间,多重厂商环境中进行路由信息交换
Metrics
在做路由重分布的时候要考虑到的一个问题是:
metric.比如把OSPF路由重分布到EIGRP里,EIGRP和OSPF之间没有办法理解对方的metric,
因此在做路由重分布之前,要分配一个对方可以理解的metric,
Administrative Distances
Redistributing from Classless to Classful Protocols
OSPF是基于无类的路由协议,将IGRP重分布到OSPF以后,路由器Paige它可以知道OSPF路由域和IGRP路由域的所有子网信息;
而路由器Leonard只能学习到OSPF中掩码为/24的子网,因为IGRP是基于类的路由协议
10.1.2 配置路由重分布
路由器Paige的IGRP配置如下:
Paige(config)#router igrp 1
Paige(config-router)#redistribute ospf 1 metric 10000 100 255 1 1500
Paige(config-router)#passive-interface Ethernet1
Paige(config-router)#network 172.20.0.0
如上把OSPF(源路由协议)向IGRP(接受重分布的路由协议)重分布,同时分配了该路由的metric,
10000:带宽 100:延迟 255:可靠性 1:负载 1500:MTU
路由器Paige的OSPF配置如下:
Paige(config)#router ospf 1
Paige(config-router)#redistribute igrp 1 metric 30 metric-type 1 subnets
Paige(config-router)#network 172.20.112.2 0.0.0.0 area 0
如上是把IGRP重分布到OSPF中去,指定metric为30(OSPF的metric标准为cost),经过重分布以后,路由器Paige就成为了ASBR,经过重分布的IGRP路由是作为外部路由宣告进OSPF路由域的,同时使用metric-type命令指定外部路由类型为E1.subnets参数只在把路由重分布到OSPF中使用,它指明经过重分布后的子网的细节信息
另一种分配metric的方法是使用default-metric命令,比如刚才才把IGRP重
分布到OSPF里的配置也可以写成下面的形式:
Paige(config)#router ospf 1
Paige(config-router)#redistribute igrp 1 metric-type 1 subnets
Paige(config-router)#default-metric 30
Paige(config-router)#network 172.20.112.2 0.0.0.0 area 0
2种不同的配置其实是相同的效果, default-metric命令的优点是,当要重分布多种路由协议的时候,可以同时指定这些经过重分布的路由的metric
Paige(config)#router ospf 1
Paige(config-router)#redistribute igrp 1 metric-type 1 subnets
Paige(config-router)#redistribute rip metric-type 1 subnets
Paige(config-router)#redistribute eigrp 2 metric-type 1 subnets
Paige(config-router)#default-metric 30
Paige(config-router)#network 172.20.112.2 0.0.0.0 area 0
这里使用default-metric 30同时指定了重分布到OSPF里的RIP,IGRP和EIGRP
路由的metric都为30 不过这2种分配metric的命令可以结合在一起使用,如下:
Paige(config)#router igrp 1
Paige(config-router)#redistribute ospf 1
Paige(config-router)#redistribute rip metric 50000 500 255 1 1500
Paige(config-router)#redistribute eigrp 2
Paige(config-router)#default-metric 10000 100 255 1 1500
Paige(config-router)#passive-interface Ethernet1
Paige(config-router)#network 172.20.0.0
如果metric和default-metric命令没有指定具体的参数,重分布到OSPF里的路由默认的metric为20,而其他的路由协议为0.metric为0不能被RIP正确理解,并且与IGRP和EIGRP不兼容,IS-IS可以正确理解
注意路由器Mantle还连接了个stub网络192.168.10.0/24,如果要求把这个网络宣告进IGRP路由域,可以使用redistribute connected命令
注意不同进程的EIGRP的重分布不需要分配metric,因为它们是同一种路由协议,可以相互理解对方的metric 查看路由器Podres的路由表,如下:
为什么只有1条为指向192.168.2.0/24的E2外部OSPF路由?答案是把其他类型的路由重分布到OSPF里的时候没有使用参数subnets,因此将把没有连接到做路由重分布的路由器(Robinson)的主网络地址(192.168.2.0/24)做重分布.使用subnets参数
如上,所有子网都能被路由器Hodges学习到
另外,OSPF外部路由类型默认为E2,如果要把上面的OSPF外部路由类型更改为E1,可以在重分
布外部路由到OSPF中的时候使用命令metric-type 1,如下:
Robinson(config)#router ospf 1
Robinson(config-router)#redistribute eigrp 1 metric 50 subnets
Robinson(config-router)#redistribute eigrp 2 metric 100 metric-type 1 subnets
Robinson(config-router)#network 192.168.3.33 0.0.0.0 area 0
10.1.4 路由重分布及路由汇总
Cisco的EIGRP,OSPF和IS-IS都可以对重分布的路由进行路由汇总. 可以在OSPF进程下使用summary-address指定汇总的地址和掩码,不过这个命令是用在ASBR上的,
ABR上的路由汇总是使用area <area-id> range <address>命令,如下:
对于EIGRP的汇总,是基于接口的,使用命令ip summary-address eigrp {process-id},如下:
10.1.5 IS-IS和RIP间的路由重分布
参数internal为内部路由的含义,默认为内部,并且为L1.路由器Aaron的路由表如下:
路由器Aaron所连的子网可以汇总为10.2.0.0/16,重分布到IS-IS里的路由和OSPF一样,也是使用summary-address命令,但是还要额外的指定IS-IS的Level,如下:
10.2 默认路由及ODR按需路由
默认路由(Default Route)最大的好处就是减少路由表的条目,从而减小了路由表体积,降低了对路由器CPU资源的占用
ODR(On-Demand Routing,按需路由)是从Cisco IOS版本11.2出现的,它为Cisco所私有,并且不是真正意义上路由协议.它依赖于Cisco发现协议(CDP,Cisco Discovery Protocol)
标记为o的代表ODR,它的管理距离为160,并且metric永远不会超过1
10.2.1 配置静态默认路由
Memphis(config)#ip classless
Memphis(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.82
配置的静态默认路由,RIP,IGRP和EIGRP将自动宣告默认路由(OSPF和IS-IS要做额外的配置)
10.2.2 default-network配置默认路由
另一种配置默认路由的方法是使用ip default-network命令.
可以看到10.0.0.0被标记为侯选的默认路由,但是没有指定默认网关,原因是路由器Athens就是到这个默认网络的网关,即使在配置RIP的时候不声明network 10.0.0.0,ip default-network命令会使得路由器Athens宣告一个默认网络
对于IGRP和EIGRP的默认路由稍微有些不同,它们不能理解0.0.0.0,所以通常会宣告一个真实的地址作为外部路由,然后这个外部路由会被IGRP和EIGRP理解成默认路由如果路由器Athens运行的是IGRP,如下:
router igrp 1
network 10.0.0.0
network 172.16.0.0
!
ip classless
ip default-network 10.0.0.0
注意和配置RIP不同的是,在配置IGRP的时候增加了network 10.0.0.0语句
10.2.3 Default-information originate配置默认路由
可以看到路由器Athens上设置的有默认路由,可路由器Sparta上却没有,
这时就要用到default-information originate命令,告诉该OSPF路由器成为1个ASBR(默认路由以类型5的LSA被宣告进OSPF路由域中),并指定metric和OSPF外部路由类型,如下:
Athens(config)#router ospf 1
Athens(config-router)#network 172.16.0.0 0.0.255.255 area 0
Athens(config-router)#default-information originate metric 10 metric-type 1
Athens(config)#ip classless
Athens(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.2
10.2.4 配置ODR按需路由
ODR的启用只需输入命令router odr无需指明网络和其他参数. ODR传送地址前缀,而不是整个地址,因此路由器必须支持VLSM ODR可以被重分布到其他路由协议 ODR的管理距离为160,度量永远都不会超过1 ODR路由得传输机制是Cisco发现协议 (CDP),路由器上用cdp run启用,用cdp enable在特定的接口上启用 CDP运行在任何支持子网访问协议(SNAP)的介质上,即ODR也依赖SNAP的支持在中心路由器上用router odr启用分支路由器上配置一条指向中心路由器的静态路由就可以了
10.3 路由过滤
路由过滤可以通过下面2种方法实现:
1.使用distribute-list过滤特定路由
2.使用distance命令来控制路由的AD 路由过滤器的用途:
把一个路由选择域分割成多个子域,在连接不同子域的路由器上过滤建立路由防火墙
过滤器是基于访问列表的基础上用distribute-list acl-no in/out 接口/路由协议
NO.是被应用的访问列表编号
在“路由协议”关键字中,仅有out是有意义的
由于链路状态协议不从自身路由表中通告路由,所以在“接口”关键字中用out是没有意
义的,要过滤什么进程,就把过滤器放在什么进程下例:在OSPF 1下过滤RIP,则在OSPF进程下用distribute-list 10 in rip 在OSPF 1下过滤OSPF 1,这在OSPF进程中用distribute-list 10 in 要在一个本来运行一种路由协议的网络中运用另一种路由协议时,为了防止出错和路由黑洞,如果新协议的管理距离小于旧协议,在新路由进程中用distance增大新协议的管理距离,等到网络中的每个路由器上新协议都配置好后再改回去,再删除旧协议,最后用clear ip route * 清空路由表,让其重新学习在路由进程中用distance AD IP-addr wildcat-mask acl-NO.
10.4 Route-Map
route map和ACL很类似,它可以用于路由的重分布和策略路由,还经常使用在BGP中.策略路由(policy route)实际上是复杂的静态路由,静态路由是基于数据包的目标地址并转发到指定的下一跳路由器,策略路由还利用和扩展IP ACL链接,这样就可以提供更多功能的过滤和分类 route map的一些命令:
10.4.1 配置Route-map
序列号在没有给出的情况下默认是10,并且route map允许有多个陈述,如下:
尽管先输入的是20,后输入的是15,IOS将把15放在20之前.还可以允许删除个别陈述,如下:
Linus(config)#no route-map Hagar 15
在删除的时候要特别小心,假如你输入了no route-map Hegar而没有指定序列号,那么整个route map将被删除.并且如果在添加match和set语句的时候没有指定序列号的
话,那么它们仅仅会修改陈述10.在匹配的时候,从上到下,如果匹配成功,将不再和后面的
陈述进行匹配,指定操作将被执行
关于拒绝操作,是依赖于route map是使用再路由的再发布中还是策略路由中,如果是在策略路由中匹配失败(拒绝),那么数据包将按正常方式转发;如果是用于路由再发布,并且匹配失败(拒绝),那么路由将不会被再发布
如果数据包没有找到任何匹配,和ACL一样,route map末尾也有个默认的隐含拒绝所有的操作,如果是在策略路由中匹配失败(拒绝),那么数据包将按正常方式转发;如果是用于路由再发布,并且匹配失败(拒绝),那么路由将不会被再发布
如果route map的陈述中没有match语句,那么默认的操作是匹配所有的数据包和路由;每个route map的陈述可能有多个match和set语句,如下:
! route-map Garfield permit 10
match ip route-source 15
match interface Serial0
set metric-type type-1
set next-hop 10.1.2.3
!
在这里,为了执行set语句,每个match语句中都必须进行匹配
10.4.2 路由策略
使用ip policy route-map命令定义策略路由,这个命令是基于接口的,并且只对进站(incoming)的数据包有影响
再假设策略规定从172.16.1.0的服务器上发出的FTP和Telnet流量分别转发到Lucy 和Pigpen上,
在路由器Schroeder上做如下配置:
interface Ethernet0
还可以根据数据包的大小来做策略路由,在路由器Schroeder上做如下配置:
对于路由器自己所产生的流量,要对它们做策略路由的话,使用ip local policy route-map,该命令是基于全局配置模式下的,如下,在路由器Schroeder上的配置:
只有match语句没有set语句,如果没有permit 10,那么OSPF Hello包会和permit 30匹配并被转发到路由器Pigpen上,这将切断路由器Lucy和Schroeder之前的邻接关系;如果匹配permit 10,OSPF Hello包将被正常转发,不影响邻接关系 10.4.3 在重分布中使用Route-map 在路由的再发布中使用route map,只需要在使用redistribute的时候调用相应的route map即可.拓扑图如下:
现在要求只相互再发布第三个8位位组为奇数的路由,在路由器Zippy上做如下配置:
其中permit 20没有match命令,因此默认匹配所有地址上个例子使用
distribution-list做简单的路由过滤也可达到相同效果,但是route map还可以有更高级的功能,如下配置:
如上就是使用route map来控制再分布的OSPF外部路由类型和IS-IS路由Level 关于Route-map的更多应用参见后文BGP中的策略控制。