Hi,

since we use multiple cloning routes (mpath) if more than one ip address
exists in the same network, the routes are distinguished by their gateway
address, which is the associated interface address.
The ospfd has to track the gateway addresses so that kroute_matchgw() is able to
find the correct routes.

Example:
/etc/hostname.em3:
rtlabel EXPORT
[...]

/etc/ospfd.conf:
[...]
redistribute rtlabel EXPORT

$ ifconfig em3 inet 10.0.0.1 prefixlen 24 alias
$ ifconfig em3 inet 10.0.0.2 prefixlen 24 alias
$ ifconfig em3 inet 10.0.0.2 delete

Now 10.0.0.1 still exists and 10.0.0.0/24 should be exported via ospfd, but
since ospfd messed up the routes, it has removed the prefix after 10.0.0.2 was
gone.

ok?

friehm

Index: kroute.c
===================================================================
RCS file: /home/friehm/repos/openbsd-cvs/cvs/src/usr.sbin/ospfd/kroute.c,v
retrieving revision 1.110
diff -u -p -r1.110 kroute.c
--- kroute.c    25 Jun 2018 22:16:53 -0000      1.110
+++ kroute.c    10 Jul 2018 10:01:15 -0000
@@ -1451,7 +1451,6 @@ rtmsg_process(char *buf, size_t len)
                                case AF_INET:
                                        if (rtm->rtm_flags & RTF_CONNECTED) {
                                                flags |= F_CONNECTED;
-                                               break;
                                        }
 
                                        nexthop.s_addr = ((struct

Reply via email to