aredn/files/etc/init.d/vtundsrv

147 lines
3.8 KiB
Plaintext
Raw Normal View History

2015-04-01 09:42:53 -06:00
#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2011 OpenWrt.org
START=82
STOP=83
SERVER_CONF=/tmp/vtun/vtundsrv.conf
2015-04-01 09:42:53 -06:00
# Starting tun interface is tun50
TUNNUM=50
MAXTUNNUM=$((`uci get aredn.@tunnel[0].maxclients 2>/dev/null` + $TUNNUM - 1))
STUNNUM=${TUNNUM}
2015-04-01 09:42:53 -06:00
network_config() {
local cfg="$1"
local start def_net
# generate the default net
def_net='172.31.1.1'
config_get start "$cfg" start $def_net
}
options_config() {
local cfg="$1"
local new_file="$2"
local port timeout syslog ppp ifconfig route firewall ip
config_get port "$cfg" port "5525"
config_get timeout "$cfg" timeout "60"
config_get syslog "$cfg" syslog "daemon"
config_get ppp "$cfg" ppp "/usr/sbin/pppd"
config_get ifconfig "$cfg" ifconfig "/sbin/ifconfig"
config_get route "$cfg" route "/sbin/route"
Update AREDN to OpenWRT 22.3.2 (Major Upgrade) (#574) * Update to Openwrt 21.02 and add support for the CPE710 v1 Update scripts to change references to ifname to device due to a change in Openwrt naming reverse-wpad-basic-wolfssl and disable SSL on Curl NOTE: The compile host must have python3-distutils installed for gpsd to build * aredn: initial working upgrade to openwrt 21.02.1 * aredn: update 1 to working upgrade to openwrt 21.02.1 * aredn: add cpe710v1 to build config * Andrew's patches * Remove duplicates + display perl * Temp disable wifi extension patch * ifname/ports support * Add spectrum patch back in * Generic function to extra interfaces * New api to get wifi ifname * Disables jails * Style link * aredn: partial upgrade to openwrt 22.0.3.0 added AC device images and partial migration to 22.0.3.0 firewall upgrade pending * aredn: update mesh-release and revert config.mk * Unused * NFT firewall rewrite * Common-isze configs * Fix network layout for hap2 * Use local packages dev (new firewall rules) * Add HAP2 * Add pause after network restart to let bridge reinitialize * Various lua fixes for new lua version * Tweak config * Re-fix networking (lost patch change) * Add new radio names * Tolerate missing wifi * Fix hap-lite switch setup * More devices * New radio id * Build Rocket 5AC lite * Remove need for luci.sys * Remove need for luci.sys * Explicitly name wlan interfaces * Handle different compatibility verisoning * Update networking for switches * ipref version bump * Extra flag for curl * Better compat_version fix * Remove wolfssl * Fix dns server * Fix device name * Unused * Remove things we dont need * Remove unused packages * Generic macaddr overrides * Fix uci commit * Fix luci.template.parser to avoid luci.http loading the real thing * Rocket-M build * Add search-domain dhcp option * Turn of ipv6 * No IPV6 in dnsmasq * Override mac addresses if devices all the same * Working from master (for now) * Put back hostap * Disable old ethmac fixup * Tweak configs * Move back to v22.03.2 Leave ipq4019 builds to master * Need IPV6 to compile nft firewall * Rocket-M fixes * Before we start * WIP * Working snapshot * Cleaned patches * Merged patch * Single patch to support HAP2 * Fix typo * Add nanostation-m * 5/10Mhz patch * 5+10MHz patch for ath10k-ct driver * Extend 2Ghz channel check to include -4 to -1 * Add chanbw setup for ath10k (like ath9k) * Added TP-Link CPE710 v1 * Override firmwares * Missing patch * Dropbear config like 3.22.8.0 * Add Ubiquiti Rocket 5AC Lite * Fix c6 * Update * Need more scan channels * Remove IPV6 * Improve mac fixups * Put back missing nft app * IPv6 removed so dont have to disable it * Fix rocket-m flash bug * Fix nanostation-m * Nanobridge is tiny * Fix wifi order for ar750 * Rocket M5 XW support * New rates * Fix firewall4 so we don't need IPv6 * Allow channel width to be restricted * Move channel list into library * Fix naming * Mechanism to block specific channels on specific radios * Refresh buttons * routerboard-sxt-5nd * CPE605 v1.0 * Improve rocket m xw * tpink * Update patch * Update to remove disable * Remove BW restrictions on cpe710 * Restrict to what has been tested * Remove test BW restrictions * sxtsq-5-ac * Update * Update * powerbeam-m5-300 support * Fix * Fix hap2 * Tidy unused patches * Remove limit * Add ubnt_bullet-m-ar7241 * Added ubnt_nanobeam-ac-gen2 * Fix typo * Tolerate missing dtd ip * Explicitly gix hap2 mac addresses * Fix some broken patches * Hap2 wont work at 5MHz * Ubiquiti LiteBeam 5AC Gen2 * Fix compat_version for sxt 5ac * Update patch * Unused * Fix lan configuration for some devices * Rolling average of noise level * Unused * Split out the ath10k rssi monitor (its very simple at the moment) * Ignore .DS_Store * Reboot if ethernet doesnt come up (but only once!) * reboot returns - add exit * Add some logging info * Fix ] * Check all possibly ethernet bridges * Improve mac fixing * Remove HostAP on small memory devices * Reduce dropbear footprint * Add setsid * Kill hostap when upgrading to save memory * Different way to detect hostapd unavailable * New build steps * Improve manager logging * Fix name conflict for the two monitors * Try to improve test mesh name resolve problem * Migrate tiny to generic (tiny doesnt work properly) * Typo * Another attempt to fix macs for Mikrotik * Protect against missing trackers * Fix wpad for ipq40xx * Remove old tunnel check code * Enable ZRAM swap to aid low memory devices * ath10k noise can something be out of range - protect against that * Updated with current devices and status * Update firmware which has been tested * Updated with more builds * More binary/README * Fix css error * Start noise at sensible base level * Unfix the css so it looks how it use to. * Save as much memory as we can on lowmem nodes * Hide some options on low memory devices * Add "eol" to 32MB devices * Restart network rather than reboot node if it seems to be broken * Fixes * Revert network reset * Fix ar750 networking * Continue to trim tiny configs * More devices * Dump IW output messages * Fix Rocket 5AC intermittent ethernet issue * Ethernet fix for PowerBeam 5AC 500 * More tiny size reduction * More support data * Fixed POE and USB power features * Add Ubiquiti NanoBeam AC (gen1) * NanoStation (not NanoBeam) * Add mii-tool package * Device updates * Bump update time to 5 minutes * Fix ethernet negotiation for rocker-5ac and nanobeam * Fix iplookup * Config changes based on call feedback * Radio listing fixes * Update with more untested builds * Fallback TxMbps extracted from iw station dump * Fix tunnel detection for low memory nodes * Remove unused feed packages * snapshot build * Update stability info * Add powerbeam-5ac-500 * Typo * Add missing 3.22.1.0 * Add MikroTik LHG 5 AC * Fix permissions * Fix permissions * AirGrid's take Bullet builds * Mikrotik AC3 * Improve supportdata structure a little to make it easier to find things * Restore WAN VLAN overrides * Fix vlan regex for hap2 and hap3 * Support old and new style poe controls * hap-ac3 is version 1.1 * Handle typo in some openwrt config files * Fix HAP AC3 install * Update hap ac3 status * Support user overrides for network ports (non-swconfig devices) * LHG 5AC support * Remove -nand * Remove non-working platform.sh change * tunnel weight override * Omit LinkQualityMult when value is 1 * Add mANTBox 19s and 15s * Support ath79 mikrotik devices which require ath10k in the initramfs Co-authored-by: apcameron <apcameron@softhome.net> Co-authored-by: Joe AE6XE <ae6xe@arrl.net> Co-authored-by: Joe Ayers <joe@arrl.net>
2022-12-22 13:22:49 -07:00
config_get firewall "$cfg" firewall "/usr/sbin/nft"
2015-04-01 09:42:53 -06:00
config_get ip "$cfg" ip "/sbin/ip"
echo "options {" >> $new_file
echo " port $port;" >> $new_file
echo " timeout $timeout;" >> $new_file
echo " syslog $syslog;" >> $new_file
echo " ppp $ppp;" >> $new_file
echo " ifconfig $ifconfig;" >> $new_file
echo " route $route;" >> $new_file
echo " firewall $firewall;" >> $new_file
echo " ip $ip;" >> $new_file
echo "}" >> $new_file
echo " " >> $new_file
}
# ALLOW THESE CLIENTS TO CONNECT TO THIS SERVER vtundsrv.conf
allowed_client_config() {
local cfg="$1"
local new_file="$2"
local enabled node pwd netip clientip serverip persist compress keepalive proto
2015-04-01 09:42:53 -06:00
if [ $TUNNUM -le $MAXTUNNUM ]
2015-04-01 09:42:53 -06:00
then
config_get_bool enabled "$cfg" enabled
config_get node "$cfg" node
2015-04-01 09:42:53 -06:00
config_get passwd "$cfg" passwd
config_get netip "$cfg" netip
config_get clientip "$cfg" clientip
config_get serverip "$cfg" serverip
config_get persist "$cfg" persist "yes"
2016-05-15 16:35:43 -06:00
config_get compress "$cfg" compress "no"
2015-04-01 09:42:53 -06:00
config_get keepalive "$cfg" keepalive "yes"
config_get proto "$cfg" proto "tcp"
#cname=`echo $node`-`echo $netip | tr "." "-"`
2015-04-01 09:42:53 -06:00
if [ $enabled -eq 1 ]
then
echo "$node {" >> $new_file
2015-04-01 09:42:53 -06:00
echo " passwd $passwd;" >> $new_file
echo " type tun;" >> $new_file
echo " proto $proto;" >> $new_file
echo " device tun${TUNNUM};" >> $new_file
echo " persist $persist;" >> $new_file
echo " compress $compress;" >> $new_file
echo " keepalive $keepalive;" >> $new_file
echo " up {" >> $new_file
echo -e " ifconfig \"%% ${serverip} netmask 255.255.255.252 pointopoint ${clientip} mtu 1450\";" >> $new_file
echo -e " route \"add -net ${netip}/30 gw ${clientip}\";" >> $new_file
echo " };" >> $new_file
echo " down {" >> $new_file
echo " };" >> $new_file
echo "}" >> $new_file
echo " " >> $new_file
TUNNUM=$(( TUNNUM + 1 ))
fi
else
echo "## TOO MANY TUNNEL CONNECTIONS (${TUNNUM}) ##" >> $new_file
fi
}
apply_uci_config() {
#sh -c '. /lib/functions.sh; include /lib/config; uci_apply_defaults'
sh -c '. /lib/functions.sh; include /lib/config'
2015-04-01 09:42:53 -06:00
}
start() {
configmode=$(uci -q -c /etc/local/uci/ get hsmmmesh.settings.config)
if [ -x "/usr/sbin/vtund" -a "$configmode" = "mesh" ]
then
apply_uci_config
config_load vtun
#if options section doesn't exist, add it
j=`uci get vtun.@options[0]`
if [ $? -ne 0 ]
then
j=`uci add vtun options`
j='uci commit vtun'
config_load vtun
fi
# Remove the current config files
mkdir -p /tmp/vtun
rm -f $SERVER_CONF
config_foreach network_config network
config_foreach options_config options "$SERVER_CONF"
config_foreach allowed_client_config client "$SERVER_CONF"
# START SERVER LISTENER IF NECESSARY
if [ "${TUNNUM}" != "${STUNNUM}" ]
then
/usr/sbin/vtund -s -f $SERVER_CONF
fi
fi
2015-04-01 09:42:53 -06:00
}
stop() {
# only if vtun is installed
if [ -x "/usr/sbin/vtund" ]
then
# find the vtund SERVER process... --- FIX THIS
for x in `ps -w|grep -F 'vtund[s]:'|grep -v grep|awk '{print $1}'`
do
s=`echo $s $x`
done
kill $s
fi
2015-04-01 09:42:53 -06:00
}