Skip to content
Permalink
Browse files

Set of new features, improvements and bugfixes

New features
[farms] Add persistence between clients and backends using hashes depending on “ip”, “port”, “mac”, “source ip and source port” or “source ip and destination port”
[farms] Add option to l4xnat to set the port
[farms] Add nat type based on stateless dnat
[gui] Add module to translate the webgui to a different language
[api] Retrieve the parameter list accepted by the API for a call when it is called without parameters (POST and PUT methods)

Improvements
[farms] Remove and modify backends using the nft mark
[farms] Apply deterministic order to farm listings (sorting alphabetically). Pull request from the github user brudo (William Bruce Dodson)
[farms] Do not control Access-Control-Allow_Origin header when the request is using the zapi key
[farms] Disable the HTTP parameter “ECDHCurve” by default
[farms] Add check to avoid port collision with l4xnat farms
[farms] Lock HTTP farm config file while a service it is being modified
[farms] Create a dummyTable to start the nf_conntrack module
[farmguardian] Add checks for “sip” and “redis”
[system] Restart web server when Zevenet is restarted
[system] Set the binaries path in the global.conf file
[system] Update system dependencies
[system] Expand error message
[system] Remove the zlb-stop and zlb-start files from the package and set them as templates
[system] Postinst refactoring
[system] Apply perltidy to code files
[system] Move logic from API to the library
[system] Remove completely iptables code and dependencies
[system] Export global.conf to bash scripts
[system] Set all log tags in lower case
[system] Check the uploaded backups before that stores it
[system] Change restart services for reloading them in cron tasks
[system] Move profiling logs to debug level 5
[system] Add more system information to supportsave
[api] Log the JSON input parameters
[api] Standardizer API calls for copying actions
[api] Improve the validation of the parameters
[api] Refactoring for farm module
[api] Returns an error if a sent parameter was not expected for the call
[api] Created a new call for getting system information
[cluster] Move the local configuration to a local directory
[networking] Add arp announce feature after any IP configuration
[networking] Masquerade traffic towards the backend with the parent interface of the vip

Bugfixes
[system] Fix an error of looping when a backup is applied
[system] Omitting commented routing tables in supportsave
[system] Fix typo in output message and logs
[system] nftables is not printed in supportsave
[system] Fix the regex for SNMP community and SNMP name parameters
[system] global.conf did not parse the variables with “update” tag
[farms] Error returning the ciphers parameter in HTTP farms
[farms] Error modifying the custom security ciphers parameter in HTTP farms
[farms] Missing farmguardian parameter in the HTTP farm
[farms] Solved a bug when parsing the file to add the backend in HTTP farm if the service has the same name as the farm
[farms] Fix helpers protocols for l4xnat farms
[farms] Force all protocol when setting all ports in l4xnat farms
[farms] Fix loading helpers for natting
[farms] Fix duplicated rules when the protocol is “all” in l4xnat.
[farms] Solved corruption of pound file when enabling TLS/SSL in HTTPS and it was already enabled
[farms] Fix the tag and mark generation per backend
[farms] Do not allow the ‘prio’ algorithm parameter for  l4xnat
[farms] Avoid flushing the entire ruleset
[farms] l4xnat farm stats does not return any backend if the farm is down
[farms] returns the backend down if the status is config_error
[farms] Fix an error in l4xnat stats with “snat”
[farms] Assuring that nftlb is stopped when performing a stop
[farms] Avoid the use of Expect in the curl request that can produce recv blocking
[farms] Remove regexp for HTTP redirect in HTTP farms
[farmguardian] Zevenet service script was not calling to farmguardian start
[certificates] Error in the certificate parameter 'issuer'
[networking] Group the routing rules by type
[networking] Reload routing rules when a farm or interface is modified
[networking] Fix an error setting an interface that was in the down interface
[networking] Allow creating VLAN without gateway
[networking] Solved bug when deleting a VIP
[networking] Solved error unsetting a nic that was not applied in the system
[networking] Create the nic config file if it does not exist
[networking] Improved ipv4 regexp
[networking] Do not allow to modify the interface used for management services (HTTP and SSH)
[system] Applying backup returns success on failure
[api] Change error code 400 for 404 when the certificate is not found
[api] API returns an error when it receives an array or a hash in the JSON parameter and it is not expected

Signed-off-by: Alvaro Cano <alvaro.cano@zevenet.com>
Signed-off-by: Emilio Campos <emilio.campos@zevenet.com>
Signed-off-by: Luis Valencia <luis.valencia@zevenet.com>
Signed-off-by: Laura Garcia <laura.garcia@zevenet.com>
  • Loading branch information...
alvarocano-zevenet committed Sep 11, 2019
1 parent ab93a9a commit 64db30215072f4ce9eaab06dc9482f381e35af92
Showing with 6,272 additions and 8,898 deletions.
  1. +2 −2 DEBIAN/control
  2. +22 −7 DEBIAN/postinst
  3. +3 −5 etc/init.d/zevenet
  4. +0 −1 sbin/supportsave
  5. +2 −1 usr/local/zevenet/bin/checkglobalconf
  6. +0 −163 usr/local/zevenet/bin/cpu-rrd.pl
  7. +0 −104 usr/local/zevenet/bin/disk-rrd.pl
  8. +0 −93 usr/local/zevenet/bin/factory_reset.sh
  9. +0 −127 usr/local/zevenet/bin/farm-rrd.pl
  10. +21 −17 usr/local/zevenet/bin/farmguardian
  11. +0 −108 usr/local/zevenet/bin/iface-rrd.pl
  12. +57 −101 usr/local/zevenet/bin/l4sd
  13. +0 −111 usr/local/zevenet/bin/load-rrd.pl
  14. +18 −0 usr/local/zevenet/bin/load_global_conf
  15. +0 −215 usr/local/zevenet/bin/memory-rrd.pl
  16. +23 −20 usr/local/zevenet/bin/nftlbd
  17. +53 −46 usr/local/zevenet/bin/supportsave
  18. +0 −81 usr/local/zevenet/bin/temperature-rrd.pl
  19. +37 −1 usr/local/zevenet/bin/zenbackup.pl
  20. +186 −79 usr/local/zevenet/bin/zevenet
  21. 0 usr/local/zevenet/config/.keep
  22. 0 usr/local/zevenet/config/local/.keep
  23. +0 −22 usr/local/zevenet/migrating/blacklists.pl
  24. +180 −0 usr/local/zevenet/migrating/interfaces.pl
  25. +19 −0 usr/local/zevenet/migrating/pound2zproxy.sh
  26. +18 −0 usr/local/zevenet/share/farmguardian.template
  27. +157 −41 usr/local/zevenet/share/global.conf.template
  28. +7 −3 usr/local/zevenet/share/{pound.cfg.template → proxytpl.cfg}
  29. 0 usr/local/zevenet/{config → share}/zencert-c.key
  30. 0 usr/local/zevenet/{config → share}/zencert.pem
  31. +2 −0 usr/local/zevenet/share/zevenet.cron
  32. +1 −1 usr/local/zevenet/{config/zlb-start → share/zlb-start.template}
  33. +1 −2 usr/local/zevenet/{config/zlb-stop → share/zlb-stop.template}
  34. +1 −1 usr/share/perl5/Zevenet/API31/Certificate.pm
  35. +13 −16 usr/share/perl5/Zevenet/API31/Farm/Backend.pm
  36. +2 −0 usr/share/perl5/Zevenet/API31/Farm/Get.pm
  37. +1 −9 usr/share/perl5/Zevenet/API31/Farm/Get/L4xNAT.pm
  38. +44 −62 usr/share/perl5/Zevenet/API31/Farm/Put/L4xNAT.pm
  39. +7 −1 usr/share/perl5/Zevenet/API31/HTTP.pm
  40. +15 −9 usr/share/perl5/Zevenet/API31/System/Backup.pm
  41. +16 −10 usr/share/perl5/Zevenet/API31/System/User.pm
  42. +68 −44 usr/share/perl5/Zevenet/API40/Certificate.pm
  43. +59 −71 usr/share/perl5/Zevenet/API40/Farm/Action.pm
  44. +77 −129 usr/share/perl5/Zevenet/API40/Farm/Backend.pm
  45. +49 −5 usr/share/perl5/Zevenet/API40/Farm/Get.pm
  46. +6 −48 usr/share/perl5/Zevenet/API40/Farm/Get/HTTP.pm
  47. +10 −24 usr/share/perl5/Zevenet/API40/Farm/Get/L4xNAT.pm
  48. +11 −11 usr/share/perl5/Zevenet/API40/Farm/Guardian.pm
  49. +27 −30 usr/share/perl5/Zevenet/{Farm/L4ipt/Validate.pm → API40/Farm/Output/HTTP.pm}
  50. +35 −39 usr/share/perl5/Zevenet/API40/Farm/Post.pm
  51. +37 −72 usr/share/perl5/Zevenet/API40/Farm/Put/Datalink.pm
  52. +257 −390 usr/share/perl5/Zevenet/API40/Farm/Put/HTTP.pm
  53. +139 −232 usr/share/perl5/Zevenet/API40/Farm/Put/L4xNAT.pm
  54. +68 −70 usr/share/perl5/Zevenet/API40/Farm/Service.pm
  55. +22 −8 usr/share/perl5/Zevenet/API40/HTTP.pm
  56. +19 −33 usr/share/perl5/Zevenet/API40/Interface/Gateway.pm
  57. +216 −109 usr/share/perl5/Zevenet/API40/Interface/NIC.pm
  58. +338 −247 usr/share/perl5/Zevenet/API40/Interface/VLAN.pm
  59. +45 −36 usr/share/perl5/Zevenet/API40/Interface/Virtual.pm
  60. +8 −3 usr/share/perl5/Zevenet/API40/Routes.pm
  61. +5 −4 usr/share/perl5/Zevenet/API40/Routes/Session.pm
  62. +33 −15 usr/share/perl5/Zevenet/API40/Stats.pm
  63. +36 −30 usr/share/perl5/Zevenet/API40/System/Backup.pm
  64. +90 −5 usr/share/perl5/Zevenet/API40/System/Info.pm
  65. +13 −17 usr/share/perl5/Zevenet/API40/System/Service/DNS.pm
  66. +11 −12 usr/share/perl5/Zevenet/API40/System/Service/NTP.pm
  67. +27 −18 usr/share/perl5/Zevenet/API40/System/Service/SNMP.pm
  68. +1 −1 usr/share/perl5/Zevenet/API40/System/User.pm
  69. +23 −0 usr/share/perl5/Zevenet/Arrays.pm
  70. +69 −23 usr/share/perl5/Zevenet/Backup.pm
  71. +98 −122 usr/share/perl5/Zevenet/Certificate.pm
  72. +24 −4 usr/share/perl5/Zevenet/Config.pm
  73. +3 −3 usr/share/perl5/Zevenet/Farm/Action.pm
  74. +2 −2 usr/share/perl5/Zevenet/Farm/Backend.pm
  75. +10 −5 usr/share/perl5/Zevenet/Farm/Backend/Maintenance.pm
  76. +44 −3 usr/share/perl5/Zevenet/Farm/Base.pm
  77. +95 −5 usr/share/perl5/Zevenet/Farm/Config.pm
  78. +8 −14 usr/share/perl5/Zevenet/Farm/Core.pm
  79. +1 −1 usr/share/perl5/Zevenet/Farm/Datalink/Action.pm
  80. +0 −15 usr/share/perl5/Zevenet/Farm/Datalink/Backend.pm
  81. +1 −1 usr/share/perl5/Zevenet/Farm/Datalink/Config.pm
  82. +7 −3 usr/share/perl5/Zevenet/Farm/Factory.pm
  83. +13 −13 usr/share/perl5/Zevenet/Farm/HTTP/Action.pm
  84. +49 −89 usr/share/perl5/Zevenet/Farm/HTTP/Backend.pm
  85. +64 −40 usr/share/perl5/Zevenet/Farm/HTTP/Config.pm
  86. +15 −11 usr/share/perl5/Zevenet/Farm/HTTP/Factory.pm
  87. +48 −23 usr/share/perl5/Zevenet/Farm/HTTP/HTTPS.pm
  88. +42 −34 usr/share/perl5/Zevenet/Farm/HTTP/Service.pm
  89. +5 −5 usr/share/perl5/Zevenet/Farm/HTTP/Stats.pm
  90. +0 −440 usr/share/perl5/Zevenet/Farm/L4ipt/Action.pm
  91. +0 −986 usr/share/perl5/Zevenet/Farm/L4ipt/Backend.pm
  92. +0 −1,205 usr/share/perl5/Zevenet/Farm/L4ipt/Config.pm
  93. +0 −94 usr/share/perl5/Zevenet/Farm/L4ipt/Factory.pm
  94. +0 −68 usr/share/perl5/Zevenet/Farm/L4ipt/Service.pm
  95. +0 −520 usr/share/perl5/Zevenet/Farm/L4ipt/Stats.pm
  96. +0 −1 usr/share/perl5/Zevenet/Farm/L4xNAT
  97. +1 −0 usr/share/perl5/Zevenet/Farm/L4xNAT.pm
  98. +136 −166 usr/share/perl5/Zevenet/Farm/{L4nft → L4xNAT}/Action.pm
  99. +282 −148 usr/share/perl5/Zevenet/Farm/{L4nft → L4xNAT}/Backend.pm
  100. +418 −178 usr/share/perl5/Zevenet/Farm/{L4nft → L4xNAT}/Config.pm
  101. +16 −10 usr/share/perl5/Zevenet/Farm/{L4nft → L4xNAT}/Factory.pm
  102. +177 −0 usr/share/perl5/Zevenet/Farm/L4xNAT/L4sd.pm
  103. +29 −13 usr/share/perl5/Zevenet/Farm/{L4nft → L4xNAT}/Service.pm
  104. +138 −48 usr/share/perl5/Zevenet/Farm/{L4nft → L4xNAT}/Stats.pm
  105. +208 −0 usr/share/perl5/Zevenet/Farm/L4xNAT/Validate.pm
  106. +11 −6 usr/share/perl5/Zevenet/Farm/Service.pm
  107. +37 −14 usr/share/perl5/Zevenet/FarmGuardian.pm
  108. +69 −13 usr/share/perl5/Zevenet/File.pm
  109. +5 −2 usr/share/perl5/Zevenet/HTTPClient.pm
  110. +53 −0 usr/share/perl5/Zevenet/Lock.pm
  111. +31 −5 usr/share/perl5/Zevenet/Log.pm
  112. +143 −86 usr/share/perl5/Zevenet/Net/Core.pm
  113. +319 −140 usr/share/perl5/Zevenet/Net/Interface.pm
  114. +102 −27 usr/share/perl5/Zevenet/Net/Route.pm
  115. +2 −4 usr/share/perl5/Zevenet/Net/Util.pm
  116. +44 −14 usr/share/perl5/Zevenet/Net/Validate.pm
  117. +6 −961 usr/share/perl5/Zevenet/Netfilter.pm
  118. +324 −0 usr/share/perl5/Zevenet/Nft.pm
  119. +24 −13 usr/share/perl5/Zevenet/SNMP.pm
  120. +93 −11 usr/share/perl5/Zevenet/System.pm
  121. +8 −8 usr/share/perl5/Zevenet/SystemInfo.pm
  122. +18 −30 usr/share/perl5/Zevenet/{Farm/L4nft/Validate.pm → Translator.pm}
  123. +322 −108 usr/share/perl5/Zevenet/Validate.pm
  124. +20 −1 usr/share/perl5/Zevenet/Zapi.pm
@@ -1,9 +1,9 @@
Package: zevenet
Version: 5.9.3
Version: 5.10.1
Maintainer: Zevenet SL <zevenet-ce-users@zevenet.com>
Architecture: amd64
Section: admin
Priority: optional
Description: Zevenet Load Balancer Community Edition
Zevenet is a Multilayered Aplication Delivery Controller (ADC) and high performance load balancer whith an easy configuration, usability and user-friendly web GUI for layer 3, 4 and 7 networking management.
Depends: rrdtool, libnet-netmask-perl, libproc-daemon-perl, libnetwork-ipv4addr-perl, librrds-perl, libio-interface-perl, libdata-validate-ip-perl, libpcap0.8, ntpdate, libfile-grep-perl, iputils-arping, openssl, unzip, libev4, libjson-perl, libjson-xs-perl, libcgi-session-perl, libauthen-simple-perl, libauthen-simple-passwd-perl, conntrack, liburi-perl, libtimedate-perl, libconfig-tiny-perl, snmpd, libnet-ssleay-perl, libnetaddr-ip-perl, libswitch-perl, libcgi-simple-perl, libunix-syslog-perl, monitoring-plugins, monitoring-plugins-common, net-tools, cherokee, pound, libregexp-ipv6-perl, nftlb, curl
Depends: libnftables1, nftables (>= 0.9.1), linux-headers-amd64 (>= 4.19+105), linux-image-amd64 (>= 4.19+105), rrdtool, libnet-netmask-perl, libproc-daemon-perl, libnetwork-ipv4addr-perl, librrds-perl, libio-interface-perl, libdata-validate-ip-perl, libpcap0.8, ntpdate, libfile-grep-perl, iputils-arping, openssl, unzip, libev4, libjson-perl, libjson-xs-perl, libcgi-session-perl, libauthen-simple-perl, libauthen-simple-passwd-perl, conntrack, liburi-perl, libtimedate-perl, libconfig-tiny-perl, snmpd, libnet-ssleay-perl, libnetaddr-ip-perl, libswitch-perl, libcgi-simple-perl, libunix-syslog-perl, monitoring-plugins, monitoring-plugins-common, net-tools, cherokee, pound, libregexp-ipv6-perl, nftlb, curl, zproxy (>= 0.1.0-5.10.1)
@@ -30,6 +30,9 @@ GLOBALCFT="/usr/local/zevenet/share/global.conf.template"
# upgrading global.conf
/usr/local/zevenet/bin/checkglobalconf

# load LB variables
source /usr/local/zevenet/bin/load_global_conf
load_global_conf

# Enable root access through SSH
SSHDCONFIG="/etc/ssh/sshd_config"
@@ -56,16 +59,24 @@ fi
sed -i 's/^\# Required-Start:.*/# Required-Start:\t\$remote_fs \$syslog zevenet/g' /etc/init.d/ssh
sed -i 's/^\# Required-Stop:.*/# Required-Stop:\t\$remote_fs \$syslog zevenet/g' /etc/init.d/ssh

# Restore already existing zlb-stop and zlb-start
if [ -f /tmp/zlb-start ]; then
mv /tmp/zlb-start /usr/local/zevenet/config/

## Create configuration files

# Move zlb-stop & zlb-start
if [ ! -f $zlb_start_script ]; then
cp $zlb_start_tpl $zlb_start_script
fi
if [ -f /tmp/zlb-stop ]; then
mv /tmp/zlb-stop /usr/local/zevenet/config/
if [ ! -f $zlb_stop_script ]; then
cp $zlb_stop_tpl $zlb_stop_script
fi

chmod +x /usr/local/zevenet/config/zlb-start
chmod +x /usr/local/zevenet/config/zlb-stop
# create Web server
if [ ! -f "$http_server_cert" ]; then
cp -rf $http_server_cert_tpl $http_server_cert
fi
if [ ! -f "$http_server_key" ]; then
cp -rf $http_server_key_tpl $http_server_key
fi

# Install check_uplink
ZBIN_PATH="/usr/local/zevenet/bin"
@@ -74,6 +85,10 @@ if [ ! -L ${LIBEXEC_PATH}/check_uplink ]; then
ln -s ${ZBIN_PATH}/check_uplink ${LIBEXEC_PATH}/check_uplink
fi

# Apply all migrating scripts to zevenet
MIG_DIR="/usr/local/zevenet/migrating/"
for SCRIPT in `ls $MIG_DIR`; do ${MIG_DIR}$SCRIPT; done

# Restarting zevenet service
echo "Zevenet will be unavailable while the service is restarting."
/etc/init.d/zevenet stop
@@ -1,8 +1,8 @@
#!/usr/bin/perl
### BEGIN INIT INFO
# Provides: zevenet
# Required-Start:
# Required-Stop:
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: zevenet
@@ -32,11 +32,9 @@
###############################################################################

$zenbin="/usr/local/zevenet/bin/zevenet";
$checkcfg="/usr/local/zevenet/bin/checkglobalconf";
$action=$ARGV[0];

if ( "$action" eq "start"){
my @run = `$checkcfg > /dev/console`;
my @run = `$zenbin start > /dev/console`;
exit;
}
@@ -50,7 +48,7 @@ if ( "$action" eq "stop"){
if ( "$action" eq "restart"){

my @run = `$zenbin stop > /dev/console`;
my @run = `$checkcfg > /dev/console`;
sleep(5);
my @run = `$zenbin start > /dev/console`;
exit;
}

This file was deleted.

@@ -41,7 +41,8 @@ my $tag = '#update';
unless ( -f $gc_fn )
{
copy( $gc_tpl_fn, $gc_fn );
exit 0;
my $err = system( "sed -E 's/;$tag\$/;/g' -i $gc_fn" );
exit $err;
}

open my $gc_tmp, '>', $gc_tmp_fn;

This file was deleted.

This file was deleted.

0 comments on commit 64db302

Please sign in to comment.
You can’t perform that action at this time.