路由重分发、操控路由管理距离和度量值的工具应用场景:网络割接、网络迁移 --网络的升级换代:RIPv1/IGRP升级到OSPF/EIGRP --网络合并和重组:从EIGRP割接到OSPF 单点双向重分发:在单个区域边界路由器ASBR上进行的 单点双向重分发:路由器R1将协议A重分发进协议B;包含宣告进A的所有接口的直连路由以及通过协议A学习到的已经加入路与表的协议A路由(IS-IS默认不会重分发直连路由)。 优点:安全,不存在路由反馈,不会产生次有路由和路径环路(由于水平分割存在,路由不会回传)。 缺点:没有冗余,若R1 down了,两边的路由就没了。 多点多向重分发:在多个区域边界路由器ASBR上进行的 多点多向重分发:配置过程遵循顺时针+逆时针的顺序,在每做一次重分发时,要检查对端边界路由器的路由表是否正常;若不正常,需修改管理距离。 优点:提供了冗余和可靠性 缺点:不安全,存在路由反馈,会产生次有路由和路径环路。 如图中,OSPF和RIP做双点双向重分发,由于OSPF的管理距离小于RIP,路由反馈将影响边界路由器上的RIP域内路由,原来打R的路由,现在打上了O E2 解决方法1:一边使用EIGRP协议,可以解决路由反馈(D/90 D EX/170)。 解决方法2:修改边界路由器R1和R4上的管理距离或者使用分发列表过滤路由;解决了路由反馈之后,还需要进行路由优化,防止不合理的负载均衡;通过修改使用Route Map或offer-list修改路由度量值。 注:建议不要用分发列表distribute list,原因在于使用分发列表过滤路由之后,就使得双点双向重分发优势不在,像单点一样存在单点故障。 种子度量值Seed Metric / Default-metric RIP 0/16 infinity(不可达) EIGRP 0 infinity(不可达) OSPF 20/1 其他协议为20;BGP协议为1 IS-IS 0 infinity(可达) BGP BGP 路径属性/路径矢量;利用MED继承metric属性。
-将静态路由重分发进RIP,Seed Metric为1,可达,无需修改,并且0.0.0.0/0缺省路由可以进入RIP进程。 -将直连路由重分发进RIP,Seed Metric为1,可达,无需修改。 -Default-metric命令会影响协议A或静态路由重分发进RIP的路由,不影响直连路由重分发进RIP,不建议使用,正确的做法是; (config-router)#redistribute rip metric 1(种子度量值) -重分发进RIP协议的Seed Metric值从第二跳开始逐跳累加1
-(config-router)#redistribute rip subnets;默认情况下,只会将主网路由重分发进来,加了subnets命令就可以将子网重分发进来。 -将路由协议A(RIP、EIGRP、ISIS)重分发至OSPF,Seed Metric为20,Metric-Type为O E2,可以修改Metric-Type为O E1 -将路由协议A(BGP)重分发至OSPF,Seed Metric为1 -将直连路由和静态路由重分发至OSPF,Seed Metric为20,Metric-Type为O E2,只有明细和非缺省路由才可以重分发; -将OSPF重分发进其他协议时,默认内部路由O和O IA可以过去,外部路由OE1和OE2是过不去的;后面需要加上match参数才可以实现; (config-router)#redistribute ospf 5match internal external 1 external 2
(config-router)#default-metric BW Delay Reliability loading mtu; (config-router)#default-metric 10000/1000 100 255 1 1500 -将路由协议A重分发至EIGRP ,Seed Metric为0,代表不可达,需要手工修改;且需要同时修改5个参数(带宽、延时、负载、可靠性、MTU) -将静态路由/直连路由重分发进EIGRP,Seed Metric不为0,可达,并且0.0.0.0/0缺省路由也可以进入EIGRP进程。
-将路由协议A重分发进IS-IS,Seed Metric为0,代表可达且路由类型默认为L2;如果重分发的路由器为L1路由器时,则需要修改重分发路由类型为L1,否则重分发失败;将IS-IS重分发进路由协议A时,默认只携带L2路由;后面需要添加 L1、L1/2参数才能携带。 -重分发静态路由进IS-IS时,是不能携带默认路由的。
-将路由协议A重分发进BGP,BGP路由默认没有度量值,是使用MED继承metric属性。 路由反馈:路由反馈可能会产生次优路径、引起路由环路,是非常危险的;单点双向重分发中,会不会产生路由反馈;路由协议A被重分发进B,再重分发回A? 实验结果:R1的路由表不会改变,R2只收到了R4的环回口路由和14.1.1.0/24网段路由;RIP重分发进OSPF的路由,不会再被R1收到并重分发进EIGRP。 注:由于内部路由一般比外部路由准确,因此建议被重分发的路由的Seed-Metric比路由域中的所有metric的最大值要大,这是一个路由优化。 访问控制列表ACL:标准ACL只能抓路由前缀而不能抓路由掩码;扩展ACL可以抓取路由前缀和掩码;分发列表只支持标准ACL;route-map支持标准和扩展ACL; 标准ACL抓取10.1.1.0/24的路由:access-list 5 permit 10.1.1.0 0.0.0.0; 标准ACL抓所有主A类路由:access-list 10 permit 0.0.0.0 127.0.0.0 标准ACL抓所有主B类路由:access-list 20 peimit 128.0.0.0 63.255.0.0 标准ACL抓所有主C类路由:access-list 30 permit 192.0.0.0.0 31.255.255.0 标准ACL抓主B路由中掩码为24的,且第一段为偶数,第二段为奇数,第三段为偶数的路由:access-list 40 permit 128.1.0.0 62.254.254.0
access-list 100 permit ip 0.0.0.0 127.0.0.0 255.0.0.0(host)255.0.0.0
access-list 110 peimit ip 128.0.0.0 63.255.255.0 255.255.0.0 0.0.0.0
access-list 120 permit ip 192.0.0.0.0 31.255.255.0 255.255.255.0 注:标准ACL只能抓取特定前缀,对于2.2.2.0/24,2.2.2.0/25,2.2.2.0/26来说,只能抓到前缀2.2.2.0,抓不到掩码,因此,要么全部放行,要么全部拒绝。 前缀列表Prefix List:用来抓取路由,前缀列表更加精确,可以同时抓取路由前缀和掩码;需要注意的是,反码表示的是多个前缀,而不是掩码;GE是大于等于,LE是小于等于;分发列表和route-map都支持前缀列表。 ip prefix-list cisco seq 10 permit 10.1.1.0/24 GE 27 LE 30;该命令匹配的是掩码长度在27和30之间的,前24位是10.1.1.0的条目。
ip prefix-list 20 seq 30 permit 0.0.0.0/1 GE 8 LE 8
ip prefix-list 20 seq 40 permit 128.0.0.0/2 GE 16 LE 16
ip prefix-list 20 seq 50 permit 192.0.0.0/3 GE 24 LE 24
ip prefix-list any seq 60 permit 0.0.0.0/0 LE 32 分发列表distribute-list;实现控制层面上的路由条目过滤,通过调用ACL或前缀列表使用;在距离矢量协议(RIP和EIGRP)中,使用分发列表可以基于入站和出站两个方向做路由过滤;在链路状态协议(OSPF)中,只能做入向,不能做出向;原因在于链路状态协议发送的是LSA不是路由条目,分发列表不能基于ACL或前缀列表抓取LSA,但是可以在入站方向调用分发列表进行本地抑制,但不能限制LSA的传递,因此只对本地路由器进行抑制。 (config)#access-list 15 permit 192.168.1.0 0.0.0.0 (config-router)#distribute-list 15 out ospf 110 将ospf 110进程中的路由重分发至eigrp中时,调用acl 15匹配,匹配成功的才能加入EIGRP中;这种方式对于重分发是最佳的。 Distribute-list gateway 10(前缀列表)in/out G0/0 过滤邻居发过来的路由。 Distribute-list 10(前缀列表)in/out ospf 1 基于协议进行路由过滤。 偏移列表offer-list:结合ACL在入站和出站时增大(只能改大不能改小)通过EIGRP、RIP获取的路由度量值。 -只能在距离矢量协议中使用:EIGRP、RIP -人为的增大某条路由条目的度量值从而影响路由选路; (config)#access-list 20 permit 1.1.1.0 0.0.0.0 (config-router)#offset-list 20(ACL编号)in/out metric (接口编号) 注:in/out指的是控制层面路由流向而分数据层面流向;ACL编号为0时代表将学到的全部路由条目的度量值修改; 泄露列表leak-map:用来在向别人发送汇总路由时泄漏一条或多条明细路由;同时也可以用在EIGRP的stub路由器向外通告的路由上,进行适当的控制。 leak-map的配置步骤: (1)定义prefix:ip prefix-list 10 per 100.1.3.0/24 用来抓取想泄漏出去的路由。 (2)定义route-map:route-map cisco per 10 match ip address prefix 10 (3)接口调用:ip summary-address eigrp 100 100.1.0.0 255.255.248.0 leak-map cisco Filter-list: 1、执行BGP路由策略,可利用filter-list,结合bgp的正则表达式、as_path属性,让BGP路由器允许或拒绝BGP路由更新。 2、在OSPF中,利用filter-list针对在ABR上把lsa 1/lsa 2汇总成lsa 3的过程当中进行过滤。 路由映射表Route Map:用于路由的再发布和策略路由,还经常使用在BGP中修改路由属性;route-map这个工具很重要,且使用范围非常广泛。 1. 重分发期间进行路由过滤或执行策略--控制层面 2. 网络地址转换NAT--控制层面 3. BGP中的策略部署--控制层面 4. 策略路由PBR以及流量工程MPL TE(运营商环境中)--数据层面 注:策略路由实际上是复杂的静态路由,静态路由是基于数据包的目标地址并转发到指定的下一跳路由器;策略路由还利用ACL和prefix-list,以便提供更多功能的过滤和分类。 Route-map定义规则: 在每一个序列中,可定义供策略部署的两个元素:匹配条件(match语句)和执行动作(set语句);你也可以定义多个条件,在同一行match中,若使用多条ACL或者prefix-list,则是或的关系,只要有一条匹配,即该match匹配;当条件被匹配时,就会去执行set指定的相关动作(set语句并非必须,若route-map仅用于匹配感兴趣流量,则不需要set语句);route-map被调用后,匹配动作将会从最小的序列号开始执行,如果该序列号中的条件都被匹配了,则执行set命令,若条件不匹配,则切换到下一个序列号继续进行匹配动作。 1、一个route map永远会拥有一个隐藏的空Entry。没有Match,相当于Match Any;没有Set,相当于Set Nothing。并且,该Entry执行的策略是Deny。 2、在编写语句的时候我们不写编号则编号默认为10;当我们之前没写编号的语句,之后我们有写了编号为10的语句则覆盖之前的语句。 3、在编写语句的时候我们不写deny或permit;则默认为permit 4、如果一条语句没有match则意味着匹配所有条目 route-map配置步骤: 1、 全局配置命令创建一个route-map (config-router)#route-map test permit/deny 10 2、定义匹配条件,抓路由 match ip address/premix-list匹配访问列表或前缀列表(支持标准和扩展ACL) match length根据分组的第三层长度进行匹配 match interface匹配下一跳出接口为指定接口之一的路由 match ip next-hop匹配下一跳地址为特定访问列表中被允许的那些路由 match metric匹配具有指定度量值的路由 match route-type匹配指定类型的路由 match tag根据路由的标记进行匹配 3、定义set动作,修改对应的属性 set metric设置路由协议的度量值 set metric-type设置目标路由协议的度量值类型 set default interface指定如何发送这样的分组 set interface指定如何发送这样的分组 set ip next-hop指定转发的下一跳 set next-hop指定下一跳的地址,指定BGP的下一跳 Set tag 修改路由标记值 4、调用route-map redistribute eigrp 90 subnets route-map test Route Map在重分发中的应用 要求:将RIP重分发进OSPF,在R1上进行路由过滤;放行1.1.1.0/24,并将Metric-Type设置为O E1;放行3.3.3.0/24,并将Seed Metric设置为10;过滤掉13.1.1.0/24 部署过程:1.设置prefix list R1(config)#ip prefix-list 20 permit 1.1.1.0/24 R1(config)#ip prefix-list 30 permit 3.3.3.0/24 2.设置route map R1(config)#route-map R2O permit 10 R1(config-route-map)#match ip address prefix-list 20 R1(config-route-map)#set metric-type type-1 R1(config)#route-map R2O permit 20 R1(config-route-map)#match ip address prefix-list 30 R1(config-route-map)#set metric 10 3.重分发时应用route map R1(config)#router ospf 110 R1(config-router)#redistribute rip subnets route-map R2O 注:由于隐藏的空Entry,13.1.1.0/24被deny了;也可以显示deny13.1.1.0/24: R1(config)#access-list 100 permit ip 13.1.1.0 0.0.0.0 255.255.255.0 0.0.0.0 (Router Map可以调用标准ACL或扩展ACL) R1(config)#route-map R2O deny 30 R1(config-route-map)#match ip address 100 R1(config)#route-map R2O permit 40 R1(config-route-map)#exit R1(config)#router ospf 110 R1(config-router)#redistribute rip subnets route-map R2O |
|