FRR supports set ip next-hop unchanged in a route-map to not set next-hop to self on an eBGP session, but it doesn't look like VyOS is able to set that:
[email protected]# set policy route-map testing rule 1 set ip-next-hop unchanged "unchanged" is not a valid value of type "ipv4" Value validation failed Set failed
Tested on 1.3.0, but I believe it's the same on 1.4
While it's being added, we should also add support FRR's ip next-hop peer-address which forces next-hop self.
FRR's documentation about it: http://docs.frrouting.org/en/stable-8.2/routemap.html#clicmd-set-ip-next-hop-unchanged