I am testing out a very simple scenario.
R7------eBGP--------R1------iBGP-----------R2------eBGP------------R4
R7 and R4 are in AS 7
R1 and R2 are in AS 1234
The original scenario I was testing was for as_override.
Essentially, R7 introduces a route 7.0.0.0/8, advertises it to R1 which advertises it to R2.
What I was expecting, and the JNCIS study guide supports this, was for R2 to not perform any sanity checks on AS_PATH and advertise the route to R4, even though the AS_PATH then would have been 1234 7.
I was then expecting R4 to actually reject the NLRI after checking for 7 in the AS_PATH. But what I am noticing is that R2 seems to have a sanity check and does not advertise the NLRI with AS_PATH 7 to R4 in the first place.
nbhasin@R2# run show route protocol bgp
inet.0: 22 destinations, 22 routes (22 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
7.0.0.0/8 *[BGP/170] 00:23:34, localpref 100, from 150.1.1.1
AS path: 7 I
> to 192.168.12.1 via em0.12
<SNIP>
nbhasin@R2# run show bgp summary
Groups: 2 Peers: 2 Down peers: 0
Table Tot Paths Act Paths Suppressed History Damp State Pending
inet.0 1 1 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
150.1.1.1 1234 57 55 0 0 23:55 1/1/1/0 0/0/0/0
192.168.24.4 7 6 7 0 0 1:58 0/0/0/0 0/0/0/0
[edit]
nbhasin@R2# run show route advertising-protocol bgp 192.168.24.4
[edit]
nbhasin@R2#
Now when I add the as-override keyword to the configuration, R2 starts advertising the route.
nbhasin@R2# show protocols bgp
traceoptions {
file BGP;
flag all;
}
group SUB_AS_64512 {
type internal;
neighbor 150.1.1.1 {
local-address 150.1.2.2;
}
}
group EBGP_PEERS {
type external;
neighbor 192.168.24.4 {
peer-as 7;
}
}
nbhasin@R2# set protocols bgp group EBGP_PEERS as-override
[edit]
nbhasin@R2# commit
commit complete
[edit]
nbhasin@R2# run show route advertising-protocol bgp 192.168.24.4
inet.0: 22 destinations, 22 routes (22 active, 0 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
* 7.0.0.0/8 Self 1234 I
Other implentations of BGP (not Junos) I have worked with do not display this behavior. The loop prevention is performed on the receiver not on the sender.
Can anyone confirm if my observations are confirmed and if so, when did this behavior change in Junos? I am using the following version :-
nbhasin@R2# run show version | match "Base OS"
JUNOS Base OS boot [12.1R1.9]
JUNOS Base OS Software Suite [12.1R1.9]
Thanks in advance,
Nic
#BGP#as-override