自学习BGP以来,有个问题一直困扰,一个是MED、另一个是Loacl-Preference,总认为对他们的定义与方向(import、export)理解上不能与书本理论一致,通过以下三个实验,来学习源路由条目+对等体(手动指的peer)+传递方向(import/export)、可选非传递属性的理解(第三个实验)。
MED(Multi-Exit-DISC)
可选非过渡属性
MED值越小越有先
仅仅在两个相邻的AS之间传递,不会传给邻居的邻居。
用于控制数据流进入的控制(进入到本AS的选路,如进入AS100)
一般上行连接同一AS的两台或多台设备,(默认情况不比较来自不同的AS的MED值,但是可以通过compare-different-as-med来比较)。
如果使用default med xxx,那么只对引入的路由有效,network进入的路由是无效的,如果通过route-pliocy 可以对任意类型路由起效。
可以通过refresh bgp all export/import来刷新BGP路由更新
默认情况ping -a 55.1.1.1 11.1.1.1 都会走R2,通过修改MED值从而使R5访问11.1.1.1数据包走R3,
经过测试三种方式来实现,第一种在R1上实现AS之间传递med,是MED最重要的一种控制数据包流入的方式,第二种是在R2 G0/0/0 入方向也可以实现,第三种方式是在AS内部传递MED:
route-policy MED permit node 10
if-match acl 2000
apply cost 220
route-policy MED permit node 20
acl number 2000
rule 5 permit source 11.1.1.1 0
第一种:在R1 peer 10.1.12.2 route-policy MED export (G0/0/0)
最重要的MED的使用方式,意义在于我能控制你访问我的资源。(第二种、第三种方式也能控制访问11.1.1.1的选路,但是有些类似local-preference属性的使用)
[R4]display bgp routing-table
Total Number of Routes: 5
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 11.1.1.1/32 33.1.1.1 0 100 0 100i
* i 22.1.1.1 220 100 0 100i
*> 55.1.1.1/32 10.1.45.5 0 0 300i
*>i 111.1.1.1/32 22.1.1.1 0 100 0 100i
* i 33.1.1.1 0 100 0 100i
<R5>tracert -a 55.1.1.1 11.1.1.1
1 10.1.45.4 60 ms 50 ms 60 ms
2 10.1.34.3 50 ms 60 ms 100 ms 受路由策略影响走R3了
3 10.1.13.1 70 ms 80 ms 100 ms
扩展:以上是55.1.1.1 到11.1.1.1,反之11.1.1.1到55.1.1.1不受路由策略的影响,仍然会选择走R2,因为路由条目在传递的时候是加入每个路由器入接口的cost值。
[R1]tracert -a 11.1.1.1 55.1.1.1
1 10.1.12.2 30 ms 30 ms 50 ms 不受路由策略影响,默认走R2
2 10.1.24.4 100 ms 70 ms 80 ms
3 10.1.45.5 110 ms 140 ms 90 ms
---------------------------------------------------------------------------------
第二种:在R2 peer 10.1.12.1 route-policy MED import (G0/0/0)
<R5>tracert -a 55.1.1.1 11.1.1.1
1 10.1.45.4 30 ms 50 ms 30 ms
2 10.1.34.3 60 ms 70 ms 60 ms 受路由策略影响走R3
3 10.1.13.1 80 ms 80 ms 90 ms
<R1>tracert -a 11.1.1.1 55.1.1.1
1 10.1.12.2 50 ms 40 ms 50 ms 不受路由策略影响走R2
2 10.1.24.4 80 ms 80 ms 70 ms
3 10.1.45.5 100 ms 90 ms 110 ms
同理,不会受到路由策略的影响
[R2]dis bgp routing-table
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 11.1.1.1/32 10.1.12.1 220 0 100i med被打上220
*>i 55.1.1.1/32 44.1.1.1 0 100 0 300i
*> 111.1.1.1/32 10.1.12.1 0 0 100i
[R3]dis bgp routing-table
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 11.1.1.1/32 10.1.13.1 0 0 100i
*>i 55.1.1.1/32 10.1.34.4 0 100 0 300i
*> 111.1.1.1/32 10.1.13.1 0 0 100i
[R4]dis bgp routing-table
Total Number of Routes: 5
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 11.1.1.1/32 33.1.1.1 0 100 0 100i
* i 22.1.1.1 220 100 0 100i 同一AS内传递med
*> 55.1.1.1/32 10.1.45.5 0 0 300i
*>i 111.1.1.1/32 22.1.1.1 0 100 0 100i
* i 33.1.1.1 0 100 0 100i
<R5>dis bgp routing-table
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 11.1.1.1/32 10.1.45.4 0 200 100i 未传递med值
*> 55.1.1.1/32 0.0.0.0 0 0 i
*> 111.1.1.1/32 10.1.45.4 0 200 100i
对第一条路由解释:
R2打上med值220后,不会经过R4在传给R5,因为只在相邻两个AS间传递,不会传递给第三个AS(export方向)。
此时是在R2的import方向,那么只能在本AS内传递。?
-----------------------------------------------
第三种:在R2 peer 44.1.1.1 route-policy MED export ( G0/0/1)
说明MED可以在同一AS内也能起效,理解可选非传递的侧面意思。
[R4]dis bgp routing-table
Total Number of Routes: 5
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 11.1.1.1/32 33.1.1.1 0 100 0 100i
* i 22.1.1.1 220 100 0 100i
*> 55.1.1.1/32 10.1.45.5 0 0 300i
*>i 111.1.1.1/32 22.1.1.1 0 100 0 100i
* i 33.1.1.1 0 100 0 100i
<R5>dis bgp routing-table
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 11.1.1.1/32 10.1.45.4 0 200 100i
*> 55.1.1.1/32 0.0.0.0 0 0 i
*> 111.1.1.1/32 10.1.45.4 0 200 100i
<R1>tracert -a 11.1.1.1 55.1.1.1
1 10.1.12.2 40 ms 50 ms 30 ms
2 10.1.24.4 70 ms 60 ms 40 ms
3 10.1.45.5 100 ms 90 ms 80 ms
11.1.1.1 到55.1.1.1仍然不受路由策略影响
<Huawei>tracert -a 55.1.1.1 11.1.1.1
1 10.1.45.4 50 ms 30 ms 50 ms
2 10.1.34.3 40 ms 60 ms 70 ms
3 10.1.13.1 90 ms 60 ms 80 ms
55.1.1.1到11.1.1.1受到路由策略影响