通过BGP路径欺骗来影响BGP的路由选择
今天我们来关注下面红色部分的第4条,继续关注BGP的路径选择,根据BGP路由选择决策过程 对于特定的目的地,BGP只选择一条最佳路径。但如果到达目标有多条路径,则将会依据以下这些策略进行路径选择:
1、选权重最高的路由(属cisco私有属性,只在当前本地路由器有效)
2、选择本地优先级最高的路由(注:只用于本地AS内部)
3、选择当前路由器的通告过的路由
4、选择AS路径最短的路由
5、选择源头编码最小的路径(依次为IGP<EGP<Incomplete)
6、选择MED值最小的路径
7、外部路径(EBGP)优先于内部路径(IBGP)
8、选择经过最近的IGP邻居的路径
9、对于EBGP路径,选择最老的路由
10、选邻居BGP路由器ID最小的路由
11、选择邻居IP地址最小的路由
一、关于选择AS路径最短的路由,要实践这种方式,我们应用到的技术是使用路径欺骗来影响BGP的路由选择。下面通过一个实验来理解这方面的知识。先来看一下拓扑图:
二、分析与配置步骤:
1、先把各路由器的IP和BGP协议配置好,在这个实验中,针对的还是R1到R3的环回地址。我们先看一下R1的BGP数据库:
1、先把各路由器的IP和BGP协议配置好,在这个实验中,针对的还是R1到R3的环回地址。我们先看一下R1的BGP数据库:
R1#sh ip bgp
………………
Network Next Hop Metric LocPrf Weight Path
* 150.150.1.0/24 192.168.4.1 0 64515 64514 i(经AS64515的path)
*> 192.168.1.2 0 64513 64514 i(经AS64513的path)
* 192.168.1.0 192.168.1.2 0 0 64513 i
*> 0.0.0.0 0 32768 i
* 192.168.2.0 192.168.4.1 0 64515 64514 i
*> 192.168.1.2 0 0 64513 i
* 192.168.3.0 192.168.4.1 0 64515 64514 i
*> 192.168.1.2 0 64513 64514 i
*> 192.168.4.0 0.0.0.0 0 32768 i
|
2、针对上面的显示情况,看到了R1到150.150.1.0/24经过两个下一跳的AS都不相同,但path是相同的,但其选择的最佳路径是走R2,原因R2先配置BGP,并且它先选择了最先通告的路由,再者就是它的BGP的router-id小。所以它选择了邻居BGP路由器ID最小的路由。之前我们可以通过很多方法去改变路径走向,比如说本地优先级,MED(但不同的AS不做比较),cisco私有的weight。这次我们将讨论另一个BGP属性:路径欺骗。但BGP的路径欺骗是MED的替代解决方法,而且其适用范围较小,只能在有限的网络环境下配置使用。
3、为了更改选择路径,我们在R3建立一个路由图,针对目标地址设置一个在本地AS的基础上增加一个相同的本地AS号,以及增长path:
3、为了更改选择路径,我们在R3建立一个路由图,针对目标地址设置一个在本地AS的基础上增加一个相同的本地AS号,以及增长path:
R3(config)#acces-list 1 per 150.150.1.0 0.0.0.255(建立一个针对目的的ACL)
R3(config)#route-map set_prepend permit 10 (建立一个名为set_prepend的路由图序号为10)
R3(config-route-map)#match ip add 1(匹配ACL 1)
R3(config-route-map)#set as-path prepend 64514 64514 (增加一个64514编号,path也就增长了,增加相同的AS是为了在网络中不产生无效的路由)
R3(config-route-map)#exit
R3(config)#route-map set_prepend permit 20 (再建立一个空路由图,以便其它路由都采取默认方式)
R3(config-router)#nei 192.168.2.1 route-map set_prepend out (指定邻居和出口)
|
三、验证效果:
1、到R1上看一下R1上的BGP数据库和路由表:
1、到R1上看一下R1上的BGP数据库和路由表:
R1#sh ip bgp
………………
Network Next Hop Metric LocPrf Weight Path
*> 150.150.1.0/24 192.168.4.1 0 64515 64514 i
* 192.168.1.2 0 64513 64514 64514 64514 i(增加了两个AS号)
*> 192.168.1.0 0.0.0.0 0 32768 i
* 192.168.1.2 0 0 64513 i
* 192.168.2.0 192.168.4.1 0 64515 64514 i
*> 192.168.1.2 0 0 64513 i
* 192.168.3.0 192.168.1.2 0 64513 64514 i
*> 192.168.4.1 0 0 64515 i
*> 192.168.4.0 0.0.0.0 0 32768 i
* 192.168.4.1 0 0 64515 i
R1#sh ip route
………………
Gateway of last resort is not set
C 192.168.4.0/24 is directly connected, FastEthernet0/0
C 192.168.1.0/24 is directly connected, Serial1/1
B 192.168.2.0/24 [20/0] via 192.168.1.2, 00:21:29
B 192.168.3.0/24 [20/0] via 192.168.4.1, 00:21:27
150.150.0.0/24 is subnetted, 1 subnets
B 150.150.1.0 [20/0] via 192.168.4.1, 00:20:57
|
2、通过上面的显示,我们现在看到了R1到150.150.1.0/24的最佳下一跳选择了R4。并且对于下一跳为R2到目的网络150.150.1.0/24的path都延长了。这样手动地使R1形成了差效并选择了一个正确的路径,且其它的路由都没变。
1、选权重最高的路由(属cisco私有属性,只在当前本地路由器有效)
2、选择本地优先级最高的路由(注:只用于本地AS内部)
3、选择当前路由器的通告过的路由
4、选择AS路径最短的路由
5、选择源头编码最小的路径(依次为IGP<EGP<Incomplete)
6、选择MED值最小的路径
7、外部路径(EBGP)优先于内部路径(IBGP)
8、选择经过最近的IGP邻居的路径
9、对于EBGP路径,选择最老的路由
10、选邻居BGP路由器ID最小的路由
11、选择邻居IP地址最小的路由
一、关于选择AS路径最短的路由,要实践这种方式,我们应用到的技术是使用路径欺骗来影响BGP的路由选择。下面通过一个实验来理解这方面的知识。先来看一下拓扑图:
二、分析与配置步骤:
1、先把各路由器的IP和BGP协议配置好,在这个实验中,针对的还是R1到R3的环回地址。我们先看一下R1的BGP数据库:
1、先把各路由器的IP和BGP协议配置好,在这个实验中,针对的还是R1到R3的环回地址。我们先看一下R1的BGP数据库:
R1#sh ip bgp
………………
Network Next Hop Metric LocPrf Weight Path
* 150.150.1.0/24 192.168.4.1 0 64515 64514 i(经AS64515的path)
*> 192.168.1.2 0 64513 64514 i(经AS64513的path)
* 192.168.1.0 192.168.1.2 0 0 64513 i
*> 0.0.0.0 0 32768 i
* 192.168.2.0 192.168.4.1 0 64515 64514 i
*> 192.168.1.2 0 0 64513 i
* 192.168.3.0 192.168.4.1 0 64515 64514 i
*> 192.168.1.2 0 64513 64514 i
*> 192.168.4.0 0.0.0.0 0 32768 i
|
2、针对上面的显示情况,看到了R1到150.150.1.0/24经过两个下一跳的AS都不相同,但path是相同的,但其选择的最佳路径是走R2,原因R2先配置BGP,并且它先选择了最先通告的路由,再者就是它的BGP的router-id小。所以它选择了邻居BGP路由器ID最小的路由。之前我们可以通过很多方法去改变路径走向,比如说本地优先级,MED(但不同的AS不做比较),cisco私有的weight。这次我们将讨论另一个BGP属性:路径欺骗。但BGP的路径欺骗是MED的替代解决方法,而且其适用范围较小,只能在有限的网络环境下配置使用。
3、为了更改选择路径,我们在R3建立一个路由图,针对目标地址设置一个在本地AS的基础上增加一个相同的本地AS号,以及增长path:
3、为了更改选择路径,我们在R3建立一个路由图,针对目标地址设置一个在本地AS的基础上增加一个相同的本地AS号,以及增长path:
R3(config)#acces-list 1 per 150.150.1.0 0.0.0.255(建立一个针对目的的ACL)
R3(config)#route-map set_prepend permit 10 (建立一个名为set_prepend的路由图序号为10)
R3(config-route-map)#match ip add 1(匹配ACL 1)
R3(config-route-map)#set as-path prepend 64514 64514 (增加一个64514编号,path也就增长了,增加相同的AS是为了在网络中不产生无效的路由)
R3(config-route-map)#exit
R3(config)#route-map set_prepend permit 20 (再建立一个空路由图,以便其它路由都采取默认方式)
R3(config-router)#nei 192.168.2.1 route-map set_prepend out (指定邻居和出口)
|
三、验证效果:
1、到R1上看一下R1上的BGP数据库和路由表:
1、到R1上看一下R1上的BGP数据库和路由表:
R1#sh ip bgp
………………
Network Next Hop Metric LocPrf Weight Path
*> 150.150.1.0/24 192.168.4.1 0 64515 64514 i
* 192.168.1.2 0 64513 64514 64514 64514 i(增加了两个AS号)
*> 192.168.1.0 0.0.0.0 0 32768 i
* 192.168.1.2 0 0 64513 i
* 192.168.2.0 192.168.4.1 0 64515 64514 i
*> 192.168.1.2 0 0 64513 i
* 192.168.3.0 192.168.1.2 0 64513 64514 i
*> 192.168.4.1 0 0 64515 i
*> 192.168.4.0 0.0.0.0 0 32768 i
* 192.168.4.1 0 0 64515 i
R1#sh ip route
………………
Gateway of last resort is not set
C 192.168.4.0/24 is directly connected, FastEthernet0/0
C 192.168.1.0/24 is directly connected, Serial1/1
B 192.168.2.0/24 [20/0] via 192.168.1.2, 00:21:29
B 192.168.3.0/24 [20/0] via 192.168.4.1, 00:21:27
150.150.0.0/24 is subnetted, 1 subnets
B 150.150.1.0 [20/0] via 192.168.4.1, 00:20:57
|
2、通过上面的显示,我们现在看到了R1到150.150.1.0/24的最佳下一跳选择了R4。并且对于下一跳为R2到目的网络150.150.1.0/24的path都延长了。这样手动地使R1形成了差效并选择了一个正确的路径,且其它的路由都没变。
本文转自wxs-163 51CTO博客,原文链接:http://blog.51cto.com/supercisco/272888