I am receiving the log message
%BGP-4-NORTRID: BGP could not pick a router-id. Please configure manually.
when performing a sh bgp all summary
I'm ok that the reason is because we have no routing in the global table, all traffic goes via vrf's.
Peering is fine, there are no routing issues, so please no rabbit holes on fixing stuff that isn't broke.
CE#sh bgp al sum
% BGP cannot run because the router-id is not configured
For address family: VPNv4 Unicast
BGP router identifier 0.0.0.0, local AS number 65149
router bgp 65149
no bgp default ipv4-unicast
timers bgp 3 10
address-family ipv4 vrf xxxx
The reason I want to get rid of it is that it creates false positive alarms for our Ops guys and we need to stop it.
All my interfaces are in vrf's so I can't assign an interface in another address-family as the [global] router-id. I know that would be a workaround, and for the 'wrong' reasons, but it would do no harm - but the IOS won't allow it anyway.
below, my Lo0 is in my 1st vrf.
CE(config-router)#bgp router-id int lo0
%Interface Loopback0 not usable, Ignoring 'bgp router-id interface Loopback0'
has anyone seen this and worked around it - any thoughts ?
1. You can manually assign a BGP router-ID as a 32 bit number, which will be used by BGP for each address-family (router bgp x / bgp router-id x.x.x.x).
2. You can tell BGP to automatically pick up a per-VRF BGP router ID, following the well-known rules to pick up the router ID, via "bgp router-id vrf auto-assign"
You need to fix this, as otherwise a BGP router if of "0.0.0.0" may cause issues on the long run.
a router-id is a router-id, not an IP-address, it just has the same format as an ip-address (4 numbers separated by dot's)
and it is nice to have a corresponding IP-address to match the router ID with (unique IP<->unique router-ID) but this is not an requirement.
(an ipv6 router-id is also 4 numbers separated by dots, not an ipv6 address)
so pick any router-id that does not interfere with other router-id's on your network (and BGP communication)
and use this to manually configure the router-id.
If you have manually configured router ID for each VRF at the address-family level, you're good to go. If you don't run BGP in the GRT, no neighbors, the fact that BGP cannot run due to not having a router ID, does not affect you. A router ID of 0.0.0.0 would be selected if you configure a neighbor before having any interfaces with IP addresses configured in the UP/UP state.