It is Cisco proprietary attribute.
It is local on the router.
Used to manipulate outbound traffic.
Range of value for Weight is 0 to 65535.
The default value for weight is 32768 for all routes which are originated by the local router.
The default value for weight is 0 for all routes which are not originated by the local router.
Always a path with the highest weight will be preferred.
BGP ATTRIBUTE - WEIGHT |
Lets check the Interfaces IP Address and the status
R1#sh ip int brief | i up
Serial0 12.1.1.1 YES manual up up
Serial1 13.1.1.1 YES manual up up
R2#sh ip int brief | i up
Serial0 12.1.1.2 YES manual up up
Serial2 23.1.1.2 YES manual up up
R2#
R3#sh ip int brief | i up
Serial1 13.1.1.3 YES manual up up
Serial2 23.1.1.3 YES manual up up
R3#
Configuration of eBGP
R1(config)#router bgp 100
R1(config-router)#neighbor 12.1.1.2 remote-as 200
R1(config-router)#neighbor 13.1.1.3 remote-as 300
R1(config-router)#^Z
R2(config)#router bgp 200
R2(config-router)#neighbor 12.1.1.1 remote-as 100
R2(config-router)#neighbor 23.1.1.3 remote-as 300
R2(config-router)#^Z
R3(config)#router bgp 300
R3(config-router)#neighbor 13.1.1.1 remote-as 100
R3(config-router)#neighbor 23.1.1.2 remote-as 200
R3(config-router)#^Z
R1#sh ip bgp summary
BGP router identifier 13.1.1.1, local AS number 100
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
12.1.1.2 4 200 8 8 1 0 0 00:05:43 0
13.1.1.3 4 300 7 8 1 0 0 00:00:44 0
R1#
R2#sh ip bgp summary
BGP router identifier 23.1.1.2, local AS number 200
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
12.1.1.1 4 100 9 8 1 0 0 00:06:00 0
23.1.1.3 4 300 4 4 1 0 0 00:00:38 0
R2#
R3#sh ip bgp summary
BGP router identifier 23.1.1.3, local AS number 300
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
13.1.1.1 4 100 5 5 1 0 0 00:01:19 0
23.1.1.2 4 200 4 4 1 0 0 00:00:57 0
Now lets configure a loopback 0 interface on R3 and advertise same in BGP
R3(config)#int loopback 0
May 9 08:19:39.059: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
R3(config-if)#ip address 100.100.100.1 255.255.255.0
R3(config-if)#^Z
R3#sh ip bgp
R3#config
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#router bgp 300
R3(config-router)#network 100.100.100.0 mask 255.255.255.0
R3(config-router)#^Z
R3#
May 9 08:21:28.143: %SYS-5-CONFIG_I: Configured from console by console
R3#sh ip bgp
BGP table version is 2, local router ID is 23.1.1.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.100.100.0/24 0.0.0.0 0 32768 i
Now lets use Weight attribute to manipulate OUTGOING PATH for R1 for network 100.100.100.0/24
Now
On R1 we have 2 path to reach 100.100.100.0/24
R1#sh ip bgp
BGP table version is 2, local router ID is 13.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 100.100.100.0/24 12.1.1.2 0 200 300 i
*> 13.1.1.3 0 0 300 i
R1#
PATH 1 ===> via R2
PATH 2 ===> via R3
and PATH 2 is best .
Now lets USE WEIGHT TO MAKE PATH1 THE BEST ROUTE
Currently the weight for the both path is 0
Lets make the weight for PATH 1 as 10
R1(config)#router bgp 100
R1(config-router)#neighbor 12.1.1.2 weight ?
<0-65535> default weight
R1(config-router)#neighbor 12.1.1.2 weight 10
R1(config-router)#^Z
R1#clear ip bgp * soft in
R1#clear ip bgp * soft out
R1#
R1#sh ip bgp
BGP table version is 3, local router ID is 13.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.100.100.0/24 12.1.1.2 10 200 300 i
* 13.1.1.3 0 0 300 i
R1#
Now see the PATH 1 is best
Another way of doing this is by using route-map
Lets configure another Loopback on R3
R3(config)#int loopback 1
R3(config-if)#ip address 111.111.111.1 255.255.255.0
R3(config-if)#^Z
R3#
May 9 08:48:33.255: %SYS-5-CONFIG_I: Configured from console by console
R3#config
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#router bgp 300
R3(config-router)#network 111.111.111.0 mask 255.255.255.0
R3(config-router)#^Z
R3#
Now lets check on R1
R1#sh ip bgp
BGP table version is 6, local router ID is 13.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.100.100.0/24 12.1.1.2 10 200 300 i
* 13.1.1.3 0 0 300 i
* 111.111.111.0/24 13.1.1.3 0 0 300 i
*> 12.1.1.2 10 200 300 i
R1#
For both networks Path 1 ie Path via R2 is best
But for we want that only for network 100.100.100.0/24 the best path should be via R2
and that can be achieve using route-map
R1#sh run | section bgp
router bgp 100
no synchronization
bgp log-neighbor-changes
neighbor 12.1.1.2 remote-as 200
neighbor 12.1.1.2 weight 10
neighbor 13.1.1.3 remote-as 300
no auto-summary
R1#
R1#
R1#config
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#router bgp 100
R1(config-router)#no neighbor 12.1.1.2 weight 10
R1(config-router)#^Z
R1#
May 9 08:52:50.871: %SYS-5-CONFIG_I: Configured from console by console
R1#clear ip bgp * soft in
R1#clear ip bgp * soft out
R1#sh ip bgp
BGP table version is 8, local router ID is 13.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 100.100.100.0/24 12.1.1.2 0 200 300 i
*> 13.1.1.3 0 0 300 i
*> 111.111.111.0/24 13.1.1.3 0 0 300 i
* 12.1.1.2 0 200 300 i
R1#
NOW LETS USE ROUTE-MAP
R1(config)#ip access-list standard 10
R1(config-std-nacl)#permit 100.100.100.0 0.0.0.255
R1(config-std-nacl)#^Z
R1#
R1(config)#route-map TECHMAP permit 10
R1(config-route-map)#match ip address 10
R1(config-route-map)#set weight 10
R1(config)#route-map TECHMAP permit 20
R1(config-route-map)#set weight 0
R1(config-route-map)#^Z
R1#
R1#sh ip access-lists
Standard IP access list 10
10 permit 100.100.100.0, wildcard bits 0.0.0.255
R1#sh route-map
route-map TECHMAP, permit, sequence 10
Match clauses:
ip address (access-lists): 10
Set clauses:
weight 10
Policy routing matches: 0 packets, 0 bytes
route-map TECHMAP, permit, sequence 20
Match clauses:
Set clauses:
weight 0
Policy routing matches: 0 packets, 0 bytes
R1#
R1(config)#router bgp 100
R1(config-router)#neighbor 12.1.1.2 route-map TECHMAP in
R1(config-router)#^Z
R1#sh ip bgp
BGP table version is 23, local router ID is 13.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.100.100.0/24 12.1.1.2 10 200 300 i
* 13.1.1.3 0 0 300 i
*> 111.111.111.0/24 13.1.1.3 0 0 300 i
* 12.1.1.2 0 200 300 i
Now we can see that only for network 100.100.100.0/24 the best path is via R2
No comments:
Post a Comment