Hello, Bird 2.0.3 from source, Debian 9. Sometimes I see very huge numbers of exported routes: Description: Lipka IPv4 BGP state: Established Neighbor address: 185.212.67.245 Neighbor AS: 205604 Neighbor ID: 185.212.64.1 Local capabilities Multiprotocol AF announced: ipv4 Route refresh Graceful restart 4-octet AS numbers Enhanced refresh Long-lived graceful restart Neighbor capabilities Multiprotocol AF announced: ipv4 Route refresh 4-octet AS numbers Session: external AS4 Source address: 185.212.67.246 Hold timer: 167.076/180 Keepalive timer: 22.324/60 Channel ipv4 State: UP Table: master4 Preference: 100 Input filter: ACCEPT Output filter: ACCEPT Routes: 756702 imported, 4294390282 exported But it should be max ca 756000. When I restart session several times, I see correct number of routes. Is it a bug or feature? :) -- Miłosz
Hello, It’s a bug, see the archives (or the commits), it’s already patched in master ;) -- Alarig
We have some multi-path routes that fails to get pushed into the kernel. We are running bird 2.0.3 and kernel 4.14.92+. bird> show route ... Table master4: 10.210.138.3/32 unicast [ospf1 13:24:23.022] E1 (145/1020) [10.210.138.3] via 10.210.138.2 on p1-1-1-1-2 weight 1 via 10.210.138.2 on p1-1-5-1-6 weight 1 ... bird> The bird log has the following warning messages (unclear if it is related): 2019-02-28 13:30:38.343 <WARN> Netlink: Invalid argument What is the expected behaviour for bird here? Install both routes or just one of them? Thanks, Kenth
On Thu, Feb 28, 2019 at 01:15:02PM +0000, Kenth Eriksson wrote:
We have some multi-path routes that fails to get pushed into the kernel. We are running bird 2.0.3 and kernel 4.14.92+.
bird> show route ... Table master4:
10.210.138.3/32 unicast [ospf1 13:24:23.022] E1 (145/1020) [10.210.138.3] via 10.210.138.2 on p1-1-1-1-2 weight 1 via 10.210.138.2 on p1-1-5-1-6 weight 1 ... bird>
It is possible that it is related to the same IP address on different interfaces? Are these two interfaces to the same network?
The bird log has the following warning messages (unclear if it is related):
2019-02-28 13:30:38.343 <WARN> Netlink: Invalid argument
What is the expected behaviour for bird here? Install both routes or just one of them?
Thanks, Kenth
-- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
On Thu, 2019-02-28 at 17:59 +0100, Ondrej Zajicek wrote:
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On Thu, Feb 28, 2019 at 01:15:02PM +0000, Kenth Eriksson wrote:
We have some multi-path routes that fails to get pushed into the kernel. We are running bird 2.0.3 and kernel 4.14.92+.
bird> show route ... Table master4:
10.210.138.3/32 unicast [ospf1 13:24:23.022] E1 (145/1020) [10.210.138.3] via 10.210.138.2 on p1-1-1-1-2 weight 1 via 10.210.138.2 on p1-1-5-1-6 weight 1 ... bird>
It is possible that it is related to the same IP address on different interfaces? Are these two interfaces to the same network?
These are two unnumbered point-to-point interfaces. We don't have multipath enabled in our kernel (CONFIG_IP_ROUTE_MULTIPATH). How does bird tell whether the kernel supports multipath? Probing run time via netlink? Didn't find any configure.ac option. If disable multipath in the bird config like this; protocol ospf v2 ospf1 { ecmp no; ... then I could get bird to push one of the ospf multipath routes to the kernel again.
The bird log has the following warning messages (unclear if it is related):
2019-02-28 13:30:38.343 <WARN> Netlink: Invalid argument
What is the expected behaviour for bird here? Install both routes or just one of them?
Thanks, Kenth
-- Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
On Fri, Mar 01, 2019 at 08:57:28AM +0000, Kenth Eriksson wrote:
On Thu, Feb 28, 2019 at 01:15:02PM +0000, Kenth Eriksson wrote:
We have some multi-path routes that fails to get pushed into the kernel. We are running bird 2.0.3 and kernel 4.14.92+.
bird> show route ... Table master4:
10.210.138.3/32 unicast [ospf1 13:24:23.022] E1 (145/1020) [10.210.138.3] via 10.210.138.2 on p1-1-1-1-2 weight 1 via 10.210.138.2 on p1-1-5-1-6 weight 1 ... bird>
It is possible that it is related to the same IP address on different interfaces? Are these two interfaces to the same network?
These are two unnumbered point-to-point interfaces.
We don't have multipath enabled in our kernel (CONFIG_IP_ROUTE_MULTIPATH). How does bird tell whether the kernel supports multipath? Probing run time via netlink? Didn't find any configure.ac option.
BIRD does not detect that. I don't know if there is a reasonable way how to detect it. Just disable ECMP in OSPF if your kernel does not support ECMP routes.
If disable multipath in the bird config like this;
protocol ospf v2 ospf1 { ecmp no; ...
then I could get bird to push one of the ospf multipath routes to the kernel again.
-- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
On Fri, 2019-03-01 at 12:41 +0100, Ondrej Zajicek wrote:
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On Fri, Mar 01, 2019 at 08:57:28AM +0000, Kenth Eriksson wrote:
On Thu, Feb 28, 2019 at 01:15:02PM +0000, Kenth Eriksson wrote:
We have some multi-path routes that fails to get pushed into the kernel. We are running bird 2.0.3 and kernel 4.14.92+.
bird> show route ... Table master4:
10.210.138.3/32 unicast [ospf1 13:24:23.022] E1 (145/1020) [10.210.138.3] via 10.210.138.2 on p1-1-1-1-2 weight 1 via 10.210.138.2 on p1-1-5-1-6 weight 1 ... bird>
It is possible that it is related to the same IP address on different interfaces? Are these two interfaces to the same network?
These are two unnumbered point-to-point interfaces.
We don't have multipath enabled in our kernel (CONFIG_IP_ROUTE_MULTIPATH). How does bird tell whether the kernel supports multipath? Probing run time via netlink? Didn't find any configure.ac option.
BIRD does not detect that. I don't know if there is a reasonable way how to detect it. Just disable ECMP in OSPF if your kernel does not support ECMP routes.
Ok, thanks for clarifying that. The manual gave me the impression that it was detected somehow since it has the following line: "By default, ECMP is enabled if supported by Kernel"
If disable multipath in the bird config like this;
protocol ospf v2 ospf1 { ecmp no; ...
then I could get bird to push one of the ospf multipath routes to the kernel again.
-- Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
On Fri, Mar 01, 2019 at 11:46:28AM +0000, Kenth Eriksson wrote:
We don't have multipath enabled in our kernel (CONFIG_IP_ROUTE_MULTIPATH). How does bird tell whether the kernel supports multipath? Probing run time via netlink? Didn't find any configure.ac option.
BIRD does not detect that. I don't know if there is a reasonable way how to detect it. Just disable ECMP in OSPF if your kernel does not support ECMP routes.
Ok, thanks for clarifying that. The manual gave me the impression that it was detected somehow since it has the following line:
"By default, ECMP is enabled if supported by Kernel"
OK, this is supposed to mean 'by Kernel protocol'. Kernel protocol supports ECMP on Linux, but not on BSD. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
On Fri, 2019-03-01 at 13:23 +0100, Ondrej Zajicek wrote:
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On Fri, Mar 01, 2019 at 11:46:28AM +0000, Kenth Eriksson wrote:
We don't have multipath enabled in our kernel (CONFIG_IP_ROUTE_MULTIPATH). How does bird tell whether the kernel supports multipath? Probing run time via netlink? Didn't find any configure.ac option.
BIRD does not detect that. I don't know if there is a reasonable way how to detect it. Just disable ECMP in OSPF if your kernel does not support ECMP routes.
Ok, thanks for clarifying that. The manual gave me the impression that it was detected somehow since it has the following line:
"By default, ECMP is enabled if supported by Kernel"
OK, this is supposed to mean 'by Kernel protocol'. Kernel protocol supports ECMP on Linux, but not on BSD.
I rebuilt my kernel with multipath support, that does seem to remove the netlink warning logs. And now bird does push the prefix as a multipath to the kernel. Logs: bird> show route for 172.20.4.41 Table master4: 172.20.4.41/32 unicast [ospf1 13:03:37.891] I (145/10) [172.20.4.41] via 172.20.4.41 on p1-1-3-1-4 weight 1 via 172.20.4.41 on p1-1-1-1-2 weight 1 unicast [direct1 13:43:08.338] (100) dev p1-1-1-1-2 unicast [direct1 13:43:08.338] (100) dev p1-1-3-1-4 bird> kenth ~ # ip route ... 172.20.4.41 proto bird metric 32 nexthop via 172.20.4.41 dev p1-1-1-1-2 weight 1 nexthop via 172.20.4.41 dev p1-1-3-1-4 weight 1 kenth ~ #
-- Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
On Fri, 2019-03-01 at 12:41 +0100, Ondrej Zajicek wrote:
On Fri, Mar 01, 2019 at 08:57:28AM +0000, Kenth Eriksson wrote:
On Thu, Feb 28, 2019 at 01:15:02PM +0000, Kenth Eriksson wrote:
We have some multi-path routes that fails to get pushed into the kernel. We are running bird 2.0.3 and kernel 4.14.92+.
bird> show route ... Table master4:
10.210.138.3/32 unicast [ospf1 13:24:23.022] E1 (145/1020) [10.210.138.3] via 10.210.138.2 on p1-1-1-1-2 weight 1 via 10.210.138.2 on p1-1-5-1-6 weight 1 ... bird>
It is possible that it is related to the same IP address on different interfaces? Are these two interfaces to the same network?
These are two unnumbered point-to-point interfaces.
We don't have multipath enabled in our kernel (CONFIG_IP_ROUTE_MULTIPATH). How does bird tell whether the kernel supports multipath? Probing run time via netlink? Didn't find any configure.ac option.
BIRD does not detect that. I don't know if there is a reasonable way how to detect it. Just disable ECMP in OSPF if your kernel does not support ECMP routes.
Quagga somehow detects this and will install one route into kernel and keep the other as an inactive standby route. Maybe Bird could do the same ? Jocke
participants (5)
-
Alarig Le Lay -
Joakim Tjernlund -
Kenth Eriksson -
Miłosz Oller -
Ondrej Zajicek