diff --git a/package/gluon-mesh-olsr12-openvpn/Makefile b/package/gluon-mesh-olsr12-openvpn/Makefile new file mode 100644 index 00000000..6496992e --- /dev/null +++ b/package/gluon-mesh-olsr12-openvpn/Makefile @@ -0,0 +1,13 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=gluon-mesh-olsr12-openvpn +PKG_VERSION=1 + +include ../gluon.mk + +define Package/gluon-mesh-olsr12-openvpn + TITLE:=olsrd v1 to v2 migration fallback vpn + DEPENDS:= +gluon-mesh-olsrd +openvpn +endef + +$(eval $(call BuildPackageGluon,gluon-mesh-olsr12-openvpn)) diff --git a/package/gluon-mesh-olsr12-vxlan/check_site.lua b/package/gluon-mesh-olsr12-openvpn/check_site.lua similarity index 78% rename from package/gluon-mesh-olsr12-vxlan/check_site.lua rename to package/gluon-mesh-olsr12-openvpn/check_site.lua index 4540445d..05a676ed 100644 --- a/package/gluon-mesh-olsr12-vxlan/check_site.lua +++ b/package/gluon-mesh-olsr12-openvpn/check_site.lua @@ -1,4 +1,5 @@ if need_boolean({'mesh', 'olsrd', 'olsr12', 'enable'}, false) then need_number({'mesh', 'olsrd', 'olsr12', 'port'}, false) + need_string({'mesh', 'olsrd', 'olsr12', 'ca'}) need_string({'mesh', 'olsrd', 'olsr12', 'server'}) end diff --git a/package/gluon-mesh-olsr12-vxlan/luasrc/lib/gluon/upgrade/380-gluon-mesh-olsr12-vxlan b/package/gluon-mesh-olsr12-openvpn/luasrc/lib/gluon/upgrade/380-gluon-mesh-olsr12-openvpn similarity index 53% rename from package/gluon-mesh-olsr12-vxlan/luasrc/lib/gluon/upgrade/380-gluon-mesh-olsr12-vxlan rename to package/gluon-mesh-olsr12-openvpn/luasrc/lib/gluon/upgrade/380-gluon-mesh-olsr12-openvpn index 255486f1..2ef5aecf 100755 --- a/package/gluon-mesh-olsr12-vxlan/luasrc/lib/gluon/upgrade/380-gluon-mesh-olsr12-vxlan +++ b/package/gluon-mesh-olsr12-openvpn/luasrc/lib/gluon/upgrade/380-gluon-mesh-olsr12-openvpn @@ -8,20 +8,46 @@ local sysconfig = require 'gluon.sysconfig' local util = require 'gluon.util' local olsrd = require 'gluon.olsrd' +uci:delete('openvpn', 'olsr12_vpn') + if site.mesh.olsrd.olsr12.enable() then -- TODO: gluon_wired once added in mesh-olsrd uci:section('network', 'interface', 'olsr12', { - proto = 'vxlan', - vid = 111, - - port = site.mesh.olsrd.olsr12.port(598), - peeraddr = site.mesh.olsrd.olsr12.server(), - - mtu = 1300, - + ifname = 'olsr12', + proto = 'tap', zone = 'mesh', }) + local cred = io.open('/tmp/olsr12', 'w') + cred:write(sysconfig.primary_mac .. '\n' .. sysconfig.primary_mac .. '\n') + cred:close() + + local ca = io.open('/tmp/olsr12.ca', 'w') + ca:write(site.mesh.olsrd.olsr12.ca()) + ca:close() + + uci:section('openvpn', 'openvpn', 'olsr12_vpn', { + enabled = true, + client = true, + + dev = 'olsr12', + dev_type = 'tap', + + data_ciphers_fallback = 'none', + persist_key = true, + persist_tun = true, + + ca = '/tmp/olsr12.ca', + + verb = 3, + + remote = { + site.mesh.olsrd.olsr12.server() .. " " .. site.mesh.olsrd.olsr12.port(1194) + }, + + auth_user_pass = '/tmp/olsr12', + }) + uci:section('olsrd2', 'interface', 'olsr12_mesh', { ifname = { 'olsr12' }, bindto = uci:get_list('olsrd2', 'wired_mesh', 'bindto'), @@ -38,3 +64,4 @@ end uci:save('olsrd2') uci:save('firewall') uci:save('network') +uci:save('openvpn') diff --git a/package/gluon-mesh-olsr12-vxlan/Makefile b/package/gluon-mesh-olsr12-vxlan/Makefile deleted file mode 100644 index 003a297c..00000000 --- a/package/gluon-mesh-olsr12-vxlan/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=gluon-mesh-olsr12-vxlan -PKG_VERSION=1 - -include ../gluon.mk - -define Package/gluon-mesh-olsr12-vxlan - TITLE:=olsrd v1 to v2 migration fallback vpn - DEPENDS:= +gluon-mesh-olsrd +vxlan -endef - -$(eval $(call BuildPackageGluon,gluon-mesh-olsr12-vxlan))