Skip to content

Commit

Permalink
rc: newwanip master test 3
Browse files Browse the repository at this point in the history
  • Loading branch information
fichtner committed May 11, 2017
1 parent 6832082 commit 3b315ad
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 121 deletions.
8 changes: 5 additions & 3 deletions src/etc/inc/interfaces.inc
Original file line number Diff line number Diff line change
Expand Up @@ -1228,8 +1228,10 @@ function interface_bring_down($interface = "wan", $destroy = false, $ifacecfg =
mwexec("/sbin/pfctl -i " . escapeshellarg($realif) . " -Fs");
}

@unlink("/var/db/{$interface}ip");
@unlink("/var/db/{$interface}ipv6");
@unlink("/var/db/{$interface}_ip");
@unlink("/var/db/{$interface}_ipv6");
@unlink("/var/db/{$interface}_cacheip");
@unlink("/var/db/{$interface}_cacheipv6");
@unlink("/var/etc/nameserver_{$realif}");
@unlink("/var/etc/nameserver_v6{$realif}");
@unlink("/var/etc/searchdomain_{$realif}");
Expand Down Expand Up @@ -2679,7 +2681,7 @@ function interface_configure($interface = 'wan', $reloadall = false, $linkupeven
interface_6to4_configure($interface, $wancfg);
break;
case 'track6':
interface_track6_configure($interface, $wancfg, $linkupevent);
interface_track6_configure($interface, $wancfg, $reloadall || $linkupevent);
break;
default:
/* XXX: Kludge for now related to #3280 */
Expand Down
97 changes: 40 additions & 57 deletions src/etc/rc.newwanip
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<?php

/*
* Copyright (C) 2017 Franco Fichtner <franco@opnsense.org>
* Copyright (C) 2006 Scott Ullrich <sullrich@gmail.com>
* Copyright (C) 2003-2005 Manuel Kasper <mk@neon1.net>
* All rights reserved.
Expand Down Expand Up @@ -42,70 +43,51 @@ if (file_exists('/var/run/booting')) {
return;
}

/* Interface IP address has changed */
if (isset($argv[1])) {
$argument = str_replace("\n", "", $argv[1]);
} else {
$argument = null;
}
log_error("rc.newwanip: Informational is starting {$argument}.");
$argument = isset($argv[1]) ? trim($argv[1]) : '';

log_error("IP renewal is starting on '{$argument}'");

if (empty($argument)) {
$interface = "wan";
$interface_real = get_real_interface();
$interface = 'wan';
$interface_real = get_real_interface($interface);
$ip = get_interface_ip($interface);
} else {
$interface = convert_real_interface_to_friendly_interface_name($argument);
$interface_real = $argument;
$ip = find_interface_ip($interface_real);
if (empty($ip)) {
$ip = get_interface_ip($interface);
}
}

$interface_descr = convert_friendly_interface_to_friendly_descr($interface);

/* If the interface is configured and not enabled, bail. We do not need to change settings for disabled interfaces. #3313 */
if (is_array($config['interfaces'][$interface]) && !isset($config['interfaces'][$interface]['enable'])) {
log_error("Interface is disabled, nothing to do.");
return;
} elseif (empty($interface)) {
log_error("Interface is empty, nothing to do.");
if (!isset($config['interfaces'][$interface]['enable'])) {
log_error("Interface '{$interface}' is disabled or empty, nothing to do.");
return;
}

if (empty($argument)) {
$curwanip = get_interface_ip();
} else {
$curwanip = find_interface_ip($interface_real);
if(empty($curwanip)) {
$curwanip = get_interface_ip($interface);
}
}
$interface_descr = convert_friendly_interface_to_friendly_descr($interface);

log_error("rc.newwanip: on (IP address: {$curwanip}) (interface: {$interface_descr}[{$interface}]) (real interface: {$interface_real}).");
log_error("On (IP address: {$ip}) (interface: {$interface_descr}[{$interface}]) (real interface: {$interface_real}).");

/*
* NOTE: Take care of openvpn, no-ip or similar interfaces if you generate the event to reconfigure an interface.
* i.e. OpenVPN might be in tap mode and not have an ip.
* NOTE: Take care of openvpn and similar if you generate the event to reconfigure an interface.
* i.e. OpenVPN might be in tap mode and not have an ip.
*/
if ($curwanip == "0.0.0.0" || !is_ipaddr($curwanip)) {
if (substr($interface_real, 0, 4) != "ovpn") {
if (!empty($config['interfaces'][$interface]['ipaddr'])) {
log_error("rc.newwanip: Failed to update {$interface} IP, restarting...");
configd_run("interface reconfigure {$interface}");
return;
}
}
if ((empty($ip) || !is_ipaddr($ip)) && substr($interface_real, 0, 4) != 'ovpn') {
log_error("Failed to detect IP for {$interface_descr}[{$interface}]");
return;
}

if (file_exists("/var/db/{$interface}_cacheip")) {
$oldip = file_get_contents("/var/db/{$interface}_cacheip");
} else {
$oldip = "0.0.0.0";
}
$configip = $config['interfaces'][$interface]['ipaddr'];

system_resolvconf_generate();
$cacheip_file = "/var/db/{$interface}_cacheip";
$ip_file = "/var/db/{$interface}_ip";

/* write the current interface IP to file */
/* used in src/sbin/dhclient-script.ext */
if (is_ipaddr($curwanip)) {
@file_put_contents("/var/db/{$interface}_ip", $curwanip);
if (is_ipaddr($ip)) {
@file_put_contents($ip_file, $ip);
}

link_interface_to_vips($interface, "update");
Expand All @@ -130,7 +112,7 @@ if (!empty($bridgetmp)) {
interface_bridge_add_member($bridgetmp, $interface_real);
}

/* make new hosts file */
system_resolvconf_generate();
system_hosts_generate();

/* check tunneled IPv6 interface tracking */
Expand All @@ -151,11 +133,11 @@ if (isset($config['interfaces'][$interface]['ipaddrv6'])) {
}

/* Check Gif tunnels */
if(isset($config['gifs']['gif']) && is_array($config['gifs']['gif'])){
foreach($config['gifs']['gif'] as $gif) {
if($gif['if'] == $interface) {
if (isset($config['gifs']['gif']) && is_array($config['gifs']['gif'])){
foreach ($config['gifs']['gif'] as $gif) {
if ($gif['if'] == $interface) {
foreach (legacy_config_get_interfaces(array("virtual" => false)) as $ifname => $ifparent) {
if(($ifparent['if'] == $gif['gifif']) && (isset($ifparent['enable']))) {
if (($ifparent['if'] == $gif['gifif']) && (isset($ifparent['enable']))) {
$gif['gifif'] = interface_gif_configure($gif);
$confif = convert_real_interface_to_friendly_interface_name($gif['gifif']);
if (!empty($confif)) {
Expand All @@ -168,19 +150,18 @@ if(isset($config['gifs']['gif']) && is_array($config['gifs']['gif'])){
}
}

$cacheip = @file_get_contents($cacheip_file);

/*
* We need to force sync VPNs on such even when the IP is the same for dynamic interfaces.
* Even with the same IP the VPN software is unhappy with the IP disappearing, and we
* could be failing back in which case we need to switch IPs back anyhow.
*/
if (!is_ipaddr($oldip) || $curwanip != $oldip || !is_ipaddrv4($config['interfaces'][$interface]['ipaddr'])) {
if (!is_ipaddr($cacheip) || $ip != $cacheip || !is_ipaddr($configip)) {
@unlink($cacheip_file);

system_routing_configure($interface);
setup_gateways_monitor();

if (is_ipaddr($curwanip)) {
@file_put_contents("/var/db/{$interface}_cacheip", $curwanip);
}

/* start OpenVPN server & clients */
if (substr($interface_real, 0, 4) != "ovpn") {
openvpn_resync_all($interface);
Expand All @@ -189,7 +170,9 @@ if (!is_ipaddr($oldip) || $curwanip != $oldip || !is_ipaddrv4($config['interface
plugins_configure('vpn', false, array($interface));
plugins_configure('newwanip', false, array($interface));
rrd_configure();
}
filter_configure_sync();

/* reload filter, don't try to sync to carp slave */
filter_configure_sync();
if (is_ipaddr($ip)) {
@file_put_contents($cacheip_file, $ip);
}
}
134 changes: 73 additions & 61 deletions src/etc/rc.newwanipv6
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<?php

/*
* Copyright (C) 2017 Franco Fichtner <franco@opnsense.org>
* Copyright (C) 2006 Scott Ullrich <sullrich@gmail.com>
* Copyright (C) 2003-2005 Manuel Kasper <mk@neon1.net>
* All rights reserved.
Expand Down Expand Up @@ -37,71 +38,76 @@ require_once("util.inc");
require_once("system.inc");
require_once("interfaces.inc");

/* Interface IP address has changed */
$argument = trim($argv[1], " \n\t");
// Do not process while booting
if (file_exists('/var/run/booting')) {
return;
}

log_error("rc.newwanipv6: Informational is starting {$argument}.");
$argument = isset($argv[1]) ? trim($argv[1]) : '';

log_error("IP renewal is starting on '{$argument}'");

if (empty($argument)) {
$interface = "wan";
$interface_real = get_real_interface($interface, "inet6");
$curwanipv6 = get_interface_ipv6($interface, true);
$interface = 'wan';
$interface_real = get_real_interface($interface, 'inet6');
$ip = get_interface_ipv6($interface, true);
} else {
$interface = convert_real_interface_to_friendly_interface_name($argument);
$interface_real = $argument;
$interface = convert_real_interface_to_friendly_interface_name($interface_real);
$curwanipv6 = get_interface_ipv6($interface, true);
$ip = get_interface_ipv6($interface, true);
}

$interface_descr = convert_friendly_interface_to_friendly_descr($interface);

if (empty($interface)) {
filter_configure();
/* If the interface is configured and not enabled, bail. We do not need to change settings for disabled interfaces. #3313 */
if (!isset($config['interfaces'][$interface]['enable'])) {
log_error("Interface '{$interface}' is disabled or empty, nothing to do.");
return;
}

//Do not process while booting
if (file_exists("/var/run/booting") && $config['interfaces'][$interface]['ipaddrv6'] != "dhcp6") {
return;
}
$interface_descr = convert_friendly_interface_to_friendly_descr($interface);

log_error("On (IP address: {$ip}) (interface: {$interface_descr}[{$interface}]) (real interface: {$interface_real}).");

/*
* NOTE: Take care of openvpn and similar if you generate the event to reconfigure an interface.
* i.e. OpenVPN might be in tap mode and not have an ip.
*/
if ((empty($curwanipv6) || !is_ipaddrv6($curwanipv6)) && substr($interface_real, 0, 4) != "ovpn") {
log_error("rc.newwanipv6: Failed to detect IPv6 for {$interface_descr}[{$interface}]");
return;
if ((empty($ip) || !is_ipaddr($ip)) && substr($interface_real, 0, 4) != 'ovpn') {
log_error("Failed to detect IP for {$interface_descr}[{$interface}]");
return;
}

$new_domain_name_servers = getenv("new_domain_name_servers");
$configip = $config['interfaces'][$interface]['ipaddrv6'];

$searchdomain_file = "/var/etc/searchdomain_v6{$interface_real}";
$nameserver_file = "/var/etc/nameserver_v6{$interface_real}";
$cacheip_file = "/var/db/{$interface}_cacheipv6";
$ip_file = "/var/db/{$interface}_ipv6";

$new_domain_name_servers = getenv('new_domain_name_servers');
if (!empty($new_domain_name_servers)) {
$name_servers = explode(" ", $new_domain_name_servers);
$valid_ns = array();
foreach($name_servers as $ns) {
if (is_ipaddrv6(trim($ns)))
foreach ($name_servers as $ns) {
if (is_ipaddr(trim($ns))) {
$valid_ns[] = trim($ns);
}
}

if (count($valid_ns) > 0) {
file_put_contents("/var/etc/nameserver_v6{$interface}", implode("\n", $valid_ns));
@file_put_contents($nameserver_file, implode("\n", $valid_ns));
}
}
$new_domain_name = getenv("new_domain_name");

$new_domain_name = getenv('new_domain_name');
if (!empty($new_domain_name)) {
file_put_contents("/var/etc/searchdomain_v6{$interface}", $new_domain_name);
@file_put_contents($searchdomain_file, $new_domain_name);
}

/* write current WAN IPv6 to file */
if (is_ipaddrv6($curwanipv6)) {
@file_put_contents("/var/db/{$interface}_ipv6", $curwanipv6);
if (is_ipaddr($ip)) {
@file_put_contents($ip_file, $ip);
}

log_error("rc.newwanipv6: on (IP address: {$curwanipv6}) (interface: {$interface}) (real interface: {$interface_real}).");

$oldipv6 = "";
if (file_exists("/var/db/{$interface}_cacheipv6")) {
$oldipv6 = file_get_contents("/var/db/{$interface}_cacheipv6");
}

$grouptmp = link_interface_to_group($interface);
if (!empty($grouptmp)) {
Expand All @@ -110,37 +116,43 @@ if (!empty($grouptmp)) {

link_interface_to_track6($interface, "update");
system_resolvconf_generate();
system_routing_configure($interface);
setup_gateways_monitor();

/* signal filter reload */
filter_configure();

if (is_ipaddrv6($oldipv6)) {
if ($curwanipv6 == $oldipv6) {
// Still need to sync VPNs on PPPoE and such, as even with the same IP the VPN software is unhappy with the IP disappearing.
if (in_array($config['interfaces'][$interface]['ipaddrv6'], array('pppoe', 'pptp', 'ppp'))) {
/* reconfigure IPsec tunnels */
ipsec_configure_do(false, $interface);

/* start OpenVPN server & clients */
if (substr($interface_real, 0, 4) != "ovpn") {
openvpn_resync_all($interface);
system_hosts_generate();

$cacheip = @file_get_contents($cacheip_file);

/*
* We need to force sync VPNs on such even when the IP is the same for dynamic interfaces.
* Even with the same IP the VPN software is unhappy with the IP disappearing, and we
* could be failing back in which case we need to switch IPs back anyhow.
*/
if (!is_ipaddr($cacheip) || $ip != $cacheip || !is_ipaddr($configip)) {
if (is_ipaddr($ip)) {
if ($ip == $cacheip) {
if (in_array($config['interfaces'][$interface]['ipaddr'], array('l2tp', 'ppp', 'pppoe', 'pptp'))) {
/* PPP reconnect loop avoidance */
return;
}
} else {
if (is_ipaddr($cacheip) && does_interface_exist($interface_real)) {
mwexec("/sbin/ifconfig {$interface_real} inet6 {$cacheip} delete");
}
}
return;
} elseif (does_interface_exist($interface_real)) {
mwexec("/sbin/ifconfig {$interface_real} inet6 {$oldipv6} delete");
}

file_put_contents("/var/db/{$interface}_cacheipv6", $curwanipv6);
}
@unlink($cacheip_file);

/* start OpenVPN server & clients */
if (substr($interface_real, 0, 4) != 'ovpn') {
openvpn_resync_all($interface);
}
system_routing_configure($interface);
setup_gateways_monitor();
/* start OpenVPN server & clients */
if (substr($interface_real, 0, 4) != "ovpn") {
openvpn_resync_all($interface);
}
plugins_configure('vpn', false, array($interface));
plugins_configure('newwanip', false, array($interface));
rrd_configure();
filter_configure_sync();

plugins_configure('vpn', false, array($interface));
plugins_configure('newwanip', false, array($interface));
rrd_configure();
if (is_ipaddr($ip)) {
@file_put_contents($cacheip_file, $ip);
}
}

8 comments on commit 3b315ad

@fichtner
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Woi ready, set, go for round 3 :)

# opnsense-patch 3b315ad

Changes:

  • PPP loop avoidance does not reload anything anymore when the IP does not change
  • Unification between IPv4 and IPv6 variants
  • dhcp6c reload fix for LAN renewal (Interface tracking)
  • Clear cache IP before a reload
  • Clear cache IP on interface disable

@Woi
Copy link

@Woi Woi commented on 3b315ad May 11, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As before: removed f14be5c, successfully applied this patch but kept the DynDNS patch. Going to reboot now, but don't expect feedback before tomorrow evening.

@deviantintegral
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just tried this patch to see if dhclient exiting was fixed on renews, but I'm seeing the same behaviour, where the IP is obtained but then dhclient exits, leaving the interface unconfigured.

@Woi
Copy link

@Woi Woi commented on 3b315ad May 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks even better then patch 1 and 2:

  • No packet drops any more.
  • Only 2 log lines every 15 minutes.
  • Still a spike in CPU load on the dashboard widget. But I'll need to further test it's impact compared to before.
  • No more apinger errors in the log. However I don't have apinger running as a service at all, as you implied in f14be5c#commitcomment-22098241
  • interface widget doesn't show the interface speed for WAN. But I'm not sure if this changed with the patch. Since I configured the same physical interface for WAN and Modem access, it could also be the same behaviour as before.
May 12 19:42:51 	opnsense: /usr/local/etc/rc.newwanipv6: On (IP address: fe80::20d:b9ff:XXXX:XXXX) (interface: WAN[wan]) (real interface: pppoe0).
May 12 19:42:51 	opnsense: /usr/local/etc/rc.newwanipv6: IP renewal is starting on 'pppoe0'
May 12 19:27:51 	opnsense: /usr/local/etc/rc.newwanipv6: On (IP address: fe80::20d:b9ff:XXXX:XXXX) (interface: WAN[wan]) (real interface: pppoe0).
May 12 19:27:51 	opnsense: /usr/local/etc/rc.newwanipv6: IP renewal is starting on 'pppoe0'
[...]
May 12 00:57:50 	opnsense: /usr/local/etc/rc.newwanipv6: On (IP address: fe80::20d:b9ff:XXXX:XXXX) (interface: WAN[wan]) (real interface: pppoe0).
May 12 00:57:50 	opnsense: /usr/local/etc/rc.newwanipv6: IP renewal is starting on 'pppoe0'
May 12 00:42:51 	UNKNOWN[26541]: removing /var/run/radvd.pid
May 12 00:42:51 	UNKNOWN[26541]: sending stop adverts
May 12 00:42:51 	UNKNOWN[26541]: Exiting, sigterm or sigint received.
May 12 00:42:50 	opnsense: /usr/local/etc/rc.newwanipv6: On (IP address: fe80::20d:b9ff:XXXX:XXXX) (interface: WAN[wan]) (real interface: pppoe0).
May 12 00:42:50 	opnsense: /usr/local/etc/rc.newwanipv6: IP renewal is starting on 'pppoe0'
[...]
May 12 00:29:05 	opnsense: /usr/local/etc/rc.bootup: Dynamic DNS: (Success) IP address updated successfully
May 12 00:29:05 	opnsense: /usr/local/etc/rc.bootup: Dynamic DNS: updating cache file /var/cache/dyndns_wan_EXAMPLE.COM_2.cache: X.X.X.X
[...]
May 12 00:28:15 	UNKNOWN[26541]: Process 76810 died: No such process; trying to remove PID file. (/var/run/radvd.pid)
[...]
May 12 00:28:05 	opnsense: /usr/local/etc/rc.bootup: ROUTING: setting IPv6 default route to fe80::105:105:3e9b:f014%pppoe0
May 12 00:28:05 	opnsense: /usr/local/etc/rc.bootup: ROUTING: setting IPv4 default route to 62.155.240.20
[...]
May 12 00:28:00 	configd.py: [e2740730-bd7d-423e-96de-54621e8e13f2] rc.newwanip starting pppoe0
May 12 00:27:57 	configd.py: [7012fd65-cb06-4f68-a72a-5cd012ff3bbf] Rewriting resolv.conf
May 12 00:27:55 	kernel: ..
May 12 00:27:55 	opnsense: /usr/local/etc/rc.bootup: Could not find IPv4 gateway for interface (wan).
May 12 00:27:55 	opnsense: /usr/local/etc/rc.bootup: Could not find IPv4 gateway for interface (wan).
May 12 00:27:55 	opnsense: /usr/local/etc/rc.bootup: Could not find IPv4 gateway for interface (wan).
May 12 00:27:55 	opnsense: /usr/local/etc/rc.bootup: Could not find IPv4 gateway for interface (wan).
May 12 00:27:54 	kernel: .
May 12 00:27:53 	configd.py: [ee891010-72d2-4b64-a647-4b124b22b88e] rc.newwanip starting pppoe0
May 12 00:27:49 	configd.py: [2326f451-d44f-45b4-b03d-d9fc79b34569] Linkup starting vr0
May 12 00:27:48 	kernel: pflog0: promiscuous mode enabled
May 12 00:27:47 	configd.py: [4bc1574a-ec19-4a10-abf4-61402c543095] Rewriting resolv.conf
May 12 00:27:45 	kernel: vr0: link state changed to UP
May 12 00:27:45 	configd.py: [5613ec00-5af5-4387-9ec3-1d37424b6026] Linkup stopping vr0
May 12 00:27:42 	kernel: vr0: link state changed to DOWN
May 12 00:27:42 	kernel:
May 12 00:27:41 	opnsense: /usr/local/etc/rc.bootup: Accept router advertisements on interface pppoe0
May 12 00:27:41 	configd.py: [b4e0fa3e-4631-4a08-bb42-dbc490d98294] Linkup starting vr1
May 12 00:27:41 	kernel: vr1: link state changed to UP
May 12 00:27:39 	kernel: ng0: changing name to 'pppoe0'
May 12 00:27:39 	kernel:
May 12 00:27:39 	opnsense: /usr/local/etc/rc.bootup: The command '/sbin/ifconfig 'pppoe0' inet6 -accept_rtadv' returned exit code '1', the output was 'ifconfig: interface pppoe0 does not exist'
$ date && ping -4 heise.de && date
Fr 12. Mai 19:42:30 CEST 2017
PING heise.de (193.99.144.80) 56(84) bytes of data.
64 bytes from redirector.heise.de (193.99.144.80): icmp_seq=1 ttl=249 time=15.4 ms
[...]
64 bytes from redirector.heise.de (193.99.144.80): icmp_seq=37 ttl=249 time=15.4 ms
^C
--- heise.de ping statistics ---
37 packets transmitted, 37 received, 0% packet loss, time 36059ms
rtt min/avg/max/mdev = 15.343/15.577/15.836/0.129 ms
Fr 12. Mai 19:43:06 CEST 2017
$ date && ping -6 heise.de && date
Fr 12. Mai 19:42:30 CEST 2017
PING heise.de(redirector.heise.de (2a02:2e0:3fe:1001:302::)) 56 data bytes
64 bytes from redirector.heise.de (2a02:2e0:3fe:1001:302::): icmp_seq=1 ttl=58 time=15.6 ms
[...]
64 bytes from redirector.heise.de (2a02:2e0:3fe:1001:302::): icmp_seq=37 ttl=58 time=15.4 ms
^C
--- heise.de ping statistics ---
37 packets transmitted, 37 received, 0% packet loss, time 36056ms
rtt min/avg/max/mdev = 15.240/15.588/16.210/0.243 ms
Fr 12. Mai 19:43:06 CEST 2017

@Woi
Copy link

@Woi Woi commented on 3b315ad May 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One question, I still not understand: Why does rc.newwanipv6 need to run every 15 minutes at all? Is this due to the ISPs DHCP renewal time?

@fichtner
Copy link
Member Author

@fichtner fichtner commented on 3b315ad May 14, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Woi ok, if apinger is not running it should not be probed there then... 89d73f6916f786

reload is forced by pppoe or at least the pppoe daemon, I don't know why. The two lines you see there now are basically two diagnostic prints. as you noted we don't do anything anymore here in those cases that would force a reload / disrupt connectivity.

@deviantintegral ok, so we need to look again at how dhclient is handled, not related to IP handling ;(

@Woi
Copy link

@Woi Woi commented on 3b315ad May 28, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fichtner
apinger:

# tail /var/log/gateways.log
May 28 18:37:47 gw apinger: No usable targets found, exiting
May 28 18:37:50 gw apinger: Starting Alarm Pinger, apinger(32356)
May 28 18:37:50 gw apinger: No usable targets found, exiting
May 28 18:38:01 gw apinger: Starting Alarm Pinger, apinger(62078)
May 28 18:38:01 gw apinger: No usable targets found, exiting
May 28 18:52:42 gw apinger: Starting Alarm Pinger, apinger(3761)
May 28 18:52:42 gw apinger: No usable targets found, exiting
May 28 19:07:43 gw apinger: Starting Alarm Pinger, apinger(18408)
May 28 19:07:43 gw apinger: No usable targets found, exiting

Should I test 89d73f6? I'm currently running 17.1.7.

Regarding the Reload: I still think it's kind of wired to have it every 15min. Since I couldn't find any information in the logs, I ticked Enable debug in the Advanced tab of DHCPv6 client configuration, just to figure out it breaks IPv6 (no IPv6 addresses for my client any more). Should I open a new bug report for this?
Update: To get IPv6 working again, disabling debug and a reboot wasn't sufficient. I had to disable and reconfigure IPv6 completely, followed by a reboot.

@fichtner
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Woi the commit only removes the error you've reported previously. apinger does not run so it's not necessary to probe it. now it looks like apinger is actually started/configured, but exits right away because it can't find an IP to look for.

PPPoE/mpd5 is doing these disconnects and we just have to act on them or ignore them.... I have no idea why they are there and debugging this is out of scope.

Please sign in to comment.