From c3a4e45a8636dcf9b2f0fff9347f2c7f562a2a98 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Fri, 29 Jun 2018 08:20:29 +0200 Subject: [PATCH] interfaces: allow private addresses in 6RD, cleanups #1501 --- src/etc/inc/interfaces.inc | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index b4d0f241a..ffcf3ca21 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -2613,8 +2613,8 @@ function interface_track6_6rd_configure($interface = 'lan', $lancfg) } $ip4address = get_interface_ip($lancfg['track6-interface']); - if (!is_ipaddrv4($ip4address)) { /* XXX: This should not be needed by 6rd || (is_private_ip($ip4address))) { */ - log_error("The interface IPv4 '{$ip4address}' address on interface '{$lancfg['track6-interface']}' is not public, not configuring 6RD tunnel"); + if (!is_ipaddrv4($ip4address)) { + log_error("The interface IPv4 address '{$ip4address}' on interface '{$lancfg['track6-interface']}' is invalid, not configuring 6RD tracking"); return; } $hexwanv4 = return_hex_ipv4($ip4address); @@ -2658,7 +2658,7 @@ function interface_track6_6to4_configure($interface = 'lan', $lancfg) { $ip4address = get_interface_ip($lancfg['track6-interface']); if (!is_ipaddrv4($ip4address) || is_private_ip($ip4address)) { - log_error("The interface IPv4 '{$ip4address}' address on interface '{$lancfg['track6-interface']}' is not public, not configuring 6RD tunnel"); + log_error("The interface IPv4 address '{$ip4address}' on interface '{$lancfg['track6-interface']}' is not public, not configuring 6to4 tracking"); return; } $hexwanv4 = return_hex_ipv4($ip4address); @@ -2696,16 +2696,14 @@ function interface_track6_6to4_configure($interface = 'lan', $lancfg) function interface_6rd_configure($interface = "wan", $wancfg) { - /* because this is a tunnel interface we can only function - * with a public IPv4 address on the interface */ if (!is_array($wancfg)) { return; } $wanif = get_real_interface($interface); $ip4address = find_interface_ip($wanif); - if ((!is_ipaddrv4($ip4address)) || (is_private_ip($ip4address))) { - log_error("The interface IPv4 '{$ip4address}' address on interface '{$wanif}' is not public, not configuring 6RD tunnel"); + if (!is_ipaddrv4($ip4address)) { + log_error("The interface IPv4 address '{$ip4address}' on interface '{$wanif}' is invalid, not configuring 6RD tunnel"); return false; } $hexwanv4 = return_hex_ipv4($ip4address); @@ -2775,15 +2773,10 @@ function interface_6to4_configure($interface = 'wan', $wancfg) return; } - /* - * Because this is a tunnel interface we can only function - * with a public IPv4 address on the interface - */ - $wanif = get_real_interface($interface); $ip4address = find_interface_ip($wanif); - if ((!is_ipaddrv4($ip4address)) || (is_private_ip($ip4address))) { - log_error("The interface IPv4 '{$ip4address}' address on interface '{$wanif}' is not public, not configuring 6RD tunnel"); + if (!is_ipaddrv4($ip4address) || is_private_ip($ip4address)) { + log_error("The interface IPv4 address '{$ip4address}' on interface '{$wanif}' is not public, not configuring 6to4 tunnel"); return false; }