A router with no IPv4 has no router ID
Configure R1 with its two IPv6 addresses and two BGP sessions, each with the IPv4 unicast address family enabled. Nothing comes up. Both sessions sit in Active, and the router identifier is 0.0.0.0.
A BGP router ID is a 32-bit number written like an IPv4 address. If you don't set one, FRR picks one of the router's IPv4 addresses. R1 has none (apart from 127.0.0.1, which doesn't count), so it has no router ID, and BGP refuses to open sessions without one: Router ID is missing.
The router ID only has to be unique within your AS (and different from your eBGP neighbors'). It doesn't have to be an address the router owns, or any address at all. Set it explicitly. In an IPv6-only network, use a scheme that makes sense to you, such as a number per router. This lab uses 0.0.0.1 to make the point. R2 doesn't have this problem, because it has 192.0.2.1 on its C2 link.
set system host-name 'R1'
set interfaces ethernet eth0 address '2001:db8:0:1::1/64'
set interfaces ethernet eth0 description 'TO-C1'
set interfaces ethernet eth1 address '2001:db8:0:2::1/64'
set interfaces ethernet eth1 description 'TO-R2'
set protocols bgp system-as '64500'
set protocols bgp neighbor 2001:db8:0:1::2 remote-as '64512'
set protocols bgp neighbor 2001:db8:0:1::2 description 'C1'
set protocols bgp neighbor 2001:db8:0:1::2 address-family ipv4-unicast
set protocols bgp neighbor 2001:db8:0:2::2 remote-as '64501'
set protocols bgp neighbor 2001:db8:0:2::2 description 'R2'
set protocols bgp neighbor 2001:db8:0:2::2 address-family ipv4-unicast- Lines 2–5: Only IPv6 addresses.
- Line 7: The session to C1 is over IPv6…
- Line 9: …and carries IPv4 unicast.
- Lines 10–12: The same for R2.
set system host-name 'R2'
set interfaces ethernet eth0 address '2001:db8:0:2::2/64'
set interfaces ethernet eth0 description 'TO-R1'
set interfaces ethernet eth1 address '192.0.2.1/30'
set interfaces ethernet eth1 description 'TO-C2'
set protocols bgp system-as '64501'
set protocols bgp neighbor 2001:db8:0:2::1 remote-as '64500'
set protocols bgp neighbor 2001:db8:0:2::1 description 'R1'
set protocols bgp neighbor 2001:db8:0:2::1 address-family ipv4-unicast
set protocols bgp neighbor 192.0.2.2 remote-as '64502'
set protocols bgp neighbor 192.0.2.2 description 'C2'
set protocols bgp neighbor 192.0.2.2 address-family ipv4-unicast- Lines 2–3: IPv6 towards R1.
- Lines 4–5: IPv4 towards C2, which also gives R2 a router ID.
- Lines 7–9: IPv6 session to R1, carrying IPv4.
- Lines 10–12: IPv4 session to C2.
vyos@R1:~$ show ip bgp summary
IPv4 Unicast Summary:
BGP router identifier 0.0.0.0, local AS number 64500 VRF default vrf-id 0
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 2, using 60 KiB of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
2001:db8:0:1::2 4 64512 0 0 0 0 0 never Active 0 C1
2001:db8:0:2::2 4 64501 0 0 0 0 0 never Active 0 R2
Total number of neighbors 2
vyos@R1:~$ show bgp ipv6 summary
% No BGP neighbors found in VRF default
vyos@R1:~$ show bgp neighbors 2001:db8:0:1::2 | match "BGP state|Last reset|Router ID|router-id"
BGP state = Active
Last reset 00:00:55, Router ID is missing (n/a)- Line 4: Router identifier 0.0.0.0: no IPv4 address to take one from.
- Lines 10–11: Both sessions stuck in Active.
- Line 18: The reason.
set protocols bgp parameters router-id '0.0.0.1'- Line 1: Any unique 32-bit number. It doesn't need to be an address.
Check your understanding
Which value is a valid BGP router ID for R1, which has no IPv4 addresses?
- 0.0.0.1, or any other 32-bit value unique in the AS
- R1's IPv6 address
- None; IPv6-only routers can't run BGP
- 0.0.0.0