Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 443312 - NM doesn't remove direct route to openVPN gw when disconnecting
NM doesn't remove direct route to openVPN gw when disconnecting
Product: Fedora
Classification: Fedora
Component: NetworkManager (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Dan Williams
Fedora Extras Quality Assurance
Depends On:
Blocks: F9Target
  Show dependency treegraph
Reported: 2008-04-20 11:14 EDT by Fabrice Bellet
Modified: 2008-05-19 11:28 EDT (History)
3 users (show)

See Also:
Fixed In Version: svn3669
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2008-05-19 11:28:36 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Fabrice Bellet 2008-04-20 11:14:01 EDT
The affected version is svn3578. I'm running an openvpn tunnel over a broadband
ppp connection. When closing the VPN connection, the direct route to the VPN
gateway via the ppp0 device is not removed. It works fine with VPN over
Ethernet, and the problem occurs then the VPN is established over a ppp device.

After playing a bit with the code dealing with libnl, I came to this
modification that works for me, both with point-to-point and ethernet link:

--- NetworkManager-0.7.0.orig/src/NetworkManagerSystem.c        2008-04-15
22:50:36.000000000 +0200
+++ NetworkManager-0.7.0/src/NetworkManagerSystem.c     2008-04-19
17:14:59.000000000 +0200
@@ -190,11 +190,8 @@
        struct rtnl_addr *addr = (struct rtnl_addr *) object;
        int err;
-       /* Delete addresses on this interface which don't match the one we
-        * are about to add to it.
-        */
-       if (nl_object_identical ((struct nl_object *) data->match, (struct
nl_object *) addr))
-               return;
+       /* Delete addresses on this interface */
        if (rtnl_addr_get_ifindex (addr) != rtnl_addr_get_ifindex (data->match))
        if (rtnl_addr_get_family (addr) != rtnl_addr_get_family (data->match))

Moreover, after openvpn initialization completes, I have this WARN in my log :

Apr 19 17:03:14 localhost nm-openvpn[13923]: Initialization Sequence Completed
Apr 19 17:03:14 localhost NetworkManager: <WARN> 
nm_system_vpn_device_set_from_ip4_config(): error -17 returned from
Apr 19 17:03:15 localhost NetworkManager: <info>  VPN connection 'creatis' (IP
Config Get) complete.
Apr 19 17:03:15 localhost NetworkManager: <info>  VPN plugin state changed: 4

And removing this call to rtnl_addr_add() in the function
nm_system_vpn_device_set_from_ip4_config() also works for me, without loosing
the neeeded routes and the IP configuration of my VPN client.
Comment 1 John Poelstra 2008-04-21 13:34:46 EDT
thank you for reporting this bug
Comment 2 Bug Zapper 2008-05-14 05:47:34 EDT
Changing version to '9' as part of upcoming Fedora 9 GA.
More information and reason for this action is here:
Comment 3 Fabrice Bellet 2008-05-19 08:28:43 EDT
the bug is resolved for me in version svn3669
Comment 4 Dan Williams 2008-05-19 11:28:36 EDT
great, thanks.  closing then.

Note You need to log in before you can comment on or make changes to this bug.