本次是基于BGP修改MED值和LocPrf值上图为本次试验的拓扑
修改前的图如下:
以上都有两种修改方法,1和2之间用一种,1和3之间用一种
思科的BGP中Metric(MED)默认是0,MED值越小优先级越高,LocPrf默认为100,且只具有本地意义,这两种属性的修改分别用R4的Lo 0和Lo 1展现出来
R1:
Lo 0: 1.1.1.1/32
Gi0/0: 172.16.1.1/24
Gi0/1: 172.16.2.1/24
R2:
Lo 0: 2.2.2.2/32
Gi0/0: 172.16.1.2/24
Gi0/1: 172.16.10.2/24
R3:
Lo 0: 3.3.3.3/32
Gi0/1: 172.16.2.3/24
Gi0/0: 172.16.20.3/24
R4:
Lo 0: 4.4.4.4/32
Lo 1: 192.168.10.4/24
Gi0/1: 172.16.10.4/24
Gi0/0: 172.16.20.4/24
R1、2、3之间运行OSPF和BGP,R1和R2、R3建立IBGP邻居,R2、R3和R4建立EBGP邻居
接口配置IP和OSPF的配置就不展示:直接展示BGP邻居建立
R1:
R1(config)#router bgp 100
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#neighbor 2.2.2.2 remote-as 100
R1(config-router)#neighbor 2.2.2.2 update-source loopback 0 #与R2的环回口建立邻居(IBGP)下文R3也是一样的
R1(config-router)#neighbor 3.3.3.3 remote-as 100
R1(config-router)#neighbor 3.3.3.3 update-source loopback 0
R1(config-router)#exit
R2:
R2(config)#router bgp 100
R2(config-router)#bgp router-id 2.2.2.2
R2(config-router)#neighbor 172.16.10.4 remote-as 150 #与R4通过直连口建立EBGP邻居
R2(config-router)#neighbor 1.1.1.1 remote-as 100
R2(config-router)#neighbor 1.1.1.1 update-source loopback 0
R2(config-router)#neighbor 1.1.1.1 next-hop-self #由于R2是EBGP,此命令仅限于在EBGP上面写,目的是给IBGP传路由
R2(config-router)#network 2.2.2.2 mask 255.255.255.255 #宣告网段
R2(config-router)#exit
R2(config)#router bgp 100
R2(config-router)#bgp default local-preference 20 #在BGP进程中修改LocPrf值,此命令作用于BGP中所有的路由
R2(config-router)#exit
R3:
R3(config)#router bgp 100
R3(config-router)#bgp router-id 3.3.3.3
R3(config-router)#network 3.3.3.3 mask 255.255.255.255
R3(config-router)#neighbor 172.16.20.4 remote-as 150
R3(config-router)#neighbor 1.1.1.1 remote-as 100
R3(config-router)#neighbor 1.1.1.1 update-source loopback 0
R3(config-router)#neighbor 1.1.1.1 next-hop-self
R3(config-router)#exit
R3(config)#ip prefix-list 10 permit 192.168.10.0/24 #设置前缀列表,抓取192.168.10.0/24的路由,此处也可以用拓展ACL
R3(config)#route-map bgp permit 10
R3(config-route-map)#set metric 10
R3(config-route-map)#set local-preference 10 设置BGP的LocPrf值为10
R3(config-route-map)#match ip address 10
R3(config-route-map)#exit
R3(config)#router bgp 100
R3(config-router)#neighbor 172.16.20.4 route-map bgp in #设置的路由策略是从R4发出的,换句话说R3是从R4接受的路由,此处应该写IN
R3(config-router)#exit
R4:
R4(config)#router bgp 150
R4(config-router)#bgp router-id 4.4.4.4
R4(config-router)#network 4.4.4.4 mask 255.255.255.255
R4(config-router)#network 192.168.10.0 mask 255.255.255.0
R4(config-router)#neighbor 172.16.10.2 remote-as 100
R4(config-router)#neighbor 172.16.20.3 remote-as 100
R4(config-router)#exit
R4(config)#access-list 10 permit 4.4.4.4 0.0.0.0 #创建ACL
R4(config)#route-map bgp permit 10 #建立路由抓取规则名字为bgp序号10
R4(config-route-map)#set metric 20 #设立BGP的MED为20
R4(config-route-map)#match ip address 10 #关联ACL
R4(config-route-map)#exit
R4(config)#router bgp 150
R4(config-router)#neighbor 172.16.10.2 route-map bgp out #进行应用,R4的BGP进程是150,通过邻居通告发送出去,所以需要用OUT
R4(config-router)#exit
BGP软清路由表命令:clear ip bgp *
配置完后R1的路由表如下:
由此可以看出,在R2上面修改的LocPrf是20,R1接收来自R2的BGP路由,LocPrf值变为了20,而从R3接收到的LocPrf是10