路由控制(选路) 汇总.note

noteId: WEBb30ae6ad3f1e25efbd96b4d1ba4a97dd · 原始路径:/ALL/网络 - C模块/1-路由协议合集、路由控制、策略路由/路由控制、PBR/路由控制(选路) 汇总.note · 图片:1 · 附件待处理:0

 
·按照排列顺序定义优先选择的放啊,越靠前的方式越推荐,越优先
 
1、EIGRP:
 
(1)修改接口 delay(延迟):
接口默认 delay:10
delay越小,metric值越小
# 修改出接口的delay(路由从哪边出去,就改哪边的delay)
interface g0/0
 delay 1
 
 
(2)offset-list:
in方向:对邻居传入的路由增加跳数/度量值
out方向:对从本地传给邻居的路由增加跳数/度量值
access-list 1 permit 1.1.1.1 /32
router eigrp 100
 # 第一个值指定0可以匹配所有路由
 # 第二个值表示要增加的路由跳数/度量值
 # 最后的接口可以不加,加了就只对单个接口生效,不加就对所有接口生效
 offset-list 1 out 1 g0/1
 
 
(3)在重分发时调用 route-map 来修改 metric 值
 
(4)配置 非等价负载均衡路由:
router eigrp 1
 variance 2
 
 
2、OSPF:
 
(1)修改接口 cost 值(最推荐):
cost 默认值为 1(值越低越优先)
改cost值会影响出去的路由,例如R1 去往 R2有G0/0、G0/1两个接口,将G0/0接口的cost值设置为10,那么流量就不会走G0/0了,会优先走G0/1
# OSPFv2:
interface GigabitEthernet0/0
 ip ospf cost 10
 
# OSPFv3:
interface GigabitEthernet0/0
 ospfv3 cost 10
 
(2)修改 OSPF 参考带宽,让它自动计算 cost值:
必须在OSPF所有设备(哪怕不同area)中配置,否则会导致选路问题
其实不会影响到路由选路,会自动计算cost,用 下面定义的bandwidth 除以 真实带宽 就等于 cost值(cisco中真实带宽默认都是1000)
router ospf 1
 auto-cost reference-bandwidth 100000    //这样cost会自动计算为100(因为 100000/1000=100)
 #auto-cost reference-bandwidth 10000    //这样cost会自动计算为10(因为 10000/1000=10)
 
(3)在重分发时调用 route-map 来修改 metric 值、将路由类型改为 E1 让它通过链路自动叠加 cost。
 
 
(4)max-metric 将本机传出去的所有路由设置为最大cost值:
让本机继续保持OSPF邻居关系,但是把经过本机的路由,metric(cost)设置为最大值,让流量尽量先不通过该路由器
如果本机作为区域ABR,还会影响区域间的路由,让它优先不走本机
 
比赛如果要考,大概率只会考 on-startup 这个参数,因为其他参数都能用 route-map 做到一样的效果
 
·一直将cost设置为最大值:
默认只影响经过的路由,本机的直连网段(没有建立ospf邻居的直连网段),这个网段的路由也不会影响,同时默认也不会影响 外部路由、汇总路由。这些都要额外指定参数
router ospf 1
 max-metric router-lsa
 # 所以假设题目要求将该路由器设置为备份路由器,那么一般这样配置:
 max-metric router-lsa summary-lsa external-lsa    //并且还可以手动指定将这些路由改为什么cost值,而不是必须最大值
 
·将本机产生的 外部路由、汇总路由、本地直连路由 的cost也修改:
默认不会修改 汇总路由、外部路由、直连路由(本机独有,没有其他OSPF邻居的路由)的 cost 值
# 可以组合使用,也可以单独使用:
router ospf 1
 max-metric router-lsa summary-lsa external-lsa
 # max-metric router-lsa include-stub    //同时也影响本机独有的直连路由(无ospf邻居)
 
·路由器启动后的多少秒内,不转发流量(将cost值设置为最大值):
router ospf 1
 max-metric router-lsa on-startup 10
 
·等待BGP路由收敛后,再将路由cost值恢复到正常(当路由器启动后):
假设本机路由器同时运行ospf和bgp,当机器重启后,ospf启动和获取路由会比BGP更快,此时如果有流量来到本机,但是bgp还没有收敛完成(例如bgp默认路由还没有),那么该流量就会被丢弃
(如果bgp一直不收敛,最多等待600秒)
router ospf 1
 max-metric router-lsa on-startup wait-for-bgp
 
 
 
3、BGP:
BGP按下面的顺序来选择最优路径(当值相同时才选择下一项):
1、最高Weight值
2、最高LOCAL_PREF值
3、是否为本地发起路由(下一跳为0.0.0.0的路由)
4、最短AS_PATH(使用bgp bestpath as-path ignore可以忽略对AS_PATH的比较)(使用ip as-path acl可以手动增加AS_PATH)
5、最优Origin类型(IGP优于EGP优于Incomplete[重分发])
6、最小MED值
7、eBGP优于iBGP
8、最优IGP metric值
9、负载均衡(如果开启),如果上面的值全都相同(包括AS-PATH),就会开启负载均衡(最大支持6条,默认为1条),否则,继续比较下一个属性
10、如果下一跳都为eBGP,则选择最早学习到的路由(存在时间最长的路由)
11、最低Router-ID下一跳
12、最短cluster list(只在reflector RR反射器的环境存在,功能如同AS_PATH)
13、最小下一跳的邻居地址
 
(1)修改 Local Preference:
仅影响当前iBGP,仅在iBGP范围内传播
值越大越优先,默认值100
ip prefix-list TO-INTERNET permit 0.0.0.0/0    //匹配默认路由
 
route-map SET-LOCALPREF permit 10
 match ip address prefix-list TO-INTERNET
 set local-preference 200
 
router bgp 65001
 neighbor 12.1.1.1 route-map SET-LOCALPREF in
 
(2)weight:
仅本地有效,不会传给邻居
值越大越优先,默认值 0(本地生成的路由32768)
route-map SET-WEIGHT permit 10
 set weight 500
 
router bgp 65001
 neighbor 12.1.1.1 route-map SET-WEIGHT in
 
# 或者直接设置邻居 weight值:
router bgp 65001
 neighbor 12.1.1.1 weight 500    //从该邻居学习到的所以路由weight都设置为 500
 
(3)修改 AS-PATH,影响eBGP路径:
增加本地的AS-PATH长度,就能影响eBGP优先走另一台路由器
ip prefix-list MY-PREFIX permit 192.168.10.0/24
 
route-map PREPEND permit 10
 match ip address prefix-list MY-PREFIX
 set as-path prepend 65001 65001 65001
 
router bgp 65001
 neighbor 12.1.1.1 route-map PREPEND out
 
 
(4)community:
用community 为路由打上标签,然后针对这个community标签进行控制、过滤
ip prefix-list MY-PREFIX permit 192.168.10.0/24
 
route-map SET-COMM permit 10
 match ip address prefix-list MY-PREFIX
 set community 65000:100 additive
 
router bgp 65001
 neighbor 12.1.1.1 send-community
 neighbor 12.1.1.1 route-map SET-COMM out
 
 
(5)MED:
可以影响eBGP和iBGP
越小越优先,默认值0
ip prefix-list MY-PREFIX permit 192.168.10.0/24
 
route-map SET-MED permit 10
 match ip address prefix-list MY-PREFIX
 set metric 50
 
router bgp 65001
 neighbor 12.1.1.1 route-map SET-MED out
 
 
(6)BGP 额外参数:
 
·选路时忽略 AS_PATH:
router bgp 65001
 bgp bestpath as-path ignore
 
·让相同AS之间比较MED更加稳定:
优化AS之间的MED比较,让相同AS的进入同一个组进行比较,选出最优的那条(这条是优化选项,可以常驻配置,不会引发问题)
因为默认选择比较MED时,如果有其他AS参与,可能不会选择到最优路径
router bgp 65001
 bgp deterministic-med
 
 
·不管来自哪个AS,都强制比较MED:
默认情况下,MED只在 来自同一个AS 的路由之间进行比较
配置了这个之后,就能够在不同AS之间进行比较MED
router bgp 65000
 bgp always-compare-med
 
 
 
4、不同协议间选路:
 
·默认选路:
# 默认是这样选路的:
直连 > 静态 > EIGRP 汇总 > eBGP > EIGRP 内部 > OSPF > EIGRP 外部 > iBGP
 
·降低AD值的命令:
# EIGRP:
router eigrp 1
 distance eigrp 90 100    //设置内部路由AD值为90(不变),外部路由设置为100
 
# OSPF:
router ospf 1
 distance ospf intra-area 100 inter-area 100 external 121
 ## intra-area:区域内
 ## inter-area:区域间
 ## external:外部
 
# BGP:
router bgp 65000
 distance bgp 20 100 200
 # 第一个值20:eBGP路由AD值
 # 第二个值100:iBGP路由AD值
 # 第三个值200:本地产生的BGP路由的AD值
 
 
 
5、PBR:
 
(1)在 源接口应用,控制通过的路由:
# 配置 ACL匹配路由:
access-list 10 permit 192.168.1.0 0.0.0.255
 
# 配置 route-map 设置下一跳:
route-map PBR permit 10
 match ip address 10
 set ip next-hop 1.1.1.1
 
# 在 源接口应用 PBR:(该路由从哪个接口进入,就在哪个接口应用)
interface g0/0
 ip policy route-map PBR    
 
 
(2)在 本地应用,控制始发于本地的路由:
# 配置 ACL匹配路由:
access-list 10 permit 192.168.1.0 0.0.0.255
 
# 配置 route-map 设置下一跳:
route-map PBR permit 10
 match ip address 10 / match interface Loopback 0    //这里使用 match interface 会好一点
 set ip next-hop 1.1.1.1
 
# 应用PBR(控制始发于本地的路由)
ip local policy route-map PBR
测试使用 traceroute [IP] source
 
 
 
(3)配置 SLA、Track检测,设置两条或多条 set ip next-hop:
 # 先配置 sla监测:
ip sla 1

 icmp-echo 1.1.1.2 source-interface GigabitEthernet0/0    //监测 1.1.1.2 的对端地址,使用Gig0/0为源地址

 frequency 5    //监测间隔为 5秒

ip sla schedule 1 life forever start-time now    //启用sla1
 
ip sla 2

 icmp-echo 2.2.2.2 source-interface GigabitEthernet0/3

 frequency 5

ip sla schedule 2 life forever start-time now
 
# 配置 track关联sla:
track 1 ip sla 1 reachability

track 2 ip sla 2 reachability
 
# 配置 ACL,匹配内网流量:
ip access-list extended NAT
 deny ip 192.168.1.0 0.0.0.255 172.16.1.0 0.0.0.255    // 这条是拒绝VPN流量(如果配置了VPN就需要,如果不拒绝就会将去往VPN的流量也NAT,导致VPN内网无法通信)

 permit ip 192.168.1.0 0.0.0.255 any
 
# 配置 路由策略:
route-map POLICY

 match ip address NAT

 set ip next-hop verify-availability 1.1.1.2 1 track 1    //匹配内网地址,设置下一跳为 1.1.1.2,设置优先级为1,应用track 1,当track 1状态为 up时应用该策略,当为 down时则不应用(优先启用这条,因为优先级为 1)

 set ip next-hop verify-availability 2.2.2.2 2 track 2    //匹配内网地址,设置下一跳为 2.2.2.2,设置优先级为2,应用track 2,当track 2状态为 up时应用该策略,当为 down时则不应用
## 如果想要优先走 G0/3 进行NAT转换,那么就将 2.2.2.2 那条的优先级设置为1,将 1.1.1.1 的优先级设置为 2
 
# 在内网接口应用路由策略:
int g0/2
 ip policy route-map POLICY
## 如果有多个内网接口:
int ra g0/1-2
 ip policy route-map POLICY