Änderungen

Zur Navigation springen Zur Suche springen
1.561 Bytes hinzugefügt ,  01:48, 1. Okt. 2006
→‎Skript bzw. fertiges Programm: tcp statt udp geht besser
Zeile 122: Zeile 122:  
<pre>
 
<pre>
 
#!/bin/sh
 
#!/bin/sh
 +
# /etc/init.d/S52.weimarnetz.vpn $VER 0.1 - 2006okt1 - Bastian Bittorf
 +
 +
# Verbinden von funkmaessig getrennten Wireless-Mesh-Wolken ueber ein VPN:
 +
# Dies ist ein speziell angepasstes Skript zum erstellen einer vtund-Konfiguration
 +
# und zum erstellen einer OLSR-Konfiguration mit passenden Interfacenamen.
 +
# Das Skript ist exakt das selbe auf Client und Server, es ist also kein manueller
 +
# Eingriff noetig. Es wird eine SternTopologie erzeugt mit einem Server mit
 +
# oeffentlicher IP-Adresse und den Clients hinter NAT-Gateways.
 +
# Es werden unauthentifizierten, unkomprimierte und unverschluesselte Tunnel erzeugt.
 +
 +
# Variablendefinitionen
 +
THIS="$(nvram get wifi_ipaddr|cut -d'.' -f3)"
 +
OLSR="/etc/local.olsrd.conf"; VTUN="/etc/vtund.conf"
 +
VPN="10.63.254"; SRV="214"; CNT="-1"; SRVPUBLIC="141.54.160.25"
 +
# Liste aller teilnehmenden Clients (Netzknotennummern)
 +
LST="41 82 42 37 62 54 135 87 1"
 +
 +
# Funktion um Netzknotennummer einem Ort zuzuweisen,fuer lesbare Konfig
 +
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
 +
}
 +
 +
# Funktion zum schreiben der OLSR-Konfigdaten
 +
write_olsr() { root@M18linksys:~# cat /etc/init.d/S52.weimarnetz.vpn_starten
 +
#!/bin/sh
 +
# /etc/init.d/S52.weimarnetz.vpn $VER 0.1 - 2006okt1 - Bastian Bittorf
    
# Verbinden von funkmaessig getrennten Wireless-Mesh-Wolken ueber ein VPN:
 
# Verbinden von funkmaessig getrennten Wireless-Mesh-Wolken ueber ein VPN:
Zeile 168: Zeile 205:  
  then
 
  then
 
  # ok,skript laeuft auf dem server, also passende Konfigs machen, und fuer jeden client eine extra OLSR-interface-config
 
  # ok,skript laeuft auf dem server, also passende Konfigs machen, und fuer jeden client eine extra OLSR-interface-config
  echo  >$VTUN "default { proto udp; type tun; compress no; encrypt no; keepalive yes; multi yes; stat no; }"
+
  echo  >$VTUN "default { proto tcp; type tun; compress no; encrypt no; keepalive yes; multi yes; stat no; }"
 
  for CLIENT in $LST;do let CNT+=1
 
  for CLIENT in $LST;do let CNT+=1
 
   echo >>$VTUN "$(get_name $CLIENT) { passwd bla; device tun$CNT;"
 
   echo >>$VTUN "$(get_name $CLIENT) { passwd bla; device tun$CNT;"
 
   echo >>$VTUN " up { program \"ip addr add $VPN.$THIS peer $VPN.$CLIENT dev %%; ip link set %% mtu 1450 up\"; }; }"
 
   echo >>$VTUN " up { program \"ip addr add $VPN.$THIS peer $VPN.$CLIENT dev %%; ip link set %% mtu 1450 up\"; }; }"
   echo >>$OLSR -e "# $(get_name $CLIENT)\nInterface \"tun$CNT\"$(write_olsr)\n\nIp4Broadcast $VPN.$CLIENT\n}"
+
   echo >>$OLSR -e "Interface \"tun$CNT\"$(write_olsr)\n\nIp4Broadcast $VPN.$CLIENT\n}"
 
   # gleich noch ein NAT, damit man ohne Probleme auf beide Tunnelseiten kommt.
 
   # gleich noch ein NAT, damit man ohne Probleme auf beide Tunnelseiten kommt.
 
   iptables -I POSTROUTING -t nat -o tun$CNT -j MASQUERADE
 
   iptables -I POSTROUTING -t nat -o tun$CNT -j MASQUERADE

Navigationsmenü