<路由协议的迁移>

 
·起Secondary地址,配好新的路由协议,将原IP地址删除。
 
注:OSPF和Eigrp不能用Secondary地址建邻居。
 
R1(config-route)#distance eigrp 150 170   修改路由协议的管理距离
 
<路由协议的重分布>
重分布是指连接到不同路由选择域的边界路由器在不同自主系统之间交换和通告路由选择信息的能力。
 
重分布原则:路由必须位于路由选择表中才能被重分发
 
在重分发时设定种子metric
 
协议        Seed Metric
RIP           16(无限大了)  必须手工指定     
EIGRP         无限大   也必须手工指定
OSPF          20    如果重分布进来的是BGP的话,Metric是1,这是个特例
IS-IS         0
BGP          携带原来的Metric值
 
R1(config-router)#default metric 1  使用此命令来设定种子metric值
 
重分布分两种:
1、单向重分布
2、双向重分布
 
1)OSPF -> RIP:
 R1(config)#router rip
  R1(config-router)#default-metric 3 (默认Seed Metric=infinity无限大,修改Seed Metric=3)
 R1(config-router)#redistribute ospf 110 metric 1 (优于default-metric命令) 
           以Metric=1发出,对方收到路由的Metric=1
 
 R1(config-router)#redistribute connected (可不加Metric,默认=1)重分布直连
 R1(config-router)#redistribute static   (可不加Metric,默认=1)重分布静态,路由前会打上R
 
2)RIP -> OSPF: 
 R1(config)#router ospf 110
 R1(config-router)#redistribute rip subnets (如不加Subnets,只有主类地址能被重分布)
  R1(config-router)#default-metric 8
 R1(config-router)#redistribute rip subnets metric 10 
(默认Seed Cost=20,如果将BGP->OSPF,默认=1)
 R1(config-router)#redistribute rip subnets metric 10 metric-type 1 
(加上路径Cost,默认为E2)
 
  R1(config-router)#redistribute connected subnets
 R1(config-router)#redistribute static subnets  还可在后面加router-map来过滤路由
 
3)ISIS -> EIGRP:
 R1#debug ip eigrp 
 
 R1(config)#router eigrp 90
 R1(config-router)#default-metric 1500 100 255 1 1500
 R1(config-router)#redistribute isis (level2) metric 1544  100  255  1  1500 (将IS-IS的Metric转换为Ei的Metric)
 (不加Metric,默认Seed Metric=infinity)        BW   DLY   R   Lo  MTU
                           带宽 延迟 可靠性 负载 MTU
 R2#show ip ei topology 3.3.3.0/24
 
·当把ISIS重分布进其他路由协议时,运行ISIS的直连接口不能重分布进去,这是ISIS本身的BUG。只能通过重分布直连解决。
 
 R1(config-router)#redistribute connected (不加Metric也可)
                                (根据直连接口的不同计算Metric)
 R1(config-router)#redistribute static (不加Metric也可)
                                (根据下一跳接口计算Metric)
 
 
4)EIGRP -> ISIS:
R1(config)#router isis
R1(config-router)#redistribute eigrp 90 (默认Seed Metric=0 ,默认以L2路由进入ISIS)
 
R1(config-router)#redistribute eigrp 90 metric 8 
 
R1(config-router)#redistribute ei 90 level-1 (以L1的路由进入ISIS,不做修改的话,L1路由器就收不到外部重分布进来的路由,因为默认是L2)
R1(config-router)#redistribute ei 90 level-1-2 
 
R3#show isis database detail/verbose
 
·重分布-在R上,将A协议重分布到B协议中:  
  R上所有运行A协议的接口(除ISIS/ODR),以及R路由表中所有A协议的路由,都会被重分布到B协议中。从别处学到的路由不会被重分布。
 
<双向双出口重分布>
 
·当把AD高的协议重分布到AD低的协议中时,就有可能出现问题。
 
不好的方法--改所有路由的AD
R1(config)#router ospf 110
R1(config-router)#distance 171 (将此协议的路由的AD改为171,对本协议所有路由都有效,改动范围太大,通常不建议这样做)
 
好的方法--缩小范围
R1(config-router)#distance 171 4.4.4.4(在OSPF中,这是RID) 0.0.0.0  (只将路由器4.4.4.4通告的OSPF路由AD改为171)
               (ADV)            (Wildcard,反掩码)
 
最好的方法--进一步缩小范围
R1(config)#access-list 2 permit 2.2.2.0
R1(config-router)#distance 171 4.4.4.4 0.0.0.0 2 (只针对4.4.4.4通告的2.2.2.0路由将AD改为171,对4.4.4.4通告的其它路由AD不变)
 
R1(config-router)#distance 171  0.0.0.0 255.255.255.255 2 
上面这条命令针对所有路由器通告的指定路由来改AD,在这一定要注意通告路由器的概念,在OSPF中和EIGRP中通告的路由器的区别,要注意你所要更改的路由是由哪一个路由器通告的。
 
R4(config-router)#distance ospf external 99 inter-area 88 intra-area 77
____________________________________________________________________________________
在EIGRP中的修改:
R4(config)#router eigrp 90
R4(config-router)#distance 109 24.1.1.2  0.0.0.0 (只对D路由有效,对D EX路由无效,因为EX路由是别的路由器通告的)
                              (Next-hop)(Wildcard)
 
R4(config)#access-list 2 permit 1.1.1.0
R4(config-router)#distance 109 24.1.1.2 0.0.0.0 2 
           (只针对2.2.2.0路由将AD改为171,只对D路由有效)
 
R4(config-router)#distance eigrp    89      169
                               (internal)(external)
---------------------------------------------------------------------------------------
访问列表的分类:
 
1、标准访问列表    
   只能基于源IP地址来进行分类
   可以使用列表号:1-99、1300-1999
   标准的访问列表通常要求放置在靠近目标的地方
2、扩展访问列表
   可以根据源IP地址、目的IP地址、源端口号、目的端口号,协议来进行分类
   可以使用列表号:100-199、2000-2699
   扩展访问列表通常要求放置在靠近源的地方
3、命名的访问列表
   只是将标准访问列表或扩展访问列表取个名字
   优点:可以对访问列表进行增加、删除操作。
 
 
<Distribute-List>用来过滤路由
 
R4(config)#access-list 2 permit 2.2.2.0
R4(config-router)#distribute-list 2 in serial 1 (只允许2.2.2.0路由从S1进)
 
R2(config)#access-list 2 deny 2.2.2.0
R2(config)#access-list 2 permit any 
R2(config-router)#distribute-list 2 out (不允许2.2.2.0路由从运行此协议的任何接口出去)
注意:在路由进程下,out后面不能跟接口,因为无意义,详见卷一493页
 
R1(config)#access-list 5 permit 5.5.5.5 
R1(config-router)#distribute-list 5 out ospf 110 (被重分布的那个协议,如OSPF->EIGRP)
           (注意:in后面不能跟协议,只有out后能跟,详见卷一494页)
 
1、根据奇偶数进行路由过滤
2、用ACL抓掩码
 
<Prefix-List>前缀列表
设计用于专抓路由,不仅可以抓网络号,还可以抓掩码
 
R4(config)#ip prefix-list 2(用名字也行) permit 2.2.2.0/24
R4(config-router)#distribute-list prefix 2 in serial 1
 
ip prefix-list 2 permit 2.2.2.0/24       (匹配前24位:2.2.2.* ,掩码必须为24位)
ip prefix-list 2 permit 2.2.2.0/24 le 32    (匹配前24位:2.2.2.* ,掩码必b须为24-32位)
ip prefix-list 2 permit 2.2.2.0/24 ge 26    (匹配前24位:2.2.2.* ,掩码必须为26-32位)
ip prefix-list 2 permit 2.2.2.0/24 ge 25 le 30 (匹配前24位:2.2.2.* ,掩码必须为25-30位)
ip prefix-list 3 permit 0.0.0.0/0 le 32     (匹配所有)不能像access-list哪样用any参数
 
ge必须大于前面的数字,小或等于le ,len<ge-value<=le-value
 
sh ip prefix-list用于查看
 
用前缀列表过滤A、B、C类路由
 
<Route-Map>
 
也叫路由图或者路由映射表
route-map调用ACL抓出一部分路由进行加工处理
 
route-map NAME permit 10
 match ip address x y z 
                 -------> OR
 match ip address a  ¦
 match ip address b  ¦ AND
 match ip address c  ↓
 
如不写match/set,默认:  match any
                        set   nothing
 
R1(config)#route-map WOLF permit 10
R1(config-route-map)#match ip address 37 39
R1(config-route-map)#set metric 88  
R1(config-route-map)#set metric-type type-1
 
·在route-map的最后隐含了一条deny any的语句
·如果不写一句空Route-map 去允许其它路由通过,则没有定义的路由直接被丢弃。
 
R1(config)#route-map WOLF permit 20 通常都会加上这一句
 
match 接口
还可以在重分布直连的时候match一个接口,直接写route-map就可以,不用定义访问列表。
R1(config)#route-map WOLF permit 10
R1(config-route-map)#match interface e0
 
使用route-map打tag:
 
对一些路由打上tag,好让后面的路由器根据tag找出这些路由并进行相应的策略
 
R1(config)#route-map WOLF permit 10
R1(config-route-map)#match ip address 37 39
R1(config-route-map)#set metric 88  
 
到了R2之后,对打tag的路由丢弃
R1(config)#route-map WOLF deny 10
R1(config-route-map)#match tag 20
 
<Policy-Based Routing>
 
PBR就是使用route-map这一工具对某个接口进来的路由做一些策略,符合条件的执行相应的策略,不符合条件的按正常情况进行转发。
 
·PBR allows for source-based routing.
  1、基于源来选择
  2、打标记Marking
 
注意: Applied to incoming packets PBR只针对于入项接口
 
PBR优于路由表-----路由器中没有到目标的路由,用PBR强行扔给下一跳路由器,只要下一个路由器有到目标的路由,依然可以到达,所以说PBR覆盖了正常的路由选择进程。
 
·如果不写一句空Route-map/route-map WOLF deny 10
  则没有定义的路由不进行策略,进行常规转发。
 
R3(config)#access-list 5 per 5.5.5.0 0.0.0.255
 
R3(config)#route-map PBR permit 10
R3(config-route-map)#match ip address 5
R3(config-route-map)#set interface serial 1 从本机的一个接口发出, 要求必须有显示路由
 
R3(config)#route-map PBR per 10
R3(config-route-map)#match ip address 9
R3(config-route-map)#set ip next-hop 34.1.1.4 发给与本机直连的下一跳路由器,在MA网络中必须用这一方法,不要求有显示路由
 
R3(config)#route-map PBR per 10
R3(config-route-map)#match ip address 9
R3(config-route-map)#set ip precedence 2 对数据分组设置优先级
 
R3(config)#int s0  (入口调用策略)
R3(config-if)#ip policy route-map PBR
 
R3#debug ip policy 
                      
·PBR默认对本地产生的数据流量不起效。也就是对自已产生的包不执行策略。
 
R3(config)#ip local policy route-map PBR (使PBR对本地数据流量有效)加上这一条命令才会对自已产生的包也做策略
 
PBR中不匹配的数据包不会DENY(丢弃),而是normal forwarding(正常转发)