路由-策略Policy(路由重分发、路由过滤、路由策略)
Preifx-list前缀列表,用于抓取路由;
Distribute-list分发列表,用于RIP和EIGRP过滤路由;
Filter-list过滤列表,用于OSPF过滤路由;
Route-map路由图,用于实现不同协议之间路由过滤。(其中一个功能)

一、路由重分发
重分布总是向外执行的。 这意味着执行重分布的路由器不更改其路由表。只有接收重分布路由的下行路由器会把路由添加到各自的路由表中。
对于OSPF来说,种子度量基于接口带宽。
对于EIGRP来说,种子度量基于接口带宽和延迟。
对于RIP来说,种子度量从跳数0开始并从路由器到路由器递增。
所有边界路由器必须能够把从源路由协议收到的路由度量转换为接收路由协议使用的度量。 将初始种子度量设置为比接收自治系统中最大度量更大的值。
默认种子度量值:
(1) 重分布到EIGRP和RIP的路由被分配的度量为0,它被解释为无限大或不可达。此规则的例外情况是重分布直连或静态路由,以及在两个EIGRP自治系统之间重分布路由。
(2)重分布到OSPF中的路由被分配一个默认类型2(E2)度量值20。BGP是个例外默认种子度量是1.
(3)重分布到BGP中的路由保持其IGP路由度量。
OSPF路由重分布到ERGRP中
default-metric 路由器配置命令,确立所有重分布路由的种子度量。指定的默认度量适用于被重分布到此协议中的所有协议。
Router(config-router)# default-metric 重分布度量值 路由最大带宽kbit/s 路由延迟度量值 可靠性度量reliability-metric 最小MTU subnets
redistribute 路由器配置命令,使用metric选项或route-map。在redistribute命令中使用metric参数为被重分布的协议设置特定的度量。redistribute命令中配置的度量覆盖该协议的default-metric命令值。
Router(config-router)# redistribute 重分布路由的源协议 metric 重分布度量值 路由最大带宽kbit/s 路由延迟度量值 可靠性度量reliability-metric 最小MTU subnets
ERGRP路由重分布到OSPF中
Router(config-router) # redistribute 重分布路由协议 [ metric metric-value] [ metric-type type-value] [ route-map map-tag] [ subnets]
通告无类网络时,工程师必须使用subnets关键字。不使用此关键字时,只有在路由表中使用默认有类掩码的路由会被重分布。
(1)单点双向重分发

从其他路由协议导入本地路由协议,路由度量值最终存储在本地的度量便称为种子度量值,例如OSPF的种子度量值为20
RIP:导入RIP协议的其他协议默认度量值修改为无穷大(路由毒化),需要手工设置
EIGRP:导入ERGIP协议的其他协议默认度量值修改为无穷大(路由毒化),需要手工设置
OSPF:① O E2 默认度量值20 ;② O E1 默认度量值20+X传播过程累加
ISIS:默认度量值0
BGP:是多少就是多少不做修改
配置完接ip和路由后,在R1上进行路由重分发:
RIP:
router rip
version 2
redistribute static metric 5
redistribute eigrp 100 metric 5
redistribute ospf 100 metric 5
redistribute isis level-1-2 metric 3
EIGRP1
router eigrp 100
redistribute static metric 5
redistribute rip metric 100000(带宽) 100(延迟) 255(可信度) 255(负载) 1500(MTU)
redistribute ospf 100 metric 1 1 1 1 1
redistribute isis level-1-2 metric 1 1 1 1 1
ospf
router ospf 100
redistribute static subnets \ 不加subnets时只能导入有类路由
redistribute rip subnets
redistribute eigrp 100 metric 30 metric-type 1 s ubnets
redistribute isis level-2 subnets
Isis
router isis
net 49.0001.0000.0000.0001.00
log-adjacency-changes
redistribute static ip metric 10
redistribute rip
redistribute eigrp 100
redistribute ospf 100
**(2)**双点双向重分发

配置完接ip和路由后,在R01和R02上进行路由重分发
注意顺序,假如先从R01开始做重分发:
RIP:
router rip
redistribute ospf 100 metric 5
ospf
router ospf 100
redistribute rip subnets
然后在 R02上做相同配置导入路由。
此时:
查看R01


R02的路由表:


可以发现R02的rip路由表没有了!!!--------->
次优路由问题
RIP的管理距离是120
OSPF的管理距离是90 OE2管理距离110
管理距离越小越优先。当管理距离高的路由协议导入管理距离低的路由协议时会产生次优路由问题
在R2的角度,左侧ospf的路由优先级要高,所有到4.4.4.4时应该选择从左侧到达。
为解决次优路由问题:
方案一:
OSPF:
router ospf 100
distance ospf external 130 //将OSPF 外部路由管理距离调大于RIP的120
EIGRP:
D EX --> 170
方案二(建议采用):
1.通过ACL匹配次优路由<外部路由>
access-list 1 permit 4.4.4.4
2.将次优路由<外部路由>的管理距离改大
router ospf 100
distance 130 1.1.1.1 0.0.0.0 1 //1.1.1.1 0.0.0.0 是对端R01的RID 1是ACL号

二、路由过滤

分发列表 distribute-list
分发列表可以把ACL(访问控制列表)应用到路由更新上。
经典ACL不影响路由器上生成的流量,所以在接口上应用ACL不会影响出向路由通告。把ACL关联到分发列表后,就可以控制路由更新了,无论它的源是什么。
配置分发列表
(1)第一步:工程师需要在全局配置模式中配置ACL,ACL中应该放行能够被通告或重分布的网络,并拒绝应该被过滤的网络。
(2)第二步:在路由协议配置模式下关联分发列表使用distribute-list命令将其应用在特定的路由协议上。分发列表可以过滤使用相同路由协议的邻居路由器从特定接口进入或发出的路由更新。分发列表也可以过滤重分布自其他路由协议或源的路由。
Router (config-router) # distribute-list access-list-number|name out或in 接口或路由进程或自治系统号
注意:右图示例中out配置在R3上,in配置在R1上

前缀列表 ip prefix-list
分发列表的缺陷:工程师通过使用ACL和distribute-list命令来实现路由过滤;然而使用ACL作为分发列表的过滤器有以下几个缺点:无法轻松匹配子网掩码;访问列表会按顺序对路由更新中的每个IP前缀进行评估;扩展的访问列表配置起来很繁重。
前缀列表是另一种用来过滤路由的方式。它可以与分发列表、route-map和其他命令一起使用。
前缀列表旨在过滤路由 ,而 访问列表原来旨在过滤数据包 ,后来被扩展用于路由过滤。
第一步:配置前缀列表:
Router (config)# ip prefix-list 列表名称或编号 seq seq-value deny | permit network/length [ge ge-value] [le le-value]
第二步: 在路由协议配置模式下关联分发列表使用distribute-list命令将其应用在特定的路由协议上。分发列表可以过滤使用相同路由协议的邻居路由器从特定接口进入或发出的路由更新。分发列表也可以过滤重分布自其他路由协议或源的路由。
Router (config-router) # distribute-list prefix-list 列表名称或编号 out或in 接口或路由进程或自治系统号
复杂访问列表route-map
route-map是复杂的访问列表,允许对数据包或路由进行条件测试,然后修改数据包或路由的属性。
route-map和访问列表的一个主要区别是route-map可以使用set命令修改数据包或路由。
在一个route-map中,每条route-map命令都有一个编号,因而可以独立进行编辑。
route-map中的命令语句对应于访问列表中的行。在route-map中指定匹配条件与在访问列表中指定源目的地址和掩码的概念相似。
重分布期间的路由过滤 :在执行重分布时]进行一些路由过滤。虽然这时可以使用分发列表,但route-map通过使用set命令在控制路由度量时更有益处。工程师要使用redistribute命令来应用route-map。
基于策略的路由(PBR) :使用route-map来匹配源和目的地址、协议类型和终端用户应用。当找到匹配项时,set命令会指定应该把数据包发送到哪个接口或哪个下一跳地址。使用PBR能够定义路由策略,而不是使用基于目的的路由。需要使用ip policy route-map接口配置命令在接口上调用route-map。
BGP :route-map是部署BGP策略的主要工具。可以使用route-map来指定BGP会话(邻居),控制允许哪些路由流入和流出BGP进程。除了过滤功能之外,route-map还可以对BPG路径属性进行复杂的控制。需要使用BGP neighbor路由器配置命令来调用route-map。
创建route-map有以下三个步骤。
第1步 使用route-map全局配置命令定义route-map。
第2步 使用 match命令定义匹配条件,还可选地使用set命令定义在条件满足时需采取的操作。
第3步 应用route-map。定义route-map时,需要使用全局配置命令route-map map-tag [permit | deny]
Prefix-list****前缀列表
(1) ACL抓取路由
access-list 1 permit 1.1.1.1
access-list 1 permit 172.16.1.0 0.0.0.255
access-list 100 permit ip host 1.1.1.1 host 255.255.255.255
access-list 100 permit ip host 172.16.1.0 host 255.255.255.0
(2)prefix-list
抓取相关路由流量
ip prefix-list 名称 seq 5 permit 1.1.1.1/32
192.168.1.0/24 ge 25 le 27 抓取25 、26、27
192.168.1.0 /24 le 27 抓取 24、25、26、27
192.168.1.0/24 ge 25 抓取25、26、……32

① distribute-list 分发列表应用于 距离矢量协议RIP和EIGRP****
第一步,通过ACL或者Prefix-list抓取路由;
ip prefix-list PL seq 5 permit 1.1.1.1/32
第二步,在路由进程下部署分发列表并调用ACL或Prefix-list
router rip
distribute-list prefix PL out FastEthernet1/0
② filter-list 过滤列表应用于 OSPF 协议 区域间 使用

ip prefix-list 命名 seq 5 permit 3.3.3.3/32
router ospf 100
area area号 filter-list prefix 命名 out /in
三、路由策略route-map
Route-map路由图,用于实现不同协议之间重分发路由过滤、策略路由PBR流量负载均衡
route-map PL permit 10
match ip address 1 2
Match ip address 1
Match ip address 2
match interface FastEthernet0/0 FastEthernet1/0
route-map PL deny 20
match ip address 2
set weight 1
route-map PL permit 30<空语句>
1、route-map的执行过程与ACL一致,从上到下一 一查找直到有 对应的语句匹配;
2、route-map具有隐藏语句放置在最后面,"match any deny any"; 一般在route-map后面加入允许的空语句;
3、match逻辑:若match在同一语句匹配多个条件,则只要某一条件匹配,此Match语句则成立;若match在同一route-map语句下使用,则需要全部match语句成立,此route-map语句才能成立。

route-map****应用在重分发
第一步,通过ACL或Prefix-list抓取路由;
ip prefix-list PL permit 3.3.3.3/32
第二步,编写route-map并调用ACL或Prefix-list;
route-map PL permit 10
match ip address prefix-list PL
第三步,执行重分发并加入route-map.
router ospf 100
redistribute eigrp 100 subnets route-map PL


route-map应用在PBR

PBR:policy-based route策略路由,用于实现基于源的流量控制。
R1(config)#access-list 1 permit 192.168.14.0 0.0.0.255
R1(config)#access-list 2 permit 192.168.15.0 0.0.0.255
R1(config)#route-map DX permit 10
R1(config-route-map)#match ip address 1
R1(config-route-map)#set ip next-hop 100.1.12.2
R1(config)#route-map WT permit 10
R1(config-route-map)#match ip address 2
R1(config-route-map)#set ip next-hop 100.1.13.3
R1(config)#int f0/0
R1(config-if)#ip policy route-map DX
R1(config)#int f1/0
R1(config-if)#ip policy route-map WT
注意:一定一定要在R1流量的 进接口方向 调用
在R2、R3上debug ip icmp
debug ip policy //调试PBR过程
show ip policy //查看PBR

四、规则
a. 策略路由独立于路由表, 权重高于路由表 ,当策略路由没有匹配时,则再次查看路由表;
b.策略路由一般应用在流量的 进 方向 接口;
c.策略路由一般不对本地流量执行策略,可通过以下命令来限制自身流量:
ip local policy route-map PL
