diff --git a/.github/actions/build-rpm/Dockerfile b/.github/actions/build-rpm/Dockerfile index 375c652..8752030 100644 --- a/.github/actions/build-rpm/Dockerfile +++ b/.github/actions/build-rpm/Dockerfile @@ -6,6 +6,8 @@ RUN yum install -y libstdc++-*.i686 \ && yum install -y glibc-*.i686 \ && yum install -y libgcc.i686 +RUN ln -s /usr/bin/gcc /usr/bin/i686-linux-gnu-gcc + ADD entrypoint.sh /entrypoint.sh ENTRYPOINT /entrypoint.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index eb0b23c..fb0787e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ This project follows [semantic versioning](http://semver.org). -### UNRELEASED +### v2.3.0 (2021-12-23) - [added] Added build for armv5te (thanks to xek) - [added] Option to specify advertised addresses diff --git a/Cargo.lock b/Cargo.lock index bc332ef..a5e6beb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -569,9 +569,9 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" dependencies = [ "hermit-abi", "libc", @@ -962,9 +962,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" +checksum = "23a1dfb999630e338648c83e91c59a4e9fb7620f520c3194b6b89e276f2f1959" dependencies = [ "proc-macro2", "quote", @@ -1151,7 +1151,7 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "vpncloud" -version = "2.2.0" +version = "2.3.0" dependencies = [ "byteorder", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 211c37a..5b55c5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "vpncloud" -version = "2.2.0" +version = "2.3.0" authors = ["Dennis Schwerdel "] build = "build.rs" license = "GPL-3.0" diff --git a/assets/changelog.txt b/assets/changelog.txt index e008230..37b7518 100644 --- a/assets/changelog.txt +++ b/assets/changelog.txt @@ -1,3 +1,15 @@ +vpncloud (2.3.0) stable; urgency=medium + + * [added] Added build for armv5te (thanks to xek) + * [added] Option to specify advertised addresses + * [added] Peers now learn their own address from peers + * [changed] Changed Rust version to 1.57.0 + * [changed] Updated dependencies + * [fixed] Fixed problem with IPv4 addresses in listen option + * [fixed] Fixed periodic broadcast messages in switch mode + + -- Dennis Schwerdel Thu, 23 Dec 2021 20:41:00 +0100 + vpncloud (2.2.0) stable; urgency=medium * [added] Service target file (thanks to mnhauke) diff --git a/builder/Dockerfile-rpm b/builder/Dockerfile-rpm index d264e04..cf83632 100644 --- a/builder/Dockerfile-rpm +++ b/builder/Dockerfile-rpm @@ -20,6 +20,8 @@ RUN yum install -y libstdc++-*.i686 \ && yum install -y glibc-*.i686 \ && yum install -y libgcc.i686 +RUN ln -s /usr/bin/gcc /usr/bin/i686-linux-gnu-gcc + RUN useradd -ms /bin/bash user USER user WORKDIR /home/user diff --git a/contrib/aws/common.py b/contrib/aws/common.py index bb7e9fc..82d6ff5 100644 --- a/contrib/aws/common.py +++ b/contrib/aws/common.py @@ -292,7 +292,7 @@ runcmd: MinCount=self.node_count, NetworkInterfaces=[ { - 'SubnetId': self.subnet.id, + 'SubnetId': self.subnet, 'DeviceIndex': 0, 'AssociatePublicIpAddress': True, 'Groups': [sg.group_id] @@ -300,7 +300,7 @@ runcmd: ], Placement=placement, UserData=userdata, - KeyName='vpncloud-perf-test-keypair' + KeyName=key_pair.name ) for instance in self.instances: self.track_resource(instance) diff --git a/contrib/aws/measurements/2021-12-23_2.3.0_perf.json b/contrib/aws/measurements/2021-12-23_2.3.0_perf.json new file mode 100644 index 0000000..273bcd1 --- /dev/null +++ b/contrib/aws/measurements/2021-12-23_2.3.0_perf.json @@ -0,0 +1,165 @@ +{ + "meta": { + "region": "eu-central-1", + "instance_type": "m5.large", + "ami": "ami-099ccc441b2ef41ec", + "version": "2.3.0", + "duration": 622.5463161468506 + }, + "native": { + "iperf": { + "throughput": 9529265000.0, + "cpu_sender": 11.32918, + "cpu_receiver": 61.870429 + }, + "ping_100": { + "rtt_min": 0.046, + "rtt_max": 0.225, + "rtt_avg": 0.053, + "pkt_loss": 0.0 + }, + "ping_500": { + "rtt_min": 0.047, + "rtt_max": 10.98, + "rtt_avg": 0.054, + "pkt_loss": 0.0 + }, + "ping_1000": { + "rtt_min": 0.048, + "rtt_max": 0.175, + "rtt_avg": 0.056, + "pkt_loss": 0.0 + } + }, + "plain": { + "iperf": { + "throughput": 6388312000.0, + "cpu_sender": 16.955082, + "cpu_receiver": 72.705695 + }, + "ping_100": { + "rtt_min": 0.076, + "rtt_max": 11.973, + "rtt_avg": 0.09, + "pkt_loss": 0.0 + }, + "ping_500": { + "rtt_min": 0.08, + "rtt_max": 10.95, + "rtt_avg": 0.094, + "pkt_loss": 0.0 + }, + "ping_1000": { + "rtt_min": 0.081, + "rtt_max": 1.638, + "rtt_avg": 0.095, + "pkt_loss": 0.0 + } + }, + "aes256": { + "iperf": { + "throughput": 3801851000.0, + "cpu_sender": 5.826756, + "cpu_receiver": 61.612033 + }, + "ping_100": { + "rtt_min": 0.075, + "rtt_max": 0.9, + "rtt_avg": 0.093, + "pkt_loss": 0.0 + }, + "ping_500": { + "rtt_min": 0.079, + "rtt_max": 0.275, + "rtt_avg": 0.091, + "pkt_loss": 0.0 + }, + "ping_1000": { + "rtt_min": 0.08, + "rtt_max": 1.015, + "rtt_avg": 0.093, + "pkt_loss": 0.0 + } + }, + "aes128": { + "iperf": { + "throughput": 3880325000.0, + "cpu_sender": 6.219277, + "cpu_receiver": 62.125445 + }, + "ping_100": { + "rtt_min": 0.077, + "rtt_max": 11.656, + "rtt_avg": 0.09, + "pkt_loss": 0.0 + }, + "ping_500": { + "rtt_min": 0.08, + "rtt_max": 0.211, + "rtt_avg": 0.095, + "pkt_loss": 0.0 + }, + "ping_1000": { + "rtt_min": 0.082, + "rtt_max": 1.398, + "rtt_avg": 0.095, + "pkt_loss": 0.0 + } + }, + "chacha20": { + "iperf": { + "throughput": 3126447000.0, + "cpu_sender": 5.113819, + "cpu_receiver": 58.58095 + }, + "ping_100": { + "rtt_min": 0.079, + "rtt_max": 0.271, + "rtt_avg": 0.091, + "pkt_loss": 0.0 + }, + "ping_500": { + "rtt_min": 0.083, + "rtt_max": 0.272, + "rtt_avg": 0.098, + "pkt_loss": 0.0 + }, + "ping_1000": { + "rtt_min": 0.087, + "rtt_max": 1.615, + "rtt_avg": 0.101, + "pkt_loss": 0.0 + } + }, + "results": { + "throughput_mbits": { + "native": 9529.265, + "plain": 6388.312, + "aes256": 3801.851, + "aes128": 3880.325, + "chacha20": 3126.447 + }, + "latency_us": { + "plain": { + "100": 18.5, + "500": 20.0, + "1000": 19.5 + }, + "aes256": { + "100": 20.0, + "500": 18.5, + "1000": 18.5 + }, + "aes128": { + "100": 18.5, + "500": 20.5, + "1000": 19.5 + }, + "chacha20": { + "100": 19.0, + "500": 22.000000000000004, + "1000": 22.500000000000004 + } + } + } +} \ No newline at end of file diff --git a/contrib/aws/performance.py b/contrib/aws/performance.py index 15d7f8e..565421b 100755 --- a/contrib/aws/performance.py +++ b/contrib/aws/performance.py @@ -8,14 +8,14 @@ from datetime import date # Note: this script will run for ~8 minutes and incur costs of about $ 0.02 FILE = "../../target/release/vpncloud" -VERSION = "2.2.0" +VERSION = "2.3.0" REGION = "eu-central-1" env = EC2Environment( region = REGION, node_count = 2, instance_type = "m5.large", - use_spot = True, + use_spot = False, max_price = "0.08", # USD per hour per VM vpncloud_version = VERSION, vpncloud_file = FILE,