Skip to content

Invalid default router ID 0.0.0.0 for single stack IPv6 #17955

@jcaamano

Description

@jcaamano

Description

When running frr on a single stack IPv6 host, the router ID default to 0.0.0.0 and is reported as invalid when connecting to another FRR peer.

Configuration file[/etc/frr/frr.conf] processing failure: 11
BGP neighbor is fc00:f853:ccd:e793::6, remote AS 64512, local AS 64512, internal link
  Local Role: undefined
  Remote Role: undefined
Hostname: 27742e3fce69
  BGP version 4, remote router ID 0.0.0.0, local router ID 0.0.0.0
  BGP state = Active
  Last read 00:01:23, Last write 00:00:52
  Hold time is 180 seconds, keepalive interval is 60 seconds
  Configured hold time is 180 seconds, keepalive interval is 60 seconds
  Configured tcp-mss is 0, synced tcp-mss is 0
  Configured conditional advertisements interval is 60 seconds
  Graceful restart information:
    Local GR Mode: Helper*
    Remote GR Mode: NotApplicable
    R bit: False
    N bit: False
    Timers:
      Configured Restart Time(sec): 120
      Received Restart Time(sec): 120
      Configured LLGR Stale Path Time(sec): 0
  Message statistics:
    Inq depth is 0
    Outq depth is 0
                         Sent       Rcvd
    Opens:                  4          4
    Notifications:          1          8
    Updates:                0          0
    Keepalives:             3          0
    Route Refresh:          0          0
    Capability:             0          0
    Total:                  8         12
  Minimum time between advertisement runs is 0 seconds

 For address family: IPv6 Unicast
  Not part of any update group
  NEXT_HOP is always this router
  Community attribute sent to this neighbor(all)
  0 accepted prefixes

  Connections established 0; dropped 0
  Last reset 00:01:23,  Notification received (OPEN Message Error/Bad BGP Identifier)
  Internal BGP neighbor may be up to 255 hops away.
Local host: fc00:f853:ccd:e793::2, Local port: 51228
Foreign host: fc00:f853:ccd:e793::6, Foreign port: 179
Nexthop: 0.0.0.0
Nexthop global: fc00:f853:ccd:e793::2
Nexthop local: fe80::42:acff:fe12:2
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 120
Next connect timer due in 114 seconds
Read thread: off  Write thread: off  FD used: -1
❯ docker exec -ti frr2 ip a      
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host proto kernel_lo 
       valid_lft forever preferred_lft forever
130: eth0@if131: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fc00:f853:ccd:e793::2/64 scope global nodad 
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe12:2/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever

Version

10.2.1

How to reproduce

Run two IPv6 FRR containers and point them to each other using a basic configuration that does not explicitly set the Router ID.
Docker does not natively support single stack IPv6, so I had to remove the IPv4 address from the interface prior to running frr in the containers.

Sample config pattern for the containers

router bgp 64512
 no bgp default ipv4-unicast
 no bgp default ipv6-unicast
 no bgp network import-check
 neighbor fc00:f853:ccd:e793::6 remote-as 64512
 neighbor fc00:f853:ccd:e793::6 route-reflector-client
 address-family ipv6 unicast
  neighbor fc00:f853:ccd:e793::6 activate
  neighbor fc00:f853:ccd:e793::6 next-hop-self
 exit-address-family

Create network

docker network create --ipv6 foonet

Run containers following pattern

docker run -d --privileged --network foonet --name <name> --volume <host path to config> :/etc/frr quay.io/frrouting/frr:10.2.1 bash -c "ip a del dev eth0 <ipv4 addr>;/usr/lib/frr/docker-start"

Expected behavior

Default to a valid router ID and successful BGP session establishment.

Actual behavior

Default to router ID 0.0.0.0 and getting OPEN Message Error/Bad BGP Identifier

Additional context

No response

Checklist

  • I have searched the open issues for this bug.
  • I have not included sensitive information in this report.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions