[dev] discard interface warnings on FreeBSD

mike tancsa mike at sentex.net
Mon Apr 29 10:49:19 EDT 2019


On 4/27/2019 9:22 AM, Donald Sharp wrote:
> The zebra startup messages don't worry me too much.  We definitely see
> them from time to time especially when the broadcast address doesn't
> match the mask given.

Oh, I never even noticed that. It seems the discard interface does not
have a broadcast address for whatever reason. FreeBSD 9 through 12 seem
to all be this way.

# ifconfig disc0 | grep inet
        inet6 2001:db8::1 prefixlen 64
        inet6 fe80::1%disc0 prefixlen 64 scopeid 0x7
        inet 10.129.129.1 netmask 0xfffffff0

vs a "normal" interface

# ifconfig igb3 | grep inet
        inet 10.255.255.129 netmask 0xffffff00 broadcast 10.255.255.255

>
> The error from staticd indicates that it does not think it is
> connected to zebra.  Are you sure zebra is started?  From the log
> message it sure looks like you are running zebra two times?

Odd, it looks like something in the default startup script ? If I
manually start zebra and staticd its fine

# /usr/local/sbin/zebra -A127.0.0.1 -d
2019/04/29 10:31:58 warnings: ZEBRA: [EC 4043309141] warning: interface
disc0 broadcast addr 10.129.129.1/28 != calculated 10.129.129.15,
routing protocols may malfunction
2019/04/29 10:31:58 warnings: ZEBRA: [EC 4043309141] warning: interface
disc0 broadcast addr 9.9.9.1/30 != calculated 9.9.9.3, routing protocols
may malfunction
2019/04/29 10:31:58 warnings: ZEBRA: [EC 4043309105] Disabling MPLS
support (no kernel support)
#  /usr/local/sbin/staticd -A127.0.0.1 -d
# ps -auxww | grep frr
frr      66687   0.0  0.1 73284  9516  -  Ss   10:31       0:00.00
/usr/local/sbin/zebra -A127.0.0.1 -d
frr      66689   0.0  0.0 33864  7736  -  Ss   10:32       0:00.00
/usr/local/sbin/staticd -A127.0.0.1 -d
root     66691   0.0  0.0 11292  2640  3  S+   10:32       0:00.00 grep frr
#

using the startup script from the ports

# grep -i frr /etc/rc.conf
frr_enable="YES"
frr_flags="-A127.0.0.1"
frr_daemons="zebra staticd"

#

I get the errors/warnings

# /usr/local/etc/rc.d/frr start


Checking zebra.conf
2019/04/29 10:33:47 warnings: ZEBRA: [EC 4043309141] warning: interface
disc0 broadcast addr 10.129.129.1/28 != calculated 10.129.129.15,
routing protocols may malfunction
2019/04/29 10:33:47 warnings: ZEBRA: [EC 4043309141] warning: interface
disc0 broadcast addr 9.9.9.1/30 != calculated 9.9.9.3, routing protocols
may malfunction
2019/04/29 10:33:47 warnings: ZEBRA: [EC 4043309105] Disabling MPLS
support (no kernel support)
OK
Starting zebra.
2019/04/29 10:33:48 warnings: ZEBRA: [EC 4043309141] warning: interface
disc0 broadcast addr 10.129.129.1/28 != calculated 10.129.129.15,
routing protocols may malfunction
2019/04/29 10:33:48 warnings: ZEBRA: [EC 4043309141] warning: interface
disc0 broadcast addr 9.9.9.1/30 != calculated 9.9.9.3, routing protocols
may malfunction
2019/04/29 10:33:48 warnings: ZEBRA: [EC 4043309105] Disabling MPLS
support (no kernel support)
Checking staticd.conf
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
2019/04/29 10:33:48 warnings: STATIC: void
static_zebra_nht_register(struct static_route *, _Bool): Failure to send
nexthop to zebra
OK
Starting staticd.
# ps -auxww | grep frr
frr      66745   0.0  0.1 73236  9508  -  Ss   10:33       0:00.00
/usr/local/sbin/zebra -A127.0.0.1 -d
frr      66751   0.0  0.0 33864  7736  -  Ss   10:33       0:00.00
/usr/local/sbin/staticd -A127.0.0.1 -d
root     66753   0.0  0.0 11292  2640  3  S+   10:33       0:00.00 grep frr

But it only starts one copy


However, I still have the issue of the one static route getting pointed
to the discard interface

10.87.1.0/30       10.129.129.1       UG1       disc0


where as it should be pointed to a host on a connected interface.

vtysh -c "show ip route 10.87.1.0/30"
Routing entry for 10.87.1.0/30
  Known via "static", distance 1, metric 0, best
  Last update 00:03:21 ago
    64.7.149.178 (recursive)
  *   10.129.129.1, via disc0

The supernet is tied down to the /24

 vtysh -c "sh ip route  64.7.149.178"
Routing entry for 64.7.149.0/24
  Known via "static", distance 1, metric 0, best
  Last update 00:03:36 ago
  * 10.129.129.1, via disc0

The interface was booted with the carrier down, but the nic
administratively up.  If I plug in a cable so there is carrier, the
connected interface now looks good

 vtysh -c "sh ip route  64.7.149.178"
Routing entry for 64.7.149.176/30
  Known via "connected", distance 0, metric 1, best
  Last update 00:01:35 ago
  * directly connected, igb1.6


but the 10.87.1.0/30 does not change

 vtysh -c "show ip route 10.87.1.0/30"
Routing entry for 10.87.1.0/30
  Known via "static", distance 1, metric 0, best
  Last update 00:07:43 ago
    64.7.149.178 (recursive)
  *   10.129.129.1, via disc0


Even when the mac address shows up, so that the path is reachable, the
static route does not update

 vtysh -c "show ip route 10.87.1.0/30"
Routing entry for 10.87.1.0/30
  Known via "static", distance 1, metric 0, best
  Last update 00:09:50 ago
    64.7.149.178 (recursive)
  *   10.129.129.1, via disc0

# arp -na | grep 178
? (64.7.149.178) at 00:0d:b9:1c:0f:25 on igb1.6 expires in 1131 seconds
[vlan]

#

I have to stop frr and start it again, and it then works

 vtysh -c "show ip route 10.87.1.0/30"
Routing entry for 10.87.1.0/30
  Known via "static", distance 1, metric 0, best
  Last update 00:00:04 ago
  * 64.7.149.178, via igb1.6







More information about the dev mailing list