Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Oct 2017 14:10:51 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 223129] Addition of an IP address to an interface (SIOCAIFADDR) fails when there is conflicting dynamic route
Message-ID:  <bug-223129-8@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D223129

            Bug ID: 223129
           Summary: Addition of an IP address to an interface
                    (SIOCAIFADDR) fails when there is conflicting dynamic
                    route
           Product: Base System
           Version: 11.0-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: eugen@freebsd.org

Hi!

I have a router that nearly simultaneously creates two netgraph-based PPP V=
PN
tunnels (ng_iface ngX) to the same remote router and establishes OSPF
neighbourship over each tunnel to announce and receive some prefixes.

It repeatedly falls to the same problem. Here is a scenario:

1. First PPP tunnel is created by first router and addresses are assigned:
192.168.71.9 for itself and 192.168.71.10 for second router. Addresses then
accepted and successfully assigned by second router.

2. Second PPP tunnel is created and again, first router assignes addresses
192.168.71.13 for itself and 192.168.71.14 for part of the tunnel. First ro=
uter
announces 192.168.71.14/32 using OSPF over first tunnel and second router's
ospfd process installs this route to the kernel using 192.168.71.9 as gatew=
ay:

got message of size 184 on Fri Oct 20 14:54:15 2017
RTM_ADD: Add Route: len 184, pid: 90850, seq 44, errno 0,
flags:<UP,GATEWAY,HOST,DONE,PROTO1>
locks:  inits:=20
sockaddrs: <DST,GATEWAY>
 192.168.71.14 192.168.71.9

3. Second router'd PPP daemon attempts to assign negotiated addresses
192.168.71.14 and 192.168.71.13 to the second ng_iface being configured with
ioctl(SIOCAIFADDR):

got message of size 164 on Fri Oct 20 16:04:59 2017
RTM_NEWADDR: address being added to iface: len 164, metric 0, flags:
sockaddrs: <NETMASK,IFP,IFA,BRD>
  ng2 192.168.71.14 192.168.71.13

got message of size 224 on Fri Oct 20 16:04:59 2017
RTM_ADD: Add Route: len 224, pid: 0, seq 0, errno 0, flags:<UP,HOST,PINNED>
locks:  inits:=20
sockaddrs: <DST,GATEWAY>
 192.168.71.13 link#9

But kernel returns an error EEXIST (17) and writes to the log:

kernel: ifa_maintain_loopback_route: insertion failed for interface ng2: 17

The kernel should allow PPP daemon (net/mpd5 in this case) to override dyna=
mic
route with PINNED address assignment.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-223129-8>