I have two ebgp peers connected to my quagga 1.0.20160315 router.
One of those peers (peer1) is advertising routes with flag 0x800 (Optional Non-Transitive) in the MP_REACH_NLRI path attribute.
Also the next hop is marked as Optional Non-Transitive.
My quagga router is not advertising this route to the other peer2 and I suspect this is because of the Non-Transitive flags in the path attribute.
Is their a way to override non-transitive flag in incoming routes and redistribute them to all the other peers?
Thanks in advance for the help.
Regards
Update
I got it working by using a route map and re-writing the bgp next hop. Original route was not advertised because of Non Transitive flags.
router bgp 64496
bgp router-id 192.168.56.1
network 192.1.1.0/24
!
redistribute connected
neighbor 192.168.20.201 remote-as 64496
neighbor 192.168.20.201 route-reflector-client
neighbor 192.168.20.201 update-source 192.168.20.1
neighbor 192.168.20.201 soft-reconfiguration inbound
redistribute connected
neighbor 192.168.56.202 remote-as 64498
neighbor 192.168.56.202 update-source 192.168.56.1
neighbor 192.168.56.202 soft-reconfiguration inbound
neighbor 192.168.56.202 route-map set-nexthop out
!
route-map set-nexthop permit 10
set ip next-hop 192.168.56.1
set metric 200
set local-preference 5
!
Best Answer
No, you cannot change the flag. Attribute MP_REACH_NLRI is defined to be Optional Non-Transitive in RFC4760. What kind of routes you are trying to advertise?
Update Neighbor to 192.168.20.201 in same AS(64496) is iBGP, not eBGP. You should be able to fix it easily by changing local AS or neighbor AS.
The reason why it wasn't working before you set nexthop is that Quagga router received routes from 192.168.20.201 but their nexthop cannot be used. You can use
neighbor <peer> next-hop-self
to fix it instead of route-map.Also if you want to run eBGP for all routers, you don't need to configure
neighbor <peer> route-reflector-client
which is for iBGP.