Zeile 121: |
Zeile 121: |
| <pre> | | <pre> |
| #!/bin/sh | | #!/bin/sh |
| + | |
| + | get_name() { |
| + | case $1 in |
| + | 135) echo "m18---schwansee69";; |
| + | 42) echo "m18---frauentor3";; |
| + | 41) echo "m18---rembrandtweg";; |
| + | 82) echo "m18---jakob2a";; |
| + | 37) echo "m18---wbode13";; |
| + | 62) echo "m18---trierer65";; |
| + | 54) echo "m18---kunstturm";; |
| + | 87) echo "m18---weimarwest";; |
| + | 1) echo "m18---liszt18a";; |
| + | *) echo "m18---unbekannt";; |
| + | esac |
| + | } |
| + | |
| + | write_olsr() { |
| + | echo -e "\n{\nHelloInterval 5.0\nHelloValidityTime 90.0\nTcInterval 3.0\nTcValidityTime 270.0" |
| + | echo -e "MidInterval 15.0\nMidValidityTime 270.0\nHnaInterval 15.0\nHnaValidityTime 90.0" |
| + | } |
| | | |
| THIS="$(nvram get wifi_ipaddr|cut -d'.' -f3)" | | THIS="$(nvram get wifi_ipaddr|cut -d'.' -f3)" |
− | OLSR="/etc/local.olsrd.conf" | + | OLSR="/etc/local.olsrd.conf"; VTUN="/etc/vtund.conf" |
− | CFG="/etc/vtund.conf"
| + | VPN="10.63.254"; SRV="214"; CNT="-1" |
− | VPN="10.63.254" | |
− | SRV="214" | |
| LST="41 82 42 37 62 54 135 87 1" | | LST="41 82 42 37 62 54 135 87 1" |
− | # 0) 41 jens/rembrandt
| |
− | # 1) 82 jakob2a
| |
− | # 2) 42 kraska
| |
− | # 3) 37 lennerhardt/wbode13
| |
− | # 4) 62 trierer65
| |
− | # 5) 54 kunstturm
| |
− | # 6) 135 saxman/schwansee
| |
− | # 7) 87 alfi/weimarwest
| |
− | # 8) 1 liszt18a
| |
− | # 9) ?????
| |
− | CNT="-1"
| |
| | | |
− | rm $OLSR | + | test -e $OLSR && rm $OLSR |
− | rm $CFG | + | test -e $OLSR && rm $CFG |
| killall vtund | | killall vtund |
| + | killall -9 vtund |
| | | |
− | if [ "$THIS" = "214" ] | + | if [ "$THIS" = "$SRV" ] |
| then | | then |
− | echo >$CFG "default {" | + | echo >$VTUN "default { proto udp; type tun; compress no; encrypt no; keepalive yes; multi yes; stat no; }" |
− | echo >>$CFG " proto udp;"
| + | for CLIENT in $LST;do let CNT+=1 |
− | echo >>$CFG " type tun;"
| + | |
− | echo >>$CFG " compress no;"
| + | echo >>$VTUN "$(get_name $CLIENT) { passwd bla; device tun$CNT;" |
− | echo >>$CFG " encrypt no;"
| + | echo >>$VTUN " up { program \"ip addr add $VPN.$THIS peer $VPN.$CLIENT dev %%; ip link set %% mtu 1450 up\"; }; }" |
− | echo >>$CFG " keepalive yes;"
| + | |
− | echo >>$CFG " multi yes;"
| + | echo >>$OLSR "Interface \"tun$CNT\"$(write_olsr)" |
− | echo >>$CFG " stat no;"
| + | echo >>$OLSR -e "\nIp4Broadcast $VPN.$CLIENT\n}" |
− | echo >>$CFG "}"
| + | |
− | for CLIENT in $LST | + | iptables -I POSTROUTING -t nat -o tun$CNT -j MASQUERADE |
− | do let CNT+=1
| |
− | echo >>$CFG "client$CNT {" | |
− | echo >>$CFG " passwd bla;"
| |
− | echo >>$CFG " device tun$CNT;"
| |
− | echo >>$CFG " up {" | |
− | echo >>$CFG " program \"ip addr add $VPN.$THIS peer $VPN.$CLIENT dev %%; ip link set %% mtu 1450 up\";"
| |
− | echo >>$CFG " };"
| |
− | echo >>$CFG "}"
| |
− | echo >>$OLSR "Interface \"tun$CNT\"" | |
− | echo >>$OLSR "{"
| |
− | echo >>$OLSR "HelloInterval 5.0" | |
− | echo >>$OLSR "HelloValidityTime 90.0"
| |
− | echo >>$OLSR "TcInterval 3.0"
| |
− | echo >>$OLSR "TcValidityTime 270.0"
| |
− | echo >>$OLSR "MidInterval 15.0"
| |
− | echo >>$OLSR "MidValidityTime 270.0"
| |
− | echo >>$OLSR "HnaInterval 15.0"
| |
− | echo >>$OLSR "HnaValidityTime 90.0"
| |
− | echo >>$OLSR " "
| |
− | echo >>$OLSR "Ip4Broadcast $VPN.$CLIENT"
| |
− | echo >>$OLSR "}"
| |
− | #iptables -I POSTROUTING -t nat -o tun$CNT -j MASQUERADE | |
| done | | done |
| vtund -s | | vtund -s |
| else | | else |
| CNT=0;for IP in $LST;do if [ "$IP" = "$THIS" ];then NUMMER=$CNT;fi;let CNT+=1;done | | CNT=0;for IP in $LST;do if [ "$IP" = "$THIS" ];then NUMMER=$CNT;fi;let CNT+=1;done |
− | echo >$CFG "client$NUMMER {" | + | |
− | echo >>$CFG " passwd bla;"
| + | echo >$VTUN "$(get_name $THIS) { passwd bla; type tun; persist yes;" |
− | echo >>$CFG " device tun$NUMMER;"
| + | echo >>$VTUN " up { program \"ip addr add dev %% $VPN.$THIS peer $VPN.$SRV; ip link set %% mtu 1450 up\"; }; }" |
− | echo >>$CFG " persist yes;"
| + | |
− | echo >>$CFG " up {" | + | echo >>$OLSR "Interface \"tun0\"$(write_olsr)" |
− | echo >>$CFG " program \"ip addr add dev %% $VPN.$THIS peer $VPN.$SRV; ip link set %% mtu 1450 up\";"
| + | echo >>$OLSR -e "\nIp4Broadcast $VPN.$SRV" |
− | echo >>$CFG " };"
| + | echo >>$OLSR -e "LinkQualityMult $VPN.$SRV 0.1\n}" |
− | echo >>$CFG "}"
| + | |
− | echo >>$OLSR "Interface \"tun$NUMMER\"" | + | vtund $(get_name $THIS) 141.54.160.25 |
− | echo >>$OLSR "{"
| |
− | echo >>$OLSR "HelloInterval 5.0" | |
− | echo >>$OLSR "HelloValidityTime 90.0"
| |
− | echo >>$OLSR "TcInterval 3.0"
| |
− | echo >>$OLSR "TcValidityTime 270.0" | |
− | echo >>$OLSR "MidInterval 15.0"
| |
− | echo >>$OLSR "MidValidityTime 270.0"
| |
− | echo >>$OLSR "HnaInterval 15.0"
| |
− | echo >>$OLSR "HnaValidityTime 90.0"
| |
− | echo >>$OLSR " "
| |
− | echo >>$OLSR "Ip4Broadcast $VPN.214"
| |
− | echo >>$OLSR "LinkQualityMult $VPN.214 0.1"
| |
− | echo >>$OLSR "}"
| |
− | vtund client$NUMMER 141.54.160.25 | |
| fi | | fi |
− | | + | <pre> |
− | sleep 120
| |
− | </pre> | |