diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..9ae342b
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,10 @@
+language: python
+python: "3.4"
+before_install:
+  - sudo apt-get install iputils-ping checkinstall
+  - wget https://www.linuxlounge.net/~martin/icvpn/nmap_6.47-1_amd64.deb
+  - sudo dpkg -i nmap_6.47-1_amd64.deb
+install:
+  - pip install -r .travis_requirements.txt
+script:
+  - sudo bash -c "source ~/virtualenv/python3.4/bin/activate && scripts/check -s ./hosts/"
diff --git a/.travis_requirements.txt b/.travis_requirements.txt
new file mode 100644
index 0000000..e33c53f
--- /dev/null
+++ b/.travis_requirements.txt
@@ -0,0 +1 @@
+python-nmap
diff --git a/README.md b/README.md
index 40e50e0..80c3a70 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,75 @@
-This repository holds IC-VPN keys and configuration.
+[![Build Status](https://travis-ci.org/freifunk/icvpn.svg?branch=master)](https://travis-ci.org/freifunk/icvpn)
+
+This repository contains the tinc hosts for ICVPN-Peers and several helper scripts.
+
+## Setup
+
+This network requires the use of the Tinc VPN Daemon. You should use at least version 1.0.24 or higher, also the
+current pre-release version 1.1pre11 seems to work just fine.
+
+### Clone the repository
+    # cd /etc/tinc/
+    # git clone https://github.com/freifunk/icvpn.git
+    # cd icvpn
+    # cp scripts/post-merge .git/hooks/
+
+### Create your tinc configuration
+
+Open your favorite editor and create the /etc/tinc/icvpn/tinc.conf.
+
+    Name=entenhausen1
+    Mode=switch
+More options can be found through
+
+    # man tinc.conf
+Afterwards create a keypair with tincd.
+
+    # tincd -n icvpn -K
+Hint: In version 1.1 this option was moved to the tinc binary and is called <code>generate-rsa-keys</code>.
+
+### Execute post-merge hook
+This step is necessary to populate your new configuration with infos about the metanodes.
+
+    # ./.git/hooks/post-merge
+
+### Set up a cronjob to update the repository in regular intervals.
+
+    # crontab -e
+and insert for example
+
+    @daily cd /etc/tinc/icvpn/; git pull > /dev/null
+
+## What are meta nodes?
+
+Tinc has a ConnectTo configuration option that describes which peers on startup to connect *and* sync metadata to.
+
+Until now (2015/4) we had roughly 74 nodes, and every node connected to each other (full mesh). Tinc however 
+does not scale this way, because on each connect and disconnect all ConnectTo-lines are being notified of this
+and then notify their neighbours again. Many smaller nodes seemingly could not handle the amount of metadata generated 
+by this which resulted in TCP Zero Windows. They then disconnected, and reconnected, producing more metadata in
+the process, which was followed by even larger nodes queueing up metadata, which resulted in all nodes taking
+a massive cpu and memory hit. Memory usage of up to 1.5GB was spotted, accumulated in less than 12 hours.
+
+However for tinc to build its network graph it is sufficient, if all nodes only exchange metadata at a few nodes,
+which results in much less strain on the whole network. This is why we now use meta nodes, which are defined in
+the `./metanodes` file.
+
+Criteria for the selection of meta nodes are:
+
+1. autonomous system diversity
+2. community diversity
+3. ample resources (cpu, memory, traffic)
+
+When data needs to be transferd between two nodes, this will happen indepently of those meta nodes. Through the shared
+network graph a direct transfer is possible and will be tried: at first via UDP, then via TCP, then indirectly. While
+indirect routing is possible the meta nodes are not required to provide forwarding for those packets.
+
+## Contact
+
+The maintainers can be reached at
+- [icvpn@lists.funkfeuer.at](mailto:icvpn@lists.funkfeuer.at)
+- [irc.hackint.org #icvpn](irc://irc.hackint.org/icvpn)
+
+We have set up IRC notifications for all repositories concerning the icvpn network.
 
-For more Info see http://wiki.freifunk.net/IC-VPN
 
diff --git a/hosts/Treuenbrietzen b/hosts/Treuenbrietzen
deleted file mode 100644
index 3bc18a0..0000000
--- a/hosts/Treuenbrietzen
+++ /dev/null
@@ -1,6 +0,0 @@
-#Address = shonyt.mine.nu
------BEGIN RSA PUBLIC KEY-----
-MIGJAoGBANbR3LhhWFNt9ak//ZTReEuNQHjibgTAM+cNTDwLevudrP3y9htxTzgF
-UZDHnkbDqwrYNjnuaMLIik7ljj5aKQd+fXmv3S+sFvvaPnm+e7Fpt+r/ReTnS6su
-iOdmQ7XgC/b6r5ISjGhSheHcVSNMmbDWwYISSpDTu9S5qcUAkp1jAgMBAAE=
------END RSA PUBLIC KEY-----
diff --git a/hosts/aachen1 b/hosts/aachen1
new file mode 100644
index 0000000..422c043
--- /dev/null
+++ b/hosts/aachen1
@@ -0,0 +1,10 @@
+Address = icvpn.nodes.freifunk-aachen.de
+Port = 1655
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAoGeD5b1HKW2UAFpIPayxsOOYx5qC0oHrJnvcPH33jnDBGiOYJ9ma
+QZErWdF0Qsnqh/wJE6i569fzKWOUdLHrN5dVzD/Q5zjMOwJf3rmcerS0oAFTxKDj
+pkw2kKcLA/lSNMIN//W66mM258BLo1XgEraUx5RcJ4hTxawhNTn0NTJVCbfUX6e5
+tcJpbgbYRzBTUPdSL3OB8k0qlmFI2ZYTnCzOSpgxRQARIB1ecoqOYVxQISK2pzxi
+MHQQlVbquwldaKiVoj7tD7PFW4oQxpiMHZnHIA6dnZCsT3ktTOzCjhf2XMi8o8u5
+P9C5dYrmVWrVAWQznlbuq/w1z+PrTYquoQIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/amsterdam1 b/hosts/amsterdam1
new file mode 100644
index 0000000..a152aa4
--- /dev/null
+++ b/hosts/amsterdam1
@@ -0,0 +1,9 @@
+address = 195.169.146.33
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAuksyHS3OGQUUS7hVItJZGHK/RDeOzuSyqmi7jbVv+0/IfRLU/mt+
+kz/wMz2O/UDxyR84wmrLTVdt8TYnOaFBrlNdMGz3k2HjbZc0UxZpKxHMYR4US6Ab
+vLApHSxXK44c16wcWDhQB9yHqM3GdMTdbxuKV60qclulHuI9wHkxDtn1qb1dEkbv
+2rF2ldfZnNCZ7ktQ1Pnnkv9lOhT1WK8Ye2Sbl+V7klK7leRfE/eTM5e1KP4Zlf62
+iecoBCzFKCAk3Zw88Sv9IlkVG1ZgO8rdZPH7Bb461XH4W0gO9BANg2/SnW0Hlnyp
+Ye2Bh+oGwQTlxjxN44nKOcornozC8kZUuwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/augsburg1 b/hosts/augsburg1
index 3550946..2645f91 100644
--- a/hosts/augsburg1
+++ b/hosts/augsburg1
@@ -1,5 +1,4 @@
 Address = augsburg1.icvpn.augsburg.freifunk.net
-Address = 109.163.229.249
 -----BEGIN RSA PUBLIC KEY-----
 MIGJAoGBALVQaY0axASCewZdfMPbxUBwphhoDHKzm0SvpietNy0gy+43Jb+N/Cs+
 d9l9HlAS2ngrCAahVm/GRA3iYHH2i5JdZnzxPFKdkefcZFz7x0ZDaqeqpb2YLWFs
diff --git a/hosts/augsburg2 b/hosts/augsburg2
index ea73a25..4e71c79 100644
--- a/hosts/augsburg2
+++ b/hosts/augsburg2
@@ -1,4 +1,4 @@
-Address = augsburg2.icvpn.augsburg.freifunk.net
+# Address = augsburg2.icvpn.augsburg.freifunk.net
 Address = augsburg2.icvpn.freifunk-augsburg.de
 
 -----BEGIN RSA PUBLIC KEY-----
diff --git a/hosts/badzwischenhahn1 b/hosts/badzwischenhahn1
deleted file mode 100644
index b5ae63c..0000000
--- a/hosts/badzwischenhahn1
+++ /dev/null
@@ -1,7 +0,0 @@
-#Address = ffbz.ath.cx
-#Port = 655
------BEGIN RSA PUBLIC KEY-----
-MIGJAoGBAMlCF8Yj3adfH6Mssc7J59CMIzO4ZTa4meHXDaGWHXzGIMnUWRUlLIfp
-7sa/uJ4U9iQU3ZEwv1cPWweDvWrG1HNL+oJEVv7xQWcBXaYnm0le305qom0E0U5U
-cMt+yNZWTh2KfgJjGB78FuOas1yiGpVPnV2wAGgzREKgmiXTOzZnAgMBAAE=
------END RSA PUBLIC KEY-----
diff --git a/hosts/bayreuth1 b/hosts/bayreuth1
deleted file mode 100644
index 8930844..0000000
--- a/hosts/bayreuth1
+++ /dev/null
@@ -1,10 +0,0 @@
-Address = freifunk-bt.criede.de
------BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEAppgeP431r3K4cgy9s1XUB/+SEb9F64Y9q34jxjwRssIaFx+mtukr
-JDLFtRNNTi7ao+kL3s1OBhavCeKwYSFAlaQnIm7fLwKwhJiIZwnKVM26SJPUwPfP
-pQZkEv8e5boFCEhsSGcLGLineG/TUDYa1cfwKL0kUc7KiTczm/2w5FQhiqUEc/Cj
-espO57hhzoI6Ian1PIFXjpRceTRvrBxFyg5p6uNRGENa3o0Ixf2u3MT2DuCAzbW8
-ndAsnqUz3uggc1scoy4/mMoFDEXfWkF6wbnpNAwEpnaDDgMI1eUgivuphiJOkqcW
-C3hHDdGbYQ+zKqukqvGjcKTbMjLzOLnL+wIDAQAB
------END RSA PUBLIC KEY-----
-
diff --git a/hosts/bielefeld2 b/hosts/bielefeld2
deleted file mode 100644
index af6ab59..0000000
--- a/hosts/bielefeld2
+++ /dev/null
@@ -1,10 +0,0 @@
-Address = vpn2.freifunk-bielefeld.de
-
------BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEAuNUlmNeftDUvk7FAJFvX7XwI9CYnEpdU7TD3waeE6ZbU1mSW0d+n
-9MUArA1iprh9UlPchGrkluIV6lX1XaVYzeXy4HVtf5nLUBssCnbBN8T1PE2qD0rS
-pYKQEc/C1fuGLx07uzKHpz9PufOZQrmiRzoAciZBRZ0y16wtkO5aKV+cHawnnaP2
-rzKeNIKq+XvusalDf0gftr0znivFeHZk7C2XzZ27HjJGcZM8k/xtMiCfMVo6NpZX
-s9hkCrbT6vKtTVWCdAMcZAk0taF8eTPxkRoMMADExeXcoQXIxazvfdV0z+ou/2it
-5X3PohGtF70ZoT98OT2s3xETCea1JyOyDQIDAQAB
------END RSA PUBLIC KEY-----
diff --git a/hosts/bielefeld6 b/hosts/bielefeld6
new file mode 100644
index 0000000..e56f24c
--- /dev/null
+++ b/hosts/bielefeld6
@@ -0,0 +1,12 @@
+Address = vpn6.freifunk-bielefeld.de
+Port = 655
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAwzVXJJ1/BjwV4SgXxfCJ1xpYp7mrioNBbCk9ea+J5oZs79GM3Jqo
+BHuW8QxL/x75OskFAHAlVrlLGZzoE6RtlvzIqiKesVcOuSskyt0E7r+wqltSxu4N
+tbyDRVUOkAHTwQ0zEPMPy1HJhD8SmA3m4oHPjGYdAAQztrKB2CSnP/2P29lxllLr
+OPcQt6/UN1/OcbuzHnrPSOFGxyb4Ir2FRWxiCRGjqI3QQ/ci2wfEnKsqaG/OH5nr
+gojUGkx6XT9L5Rp5cP+Xdiwr+k7J6Snnx7ZEdpdVW43sfzjJinrR1Kp4w+NgE3XS
+FFevHmSj5pMO+YHYucDKepreqSgHqwexvQIDAQAB
+-----END RSA PUBLIC KEY-----
+
diff --git a/hosts/braunschweig1 b/hosts/braunschweig1
index 7fbe162..5867751 100644
--- a/hosts/braunschweig1
+++ b/hosts/braunschweig1
@@ -1,4 +1,4 @@
-Address = gw1.freifunk-bs.de
+Address = gw3.freifunk-bs.de
 Port = 655
 -----BEGIN RSA PUBLIC KEY-----
 MIIBCgKCAQEA1SlHQTdW8wnYWpSRwZWx5BHOHm+0WzZNN96edmUqAi5hrVQwVCeI
diff --git a/hosts/bremen1 b/hosts/bremen1
index 25b6df6..31916c3 100644
--- a/hosts/bremen1
+++ b/hosts/bremen1
@@ -1,12 +1,11 @@
 Address = vpn01.bremen.freifunk.net
 Port = 656
 
------BEGIN PUBLIC KEY-----
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy2FfayKB0nuggl/B9Lff
-lLAWf92KPDtmJt6un1nRylX99n1yTatnnzW9r4dv7oDKJVEGxOe9d17CIg0l/lQQ
-UDC0sBJmB+JLQE8INHASQPcRbQVvlRrq+jVSUbpezA8H4W/FDc0kyERJG4zHAW4b
-Om0c8ndFZBU2eMXTyaeFZ5gi6AETZ+GAOt3BGP3lhzVMIotnSf5Mm1q5EOejjlND
-dsz3Fsn3ScWgVeUCjwWK1xs/jg5+pa90he/eqO+DmihxDA0006YBnQcA0kiprjK2
-k6Jo8J1KWD8G3m0XvWOu9z15WAKvkNSw96h28eGefsgQP+XEpEE9aWGcbuj88ycK
-dwIDAQAB
------END PUBLIC KEY-----
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAr7aAgyRdDjTjJyUhHaPd8aZIybNvi+paDKwkRJFUEHybsSsZs8pl
+mJl+wFFn3sW3y6R7th1iVSqHDU85KYpy7CemKcHRo0VVl0OayToKQGUc9wuUkjM2
+XIpZ6WxJ2+B918780dFA5esdeigSTXnKABt80wllLmBumiumj6fGQnzXOFMfyWSI
+TlpW77EQqZY3uXGlZjbzmCbzmspbldHZKwUBr1f8GW6pdeMzEeptg/5nVLLu0rG+
+o+rXQuU2GxJXd6OwrIWEzLCpxbRNqZ6Xo2o1U4Mc3vrKv7yQ61xY/hYB7BLU89Dz
+tTNXWxy4cm/xYdxmCBStzWGwNRndqNY7fwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/bremen3 b/hosts/bremen3
new file mode 100644
index 0000000..c9c4369
--- /dev/null
+++ b/hosts/bremen3
@@ -0,0 +1,11 @@
+Address = vpn03.bremen.freifunk.net
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAxWLy8tG8W3nV3o7fsm/oD+XwFW2qgGNRDRDiTPGmBNrHVGVCH8cI
+s2Gpeu226x803dukxmrKXZskLBf5oCWxtI5wrxhkiIrb21RkODrMzQcKvOJ3pOGk
+7GekS8WvhxuMAJEKnWiJIS9T3kcGUTMIETSvlWeG/SWkpVr2oFjD87LX+WDCOW/d
+arHyu8xH4XpVaDeKwUHlDz3/QQjI4bOa2UvqmebkdkhX/uWd/hNTdpzUYwghPtPx
+VNlKqeh+NSibYuep/VSoxFx8UHFu083nB2gNTF+b4apjB/4d2iFUMM/Mpgi+lYQ1
+8ksoTu8C3e8KFhp4oP3GLlRuQ2QY+o4RpQIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/bremen5 b/hosts/bremen5
new file mode 100644
index 0000000..74c8b32
--- /dev/null
+++ b/hosts/bremen5
@@ -0,0 +1,11 @@
+Address = vpn05.bremen.freifunk.net
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAyMFsxTq0jV63n3m3miKKCfW3NtDiUgY7P8piZWZIudx4/PFr96px
+M2OlB5H6g70Fj6MiSFZ9Hnb2mtBjhT7bBBfMnBl1WNeH6vUJh0vQ1G02cQDJkPzd
+Ir9djg2jFDkh3NkA/gt0ZbQiqFXAdbLfU8wJvDUe35hocU7K+4y4ZQ9G95zmh62c
+wmiAZoQmZHZBZaeMyACMtnEncY4onefJrK973+5W2LguSIzbpohyOCmtZaSy/3ei
+oxzNvQW4mmJz3f4+dbJ1FEwTRdgfvIPIDT42UgZAQQLn8+iXOf45ghCOi7ef4ZLb
+pdEHfufyIHaJX95hOedbmtJCOHc12nT3qQIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/hamburg31 b/hosts/camp2015
similarity index 88%
rename from hosts/hamburg31
rename to hosts/camp2015
index 2498972..5de4135 100644
--- a/hosts/hamburg31
+++ b/hosts/camp2015
@@ -1,5 +1,4 @@
-Address = 31c3.icvpn.hamburg.freifunk.net
-Port = 656
+Address = camp.icvpn.hamburg.freifunk.net
 
 -----BEGIN RSA PUBLIC KEY-----
 MIIBCgKCAQEAwxJL8dxTEgfM/oSOzZivDL2NxOtplh6yCusY+cbH5u+x1aRWhfbe
diff --git a/hosts/castrop1 b/hosts/castrop1
deleted file mode 100644
index b2e0df1..0000000
--- a/hosts/castrop1
+++ /dev/null
@@ -1,10 +0,0 @@
-#Address = ffcas.no-ip.info
------BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEAr1d6XRKMLgt853J8qxguOb017hjVSB4LNWKiLEXk1K5B4sPBP3Sj
-6/3PjI38dbZsmWqOV6azMmqTeBjBKt1Ii02sfrIB0hc3JuwcCeLLrPtmxUWCIXon
-pA0gv1mstM5BY4HLgfH9h9iwtTQ80k3BaTz5/Wcn3i3tRm/MLeXKNIRbIYLGxmyQ
-aSE4QJCnWPXxW+FoKRY6u4jAmYeVi+OyF3Hg9HnVvsBV3AeQ4Ptb90Pkr76udN4D
-W5rEIJelvAT2bMGlCZgowtCEgEAVqI2YHujndHemsUv/ApYR1xwKWRB/df9O8Fpr
-HqdYAjpMtYoGfBj0UhulKZtHpM06LGDZNQIDAQAB
------END RSA PUBLIC KEY-----
-
diff --git a/hosts/darmstadt1 b/hosts/darmstadt1
index a0d26c8..f843846 100644
--- a/hosts/darmstadt1
+++ b/hosts/darmstadt1
@@ -1,4 +1,4 @@
-Address = gw01.icvpn.darmstadt.freifunk.net
+Address = gw03.darmstadt.freifunk.net
 
 -----BEGIN RSA PUBLIC KEY-----
 MIICCgKCAgEAsFBR3wzdRoFXDy38HQtlYDKHvsbY99fUkPZXxg5v3dBGIfWDWMBR
diff --git a/hosts/darmstadt2 b/hosts/darmstadt2
index 80e3f39..9c8a2e6 100644
--- a/hosts/darmstadt2
+++ b/hosts/darmstadt2
@@ -1,4 +1,4 @@
-Address = gw02.icvpn.darmstadt.freifunk.net
+Address = gw04.darmstadt.freifunk.net
 
 -----BEGIN RSA PUBLIC KEY-----
 MIIBCgKCAQEAuohUruR8enzVN1IswdzMuf8f3rY2HOK/yByItBcMHM9b4HMe6Jt6
@@ -8,3 +8,5 @@ RW9lc+6XTrDv3I6XdNTe0Nj9XRkdoUxzJXQfLHLUx/ynymD7w1325cf5JAVTW8YK
 gZvUSZ+irwenMIc+qTv00z8THPQaB0wMoOfgEe8cA85sBxkAj8cOMzoiuUxjgk7/
 WSejxCFFpXe6uXLtdWKNAPWoYUq3EXNqrwIDAQAB
 -----END RSA PUBLIC KEY-----
+Ed25519PublicKey = OpGqPZB8LMeTamFWVz/h1y5CBnD8al35G2f3u+0hxMP
+
diff --git a/hosts/diac24_sbc b/hosts/diac24_sbc
deleted file mode 100644
index 0c0fdae..0000000
--- a/hosts/diac24_sbc
+++ /dev/null
@@ -1,6 +0,0 @@
-Address = sbz.icvpn.diac24.net
------BEGIN RSA PUBLIC KEY-----
-MIGJAoGBAN8O1i0kkDsktLuFbL01x/Mj47KtTMQUm373NthJoYeuxh7Uc8eud0E3
-FoZBcMCn7LKRvLh8HH83re+SAeplZ5nFqYLBEIZtonhRlP+bnIQDjGCwTaXXp2ew
-m8ZAPA1TPRl6e3ZzJw7CvGZrsiKfwwNUaEp/AIrdJ3p55fUehiFNAgMBAAE=
------END RSA PUBLIC KEY-----
diff --git a/hosts/diac24_sbz b/hosts/diac24_sbz
deleted file mode 100644
index 0c0fdae..0000000
--- a/hosts/diac24_sbz
+++ /dev/null
@@ -1,6 +0,0 @@
-Address = sbz.icvpn.diac24.net
------BEGIN RSA PUBLIC KEY-----
-MIGJAoGBAN8O1i0kkDsktLuFbL01x/Mj47KtTMQUm373NthJoYeuxh7Uc8eud0E3
-FoZBcMCn7LKRvLh8HH83re+SAeplZ5nFqYLBEIZtonhRlP+bnIQDjGCwTaXXp2ew
-m8ZAPA1TPRl6e3ZzJw7CvGZrsiKfwwNUaEp/AIrdJ3p55fUehiFNAgMBAAE=
------END RSA PUBLIC KEY-----
diff --git a/hosts/diepholz1 b/hosts/diepholz1
new file mode 100644
index 0000000..10547c2
--- /dev/null
+++ b/hosts/diepholz1
@@ -0,0 +1,10 @@
+Address = gw1.freifunk-dh.de
+Port = 655
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA3SOeCXMYhCyoBXd4LhJDEdq8afDcdT2+kX+8Cnv5HHMWfKv0PodZ
+1zwPl04D3e7MJ+F73YXOIV6zAdEpwXMW6h15qg3r5vL+ZPKY/ywYnb3c1CIOe2C8
+2rJoo9ynjJJt3rbrSc2qOkKFcEfSZWPn2cs9IiaX/tgZaPwpc/KDjPQ5kQ9AwVJk
+2jMhuBHQClPUw/szHwkultrkRehQ7+H/lq7VMXdxfBHBh6Vtk6KX6N8S7NXYcKbG
+Gk52yzLnlmGLxqJbPBBg68o54EEPsS9HUe4oKRkhYoHduQu3OTL4oFZTTXqVmaxB
+JSXyXDFbJPMPNoSsC2F2D9bfPswIfH/efQIDAQAB
+-----END RSA PUBLIC KEY-----
\ No newline at end of file
diff --git a/hosts/dreilaendereck3 b/hosts/dreilaendereck3
deleted file mode 100644
index bf28c61..0000000
--- a/hosts/dreilaendereck3
+++ /dev/null
@@ -1,11 +0,0 @@
-Address = gw3.freifunk-3laendereck.de
-Port = 656
-
------BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEAriAC3ChanNKtXgp/Eu0EcTJTeAM8yp1D35SOM89hVgygYmy4woC0
-CEx6SbVFnwzL4Rar4+c4XXCDLq74AsHjTe7ulzvSDJ/acSoOVsXZ0Wnb5QUFYDlL
-ue/2dp9TNHNRl/27OjBL+5fQM4LBvdImBJFKxuYtJc5ApB12LAIAx2y5FS0mp2rT
-k2+HDZgaxanlUf6ecaFp8H7A5LiITig8nHUa9/0J5U5Q4ZzYoSnjQKiOKvaOWKX/
-RydUCrZyiyVl12tlEc/FcT//zj7XrNE8oHC9LaUWb6masCCzv0WR5Ck5XX3yC+/m
-gsvjMK7c1I/tFjUQE07MO68qXCX2zzV14QIDAQAB
------END RSA PUBLIC KEY-----
diff --git a/hosts/dreilaendereck4 b/hosts/dreilaendereck4
new file mode 100644
index 0000000..5790296
--- /dev/null
+++ b/hosts/dreilaendereck4
@@ -0,0 +1,11 @@
+Address = gw4.freifunk-3laendereck.net
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA6ijzZkaqqEHOazFRzCPesuCTUCAtgVa3JrBm2R5cb2rLuDQDmqQm
+O8zqlj3rM8cBRGexRz/2F9FNxQcEhfPmowiigGlDXW6rzcFDWeGl7w4rn75rP3a+
+gfmbSOmRLG/dvghDRceDEbr6MU7DlCOgHjaz+WdHmJWR0gnlnQJLqMa1RgPN24GK
+orq8h158645pDbX/wJCNdBB81X4kgJOjWJF+ic2qbF0iuUKt1689QJnn6Mo+9T5y
+K+xt9c5XlgqqD4UxP4JF66ctoN8aBscPFOEZfUjujNqvKhCWbhal13EHM9dCEnQA
+1Myf7sRdaLvMpKsvSESMfl588I/XulszMwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/ehingen1 b/hosts/ehingen1
deleted file mode 100644
index 3c7d3ae..0000000
--- a/hosts/ehingen1
+++ /dev/null
@@ -1,11 +0,0 @@
-Address = gw01.freifunk-ehingen.de
-Port = 656
-
------BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEAz1zcs2ZgiZRLVXQyqYXKD3+dx7imqN/cmJ6CYoSfxjesslWaS+qG
-29YH+U7qXSDgRyjVtdXdVHIa9dYSKff292H7yzX3LbHPsUEeq5kAAqqieTIsRYoI
-6QeUTYkfSuvkqmAe1zUmC5fcf8BRSu2YUHSWhM5Lu9ulWzXuKYoipnXgqQzVz67w
-3DnYEx/DEAxn4LKagOpUq+l9OzChOtMWeW1/MSCaEhm7VLYaY9YITdhb5U61PB7F
-fdv/77AhRBjL6zfNX6M9ZookKukAz3KHme5EzDYXVA4CiyBN+HMzgCYHbqopOiVZ
-BGjNAeO8FjAkBwn5Os608LOSocOEVz9KDwIDAQAB
------END RSA PUBLIC KEY-----
diff --git a/hosts/erfurt2 b/hosts/erfurt2
new file mode 100644
index 0000000..06a2a65
--- /dev/null
+++ b/hosts/erfurt2
@@ -0,0 +1,11 @@
+Address = ffef.securegate.eu
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA0R+JEwwaxHJZsTlxTjpwDIjrSvbG6yCkeGO/zablrIdnoctZHgNQ
+vcDvuSWeTThBvk7FVuOkgVbpcqTnDNzBNetV1SzpnQTG3yWJcADZtkt7oyEhkvV0
++fJN4eALaOJT1d1PVROcLyCVjBIP5m+d9rImLRQK0tzQnLWofuqDLxzYm8UjK2Df
+hZ4cHQNi0r8EPzQPzLjcz3YmYO6iJ1s27F6iXd16uBCoAX2y4QdSauHQiijah5bf
+laM3ZD8ry9Sgrxngz169ybp3yB7l37IPWhVRHy+OISY4z2G5IMEnwkeS+P8eM36X
+ZG//Jc/joqqHszKLUAL1zpfNVqygHs06fwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/ffhallevpn1 b/hosts/ffhallevpn1
index 56f0b31..2d3728f 100644
--- a/hosts/ffhallevpn1
+++ b/hosts/ffhallevpn1
@@ -1,5 +1,5 @@
 Address = vpn1.freifunk-halle.de
-Address = 88.198.51.136
+# Address = 88.198.51.136
 Port = 655
 -----BEGIN RSA PUBLIC KEY-----
 MIGJAoGBALF/Wu4pe+f3dHeLYApHxUnOGUBzpNREUet6nDp80uWT/dph7h6Yqtz2
diff --git a/hosts/flensburg1 b/hosts/flensburg1
deleted file mode 100644
index 49f9fe1..0000000
--- a/hosts/flensburg1
+++ /dev/null
@@ -1,10 +0,0 @@
-Address = fl1.icvpn.freifunk-flensburg.de
-Port = 656
------BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEAv9Ow8Vkxo03MaYxxpdjQ1/tce2BgyON3+HkHd7/s90wovB6kkFpY
-jL+c6nqN8kIBPhAw4Ibz6HmwUm6GIgappkwI2B81TTfrF2k4LR0NX+Nbyw2UqpnF
-mt4O4ZRDBoRPRJxyXHgxLox0/VqEH+F044nO5DVaCJihlDDVnmjqvdvazBLjsTrX
-d08gPKkyD/VdUMaX6d5eZOfxzRiPYMpZE0rWMzQc+n1kvw1DXfk/jhawqf4ZpaH3
-TD/DGzeuXnDjL2IxMYXHABdfZUug2r7eoP38UM7jVop32SVXQO95gBDs5hTzp9Wh
-JdSYnxO3HgIRb+0g3a7Aq9KBBlQ6xCfZjwIDAQAB
------END RSA PUBLIC KEY-----
diff --git a/hosts/franken1 b/hosts/franken1
deleted file mode 100644
index 6c17f03..0000000
--- a/hosts/franken1
+++ /dev/null
@@ -1,6 +0,0 @@
-Address = gw1.fffranken.de
------BEGIN RSA PUBLIC KEY-----
-MIGJAoGBAL7Zdz7fpxIkUm8hvxK0Qm+iS11d9AN1BmjLrMZU9nlUwf+NTNIX94Ng
-XV1GINi9U/RF6j35JAyt6Y2K7C3BjHM2Zl8rm2ya2lhvoKhsDJTe1x07BnhamzEs
-k0xufslEH9ZatR7FDYzKQa1qPFxLyojDymYiap+L/7QD+Q8eU+dFAgMBAAE=
------END RSA PUBLIC KEY-----
diff --git a/hosts/franken2 b/hosts/franken2
deleted file mode 100644
index 8767bcb..0000000
--- a/hosts/franken2
+++ /dev/null
@@ -1,7 +0,0 @@
-Address = gw2.fffranken.de
-Port = 656
------BEGIN RSA PUBLIC KEY-----
-MIGJAoGBAOvt5phPFC+/KUvmGWJdNfIoPWuHfJb0na25VteGQDUMn0krudoIJQFb
-snELlAl5emnNbH7W5NWGKfjl7fMRC8RJ7r9eb1/jjsRlDK6aRnN8hHzcCa45PCeI
-m1plGxS6SC3kI6lRB9gjXoKe4GPl+fi3F7sk6fxxIxDBQSnYFWMnAgMBAAE=
------END RSA PUBLIC KEY-----
diff --git a/hosts/franken3 b/hosts/franken3
deleted file mode 100644
index 2b22447..0000000
--- a/hosts/franken3
+++ /dev/null
@@ -1,7 +0,0 @@
-Address = vpn3.fffranken.de
-Port = 657
------BEGIN RSA PUBLIC KEY-----
-MIGJAoGBAPIkkqmdnJi3Y+cGKslf0t+swE+7rtfRQTStW29MP62L6Sn0lxb5MufU
-LRtR0UW31SWQ03HGuUe51e16ppxZ3V1AFQvoLAwxwDD6VvBk4n+XEiupWPt+0XSd
-vNQAM3GOtMVQc6W39ZEa4PaMr44x256W+KnHgNrAL7v+62j+9nJbAgMBAAE=
------END RSA PUBLIC KEY-----
diff --git a/hosts/Frankfurt1 b/hosts/frankfurt1
similarity index 100%
rename from hosts/Frankfurt1
rename to hosts/frankfurt1
diff --git a/hosts/freiburg1 b/hosts/freiburg1
deleted file mode 100644
index e352511..0000000
--- a/hosts/freiburg1
+++ /dev/null
@@ -1,7 +0,0 @@
-Address = port-87-193-156-225.static.qsc.de
------BEGIN RSA PUBLIC KEY-----
-MIGJAoGBALo3VfMiPxK5lxWOYqoCZavMp8Lo4HYTmhLR6w3dHDJTI+UKTNDOf3Tc
-reO0q+K85uopAtuu9yEshMxapvmijmEO9YsD+XinLNvnwNxx7qSaVQrPFTa4MutK
-OuD1fP/PyX12XOnPsjw/CecqhbkCDg8XwFtGZcOJq9Z6DPvyotvJAgMBAAE=
------END RSA PUBLIC KEY-----
-
diff --git a/hosts/fulda1 b/hosts/fulda1
new file mode 100644
index 0000000..795e45c
--- /dev/null
+++ b/hosts/fulda1
@@ -0,0 +1,15 @@
+Address = gw03.fulda.freifunk.net
+
+-----BEGIN RSA PUBLIC KEY-----
+MIICCgKCAgEAwKn26rKjqkFTPXm/aWVEw/oc2GsurG2YLGs1Lf7cD+zc7KFS3+lR
+U5KKR96EE7+5qxZ+NCqWQIcA7fvPoLRrgc1jNRULSi7USsWI1kPlOac0hdd0mId9
+4XHZpQWuLewQ1ETWyzfp8kPSd2eF3iIGVGSGyigpOKSjxw+vPB7OFjfkdIto5+Jt
+u+62Px/i0i7uLyfW2l8eB8Hf///Ca8RA4LhaPDO6MamytyBt0xSRzPH+HfFhWw8q
+TPQytXvheSSw15OjiWpgsUeoNKF4JZK/IhIcpjdmXXWFQtWEixmj5IdTOMTP8jxZ
+ihCTuQ+7UEiHjAg2/B/balAEmztJ5qMzklVaNU6gGMu9Q3ITdEK7i4hybyTf9D8H
+QIw/F+htJJ+ninuyGM/ACigk5zmUZFLZXPSeLRdYJQqiJQXsPNrsGZMmeJi0RkN3
+qx7Nu2tCGsUVKAXf+o8O4SLC0fbAqdrI4u2g3sxQO6x8nRQWCUyF2rN0N171BkQw
+O65MOII42RSCFFrXbcyVHMa4fmSSYjsQkKvrS8K8Z324cJEvRKi9gDLolSg2I2I5
+vcdrua/E8jU8kttcvo+umfNvt6XL6I4P/r06+OGqnMXfGeMMbazWze8HNM4eYYmM
+WZhK7X/m3g0NEFRa1433lJmDQ4ONUkC+3vz4N8tjY2vgiQzBciCWGs0CAwEAAQ==
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/gera_greiz1 b/hosts/gera_greiz1
new file mode 100644
index 0000000..cb4c04e
--- /dev/null
+++ b/hosts/gera_greiz1
@@ -0,0 +1,11 @@
+Address = gw1.freifunk-gera-greiz.de
+Port = 10781
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEArLhMleQyfCgADO1vPEHK1hTJ8ZW/NljeiFsZcvTHCRKnnfF0AP1S
+XfcviGlQCV3sfhXLdKABe0QZiLeHwbJY2R/n0PJxG/UxfscAKH+vRCa6qA4PqVI7
+CLShMe+E/S66UPvYzYYwBpfLBFYlaMzSz+IhvhiRwoCWgk/0+YfPJt85mFSUHNxN
+XGiBLJBSRGnGi9BFSw+GbrN86lmknV/fnL4uypFw94TJYF0Q7TexgP7aRtFSOciH
+2tDCbzzJh7lmw4XE1Wtz7QWUP/R34zqlOELXlmoilbkTO71y4qlCeTHmaWDOG9/f
+VScV3K/v1mrofNlK35GJzfcOp9ueijIbZwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/gl2 b/hosts/gl2
new file mode 100644
index 0000000..6303d41
--- /dev/null
+++ b/hosts/gl2
@@ -0,0 +1,12 @@
+Address = 5.45.100.14
+Port = 656
+
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAubNEotpkRAKFlm2WtgOr7Xx8ZzUca7VkhqPAh/QprEBNdupViMvk
+tKZdzHasvJQO0t5BmHZ8HAuQlKoHaagp5zEc5P8oGP+TS9A/QKwL/YyOXYoQ3Zx6
+edIXn5EJTXoCfM+q2DdS65HAQhSyuM3PJ0SoC85rStQfRBaShuF4oBlFEaKg4yYs
+dTKlpM5ZEQLT7GVOF7dSpTyV6trpk05TfMZf2qWGRJU08/XOh5OzQH+TTDMTbbd0
+kn8BUFrH76vriOYma6kay8WN+egiNJhgfne8iOSPKPX0yzkPHA214wk3+1pmMcu/
+3Mu9habpoGFF0G1NSGwaQ5147QEhCt4pYQIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/gueterslohbgp1 b/hosts/gueterslohbgp1
index 4e20e21..4e499a9 100644
--- a/hosts/gueterslohbgp1
+++ b/hosts/gueterslohbgp1
@@ -1,10 +1,10 @@
 Address = bgp1.guetersloh.freifunk.net 
 
 -----BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEA9lK5No/IuY3o2NaIklnwYD/lHtHG4Qs6qjBGGrOmVJ1N2UsQRwVr
-kbO5pi7sn6dX2xojn4u6WYDIXGdOEihlxdJ7SIgcfjlBSSkSlc73E4MAgG46tOSp
-SdAKhllN2J614Mng2TWQ8SmQ0xMSR80FiJkwMnZ8pb4nUAr5kMiplzxZAxLrUyJG
-0exDuKTPG6fKKIDKBXgO7gbUMbhGRpduo7BSS2VJ9SxtuVgI7Cs/d0O06f9L9Iq9
-krxzb42OHJk9pEQY8EB8jFQFiEdL7ShjXnJ+H5SeUyFX9bJZKyOYzAawwMWmkDK5
-Xm+6ZUW4XoMFWxJ79hLHu0oWxTcWWWGX8QIDAQAB
+MIIBCgKCAQEAxChfHd+VNGxGtoqa48zNKTFdW0W4FdHJxxDhdCxYzPu9sUe6yJHj
+bkDBnJW3JpOydqTsMfNk8Q7a9eltldutv6cg38cDzaQoclXPSSPdZVRBhm+tb5ks
+DojJMtBmMS0QwZHfvHpQPC9VYGg3CBwA+6T9IebwECg2sYXfK+qOu/u4VfIrmBsd
+Seami+PYK0IyDeWIrtHJdGM/XEMzOj8G7i4mOds8Ci+R/+8+rH8gOkbyWcdXQH7r
+rnHShwUSgyVqP+lHhZZn9tNf/1+4LnsGumc5KvAVQAPoc8jIgd9JO9FDJpsVnYg0
+parf3RCJnWDO0QPBRnJSdgJ78j13yv2NuwIDAQAB
 -----END RSA PUBLIC KEY-----
diff --git a/hosts/gueterslohbgp2 b/hosts/gueterslohbgp2
index 5b1fae6..a508444 100644
--- a/hosts/gueterslohbgp2
+++ b/hosts/gueterslohbgp2
@@ -1,10 +1,10 @@
 Address = bgp2.guetersloh.freifunk.net 
 
 -----BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEAx3TChQ0jKU/VZOJAnAxFk8IGLowzvhmtAVZrli6JjXp2hyGS0hrC
-ZS/aZzQhpqeEmAVgqUJSOicIVT2hwyieyZXEM+fPgfEmD04ZDVjSFpjEPdJCp5iC
-rFU8saEg2c/MBnKAOl6YwjYUCADpjGpFrIvgGIv70OnFRzToQDAOZoW06Ka7OPnk
-XBAtpzamQpfKjjER5OPkRvj9Ne8KcUHo1vkJO/X4BkuFSOA2HQHYXdLKfPxcBijv
-XI+9imHtVCZzvU45XkUpOZ8GC8o4z2FszBjsh8skG2DoPckCe8Hz8S+Ajxl1xelG
-5wQ3SZ8gEj5NnP+OY/3OjUkJwsG/CAyAYQIDAQAB
+MIIBCgKCAQEAwNqFwx5UvkekzqCArb2BBFBqtdRbOsY5WlL58qXPVm6buVqZhy0R
+ZZ497YrX82L3K97sFZ/1jFa/YsY9n6E912Zcca5GxY7ln/wrkO8mSfvCq1KCUpv9
+/00cQxTf+AVlHvryWDupxPasO29wb6b5ftd3HXR1lG/eg3YXmXMAFnWr7wYnrFwW
+1YP9YW1cJRZw9AjQ7Y1X2ETa4JkcjCjY7R7hVoJFoVqjf5JLBpqGy/swETrQB0Ln
+ZpSRSrmfMhf1dIIYnYLoqH9og6ypl6vAqYAOwN9KIFTODK7uXW9ARVyor9I9R4cC
+cMtg3bB/QyS+GJDyvYCGJn/ZL6TrSOw7WwIDAQAB
 -----END RSA PUBLIC KEY-----
diff --git a/hosts/halle1 b/hosts/halle1
index e8e04c2..fc21ee7 100644
--- a/hosts/halle1
+++ b/hosts/halle1
@@ -1,4 +1,4 @@
-Address = ffvpn.3dfxatwork.de
+# Address = icvpn1.freifunk-halle.org
 -----BEGIN RSA PUBLIC KEY-----
 MIIBCgKCAQEAsYzXhlTKxR7YBUXHY0JscmtNbrFzZzviVzIhpuml499rh8TVhjMU
 ozyjbaPhSUy+9RY4F1WpRmDi3lyDx7eT0viRlOkFG8huApXEgGLQgah0M/pfwkc1
diff --git a/hosts/halle2 b/hosts/halle2
index e15833c..469f77c 100644
--- a/hosts/halle2
+++ b/hosts/halle2
@@ -1,4 +1,4 @@
-#Address = ffvpn2.3dfxatwork.de
+#Address = icvpn2.freifunk-halle.org
 -----BEGIN RSA PUBLIC KEY-----
 MIIBCgKCAQEA0F40mEg2vW9emNFi/Sr10rN4d/+O6VGLKjHGfMtUXxM9xILBlbDt
 Tid/mB5eOJu6CjXxLAlxrx0Ppm49jooD0BJz/Ajk7Xr2FX1pDxCAxwBBGj2iruy4
diff --git a/hosts/hamburg01 b/hosts/hamburg01
new file mode 100644
index 0000000..f339aa0
--- /dev/null
+++ b/hosts/hamburg01
@@ -0,0 +1,10 @@
+Address = 01.icvpn.hamburg.freifunk.net
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA3IbMWLjnM3S4HsFfKvhJdg9TYRPnzxRyL2CaL5KtcCTu8mMMOeCX
+arfhaM0l7l/hr2/TrpjDH3NO+lT0mn9cwl1Jlq3bkNXiBghf+tgGJAr29DLm0teB
+bvxy5YgL4qbWknNvqDRuLr7IFn0bScd8twN9mLeXzAmRCl43zzLMoYIf1A67Bt3H
+pZ6MoIVF9ziw9E4s0cdaRx4S6Ok3h6ochCfoNAUAJhJvodOdjW9++Ffy+LLayBIZ
+S21vezhhcb7fJ2qSO6x42Kp3FBaEY8zpOVdtPRX171xTUIv0vxYfRGsaOsT0biQc
+EGCG3ch2HiwR7TDe4gpe7XV7+QpUY1dR/wIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/hamburg02 b/hosts/hamburg02
index b52d8c1..bbbad9d 100644
--- a/hosts/hamburg02
+++ b/hosts/hamburg02
@@ -1,5 +1,4 @@
 Address = 02.icvpn.hamburg.freifunk.net
-Port = 656
 
 -----BEGIN RSA PUBLIC KEY-----
 MIIBCgKCAQEApyg+KLP9XfIwOIgBHjbGgt0l5ve+/O1Mec3ed/d0q6Bh+oTkJxOn
diff --git a/hosts/hamburg03 b/hosts/hamburg03
index 854bc9d..36fe0e5 100644
--- a/hosts/hamburg03
+++ b/hosts/hamburg03
@@ -1,5 +1,4 @@
 Address = 03.icvpn.hamburg.freifunk.net
-Port = 656
 
 -----BEGIN RSA PUBLIC KEY-----
 MIIBCgKCAQEApitk4y7bZ8yI5U7pY87C8OdHMiYMQbMfd8KmttVhCFHaXgpbp6L5
diff --git a/hosts/hannover1 b/hosts/hannover1
deleted file mode 100644
index 95a691b..0000000
--- a/hosts/hannover1
+++ /dev/null
@@ -1,6 +0,0 @@
-#Address = vpn.hannover.freifunk.net
------BEGIN RSA PUBLIC KEY-----
-MIGJAoGBAJsf2VLpTQlglzwBWe2B9RIgTEl4Y2a22Xt0DMPRw2vRc4aLcYh9G9TC
-IvlXl87TKILdkZ8jlK9cMmwupAmtoxlRUCDkode1dqZ/Knf+iIOCP3jBPDggKKcR
-/8MmS/ao+Ujb9tTuzv8KhVOqAcezKAHh1rVjriVyhCS/PhmZDViZAgMBAAE=
------END RSA PUBLIC KEY-----
diff --git a/hosts/harz1 b/hosts/harz1
new file mode 100644
index 0000000..a221d5c
--- /dev/null
+++ b/hosts/harz1
@@ -0,0 +1,12 @@
+Address = 88.198.40.100
+Port = 656
+
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA85ZQazOKLgIsyh8ajrcq6OTxU3TAT11L5Sz7gGMwtQxBQAGNHw7E
+V7vbS4TjWzOkiNzPC84GWkGOSsnaf6qLFT2ELoOFfTSPojNLKI9h5vENwkCX/aha
+B/wnPnVesp/K+ihPOWHfEAb1Kuu3gYsi3Xq4Bv+5dPl7aW13+aHjgCCHRDZ3eKRo
+eDfk0mDhQAtUPhfQG5uH/PGiv4dE+e/NQx59ame3YmQGaos4mfjhkZ+3r/Xa2qZF
+TvVd/7eGMzyvuNgnh/ygaGyTy3OLbDhxR68aunr/CYY/ekbO/whcEhuVjiYYa4Qw
+wrW/zBmZxyWfW6SCXXt+Z5xG0vDcuIrzBwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/karlsruhe2 b/hosts/karlsruhe2
new file mode 100644
index 0000000..59500a6
--- /dev/null
+++ b/hosts/karlsruhe2
@@ -0,0 +1,15 @@
+Address = albufer1.ffka.net
+
+-----BEGIN RSA PUBLIC KEY-----
+MIICCgKCAgEAv3w8au8y75sWMzfi1sRzOjI/f+7Gak0qqHcGAQGd+TCwF88OgGDk
+c7TUQJfUG1FcLSiEMKUSKyokFBU6qbzrnwxsK+/foEGrcde4CKaJ1/q+wxL1lRu0
+/12ZVIvr6rMHugjD7XfRbHaUoH1p6ki1+mpwRiLKgKimYxaKoTTJGzkR5Gkabu59
+J7zq6NhzDl+n4usI16Hd2rCtdvG5txDQJvnQTXS4oaidYMDbOulAK+FmDSwkPIcU
+uaGELGD1eMDKR6e/cp3DqTLG54GgmxamL1i44iGwOWfFGC+JfeNEcS/FgOzIhTrR
+a8SRnwJ7FnfqaOee0Ktht1iRmuhJQxtrgusi++WII77SC9jH1kZw2bqh60YbQVlh
+szNPfbpu/TRiqlduDJDmmJgXDG0J3eSvzLWT1D+qXG5Swk7R04VYLCh/oXHAiHol
+l/3D7423tcW51hq316if/9ncfXpKXcdQiEIjmhVt1vi7FQk+1lwmTOKXBAAXnZDb
+7zO2aY1p7YncAudL1CP3oQPazWQHW+2XmLvnOL5guBb/3LL/3CltwBUAz6zfm2Pj
+YKNiQJG5+YBZaPAIy+y4mhDbh9TIO3Zw0eNt4jinu7486iWstkjj+V8E7fWkTBZd
+t2kGBpR5xOVsd8ettZr5pDni9n/e/SJasizsqGjsQnPjWqEUj+wZKn8CAwEAAQ==
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/kassel1 b/hosts/kassel1
new file mode 100644
index 0000000..66e34c7
--- /dev/null
+++ b/hosts/kassel1
@@ -0,0 +1,11 @@
+Address = vpn1.ffks.de
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAvKiRJR1BTj2pGVEhJJCQPs15gz85eyfB10mMB9yJ+5fA4OyeJnMs
+ZRAWtG1/ViTDG2a6rt1oF/k7KuWIuhC+aQTI4quniBV6Tk+7kJg/BgW0nPpn7H8n
+wpSxF91kq1HGiMmZs9jF1Am/5cIdUeA437ZX/W5qN/L2h5mGzw4wTLLH6GD/D0p0
+cEkyTVaXhlswOx0xj8T2/Ugzk8wK4QACa1ZwfVFMuuB3HsBmXOMAH4fEyogdlTSv
+INNhZ2gLT1B4XbKbDwJ+MrOOMz3XbqvaGTHW1I5Jo0y98Ckwqis20eWg0BljgdCM
+2PFkFNWCkf14Wc4EpRS4+eGXj/a7v4s7nQIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/kassel3 b/hosts/kassel3
new file mode 100644
index 0000000..56694e6
--- /dev/null
+++ b/hosts/kassel3
@@ -0,0 +1,11 @@
+Address = vpn3.ffks.de
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA1GDz1qNLj4EVXc07Zg+KXqIsgL+cyacxJsqt8yklQVeY5s8/jeKn
+UFQQb91TGrWKEqGWUyeFDPYOqTsHWQO0VDspidkeBP+6ijlPxnlaf9cO5ZR/Xjv1
+n2ndcEkTzRNUTpHhHBG9iQtVYUH1O9j0n4rBAVnF1o6IWVrYgAgusMnKd6W8NJ5K
+IGepgRZRi3gIjOQj/YqKPma/vZC7gBkksSpNf2dXusUSisztb7lfhGJgaAP5Fg5d
+vr0Jrd9NEDiy5TgH1oMpQcpCCAOSvEdhhbb6XPRCZIb+WCobV06GeV7vhmIl0tKe
+IRL/y2Fgm2QO+JNr7jvoa1LxrZYvWCXIywIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/kiel3 b/hosts/kiel3
deleted file mode 100644
index 67a2736..0000000
--- a/hosts/kiel3
+++ /dev/null
@@ -1,9 +0,0 @@
-Address=vpn3.freifunk.in-kiel.de
------BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEAqDth8oT1QRrt1usUz2qb+QfWCrva67Vup3TOuV1Lf6Zo6veRDOcT
-3jCQtQ+BYGAiLgwhrYtJ13oiMlTbpd32ns1dvp5BgaiTWexJuObsC04LVry0kML5
-WyoInGpUD26sqPdXtcs9bAgNzkDCm7cxMtQiu4SGWyNYpfkkIb+4miUKyjnWCrqi
-nWTX2KC4MJh7AMWSrk6vX7aYmV/qmHkIXBqhPKe0Ah6rufc8+ZkSATJJxTM78qwD
-sOO78I3V6av1+QlaF9wCr5/X/eAD6XUEOJWPuiTflC27mDcihW2NE2YwCIDX8vk0
-Ccuo6OGrjJpZz+ncEjCcFICPpKrL8kYCdwIDAQAB
------END RSA PUBLIC KEY-----
diff --git a/hosts/kiel4 b/hosts/kiel4
new file mode 100644
index 0000000..5a98c54
--- /dev/null
+++ b/hosts/kiel4
@@ -0,0 +1,11 @@
+Address = vpn4.freifunk.in-kiel.de
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA49H0NRDyDqVy5eJygLHuwLq7VUhrPhyGMhHNcbJ/ZgnwAMkV2wfd
+A+fO4ZXZ498rW3jNLvIxpUH81jsQBe4rFkvnTGZQcY2Lu7Q46XGIp4BNPjtUFIeH
+1qhSANElylo6sZtu651pj2Lu3oV/9cxPDLrKWFaLSLmCrJoh9gkB4Xk4T0T7RWxG
+NyNqdwcCzd+9ITIpRFtcB/pxlO/Ovirvwie+N/aZw8uC52ZOskhI/MSEYzFw+YYR
+aWcoc1sAJ935EY7DET0MV/9yuM+hfRQyex3jKkXzykQL8kQ4t1+0dl3VYMiW6lr6
+LeCasMGtby5sVeA/18H+fu+viZ+qc+wn9wIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/koblenz1 b/hosts/koblenz1
deleted file mode 100644
index 52e3e23..0000000
--- a/hosts/koblenz1
+++ /dev/null
@@ -1,9 +0,0 @@
-#Address=dsserver.homelinux.org
------BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEAsnls6tKZlZLjmOhjiMTh63GbOaEJ5L3/N4WQPNZN67YOoL0ISECv
-QeQ/p/3iRRhN4EG58CxAJ0X8uqpjqP6xLcbBSDfLbAawjFzU7OrKWiCAmHeW5ZTk
-5sRc6FlR45x63AkaUxiX8VEjBLdrxr6WlHG7XdJtaSYtSpeCESjtWnD3qSQVl7Zr
-CNekrY0TUC4Q0nlmKhNnSISMmJxqvrlGvV+shH2QKSSTOyvOYhl7SwQpJHKfuIOx
-9RbWDG4rrcqks/Kx4WBq/hwiUa8cy0tdoZcbrbjt6rzdIgByDQvcNJ0+hjypbW7H
-j0nr+4GJ9zRGWvE2KopZ3WHE3SvvBeHynQIDAQAB
------END RSA PUBLIC KEY-----
diff --git a/hosts/koeln1 b/hosts/koeln1
deleted file mode 100644
index 2c6de0e..0000000
--- a/hosts/koeln1
+++ /dev/null
@@ -1,16 +0,0 @@
-Address = fastd3.kbu.freifunk.net
-Port = 656
-
------BEGIN RSA PUBLIC KEY-----
-MIICCgKCAgEAwzH7Z0W0yIDp80G8sHpaxez7GXL3Lql7DAdJkrNf6KEzZAsZ7usn
-9g6OoO5wQIWkBlEyGWGiCEIbGOHUQ7WjQwCkqO8Lfk6pJzheTjrRx7Sw/jd2aJwc
-szZG/DN3T7Mt1BoYHqT+Q+SyoAgIggoCDYQMaRMwBJkb4c8MmHDEEW7tmJFip+NQ
-5xv4BVGJBtWEkVhpVdLv6IQOB9jE1Jzpr8hlXDgNGqgKTAhK+dUtmpcwTRNyZok5
-0GZimewroF76FTy7bqiLJK2iotMw5SHbut3agaS7BTEggEkNeTzLq1p2YIf5lVr1
-ctTqkgiIALjiccnVhoWOwL9Rk+HB4O8s8qpK4cnLTHIkLWfLFLiuYkkENWMjiM68
-NVWbIkxMMujFKj3edNb/FD7vcdQ3kT5yoVwqTKP8UdboU4W+0LeLWCl3dOIF+gzz
-57i8R4tugDUKms44L97Pt7ArjF8CRrFp43lV5LRxKTw6EeqU5BgMUyRXI2qF4d4W
-EOQIMOX0v6P55zKeNKNm7iSNroqWeMA4wje0N4CsUir+GSQNFvmC3j0RypChcnmo
-WHxCvnI1BMRv5m1PyxCibeiBlXSYqV66P8+XtSTWaAnnGH5scj/d3zO9fElqPepl
-lQi16kmvex7I8S66jGh+MExIbEvvxJNyPaBQ4CN+kCujaj86dtz1W9cCAwEAAQ==
------END RSA PUBLIC KEY-----
diff --git a/hosts/leipzig1 b/hosts/leipzig1
index 7163162..4f25546 100644
--- a/hosts/leipzig1
+++ b/hosts/leipzig1
@@ -1,4 +1,4 @@
-Address = vpn1.leipzig.freifunk.net
+# Address = vpn1.leipzig.freifunk.net
 -----BEGIN RSA PUBLIC KEY-----
 MIGJAoGBAKL7eWHmD2Rn6IP7JlSWtkphokN785g8nccBmfcjbwEwiZv+EFaVoid/
 0dPfvHaX0GaQGOhpef3PVHEbIMuU8dD9+7WbXO3+hUSIAfHoIdGK7n8qFtzTpzqn
diff --git a/hosts/ljubljana1 b/hosts/ljubljana1
index ef99e59..c8dda7d 100644
--- a/hosts/ljubljana1
+++ b/hosts/ljubljana1
@@ -1,4 +1,4 @@
-address = gw.kiberpipa.net
+# address = gw.kiberpipa.net
 -----BEGIN RSA PUBLIC KEY-----
 MIGJAoGBAL4X76pBCF0b/z45rFPbgTrKpISle9MbLqvq3tDc2fTERowis0aBTTuK
 mfVIQkF3W+8JMcjQdez5tQWKHnfpz4PmdSC4Dmxolgk/d9b7HNQTP8MCmCLzf+D7
diff --git a/hosts/ljubljana2 b/hosts/ljubljana2
deleted file mode 100644
index 0a39b02..0000000
--- a/hosts/ljubljana2
+++ /dev/null
@@ -1,6 +0,0 @@
-#Address = AS64768.linuxshell.org
------BEGIN RSA PUBLIC KEY-----
-MIGJAoGBALVdchpMeSOA0JBBLwMMdX7hVMlLI2nXZ/0+b8R+36chmsajbKjsDa04
-aw/t/YFo7iLFi3AAXj7Tm/8AXkRz6Rf93rplwo91k47Dz4iEwC/kn7kI8wrGyaTY
-iVdBNp2InZzDeD621OfJa1nhh5ROI0q8T0P76b29Z6XkYJJpCa9pAgMBAAE=
------END RSA PUBLIC KEY-----
diff --git a/hosts/magdeburg2 b/hosts/magdeburg2
index d2de335..6f2b7e9 100644
--- a/hosts/magdeburg2
+++ b/hosts/magdeburg2
@@ -1,5 +1,5 @@
-Address = 2.icvpn.md.freifunk.net
-Port = 656
+# Address = 2.icvpn.md.freifunk.net
+# Port = 656
 
 -----BEGIN RSA PUBLIC KEY-----
 MIIBCgKCAQEA6v9HoQhGnAaWsSofuT4gplTOBhzmDz23wdQeWkVKM2tY7WCA1KNO
diff --git a/hosts/mainz1 b/hosts/mainz1
new file mode 100644
index 0000000..75cc893
--- /dev/null
+++ b/hosts/mainz1
@@ -0,0 +1,10 @@
+Address = ic-mainz1.freifunk-mainz.de
+Port = 10655
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA1M84cHK5ok4qCghUrmtSRHv5EvzMV4XypivUv5b4wac3stusEhc0
+Wj3PgWrQjQMHjQWnOii/EcMUvRXD6pT3jZCGBOd/BHFherlmJUV8TgSjvABIbzmJ
+vAyfICn6brdYVf6D+eJwQ43I2e/7hbB80Y6e0zbBo4hvc2AuiI8ipof61kdJZden
+/F3+hq904rgX17P1bvJFtJcO80bNeYj0xl2LcribCZaMIjlDnHV883Pg/+rqrV7v
+rBKfPlNHuA6ewYGPyKVadkyJuMsw1M4dY/Go2cPupQyBeybulj+43c1QZwXdg/z5
+za/FIE1bG3DiJS0EmPPZkrejZz7VLimXyQIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/meerane1 b/hosts/meerane1
new file mode 100644
index 0000000..e1dabdd
--- /dev/null
+++ b/hosts/meerane1
@@ -0,0 +1,9 @@
+Address = ffmeeic10.meerane.freifunk.net
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAym1/4gwwOUaCuUAee+JD0yPVSNbhVwJDkroqpcnSRDh6Zvyl/jTe
+Xc/qB0eIba8EnuskBggF+Zkqfob9C0O+AxwxKMlv5tnR7XKS4/CYRoW5jKRkxDn6
+ObZC/DbizbNE3ZmbAdztdCBp8txhuog889xYx0gK/Xe8g5ICFkr7l5yyn2dxZDvp
+Eqbi+b9fWalWTtyXwGio1WU+8EgnMG6P6re6kKIsCezR0vbHo661iG1MgV3B8liy
+4zclS5bdukRBpuIU4BXW4dSJkXSbBFsOFxkPlgrZCpkxbFDQ0/awwgZ8nFE+Y3IR
+hFQp+qR37FGFAjgo31CYNn2oLhJ3gjL8eQIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/moehne003 b/hosts/moehne003
new file mode 100644
index 0000000..da668eb
--- /dev/null
+++ b/hosts/moehne003
@@ -0,0 +1,15 @@
+address = 003.freifunk-moehne.de
+-----BEGIN RSA PUBLIC KEY-----
+MIICCgKCAgEAt9L7wOZhCIIoRZSFE+AiQ6evhH+I7z2duDULC3COb8EorKZzaFse
+cTCfaOdZ6+cbraqFOiwAzigSf6CoaE8XdnSsWcowQGfESL+CJopoC3Be8h3Cz7ct
+mWz+XmuRl6hHOKqGKxWRxihHQs5zdhF3k/iloWbBqozgKfqqaD8qkeKF32Fn14Ze
+UUm7hWQgicyemGGZhBE3dluV9svN/XmAFty2r05y03wnHB37jc9RdegW3TcNSO4m
+Y9K/q7pXQiA9TwoSpOEv+tKzWoVPf6Rp2ZXZb64vgl+tBnjvT8URL+EiYDHz0LTa
+EuhHuK8pulXOQ5rZ1WmzuQDHBZWVMOLsiAepNd/zMXVpbp5CHpMW0zAbCDwtSdIv
+qKODY28jWPvIxKK+7RyVaIehGrtu38zkelLYBaGuDUI6WLPkF8nM1BuJj69e47cF
+NccaZah1wDIHk7WCCSUs9vPCb+rsNoDJUMm0/2dYG4dbDKJVCve6aYfEddlOxlTW
+7wtjv592H9KGmf7+xMrcOt9Wvc1eDVvSrf6Ld9nv5Myd03YGYJau5JPPoyDVfCnI
+MI8OMdNbEggXBSFFvlkU63JLgJGecuzJsVmb1MJjOMTuzOTl3WUvME8mtCdzZA53
+LrQCHKBfQsK4V5MNURxvmMrLytUfEzjjMsP65HCiaEz9GCsNliNvuCcCAwEAAQ==
+-----END RSA PUBLIC KEY-----
+
diff --git a/hosts/moehne103 b/hosts/moehne103
new file mode 100644
index 0000000..a07102e
--- /dev/null
+++ b/hosts/moehne103
@@ -0,0 +1,15 @@
+address = 103.freifunk-moehne.de
+-----BEGIN RSA PUBLIC KEY-----
+MIICCgKCAgEAzBMf2LQ7pa12n6VwBMUhMlJ0OXq6QYpPjfJpzJM4mnZ5j4oecpuN
+Y1WO3FcbMuvU87eVNUUe+qetK1EuneqFadw4vILI5RNFYoWolqHqEDZmO2rLe9QK
+T/CGYcLUi0SAOlXhXtPOod6XY+wcYJC8bq/tZDp/kWUbrwPJ+pl/bIAjex8WddaV
+REJEayNvbgy5ehQ9+2JYHm1RSPfsz5UXD6hcgcKbQyqZZfvuL/r1WWQ+7gednVR9
+ZQwgenLCVBZRDs5K7rH0oyv3VrY3SYJijoBTuTLcLiso9s7jJn9gsbv3DtyqkRXD
+nhxGGFAfpMk1i4lcf40l9xkoCjiajRvcpCHuXUddl1TNVUXUd6KcciRHLLlqM/hr
+Od0QzuW3PGvWHqTPinSvtkwIh+7t2LUlDsH1QfB2FOHppYbjci3YpwnLWJUlzuAh
+mAJRM+jBiofKlWnJiU3nnncs58+bGgqhBO8b7F2pjoT5j9qqvOzgZnYAN+g+kvWJ
+Abq0eWodCcvLmcbiycVP2HzI/A4lhRGjjvfFLRmLO7R6ZO5iXuBoM6W4AKwoxJrw
+SBpf04nphfWBsez1QW6YqxxsTEDI1+y43VQmu1DVxhrQwexldRaMNLpyNVDZzZCv
+hmPpPDJLfdAlr3ld78aBZHVAB5mCOygPuNHbtxnTc3xMWW+zDVeBQvcCAwEAAQ==
+-----END RSA PUBLIC KEY-----
+
diff --git a/hosts/muensterlandFK b/hosts/muensterlandFK
new file mode 100644
index 0000000..e243dda
--- /dev/null
+++ b/hosts/muensterlandFK
@@ -0,0 +1,10 @@
+Address = fusselkater.gw.freifunk-muenster.de
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAvPXymyzB4wGKvoCteVEABNx8sSxH+zWUbpvr/UmGqfvR/kc1tgEq
+cEhygHxJOQ3yzO/YdNxYE3SBBl2IuyUw+mpvxPv0CMZheYlJPevWrdRpXI7/kWvU
+4ZXKys5ImG/OWmRyeliiyQo/CuCGqctATlV4bzlFnZxObRTfSw1+DY0sfZM43wvA
+v03Pd+Q0il6wSvH+60YTALoCSzXzvegr9QmszUEQr+HQwcZuPapNqkeZV8L7HpCb
+1uKpTpBZaAqLKItgAo5dl19pXe8kWfw1i3HHMYgW1LRHAbdCVUquMJhi1IY1eOX7
+5lp28qZFWPotB02NOLeDLFMkMd/P4emaDQIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/mueritz_bgp1 b/hosts/mueritz_bgp1
new file mode 100644
index 0000000..dd8b597
--- /dev/null
+++ b/hosts/mueritz_bgp1
@@ -0,0 +1,11 @@
+Address = gw05.4830.org
+Port = 655
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAuizkPDLiPvMxnom5i6RG0ijqT9tKmuAFWdMT8FIPoP+d4x0M+1WF
+F8tPZk6Si1t7AX9Cp4ZhPHbbwvSXb/P4Q2VLX2w0A9F67bZQFUBKCaGdRuFPXd2/
+aPr2mQQFB0agA5rkQgegRVbFhKhxGE3UMLhP2DYkfTSI7Yw0oyzGOnSK1Jga5Y9Z
+8W/sxPxj0rpAt/NFfl88qI9aiOYmOD8aFu+spQnNi9/K2yXVdYul0w7w2KAnCyjq
+QWZbNzxFT6Lnlr4YnpuN3Yd81eeThPbH9of2wdMKyJSL6cYM+zZxCeniscspWrRw
+3LPyinT/hEHLChkrQY507QQWXCM588yZeQIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/nrw1 b/hosts/nrw1
new file mode 100644
index 0000000..da23a64
--- /dev/null
+++ b/hosts/nrw1
@@ -0,0 +1,15 @@
+Address = rig.vfn-nrw.de
+
+-----BEGIN RSA PUBLIC KEY-----
+MIICCgKCAgEAwPiIGCFsBFWSo7UZZkLhH22D7g6QbXzrLtTWcMAvYYNIGCmS7G94
+aGwQ20ccrUeAtLt+P6y1+TPinOndnIPQND5kxnV4d18PCCrj1ipz0B/hUH0c47K3
+JVu1X7n1CxZwSHQ3/EHSGDEb4Q6K8vIVwmGE9WL8tCALgmBB9PzLwrLNkJDjv6ky
+4Jmb3JftPvBNwjlNXbRBDh7Pqpnp/9N+/TkdK35KHpThBHNNdkUozKr9+8FzXcph
+foC9nbArlXuJTSQVLvjfj03eFCE/Cc0iFCJDnFXtxnFNsLHohCbEi1epzYStNiCh
+/urOJyiCVIVtZ2hnUUuh3TKjHITUbF3QRtwp7cu6DrAqWmAG/sEjlsnby56AXeIn
+HZPFMswzV/cHAli+lkVL6kRx9/WWA8yEJaM1T4l/j74lORQJmgcTuuAv8rzSy8Qm
+5MwRiWn31CaSLTmYp6Sw43r8wurEX1Bvmbbd8845LGpfXjaNJ2mzEETdNd72R6GG
+1kTDZBYOMZ9Ty6BDLSgU1EiijCAvI1J8rnXxLb+3ttMXnixlQgg8XiZNC2L0PvL4
+VVtaZBElIBXFbLs9LLPWq4/HDviUEdz0+5f5W0MtjrikJ1DwZYyUZKC/fBXHvw/p
+gKeW1YG/1E4K70JDdSxRKvaq2n+LFfvRmGWG0SM0jmqElUc0vopfOh0CAwEAAQ==
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/nrw2 b/hosts/nrw2
index ff8aae8..589d275 100644
--- a/hosts/nrw2
+++ b/hosts/nrw2
@@ -1,4 +1,4 @@
-Address = bragi.wk.freifunk.net
+Address = bragi.vfn-nrw.de
 
 -----BEGIN RSA PUBLIC KEY-----
 MIIBCgKCAQEA2i89suXrS03mxdWvdmtMH0F3ZSJ7xrkwzpVgEJvYqNCbWCBPKaLF
diff --git a/hosts/schwarzach1 b/hosts/schwarzach1
deleted file mode 100644
index 2bc46bf..0000000
--- a/hosts/schwarzach1
+++ /dev/null
@@ -1,10 +0,0 @@
-#Address = schwarzach1.hopto.org
-
------BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEApZQmRinQZQq7gPjFmltgFxXAv4REhkCAGcPwYl3uUeOwqe4adSDu
-90G99x2sCMAdteQ5YrZsDqYw2DQJS4F0a5IF81+U4wfv97KNil/DG0rxqXALX8v0
-OWfkUJUiblegeBo5R7/x+wDtdJbzmLszsfObo5W+jiyBSBM37RoHI2lfYEhu1+GE
-2t1xWhZXsn65krEnF0mwg6sHzZPza051cQiCLIMSyqmI5jk17FzHfuKwdSKFQKMN
-7rhVwgUgzL6RI5HQYDNjM5VEKHShIZ0MUvUQlhQuZglzIS9W0kvBhAFWg1zkUpaH
-pGl/IK7z2VS5oayGIOpX8e/B0ITWuuzxVQIDAQAB
------END RSA PUBLIC KEY-----
diff --git a/hosts/trier1 b/hosts/trier1
new file mode 100644
index 0000000..500dc80
--- /dev/null
+++ b/hosts/trier1
@@ -0,0 +1,15 @@
+Address = gw1.freifunk-trier.starletp9.de
+Port = 655
+-----BEGIN RSA PUBLIC KEY-----
+MIICCgKCAgEAtZakSOECioGgkCutgDyq28LLklVstsowc4oahDHhQt5pTv0ncUzE
+D1rAVWGxYQuD21wu2gCW6zJpS+ZYxGnREIa799tdRtBSL/bH6QQsVpiQiWzpMk0D
+HyOh17fbtqAekOzz3nY6hQFcB3CaJoqY2jrI/iQE15N1iNkA8m1nDnwpHxVtKNmh
+9qq+2EtdXuuJP6o7gayjMLXiB0Iaz6rehlS8jzh6FdrCUQbyuRPW/XtT4tiwd0Ch
+lVXoCnSrM0+tUW++0yQz9aCpLE+IMKcTGm1W3elNOA107R9BiJrPqM3ClP05ThRx
+qWO/hCeJ7/Y0wFZBM2IWNX5ig3bAyhdUOaZA2Pr3HQ7dxRkHMDPOOjIzxPNQUvCm
+M4yKXoC9Fuhy7iujd7fVovXqvwBfLAhm/krMZRftEU01qHdN+Qiemqawz/zx9Yok
+GJwrVEttqXt1CP0yrm2GpLS0YOFCcTO6OGnzOP1AyCi8XjeoshqhT1GgHGky8TMs
+GhMD227a9AIK+XTIGzvOEpYC04CYm9zcWBbcLwQZxZuX4XUIhCsgFtWYN0qHTbc3
+ivhy6Z/MPvJGxiGbipMeZlHu4fEKCtOu4EdddkFLlMKdpA7Jo8PEMXy1zg+LRgWt
+qZJ6AL52KEnR+2zjl3aLoXJ7H0eTAGJjiSMDfp4PXiIWr5amoH7d8QUCAwEAAQ==
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/trier2 b/hosts/trier2
new file mode 100644
index 0000000..7cd10b5
--- /dev/null
+++ b/hosts/trier2
@@ -0,0 +1,10 @@
+Address = gw2.freifunk-trier.starletp9.de
+Port = 655
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAu5IiDnY5Ix54b0fb6HqXM5GggH9TQCPTXqUnKgurPkiOHr+OcMSB
+6LlE3v0N2HJYS+UJmjHZtNd9z4SdhQoft6t1vEM48G9gi0HDJoLvi+ZnEHbW0LdP
+PE5H2gwEzrZ6YAtbFiyM55dVY/5G3fYEF7nrB1ItAkqujUfWoLSVE1q08Gt/MbnK
+7X5rnr8JWquuj2vcn4KBn4YHuLBMNCotNINzDOECqst3CZLUioKoxQenhpyX/ZP0
+A0RNqpf6msFMiRY5+qEhXQYqP7ztc9MaLb5+7dvSePkjR4tEvBEizV5Qxxzpb6FA
+ZnOEZT5UV+Pgx8iyBuyXnHeDB4X4F3gbLwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/troisdorf1 b/hosts/troisdorf1
new file mode 100644
index 0000000..485de4a
--- /dev/null
+++ b/hosts/troisdorf1
@@ -0,0 +1,11 @@
+Address = gateway2.freifunk-troisdorf.de
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA158/RHkey6Sess08Koxrt3rKUJ1jhzb5cyMEJ7oTG3f+Qv/EMdn3
+aiL3PIPtcq3BA5Lse6Q3ddJOKw1Ejm7gfMiZFzP7GvetDHO0PssdyFwVmA4SugaO
+4W6N/y9uOCGOF4zmLULq1Sv+q1WH3hVCkSjjn2rH0rISrCjz8cfiM4wsxpU/0sDU
+cYykyHo7j4GC9QI/ECHdiFSZXJ93N9Lp9iRI9lHV8y8Sfh1AmCJmwKE3t0DBVVTi
+HwneSxJpuTklvOriLHSxMAn/V7ZFvV/TSQR7xdXkgXZJhJUftlefxcUBwuGn+XQj
+Uhpx5m8cQYswVoaIr9cVjmG4QDuoJbnoUQIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/uelzen1 b/hosts/uelzen1
new file mode 100644
index 0000000..53a911c
--- /dev/null
+++ b/hosts/uelzen1
@@ -0,0 +1,11 @@
+Address = uegw1.freifunk-uelzen.de
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAtU1/lyX5TBRpy/DeHucVDL+SrUqEbNqpeIYzTBsb/Z4/7qap9W/9
+AJDyIwQGFX4Yu8U3POl0tJmjbnBspsh5FFOHkkpgII7jeUy0/7085+W8HtQwnRDA
+xYosgMMLOzmpBhxwOr/tIG+HmlFHYdQQm251CIB8XxZmIbyMj7A694tAbuYdRnnt
+++CUj31+GXsKQbJKKAPuv8t88KFP14FX70mavfDBTvgCGNibs5elx12CtEGxSGoz
+IPaEf03iwOzx1QfV1uKyri/wEj49ELEn5MeZFK+BziaZjVGQ0GMcktGIx2ovB7ad
+NGOxp3gJDmkQmfmtV/uRP7KbGl4IMQVx8wIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/waldheim1 b/hosts/waldheim1
new file mode 100644
index 0000000..3227689
--- /dev/null
+++ b/hosts/waldheim1
@@ -0,0 +1,9 @@
+Address = vpn01.freifunk-waldheim.de
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA+DamB7iSwBw17Rj5MllCedVBP/7LkfJ7zPiaMtjjns3YFdDJQrlq
+Tsr5JmiWz4ijSt17vc9s2Qy5ZZ/JBBAV8SAA8riQoeqcy0YZx2jXi1FOxYaZD5r4
+7ylvr8B+tjc+1ajTvKrmoQfP607763UuTU7VlC4DKrrddH7iiYiOOmCmq27Smr97
+6vZBREE/bB+qTfAvmzvxPKHTM+LlWlsRatLHQvdji0j9RW2Q4gVIEB4nc6YeHzUw
+UL8Hbo+LheP/EUBcZqinoIHcdZ2OvyehImYjLi0MvU7FsWdfHmwHcSJJUp7VpToq
+CpLAQ6zf6QF7jOQjtPjJcQQlW9MwopLMUwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/waldheim2 b/hosts/waldheim2
new file mode 100644
index 0000000..baf489a
--- /dev/null
+++ b/hosts/waldheim2
@@ -0,0 +1,10 @@
+Address = vpn02.freifunk-waldheim.de
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA6JPQIdk9Ce6g3cLlEHKlEFed5UuSSlNIavM+i7ePW4wpjyVSd1Ib
+1L57lJhyDjeoYWuV45vQZSalUIyuThx93m5Xd1K0sf3smO5U5s7wOv7Zu5xNHSWi
+s5IvTvhkBCcqmVYI2xmlb9kFyEs+IuCRftzKdqnfreMbZKV0w2XmTur/KfN0xBlu
+7A9b8ncn1ENY19aVTdr0DkUS8nf3CoP2c8tr2+cGHumTdKlq4jW8+QoJ7hRzxnd3
+bppQ0Ox+UF24jQVP+8UOAfJtQtw0bMVfw5BFeOLic1GDjitWDliWXfrOQgKLKRFH
++32usGFXS4YQZ7n1Zq4xbjNwTARTETmgRQIDAQAB
+-----END RSA PUBLIC KEY-----
+
diff --git a/hosts/westkueste1 b/hosts/westkueste1
new file mode 100644
index 0000000..92ec42a
--- /dev/null
+++ b/hosts/westkueste1
@@ -0,0 +1,10 @@
+Address = 01.icvpn.freifunk-westkueste.de
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAvpWNaR4X4arH41BS0LNSnMIWDJAfByhJR6w5W3lAgAUKK0V2nVa0
+KRIEIWOMXgahbCwEPZHn/F+N4JA4H8/oMjseevfBipkBkGekRUAI6OXSLU1h+Vha
+Q1BrHHo0rzM81WcNJoV5XjEHSZ+3PK6HY0Tbw3K4wAo0HKAft+hDCYAdwZXm+dAi
+ExfwRp06FRNoiLSUD1JSnRIji+PJFJh7ZmulDNANd4+gBsAqQdkf7tCG05rjor/v
+XCJlLQKPbil+cxC1t+vrz4x02h27v7bBDgs5+joAmRsnpCnDT8YERhf+yQw5xJcw
+XtEVvM0ZeRhmVfFECY9lz4LSBlXVvyn8SwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/westpfalz1 b/hosts/westpfalz1
index aba1242..9a4f262 100644
--- a/hosts/westpfalz1
+++ b/hosts/westpfalz1
@@ -1,4 +1,4 @@
-Address = gw01.freifunk-westpfalz.de
+Address = gw01.westpfalz.freifunk.net
 Port = 656
 
 -----BEGIN RSA PUBLIC KEY-----
diff --git a/hosts/westpfalz2 b/hosts/westpfalz2
new file mode 100644
index 0000000..4af484f
--- /dev/null
+++ b/hosts/westpfalz2
@@ -0,0 +1,11 @@
+Address = gw02.westpfalz.freifunk.net
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAvBxfjw2x1RB9nlypB0uXbb0Ad+bsPA3lVPUTiqf1jp9J7mq3SzQr
+8XXbXSfYENjyLw6rif/7fYvnZsV9Pn+pj+sw7Hwj4JKyloNmLGe26youx+Ik3YXj
+kvmPAF+6SShVAv4TEbOeqVNMggksXevJawPdR9lUrdu86uT49ncAWh29x9LBtLM7
+ZzxacAn/ysIsH8oY+niFT0xTysLD0mxbvWuSrXjFaL4zTtGyT1jOvLyTvkpE10OK
+bVid5JGlkK8+NWFC6pruy1UR0j3+OZ7lsiQsEFrBcj08Dot/msXlvYjcDVtCVFMU
+/SAolG+xq5Olg8dOql4E64N5yoLp7wbTRwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/hosts/westpfalz3 b/hosts/westpfalz3
new file mode 100644
index 0000000..5149689
--- /dev/null
+++ b/hosts/westpfalz3
@@ -0,0 +1,12 @@
+Address = gw03.westpfalz.freifunk.net
+Port = 656
+
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEA43wJIE0+U/KMLKbgkzKSTnVYHSn1sUWG51HdA3SXojwf5ythy3vx
+oRS9xwg45tYqk34HEAGMWHjmJjKaSxOrfbushsaTKvRh4d/4v7/Y+n2rDmGmPmGZ
+O4Hp7ik6gZgM/82WSYAezJUBszHfvFS6VGF4QyAdZlT6bGKOxDL8UhCq0OetRHk4
+0vDEubUziTlGe4JZvVguMEcvQDUtKts2WOhKGzZFrq2+15q4dxLWz31H/kFHhJzn
+TCK0svoSWceNnIkoObvHEvK77uEnnN3P+7/M9j6zwEAKVtQlt2nRpWvsXP09peSX
+G/2X79hpnMVSqPl5g6Ff1YeFOHp5Q92xgQIDAQAB
+-----END RSA PUBLIC KEY-----
+Ed25519PublicKey = e5a63KazrjKCO40YdLo2IF0YZ+f6CISTdrkO8jlzaKM
diff --git a/metanodes b/metanodes
new file mode 100644
index 0000000..522ea7f
--- /dev/null
+++ b/metanodes
@@ -0,0 +1,5 @@
+berlin2
+darmstadt2
+luebeck2
+trier1
+hamburg03
diff --git a/scripts/check b/scripts/check
new file mode 100755
index 0000000..6836bad
--- /dev/null
+++ b/scripts/check
@@ -0,0 +1,197 @@
+#!/usr/bin/env python
+
+import sys
+import os
+import socket
+import subprocess
+import nmap
+from optparse import OptionParser
+
+ip4, ip6 = 0, 0
+
+
+ANSI_COLOR_ERR = "\x1b[31m"
+ANSI_COLOR_WARN = "\x1b[33m"
+ANSI_COLOR_OK = "\x1b[32m"
+ANSI_COLOR_RESET = "\x1b[0m"
+
+
+def error(*arg):
+    print(ANSI_COLOR_ERR, *arg, file=sys.stderr,
+          end='%s\n' % ANSI_COLOR_RESET)
+
+
+def warn(*arg):
+    print(ANSI_COLOR_WARN, *arg, file=sys.stderr,
+          end='%s\n' % ANSI_COLOR_RESET)
+
+
+def ok(*arg):
+    print(ANSI_COLOR_OK, *arg, file=sys.stderr,
+          end='%s\n' % ANSI_COLOR_RESET)
+
+
+def check_host_lookup(hostname, port):
+    try:
+        return socket.getaddrinfo(hostname, port)
+    except Exception:
+        error("DNS Lookup for {hostname} failed".format(hostname=hostname))
+        return []
+
+
+def check_icmp_reachability(gai_record):
+    host = gai_record[4][0]
+    family = gai_record[0]
+
+    if family is socket.AddressFamily.AF_INET:
+        process_name = 'ping'
+    else:
+        process_name = 'ping6'
+    child = subprocess.Popen([process_name, host, '-c', '1', '-W', '5'],
+                             stdout=subprocess.PIPE)
+    child.communicate()
+    if child.returncode:
+        error("{host} is icmp unreachable".format(host=host))
+    return True if child.returncode == 0 else False
+
+
+def check_udp_reachability(gai_record):
+    global ip4, ip6
+
+    host, port = gai_record[4][:2]
+    family = gai_record[0]
+
+    if family is socket.AddressFamily.AF_INET:
+        arguments = '-sU -PN'
+    else:
+        arguments = '-sU -PN -6'
+
+    scanner = nmap.PortScanner()
+    result = scanner.scan(host, str(port), arguments)  # -sU requires root
+    state = result['scan'][host]['udp'][port]['state']
+
+    if state == 'closed':
+        error("{host} port {port}/udp is {state}"
+              .format(host=host, port=port, state=state))
+    else:
+        ok("{host} port {port}/udp is {state}"
+           .format(host=host, port=port, state=state))
+
+        if family is socket.AddressFamily.AF_INET:
+            ip4 += 1
+        else:
+            ip6 += 1
+
+    return False if state == 'closed' else True
+
+
+def get_hosts_data(srcdir):
+    for fname in sorted(list(set(os.listdir(srcdir)))):
+        if fname.startswith("."):
+            continue
+
+        fpath = os.path.join(srcdir, fname)
+        if os.path.isfile(fpath):
+            with open(fpath) as f:
+                ignore_key = False
+                addresses = []
+                port = 655  # tinc default port
+
+                for line in f.readlines():
+
+                    if '-----BEGIN RSA PUBLIC KEY-----' in line:
+                        ignore_key = True
+                    elif '-----END RSA PUBLIC KEY-----' in line:
+                        ignore_key = False
+
+                    if line.startswith("#") or ignore_key:
+                        continue
+
+                    chunks = line.split("=")
+                    if len(chunks) == 2:
+                        (k, v) = (x.strip().lower() for x in chunks)
+
+                        if k == "port":
+                            try:
+                                port = int(v)
+                            except ValueError:
+                                error("non-integer default port given")
+                        elif k == "address":
+                            if " " in v:
+                                parts = v.split(' ')
+                                if len(parts) != 2:
+                                    error("unknown address format")
+                                try:
+                                    int(parts[1])
+                                    addresses.append(parts)
+                                except ValueError:
+                                    error("non-integer port given")
+                            else:
+                                addresses.append((v, None))
+                        elif k in ('ecdsapublickey', 'ed25519publickey'):
+                            continue
+                        else:
+                            error("unknown key {key} with value {val}"
+                                  .format(key=k, val=v))
+
+                # set explicit port for address/port pairs
+                for i, addr in enumerate(addresses):
+                    if addr[1] is None:
+                        item = (addr[0], port)
+                        addresses[i] = item
+
+                yield(dict(community=fname, addresses=addresses))
+
+
+def do_checks(srcdir):
+    global ip4, ip6
+
+    errcnt = 0
+    warncnt = 0
+
+    for host in get_hosts_data(srcdir):
+        print("Checking {community}".format(community=host['community']))
+        if not host['addresses']:
+            warn("no addresses specified")
+            warncnt += 1
+        for address in host['addresses']:
+            host, port = address
+
+            # dns lookup
+            records = check_host_lookup(host, port)
+            if not records:
+                errcnt += 1
+            else:
+                for record in records:
+                    if record[1] is not socket.SOCK_DGRAM:
+                        # vpn connections are udp based, so skip
+                        # everything else
+                        continue
+
+                    if not check_icmp_reachability(record):
+                        errcnt += 1
+                    else:
+                        port_state = check_udp_reachability(record)
+                        if not port_state:
+                            errcnt += 1
+
+    print("\nfound {}/{} working ipv4/ipv6 peers".format(ip4, ip6))
+
+    error("{} errors".format(errcnt))
+    warn("{} warnings".format(warncnt))
+
+    return 0 if errcnt == 0 else 1
+
+
+if __name__ == "__main__":
+    parser = OptionParser()
+    parser.add_option("-s", "--sourcedir", dest="src",
+                      help="Location of tinc host files. Default: ../hosts",
+                      metavar="DIR",
+                      default="../hosts/")
+
+    (options, args) = parser.parse_args()
+
+    ret = do_checks(options.src)
+
+    sys.exit(ret)
diff --git a/scripts/gentinc.cfg.sample b/scripts/gentinc.cfg.sample
deleted file mode 100644
index 355009e..0000000
--- a/scripts/gentinc.cfg.sample
+++ /dev/null
@@ -1,8 +0,0 @@
-SVN_DIR="/mnt/data/freifunk-icvpn"
-TMP="/tmp"
-TINC_DIR="/etc/tinc/icvpn"
-TINC_INIT="/etc/init.d/tinc"
-SVN="/usr/bin/svn"
-LOCKDIR="/var/run/gentinccfg"
-SVN_USERNAME=freifunk
-SVN_PASSWORD=freifunk
diff --git a/scripts/gentinccfg b/scripts/gentinccfg
deleted file mode 100755
index 05057d2..0000000
--- a/scripts/gentinccfg
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/bin/bash
-#
-#==========================================================================
-#  This program is free software; you can redistribute it and/or modify 
-#  it under the terms of the GNU General Public License as published by 
-#  the Free Software Foundation; either version 2 of the License, or    
-#  (at your option) any later version.                                  
-#==========================================================================
-#
-set -ix
-# HOW TO USE
-# * Check out the icvpn svn tree to the place where $SVN_DIR points to.
-#   You can do this by running:
-#   mkdir -p /mnt/data
-#   svn co https://kdserv.dyndns.org/svn/christof-icvpn icvpn
-#   Use "freifunk" as username as well as password.
-# * create a /etc/gentinc.cfg file with the following content (remove 
-#   the # signs in the beginning of each line containing a variable) 
-#   and adapt the paths to your system:
-#	# ====== START OF gentinc.cfg ======
-#	# this points to the directory where you checked out the svn tree.
-# 	SVN_DIR="/mnt/data/icvpn"
-# 	TMP="/tmp"
-# 	TINC_DIR="/etc/tinc/icvpn"
-# 	TINC_INIT="/etc/init.d/tinc"
-# 	SVN="/usr/bin/svn"
-# 	LOCKDIR="/var/run/gentinccfg"
-#	SVN_USERNAME=freifunk
-#	SVN_PASSWORD=freifunk
-#	# ====== END OF gentinc.cfg =========
-# * make /etc/gentinc.cfg world readable
-# * run the script from cron on a daily basis
-
-! [[ -f /etc/gentinc.cfg ]] && {
-	echo "config file does not exist in /etc/gentinc.cfg"
-	exit 1
-}
-. /etc/gentinc.cfg
-cleanup() {
-	local exitcode
-	local i
-	exitcode=$1
-	for ((i=0;i<${#TMPFILES[@]};i++))
-	do
-		rm -f ${TMPFILES[i]}
-	done
-	[[ ! $exitcode -eq 0 ]] && 
-		echo "aborted due to error" >&2
-	trap - 1 2 3 6 9 13 14 15
-	rm -f "${LOCKDIR}/PID"
-	rm -rf "${LOCKDIR}"
-	exit ${exitcode:-1}
-}
-
-# obtain lock
-lcount=0
-while ! ( $(mkdir ${LOCKDIR} 2>/dev/null) ) 
-do
-	echo there is already an instance of $0 running as PID: $(cat "${LOCKDIR}/PID" 2>/dev/null)
-	sleep 1
-   ((lcount+=1))
-    if [[ $lcount -gt 4000 ]]
-    then
-      echo unable to obtain lock
-      exit 1
-    fi  
-done
-trap 'cleanup 1' 1 2 3 6 9 13 14 15
-
-# lock obtained
-echo $$ > "${LOCKDIR}/PID"
-
-# make sure we do not overload svn server when running the script from cron
-if [[ $1 != "--nocron" ]]
-then
-	sleep $((RANDOM%3600))
-fi
-
-# create new tinc config
-cd "$SVN_DIR"
-$SVN up --no-auth-cache --username $SVN_USERNAME --password $SVN_PASSWORD >/dev/null
-if [[ $? -gt 0 ]]
-then
-	echo svn update failed - no reload necessary >&2
-	cleanup 2
-fi
-footer=$(mktemp "$TMP/tinc_footer.XXXXXX")
-TMPFILES[${#TMPFILES[@]}]="$footer"
-header=$(mktemp "$TMP/tinc_footer.XXXXXX")
-TMPFILES[${#TMPFILES[@]}]="$header"
-
-for i in ${SVN_DIR}/hosts/*
-do
-	echo "ConnectTo = $(basename $i)" >> "$footer"
-done
-
-grep -v "ConnectTo" "$TINC_DIR/tinc.conf" > "$header"
-cat $header $footer >"$TINC_DIR/tinc.conf"
-
-# exit
-$TINC_INIT reload >/dev/null
-
-cleanup 0
-
diff --git a/scripts/post-merge b/scripts/post-merge
index f45b79f..b2cebf1 100755
--- a/scripts/post-merge
+++ b/scripts/post-merge
@@ -7,6 +7,8 @@
 # 3. create cronjob running "git pull -q -C /etc/tinc/icvpn/"
 #
 
+PATH=/usr/sbin:$PATH
+
 fail() {
   echo "$1" >&2
   exit 1
@@ -18,13 +20,18 @@ test -w $TINCCFG || fail "ERR: $TINCCFG is not writeable"
 
 sed -i '/^ConnectTo/d' $TINCCFG
 
-for HOST in hosts/*; do
+while read HOST; do
   # skip hosts without address
-  grep -q '^Address' -- "$HOST" || continue
+  grep -iq '^Address' -- hosts/"$HOST" || continue
 
-  echo "ConnectTo = ${HOST##*/}" >> $TINCCFG
-done
+  echo "ConnectTo = $HOST" >> $TINCCFG
+done < metanodes
 
-invoke-rc.d tinc reload icvpn
+if hash tinc 2>/dev/null; then
+    # prefer the command line interface that comes with tinc1.1 if it exists
+    tinc -n icvpn reload
+else
+    invoke-rc.d tinc reload icvpn
+fi
 
 exit 0