上课笔记
路由映射表(route map)
路由映射表可以做比较复杂的访问控制列表,主要功能包括路由控制和策略路由等。定义路由映射表的命令为route-map map-tag 【permit | deny】【sequence-number】通常每个route-map陈述都包含match和set。match用来匹配条件,常用的匹配条件包括ip地址、接口、度量值、tag、路由类型以及数据包长度等。当有多个匹配条件时逻辑关系必须搞清楚。如格式为match ip address a b c ,表示逻辑或,只要有一个条件匹配即可。如果格式为:
- match ip address a
- match ip address b
- match ip address c
则表示逻辑与,必须匹配所有的条件。
set定义对符合匹配条件所采取的行动。
set行为 | 描述 |
set ip next hop | 设定数据包的下一条地址 |
set interface | 设定数据包出接口 |
set ip default nest hop | 设定默认的下一条地址,用于当路由器表里没有到达的地址路由条目的时候 |
set default interface | 设定默认的出接口 |
set ip tos | 设定IP数据包的tos值 |
set ip preecedence | 设定IP数据包的优先级 |
set metric | 设定路由的度量值 |
set tag | 设定路由的标记值 |
路由映射表有如下的特征:
- 一个route map 的末尾默认行为是deny any。这个deny的使用结果依赖于这个route map是怎样使用的。比如,在执行策略路由时,如果一个数据包对于route map 没有匹配项,它会正常转发数据包,而在路由重分布时,对于路由条目,如果route map 没有匹配项,则被过滤掉。
- 一个route map可以包含多个route map陈述,它们的执行顺序像ACL一样,从上到下被执行。如果route map 陈述没有match,则意味着匹配所有。
- 序号指定了条件检查的顺序,不写编号默认为10,但是序号不会自动递增。
- 在route map 陈述中不写deny或permit则默认为permit。
- 在删除route map 语句时,没编号则删除整个route map。
什么是route maps
route maps的工作就像一个复杂的访问列表
- route maps提供了自上而下的处理
- 一旦有匹配,离开了route map
- 每一行使用序列号以方便编辑
- 支持行插入
- 支持行删除
- route maps基于命名的方式,而不是编号,便于记录。
- 匹配条件和设置标准,可以使用类似脚本语言中的“如果,那么”
Offset-list :偏移列表(在距离矢量路由协议中,对路由的metric进行增大)
偏移列表的用于在出站或者入站方向增加EIGRP或者RIP路由条目的度量值。偏移列表只适用于距离箱量路由协议。可以通过ACL来限制偏移列表的作用范围。
access-list 1 permit 1.1.1.0 !抓取1.1.1.0的路由
offset-list 1 in 2 f0/0 !从 FO/0收到ACL 1中的路由时,将metric增大2
如果调用的ACL不存在,则默认对所有路由生效
如果不指定接口,则对所有接口生效
前缀列表:(prefix list)
前缀列表的作用类似与ACL,但比ACL更灵活,且更易于理解。前缀列表有以下特点。
- 编辑方便性。在配置前缀列表时,可以指定序列号,只要序列号不是连续的,以后就可以方便地插入条目,或者删除对某个序号的条目,而不是整个前缀列表。
- 执行的高效性,在大型列表的加载和路由的查找方面性能比ACL有显著的改进。
- 灵活性,可以在前缀列表中指定掩码的长度,也可以指明掩码长度的范围。
分布列表:Distribute-list(选择部分路由接收或发出)
ACL通常用于过滤用尸数据流,而个是路由协议产生的流量,可时ACL对目身产生的流量不能进行过滤,而分布列表提供控制路由更新的另一种方法,通常与ACL、路由映射表或者前缀列表结合使用。可以对单一路由协议的路由进行过滤,也可在路由协议之间做重分布的时候进行路由过滤,防止路由反馈和路由环路等。
使用分布列表对允许哪些路由更新,拒绝哪些路由更新等具有很大的灵活性,但是值得注意的是,对于同一个区域的链路状态路由协议( 如OSPF),由于要保持链路状态数据库的同步,所以不能使用分布列表对出站路由进行过滤。
在配置分布列表时,不同的路由协议,可供选择的参数可能不同。
- 当接收路由时,将某些路由不表,或发出路由时隐藏某些路由
- 在距离矢量路由协议中,不管是in还是out ,同样有效,并且会影响下游设备
- 在链路状态路由协议中,只有in方向有效并且不会对下游设备产生影响(因为链路状态路由协议传递的是LSA,不是路由), out方向无法使用(除非是本地始发的外部路由)
- 分发列表作用的位置:从拓扑表到路由表的中间
filter-list(在OSPF的ABR上过滤三类LSA)
area 0 filter-list prefix deny11 in
in Filter networks sent to this area
out Filter networks sent from this area
router-map:路由策略
match:匹配需要操作的目标
match ip add x y z
逻辑上是or:在x、y、z中任何一个匹配即匹配中
match ip add x
match ip add y
match ip add z
逻辑上是add:需要在x、y、z中都有匹配中才会匹配
route map operation (cont.)
- match语句可以包含多个引用
- 同一行中的多个匹配条件使用逻辑OR(或)
- 必须至少有一个引用允许该路由成为重新分配的候选者
- 每个垂直匹配使用一个逻辑AND(与)
- 所有匹配语句必须允许该路由仍然是重新分配的候选者
- 路由映射permit或deny决定是否重新分配候选
set:设置目标的属性
1.路由的metric、metric-type、netx-hop
- 不写match则表示匹配所有
- 不写set则表示不操作
the match command(匹配命令)
- match 命令用来指定要匹配的条件
- 相关的route map 语句允许或拒绝匹配的路由
R#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R(config)#router ospf 10 R(config-router)#redistribute rip route-map redis-rip
R#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R(config)#route-map redis-rip permit 10 R(config-route-map)#match ip address 23 29 R(config-route-map)#set metric 500 R(config-route-map)#set metric-typt type-1 R(config)#route-map redis-rip deny 20 R(config-route-map)#match ip address 37 R(config)#route-map redis-rip deny 30 R(config-route-map)#set metric 5000 R(config-route-map)#set metric-type type-2
R#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R(config)#access-list 23 permit 10.1.0.0 0.0.255.255 R(config)#access-list 29 permit 172.16.1.0 0.0.0.255 R(config)#access-list 37 permit 10.0.0.0 0.255.255.255
在此示例中,RIPvl 将重新分发到 OSPF 10 中。一个名为"redis-rip"的路由映射已附加到重新分发 rip 命令。路由映射的序列号 10 正在 ACL 23 或 ACL 29 中查找 IP 地址匹配项。如果找到匹配项,则路由器会将路由重新分配到成本指标 500 的 OSPF 中,并将新的 OSPF 路由设置为外部类型 1。
如果第 10 行不匹配,请移至第 20 行。如果 ACL 37 中存在匹配项,则不要让该路由重新分发到 OSPF 中,因为序列号 20 是拒绝。
如果序列号 20 不匹配,请移动到 30。由于 30 是许可证,并且没有匹配条件,因此所有剩余的路由都将重新分配到 OSPF 中,成本指标为 5000,外部指标为类型 2。
set命令
- set命令用来修改匹配路由信息
- 该命令用于修改重分布路由的参数
不写match则表示匹配所有
不写set则表示不操作
- route-map cisco deny 10
- match ip address 1
- set metric-type type-1
- route-map cisco permit 20
- match ip addreaa prefix-list per ccie
- set metric 30
- route-map cisco permit 30
PBR:策略路由(先与路由表指示数据包的走向)
使用route-map的配置(route-map怎么写就怎么写)