BGP repropagation practices on not well known attributes
Hello bird users, I'm sorry to bother you but I have a question about the implementation of a piece of the RFC 4271 that I found a little bit fuzzy. I'm in a eBGP situation and suppose that I have more connections with other different AS peers. Giving the fact that my import and export filters are completely open for simplicity and that I accept optional attributes. When I receive an UPDATE where it changes only a optional transitive argument that i do not know I re-propagate the UPDATE to my other connections as like a well known mandatory argument is changed? So my general question is, how Bird handle optional transitive attributes that a peer does not know? Thanks in advance, and sorry again to bother you, Mattia
On Thu, Feb 27, 2020 at 10:16:38PM +0100, Mattia Milani wrote:
Hello bird users, I'm sorry to bother you but I have a question about the implementation of a piece of the RFC 4271 that I found a little bit fuzzy.
I'm in a eBGP situation and suppose that I have more connections with other different AS peers. Giving the fact that my import and export filters are completely open for simplicity and that I accept optional attributes.
When I receive an UPDATE where it changes only a optional transitive argument that i do not know I re-propagate the UPDATE to my other connections as like a well known mandatory argument is changed?
So my general question is, how Bird handle optional transitive attributes that a peer does not know?
Hello First, handling of optional attributes depends on whether you knows them, not on whether a peer knows them. Unknown optional transitive attributes are re-propagated, but with set 'partial' flag. For details, see bgp_export_attr() function. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
First, handling of optional attributes depends on whether you knows them, not on whether a peer knows them.
Unknown optional transitive attributes are re-propagated, but with set 'partial' flag. For details, see bgp_export_attr() function.
Thanks for the answer I really appreciate it. Yeah form the RFC I get that unknown optional transitive attributes are re-propagated. I was more interest in acceptance part, the RFC 4271, section 5, 5th paragraph says: "... Paths with unrecognized transitive optional attributes SHOULD be accepted. ..." This SHOULD was confusing me. This take me to an other question, Given that I already know the destination d (that i learnt with an unknown optional transit attribute that I re-propagated with the 'partial' flag). At some point I receive an UPDATE for the destination d, and the only attribute that is different is the unknown optional transit one. At this point a bird node, in first place can recognize that only the unknown optional transit attribute has been changed? and in addiction, if it recognize it, the UPDATE will be re-propagated with the optional transit attribute and the flag 'partial', am I right? Thanks for the help, Mattia
participants (2)
-
Mattia Milani -
Ondrej Zajicek