Invalid NEXT_HOP attribute for OSPF known route

Nico Schottelius nico.schottelius at ungleich.ch
Tue Dec 14 20:35:48 CET 2021


Hello,

every year or then bird is putting me into the Invalid NEXT_HOP
message.

TL;DR:
    Why does bird on router1+router2 refuse the route
    2a0a:e5c0:0:12:b01a:5ae3:1bd4:1e00/122 via
    2a0a:e5c0::225:90ff:fe1e:3e62

    even though router1+router2 know how to reach 2a0a:e5c0::/64 via
    fe80::20d:b9ff:fe57:2f91 by means of ospf?


In detail:

router1, router2 are peered to apu-router1,apu-router2 via OSPF + BGP.

apu-router1,apu-router2 are peered to a set of kubernetes hosts.

The goal is to have router1 + router2 import the routes sent by the
kubernetes hosts:

           router1      router2---------|
              |  \          |           |
              |   \         |           |
              |    \        |           |
     apu-router1    apu-router2         |
        .     |           .             |
              |--------------------------
        .                 .
     [ kubernetes cluster via apu-routers ]


The problem: router1+router reject the routes with:

    Dec 14 20:33:51 router1 daemon.err bird: apu_router1_place5_ungleich_ch_v6: Invalid NEXT_HOP attribute

The setup:

    router1, router2, apu-router1, apu-router2 = ASN209898
    kubernetes hosts = ASN65533
    kubernetes peers with apu-routers only.

The routes:
    Kubernetes announces parts of 2a0a:e5c0:0:12::/64 and
    2a0a:e5c0:0:13::/64, for instance the route
    2a0a:e5c0:0:12:b01a:5ae3:1bd4:1e00/122.

    Kubernetes nodes live in 2a0a:e5c0::/64.

    apu-routers have a leg in 2a0a:e5c0::/64, via eth1.2. They reach the
    cluster directly. They have the routes.

    routers1+2 receive the route for 2a0a:e5c0::/64 via ospf:

    bird> show route 2a0a:e5c0::/64
    Table master6:
    2a0a:e5c0::/64       unicast [ospf6 17:08:18.515] * I (150/20) [0.0.0.47]
                         via fe80::20d:b9ff:fe57:2f91 on bond0.8

    Thus routers *can* reach the kubernetes cluster.

The apu-routers:
    - They import the route [0]
    - They export the route to the routers [1]

The routers:
    - print 4x the Invalid NEXT_HOP attribute, once per exported
    kubernetes network
    - They ignore the 4 routes [2]

Question: why does bird on the routers not accept the routes? Or is
there a different problem I am not seeing? Aside from that, shouldn't
bird on the apu-routers set itself as nexthop for the kubernetes routes?

Any help appreciated.

Best regards,

Nico

[0]

[20:29] apu-router2.place5:~# birdc show route 2a0a:e5c0:0:12:b01a:5ae3:1bd4:1e00/122
BIRD 2.0.8 ready.
Table master6:
2a0a:e5c0:0:12:b01a:5ae3:1bd4:1e00/122 unicast [k8s_p5_1_4 19:16:10.910 from 2a0a:e5c0::225:90ff:fe1e:3e74] * (100) [AS65533i]
	via 2a0a:e5c0::225:90ff:fe1e:3e62 on eth1.2
                     unicast [k8s_p5_1_3 19:16:10.910 from 2a0a:e5c0::225:90ff:fe1a:d680] (100) [AS65533i]
	via 2a0a:e5c0::225:90ff:fe1e:3e62 on eth1.2
                     unicast [k8s_p5_1_5 19:16:10.909] (100) [AS65533i]
	via 2a0a:e5c0::225:90ff:fe1e:3e62 on eth1.2
                     unicast [k8s_p5_1_1 19:16:10.910 from 2a0a:e5c0::225:90ff:fe1a:d682] (100) [AS65533i]
	via 2a0a:e5c0::225:90ff:fe1e:3e62 on eth1.2
                     unicast [k8s_p5_1_2 19:16:10.910 from 2a0a:e5c0::225:90ff:fe1e:3e64] (100) [AS65533i]
	via 2a0a:e5c0::225:90ff:fe1e:3e62 on eth1.2
                     unicast [k8s_p5_1_6 19:16:10.910 from 2a0a:e5c0::225:90ff:fe1e:62d6] (100) [AS65533i]
	via 2a0a:e5c0::225:90ff:fe1e:3e62 on eth1.2
[20:42] apu-router2.place5:~#

[1]

[20:43] apu-router2.place5:~# birdc show protocol all router1_place5_ungleich_ch_v6
BIRD 2.0.8 ready.
Name       Proto      Table      State  Since         Info
router1_place5_ungleich_ch_v6 BGP        ---        up     20:29:06.203  Established
  BGP state:          Established
    Neighbor address: 2a0a:e5c0:1:8::3
    Neighbor AS:      209898
    Local AS:         209898
    Neighbor ID:      147.78.195.249
    Local capabilities
      Multiprotocol
        AF announced: ipv6
      Route refresh
      Graceful restart
      4-octet AS numbers
      Enhanced refresh
      Long-lived graceful restart
    Neighbor capabilities
      Multiprotocol
        AF announced: ipv6
      Route refresh
      Graceful restart
      4-octet AS numbers
      Enhanced refresh
      Long-lived graceful restart
    Session:          internal AS4
    Source address:   2a0a:e5c0:1:8::47
    Hold timer:       175.206/240
    Keepalive timer:  53.629/80
  Channel ipv6
    State:          UP
    Table:          master6
    Preference:     100
    Input filter:   REJECT
    Output filter:  ungleich_networks_no_igp
    Routes:         0 imported, 6 exported, 0 preferred
    Route change stats:     received   rejected   filtered    ignored   accepted
      Import updates:             98          0         98          0          0
      Import withdraws:            3          0        ---          3          0
      Export updates:             35          0         29        ---          6
      Export withdraws:            0        ---        ---        ---          0
    BGP Next hop:   2a0a:e5c0:1:8::47 fe80::20d:b9ff:fe49:a705


[2]

bird> show protocol all apu_router2_place5_ungleich_ch_v6
Name       Proto      Table      State  Since         Info
apu_router2_place5_ungleich_ch_v6 BGP        ---        up     20:29:06.189  Established
  BGP state:          Established
    Neighbor address: 2a0a:e5c0:1:8::47
    Neighbor AS:      209898
    Local AS:         209898
    Neighbor ID:      0.0.0.47
    Local capabilities
      Multiprotocol
        AF announced: ipv6
      Route refresh
      Graceful restart
      4-octet AS numbers
      Enhanced refresh
      Long-lived graceful restart
    Neighbor capabilities
      Multiprotocol
        AF announced: ipv6
      Route refresh
      Graceful restart
      4-octet AS numbers
      Enhanced refresh
      Long-lived graceful restart
    Session:          internal AS4
    Source address:   2a0a:e5c0:1:8::1
    Hold timer:       157.409/240
    Keepalive timer:  45.770/80
  Channel ipv6
    State:          UP
    Table:          master6
    Preference:     100
    Input filter:   ungleich_networks
    Output filter:  ungleich_networks_no_igp
    Routes:         2 imported, 101 exported, 1 preferred
    Route change stats:     received   rejected   filtered    ignored   accepted
      Import updates:              2          0          0          0          2
      Import withdraws:            4          0        ---          4          0
      Export updates:         140674          8     140565        ---        101
      Export withdraws:          334        ---        ---        ---          0
    BGP Next hop:   2a0a:e5c0:1:8::1 fe80::a236:9fff:fe08:a780



--
Sustainable and modern Infrastructures by ungleich.ch


More information about the Bird-users mailing list