I came across this today, we had a test plan to check routes coming in and going out. via show ip bgp nei x.x.x.x routes and advertised. At the only site where the CE has two eBGP peers. We are seeing routes being advertised back to the eBGP peers where the CE received the routes from in both directions. Caught me off guard, and had me going on "this has to be a bug" for the longest.
The only question I have is why? Only when the CE has eBGP peer on both sides, (if you will) does this happen. Not in any other case.
Before you slam me for "this has been talked about before", and "there other threads on the same topic, learn to google". I know, and i have and believe it or not. I believe i have read the main threads:
Here is the topology i was testing:
Here are the three "CE" devices. (184.108.40.206/.2/.4 are the MPLS router):
All the threads above are linked to each and come up first or top of google searches, they also have the same few posters, even though they are years apart. But after reading them all, I as well as other posters, are left with the feeling of. Why? I have read in one thread, that this is because both peers will end up in the same dynamic update-group. Light reading and going through BGP Dynamic Update Peer-Groups I really couldn't find that being said.
But now can't find the thread. I 100% apologize if indeed this question has been answered in detailed.
As always i do appreciate your time and support,
"Why?" - it's because Cisco code optimises update generation (with update-groups). And that is not about MPLS - you may have just two ipv4 unicast BGP neighbours and observe the same.
"Why not" - because the behaviour is not prohibitive per RFC.
I agree it's not breaking any RFC.
But as you can see in the 2 years old discussion referred here
the behaviour happens even while the neighbours are within different update-groups.
Are the neighbours within the same update-group in your case?
I'm not sure about the old discussion (as there are not enough details to reproduce it). But I would say (for this discussion) we need to clarify what are the concerns of this topic-starter.
PS: if any weird behaviour is observed - it would be nice to know the platform, release and configuration (to reproduce it in lab).