ソースを参照

Fix fastd role

Markus Lindenberg 9 年 前
コミット
8aaff03df1

+ 0 - 16
inventories/ffdo/group_vars/supernodes/fastd.yml

@@ -1,16 +0,0 @@
-fastd_instances:
-  - name: do00
-    bind: any:10000 interface "eth0" default ipv4
-    interface: mesh-fastd0
-    loglevel: info
-    mode: tap
-    method: salsa2012+umac
-    peer_limit: 125
-    mtu: 1280
-    status_socket: /tmp/fastd00.sock
-    peer_dir: /etc/fastd/do00/dummy
-    on_up_script: |
-      ip link set up $INTERFACE
-      batctl if add $INTERFACE
-    on_verify_script: |
-      /etc/fastd/fastd-blacklist.sh $PEER_KEY

+ 1 - 1
roles/mesh-routing/templates/igp.conf.j2

@@ -6,7 +6,7 @@ protocol direct {
 
 
 protocol ospf IGP {
 protocol ospf IGP {
         area 0.0.0.0 {
         area 0.0.0.0 {
-                interface "mesh-*";
+                interface "bat-*";
                 interface "lo" {
                 interface "lo" {
                         stub;
                         stub;
                 };
                 };

+ 1 - 1
roles/mesh-routing/templates/igp6.conf.j2

@@ -6,7 +6,7 @@ protocol direct {
 
 
 protocol ospf IGP {
 protocol ospf IGP {
         area 0.0.0.0 {
         area 0.0.0.0 {
-                interface "mesh-*";
+                interface "bat-*";
                 interface "lo" {
                 interface "lo" {
                         stub;
                         stub;
                 };
                 };

+ 0 - 26
roles/mesh-vpn-fastd/defaults/main.yml

@@ -1,26 +0,0 @@
----
-# defaults file for fastd
-fastd_repo: http://git.universe-factory.net/fastd/
-fastd_repo_tag: v17
-fastd_install_dir: /opt/fastd
-fastd_build_dir: /usr/src/fastd-build
-fastd_install_from_source: false
-fastd_user_name: fastd
-fastd_user_shell: /bin/false
-fastd_libjson_url: https://launchpad.net/~ondrej/+archive/ubuntu/php5/+build/4910513/+files/libjson-c2_0.11-3%2Bdebphp.org~precise%2B1_amd64.deb
-fastd_libjson_dev_url: https://launchpad.net/~ondrej/+archive/ubuntu/php5/+build/4910513/+files/libjson-c-dev_0.11-3%2Bdebphp.org~precise%2B1_amd64.deb
-fastd_use_rng: false
-
-repo_universe_factory_unsupported_architecture: false
-repo_universe_factory_unsupported_distro: false
-
-libsodium_build_from_source: false
-libsodum_version: 1.0.3
-libsodum_src_url: https://download.libsodium.org/libsodium/releases/libsodium-{{libsodum_version}}.tar.gz
-libsodium_build_dir: /usr/src/
-
-libuecc_build_from_source: false
-libuecc_version: v5
-libuecc_repo: git://git.universe-factory.net/libuecc
-libuecc_repo_dir: /usr/src/
-libuecc_build_dir: /usr/src/libuecc-build

+ 0 - 4
roles/mesh-vpn-fastd/templates/fastd-blacklist.sh.j2

@@ -1,9 +1,5 @@
 #!/bin/bash
 #!/bin/bash
 
 
-#
-# This file is managed by ansible. Do not edit by hand!
-#
-
 PEER_KEY=$1
 PEER_KEY=$1
 
 
 if /bin/grep -Fq $PEER_KEY /etc/fastd/fastd-blacklist.json; then
 if /bin/grep -Fq $PEER_KEY /etc/fastd/fastd-blacklist.json; then

+ 519 - 0
roles/mesh-vpn-fastd/files/fastd.gpg

@@ -0,0 +1,519 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2
+
+mQINBFLNIUUBEADtyPGKZY/BVjqAp68oV5xpY557+KDgXN4jDrdtANDDMjIDakbX
+AD1A1zqXLUREvXMsKA/vacGF2I4/0kwsQhNeOzhGPsBa8y785WFQjxq4LsBJpC4Q
+fDvcheIl4BeKoHzfUYDp4hgPBrKcaRRoBODMwp1FZmJxhRVtiQ2m6piemksF1Wpx
++6wZlcw4YhQdEnw7QZByYYgABv7ZoxSQZzyeR/Py0G5/zg9ABLcTF56UWq+ZkiLE
+Mg/5K5hzUKLYC4h/xNV58mNHBho0k/D4jPmCjXy7bouDzKZjnu+CIsMoW9RjGH39
+3GNCc+F3Xuo35g3L4lZ89AdNhZ0zeMLJCTx5uYOQN5YZP2eHW2PlVZpwtDOR0zWo
+y1c0q6DniYtn0HGStVLuP+MQxuRe2RloJE7fDRfz7/OfOU6mBVkRyMCCPwWYXyEs
+2y8m4akXDvBCPTNMMEPRIy3qcAN4HnOrmnc24qfQzYp9ajFt1YrXMqQySQgcTzuV
+YkYVnEMFBhN6P2EKoKU+6Mee01UFb7Ww8atiqG3U0oxsXbOIVLrrno6JONdYeAvy
+YuZbAxJivU3/RkGLSygZV53EUCfyoNldDuUL7Gujtn/R2/CsBPM+RH8oOVuh3od2
+Frf0PP8p9yYoa2RD7PfX4WXdNfYv0OWgFgpz0leup9xhoUNE9RknpbLlUwARAQAB
+tCZNYXR0aGlhcyBTY2hpZmZlciA8bmVvcmFpZGVyQGNjY2hsLmRlPohGBBMRAgAG
+BQJS/ou2AAoJEJQzENW1prMrqj8AnibnmN9toXCiznFk15XlFACInJU7AJsFvCj/
+u/QHSU6t0jEZjqq6Go/TLIhGBBMRCgAGBQJSzSOlAAoJEKt6iMW4kDPYNCoAn1x8
+wYjyvJSL3gYS3L59eCIhnU8aAKC7oEF54/IuTVi3Dp1iJGDFOMrgL4hrBBARAgAr
+BQJSzVAIBYMB4oUAHhpodHRwOi8vd3d3LmNhY2VydC5vcmcvY3BzLnBocAAKCRDS
+uw0BZdD9WOppAJ9zhIlVDJC6mN6cVstaUFGkJ2MkxACgi/4sTpkNOfYqTcjU4Q0v
+yO9ZY7mIawQQEQIAKwUCVVOWqwWDAeKFAB4aaHR0cDovL3d3dy5jYWNlcnQub3Jn
+L2Nwcy5waHAACgkQ0rsNAWXQ/Vj+AgCcCKhMetX/xU1PRJv3xPvSrg26O5oAoIXj
+i0To+PcjkTzuShVGSkJvNlPaiGsEEBECACsFAlV/LMMFgwHihQAeGmh0dHA6Ly93
+d3cuY2FjZXJ0Lm9yZy9jcHMucGhwAAoJENK7DQFl0P1YTiMAn0AjVYNrbOJw7YRk
+DKn6XFGeFwIJAJ9ZZ1tacH4qEZTs4ONy3+r/1p1cp4kCHAQQAQIABgUCUt01QQAK
+CRDVaLHl6xpuULKCEACyj+G23syapQ+7M78BC1ywUYgHjYeCcXiDT8mmaIAbvITE
+AEAdpyDBQHq86C/ahYUOrcXFUerZbkSahuyw15g4O3xNaEuQyKhgN7rkILcTp1Jp
++fSKthb/XQCclxk0yZ87DjcKF91vK5VBrQ/rle1DxdXNV8II5nSRm1rbMYJuOqup
+c2RtBKkx8T5/oUJGzOaRt6ZhH3THpZYzyPTmHQgjMb2sFuAD16Mx2xxvltAAH7aJ
+n0eP5FLl01XAd2c/Svn8HDnyBzdj9Hco84Ga9LP5Q6jP4AYQH9eyTxqa7CeNOwBU
+uHneBrewmVota1tdE8fXJyVa/XScA9kcsfsdRLmZKQw1AoMiIJXGWghTUsT4i9Gm
+8nmJYaSb3JU9oAaOGMtuBbqMlqONKk564Ho5l82GGzZ6I4MYRKgbUlUIgTarV6OC
+XzOEDNFQsgczN7bqXoJ/Nw2ojc8Tkx8mmPwo/MSkGC2XbhaLaWCSfUA+O3e5Iorp
+ro7D2H/3PfZwv/AvXKu1X0uZlLKFV/wJUqDlXug0yDT9VrnMsbOIla0ggxBVr/h2
+xd0rxOhANmBULuWVFlaMMR3EaQLHPUQ3G6qYQsGbzXp8qmVTru6wcsKQtM6w8+y0
+JOoATMw+3udVQ/pQDtAsaLI/uiTuIQTdFhpjTd+lYTLsrixB1IhgClUdXsr9JYkC
+HAQQAQoABgUCVTE2QwAKCRA4jcCyH2MRJLEiD/9YvLeePmUmj55GSqAOov2hc1/u
++plaMhFE4IVwa8+W9jK8b+ngzkh/i6q5iy/scLleeWGnrvYpQMyd5fIuAta2lYfs
+xD33Sgvv1FrR6AjjpgTDMt27UB6R+lbAEv99K0Ukef8SFxojd2Ur/jNvenvWNhpu
+snAWo6SguIjtUrAiwHMHbro+3N2rTRJeDN3v/t/i6nXmPUSKuW8QEc0TY0e0CTtE
+iA3ySI1xKwng28kXEqTOPw59ovINbNZiBdvqhxaF5gHFCbXLO107P7tf4MXtQfz1
+Xu1EAFH4N+pKuv6dluqdmsoJsHomCUd6MHM/EoYjc0o/aVravRAy2DRqKObdrI+X
+UKiQNTgr3wRflEhyL4MNHq5rk4fq6AsStBLlFVnCp6oGQxVGa1kimD2Cfi4+eqoW
+9fCQ3uKZnxymG2fxb95Vb7j0NLTAnhDSX/esYiA9v6Zo55QKNtUWp6y1eTJtQgM6
+KaAA9psUItZm39d0XHNelfUh4u661T5SjOMjsMrsxouHRYvpWi9e2oBDgeyX0LIT
+f7xB2NtNwK5KXYTva5YGURSsvH0JWtyKkzhaCzPd0FMcfz6rHtrL/+VX2NFl9V2D
+oid7x8fTtgqF5JAtOttDHYQRJFjON24VvbTUBOUUv2IY+x3kMoUhf1dDRPbLP9o7
+X0bDosMm177t5kpZookCHAQTAQIABgUCUt1OfgAKCRBsH3+RDaBpt2Y4D/4jHErp
+LpTotP9ars5CEEqgX/n/Xw2UA5jtMbvEyAWs7kAtmgRKfWGB8GVxBldgPukNmgzO
+1I51MDhARK6py2QSowKUAJCCMBKrzcYxMJAqorH4Lq+hr8uWBp4lM7q3e3kd/Vvd
+zbyufIp9hqP76Qb53GZgCPze6yoYcHUCE0P0KwERJniblA9fR488vXxKWHoeMNzD
+I2FTMEldBNkhZ1u+lMuTWhMuw6a92najQQhPFhTAMPRMh5eLQXLk/oyWbgS4CfLm
++JLt29+tD5J1l0KfElDfVmv8mbu/4L3PFZYPfKwoJEUeQA2GdxDDrhRo+g22hn2K
+6QCCZCruugjhrDvxyO6VPxLQnkjhxkj4JEyX2e2ZFkgMNk8KgEs7yInpGl1241Ym
+2yQp6sxB154MvFlOBXvwR9m6UezJo/NS5ScI/rTe+gZD8NpMilfb/3keUx5UAkfs
+Cv9p40hMQdQL/JGUJX++m8bLjJ8ES56ktTqc0VoHYuVt86HlZYX4MykPwIHRR3Zd
+cZYaY1N4ZPRsYh+QT4gaCaErkraAATqmYeb7u6q3rwMLfxi9WvjT2AQUWx0ZDjsS
+2yQQaz34RpqNcW0kdt9zfV7wRWJnt8QtjeWuJnSTAjiCUZwQQazkXO26L8c+t0Jj
+T6UNCzjjs4x2UxiOmHU77ZgFtle4LlVOzFRbo4kCHAQTAQIABgUCUu/m0QAKCRBD
+asi6RoJHTzYOEACd1dtlI635iYcCAJWhNuQFikbNvpB8mT1eyaYa2cmandjaUzaF
+T9RgcKUD/da8uj5CcqjeCrdgh/mqRSnu8/8CvsrNCXMOSRdZYxBbSmkYMrdMt51H
+g02dmrNGDVsY2jvTDtn2Wg6VLwJ++TkJrZNF2ULo8jDro/g4Tt3jzjsu1CnP4kxj
+PedLBHiLoMkkvURDIpOdCOF0Q7r4ELl2Xdq7wjA28ZVy0TN96lALTikAl3OV2/d+
+1QOmJCcelqOXvZ4lmOtSOcaq+EkUUY+mUv3SY7qZmldMyJl6X3OsBG1U27e9n2ka
+WRenJ8Y5YHtaD3P6g2M9o5flBLB/ntkGWomvpMygaqx1DsDMwE5cCbI57BwGO/jp
+w1Ox82uINYisySQsMCXe1d0UV3AaeicSSNbWPmlYNZyKkK3r+IaCetKl6USsFZnf
+WeZYWUAaWLmkXHhq7B8PK6EsT4yA9gqZKJBwjZcRNXy8w+V/3BxXotqm/tgBRgjW
+dKKUwpKE+nWbvmjZNbE642VilajAc/HGYmTJpWDjAVio0pDfwg7DLOQl4NGAFNHX
+JPat8NBRm/2YMSmgGtDoampEiJ3aH1afcqDb1AzWaKtSx8EuUKO9MkWbae48OjEp
+aIi99JI0So8Er0uPnX1AWAt4oWr/vviFsLeTjFxk+TyvJyyQpPmchKYDuIkCHAQT
+AQIABgUCUxCRZgAKCRC5Vz+WM1J4hAr4D/99bi1O+EtjoM+DvnBKSb4IkjVDNSfs
+JbPyi5qNpX9JUygbF92HICdpiF9yolTfwdLog6maiPPMR54KwLj9204vxoyNZUqT
+1pDXUg7AXz9ByffdnylNpMFmcbsFJ1IpwTIoiFPMsGzu0vPhwUhFsAN78m70UIy8
+NKaH9gByBWU10t1ReoZc0cyTnYVdgMaLELptdgLrCG1M01oMJga7D0+ZxupdGI5l
+mt3rE9qsPNKX6zhlndHbv26IhEA0lukTZRGa1BmsVYw03+t6/AduDxa2FNdmBv5z
+RVpM5xuKV3PT5PyG7ZFk1sOyNTDPSfhPrpfDVKVZR2FsUzV3nU0HWdguZKGt4+fz
+g5MWntYLYDsbcnXa/ZllEdPX2nI/nnhy0u6pbMybqY9btHjB6IAf7KA+ku2YVnvd
+N48wWDkxBjImyAyGKa74ZxQg7aylO6e/4xS9pIqd4+UfIC0tP0NR7tQ/CgRFyjXS
+Gbc0FuZzMGxd5e1OBpJlOvAg8qDhBnT8R/Y5ss/K/C3NSYtov0H9UkCRizD7MkC3
+rXpXNfojswGsdV1d9LfO+QHMBqXhkEgwIUXlCvNlfxV0KbsHp6iyp3HVQ1TM5weU
+C3Kez4K7EE51Rlk+FadCWnespoTZG0TGltV/qaxIQ5EHKeqNizU3w3Snzuh0AKkD
+lZy5LhkzAHcgy4kCIgQTAQoADAUCVLJs6wWDB4YfgAAKCRCsjO/weJzuPjCwEACl
+EXOH2XbdzStZWC5rLdnrGl3IMu0n1Rz1oy7/0Rp59th6tG/j/luLN5hB5g9rg6V4
+K2ubp71eD6lua9laWtwUtin3uFthiUoK7lwXHyz1zIJZOaj3PhvLxQ5xFqjWusox
+UeZ08+yC7pWd9esU/mj/upLfj/Z6dL7ZJr5tzjLxP71TxUpEUo3o+TlBUadkMwX+
+wcewNLDvDiTzuf/SiakIdqYyqrsdUD0VndiG+gg8MP3KiYFAfohUKnExAddN8qB2
+6TQuR8P+UEdMhQxNaatsxFBS9fbXaT9xvvPnuJ4ElrBz3dw3MOrpbBZeyKHVl6l4
++BRlMTV8mKQ7F8k8m3b3ICrnvyjnYoOWUo8/apmOMN5xi+2fyJFTIIYseEEB6Nj2
+skOXGOrOytPi8u1MQ6RucWXXt8MX2tk3hdY7EE1A3jjh8dXTW0/pFaFQl4mA3bsQ
+Z+zYSi2P3JcewDy9OBJYzuKmvMXpmlFRCFXV1W+NDN+GXbEj3LlttONI+UmgbL/s
+8ZnBMDWZcnOijP9Sf25UD+ou058KFupC1h6LnixqMU+xCgrK7b0kE9KISkvbCCYQ
+jNT+b0tcKGxN6On1JSjgCdraWGEvlVKkTmfgoHpaHQZusaWgwX0MoE+KYmYZnplb
+OlvWmNk48Llp/oOKoNOESXB3FChOJ3RqGYX+1sOEIIkCPQQTAQoAJwIbAwULCQgH
+AwUVCgkICwUWAwIBAAIeAQIXgAUCVo+NowUJBaOf3gAKCRAW7z9kyyAdnMgYD/wM
+tAvz/PwibKSejYX/tfw2w7mrCiSLV9ughujZCWNyc9xfkTi6VlGrQ0lvvRqJ3+4a
+omBzVA/KIGZ3wUKEdmemkGEL8LRpMJps8wU6R9B2t9WJaIweXmJKxqDISCX3KdsN
+oe2npsV306kCbeQ8truYcMUYwD9QxKiTG7N51a/sz9Q5xWfczC6UJsgHiUnZsE6P
+WfTSZSeSUDY4qOv+FMv+ZhHnSP8SxHh4g392gQRUdN7YfmPp415+tEQQu657LCKC
+rczT2mVc0sgdelaroOlsfOm9ICgBCfLGRt+nZ1GFFA1QkRrvRNrfjES3Mfal/ZOR
+r7wEjaBc1eQhAeEIx2CAJxeAjygSlo1LyDwMNYOE2j1ZZn/merN+tTJMtfAA5n+N
+DHiPq1dVJb/s4LfFjaIgJHbYaOoSX4YJjbEcyULsXE0hwd5wlsz8Ue8RGj2qFijg
+IIAD+hyDePpntXQXY21BKHj2BKUHp5AQSfSwjXMbMXwoynKxVObiTjrseNC10wQW
+6VxX1ucoXTvWtIer0x/WeEh1lA4ywsoZcY7tjlI4M9BkYbblpU8jQIuOlpMO7Qbe
+xfDzWxGnA6cs/ozFc1LFC3psfZtSp/iXojkfFn0usmh5OYaH1E1bArB9MYjo4t3x
+ODklr1a3uYsfnPrkNOS+9M6rxeF7B8Jb/cQdmEoUTIkCPQQTAQoAJwUCUs0jCQIb
+AwUJA8JnAAULCQgHAwUVCgkICwUWAwIBAAIeAQIXgAAKCRAW7z9kyyAdnLNzD/9g
+WcUU5IhTwi+Rr6i7SCjZRFE4OgaDClkZVFHl9Pdzpvvw48jdRuqNzBKdu+3fqJKU
+t8kvhmvE1jzXywwxCfQzTCjKw56yRMlRP2aKwFOthQh6wGDvBJvGC2AHQEG3g4vK
++aP5OvDbwJ7+kYmlf6rmyT5yLMBYCuxxocCxdO54fqlcz2klMA8LNsDyq0ezACAW
+d+SLDfrJ+rKIsMMxDL6/fGi8jifcgvJVHbpkf4pZaKuPX4aayCoD2Pazln3E/0ej
+jfnGha+nbLdC+aaMgS3F+N8uHEuhEloVzaLyTRXaT4/8g2h1C2I5CORCPxF/Q+iV
+3zT46aJcgpb/Tna8nd74N5pUB2P0N7HPQyNjF3c1YWiYfork6aOsBP2lIKEO9006
+6IQ4JmXSdt412uQoaMHgn99bOnYgF/OhfMP8m5KFTFUz8RPQHLzL+wFikq0URFia
+WGKAEiMWFB3iFPr1QJem/YSnYiHjY136hUex6s1T9ckjrcmKW7pwheDSCGNcxT4N
+KKioJRGDKhINoftOZdWwpHJ4g4YgPIpwu55GKhxn+6phcFlwLafnJNF4ORoIKZoo
+uBxPTzHKzYEBL2hE4SY2KmGbHm/kT4IqOt42le3YneqlhA6SGWXKL4aHOF5WFN06
+JHntMHB6kFDDmd5wn7v+CYKVRrvEi5Ji5GsLdrAGQLQrTWF0dGhpYXMgU2NoaWZm
+ZXIgPG5lb3JhaWRlckBjaGFvdGlrdW0ub3JnPohrBBARAgArBQJVU5arBYMB4oUA
+HhpodHRwOi8vd3d3LmNhY2VydC5vcmcvY3BzLnBocAAKCRDSuw0BZdD9WNbTAJ9f
+STigSXjcIOSmNZqrQ3Vt1q1HfQCfWWUVDbMkvUiazG21Av7InUag7PGIawQQEQIA
+KwUCVX8swwWDAeKFAB4aaHR0cDovL3d3dy5jYWNlcnQub3JnL2Nwcy5waHAACgkQ
+0rsNAWXQ/VhRQACfZ79X5lJjUN2zCfC6JekxbNnIWqgAn125PpkPv48cRzX/0+xK
+3gqDQwTjiQI9BBMBCgAnAhsDBQsJCAcDBRUKCQgLBRYDAgEAAh4BAheABQJWj42k
+BQkFo5/eAAoJEBbvP2TLIB2c9iAQAOkpPZm2w9KMfMIQfaGrbhfpjmt8zDVSmv83
+EOR2KF5yD3CCozVDdCgIr49tb7gJbVXLfu036Vx1Z1fcuwhI1r8GU5YMQ86QVE2D
+F0h0oNlKA8QIjpM/MgXT2QadwpqklAXVtpXsNn2YXiQ6FLyvc3mMBZ4JNatN21G1
+/96tq+TGc9Sbl2ZbsLNcV4qVc69rBa/oyUKk3XNMTcCxapviUtuG2cktoogTRvSw
+r3KFZsXL2nDAQ/oXUKLkI+W/0FFIWZBdWxxLIlcT974TGK8uUWv9mQvqzb5CDenJ
+xqiSnPunMhieTpmoztO1koho8SZSYINYjIYG2a0v4+psszFfEuDs8JCII0S/MYhm
+sZS/g3Y1ynVwY4j122QGkxjPOE6Daf/FYEtOpTQ+pErh1X+1fZao4tRtztjHz1Km
+86LlXTZqx6ZnUfRz9Uv8xe+b9N7iOtUzlTvIdz7XHw7imfCZJ3T2nryQSSFbaFRB
+CXd/dYkdYHze6x/V716Sb+Gxcy6qZMFT8IMWTmnW1pD+uPQ0ah+z8hRzQgMm5Zl7
+DKTJc0Eo2VNePQsTjSCJVdjRuc0IrVVvFgIc/W3Key6iC9riDOm/Zrvek16i+NSg
+R9OHfV+ppLQ/ydg4Gfghp5JaO1rUWIn4hC5TOsqUjYG05qQSEtnMJwmEERENjumh
+rcHlDZ7TiQI9BBMBCgAnBQJVU4fYAhsDBQkDwmcABQsJCAcDBRUKCQgLBRYDAgEA
+Ah4BAheAAAoJEBbvP2TLIB2cl7EQAKUmcMPLIa8wQ5hiLTIAeRlqEEb6Ul84GIZz
+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
+Nk1hdHRoaWFzIFNjaGlmZmVyIDxzY2hpZmZlckBpbmZvcm1hdGlrLnVuaS1sdWVi
+ZWNrLmRlPohGBBMRAgAGBQJS/ou2AAoJEJQzENW1prMr9WEAnRvuCREWSF7+rk41
+K+06fmUmEi8zAKCWWe+n/83oYRdXTJjDdIti9GlsLIhGBBMRCgAGBQJSzSOlAAoJ
+EKt6iMW4kDPY1zkAoNLETKqqbkAHUS5VUFU+QA49okjcAKCqv4zQCmDGx3lgGxGj
+kxqCzfl9S4hrBBARAgArBQJSzVAIBYMB4oUAHhpodHRwOi8vd3d3LmNhY2VydC5v
+cmcvY3BzLnBocAAKCRDSuw0BZdD9WBGmAKCT3K7ETb8O55i1jLRrQLN3Vq5+TQCf
+XqTpg0S28HvOU8JsloemjQfZOLeIawQQEQIAKwUCVVOWqwWDAeKFAB4aaHR0cDov
+L3d3dy5jYWNlcnQub3JnL2Nwcy5waHAACgkQ0rsNAWXQ/VhiIgCfTvsEA2KzpEdq
+zRt+7inthCZ3vYYAn0u/Y0J8F6ZINJkP4e4gCvzkAIZiiGsEEBECACsFAlV/LMMF
+gwHihQAeGmh0dHA6Ly93d3cuY2FjZXJ0Lm9yZy9jcHMucGhwAAoJENK7DQFl0P1Y
+3PMAni2d0vwUlf9L5rIDjV7TAcMZ7H6DAJ0X6Dweh44iQu43mDTmU7hZOlvQQYkC
+HAQQAQIABgUCUt01QQAKCRDVaLHl6xpuUFr7D/9EM9Pcsn4UPMLCStbhJa8CWFLZ
+VFyUwdLeMX8Z26xm/muhjugSGMGtp47U9rJzOTwtAJw1i18hEFfTDBSsCHci6GI4
+7zZrfsRbzUMiQSsd5p7qSyHW6p85mvzQDEBh7+ldtERpDNmKgp5u+rJ/u7WCcc5F
+DHqUO67dPxpUQORf9e0Y/mkdzEY4F5seDZSMoEFdvz3hmLglsBUXa7dwAdJ+InJZ
+mxD3oS2xOTgAfIreps89rrhqV0RwGrCs9fkf1HP2FLeFtRFrqJMHd4B4hMrj9t8d
+gg/zvxU4k4prenZF5kWbMsyKpOOLvzDHgA1OHMY3hq8Sw0dzMkUMz8jniUZfEa4i
+n+tqKcwrX+kBMmuZZV96rlYlN4qT/aU+JVjtTSfNp2f1cm0+SiZ+rp9pC5sn51Lg
+RNyMzaxzEGCtmhbbUWTjwLhhrSwQFnMvVpEcEYxBDACjRg0LrXufXXiBSoyux7em
++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
+xqo6rpCZcK0M2eeq0Hl/uTbZrXd1H5kI8t0cGGlTbC/HeXHuZGuEniA85InBfxzk
+wrrlIdXtKtERqC2D//S+xkS7q7nc3F0fe2gMpXNHkxkRpM9ScisDkvuvkby/VOYE
++TYJRDxY7LtlC/Fs5AUD4sUz4sm2QeDKCyg9fh72CORuBetpD38vLxjW2bx9Cp7r
+T3mbrsodqQ1zinmSdECZ7C1VqzSU9pOI4B5ga4KHmrDMAAv64TzjiGx0DrhWXmxF
+vtKl2ZQ+7GVKRffTtU8pONCNM++UG/GgOfmVPV59yzIKZJoSiQ+fmA+z3z1/EkVq
+Gd7EKk3VgufuCjeV+XR8FH8y3gkizY5tjkrIxTczot4Pw0bk9LzMnGGyF8F16DdB
+9Zfwvsy+Y14UoJaOeY08mUX/s9G2+B13QVtn4k+98BF4mIEj1ophAV9K/fMdyKzo
+bPqa7VSF8ucGxSv0W5hApLQ8TWF0dGhpYXMgU2NoaWZmZXIgPG1hdHRoaWFzLnNj
+aGlmZmVyQHN0dWRlbnQudW5pLWx1ZWJlY2suZGU+iGsEEBECACsFAlV/LMMFgwHi
+hQAeGmh0dHA6Ly93d3cuY2FjZXJ0Lm9yZy9jcHMucGhwAAoJENK7DQFl0P1YQQ4A
+oI+YwvJY/ceWY428GHaU9Go5pjtlAJ99ptrwfTPjNeG62UmF9BymG3W9JYkCPQQT
+AQoAJwIbAwULCQgHAwUVCgkICwUWAwIBAAIeAQIXgAUCVo+NpAUJBaOf3gAKCRAW
+7z9kyyAdnE2AEAC+MsTvyYgpGKW/4F6eVNQX33VslBar6jVdCxsUIvsYxqWwHo1v
+ckTWCbNwZqq+IAnyJO1qQGC1abQK6Go0dNjnDvPO0ktKfLRRfhr3Z0WNwC/JHzE+
+aaWEwhsNuJsDepCeCOwjAJ+xnWS9Y+6lepXUMXGwZpMv6y9ZV0Xm1RXZVu4QkBfN
+T4uoyD1pUN5+6tH+Sv7VPoSQhG1xr51wdX5qJ0z/PWYppQbRq3Jc8jpdV+6s+J7F
+3g2BgfUEl4vXWsCUFt6Cuv/jNXMS7+tDrq9Kb7m4B/N35zvDt0duuluR9MRhKo1m
+nsWDZ22+0y3v62DP02V786KPUTIrqjJPKs8fDejTtPRkKW5fHi+FqSKOfJPk32KC
+WcQDXAAvTWJ7YZfpXRMp6agewE8m7AAdEVuh1dIg072YIFSpykzFRqc/VaSOrA8K
+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
+aJ3hwJHsRYoeqag7PQeo37WXKQ==
+=Okdt
+-----END PGP PUBLIC KEY BLOCK-----

+ 1 - 2
roles/mesh-vpn-fastd/handlers/main.yml

@@ -1,5 +1,4 @@
 ---
 ---
-# handlers file for fastd
 
 
 - name: Restart fastd
 - name: Restart fastd
-  service: name=fastd state=restarted
+  service: name=fastd state=restarted

+ 8 - 4
roles/mesh-vpn-fastd/tasks/blacklist.yml

@@ -1,11 +1,15 @@
 ---
 ---
 
 
+- name: Ensure blacklist file exists
+  file: name=/etc/fastd/fastd-blacklist.json state=touch owner=fastd
+
 - name: Install crontab to update the blacklist
 - name: Install crontab to update the blacklist
   cron:
   cron:
-    name: Update blacklist
+    name: Update fastd blacklist
+    cron_file: fastd-blacklist
+    user: fastd
     minute: '*/5'
     minute: '*/5'
-    job: wget -q -O /etc/fastd/fastd-blacklist.json https://raw.githubusercontent.com/ffruhr/fastdbl/master/fastd-blacklist.json
+    job: curl -s -o /etc/fastd/fastd-blacklist.json https://raw.githubusercontent.com/ffruhr/fastdbl/master/fastd-blacklist.json
 
 
 - name: Install verify shell script
 - name: Install verify shell script
-  template: src=fastd-blacklist.sh.j2 dest=/etc/fastd/fastd-blacklist.sh mode="u=rwx,g=rx,o=r"
-
+  copy: src=fastd-blacklist.sh dest=/etc/fastd/fastd-blacklist.sh mode="u=rwx,g=rx,o=rx"

+ 0 - 43
roles/mesh-vpn-fastd/tasks/debian.yml

@@ -1,43 +0,0 @@
-- name: Install fastd build dependencies
-  when: not repo_universe_factory_available
-  apt: name={{item}} update_cache=yes
-  with_items:
-    - libcap2
-    - libcap-dev
-    - bison
-    - pkg-config
-    - cmake
-    - libssl1.0.0
-    - libssl-dev
-    - git
-    - build-essential
-
-- name: Install rng-tools
-  when: fastd_use_rng
-  apt: name=rng-tools state=present
-
-- name: Make sure that rng-tools uses /dev/urandom
-  when: fastd_use_rng
-  lineinfile:
-    dest: /etc/default/rng-tools
-    line: HRNGDEVICE=/dev/urandom
-
-- include: source.yml
-  when: not repo_universe_factory_available
-
-- name: Download backported libjson-c2
-  when: ansible_distribution == 'Ubuntu' and ansible_distribution_major_version|int < 14
-  get_url: 
-    url="{{ fastd_libjson_url }}"
-    dest="/tmp/libjson-c2.deb"
-
-- name: Install backported libjson-c2
-  when: ansible_distribution == 'Ubuntu' and ansible_distribution_major_version|int < 14
-  apt: deb="/tmp/libjson-c2.deb"
-
-- name: Install fastd via Apt
-  when: repo_universe_factory_available
-  apt: name=fastd state=latest
-
-- name: Add fastd user
-  user: createhome=no system=yes shell={{fastd_user_shell}} name={{fastd_user_name}}

+ 34 - 0
roles/mesh-vpn-fastd/tasks/fastd.yml

@@ -0,0 +1,34 @@
+---
+
+- name: Ensure Universe Factory repository key is installed
+  apt_key:
+    id: CB201D9C
+    data: "{{ lookup('file', 'fastd.gpg') }}"
+
+- name: Add Universe Factory Apt Repository 
+  apt_repository: repo='deb http://repo.universe-factory.net/debian/ sid main'
+
+- name: Install fastd via Apt
+  apt: name=fastd
+
+- name: Add fastd user
+  user: name=fastd system=yes home=/etc/fastd createhome=no
+
+- name: Create fastd config directories
+  file: path=/etc/fastd/{{item.name}}/dummy state=directory
+  with_items: "{{fastd_instances}}"
+
+- name: Create fastd configs
+  template: src=fastd.conf.j2 dest=/etc/fastd/{{item.name}}/fastd.conf
+  with_items: "{{fastd_instances}}"
+  notify: Restart fastd
+
+- name: Create fastd secrets
+  copy: 
+    content: 'secret "{{item.secret}}";\n'
+    dest: /etc/fastd/{{item.name}}/secret.conf
+  with_items: "{{fastd_instances}}"
+  notify: Restart fastd
+
+- name: Autostart fastd
+  service: name=fastd enabled=yes state=started

+ 0 - 16
roles/mesh-vpn-fastd/tasks/libsodium/debian.yml

@@ -1,16 +0,0 @@
-- name: Install libsodium via Apt
-  when: repo_universe_factory_available
-  apt: name={{item}} state=latest update_cache=yes
-  with_items:
-  - libsodium13
-  - libsodium-dev
-
-- name: Install build dependencies for libsodium
-  when: not repo_universe_factory_available
-  apt: name={{item}} state=present
-  with_items:
-  - build-essential
-  - autoconf
-
-- include: source.yml
-  when: not repo_universe_factory_available

+ 0 - 8
roles/mesh-vpn-fastd/tasks/libsodium/main.yml

@@ -1,8 +0,0 @@
----
-# tasks file for libsodium
-
-- include: ubuntu.yml
-  when: ansible_distribution == "Ubuntu"
-
-- include: debian.yml
-  when: ansible_distribution == "Debian"

+ 0 - 18
roles/mesh-vpn-fastd/tasks/libsodium/source.yml

@@ -1,18 +0,0 @@
-- name: Download libsodium
-  get_url: dest={{libsodium_build_dir}} url={{libsodum_src_url}}
-
-- name: Extract libsodium
-  unarchive: dest={{libsodium_build_dir}} copy=no src="/usr/src/libsodium-{{libsodum_version}}.tar.gz" creates="{{libsodium_build_dir}}/libsodium-{{libsodum_version}}"
-
-- name: Configure libsodium
-  register: libsodiumconfigured
-  command: ./configure chdir="{{libsodium_build_dir}}/libsodium-{{libsodum_version}}" creates="{{libsodium_build_dir}}/libsodium-{{libsodum_version}}/Makefile"
-
-- name: Compile libsodium
-  when: libsodiumconfigured|changed
-  register: libsodiumcompiled
-  shell: make && make check chdir="{{libsodium_build_dir}}/libsodium-{{libsodum_version}}"
-
-- name: Install libsodium
-  when: libsodiumcompiled|changed
-  command: make install chdir="{{libsodium_build_dir}}/libsodium-{{libsodum_version}}"

+ 0 - 9
roles/mesh-vpn-fastd/tasks/libsodium/ubuntu.yml

@@ -1,9 +0,0 @@
-- name: Install libsodium via apt
-  when: repo_universe_factory_available
-  apt: name={{item}} state=latest update_cache=yes
-  with_items:
-  - libsodium13
-  - libsodium-dev
-
-- include: source.yml
-  when: not repo_universe_factory_available

+ 0 - 17
roles/mesh-vpn-fastd/tasks/libuecc/debian.yml

@@ -1,17 +0,0 @@
-- name: Install libuecc via Apt
-  when: repo_universe_factory_available
-  apt: name={{item}} state=latest update_cache=yes
-  with_items:
-  - libuecc0
-  - libuecc-dev
-
-- name: Install libuecc build dependencies
-  when: not repo_universe_factory_available
-  apt: name={{item}} state=present
-  with_items:
-  - cmake
-  - build-essential
-  - git
-
-- include: source.yml
-  when: not repo_universe_factory_available

+ 0 - 8
roles/mesh-vpn-fastd/tasks/libuecc/main.yml

@@ -1,8 +0,0 @@
----
-# tasks file for libsodium
-
-- include: debian.yml
-  when: ansible_distribution == "Ubuntu"
-
-- include: debian.yml
-  when: ansible_distribution == "Debian"

+ 0 - 13
roles/mesh-vpn-fastd/tasks/libuecc/source.yml

@@ -1,13 +0,0 @@
-- name: Create dirs
-  file: dest={{item}} state=directory
-  with_items:
-  - "{{libuecc_repo_dir}}"
-  - "{{libuecc_build_dir}}"
-
-- name: Checkout
-  git: repo={{libuecc_repo}} dest={{libuecc_repo_dir}}/libuecc accept_hostkey=yes version={{libuecc_version}}
-
-- name: Build and install libuecc
-  shell: cmake {{libuecc_repo_dir}}/libuecc && make && make install
-  args:
-    chdir: "{{libuecc_build_dir}}"

+ 2 - 46
roles/mesh-vpn-fastd/tasks/main.yml

@@ -1,48 +1,4 @@
 ---
 ---
-# tasks file for fastd
 
 
-- include: repo.yml
-
-- include: libsodium/main.yml
-
-- include: libuecc/main.yml
-
-- include: debian.yml
-  when: ansible_distribution == "Ubuntu"
-
-- include: debian.yml
-  when: ansible_distribution == "Debian"
-
-- name: Create fastd config directories
-  file: path=/etc/fastd/{{item.name}} state=directory recurse=yes
-  with_items:
-    - "{{fastd_instances}}"
-
-- name: Create fastd configs
-  template: src=fastd.conf.j2 dest=/etc/fastd/{{item.name}}/fastd.conf
-  with_items: "{{fastd_instances}}"
-  notify: Restart fastd
-
-- name: Create fastd secrets
-  template: src=secret.conf.j2 dest=/etc/fastd/{{item.name}}/secret.conf
-  with_items: "{{fastd_instances_secret}}"
-  notify: Restart fastd
-
-- name: Create fastd peer include directories
-  when: item.peer_dir is defined
-  file: dest={{item.peer_dir}} state=directory
-  with_items: "{{fastd_instances}}"
-
-- name: Create fastd peer configs
-  when: item.0.peer_dir is defined
-  template: src=peer.config.j2 dest="{{item.0.peer_dir}}/{{item.1.name}}"
-  with_subelements:
-  - "{{fastd_instances | selectattr('peers', 'defined') | list}}"
-  - peers
-
-- name: rng-tools need to run
-  when: fastd_use_rng
-  service: name=rng-tools state=started enabled=yes pattern=/usr/sbin/rngd
-
-- name: fastd needs to autostart
-  service: name=fastd enabled=yes state=started
+- include: fastd.yml
+- include: blacklist.yml

+ 0 - 36
roles/mesh-vpn-fastd/tasks/repo.yml

@@ -1,36 +0,0 @@
----
-# tasks file for repo-universe-factory
-
-- name: Check architecture
-  when: ansible_architecture != 'i386' and ansible_architecture != 'amd64' and ansible_architecture !='x86_64'
-  set_fact: 
-    repo_universe_factory_unsupported_architecture: true
-
-- name: Check Distro
-  when: ansible_distribution != "Debian" and ansible_distribution != "Ubuntu"
-  set_fact:
-    repo_universe_factory_unsupported_distro: true
-
-- set_fact:
-    repo_universe_factory_available: true
-  when: not repo_universe_factory_unsupported_distro and not repo_universe_factory_unsupported_architecture
-
-- set_fact:
-    repo_universe_factory_available: false
-  when: repo_universe_factory_unsupported_distro or repo_universe_factory_unsupported_architecture
-
-- name: Add GPG key for Wheezy backports
-  when: ansible_distribution_release == 'wheezy' and repo_universe_factory_available
-  apt_key: keyserver=pgpkeys.mit.edu id=8B48AD6246925553
-
-- name: Add Wheezy backports
-  when: ansible_distribution_release == 'wheezy' and repo_universe_factory_available
-  apt_repository: repo='deb http://http.debian.net/debian wheezy-backports main' state=present update_cache=yes
-
-- name: Add Universe Factory GPG Key
-  when: repo_universe_factory_available
-  apt_key: keyserver=pgpkeys.mit.edu id=16EF3F64CB201D9C
-
-- name: Add Universe Factory Apt Repository 
-  when: repo_universe_factory_available
-  apt_repository: repo='deb http://repo.universe-factory.net/debian/ sid main' state=present update_cache=yes

+ 0 - 14
roles/mesh-vpn-fastd/tasks/source.yml

@@ -1,14 +0,0 @@
-- name: Clone fastd repo
-  register: clonefastd
-  git: repo={{fastd_repo}} dest=/usr/src/fastd accept_hostkey=yes version={{fastd_repo_tag}}
-
-- name: Create build dirs
-  when: clonelibuecc|changed
-  register: builddircreated
-  file: path={{item}} state=directory
-  with_items:
-    - "{{fastd_build_dir}}"
-
-- name: Build and install fastd
-  when: builddircreated|changed
-  shell: cmake /usr/src/fastd && make && make install chdir={{fastd_build_dir}}

+ 20 - 96
roles/mesh-vpn-fastd/templates/fastd.conf.j2

@@ -1,103 +1,27 @@
-#
-# This file is managed by ansible. Do not edit by hand!
-#
-
-bind {{item.bind}};
+bind {{ primary_v4_address }}:{{ item.port }};
+bind [{{ primary_v6_address | ipaddr('address') }}]:{{ item.port }};
 include "secret.conf";
 include "secret.conf";
-interface "{{item.interface}}";
-log level {{item.loglevel|default('warn')}};
-{% if item.syslog_level is defined %}
-log to syslog level {{item.syslog_level}};
-{% endif %}
-{% if item.stderr_level is defined %}
-log to syslog level {{item.stderr_level}};
-{% endif %}
-mode {{item.mode}};
-method "{{item.method}}";
+include peers from "dummy";
+interface "fastd-{{ item.name }}";
+log to syslog level info;
+mode tap;
+method "salsa2012+umac";
+method "null";
 peer limit {{item.peer_limit}};
 peer limit {{item.peer_limit}};
-hide ip addresses {{item.hide_ip_addressess|default('yes')}};
-mtu {{item.mtu}};
-secure handshakes {{item.secure_handshake|default('yes')}};
-status socket "{{item.status_socket}}";
-user "{{fastd_user_name}}";
-drop capabilities {{item.drop_capabilities|default('yes')}};
-forward {{item.forward|default('no')}};
-hide mac addresses {{item.hide_mac_addresses|default('yes')}};
-{% if item.includes is defined %}
-{% for include in item.includes %}
-include {{include}};
-{% endfor %}
-{% endif %}
-{% if item.peer_includes is defined %}
-{% for include in item.peers %}
-{% if include.file is defined %}
-include peer "{{include.file}}" {% if include.name is defined %}[ as "{{include.name}}" ]{% endif %};
-{% endif %}
-{% endfor %}
-{% endif %}
-{% if item.peer_dir is defined %}
-include peers from "{{item.peer_dir}}";
-{% endif %}
-{% if item.mac is defined %}
-mac "{{item.mac.name}}" use "{{item.mac.implementation}}";
-{% endif %}
-{% if item.packet_mark is defined %}
-packet mark {{item.packet_mark}};
-{% endif %}
-{% if item.on_pre_up_script is defined %}
-on pre-up "
-  {{item.on_pre_up_script}}
-";
-{% endif %}
-{% if item.on_up_script is defined %}
+hide ip addresses yes;
+hide mac addresses yes;
+mtu 1280;
+secure handshakes yes;
+forward no;
+log to syslog level verbose;
+# status socket "/tmp/fastd-{{ item.name }}.sock";
+user "fastd";
+
 on up "
 on up "
-  {{item.on_up_script}}
+  ip link set up $INTERFACE
+  batctl if add $INTERFACE
 ";
 ";
-{% endif %}
 
 
-{% if item.on_verify_script is defined %}
 on verify "
 on verify "
-  {{item.on_verify_script}}
-";
-{% endif %}
-{% if item.on_down_script is defined %}
-on down "
-  {{item.on_down_script}}
-";
-{% endif %}
-{% if item.on_post_down_script is defined %}
-on post-down "
-  {{item.on_post_down_script}}
+  /etc/fastd/fastd-blacklist.sh $PEER_KEY
 ";
 ";
-{% endif %}
-{% if item.on_connect_script is defined %}
-on connect "
-  {{item.on_connect_script}}
-";
-{% endif %}
-{% if item.on_establish_script is defined %}
-on establish "
-  {{item.on_establish_script}}
-";
-{% endif %}
-{% if item.on_disestablish_script is defined %}
-on disestablish "
-  {{item.on_disestablish_script}}
-";
-{% endif %}
-
-{% if item.peers is defined and item.peer_dir is not defined %}
-{% for peer in item.peers %}
-peer "{{peer.name}}" {
-  
-};
-{% endfor %}
-{% endif %}
-
-{% if item.peer_groups is defined %}
-{% for peer_group in item.peer_groups %}
-peer group "{{peer_group-name}}" {
-  
-};
-{% endfor %}
-{% endif %}

+ 0 - 12
roles/mesh-vpn-fastd/templates/peer.config.j2

@@ -1,12 +0,0 @@
-{% if item.1 is defined %}
-{% set peer = item.1 %}
-{% endif %}
-key "{{peer.key}}";
-{% if peer.remotes is defined %}
-{% for remote in peer.remotes %}
-remote {{remote}};
-{% endfor %}
-{% endif %}
-{% if peer.float is defined %}
-float {{peer.float}};
-{% endif %}

+ 0 - 5
roles/mesh-vpn-fastd/templates/secret.conf.j2

@@ -1,5 +0,0 @@
-#
-# This file is managed by ansible. Do not edit by hand!
-#
-
-secret "{{item.secret}}";

+ 3 - 3
site.yml

@@ -9,9 +9,9 @@
     - mesh-interfaces
     - mesh-interfaces
     - mesh-routing
     - mesh-routing
 
 
-# - hosts: supernodes
-#   roles:
-#     - mesh-vpn-fastd
+- hosts: supernodes
+  roles:
+    - mesh-vpn-fastd
 #     - gateway-peering
 #     - gateway-peering
 #     - gateway-nat
 #     - gateway-nat
 #     - service-dns
 #     - service-dns