文章目录
- 一、协议首选值(PrefVal)
- 二、本地优先级(Local_Pref)
- 三、优选手动聚合>自动聚合>network>import>从对等体学到的
- 四、优选AS路径(AS_Path)最短的路由
- 五、比较起源属性 IGP>EGP>Incomplete
- 六、来自同一AS的路由,优选MED值最低的
- 七、EBGP>IBGP
- 八、优选到下一跳IGP Metric较小的路由
- 九、负载均衡
- 十、优选Cluster_List最短的路由
- 十一、优选Router_ID最小的路由
- 十二、优选peer ip地址小的路由
- 附件:实验拓扑(百度网盘)
一、协议首选值(PrefVal)
协议首选值(华为私有),仅在本路由器有效,默认数值为0,协议首选值越大越优先。仅能改变进入本路由器的路由选路。
如拓扑图所示,R1、R2、R3和R4四台路由器分别属于不同AS。相邻2台路由器之间均通过互联地址建立EBGP邻居关系。R1上有一个10.10.10.10/32的地址,通network宣告进BGP中。 R4上收到了10.10.10.10/32的路由。
1、R4当前优选了从R2传递过来的10.10.10.10/32路由,R4访问10.10.10.10路径就是R4-R2-R1。
[R4]dis bgp routing-table
BGP Local router ID is 10.1.24.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.10.10.10/32 10.1.24.2 0 200 100i
* 10.1.34.3 0 300 100i
2、在R4上修改从R3传递过来的10.10.10.10/32路由的协议首选值为100。
[R4]
bgp 400
peer 10.1.34.3 preferred-value 100
#
3、修改协议首选值后,R4当前优选了从R3传递过来的10.10.10.10/32路由,R4访问10.10.10.10路径就是R4-R3-R1。
<R4>dis bgp routing-table
BGP Local router ID is 10.1.24.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.10.10.10/32 10.1.34.3 100 300 100i
* 10.1.24.2 0 200 100i
二、本地优先级(Local_Pref)
本地优先级,数值越大越优先,默认为100。本地优先级只能在AS内传递,通过EBGP传递给其他AS设备时,本地优先级会被剥离。
如拓扑图所示,共有R1-R6六台路由器,R1和R2、R1和R3是IBGP关系,其余互相是通过互联地址建立的EBGP邻居关系,R6上有一个10.10.10.10/32的地址,通network宣告进BGP中。
1、R1当前优选了从R2传递过来的10.10.10.10/32路由,R1访问10.10.10.10路径就是R1-R2-R4-R6。
<R1>dis bgp routing-table
BGP Local router ID is 10.1.12.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 10.10.10.10/32 2.2.2.2 100 0 400 600i
* i 3.3.3.3 100 0 500 600i
2、修改本地优先级为120
(1)创建前缀列表
ip ip-prefix 1 index 10 permit 10.10.10.10 32
(2)创建route-policy
route-policy 123 permit node 10 if-match
ip-prefix 1 apply local-preference 120
#
(3)调用route-policy(3种方法,任选其一)
方法一:调用在R3的import方向 (我选择的方法)
bgp 100
peer 10.1.35.5 route-policy 123 import
#
方法二:调用在R3的export方向
bgp 100
peer 1.1.1.1 route-policy 123 export
#
方法三:调用在R1的import方向
bgp 100
peer 3.3.3.3 route-policy 123 import
#
我选择了方法一在R3的import方向调用策略。因为本地优先级120比100高,R1优选了从R3传递过来的本地优先级为120的10.10.10.10/32路由,R1访问10.10.10.10/32路径就是R1-R3-R5-R6。
<R1>dis bgp routing-table
BGP Local router ID is 10.1.12.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 10.10.10.10/32 3.3.3.3 120 0 500 600i
* i 2.2.2.2 100 0 400 600
三、优选手动聚合>自动聚合>network>import>从对等体学到的
1、手动聚合和自动聚合
手动聚合:
(1)可以对路由引入进行手动聚合
(2)可以对network的路由进行手动聚合自动聚合:
只可以对路由引入的路由进行自动聚合
2、验证手动聚合(R1和R2上)
[R2]
(1)在R2上使用前缀列表匹配loopback接口
ip ip-prefix 1 index 10 permit 20.20.1.0 24
ip ip-prefix 1 index 20 permit 20.20.2.0 24
ip ip-prefix 1 index 30 permit 20.20.3.0 24
(2)创建路由策略
route-policy 123 permit node 10
if-match ip-prefix 1
#
(3)R2上只将loopack地址引入BGP中
bgp 200
import-route direct route-policy 123
(4)配置手动路由聚合
bgp 200
aggregate 20.0.0.0 8
R1的BGP路由表中收到了聚合后的路由,也收到了明细路由
在手动聚合命令aggregate 20.20.0.0 16 后加上detail-suppressed ,可以抑制明细路由。
[R2]
bgp 200
aggregate 20.20.0.0 16 detail-suppressed
R1的BGP路由表只收到了聚合后的路由
3、验证自动聚合(R1和R3上)
先删除R2上验证手动聚合时的配置,避免影响R1收到的路由。
[R3]
(1)在R3上使用前缀列表匹配loopback接口
ip ip-prefix 1 index 10 permit 20.20.1.0 24
ip ip-prefix 1 index 20 permit 20.20.2.0 24
ip ip-prefix 1 index 30 permit 20.20.3.0 24
#
(2)创建路由策略
route-policy 123 permit node 10
if-match ip-prefix 1
#
(3)R3上只将loopack地址引入BGP中
bgp 300
import-route direct route-policy 123
#
(4)配置自动路由聚合
bgp 300
summary automatic #注意:只聚合引入的路由,network进来的路由不生效
#
R1的BGP路由表只收到了聚合后的路由
4、验证手动聚合优于自动聚合
R2上配置手动聚合配置,抑制明细路由,R3上配置自动聚合配置,我们看R1上是怎么优选的。可以看到R1优选了从R2手动聚合的路由。所以手动聚合优于自动聚合。
5、验证network的路由>import的路由
在R2和R3上设置都配置一条loopback0为2.2.2.2/32的路由,R2上采用network的方式,R3采用import-route direct的方式。
首先在R3上配置import-route direct的动作。
R1上BGP路由表如下
R2上配置network 2.2.2.2 32的动作
R1 BGP路由表如下
可见,R1优选了从R2学来的路由,network的路由>import的路由。
四、优选AS路径(AS_Path)最短的路由
R2和R4上都配置一条loopback0:2.2.2.2/32的地址,都使用network的方式在BGP中宣告。R2的BGP配置
R4的BGP配置
再看下R1的BGP路由表
因为从R2传来的路由path最短的原因,优选了从R2传递过来的路由
AS-Path属性是可以修改的
(1)Additive:追加as-path属性 在原有的>基础上进行增加
(2)Overwrite:覆盖as-path属性 把原有的>AS-path给直接覆盖
目前R1优选了从R2传递过来的路由,我们可以通过修改as-path属性影响R1的选路。
[R2]
(1)创建前缀列表
ip ip-prefix 1 permit 2.2.2.2 32
#
(2)配置路由策略。2.2.2.2/32的路由追加 500 500 600 这三个as-path。
route-policy 123 permit node 10
if-match ip-prefix 1
apply as-path 500 500 600 additive
#
(3)BGP调用策略
bgp 200
import-route direct route-policy 123
R1的BPG路由表
可以看出,优选as-path路径最短的路由。
五、比较起源属性 IGP>EGP>Incomplete
R1和R2之间运行ISIS协议(IGP),R1和R3、R3和R4分别是EBGP,R2和R4上都配置loopback0:2.2.2.2/32的路由。
R2上通过ISIS把2.2.2.2/32路由发布出去,R4上通过引入直连的方式(import-route direct )把路由宣告出去。R1的路由表中显示2.2.2.2是通过ISIS从R2学来的。
R1的BGP路由表中看到R1学到了通过BGP传递过来的路由。但是在全局路由表选择了ISIS传递过来的路由。
六、来自同一AS的路由,优选MED值最低的
数值越小越优先,默认为0.
R1在AS100中,R2和R3在AS200中,R2和R3各在BGP network 2.2.2.2的路由
R1的BGP路由表如下,优选着下一跳为10.1.12.2的路由
根据选路原则,MED越小越优先,通过调整R2的出方向调整的2.2.2.2的路由MED为200。
[R2]
1、创建前缀列表,匹配2.2.2.2/32的路由
ip ip-prefix 1 index 10 permit 2.2.2.2 32
#
2、创建路由策略,设计
route-policy 123 permit node 10
if-match ip-prefix 1
apply cost 200
#
3、R2的出方向调用策略
bgp 200
peer 10.1.12.1 route-policy 123 export
R1的BGP路由表
根据MED小的优先的原则,R1优选了从R3传递过来的路由。
七、EBGP>IBGP
EBGP的路由优先于IBGP的路由
如图,R3和R4上都配置了loopback0:10.10.10.10/32,都通过network的方式宣告出去,R1通过IBGP学到了从R2传递过来的路由,R1通过EBGP学到了从R3传递过来的路由。
R1 BGP配置
bgp 100
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
peer 10.1.13.3 as-number 200
#
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
peer 10.1.13.3 enable
#
R2 BGP配置
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
peer 10.1.24.4 as-number 400
#
ipv4-family unicast
undo synchronization
peer 1.1.1.1 enable
peer 1.1.1.1 next-hop-local
peer 10.1.24.4 enable
#
R3 BGP配置
bgp 200
peer 10.1.13.1 as-number 100
#
ipv4-family unicast
undo synchronization
network 10.10.10.10 255.255.255.255
peer 10.1.13.1 enable
#
R4 BGP配置
bgp 400
peer 10.1.24.2 as-number 100
#
ipv4-family unicast
undo synchronization
network 10.10.10.10 255.255.255.255
peer 10.1.24.2 enable
#
查看R1的BGP路由表可以看到,R1优选了通过EBGP学到的10.10.10.10的路由。
八、优选到下一跳IGP Metric较小的路由
BGP的路由下一跳地址是通过IGP协议学习到的,根据路由表,计算到下一跳的度量值,越小的越优先。
R1上network 10.10.10.10的路由
R4路由表中目前优选下一跳2.2.2.2传递过来的路由,也就是R2传递过来的。
目前,R4到R2和R3的IGP下一跳cost值为10。通过调大到R2的cost值为20,根据优选到下一跳IGP Metric较小的路由,让R4优选从R3传递过来的路由。
R4上修改cost值
interface GigabitEthernet0/0/2
isis cost 20 level-2
#
R4的IP路由表。R4到2.2.2.2 cost值为20 R4到3.3.3.3 cost值为10
R4的BPG路由表。调整R4到2.2.2.2的cost值为20后,R4到3.3.3.3的cost值依旧是10,根据优选到下一跳IGP Metric较小的路由原则,R4现在优选从3.3.3.3传递过来的路由了。
九、负载均衡
前8条原则都相同时,可以配置负载分担。
R1从R2和R3分别都收到2.2.2.2/32的路由,目前优选从R2传递过来的路由。
R1上配置路由负载分担
[R1]
bgp 100
maximum load-balancing 2
R1的全局路由表中2.2.2.2的路由有2个下一跳。实现了负载分担
十、优选Cluster_List最短的路由
Cluster_List:路由经过的反射器列表。路由每经过一台RR,就会将RR的Cluster id(默认为Router-ID,可以手动修改)记录在Cluster_List中。只在AS内传递。
Cluster_ID防环:当RR接收到一条更新路由时,RR会检查Cluster_List。如果Cluster_List中已经有本地Cluster_ID,丢弃该路由;如果没有本地Cluster_ID,将其加入Cluster_List,然后反射该更新路由。
R2、R3和R4都是RR路由器。R1-R4都是在AS100内。R1上将10.10.10.10的路由network到BGP中。R3上关于10.10.10.10的路由的详细信息
R3上的10.10.10.10的路由从R2和R4上都学到了。从R4学到的10.10.10.10,因为Cluster list的原因没有优选。从R2学到的10.10.10.10的Cluster list更短,所以R4优选R2传递过来的10.10.10.10的路由。
十一、优选Router_ID最小的路由
将2.2.2.2的路由分别在R2和R3上的BGP中network.
R1的BGP路由表
R1优选了R2传递过来的2.2.2.2/32的路由。这是根据哪个原则选出来的呢?我们继续看。
查看BGP路由2.2.2.2的详细信息。R1选择了从10.1.12.2(R2)传递过来的2.2.2.2的路由,从10.1.13.1(R3)因为router id原因没有优选。所以,优选router id 小的
十二、优选peer ip地址小的路由
R1和R2之间通过互联地址建立2个EBGP邻居,R1上将10.10.10.10宣告到BGP中R2的BGP路由表
R2上BGP路由10.10.10.10的详细信息
因为peer地址的原因没有优选下一跳为10.2.12.1传递过来的路由。优选了从10.1.12.1传递过来的路由。所以,优选peer ip地址小的路由
附件:实验拓扑(百度网盘)
链接:https://pan.baidu.com/s/1F-c48EruIxSzWZYXPE9lhQ
提取码:1yog
如有错误,欢迎指正,谢谢!