[j-nsp] BGP default action constraints with advertise-inactive?
Jason Lixfeld
jason-jnsp at lixfeld.ca
Sat Feb 23 10:55:40 EST 2019
Hello!
I’m confused about some observations while testing BGP announcements of inactive routes. I’m hoping someone can offer some clue.
I have this sample route:
jlixfeld at mx# run show route table rifoo.inet.0 protocol static 44.44.44.0/21 detail
rifoo.inet.0: 27 destinations, 29 routes (27 active, 0 holddown, 0 hidden)
44.44.44.0/21 (1 entry, 1 announced)
*Static Preference: 5
Next hop type: Discard, Next hop index: 0
Address: 0x71101cc
Next-hop reference count: 42
State: <Active NotInstall Int Ext>
Age: 12:24:23
Validation State: unverified
Task: RT
Announcement bits (1): 2-BGP_RT_Background
AS path: I
Communities: 4444:1001
[edit]
jlixfeld at mx#
My understanding is:
1. With advertise-inactive configured, this route should be advertised to an EBGP neighbor that has no export policy configured.
[ https://www.juniper.net/documentation/en_US/junos/topics/reference/configuration-statement/advertise-inactive-edit-protocols-bgp.html ]
2. The BGP default action of 'accept' should not require an accept action in a policy statement.
[ https://www.juniper.net/documentation/en_US/junos/topics/concept/policy-routing-policies-actions-defaults.html ]
However, neither of these two cases seem to be true, so my understanding is obviously wrong and I haven’t been able to find any documentation that points to the difference in behaviour.
Based on the configuration below, here’s what works and what doesn’t:
To 4.4.4.4: 44.44.44.0/21 is not announced.
To 5.5.5.5: 44.44.44.0/21 is not announced unless tfoo includes 'then accept' and ANNOUNCE:ANCHOR then {} includes 'accept'
To 6.6.6.6: 44.44.44.0/21 is not announced unless sfoo ANNOUNCE:ANCHOR then {} includes 'accept'
routing-instances {
rifoo {
routing-options {
rib rifoo.inet6.0 {
static {
route 2607:4444::/32 {
discard;
no-install;
community 4444:1001;
}
}
}
static {
route 44.44.44.0/21 {
discard;
no-install;
community 4444:1001;
}
protocols {
bgp {
group gfoo {
type external;
advertise-inactive;
neighbor 4.4.4.4 {
peer-as 5555;
}
neighbor 5.5.5.5 {
export pfoo
peer-as 5555;
}
neighbor 6.6.6.6 {
export sfoo
peer-as 5555;
}
}
}
}
}
}
policy-statement pfoo {
term tfoo {
from policy sfoo
# then accept;
}
}
policy-statement sfoo {
term ANNOUNCE:ANCHOR {
from {
protocol static;
community TYPE:ANCHOR;
}
then {
community delete TYPE:ANCHOR;
# accept;
}
}
}
community TYPE:ANCHOR members 4444:1001;
Can anyone see what I might be missing here?
Thanks!
More information about the juniper-nsp
mailing list