[Bug 223129] Addition of an IP address to an interface (SIOCAIFADDR) fails when there is conflicting dynamic route
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Fri Oct 20 14:10:51 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223129
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 at FreeBSD.org
Reporter: eugen at freebsd.org
Hi!
I have a router that nearly simultaneously creates two netgraph-based PPP VPN
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 router
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 gateway:
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:
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:
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 dynamic
route with PINNED address assignment.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list