altes wiki durchsortiert zum veröffentlichen
This commit is contained in:
commit
57b6e0e2d3
92 changed files with 4949 additions and 0 deletions
56
technikzeugs/Einkaufsliste.md
Normal file
56
technikzeugs/Einkaufsliste.md
Normal file
|
@ -0,0 +1,56 @@
|
|||
## Händler
|
||||
|
||||
### Senetic
|
||||
https://www.senetic.de/
|
||||
Account mit "Passwort für Webseiten" eingerichtet
|
||||
###omg
|
||||
https://shop.omg.de
|
||||
nichts getan
|
||||
### Unielektro
|
||||
http://www.unielektro.de/
|
||||
Noch nicht angemeldet
|
||||
### Zajadacz
|
||||
http://www.zajadacz.de/
|
||||
Noch nichts gemacht
|
||||
### Triotronik
|
||||
http://www.triotronik.com
|
||||
Warte auf anmeldung
|
||||
Angemeldet
|
||||
### König
|
||||
http://www.elektrogrosshandel-koenig.de/uber-uns/
|
||||
mal nrufen
|
||||
### Kabeltronik
|
||||
http://www.kabeltronik.de
|
||||
anrufen
|
||||
### Intos
|
||||
https://www.intos.de
|
||||
Noch nichts gemacht
|
||||
### MAG
|
||||
http://www.mag.de
|
||||
Warte auf anmeldung.
|
||||
ABGELEHNT
|
||||
|
||||
## Verbrauchsmaterial
|
||||
#### Outdoor-Patchkabel
|
||||
Diese Kabel sollten UV-Resistent und flexibel sein und einen Nagetierschutz besitzen.
|
||||
* http://www.intos.de/produktuebersicht/kabel/rohware-unkonfektioniert/verlegekabel-cat.6-cat.7/70500p/inline-aussen-verlegekabel-cat.7a-s/ftp-pimf-4x2x0-58-awg23-kupfer-1200mhz-pe-mantel-schwarz-500m?ffRefKey=LFrdxnmJJ
|
||||
* http://www.intos.de/produktuebersicht/kabel/rohware-unkonfektioniert/verlegekabel-cat.6-cat.7/70102f/verlegekabel-cat.7-1000mhz-s/ftp-pimf-awg23-100m-outdoor-schwarz?ffRefKey=LFrdxnmJJ
|
||||
* Top und scheisse teuer: http://www.lappkabel.de/kabelfinder.html#%2Fpage%2F1235%3Fquery%3Dnull%26article_no%3D2170496%26facetSelection%3D{%22properties%22%3A[%22attribute_cable_rodent_protection_boolS%3Atrue%22%2C%22attribute_uvresistant_boolS%3Atrue%22]%2C%22product_group%22%3A[%22attribute_product_groups_stringM%3AETHERNET%20und%20LAN%22]}
|
||||
* http://www.kabeltronik.de/elektronik-industrie/netzwerkkabel/cat-5e-pur-flex-utp-sc/
|
||||
* https://webshop.unielektro.de/produkte/200EG000001EC000830--Datenkabel
|
||||
#### Steckverbinder RJ-45
|
||||
* http://www.lappkabel.de/produkte/online-kataloge-shop/datenuebertragungssyssteme-fuer-ethernet-technologie/steckverbinder-fuer-office-anwendungen/rj45-steckverbinder/steckverbinder-rj45-cat5-hirose-tm11.html?tx_dgpsolr[q]=rj45
|
||||
* http://www.ebay.de/itm/Ubiquiti-Tough-Cable-Connectors-RJ45-CAT6-CAT5E-STP-Outdoor-100-pcs-TC-CON-/161741813867?hash=item25a890386b:g:YkwAAOxycD9TRQ4R
|
||||
#### Outdoor- LWL:
|
||||
Nagetierschutz und Längswasserfest
|
||||
* http://www.mag.de/de/Fibre-Optic-Lichtwellenleiter/LWL-Aussenkabel
|
||||
|
||||
* 20m Kletterseil
|
||||
* 4x NanoStationLoco M5
|
||||
* 62,00€ http://www.bima-elektro.de/_netzwerktechnik/netzwerkkommunikation/nanostation-loco-m5-antenna-13dbi-outdoor-client-mimo-5ghz.html
|
||||
* 53,41$ http://www.nv-networks.com/en/ubiquiti-nanostation-loco-m5-airmax.html
|
||||
* Bei Reichelt gibt es keine Nanostations nur son Kram:
|
||||
https://www.reichelt.de/WLAN-Router-Access-Point/TPLINK-CPE210/3/index.html?&ACTION=3&LA=2&ARTICLE=150844&GROUPID=5840&artnr=TPLINK+CPE210
|
||||
* Und die DInger kommen hoffentlich noch: http://www.bima-elektro.de/_netzwerktechnik/netzwerkkommunikation/ubiquiti-nanobeam-m5-5ghz-16-db-airmax-cpe.html
|
||||
* 4x 20m Patch Kabel
|
||||
|
12
technikzeugs/configs/AirOS/Readme.md
Normal file
12
technikzeugs/configs/AirOS/Readme.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
## AirOS configs
|
||||
|
||||
Normalerweise unterscheiden sich "Nanostation M5" und "Nanobeam M5" in den Konfigurationen etwas. Bisher ließen sich die Konfigurationen jedoch austauschen. Trotzdem ist stets nochmal vorsichtig zu testen.
|
||||
|
||||
### Accesspoint
|
||||
Wir ein Router als Accesspoint konfiguriert, so läuft auch ihm kein Routing. Dafür gibt er die erlaubten Frequenzbänder vor.
|
||||
|
||||
### Station
|
||||
Die Station steht auf dem Dach der Nutzenden und verbindet sich mit einem Accesspoint. Sie beihaltet auch das Routing für das Subnetz der Nutzenden.
|
||||
|
||||
### Nanobeam Station Switch
|
||||
Auf dieser Station sind VLANs konfiguriert, so das sie zusammen mit einem geeigneten Switch über vier Ports verfügt.
|
200
technikzeugs/configs/AirOS/accesspoint.cfg
Normal file
200
technikzeugs/configs/AirOS/accesspoint.cfg
Normal file
|
@ -0,0 +1,200 @@
|
|||
aaa.1.br.devname=br0
|
||||
aaa.1.devname=ath0
|
||||
aaa.1.driver=madwifi
|
||||
aaa.1.radius.acct.1.status=disabled
|
||||
aaa.1.radius.auth.1.status=disabled
|
||||
aaa.1.radius.macacl.status=disabled
|
||||
aaa.1.ssid=slowpoke
|
||||
aaa.1.status=enabled
|
||||
aaa.1.wpa.1.pairwise=CCMP
|
||||
aaa.1.wpa.key.1.mgmt=WPA-PSK
|
||||
aaa.1.wpa.mode=2
|
||||
aaa.1.wpa.psk=gibthiereinpasswortein
|
||||
aaa.status=enabled
|
||||
bridge.1.devname=br0
|
||||
bridge.1.fd=1
|
||||
bridge.1.port.1.devname=eth0
|
||||
bridge.1.port.1.status=enabled
|
||||
bridge.1.port.2.devname=ath0
|
||||
bridge.1.port.2.status=enabled
|
||||
bridge.1.status=enabled
|
||||
bridge.1.stp.status=disabled
|
||||
bridge.status=enabled
|
||||
dhcp6c.status=disabled
|
||||
dhcpc.1.devname=br0
|
||||
dhcpc.1.fallback=192.168.1.20
|
||||
dhcpc.1.fallback_netmask=255.255.255.0
|
||||
dhcpc.1.status=enabled
|
||||
dhcpc.status=enabled
|
||||
dhcpd.status=disabled
|
||||
ebtables.status=enabled
|
||||
ebtables.sys.arpnat.1.devname=ath0
|
||||
ebtables.sys.arpnat.1.status=enabled
|
||||
ebtables.sys.arpnat.status=disabled
|
||||
ebtables.sys.eap.1.devname=ath0
|
||||
ebtables.sys.eap.1.status=enabled
|
||||
ebtables.sys.eap.status=enabled
|
||||
ebtables.sys.status=enabled
|
||||
ebtables.sys.vlan.status=disabled
|
||||
gui.language=en_US
|
||||
httpd.https.port=443
|
||||
httpd.https.status=enabled
|
||||
httpd.status=enabled
|
||||
netconf.1.autoip.status=disabled
|
||||
netconf.1.devname=eth0
|
||||
netconf.1.hwaddr.mac=
|
||||
netconf.1.hwaddr.status=disabled
|
||||
netconf.1.ip=0.0.0.0
|
||||
netconf.1.mtu=1500
|
||||
netconf.1.netmask=255.255.255.0
|
||||
netconf.1.promisc=enabled
|
||||
netconf.1.role=bridge_port
|
||||
netconf.1.status=enabled
|
||||
netconf.1.up=enabled
|
||||
netconf.2.allmulti=enabled
|
||||
netconf.2.autoip.status=disabled
|
||||
netconf.2.devname=ath0
|
||||
netconf.2.hwaddr.mac=
|
||||
netconf.2.hwaddr.status=disabled
|
||||
netconf.2.ip=0.0.0.0
|
||||
netconf.2.mtu=1500
|
||||
netconf.2.netmask=255.255.255.0
|
||||
netconf.2.promisc=enabled
|
||||
netconf.2.role=bridge_port
|
||||
netconf.2.status=enabled
|
||||
netconf.2.up=enabled
|
||||
netconf.3.autoip.status=disabled
|
||||
netconf.3.devname=br0
|
||||
netconf.3.hwaddr.mac=
|
||||
netconf.3.hwaddr.status=disabled
|
||||
netconf.3.ip=0.0.0.0
|
||||
netconf.3.mtu=1500
|
||||
netconf.3.netmask=255.255.255.0
|
||||
netconf.3.role=mlan
|
||||
netconf.3.status=enabled
|
||||
netconf.3.up=enabled
|
||||
netconf.status=enabled
|
||||
netmode=bridge
|
||||
ppp.status=disabled
|
||||
radio.1.ack.auto=enabled
|
||||
radio.1.ackdistance=600
|
||||
radio.1.acktimeout=25
|
||||
radio.1.antenna.gain=16
|
||||
radio.1.antenna.id=4
|
||||
radio.1.cable.loss=0
|
||||
radio.1.chanbw=40
|
||||
radio.1.chanshift=0
|
||||
radio.1.countrycode=276
|
||||
radio.1.cwm.enable=0
|
||||
radio.1.cwm.mode=2
|
||||
radio.1.devname=ath0
|
||||
radio.1.dfs.status=enabled
|
||||
radio.1.forbiasauto=0
|
||||
radio.1.freq=0
|
||||
radio.1.ieee_mode=11naht40
|
||||
radio.1.mcastrate=15
|
||||
radio.1.mode=master
|
||||
radio.1.obey=enabled
|
||||
radio.1.polling=enabled
|
||||
radio.1.pollingnoack=0
|
||||
radio.1.pollingpri=
|
||||
radio.1.rate.auto=enabled
|
||||
radio.1.rate.mcs=15
|
||||
radio.1.reg_obey=enabled
|
||||
radio.1.status=enabled
|
||||
radio.1.subsystemid=0xe815
|
||||
radio.1.txpower=20
|
||||
radio.countrycode=276
|
||||
radio.rate_module=atheros
|
||||
radio.status=enabled
|
||||
resolv.host.1.name=wurze2_3
|
||||
resolv.host.1.status=enabled
|
||||
resolv.nameserver.1.ip=
|
||||
resolv.nameserver.1.status=enabled
|
||||
resolv.nameserver.2.ip=
|
||||
resolv.nameserver.2.status=enabled
|
||||
resolv.status=disabled
|
||||
route.1.comment=
|
||||
route.1.devname=br0
|
||||
route.1.gateway=192.168.1.1
|
||||
route.1.ip=0.0.0.0
|
||||
route.1.netmask=0
|
||||
route.1.status=disabled
|
||||
route.status=enabled
|
||||
snmp.community=reudnetz
|
||||
snmp.contact=reudnetz
|
||||
snmp.location=reudnetz
|
||||
snmp.status=enabled
|
||||
sshd.auth.key.1.comment=yannik@Hydrogen
|
||||
sshd.auth.key.1.status=enabled
|
||||
sshd.auth.key.1.type=ssh-rsa
|
||||
sshd.auth.key.1.value=AAAAB3NzaC1yc2EAAAADAQABAAABAQDelf/wYfaV9MgefRzySO9cH8F9zswsYZ5i/huq73VpxQd6VJWsLxMUdaevkeA2v4QgTdweh2sWFSdZoTskmh0JvfQw4GVO0kZBVtTqrh8jf/9arMGGnkMyp7qbfZr1Ewa/SAeGU/XX4XhmFda8D38oKdhpX5FVmbOXu2cpWOz/hLLcRm4GNXGsApJfqrmUEXrRHxQCUEYG2Gi6Q3GbbSKbt0rskfMQ4O5TDSwvPsI8yJVC7dCxVSIPmXjysTfRkXSAVZOBGfiZBKeUCaEiZ20rTbhJkXOlAVVsnhf2mfLOpgx7+/g0g/tceU3RxWkSjizcdWyWYBbXroVtf22Zu6+H
|
||||
sshd.auth.key.2.comment=a@echo
|
||||
sshd.auth.key.2.status=enabled
|
||||
sshd.auth.key.2.type=ssh-rsa
|
||||
sshd.auth.key.2.value=AAAAB3NzaC1yc2EAAAADAQABAAABAQC9gm2ycpPksVSTPAHFa3FW93nIW0kLo7+U4c6yj0Ggxn0TeTvmtR/+wFwAWo6u6ftDAqkErykDkFg7/T566/Nsxxhl/Gzv82yVZvE8TeyOI282w9rOjhIWMwXYzBUtgDau8hfT57XezfCy1cJphvyEWqbf1c7FLVAQ6JItTsVXeUz0OBD3xF2lCp98UpEM8QdPaIl3hcGasyZE649z4ba1aWg6yHpPum65ZhRrFom/79/AVjAX/1U21XUkqaUQzfakbhWi2CXlty5CLrc6XNyizMfbGuktiQJ1ytE9z5+hpVIl3YjG7VIoutvfbtz3e887Ye7sR/jU4DKBaoyG7fAR
|
||||
sshd.auth.key.3.comment=amanita@reudnetz.org
|
||||
sshd.auth.key.3.status=enabled
|
||||
sshd.auth.key.3.type=ssh-rsa
|
||||
sshd.auth.key.3.value=AAAAB3NzaC1yc2EAAAADAQABAAACAQDUIZhEESnVUtjYgbxheBWMDVMU10r0PviGUhH14ar88SITx+dO5z28ACUPL6pFqni/gYW2bd1MDRUVskV+O+Z/rVAxwjokADGHXmWbUPeB1fy2t1RZ6iQ/85eLR4A4KDG/pMabhvVhM+u+TqKE6YlWwNrd9eKyeuDMm7gHcTjPetdacmdwDRzEwEYfT5I1xNFv7R0G8HzlFQbxqlYBvpuH1zOeI7MgPHR8K8a3E4AtLqxMcC+fNdJQYB+ksFVM2TrpOSCwcIEqzjtonaUL648N3fLZVgCmq5CzY8aGdBCLy/mnM/npUY9Io1SiP4g7X1Dio+iNdwzxOvw/7yOUrDxKCtTYXhOaYHWluhFtPXqJddpEsIPOuFSgdWLsDMfoYEAf8427TRWj0Eg73dNP5YImmlvbW5nkKRsibLBtMJLbamMF3hsjoKvpIcLO/vnGPPL0ZN6g759dTrdfnodW1tRr4ckPNi2254pkJg6KqnwjnqAGr/pWWmYb4t+sNHwUZCfLq/pw8X0CfarbqeNddt2sHYmGfnzVJ5oZv3fbLqB45iAR7FRpngY3lDE4ejZVMZGVzeztZKsBK3M801ZhEu49LTm5CDVs9/XtesloknNTSBk1GLVDC4oeQJ3GuRsQCOh/5NMgsYC4HgEJcyad5grzO/xre7ZcNMtCi/w8aMAJMQ==
|
||||
sshd.auth.key.4.comment=inocybe@reudnetz.org
|
||||
sshd.auth.key.4.status=enabled
|
||||
sshd.auth.key.4.type=ssh-rsa
|
||||
sshd.auth.key.4.value=AAAAB3NzaC1yc2EAAAADAQABAAACAQC7v7FvkxQ/DpCMhbqYLlxGP+YRvE2S+ofyi8O4w/0MuxFruWvmXud1UDhCyKl2YZKTuWOUhduf9ESljL+T6Oqm0tOPBZ5YBvvyV10j8uSgmlZBGdaJJjoWOvM2vCddW5WqZg19wnIfYHyPrpr48FRuKn3ZCBg9UmvwoSR46IL96bIfgzCDEkRySQ/JM2ACGXWrK3ftKvCkfFF90M4e9pXtyZyO1Dk/Wo+IGpZj3JGsLxzF3onAQ/Jueb0kBFpo36sz71iD7aj3ZehuLfFkLwiwLif07/pRob20h1vq6FeOg6JcbBDQU2TluneZ94RT+hplxjG99DD11sOXgAHWREOMsyqaAISeH8VGp4UdTw36F2i5z+gpBmrSBFaMxFm3iPI4ROu6EeKD92jq5ymADICuXn9UdcddYi+6fyhP+SuxS3KYuAWIjXi35wrHjxN5YLL56CBN2i0VeJ4AXIo4+oIIXIBy9KZYZKxsftGOm8/nnErpmFDX63Vqxd+vDY/JUUAswcWxnOdba97FKORBEnagchoCgxHK22yIbY38W1jXa3tq2XxIlAACRxLdYrF1Lp2sIZxtAkPcCC2JlhJYLwadFDYllxcn5d7npIV3y2R3aghyOKjxqPzPDnPF+7B/3zWOYSohkHvkFxNIuL20kocdcHVCukAXRCd+LdRFzWUU3w==
|
||||
sshd.auth.key.5.comment=gnummig@gmail.com
|
||||
sshd.auth.key.5.status=enabled
|
||||
sshd.auth.key.5.type=ssh-rsa
|
||||
sshd.auth.key.5.value=AAAAB3NzaC1yc2EAAAADAQABAAACAQC4W5CtqmLJj+lWzethWfBra9ogI6W30HQWCrRfccEi236lcpsX5k6O+suEoA7HwVDzcIonHMdahlrB8Z7cW8AubJ2ykhNWk/0oVN8TF6eUNS8XoridNwAE7zSOOxP7O2A1x+sGH2PuCBtVpZvgETTsothnZJH1bs2ya3pn8l/NJg2VUnj7bxcK89nMQUH6Y+m0d2faJnOJJEx6e4k25buTR6/osjJd7fd/lFS8H1qWgN3mM891yMlpW9F+be+NQfpyo6QktT+aMkRsosAqAwtsAVECvXdEDhyge2XJHPAaYREnHKN5SNJifOrB3evMDdJRUshu1jXOIEOJJueQhIPfJuriCR+WH6YmG2XZ3nkPpk/aqCaWMnXWpNrbsiTFVRsAzrvKU8RQtfnWU3PD358dcpmTAhA+5rHgYAYQiNovwQb6BvxebX6aKIrSWWj5tnrfhykRe4gWhMHQe5E2fxB1yx3H/Hxwwc3d/uIB6utrckP2vUKksjd0eXb218hGLtCJJ3WWl3sgJpVMCB5yOoXePf6q0oSmbb6oNDl3ILMhFV7tc8ezIdMmpZNIxkobA5Kfm/Oujx2tFw52FiwmR5EPJfZojeZa81iplH0f652isACijmSI/WdHGpejca/1s3P888GxH/G9Flln8vI/qQ1cFryy1+AAuFDhULdUYu50gQ==
|
||||
sshd.auth.passwd=disabled
|
||||
sshd.port=22
|
||||
sshd.status=enabled
|
||||
system.button.reset=disabled
|
||||
system.cfg.version=65546
|
||||
system.date.status=disabled
|
||||
system.date.timestamp=
|
||||
system.eirp.status=disabled
|
||||
system.latitude=
|
||||
system.longitude=
|
||||
system.timezone=GMT
|
||||
update.check.status=enabled
|
||||
users.1.name=reudnetz
|
||||
users.1.password=$1$pX.zGqdr$26Dgkm/.7s24EB0PBRPNO1
|
||||
users.1.status=enabled
|
||||
users.2.status=disabled
|
||||
users.status=enabled
|
||||
vlan.status=disabled
|
||||
wireless.1.addmtikie=enabled
|
||||
wireless.1.ap=
|
||||
wireless.1.authmode=1
|
||||
wireless.1.autowds=disabled
|
||||
wireless.1.devname=ath0
|
||||
wireless.1.hide_ssid=disabled
|
||||
wireless.1.mac_acl.policy=allow
|
||||
wireless.1.mac_acl.status=disabled
|
||||
wireless.1.scan_list.channels=5770,5775,5780,5785,5790,5795,5800,5805,5810,5815,5820,5825,5830,5835,5840,5845,5850,5855,5860
|
||||
wireless.1.scan_list.status=enabled
|
||||
wireless.1.security.type=none
|
||||
wireless.1.ssid=slowpoke
|
||||
wireless.1.status=enabled
|
||||
wireless.1.wds.1.peer=
|
||||
wireless.1.wds.2.peer=
|
||||
wireless.1.wds.3.peer=
|
||||
wireless.1.wds.4.peer=
|
||||
wireless.1.wds.5.peer=
|
||||
wireless.1.wds.6.peer=
|
||||
wireless.1.wds.status=enabled
|
||||
wireless.hideindoor.status=disabled
|
||||
wireless.status=enabled
|
||||
wpasupplicant.device.1.devname=ath0
|
||||
wpasupplicant.device.1.driver=madwifi
|
||||
wpasupplicant.device.1.profile=WPA-PSK
|
||||
wpasupplicant.device.1.status=disabled
|
||||
wpasupplicant.profile.1.name=WPA-PSK
|
||||
wpasupplicant.profile.1.network.1.bssid=
|
||||
wpasupplicant.profile.1.network.1.eap.1.status=disabled
|
||||
wpasupplicant.profile.1.network.1.key_mgmt.1.name=WPA-PSK
|
||||
wpasupplicant.profile.1.network.1.pairwise.1.name=CCMP
|
||||
wpasupplicant.profile.1.network.1.proto.1.name=RSN
|
||||
wpasupplicant.profile.1.network.1.psk=gibthiereinpasswortein
|
||||
wpasupplicant.profile.1.network.1.ssid=sichlor
|
||||
wpasupplicant.status=disabled
|
403
technikzeugs/configs/AirOS/nanobeam_station_switch.cfg
Normal file
403
technikzeugs/configs/AirOS/nanobeam_station_switch.cfg
Normal file
|
@ -0,0 +1,403 @@
|
|||
aaa.1.status=disabled
|
||||
radio.1.ani.status=disabled
|
||||
wireless.1.sens=0
|
||||
radio.1.thresh62g=
|
||||
radio.1.thresh62b=
|
||||
radio.1.thresh62a=
|
||||
wireless.1.l2_isolation=disabled
|
||||
netconf.2.allmulti=enabled
|
||||
netconf.2.autoneg=enabled
|
||||
radio.1.ampdu.status=enabled
|
||||
radio.1.ampdu.bytes=50000
|
||||
radio.1.ampdu.frames=32
|
||||
wireless.1.signal_led4=68
|
||||
wireless.1.signal_led3=73
|
||||
wireless.1.signal_led2=76
|
||||
wireless.1.signal_led1=84
|
||||
wireless.1.signal_led_status=enabled
|
||||
wireless.1.compression=0
|
||||
wireless.1.frameburst=0
|
||||
wireless.1.fastframes=0
|
||||
radio.1.rts=off
|
||||
wireless.1.wmmlevel=
|
||||
wireless.1.wmm=enabled
|
||||
aaa.1.wpa.psk=gibhiereinpasswortein
|
||||
aaa.status=disabled
|
||||
bridge.status=enabled
|
||||
bridge.1.status=enabled
|
||||
bridge.1.devname=br0
|
||||
bridge.1.stp.status=disabled
|
||||
bridge.1.port.1.status=enabled
|
||||
bridge.1.port.1.devname=ath0
|
||||
bridge.1.port.2.status=enabled
|
||||
bridge.1.port.2.devname=eth0
|
||||
bridge.1.comment=management bridge
|
||||
dhcp6c.status=disabled
|
||||
dhcp6d.status=disabled
|
||||
dhcpc.status=enabled
|
||||
dhcpc.1.devname=br0
|
||||
dhcpc.1.fallback=192.168.10.1
|
||||
dhcpc.1.fallback_netmask=255.255.255.0
|
||||
dhcpc.1.status=enabled
|
||||
dhcpd.status=enabled
|
||||
dhcpd.1.status=disabled
|
||||
dhcpd.1.dns.1.server=
|
||||
dhcpd.1.dns.1.status=disabled
|
||||
dhcpd.1.dns.2.server=
|
||||
dhcpd.1.dns.2.status=disabled
|
||||
dhcpd.1.devname=eth0
|
||||
dhcpd.1.dnsproxy=enabled
|
||||
dhcpd.1.end=10.6.5.254
|
||||
dhcpd.1.lease_time=600
|
||||
dhcpd.1.netmask=255.255.255.0
|
||||
dhcpd.1.start=10.6.4.2
|
||||
dhcpd.2.status=enabled
|
||||
dhcpd.2.dns.1.server=
|
||||
dhcpd.2.dns.1.status=enabled
|
||||
dhcpd.2.dns.2.server=
|
||||
dhcpd.2.dns.2.status=enabled
|
||||
dhcpd.2.devname=eth0.101
|
||||
dhcpd.2.dnsproxy=disabled
|
||||
dhcpd.2.end=10.6.8.254
|
||||
dhcpd.2.lease_time=3600
|
||||
dhcpd.2.netmask=255.255.255.0
|
||||
dhcpd.2.start=10.6.8.2
|
||||
dhcpd.3.status=enabled
|
||||
dhcpd.3.dns.1.server=
|
||||
dhcpd.3.dns.1.status=enabled
|
||||
dhcpd.3.dns.2.server=
|
||||
dhcpd.3.dns.2.status=enabled
|
||||
dhcpd.3.devname=eth0.102
|
||||
dhcpd.3.dnsproxy=disabled
|
||||
dhcpd.3.end=10.6.9.254
|
||||
dhcpd.3.lease_time=3600
|
||||
dhcpd.3.netmask=255.255.255.0
|
||||
dhcpd.3.start=10.6.9.2
|
||||
dhcpd.4.status=enabled
|
||||
dhcpd.4.dns.1.server=
|
||||
dhcpd.4.dns.1.status=enabled
|
||||
dhcpd.4.dns.2.server=
|
||||
dhcpd.4.dns.2.status=enabled
|
||||
dhcpd.4.devname=eth0.103
|
||||
dhcpd.4.dnsproxy=disabled
|
||||
dhcpd.4.end=10.6.10.254
|
||||
dhcpd.4.lease_time=3600
|
||||
dhcpd.4.netmask=255.255.255.0
|
||||
dhcpd.4.start=10.6.10.2
|
||||
dhcpd.5.status=enabled
|
||||
dhcpd.5.dns.1.server=
|
||||
dhcpd.5.dns.1.status=enabled
|
||||
dhcpd.5.dns.2.server=
|
||||
dhcpd.5.dns.2.status=enabled
|
||||
dhcpd.5.devname=eth0.104
|
||||
dhcpd.5.dnsproxy=disabled
|
||||
dhcpd.5.end=10.6.11.254
|
||||
dhcpd.5.lease_time=3600
|
||||
dhcpd.5.netmask=255.255.255.0
|
||||
dhcpd.5.start=10.6.11.2
|
||||
discovery.cdp.status=enabled
|
||||
discovery.status=enabled
|
||||
dyndns.status=disabled
|
||||
ebtables.status=enabled
|
||||
ebtables.sys.arpnat.1.devname=ath0
|
||||
ebtables.sys.arpnat.1.status=enabled
|
||||
ebtables.sys.arpnat.status=disabled
|
||||
ebtables.sys.eap.1.devname=ath0
|
||||
ebtables.sys.eap.1.status=enabled
|
||||
ebtables.sys.eap.status=enabled
|
||||
ebtables.sys.status=enabled
|
||||
ebtables.sys.vlan.status=enabled
|
||||
ebtables.sys.vlan.1.status=enabled
|
||||
ebtables.sys.vlan.1.devname=eth0
|
||||
ebtables.sys.vlan.1.id=101
|
||||
ebtables.sys.vlan.1.comment=switchport 1
|
||||
ebtables.sys.vlan.2.status=enabled
|
||||
ebtables.sys.vlan.2.devname=eth0
|
||||
ebtables.sys.vlan.2.id=102
|
||||
ebtables.sys.vlan.2.comment=switchport 2
|
||||
ebtables.sys.vlan.3.status=enabled
|
||||
ebtables.sys.vlan.3.devname=eth0
|
||||
ebtables.sys.vlan.3.id=103
|
||||
ebtables.sys.vlan.3.comment=switchport 3
|
||||
ebtables.sys.vlan.4.status=enabled
|
||||
ebtables.sys.vlan.4.devname=eth0
|
||||
ebtables.sys.vlan.4.id=104
|
||||
ebtables.sys.vlan.4.comment=switchport 4
|
||||
gui.language=en_US
|
||||
gui.network.advanced.status=enabled
|
||||
httpd.https.port=443
|
||||
httpd.https.status=enabled
|
||||
httpd.port=80
|
||||
httpd.session.timeout=900
|
||||
httpd.status=enabled
|
||||
ip6tables.status=disabled
|
||||
iptables.status=enabled
|
||||
iptables.1.status=enabled
|
||||
iptables.1.cmd=-A FIREWALL --src 10.6.8.0/22 --dst 192.168.42.1/32 -j ACCEPT
|
||||
iptables.1.comment=allow outgoing connection to the server and the rest of the internet
|
||||
iptables.2.status=enabled
|
||||
iptables.2.cmd=-A FIREWALL --src 10.6.8.0/22 --dst ! 192.168.42.0/24 -j ACCEPT
|
||||
iptables.2.comment=only allow traffic from correct subnet, disallow management access
|
||||
iptables.3.status=enabled
|
||||
iptables.3.cmd=-A FIREWALL -i br0 -j ACCEPT
|
||||
iptables.3.comment=accept all incoming traffic from wlan. this ist important to avoid the management rules from ubiquiti, which disallows incoming connections to the management interface
|
||||
iptables.4.status=enabled
|
||||
iptables.4.cmd=-A FIREWALL -i eth0 --protocol 17 --src 0.0.0.0/0 --sport 67:68 --dport 67:68 -j ACCEPT
|
||||
iptables.4.comment=allow DHCP, dhcpclients use 0.0.0.0 until they get an adress
|
||||
iptables.5.status=enabled
|
||||
iptables.5.cmd=-A FIREWALL -i eth0.101 --protocol 17 --src 0.0.0.0/0 --sport 67:68 --dport 67:68 -j ACCEPT
|
||||
iptables.5.comment=allow dhcp
|
||||
iptables.6.status=enabled
|
||||
iptables.6.cmd=-A FIREWALL -i eth0.102 --protocol 17 --src 0.0.0.0/0 --sport 67:68 --dport 67:68 -j ACCEPT
|
||||
iptables.6.comment=allow dhcp
|
||||
iptables.7.status=enabled
|
||||
iptables.7.cmd=-A FIREWALL -i eth0.103 --protocol 17 --src 0.0.0.0/0 --sport 67:68 --dport 67:68 -j ACCEPT
|
||||
iptables.7.comment=allow dhcp
|
||||
iptables.8.status=enabled
|
||||
iptables.8.cmd=-A FIREWALL -i eth0.104 --protocol 17 --src 0.0.0.0/0 --sport 67:68 --dport 67:68 -j ACCEPT
|
||||
iptables.8.comment=allow dhcp
|
||||
iptables.9.status=enabled
|
||||
iptables.9.cmd=-A FIREWALL -j DROP
|
||||
iptables.9.comment=disallow anything else
|
||||
iptables.sys.dmz.status=disabled
|
||||
iptables.sys.fw.status=enabled
|
||||
iptables.sys.masq.status=disabled
|
||||
iptables.sys.mgmt.1.devname=br0
|
||||
iptables.sys.mgmt.1.status=disabled
|
||||
iptables.sys.mgmt.status=disabled
|
||||
iptables.sys.portfw.status=disabled
|
||||
iptables.sys.status=enabled
|
||||
iptables.sys.upnpd.status=disabled
|
||||
iptables.sys.upnpd.devname=
|
||||
netconf.status=enabled
|
||||
netconf.1.status=enabled
|
||||
netconf.1.devname=br0
|
||||
netconf.1.mtu=1500
|
||||
netconf.1.role=wan
|
||||
netconf.1.autoip.status=disabled
|
||||
netconf.1.hwaddr.status=disabled
|
||||
netconf.1.hwaddr.mac=
|
||||
netconf.1.ip=0.0.0.0
|
||||
netconf.1.netmask=255.255.255.0
|
||||
netconf.1.promisc=enabled
|
||||
netconf.1.up=enabled
|
||||
netconf.2.status=enabled
|
||||
netconf.2.devname=eth0
|
||||
netconf.2.mtu=1500
|
||||
netconf.2.role=bridge_port
|
||||
netconf.2.autoip.status=disabled
|
||||
netconf.2.hwaddr.status=disabled
|
||||
netconf.2.hwaddr.mac=
|
||||
netconf.2.ip=0.0.0.0
|
||||
netconf.2.netmask=255.255.255.0
|
||||
netconf.2.promisc=enabled
|
||||
netconf.2.up=enabled
|
||||
netconf.3.status=enabled
|
||||
netconf.3.devname=eth0.101
|
||||
netconf.3.mtu=1500
|
||||
netconf.3.role=lan
|
||||
netconf.3.autoip.status=disabled
|
||||
netconf.3.hwaddr.status=disabled
|
||||
netconf.3.hwaddr.mac=
|
||||
netconf.3.ip=10.6.8.1
|
||||
netconf.3.netmask=255.255.255.0
|
||||
netconf.3.up=enabled
|
||||
netconf.4.status=enabled
|
||||
netconf.4.devname=eth0.102
|
||||
netconf.4.mtu=1500
|
||||
netconf.4.role=lan
|
||||
netconf.4.autoip.status=disabled
|
||||
netconf.4.hwaddr.status=disabled
|
||||
netconf.4.hwaddr.mac=
|
||||
netconf.4.ip=10.6.9.1
|
||||
netconf.4.netmask=255.255.255.0
|
||||
netconf.4.up=enabled
|
||||
netconf.5.status=disabled
|
||||
netconf.5.devname=br0
|
||||
netconf.5.mtu=1500
|
||||
netconf.5.role=
|
||||
netconf.5.autoip.status=disabled
|
||||
netconf.5.hwaddr.status=disabled
|
||||
netconf.5.hwaddr.mac=
|
||||
netconf.5.up=enabled
|
||||
netconf.6.status=enabled
|
||||
netconf.6.devname=ath0
|
||||
netconf.6.mtu=1500
|
||||
netconf.6.role=bridge_port
|
||||
netconf.6.autoip.status=disabled
|
||||
netconf.6.hwaddr.status=disabled
|
||||
netconf.6.hwaddr.mac=
|
||||
netconf.6.ip=0.0.0.0
|
||||
netconf.6.netmask=255.255.255.0
|
||||
netconf.6.up=enabled
|
||||
netconf.7.status=disabled
|
||||
netconf.7.devname=br0
|
||||
netconf.7.mtu=1500
|
||||
netconf.7.role=mlan
|
||||
netconf.7.autoip.status=disabled
|
||||
netconf.7.hwaddr.status=disabled
|
||||
netconf.7.hwaddr.mac=
|
||||
netconf.7.up=enabled
|
||||
netconf.8.status=enabled
|
||||
netconf.8.devname=eth0.103
|
||||
netconf.8.mtu=1500
|
||||
netconf.8.role=lan
|
||||
netconf.8.autoip.status=disabled
|
||||
netconf.8.hwaddr.status=disabled
|
||||
netconf.8.hwaddr.mac=
|
||||
netconf.8.ip=10.6.10.1
|
||||
netconf.8.netmask=255.255.255.0
|
||||
netconf.8.up=enabled
|
||||
netconf.9.status=enabled
|
||||
netconf.9.devname=eth0.104
|
||||
netconf.9.mtu=1500
|
||||
netconf.9.role=lan
|
||||
netconf.9.autoip.status=disabled
|
||||
netconf.9.hwaddr.status=disabled
|
||||
netconf.9.hwaddr.mac=
|
||||
netconf.9.ip=10.6.11.1
|
||||
netconf.9.netmask=255.255.255.0
|
||||
netconf.9.up=enabled
|
||||
netmode=router
|
||||
ntpclient.status=disabled
|
||||
ppp.status=disabled
|
||||
pwdog.status=disabled
|
||||
radio.1.ack.auto=enabled
|
||||
radio.1.ackdistance=600
|
||||
radio.1.acktimeout=25
|
||||
radio.1.antenna.gain=16
|
||||
radio.1.antenna.id=4
|
||||
radio.1.cable.loss=0
|
||||
radio.1.chanbw=40
|
||||
radio.1.countrycode=276
|
||||
radio.1.cwm.enable=0
|
||||
radio.1.cwm.mode=1
|
||||
radio.1.devname=ath0
|
||||
radio.1.dfs.status=enabled
|
||||
radio.1.forbiasauto=0
|
||||
radio.1.ieee_mode=11naht40
|
||||
radio.1.mcastrate=15
|
||||
radio.1.mode=managed
|
||||
radio.1.obey=enabled
|
||||
radio.1.polling=enabled
|
||||
radio.1.pollingnoack=0
|
||||
radio.1.pollingpri=
|
||||
radio.1.rate.auto=enabled
|
||||
radio.1.rate.mcs=15
|
||||
radio.1.reg_obey=enabled
|
||||
radio.1.status=enabled
|
||||
radio.1.subsystemid=0xe815
|
||||
radio.1.txpower=20
|
||||
radio.countrycode=276
|
||||
radio.rate_module=atheros
|
||||
radio.status=enabled
|
||||
resolv.status=disabled
|
||||
resolv.host.1.name=ida39_1
|
||||
resolv.host.1.status=enabled
|
||||
resolv.nameserver.1.ip=
|
||||
resolv.nameserver.1.status=enabled
|
||||
resolv.nameserver.2.ip=
|
||||
resolv.nameserver.2.status=enabled
|
||||
route.status=enabled
|
||||
route.1.ip=
|
||||
route.1.netmask=
|
||||
route.1.gateway=
|
||||
route.1.comment=
|
||||
route.1.status=disabled
|
||||
route6.status=enabled
|
||||
route6.1.ip=
|
||||
route6.1.netmask=
|
||||
route6.1.gateway=
|
||||
route6.1.comment=
|
||||
route6.1.status=enabled
|
||||
snmp.community=reudnetz
|
||||
snmp.contact=reudnetz
|
||||
snmp.location=reudnetz
|
||||
snmp.status=enabled
|
||||
sshd.auth.key.1.comment=yannik@Hydrogen
|
||||
sshd.auth.key.1.status=enabled
|
||||
sshd.auth.key.1.type=ssh-rsa
|
||||
sshd.auth.key.1.value=AAAAB3NzaC1yc2EAAAADAQABAAABAQDelf/wYfaV9MgefRzySO9cH8F9zswsYZ5i/huq73VpxQd6VJWsLxMUdaevkeA2v4QgTdweh2sWFSdZoTskmh0JvfQw4GVO0kZBVtTqrh8jf/9arMGGnkMyp7qbfZr1Ewa/SAeGU/XX4XhmFda8D38oKdhpX5FVmbOXu2cpWOz/hLLcRm4GNXGsApJfqrmUEXrRHxQCUEYG2Gi6Q3GbbSKbt0rskfMQ4O5TDSwvPsI8yJVC7dCxVSIPmXjysTfRkXSAVZOBGfiZBKeUCaEiZ20rTbhJkXOlAVVsnhf2mfLOpgx7+/g0g/tceU3RxWkSjizcdWyWYBbXroVtf22Zu6+H
|
||||
sshd.auth.key.2.comment=a@echo
|
||||
sshd.auth.key.2.status=enabled
|
||||
sshd.auth.key.2.type=ssh-rsa
|
||||
sshd.auth.key.2.value=AAAAB3NzaC1yc2EAAAADAQABAAABAQC9gm2ycpPksVSTPAHFa3FW93nIW0kLo7+U4c6yj0Ggxn0TeTvmtR/+wFwAWo6u6ftDAqkErykDkFg7/T566/Nsxxhl/Gzv82yVZvE8TeyOI282w9rOjhIWMwXYzBUtgDau8hfT57XezfCy1cJphvyEWqbf1c7FLVAQ6JItTsVXeUz0OBD3xF2lCp98UpEM8QdPaIl3hcGasyZE649z4ba1aWg6yHpPum65ZhRrFom/79/AVjAX/1U21XUkqaUQzfakbhWi2CXlty5CLrc6XNyizMfbGuktiQJ1ytE9z5+hpVIl3YjG7VIoutvfbtz3e887Ye7sR/jU4DKBaoyG7fAR
|
||||
sshd.auth.key.3.comment=amanita@reudnetz.org
|
||||
sshd.auth.key.3.status=enabled
|
||||
sshd.auth.key.3.type=ssh-rsa
|
||||
sshd.auth.key.3.value=AAAAB3NzaC1yc2EAAAADAQABAAACAQDUIZhEESnVUtjYgbxheBWMDVMU10r0PviGUhH14ar88SITx+dO5z28ACUPL6pFqni/gYW2bd1MDRUVskV+O+Z/rVAxwjokADGHXmWbUPeB1fy2t1RZ6iQ/85eLR4A4KDG/pMabhvVhM+u+TqKE6YlWwNrd9eKyeuDMm7gHcTjPetdacmdwDRzEwEYfT5I1xNFv7R0G8HzlFQbxqlYBvpuH1zOeI7MgPHR8K8a3E4AtLqxMcC+fNdJQYB+ksFVM2TrpOSCwcIEqzjtonaUL648N3fLZVgCmq5CzY8aGdBCLy/mnM/npUY9Io1SiP4g7X1Dio+iNdwzxOvw/7yOUrDxKCtTYXhOaYHWluhFtPXqJddpEsIPOuFSgdWLsDMfoYEAf8427TRWj0Eg73dNP5YImmlvbW5nkKRsibLBtMJLbamMF3hsjoKvpIcLO/vnGPPL0ZN6g759dTrdfnodW1tRr4ckPNi2254pkJg6KqnwjnqAGr/pWWmYb4t+sNHwUZCfLq/pw8X0CfarbqeNddt2sHYmGfnzVJ5oZv3fbLqB45iAR7FRpngY3lDE4ejZVMZGVzeztZKsBK3M801ZhEu49LTm5CDVs9/XtesloknNTSBk1GLVDC4oeQJ3GuRsQCOh/5NMgsYC4HgEJcyad5grzO/xre7ZcNMtCi/w8aMAJMQ==
|
||||
sshd.auth.key.4.comment=inocybe@reudnetz.org
|
||||
sshd.auth.key.4.status=enabled
|
||||
sshd.auth.key.4.type=ssh-rsa
|
||||
sshd.auth.key.4.value=AAAAB3NzaC1yc2EAAAADAQABAAACAQC7v7FvkxQ/DpCMhbqYLlxGP+YRvE2S+ofyi8O4w/0MuxFruWvmXud1UDhCyKl2YZKTuWOUhduf9ESljL+T6Oqm0tOPBZ5YBvvyV10j8uSgmlZBGdaJJjoWOvM2vCddW5WqZg19wnIfYHyPrpr48FRuKn3ZCBg9UmvwoSR46IL96bIfgzCDEkRySQ/JM2ACGXWrK3ftKvCkfFF90M4e9pXtyZyO1Dk/Wo+IGpZj3JGsLxzF3onAQ/Jueb0kBFpo36sz71iD7aj3ZehuLfFkLwiwLif07/pRob20h1vq6FeOg6JcbBDQU2TluneZ94RT+hplxjG99DD11sOXgAHWREOMsyqaAISeH8VGp4UdTw36F2i5z+gpBmrSBFaMxFm3iPI4ROu6EeKD92jq5ymADICuXn9UdcddYi+6fyhP+SuxS3KYuAWIjXi35wrHjxN5YLL56CBN2i0VeJ4AXIo4+oIIXIBy9KZYZKxsftGOm8/nnErpmFDX63Vqxd+vDY/JUUAswcWxnOdba97FKORBEnagchoCgxHK22yIbY38W1jXa3tq2XxIlAACRxLdYrF1Lp2sIZxtAkPcCC2JlhJYLwadFDYllxcn5d7npIV3y2R3aghyOKjxqPzPDnPF+7B/3zWOYSohkHvkFxNIuL20kocdcHVCukAXRCd+LdRFzWUU3w==
|
||||
sshd.auth.key.5.comment=gnummig@gmail.com
|
||||
sshd.auth.key.5.status=enabled
|
||||
sshd.auth.key.5.type=ssh-rsa
|
||||
sshd.auth.key.5.value=AAAAB3NzaC1yc2EAAAADAQABAAACAQC4W5CtqmLJj+lWzethWfBra9ogI6W30HQWCrRfccEi236lcpsX5k6O+suEoA7HwVDzcIonHMdahlrB8Z7cW8AubJ2ykhNWk/0oVN8TF6eUNS8XoridNwAE7zSOOxP7O2A1x+sGH2PuCBtVpZvgETTsothnZJH1bs2ya3pn8l/NJg2VUnj7bxcK89nMQUH6Y+m0d2faJnOJJEx6e4k25buTR6/osjJd7fd/lFS8H1qWgN3mM891yMlpW9F+be+NQfpyo6QktT+aMkRsosAqAwtsAVECvXdEDhyge2XJHPAaYREnHKN5SNJifOrB3evMDdJRUshu1jXOIEOJJueQhIPfJuriCR+WH6YmG2XZ3nkPpk/aqCaWMnXWpNrbsiTFVRsAzrvKU8RQtfnWU3PD358dcpmTAhA+5rHgYAYQiNovwQb6BvxebX6aKIrSWWj5tnrfhykRe4gWhMHQe5E2fxB1yx3H/Hxwwc3d/uIB6utrckP2vUKksjd0eXb218hGLtCJJ3WWl3sgJpVMCB5yOoXePf6q0oSmbb6oNDl3ILMhFV7tc8ezIdMmpZNIxkobA5Kfm/Oujx2tFw52FiwmR5EPJfZojeZa81iplH0f652isACijmSI/WdHGpejca/1s3P888GxH/G9Flln8vI/qQ1cFryy1+AAuFDhULdUYu50gQ==
|
||||
sshd.auth.passwd=disabled
|
||||
sshd.port=22
|
||||
sshd.status=enabled
|
||||
syslog.remote.status=disabled
|
||||
syslog.remote.tcp.status=disabled
|
||||
syslog.status=disabled
|
||||
system.button.reset=disabled
|
||||
system.cfg.version=65546
|
||||
system.date.status=disabled
|
||||
system.date.timestamp=
|
||||
system.eirp.status=disabled
|
||||
system.latitude=
|
||||
system.longitude=
|
||||
system.timezone=GMT
|
||||
telnetd.status=disabled
|
||||
tshaper.status=disabled
|
||||
update.check.status=enabled
|
||||
upnpd.status=disabled
|
||||
upnpd.devname=
|
||||
users.1.name=reudnetz
|
||||
users.1.password=$1$FC5eCMsQ$/d9KTwkbqMxAOWXS9SehB0
|
||||
users.1.status=enabled
|
||||
users.2.status=disabled
|
||||
users.status=enabled
|
||||
vlan.status=enabled
|
||||
vlan.1.status=enabled
|
||||
vlan.1.devname=eth0
|
||||
vlan.1.id=101
|
||||
vlan.1.comment=switchport 1
|
||||
vlan.2.status=enabled
|
||||
vlan.2.devname=eth0
|
||||
vlan.2.id=102
|
||||
vlan.2.comment=switchport 2
|
||||
vlan.3.status=enabled
|
||||
vlan.3.devname=eth0
|
||||
vlan.3.id=103
|
||||
vlan.3.comment=switchport 3
|
||||
vlan.4.status=enabled
|
||||
vlan.4.devname=eth0
|
||||
vlan.4.id=104
|
||||
vlan.4.comment=switchport 4
|
||||
wireless.1.addmtikie=enabled
|
||||
wireless.1.ap=
|
||||
wireless.1.authmode=1
|
||||
wireless.1.devname=ath0
|
||||
wireless.1.hide_ssid=disabled
|
||||
wireless.1.scan_list.channels=
|
||||
wireless.1.scan_list.status=disabled
|
||||
wireless.1.security.type=none
|
||||
wireless.1.ssid=smogsmog
|
||||
wireless.1.status=enabled
|
||||
wireless.1.wds.status=enabled
|
||||
wireless.hideindoor.status=disabled
|
||||
wireless.status=enabled
|
||||
wpasupplicant.device.1.devname=ath0
|
||||
wpasupplicant.device.1.driver=madwifi
|
||||
wpasupplicant.device.1.profile=WPA-PSK
|
||||
wpasupplicant.device.1.status=enabled
|
||||
wpasupplicant.profile.1.name=WPA-PSK
|
||||
wpasupplicant.profile.1.network.1.bssid=
|
||||
wpasupplicant.profile.1.network.1.eap.1.status=disabled
|
||||
wpasupplicant.profile.1.network.1.key_mgmt.1.name=WPA-PSK
|
||||
wpasupplicant.profile.1.network.1.pairwise.1.name=CCMP
|
||||
wpasupplicant.profile.1.network.1.proto.1.name=RSN
|
||||
wpasupplicant.profile.1.network.1.psk=gibhiereinpasswortein
|
||||
wpasupplicant.profile.1.network.1.ssid=smogsmog
|
||||
wpasupplicant.status=enabled
|
228
technikzeugs/configs/AirOS/station.cfg
Normal file
228
technikzeugs/configs/AirOS/station.cfg
Normal file
|
@ -0,0 +1,228 @@
|
|||
aaa.1.status=disabled
|
||||
aaa.1.wpa.psk=gibthiereinpasswortein
|
||||
aaa.status=disabled
|
||||
bridge.status=disabled
|
||||
dhcp6c.status=disabled
|
||||
dhcp6d.status=disabled
|
||||
dhcpc.1.devname=ath0
|
||||
dhcpc.1.fallback=192.168.10.1
|
||||
dhcpc.1.fallback_netmask=255.255.255.0
|
||||
dhcpc.1.status=enabled
|
||||
dhcpc.status=enabled
|
||||
dhcpd.1.devname=eth0
|
||||
dhcpd.1.dns.1.server=
|
||||
dhcpd.1.dns.1.status=disabled
|
||||
dhcpd.1.dns.2.server=
|
||||
dhcpd.1.dns.2.status=disabled
|
||||
dhcpd.1.dnsproxy=enabled
|
||||
dhcpd.1.end=10.6.5.254
|
||||
dhcpd.1.lease_time=600
|
||||
dhcpd.1.netmask=255.255.255.0
|
||||
dhcpd.1.start=10.6.5.2
|
||||
dhcpd.1.status=enabled
|
||||
dhcpd.status=enabled
|
||||
discovery.cdp.status=enabled
|
||||
discovery.status=enabled
|
||||
dyndns.status=disabled
|
||||
ebtables.status=disabled
|
||||
ebtables.sys.arpnat.status=disabled
|
||||
ebtables.sys.eap.1.devname=ath0
|
||||
ebtables.sys.eap.1.status=enabled
|
||||
ebtables.sys.eap.status=enabled
|
||||
ebtables.sys.status=disabled
|
||||
ebtables.sys.vlan.status=disabled
|
||||
gui.language=en_US
|
||||
gui.network.advanced.status=enabled
|
||||
httpd.https.port=443
|
||||
httpd.https.status=enabled
|
||||
httpd.port=80
|
||||
httpd.session.timeout=900
|
||||
httpd.status=enabled
|
||||
ip6tables.status=disabled
|
||||
iptables.1.cmd=-A FIREWALL -i eth0 --src 10.6.5.0/24 --dst 192.168.42.1/32 -j ACCEPT
|
||||
iptables.1.comment=allow outgoing connection to the server and the rest of the internet
|
||||
iptables.1.status=enabled
|
||||
iptables.2.cmd=-A FIREWALL -i eth0 --src 10.6.5.0/24 --dst ! 192.168.42.0/24 -j ACCEPT
|
||||
iptables.2.comment=only allow traffic from correct subnet, disallow management access
|
||||
iptables.2.status=enabled
|
||||
iptables.3.cmd=-A FIREWALL -i ath0 -j ACCEPT
|
||||
iptables.3.comment=accept all incoming traffic from wlan. this ist important to avoid the management rules from ubiquiti, which disallows incoming connections to the management interface
|
||||
iptables.3.status=enabled
|
||||
iptables.4.cmd=-A FIREWALL -i eth0 --protocol 17 --src 0.0.0.0/0 --sport 67:68 --dport 67:68 -j ACCEPT
|
||||
iptables.4.comment=allow DHCP, dhcpclients use 0.0.0.0 until they get an adress
|
||||
iptables.4.status=enabled
|
||||
iptables.5.cmd=-A FIREWALL -j LOG
|
||||
iptables.5.comment=log anything else
|
||||
iptables.5.status=enabled
|
||||
iptables.6.cmd=-A FIREWALL -j DROP
|
||||
iptables.6.comment=disallow anything else
|
||||
iptables.6.status=enabled
|
||||
iptables.status=enabled
|
||||
iptables.sys.dmz.status=disabled
|
||||
iptables.sys.fw.status=enabled
|
||||
iptables.sys.masq.status=disabled
|
||||
iptables.sys.mgmt.1.devname=ath0
|
||||
iptables.sys.mgmt.1.status=enabled
|
||||
iptables.sys.mgmt.status=enabled
|
||||
iptables.sys.portfw.status=disabled
|
||||
iptables.sys.status=enabled
|
||||
iptables.sys.upnpd.devname=
|
||||
iptables.sys.upnpd.status=disabled
|
||||
netconf.1.autoip.status=disabled
|
||||
netconf.1.devname=ath0
|
||||
netconf.1.hwaddr.mac=
|
||||
netconf.1.hwaddr.status=disabled
|
||||
netconf.1.ip=0.0.0.0
|
||||
netconf.1.mtu=1500
|
||||
netconf.1.netmask=255.255.255.0
|
||||
netconf.1.promisc=enabled
|
||||
netconf.1.role=wan
|
||||
netconf.1.status=enabled
|
||||
netconf.1.up=enabled
|
||||
netconf.2.autoip.status=disabled
|
||||
netconf.2.devname=eth0
|
||||
netconf.2.hwaddr.mac=
|
||||
netconf.2.hwaddr.status=disabled
|
||||
netconf.2.ip=10.6.5.1
|
||||
netconf.2.mtu=1500
|
||||
netconf.2.netmask=255.255.255.0
|
||||
netconf.2.promisc=enabled
|
||||
netconf.2.role=lan
|
||||
netconf.2.status=enabled
|
||||
netconf.2.up=enabled
|
||||
netconf.3.autoip.status=disabled
|
||||
netconf.3.devname=ath0
|
||||
netconf.3.hwaddr.mac=
|
||||
netconf.3.hwaddr.status=disabled
|
||||
netconf.3.mtu=1500
|
||||
netconf.3.role=mlan
|
||||
netconf.3.status=disabled
|
||||
netconf.3.up=enabled
|
||||
netconf.status=enabled
|
||||
netmode=router
|
||||
ntpclient.status=disabled
|
||||
ppp.status=disabled
|
||||
pwdog.status=disabled
|
||||
radio.1.ack.auto=enabled
|
||||
radio.1.ackdistance=600
|
||||
radio.1.acktimeout=25
|
||||
radio.1.antenna.gain=16
|
||||
radio.1.antenna.id=4
|
||||
radio.1.cable.loss=0
|
||||
radio.1.chanbw=40
|
||||
radio.1.countrycode=276
|
||||
radio.1.cwm.enable=0
|
||||
radio.1.cwm.mode=1
|
||||
radio.1.devname=ath0
|
||||
radio.1.dfs.status=enabled
|
||||
radio.1.forbiasauto=0
|
||||
radio.1.ieee_mode=11naht40
|
||||
radio.1.mcastrate=15
|
||||
radio.1.mode=managed
|
||||
radio.1.obey=enabled
|
||||
radio.1.polling=enabled
|
||||
radio.1.pollingnoack=0
|
||||
radio.1.pollingpri=
|
||||
radio.1.rate.auto=enabled
|
||||
radio.1.rate.mcs=15
|
||||
radio.1.reg_obey=enabled
|
||||
radio.1.status=enabled
|
||||
radio.1.subsystemid=0xe815
|
||||
radio.1.txpower=20
|
||||
radio.countrycode=276
|
||||
radio.rate_module=atheros
|
||||
radio.status=enabled
|
||||
resolv.host.1.name=NanoBeam M5 16
|
||||
resolv.host.1.status=enabled
|
||||
resolv.nameserver.1.ip=
|
||||
resolv.nameserver.1.status=enabled
|
||||
resolv.nameserver.2.ip=
|
||||
resolv.nameserver.2.status=enabled
|
||||
resolv.status=disabled
|
||||
route.1.comment=
|
||||
route.1.gateway=
|
||||
route.1.ip=
|
||||
route.1.netmask=
|
||||
route.1.status=disabled
|
||||
route.status=enabled
|
||||
route6.1.comment=
|
||||
route6.1.gateway=
|
||||
route6.1.ip=
|
||||
route6.1.netmask=
|
||||
route6.1.status=enabled
|
||||
route6.status=enabled
|
||||
snmp.community=reudnetz
|
||||
snmp.contact=reudnetz
|
||||
snmp.location=reudnetz
|
||||
snmp.status=enabled
|
||||
sshd.auth.key.1.comment=yannik@Hydrogen
|
||||
sshd.auth.key.1.status=enabled
|
||||
sshd.auth.key.1.type=ssh-rsa
|
||||
sshd.auth.key.1.value=AAAAB3NzaC1yc2EAAAADAQABAAABAQDelf/wYfaV9MgefRzySO9cH8F9zswsYZ5i/huq73VpxQd6VJWsLxMUdaevkeA2v4QgTdweh2sWFSdZoTskmh0JvfQw4GVO0kZBVtTqrh8jf/9arMGGnkMyp7qbfZr1Ewa/SAeGU/XX4XhmFda8D38oKdhpX5FVmbOXu2cpWOz/hLLcRm4GNXGsApJfqrmUEXrRHxQCUEYG2Gi6Q3GbbSKbt0rskfMQ4O5TDSwvPsI8yJVC7dCxVSIPmXjysTfRkXSAVZOBGfiZBKeUCaEiZ20rTbhJkXOlAVVsnhf2mfLOpgx7+/g0g/tceU3RxWkSjizcdWyWYBbXroVtf22Zu6+H
|
||||
sshd.auth.key.2.comment=a@echo
|
||||
sshd.auth.key.2.status=enabled
|
||||
sshd.auth.key.2.type=ssh-rsa
|
||||
sshd.auth.key.2.value=AAAAB3NzaC1yc2EAAAADAQABAAABAQC9gm2ycpPksVSTPAHFa3FW93nIW0kLo7+U4c6yj0Ggxn0TeTvmtR/+wFwAWo6u6ftDAqkErykDkFg7/T566/Nsxxhl/Gzv82yVZvE8TeyOI282w9rOjhIWMwXYzBUtgDau8hfT57XezfCy1cJphvyEWqbf1c7FLVAQ6JItTsVXeUz0OBD3xF2lCp98UpEM8QdPaIl3hcGasyZE649z4ba1aWg6yHpPum65ZhRrFom/79/AVjAX/1U21XUkqaUQzfakbhWi2CXlty5CLrc6XNyizMfbGuktiQJ1ytE9z5+hpVIl3YjG7VIoutvfbtz3e887Ye7sR/jU4DKBaoyG7fAR
|
||||
sshd.auth.key.3.comment=amanita@reudnetz.org
|
||||
sshd.auth.key.3.status=enabled
|
||||
sshd.auth.key.3.type=ssh-rsa
|
||||
sshd.auth.key.3.value=AAAAB3NzaC1yc2EAAAADAQABAAACAQDUIZhEESnVUtjYgbxheBWMDVMU10r0PviGUhH14ar88SITx+dO5z28ACUPL6pFqni/gYW2bd1MDRUVskV+O+Z/rVAxwjokADGHXmWbUPeB1fy2t1RZ6iQ/85eLR4A4KDG/pMabhvVhM+u+TqKE6YlWwNrd9eKyeuDMm7gHcTjPetdacmdwDRzEwEYfT5I1xNFv7R0G8HzlFQbxqlYBvpuH1zOeI7MgPHR8K8a3E4AtLqxMcC+fNdJQYB+ksFVM2TrpOSCwcIEqzjtonaUL648N3fLZVgCmq5CzY8aGdBCLy/mnM/npUY9Io1SiP4g7X1Dio+iNdwzxOvw/7yOUrDxKCtTYXhOaYHWluhFtPXqJddpEsIPOuFSgdWLsDMfoYEAf8427TRWj0Eg73dNP5YImmlvbW5nkKRsibLBtMJLbamMF3hsjoKvpIcLO/vnGPPL0ZN6g759dTrdfnodW1tRr4ckPNi2254pkJg6KqnwjnqAGr/pWWmYb4t+sNHwUZCfLq/pw8X0CfarbqeNddt2sHYmGfnzVJ5oZv3fbLqB45iAR7FRpngY3lDE4ejZVMZGVzeztZKsBK3M801ZhEu49LTm5CDVs9/XtesloknNTSBk1GLVDC4oeQJ3GuRsQCOh/5NMgsYC4HgEJcyad5grzO/xre7ZcNMtCi/w8aMAJMQ==
|
||||
sshd.auth.key.4.comment=inocybe@reudnetz.org
|
||||
sshd.auth.key.4.status=enabled
|
||||
sshd.auth.key.4.type=ssh-rsa
|
||||
sshd.auth.key.4.value=AAAAB3NzaC1yc2EAAAADAQABAAACAQC7v7FvkxQ/DpCMhbqYLlxGP+YRvE2S+ofyi8O4w/0MuxFruWvmXud1UDhCyKl2YZKTuWOUhduf9ESljL+T6Oqm0tOPBZ5YBvvyV10j8uSgmlZBGdaJJjoWOvM2vCddW5WqZg19wnIfYHyPrpr48FRuKn3ZCBg9UmvwoSR46IL96bIfgzCDEkRySQ/JM2ACGXWrK3ftKvCkfFF90M4e9pXtyZyO1Dk/Wo+IGpZj3JGsLxzF3onAQ/Jueb0kBFpo36sz71iD7aj3ZehuLfFkLwiwLif07/pRob20h1vq6FeOg6JcbBDQU2TluneZ94RT+hplxjG99DD11sOXgAHWREOMsyqaAISeH8VGp4UdTw36F2i5z+gpBmrSBFaMxFm3iPI4ROu6EeKD92jq5ymADICuXn9UdcddYi+6fyhP+SuxS3KYuAWIjXi35wrHjxN5YLL56CBN2i0VeJ4AXIo4+oIIXIBy9KZYZKxsftGOm8/nnErpmFDX63Vqxd+vDY/JUUAswcWxnOdba97FKORBEnagchoCgxHK22yIbY38W1jXa3tq2XxIlAACRxLdYrF1Lp2sIZxtAkPcCC2JlhJYLwadFDYllxcn5d7npIV3y2R3aghyOKjxqPzPDnPF+7B/3zWOYSohkHvkFxNIuL20kocdcHVCukAXRCd+LdRFzWUU3w==
|
||||
sshd.auth.key.5.comment=gnummig@gmail.com
|
||||
sshd.auth.key.5.status=enabled
|
||||
sshd.auth.key.5.type=ssh-rsa
|
||||
sshd.auth.key.5.value=AAAAB3NzaC1yc2EAAAADAQABAAACAQC4W5CtqmLJj+lWzethWfBra9ogI6W30HQWCrRfccEi236lcpsX5k6O+suEoA7HwVDzcIonHMdahlrB8Z7cW8AubJ2ykhNWk/0oVN8TF6eUNS8XoridNwAE7zSOOxP7O2A1x+sGH2PuCBtVpZvgETTsothnZJH1bs2ya3pn8l/NJg2VUnj7bxcK89nMQUH6Y+m0d2faJnOJJEx6e4k25buTR6/osjJd7fd/lFS8H1qWgN3mM891yMlpW9F+be+NQfpyo6QktT+aMkRsosAqAwtsAVECvXdEDhyge2XJHPAaYREnHKN5SNJifOrB3evMDdJRUshu1jXOIEOJJueQhIPfJuriCR+WH6YmG2XZ3nkPpk/aqCaWMnXWpNrbsiTFVRsAzrvKU8RQtfnWU3PD358dcpmTAhA+5rHgYAYQiNovwQb6BvxebX6aKIrSWWj5tnrfhykRe4gWhMHQe5E2fxB1yx3H/Hxwwc3d/uIB6utrckP2vUKksjd0eXb218hGLtCJJ3WWl3sgJpVMCB5yOoXePf6q0oSmbb6oNDl3ILMhFV7tc8ezIdMmpZNIxkobA5Kfm/Oujx2tFw52FiwmR5EPJfZojeZa81iplH0f652isACijmSI/WdHGpejca/1s3P888GxH/G9Flln8vI/qQ1cFryy1+AAuFDhULdUYu50gQ==
|
||||
sshd.auth.passwd=disabled
|
||||
sshd.port=22
|
||||
sshd.status=enabled
|
||||
syslog.remote.status=disabled
|
||||
syslog.remote.tcp.status=disabled
|
||||
syslog.status=disabled
|
||||
system.button.reset=disabled
|
||||
system.cfg.version=65546
|
||||
system.date.status=disabled
|
||||
system.date.timestamp=
|
||||
system.eirp.status=disabled
|
||||
system.latitude=
|
||||
system.longitude=
|
||||
system.timezone=GMT
|
||||
telnetd.status=disabled
|
||||
tshaper.status=disabled
|
||||
update.check.status=enabled
|
||||
upnpd.devname=
|
||||
upnpd.status=disabled
|
||||
users.1.name=reudnetz
|
||||
users.1.password=$1$FC5eCMsQ$/d9KTwkbqMxAOWXS9SehB0
|
||||
users.1.status=enabled
|
||||
users.2.status=disabled
|
||||
users.status=enabled
|
||||
vlan.status=disabled
|
||||
wireless.1.addmtikie=enabled
|
||||
wireless.1.ap=
|
||||
wireless.1.authmode=1
|
||||
wireless.1.devname=ath0
|
||||
wireless.1.hide_ssid=disabled
|
||||
wireless.1.scan_list.channels=
|
||||
wireless.1.scan_list.status=disabled
|
||||
wireless.1.security.type=none
|
||||
wireless.1.ssid=slowpoke
|
||||
wireless.1.status=enabled
|
||||
wireless.1.wds.status=enabled
|
||||
wireless.hideindoor.status=disabled
|
||||
wireless.status=enabled
|
||||
wpasupplicant.device.1.devname=ath0
|
||||
wpasupplicant.device.1.driver=madwifi
|
||||
wpasupplicant.device.1.profile=WPA-PSK
|
||||
wpasupplicant.device.1.status=enabled
|
||||
wpasupplicant.profile.1.name=WPA-PSK
|
||||
wpasupplicant.profile.1.network.1.bssid=
|
||||
wpasupplicant.profile.1.network.1.eap.1.status=disabled
|
||||
wpasupplicant.profile.1.network.1.key_mgmt.1.name=WPA-PSK
|
||||
wpasupplicant.profile.1.network.1.pairwise.1.name=CCMP
|
||||
wpasupplicant.profile.1.network.1.proto.1.name=RSN
|
||||
wpasupplicant.profile.1.network.1.psk=gibthiereinpasswortein
|
||||
wpasupplicant.profile.1.network.1.ssid=slowpoke
|
||||
wpasupplicant.status=enabled
|
21
technikzeugs/configs/LEDE/router_4_subnets/README.md
Normal file
21
technikzeugs/configs/LEDE/router_4_subnets/README.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Router mit 4 Subnetzen in 4 VLANs
|
||||
|
||||
Konkret wurde ein Ubnt EdgeRouter X (SFP) konfiguriert.
|
||||
|
||||
Es werden zuerst 4 Interfaces definiert, eth_1 bis eth_4 (WAN an dem Router
|
||||
auf eth_0). Jedes Interface bekommt eine IP Adresse entsprechend des Subnetzes.
|
||||
Wichtig scheint `interface` zu sein was gleich für den DHCP Server (dnsmasq)
|
||||
benutzt wird. `ifname` scheint beliebig zu zu sein.
|
||||
|
||||
Alles Interfaces bekommen ein eigenes VLAN, Standard ist VLAN 1 für LAN und VLAN
|
||||
2 für WAN. Wir haben kein LAN sondern direkt WAN mit den einzelnen Subnetzen
|
||||
verbunden. Also immer `<Port> 6t` (6t für *getaggt* an CPU).
|
||||
|
||||
Die LAN VLANs fangen einfach mit 101 aufwärts an (da VLAN 2 für WAN).
|
||||
|
||||
Jedem Interface wird dann ein DHCP Server zugeordnet, dabei wird das vorher
|
||||
angegebene `ifname` hier zum `interface`
|
||||
|
||||
|
||||
# vim options
|
||||
# set tw=80
|
59
technikzeugs/configs/LEDE/router_4_subnets/dhcp
Normal file
59
technikzeugs/configs/LEDE/router_4_subnets/dhcp
Normal file
|
@ -0,0 +1,59 @@
|
|||
|
||||
config dnsmasq
|
||||
option domainneeded '1'
|
||||
option boguspriv '1'
|
||||
option filterwin2k '0'
|
||||
option localise_queries '1'
|
||||
option rebind_protection '1'
|
||||
option rebind_localhost '1'
|
||||
option local '/lan/'
|
||||
option domain 'lan'
|
||||
option expandhosts '1'
|
||||
option nonegcache '0'
|
||||
option authoritative '1'
|
||||
option readethers '1'
|
||||
option leasefile '/tmp/dhcp.leases'
|
||||
option resolvfile '/tmp/resolv.conf.auto'
|
||||
option localservice '1'
|
||||
|
||||
config dhcp 'lan'
|
||||
option interface 'lan'
|
||||
option start '100'
|
||||
option limit '150'
|
||||
option leasetime '12h'
|
||||
option dhcpv6 'server'
|
||||
option ra 'server'
|
||||
|
||||
config dhcp 'wan'
|
||||
option interface 'wan'
|
||||
option ignore '1'
|
||||
|
||||
config odhcpd 'odhcpd'
|
||||
option maindhcp '0'
|
||||
option leasefile '/tmp/hosts/odhcpd'
|
||||
option leasetrigger '/usr/sbin/odhcpd-update'
|
||||
|
||||
config dhcp 'eth0_1'
|
||||
option start '100'
|
||||
option leasetime '12h'
|
||||
option limit '150'
|
||||
option interface 'eth0_1'
|
||||
|
||||
config dhcp 'eth0_2'
|
||||
option start '100'
|
||||
option leasetime '12h'
|
||||
option limit '150'
|
||||
option interface 'eth0_2'
|
||||
|
||||
config dhcp 'eth0_3'
|
||||
option start '100'
|
||||
option leasetime '12h'
|
||||
option limit '150'
|
||||
option interface 'eth0_3'
|
||||
|
||||
config dhcp 'eth0_4'
|
||||
option start '100'
|
||||
option leasetime '12h'
|
||||
option limit '150'
|
||||
option interface 'eth0_4'
|
||||
|
88
technikzeugs/configs/LEDE/router_4_subnets/network
Normal file
88
technikzeugs/configs/LEDE/router_4_subnets/network
Normal file
|
@ -0,0 +1,88 @@
|
|||
|
||||
config interface 'loopback'
|
||||
option ifname 'lo'
|
||||
option proto 'static'
|
||||
option ipaddr '127.0.0.1'
|
||||
option netmask '255.0.0.0'
|
||||
|
||||
config globals 'globals'
|
||||
option ula_prefix 'fdb1:00b1:0ffb::/48'
|
||||
|
||||
config interface 'lan'
|
||||
option type 'bridge'
|
||||
option ifname 'eth0.1'
|
||||
option proto 'static'
|
||||
option ipaddr '192.168.1.1'
|
||||
option netmask '255.255.255.0'
|
||||
option ip6assign '60'
|
||||
|
||||
config device 'lan_dev'
|
||||
option name 'eth0.1'
|
||||
option macaddr '80:2a:a8:de:20:8a'
|
||||
|
||||
config interface 'wan'
|
||||
option ifname 'eth0.2'
|
||||
option proto 'dhcp'
|
||||
|
||||
config interface 'eth0_1'
|
||||
option proto 'static'
|
||||
option ifname 'eth0.101'
|
||||
option ipaddr '10.6.19.1'
|
||||
option netmask '255.255.255.0'
|
||||
|
||||
config interface 'eth0_2'
|
||||
option proto 'static'
|
||||
option ifname 'eth0.102'
|
||||
option ipaddr '10.6.20.1'
|
||||
option netmask '255.255.255.0'
|
||||
|
||||
config interface 'eth0_3'
|
||||
option proto 'static'
|
||||
option ifname 'eth0.103'
|
||||
option ipaddr '10.6.21.1'
|
||||
option netmask '255.255.255.0'
|
||||
|
||||
config interface 'eth0_4'
|
||||
option proto 'static'
|
||||
option ifname 'eth0.104'
|
||||
option ipaddr '10.6.22.1'
|
||||
option netmask '255.255.255.0'
|
||||
|
||||
config device 'wan_dev'
|
||||
option name 'eth0.2'
|
||||
option macaddr '80:2a:a8:de:20:8b'
|
||||
|
||||
config interface 'wan6'
|
||||
option ifname 'eth0.2'
|
||||
option proto 'dhcpv6'
|
||||
|
||||
config switch
|
||||
option name 'switch0'
|
||||
option reset '1'
|
||||
option enable_vlan '1'
|
||||
|
||||
config switch_vlan
|
||||
option device 'switch0'
|
||||
option vlan '2'
|
||||
option ports '0 6t'
|
||||
|
||||
config switch_vlan
|
||||
option device 'switch0'
|
||||
option vlan '101'
|
||||
option ports '1 6t'
|
||||
|
||||
config switch_vlan
|
||||
option device 'switch0'
|
||||
option vlan '102'
|
||||
option ports '2 6t'
|
||||
|
||||
config switch_vlan
|
||||
option device 'switch0'
|
||||
option vlan '103'
|
||||
option ports '3 6t'
|
||||
|
||||
config switch_vlan
|
||||
option device 'switch0'
|
||||
option vlan '104'
|
||||
option ports '4 6t'
|
||||
|
4
technikzeugs/configs/Readme.md
Normal file
4
technikzeugs/configs/Readme.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
## Config-files
|
||||
Hier sammeln wir die verschiedenen Konfigurationen von Geräten, die wir einsetzen oder eingesetzt haben.
|
||||
Dabei wird vor allem zwischen AirOS, dem proprietären Betriebssystem von Ubiquiti und LEDE/openwrt getrennt.
|
||||
|
50
technikzeugs/hardwareinfo/APC-UPS-CS500/APC_UPS-CS500.md
Normal file
50
technikzeugs/hardwareinfo/APC-UPS-CS500/APC_UPS-CS500.md
Normal file
|
@ -0,0 +1,50 @@
|
|||
## Erstmal Generell
|
||||
|
||||
Die APC-CS500 ist eine USV, sie dient also dazu, bei Stromausfällen die angeschlossenen Geräte mit Strom zu versorgen.
|
||||
In der Regel ist ein einzelner Bleigelakku eingabaut, es lassen sich aber (mit passenden Kabeln) beliebige Bleibatterien anschließen.
|
||||
|
||||
## Data-Port / Das Interface
|
||||
|
||||
Die USV lässt sich über den Anschluss Data-Port an einen PC anzuschließen, damit dieser den Zustand der Stromversorgung kennt. Der Port ist entgegen meines ersten Eindrucks keine Normale Ethernet-Buchse (RJ-45), sondern hat 10 Pins (RJ-50). Mit einem passenden Kabel lässt sich dieser dann mit einem USB-Anschluss verbinden. Die Kabel haben lustige Preise.
|
||||
|
||||
Ein Ethernet-Stecker passt aber trotzdem in die Buchse. Nur fehlen dann die beiden äußeren Pins. Solange APC keinen der äußeren Pins für USB verwendet, ist das also alles gar kein Problem. Machen sie aber (die Schweine).
|
||||
|
||||
### Das Pinout des Kabel:
|
||||
|
||||
AP9827 cable for CS500
|
||||
```
|
||||
RJxx end (looking AGAINST the connector):
|
||||
------
|
||||
| -- 1 - green - USB 3 - USB+
|
||||
| -- 2 - white - USB 2 - USB-
|
||||
| -- 3
|
||||
_| -- 4 - black - usb 4 - GND
|
||||
| | -- 5
|
||||
|_| -- 6
|
||||
| -- 7 - brown - shield
|
||||
| -- 8
|
||||
| -- 9
|
||||
| -- 10 - red - usb 1 - +5V
|
||||
------
|
||||
|
||||
USB end (looking against the connector):
|
||||
-----
|
||||
| | |
|
||||
| X| | 1 - red - +5V
|
||||
| | |
|
||||
| X| | 2 - white - USB-
|
||||
| | |
|
||||
| X| | 3 - green - USB+
|
||||
| | |
|
||||
| X| | 4 - black - GND
|
||||
| | |
|
||||
----- shield - brown - SHIELD
|
||||
```
|
||||
|
||||
### Die Lösung
|
||||
Deshalb habe ich auf der Platine der USV Pin 10 mit Pin 6 und Pin 1 mit Pin 5 verbunden. (Die Beiden Pins sind tatsächlich ungenutzt)
|
||||
Nun lässt sich ein einfacher Ethernetstecker an ein USB-Kabel patchen und die USV mit dem PC verbinden.
|
||||
|
||||
[[/uploads/apc-cs500_umbau.JPG|alt="Die Brücken auf der Platine"]]
|
||||
|
||||
|
BIN
technikzeugs/hardwareinfo/APC-UPS-CS500/apc-cs500_umbau.JPG
Normal file
BIN
technikzeugs/hardwareinfo/APC-UPS-CS500/apc-cs500_umbau.JPG
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 MiB |
3
technikzeugs/hardwareinfo/README.md
Normal file
3
technikzeugs/hardwareinfo/README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
## Wie benutze ich den Ordner Hardware-Info?
|
||||
Hier erhält jeder Gerätetyp, der zu unserem Netz gehört einen kleinen Eintrag, in dem generelle Informationen zur Hardware gesammelt sind.
|
||||
Aus den Dokueinträgen der einzelnen Geräte kann dann darauf gelinked werden.
|
Binary file not shown.
|
@ -0,0 +1,20 @@
|
|||
## Den Switch konfigurieren
|
||||
Der Switch hat eine etwas seltsame Art sich konfigurieren zu lassen. Insbesondere die VLANs sind merkwürdig.
|
||||
|
||||
## Vlans
|
||||
vlans verwendet man, wenn man eine physikalische verbindung hat, die man aber logisch lieber so behandeln würde, als ob 2 seperate kabel/funkstrecken existieren würden.
|
||||
vlans funktionieren, indem in den IP-header eine zahl von 1-4094 geschrieben wird (tag).
|
||||
standardmäßig steht da 1.
|
||||
|
||||
## 802.1Q VLAN
|
||||
### VLAN Config
|
||||
Hier kann man einstellen welche vlans es überhaupt gibt.
|
||||
zum ein neues vlan anlegen auf "create" klicken. jetzt die ports auswählen, an die das vlan angeschlossen werden kann. ein port kann auch zu meheren vlans gehören. Port bezeichnet hier die physikalische lan-reinsteck-möglichkeit. an port 1 hängt meist der server.
|
||||
zu link type siehe port config.
|
||||
die egres rule bestimmt, ob an ungetagte pakete einer angehängt werden soll, wenn sie über dieses interface aus dem switch herrausgehen. (wahrscheinlich, further research needed)
|
||||
### Port Config
|
||||
Link type: es gibt im endefekt 2 möglichkeiten, access und (general|trunk).
|
||||
access ist für geräte, die nicht speziell vlans können, oder denen nicht wirklich vertraut werden kann die richtigen tags zu setzen. sie können nur zu einem einzigen vlan gehören, und der tag wird entfernt, wenn ein paket über das interface raus geht, und auf das vlan, zu dem der port gehört gesetzt, wenn über das interface ein paket reinkommt.
|
||||
general kann zu mehreren vlans gehören. man kann (bei der vlan config) einstellen ob ungetagte pakete getagt oder einfach so durchgeleitet werden sollen. wenn man es auf TAG stellt werden ungetagte pakete auf die pvid gestell.
|
||||
trunk ist wie general, nur dass immer tag eingestellt ist.
|
||||
alle angaben ohne gewähr, die switch-doku ist sehr unverständlich, diese information wurde durch experimente angenähert.
|
2
technikzeugs/hardwareinfo/airos.md
Normal file
2
technikzeugs/hardwareinfo/airos.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
### IP-Tables
|
||||
bei den einstellungen der Firewall-rules ist uns aufgefallen, das von vorneherein eine management rule MNGT existiert, die alle Verbindungen wegschmeisst, die nicht von dem Gerät initiert wurden.
|
127
technikzeugs/hardwareinfo/enviroment_sensors.md
Normal file
127
technikzeugs/hardwareinfo/enviroment_sensors.md
Normal file
|
@ -0,0 +1,127 @@
|
|||
## Server-Sensorik
|
||||
|
||||
Da der Server in einem feuchten Keller steht, gegen den wir ihn mit userem Spezialgehäuse schützen (Kühlschrank), ist eine Überwachung der Umwelteinflüsse wünschenswert.
|
||||
Konkret möchten wir gerne Luftfeuchte und Temperatur im Auge behalten.
|
||||
|
||||
### Hardware
|
||||
Die Temperatur lässt sich auch aus den Sensoren im Mainboard ablesen. Zusätzlich ist ein Pro Micro mit zwei DHT22 Sensoren und einem Auslenkungssensor verbunden.
|
||||
Der DHT22 liefert Werte für Temperatur und Luftfeuchte. Einer ist im Kühlschrank und einer außen am Kühlschrank befestigt. Der Auslenkungssensor protokolliert die Türöffnung.
|
||||
Für den Sensor sind angegeben
|
||||
Messbereich: -40 - 80 °C, 0 - 100% RH
|
||||
Genauigkeit: 0.5°C, 2% RH
|
||||
|
||||
### Sofware
|
||||
#### Pro Micro
|
||||
Auf dem Pro Micro läuft ein Arduino-Sketch[1]
|
||||
Dieser liefert CSV-Werte:
|
||||
```
|
||||
86.10, 23.10, 14.20, 34.20, 0
|
||||
|
||||
86.00, 23.10, 14.10, 34.20, 0
|
||||
|
||||
86.10, 23.10, 14.20, 34.20, 0
|
||||
|
||||
86.20, 23.00, 14.20, 34.20, 0
|
||||
```
|
||||
|
||||
#### Collectd und Facette
|
||||
Damit die Werte in unseren schönen Facette-Graphen auftauchen, müssen wir zuerst collectd beibringen die Werte überhaupt zu sammeln.
|
||||
Dazu lässt sich entweder das Plugin "Exec" verwenden, das ein Skipt ausführt und die Rückgabewerte protokolliert oder das Plugin "tail_CSV", welches
|
||||
CSV Dateien einliest, sofern es aus einer seriellen Schnittstelle lesen kann.
|
||||
|
||||
|
||||
|
||||
### Dateien
|
||||
[1] Das verwendete Arduino Programm:
|
||||
```
|
||||
// Based on "Example testing sketch for various DHT humidity/temperature sensors"
|
||||
// from ladyada, public domain
|
||||
//
|
||||
|
||||
#include "DHT.h"
|
||||
|
||||
#define DHTPIN1 21 // what digital pin we're connected to
|
||||
#define DHTPIN2 20
|
||||
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
|
||||
|
||||
|
||||
// Connect pin 1 (on the left) of the sensor to +5V
|
||||
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
|
||||
// to 3.3V instead of 5V!
|
||||
// Connect pin 2 of the sensor to whatever your DHTPIN is
|
||||
// Connect pin 4 (on the right) of the sensor to GROUND
|
||||
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
|
||||
|
||||
// Initialize DHT sensor.
|
||||
// Note that older versions of this library took an optional third parameter to
|
||||
// tweak the timings for faster processors. This parameter is no longer needed
|
||||
// as the current DHT reading algorithm adjusts itself to work on faster procs.
|
||||
DHT dht1(DHTPIN1, DHTTYPE);
|
||||
DHT dht2(DHTPIN2, DHTTYPE);
|
||||
int door=0;
|
||||
int swtch=0;
|
||||
int count=0;
|
||||
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
Serial.println("Humidity inside, humidity outside, temperature inside, temperature outside, door switch");
|
||||
|
||||
dht1.begin();
|
||||
dht2.begin();
|
||||
pinMode(19,INPUT_PULLUP);
|
||||
}
|
||||
|
||||
|
||||
void loop() {
|
||||
swtch= digitalRead(19);
|
||||
if (door != swtch || count > 100 ){
|
||||
count=0;
|
||||
door=swtch;
|
||||
|
||||
// Wait a few seconds between measurements.
|
||||
// Reading temperature or humidity takes about 250 milliseconds!
|
||||
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
|
||||
// So keep in mind, that (maximum counts) * (delay) = (time between readouts)
|
||||
delay(20);
|
||||
|
||||
float hin_raw = dht1.readHumidity();
|
||||
float hout_raw = dht2.readHumidity();
|
||||
// Read temperature as Celsius (the default)
|
||||
float tin_raw = dht1.readTemperature();
|
||||
float tout_raw = dht2.readTemperature();
|
||||
|
||||
// the DHT22 has an statistical error of 2% for humidity and 0.5°C for temperatur.
|
||||
// so lets add some offset depending on our sensors, to get to comparable values
|
||||
float hin = hin_raw + 3.6;
|
||||
float tin = tin_raw - 0.3 ;
|
||||
float hout = hout_raw ;//- 0.026;
|
||||
float tout = tout_raw + 0;
|
||||
|
||||
|
||||
// Check if any reads failed and exit early (to try again).
|
||||
if (isnan(hin) || isnan(tin) || isnan(hout) || isnan(tout)) {
|
||||
Serial.print("Failed to read from DHT sensor!");
|
||||
Serial.print(", \t");
|
||||
Serial.println(door);
|
||||
return;
|
||||
}
|
||||
|
||||
// print the values if everything works fine
|
||||
Serial.print(hin);
|
||||
Serial.print(", \t");
|
||||
Serial.print(hout);
|
||||
Serial.print(", \t");
|
||||
Serial.print(tin);
|
||||
Serial.print(", \t");
|
||||
Serial.print(tout);
|
||||
Serial.print(", \t");
|
||||
Serial.println(door);
|
||||
}
|
||||
else{
|
||||
delay(20);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
199
technikzeugs/hardwareinfo/nanobeam M5/nanobeam_M5.md
Normal file
199
technikzeugs/hardwareinfo/nanobeam M5/nanobeam_M5.md
Normal file
|
@ -0,0 +1,199 @@
|
|||
## Hardware-Bug
|
||||
Anscheinend haben alle Geräte der Revision XW von Ubiquiti einen Hardwarebug im Ethernetchip. Das betrifft sowohl die Nanobeam M5, als auch die Nanostation LOCO M5.
|
||||
Die Nanostation M5 ist nicht betroffen, da in ihr ein Ethernetswitch verbaut ist.
|
||||
Ursprünglich dachte ich der Hardwarebug wäre nur dann ein Problem, wenn wir die Geräte mit OpenWRT bespielen, da eben noch kein adaquater Workaround in OpenWRT existiert.
|
||||
Mittlerweile weiß ich aber, das auch mit der orginal Firmware (AirOS) von Ubiquiti der Bug ein Problem darstellt. Sie lösen das Promblem mit einem sehr schnellen Neustart des PHY.
|
||||
Aber auch hier verliert die Antenne kurz ihre Ethernetverbindung. Wirkich akzeptabel ist das nicht.
|
||||
|
||||
[1] https://dev.openwrt.org/ticket/19085
|
||||
[2] https://community.ubnt.com/t5/Installation-Troubleshooting/Nanostation-XW-Ethernet-issue/m-p/1164752#U1164752
|
||||
|
||||
|
||||
## Flashing with OpenWRT
|
||||
It is possible to upload the image via AirOS. But after i did that, i was unable to connect with the device.
|
||||
I needed to open the glued case (a hammer did the trick) and connect through the serial console.
|
||||
After changing __/etc/config/network__ from
|
||||
```
|
||||
config interface 'lan'
|
||||
option ifname 'eth0.1'
|
||||
```
|
||||
to
|
||||
```
|
||||
config interface 'lan'
|
||||
option ifname 'eth0'
|
||||
```
|
||||
|
||||
everything seems to work fine.
|
||||
|
||||
## Images
|
||||
|
||||
[[/uploads/nanobeam/open-front.JPG]]
|
||||
[[/uploads/nanobeam/open-back.JPG]]
|
||||
[[/uploads/nanobeam/pcb.JPG]]
|
||||
|
||||
## Bootlog OpenWRT
|
||||
|
||||
```
|
||||
U-Boot 1.1.4-s776 (Nov 27 2013 - 15:58:45)
|
||||
|
||||
Board: Ubiquiti Networks AR9342 board (e815-86041.1122.0030)
|
||||
Reset: Normal
|
||||
DRAM: 64 MB
|
||||
Flash: 8 MB (0xc2, 0x20, 0x17)
|
||||
Net: AR8032 Detected
|
||||
eth0, eth1
|
||||
Radio: 0777:e815
|
||||
Hit any key to stop autoboot: 0
|
||||
## Booting image at 9f050000 ...
|
||||
Image Name: MIPS OpenWrt Linux-3.10.49
|
||||
Created: 2014-10-02 7:10:38 UTC
|
||||
Image Type: MIPS Linux Kernel Image (lzma compressed)
|
||||
Data Size: 1107081 Bytes = 1.1 MB
|
||||
Load Address: 80060000
|
||||
Entry Point: 80060000
|
||||
Verifying Checksum at 0x9f050040 ...OK
|
||||
Uncompressing Kernel Image ... OK
|
||||
|
||||
Starting kernel ...
|
||||
|
||||
[ 0.000000] Linux version 3.10.49 (bb@builder1) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r42625) ) #3 Wed Oct 1 14:00:51 CEST 2014
|
||||
[ 0.000000] bootconsole [early0] enabled
|
||||
[ 0.000000] CPU revision is: 0001974c (MIPS 74Kc)
|
||||
[ 0.000000] SoC: Atheros AR9342 rev 2
|
||||
[ 0.000000] Clocks: CPU:535.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:40.000MHz
|
||||
[ 0.000000] Determined physical RAM map:
|
||||
[ 0.000000] memory: 04000000 @ 00000000 (usable)
|
||||
[ 0.000000] Initrd not found or empty - disabling initrd
|
||||
[ 0.000000] Zone ranges:
|
||||
[ 0.000000] Normal [mem 0x00000000-0x03ffffff]
|
||||
[ 0.000000] Movable zone start for each node
|
||||
[ 0.000000] Early memory node ranges
|
||||
[ 0.000000] node 0: [mem 0x00000000-0x03ffffff]
|
||||
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
|
||||
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
|
||||
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
|
||||
[ 0.000000] Kernel command line: board=UBNT-NM-XW console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7552k(firmware),256k(cfg)ro,64k(EEPROM)ro rootfstype=squashfs,jffs2 noinitrd
|
||||
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
|
||||
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
|
||||
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
|
||||
[ 0.000000] Writing ErrCtl register=00000000
|
||||
[ 0.000000] Readback ErrCtl register=00000000
|
||||
[ 0.000000] Memory: 61076k/65536k available (2369k kernel code, 4460k reserved, 621k data, 272k init, 0k highmem)
|
||||
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
|
||||
[ 0.000000] NR_IRQS:51
|
||||
[ 0.000000] Calibrating delay loop... 266.64 BogoMIPS (lpj=1333248)
|
||||
[ 0.080000] pid_max: default: 32768 minimum: 301
|
||||
[ 0.080000] Mount-cache hash table entries: 512
|
||||
[ 0.090000] NET: Registered protocol family 16
|
||||
[ 0.100000] MIPS: machine is Ubiquiti Nanostation M XW
|
||||
[ 0.310000] bio: create slab <bio-0> at 0
|
||||
[ 0.320000] Switching to clocksource MIPS
|
||||
[ 0.330000] NET: Registered protocol family 2
|
||||
[ 0.330000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
|
||||
[ 0.330000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
|
||||
[ 0.340000] TCP: Hash tables configured (established 512 bind 512)
|
||||
[ 0.340000] TCP: reno registered
|
||||
[ 0.350000] UDP hash table entries: 256 (order: 0, 4096 bytes)
|
||||
[ 0.350000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
|
||||
[ 0.360000] NET: Registered protocol family 1
|
||||
[ 0.380000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
|
||||
[ 0.390000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
|
||||
[ 0.400000] msgmni has been set to 119
|
||||
[ 0.400000] io scheduler noop registered
|
||||
[ 0.400000] io scheduler deadline registered (default)
|
||||
[ 0.410000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
|
||||
[ 0.440000] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
|
||||
[ 0.450000] console [ttyS0] enabled, bootconsole disabled
|
||||
[ 0.450000] console [ttyS0] enabled, bootconsole disabled
|
||||
[ 0.460000] ath79-spi ath79-spi: master is unqueued, this is deprecated
|
||||
[ 0.470000] m25p80 spi0.0: found mx25l6405d, expected m25p80
|
||||
[ 0.480000] m25p80 spi0.0: mx25l6405d (8192 Kbytes)
|
||||
[ 0.480000] 5 cmdlinepart partitions found on MTD device spi0.0
|
||||
[ 0.490000] Creating 5 MTD partitions on "spi0.0":
|
||||
[ 0.490000] 0x000000000000-0x000000040000 : "u-boot"
|
||||
[ 0.500000] 0x000000040000-0x000000050000 : "u-boot-env"
|
||||
[ 0.510000] 0x000000050000-0x0000007b0000 : "firmware"
|
||||
[ 0.520000] 2 uimage-fw partitions found on MTD device firmware
|
||||
[ 0.530000] 0x000000050000-0x00000015e4c9 : "kernel"
|
||||
[ 0.530000] mtd: partition "kernel" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
|
||||
[ 0.550000] 0x00000015e4c9-0x0000007b0000 : "rootfs"
|
||||
[ 0.550000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
|
||||
[ 0.570000] mtd: device 4 (rootfs) set to be root filesystem
|
||||
[ 0.570000] 1 squashfs-split partitions found on MTD device rootfs
|
||||
[ 0.580000] 0x000000380000-0x0000007b0000 : "rootfs_data"
|
||||
[ 0.590000] 0x0000007b0000-0x0000007f0000 : "cfg"
|
||||
[ 0.590000] 0x0000007f0000-0x000000800000 : "EEPROM"
|
||||
[ 0.610000] libphy: ag71xx_mdio: probed
|
||||
[ 1.160000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:01 [uid=004dd023, driver=Generic PHY]
|
||||
[ 1.170000] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MII
|
||||
[ 1.180000] TCP: cubic registered
|
||||
[ 1.180000] NET: Registered protocol family 17
|
||||
[ 1.190000] Bridge firewalling registered
|
||||
[ 1.190000] 8021q: 802.1Q VLAN Support v1.8
|
||||
[ 1.200000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
|
||||
[ 1.210000] Freeing unused kernel memory: 272K (8034c000 - 80390000)
|
||||
procd: Console is alive
|
||||
procd: - watchdog -
|
||||
[ 3.590000] usbcore: registered new interface driver usbfs
|
||||
[ 3.590000] usbcore: registered new interface driver hub
|
||||
[ 3.600000] usbcore: registered new device driver usb
|
||||
[ 3.610000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
|
||||
[ 3.620000] ehci-platform: EHCI generic platform driver
|
||||
[ 3.630000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
|
||||
procd: - preinit -
|
||||
Press the [f] key and hit [enter] to enter failsafe mode
|
||||
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
|
||||
[ 6.170000] eth0: link up (100Mbps/Full duplex)
|
||||
jffs2 is ready
|
||||
jffs2 is ready
|
||||
[ 7.260000] jffs2: notice: (310) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 16 of xref (0 dead, 2 orphan) found.
|
||||
switching to overlay
|
||||
[ 7.300000] eth0: link down
|
||||
procd: - early -
|
||||
procd: - watchdog -
|
||||
procd: - ubus -
|
||||
procd: - init -
|
||||
Please press Enter to activate this console.
|
||||
[ 8.740000] NET: Registered protocol family 10
|
||||
[ 8.750000] nf_conntrack version 0.5.0 (958 buckets, 3832 max)
|
||||
[ 8.760000] ip6_tables: (C) 2000-2006 Netfilter Core Team
|
||||
[ 8.780000] Loading modules backported from Linux version master-2014-05-22-0-gf2032ea
|
||||
[ 8.790000] Backport generated by backports.git backports-20140320-37-g5c33da0
|
||||
[ 8.800000] ip_tables: (C) 2000-2006 Netfilter Core Team
|
||||
[ 8.840000] xt_time: kernel timezone is -0000
|
||||
[ 8.870000] cfg80211: Calling CRDA to update world regulatory domain
|
||||
[ 8.870000] cfg80211: World regulatory domain updated:
|
||||
[ 8.880000] cfg80211: DFS Master region: unset
|
||||
[ 8.880000] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
|
||||
[ 8.890000] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
|
||||
[ 8.900000] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
|
||||
[ 8.910000] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
|
||||
[ 8.920000] cfg80211: (5170000 KHz - 5250000 KHz @ 160000 KHz), (N/A, 2000 mBm), (N/A)
|
||||
[ 8.920000] cfg80211: (5250000 KHz - 5330000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
|
||||
[ 8.930000] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
|
||||
[ 8.940000] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
|
||||
[ 8.950000] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
|
||||
[ 9.010000] PPP generic driver version 2.4.2
|
||||
[ 9.020000] NET: Registered protocol family 24
|
||||
[ 9.120000] ieee80211 phy0: Atheros AR9340 Rev:0 mem=0xb8100000, irq=47
|
||||
[ 9.150000] cfg80211: Calling CRDA for country: US
|
||||
[ 9.150000] cfg80211: Regulatory domain changed to country: US
|
||||
[ 9.160000] cfg80211: DFS Master region: FCC
|
||||
[ 9.160000] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
|
||||
[ 9.170000] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)
|
||||
[ 9.180000] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 1700 mBm), (N/A)
|
||||
[ 9.190000] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2300 mBm), (0 s)
|
||||
[ 9.200000] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
|
||||
[ 9.200000] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
|
||||
procd: - init complete -
|
||||
[ 17.270000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
|
||||
[ 17.280000] IPv6: ADDRCONF(NETDEV_UP): eth0.1: link is not ready
|
||||
[ 17.280000] device eth0.1 entered promiscuous mode
|
||||
[ 17.290000] device eth0 entered promiscuous mode
|
||||
[ 17.290000] eth0: link up (100Mbps/Full duplex)
|
||||
[ 17.310000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
|
||||
[ 17.310000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.1: link becomes ready
|
||||
[ 17.320000] br-lan: port 1(eth0.1) entered forwarding state
|
||||
[ 17.330000] br-lan: port 1(eth0.1) entered forwarding state
|
||||
[ 19.330000] br-lan: port 1(eth0.1) entered forwarding state
|
||||
```
|
BIN
technikzeugs/hardwareinfo/nanobeam M5/open-back.JPG
Normal file
BIN
technikzeugs/hardwareinfo/nanobeam M5/open-back.JPG
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.1 MiB |
BIN
technikzeugs/hardwareinfo/nanobeam M5/open-front.JPG
Normal file
BIN
technikzeugs/hardwareinfo/nanobeam M5/open-front.JPG
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.6 MiB |
BIN
technikzeugs/hardwareinfo/nanobeam M5/pcb.jpg
Normal file
BIN
technikzeugs/hardwareinfo/nanobeam M5/pcb.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.1 MiB |
4
technikzeugs/hardwareinfo/nanostation_M5.md
Normal file
4
technikzeugs/hardwareinfo/nanostation_M5.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
## Hardwarebug
|
||||
Die Nanostation M5 ist nicht betroffen, da sie einen Switch besitz, also ein anderer Ethernetchip verbaut ist.
|
||||
|
||||
|
10
technikzeugs/hardwareinfo/nanostation_loco_M5.md
Normal file
10
technikzeugs/hardwareinfo/nanostation_loco_M5.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
#OpenWRT
|
||||
Es gibt da diesen Bug von dem Daniel sprach: Bei einem großen Teil der neueren Geräte fällt nach einigen Stunden der WLAN-Chip aus.
|
||||
Nur reboot kann das lösen. Dieser Bug betrifft allerdings auch die originale Firmware, bloß macht die heimlcih sowas wie einen schnellen reboot.
|
||||
Siehe:
|
||||
https://dev.openwrt.org/ticket/19085
|
||||
Der letzte Eintrag im ticket klingt positiv, ist aber kaum 2 Tage alt.
|
||||
|
||||
Sollten wir also vielleicht nicht einsetzen.
|
||||
|
||||
ist das für uns überhaupt relevant? hardwarebugs gibt es immer wieder und überall, das os muss die dann halt verstecken, so gut es geht, und wenn die das in ihrer firmware gut geschafft haben, so dass es keinen weiteren effekt hat, dann ist das kein problem. (ihr glaubt ja garnicht wie viel hardware acpi falsch macht)
|
7
technikzeugs/howto/README.md
Normal file
7
technikzeugs/howto/README.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Howto
|
||||
Hier sammeln wir Anleitungen für wiederkehrende Aufgaben.
|
||||
|
||||
Evtl. fehlt noch:
|
||||
* Kabel crimpen
|
||||
|
||||
|
37
technikzeugs/howto/anschluss-einrichten.md
Normal file
37
technikzeugs/howto/anschluss-einrichten.md
Normal file
|
@ -0,0 +1,37 @@
|
|||
# Anschluss Einrichten
|
||||
## In Ansible eintragen
|
||||
Ansible aktualisieren
|
||||
|
||||
### Subnetz und ansible_host finden
|
||||
Im Ansible-Verzeichnis
|
||||
```
|
||||
grep subnet -r host_vars/ | awk -F : '{print $3" "$1}' | sort
|
||||
```
|
||||
ausführen.
|
||||
Das neue Subnetz sollte auf das letzte Subnetz folgen. (Netzmaske beachten: z.B bei /22 vier Netze weiterzählen.
|
||||
Die IP im Ansible Netz sollte ebenfalls nicht vergeben sein.
|
||||
Gegebenen falls mit "grep" prüfen.
|
||||
```
|
||||
grep 192.168.42. -r host_vars/ | awk -F : '{print $3" "$1}' | sort
|
||||
```
|
||||
Namensschema der antennen: <straße><hausnummer>-<antenne_nr>
|
||||
|
||||
### Neuen Eintrag in host_vars/ erstellen
|
||||
Antennentemplate kopieren und passend ausfüllen.
|
||||
### Antenne in hosts eintragen
|
||||
Zeile in der Datei hosts ergänzen.
|
||||
### Ansible ausführen
|
||||
Zum Testen der Angaben
|
||||
```
|
||||
ansible-playbook -CD playbooks/reload_anschluesse.yaml
|
||||
```
|
||||
um sie Umzusetzen:
|
||||
```
|
||||
ansible-playbook playbooks/reload_anschluesse.yaml
|
||||
```
|
||||
### Git aktualisieren und pushen
|
||||
wie gehabt
|
||||
### Antenne konfigurieren
|
||||
siehe antenne_konfigurieren.md
|
||||
|
||||
|
70
technikzeugs/howto/antenne_konfigurieren.md
Normal file
70
technikzeugs/howto/antenne_konfigurieren.md
Normal file
|
@ -0,0 +1,70 @@
|
|||
# Antennen konfigurieren mit config-Datei
|
||||
Diese Anleitung könnte obsolet sein / werden.
|
||||
|
||||
Besorge dir die aktuelle Config-datei
|
||||
Dabei ist zwischen "station" und "accesspoint" zu unterscheiden.
|
||||
(evtl kommt noch eine "relay" config)
|
||||
|
||||
Eine Antenne hat direkt nach dem Reset die IP-Adresse 192.168.1.20
|
||||
und "ubnt" als user und als passwort.
|
||||
Country Code: DE
|
||||
language: english
|
||||
|
||||
Überlege dir mit welcher Antenne du die neue Antenne verbinden willst.
|
||||
|
||||
## Station
|
||||
Die Antenne wird als Station eingerichtet.
|
||||
Das heißt, sie steht bei den Nutzendden und bildet einen Endpunkt des Netzes.
|
||||
### Antenne updaten
|
||||
Tab: SYSTEM
|
||||
Check for updates ( and install them )
|
||||
Download firmwarefile von ubnt.com und spiele sie auf die Antenne. bei den Geräten handelt es sich um "AirMax M Series".
|
||||
Aktuelle Versionen
|
||||
[NanoBeam NBE-M5-16](http://dl.ubnt.com/firmwares/XW-fw/v6.0/XW.v6.0.30097.161219.1705.bin)
|
||||
|
||||
|
||||
### Config datei einspielen
|
||||
Tab: SYSTEM
|
||||
Upload "station"-config.
|
||||
Danach ist das Webinterface anhand der config ausgefüllt, die Einstellungen sind jedoch noch nicht ausgeführt.
|
||||
|
||||
Nun müssen alle Anpassungen ausgeführt werden:
|
||||
### Devicename einrichten
|
||||
Tab: SYSTEM
|
||||
Device Name: < StraßeHausnummer_1 > falls auf dem Haus bereits eine Antenne steht statt 1 z.B. 2 verwenden.
|
||||
### IP Adressen einrichten
|
||||
Die Addresse, die in Ansible für das Subnetz der Nutzenden vergeben wurde muss auf der Antenne eingetragen werden.
|
||||
Tab: NETWORK
|
||||
LAN-IP: die erste IP im Subnetz. z.B. 10.8.8.1
|
||||
FIREWALL: überall das korrekte Subnetz eintragen.
|
||||
### WPA-Passphrase einrichten
|
||||
Tab: WIRELESS
|
||||
Security: WPA2-AES
|
||||
WPA Auth: PSK
|
||||
WPA KEY: schau auf dem Accesspoint nach, mit der du dich verbindest. Jede SSID bekommtihr eigenes Passwort. es wird ausschließlich auf den Antennen gespeichert.
|
||||
Ändere das Passwort immer zuerst auf dem Gerät, das nicht in deiner Nähe ist.
|
||||
|
||||
##Accesspoint
|
||||
Die Antenne wird als Accesspoint eingerichtet. Das bedeutet, das sie auf unserem Dach steht.
|
||||
### Antenne updaten
|
||||
Tab: SYSTEM
|
||||
Check for updates ( and install them )
|
||||
Download firmwarefile von ubnt.com und spiele sie auf die Antenne. bei den Geräten handelt es sich um "AirMax M Series".
|
||||
|
||||
### Config datei einspielen
|
||||
Tab: SYSTEM
|
||||
Upload "accesspoint"-config. Du findest sie im wiki in technigzeugs
|
||||
Danach ist das Webinterface anhand der config ausgefüllt, die Einstellungen sind jedoch noch nicht ausgeführt.
|
||||
|
||||
Nun müssen alle Anpassungen ausgeführt werden:
|
||||
### Devicename einrichten
|
||||
Tab: SYSTEM
|
||||
Device Name: < StraßeHausnummer_1 > falls auf dem Haus bereits eine Antenne steht statt 1 z.B. 2 verwenden.
|
||||
### WPA-Passphrase einrichten
|
||||
Tab: WIRELESS
|
||||
Security: WPA2-AES
|
||||
WPA Auth: PSK
|
||||
WPA KEY: generiere ein neues mitdestens 23 stelliges Passwort. Trage es jedoch zuerst in der "station" ein, da du dich sonst nicht mehr verbinden kannst. Jede SSID bekommt ihr eigenes Passwort. es wird ausschließlich auf den Antennen gespeichert.
|
||||
Ändere das Passwort immer zuerst auf dem Gerät, das nicht in deiner Nähe ist.
|
||||
|
||||
|
13
technikzeugs/howto/antenne_mit_vlan_erreichen.md
Normal file
13
technikzeugs/howto/antenne_mit_vlan_erreichen.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Antenne mit VLAN-Config erreichen
|
||||
Wenn hinter der Antenne ein Switch über VLAN mehrere Anschlüsse ermöglich, muss du dir selbst ein VLN geben, um die Antenne zu erreichen:
|
||||
## Voraussetzung
|
||||
Du musst die VLAN-ID und die IP-Adresse die du verwenden möchstest kennen.
|
||||
Hier gilt:
|
||||
VLAN-ID:101
|
||||
device:enp1s0
|
||||
IP: 10.6.8.42
|
||||
|
||||
## Einrichten
|
||||
sudo ip link add link enp1s0 name enp1s0.101 type vlan id 101
|
||||
sudo ip addr add 10.6.8.42/24 brd 10.6.8.255 dev enp1s0.101
|
||||
sudo ip link set dev enp1s0.101 up
|
52
technikzeugs/howto/antennen_anbringen.md
Normal file
52
technikzeugs/howto/antennen_anbringen.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
# So schließe ich neue Nutzende an
|
||||
|
||||
## Vorbereitung:
|
||||
Klären:
|
||||
* Was ist mit einem Vertrag?
|
||||
* Erlaubnis des Hausbesitzers
|
||||
* Stromversorgung
|
||||
* Blitzschutz
|
||||
* Verantwortliche
|
||||
* Wie komme ich rein? Wie aufs Dach?
|
||||
|
||||
### nicht optional
|
||||
* Antenne vorher konfigurieren
|
||||
siehe 'antennen_konfigurieren'
|
||||
|
||||
## Was brauche ich?
|
||||
* Antenne
|
||||
* Kletterausrüstung
|
||||
* Laptop
|
||||
* Werkzeug:
|
||||
Es gibt eine Werkzeugkiste im Lager mit :
|
||||
* LAN-Kabel (kurz)
|
||||
* LAN-Kabel (lang)
|
||||
* Kommunikationsmittel
|
||||
* Kabeltester
|
||||
* Patchzange
|
||||
* Netzwerk-Stecker
|
||||
* Kabelbinder
|
||||
Schau am besten nach ob das Zeug auch drin ist.
|
||||
|
||||
###optional
|
||||
* Fernglas
|
||||
* Taschenlampe
|
||||
* einen Halter für die Antenne
|
||||
* Schrauben
|
||||
* Dübel
|
||||
* Bits
|
||||
* Akku-Schlagbohrer
|
||||
* Stein-Bohrer
|
||||
|
||||
## Wo schraube ich die Antenne an?
|
||||
So dass Sichtkontakt zur Antenne besteht, mit der sich Verbunden werden soll. Dabei
|
||||
* nicht an Schornsteinfegerleitern und Handgriffe
|
||||
* Kabel möglichst wenig auf dem Dach entlang führen
|
||||
* Dazu möglicherweise eine Halterin für die Antenne anschrauben.
|
||||
* Alle Dinge die mitgenommen werden am Klettergschirr sichern. Wir wollen keine unbeabsichtigten Toten und Verletzen.
|
||||
|
||||
Am optimalsten sind (wer hätte das gedacht) vorhandene Antennenmasten.
|
||||
|
||||
## Dinge die für diesen Eintrag herauszufinden sind:
|
||||
* Dürfen wir in Schornsteine schrauben?
|
||||
|
26
technikzeugs/howto/kabel_ueber_straßen_spannen.md
Normal file
26
technikzeugs/howto/kabel_ueber_straßen_spannen.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Kabel über Straßen spannen
|
||||
Anstatt Funkstrecken können auch Kabel verwendet werden, um die Nutzenden anzubinden.
|
||||
Dazu empfielt es sich metallfreie Kabel zu verwenden, um den Problemen von Gewitter und Kurzschluss von Bahntrassen zu entgehen.
|
||||
|
||||
## Rechtliches
|
||||
Zusammenfassung von: http://www.leipzig.de/buergerservice-und-verwaltung/aemter-und-behoerdengaenge/behoerden-und-dienstleistungen/dienstleistung/erlaubnis-fuer-sondernutzung-oeffentlicher-strassen-und-plaetze-nach-territorialer-zustaendigkeit-53/
|
||||
|
||||
Generell muss ein Sondernutzungsantrag zur Verlegung eines Kabels über die Straße gestellt werden.
|
||||
http://www.leipzig.de/buergerservice-und-verwaltung/aemter-und-behoerdengaenge/formulare/?tx_ewerkformsmanager_pi%5Buid%5D=97&tx_ewerkformsmanager_pi%5Baction%5D=download&tx_ewerkformsmanager_pi%5Bcontroller%5D=Form
|
||||
Es muss in mindestens 4,7m Höhe angebracht sein und kostet pro Monat pro überquerung der Straße
|
||||
Zone1 Zone2 Zone3
|
||||
1,60€ 1,20€ 0,80€
|
||||
|
||||
Zone1 ist das Stadtzentrum. Damit sind alle Straßen gemeint, die sich innerhalb des Promenadenrings befinden.
|
||||
Zone2 endet Richtung Osten am Gerichtsweg/Ludwig-Ehrhard-Straße/Prager-Straße
|
||||
Zone3 ist der Rest. Hier sind wir meistens.
|
||||
|
||||
siehe auch: http://www.leipzig.de/buergerservice-und-verwaltung/aemter-und-behoerdengaenge/satzungen/?tx_ewerkformsmanager_pi%5Bcontroller%5D=Statues&tx_ewerkformsmanager_pi%5Baction%5D=download&tx_ewerkformsmanager_pi%5Buid%5D=367&tx_ewerkformsmanager_pi%5Bfilename%5D=367-561cb3394b8f6.pdf&cHash=518d90dc191631bf2ac61ad13d5dd361
|
||||
|
||||
Wir müssen noch heruasfinden, ob die Arbeiten durch ein Unternehmen aus der Liste der für Arbeiten im öffentlichen Raum zugelassenen Unternehmen durchgeführt werden muss oder nicht.
|
||||
Das Ding heißt vermutlich Präqualifikationverzeichnis.
|
||||
|
||||
## Technisches
|
||||
Um das zu tun brauchen wir außer der Gehnehmigung, geeignetet Glasfaser und Oberleitungsrosetten oder ähnliche Wandanker. Außerdem ist zu klären, wie die Befestigung am optimalsten durchgeführt wird -> spezieller Zement, Anker, etc.
|
||||
Um das Kabel in das Haus hineinzubekommen muss die Außenhaut durchbohrt werden. Die entsprechenden Brandschutzverordnungen sind in Erfahrung zu bringen.
|
||||
Nach dem die Faser liegt, brauchen wir noch einen LWL-Switch und fertig ist die Verbindung.
|
50
technikzeugs/howto/openwrtrouter_fuers_heimnetzwerk.md
Normal file
50
technikzeugs/howto/openwrtrouter_fuers_heimnetzwerk.md
Normal file
|
@ -0,0 +1,50 @@
|
|||
# Openwrt Router für Heimnetzwerkeinrichten
|
||||
|
||||
Eine kurze Anleitung um einen Router (hier einen TP-Link TL-WR841N) mit OpenWRT zu flashen und im Heimnetzwerk einzurichten
|
||||
|
||||
## WARUM?
|
||||
|
||||
OpenWRT ist freie Software. Dadurch können alle die möchten, den Quellcode der Software lesen und so sicherstellen, das sie Vertrauenswürdig ist.
|
||||
Außerdem lässt sich OpenWRT sehr flexibel einsetzen und gibt den Nutzenden die volle Kontrolle über das Gerät.
|
||||
|
||||
## Router flashen
|
||||
|
||||
### Das Image finden
|
||||
Zuerst müssen wir die passende Firmware für das Gerät finden. Dazu können wir auf wiki.openwrt.org nach dem Gerätenamen (hier: WR841N) suchen.
|
||||
Im Wikiartikel steht in der Regel welches Image wie auf den Router gespielt werden kann.
|
||||
Vorsicht das Wiki ist allerdings selten aktuell. Am Besten ist es unter download.openwrt.org nochmal nach einem aktuelleren Image zu suchen. Als Orientierung kann der Pfad des veralteten Images dienen.
|
||||
Das richtige Image muss "factory" im namen enthalten, da wir von der Herstellerfirmware wechseln. "sysupgrade" verwenden wir wenn auf dem Router bereits OpenWRT ist und wir es updaten wollen.
|
||||
Nun habe ich die Datei ""
|
||||
|
||||
### Den Router anschließen
|
||||
Nun musst du ein LAN-Kabel mit einem LAN-Anschluss (hier: gelb) des Routers und deinem Rechner verbinden und den Router mit Strom versorgen.
|
||||
Wenn dir der Router eine Addresse gegeben hat, kannst du die IP Adresse des Routers im Browser eingeben und dich einloggen.
|
||||
Die Routeradresse kannst du entweder aus den Netzwerkeistellung oder aus dem Handbuch herausfinden. Dort stehen auf die Standard-Logindaten.
|
||||
Wenn du eingeloggt bist kannst du unter "Firmare upgrade" das Image auswählen und auf den Router spielen.
|
||||
Damit hast du OpenWRT installiert.
|
||||
|
||||
### Ganz einfache Standard-Konfiguration
|
||||
|
||||
Nach jeder Einstellung muss du auf "Save and Apply" klicken, sonst vergisst der Router die Einstellungen beim Wechsel zwischen den Tabs wieder.
|
||||
Im Tab "Network --> Interfaces" lassen wir alles wie gahabt.
|
||||
DHCP ist an. Im LAN verteilt der Router IPs. Das lassen wir einfach so.
|
||||
Auf dem WAN-Anschluss (hier: blau) holt sich der Router als DHCP-Client eine IP.
|
||||
Anfragen aus dem LAN werden ans WAN weitergegeben. Anfragen aus dem WAN ins LAN aber verworfen.
|
||||
|
||||
Im Tab "Network --> Wifi" müssen wir noch das WLAN benennen, mit Passwort versehen und anschalten:
|
||||
Im Abschnitt Device Confuguration
|
||||
musst du gar nichts machen, kannst aber die "channels" auf auto stellen. und die Breite der Kanäle auf 40Mhz. Muss aber nicht sein.
|
||||
|
||||
Bei "Interface Configuration" musste du
|
||||
Bei "ESSID" kannst du den Namen des Netzwerkes eintragen.
|
||||
und dort dann im Tab "Wireless Security"
|
||||
Encryption auf WPA2-PSK stellen und eine WLAN-Passwort in Key eintragen.
|
||||
|
||||
|
||||
Unter "System --> System" geben wir dem Router noch einen netteren Namen als OpenWRT und klicken einmal auf "Sync with Browser" um die Uhrzeit einzustellen.
|
||||
Zuletzt müssen wir noch im Abschnitt "System --> Administration" ein Passwort für den Router festlegen.
|
||||
Ich persönlich schreibe das Passwort meistens gleich mit auf den Router, da ohnehin jeder der Zugang zu Router hat ihn auch Reseten kann. Wichtig ist das Passwort vorallem, um es Eindringlingen, die aus der Ferne in dein Netzwerk eindringen, etwas schwerer zu machen.
|
||||
Sinnvoll ist es außerdem den SSH-Zugang auf LAN zu beschränken.
|
||||
|
||||
##TODO
|
||||
Anleitung um unsere NTP DNS etc server ergänzen
|
12
technikzeugs/howto/tipps_und_tricks.md
Normal file
12
technikzeugs/howto/tipps_und_tricks.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
### Hinweise zu den Antennen
|
||||
Um zu schauen, ob die Antenne für die Nutzenden erreichbar ist macht es sinn zu schauen ob sie Leases vergibt. Die DHCP-Leases sind unter /tmp/dhcp.leases zu finden.
|
||||
=======
|
||||
Um zu schauen, ob die Antenne für die Nutzenden erreichbar ist macht es sinnzu schauen ob sie Leases vergibt. Die DHCP-Leases sind unter /tmp/dhcp.leases zu finden.
|
||||
|
||||
Falls mal kein DHCP Server erreichbar ist geben sich die Antennen eine Fallback IP. Dann sind sie unter 192.168.10.1 zu erreichen
|
||||
|
||||
###### Reset
|
||||
AirOS lässt sich auf den Nanobeams durch 10s drücken auf den Resetbutton am PoE auf factory defaults zurücksetzen (, falls dies in der Software aktiviert).
|
||||
Ansonsten lässt sich die Antenne direkt am Gerät durch Bedienen des Reset-Knopfs während des Bootvorgangs zurücksetzen.
|
||||
|
||||
Sollte die Antenne rot blinken ist sie im Bootloade-Modus und erwartet ein Image via TFTP. Falls der Zustand durch Stromversorgung unterbrechen nicht weggeht, ist das Image vermutlich kaputt und muss neu geflasht werden. Anleitung dazu gibt im Netz bei Ubiquiti.
|
27
technikzeugs/howto/ubiquiti-tftp-flashing.md
Normal file
27
technikzeugs/howto/ubiquiti-tftp-flashing.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Per TFTP ein Image auf die Antenne flashen
|
||||
Wenn die Antenne abwechselnd rot und grün blinkt befindet sie sich im Bootloader und erwartet ein TFTP Image. Falls die Firmware zerschossen ist bootet sie immer in diesen Modus. Um das Problem zu beheben geben wir ihr das erwünschte Image per TFTP.
|
||||
|
||||
### Image herunterladen
|
||||
Das richtige Image herunterladen
|
||||
https://www.ubnt.com/download/airmax-m/nanostationm/nsm5/airos-xw-board-firmware-v564
|
||||
bei mir wars das XW image. Aber es gibt auch noch XM.
|
||||
https://wiki.openwrt.org/toh/ubiquiti/nanostationm5
|
||||
|
||||
### IP-Adresse einrichten
|
||||
gib dir eine statische IP aus dem 192.168.1.x subnetz
|
||||
die Antenne ist dann unter 192.168.1.20 zu erreichen.
|
||||
das PRbieren wir besser gleich mal aus:
|
||||
```ping 192.168.1.20```
|
||||
|
||||
### Flashen
|
||||
```
|
||||
$: tftp 192.168.1.20
|
||||
tftp> bin
|
||||
tftp> trace
|
||||
tftp> put XW.v5.6.4.28924.160331.1238.bin
|
||||
Sent 1965199 bytes in 35.2 seconds
|
||||
tftp> quit
|
||||
```
|
||||
Nun updatet die Antenne.
|
||||
Danach müsste die Antenne nach 7-10 min zu erreichen sein. Nicht zwischendrin abschalten.
|
||||
|
51
technikzeugs/howto/uplink_konfigurieren.md
Normal file
51
technikzeugs/howto/uplink_konfigurieren.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
# Uplink einrichten
|
||||
Früher nutzten wir zwei mehr oder weniger zuverlässige Uplinks. Aus dieser Zeit stammt diese "Anleitung".
|
||||
|
||||
Der Server muss so konfiguriert werden, dass eine Netzwerkschnittestelle als Uplink funktioniert.
|
||||
Denkbar ist auch, je nach verfügbarkeit zwischen verschiedenen Uplinks zu wechseln
|
||||
## Vorgehen und nützliche Befehle
|
||||
Es bietet sich an, erstmal einen Überblink von der Ausgangssituation zu bekommen:
|
||||
|
||||
ip route show
|
||||
ip route list
|
||||
ip route del <addr> dev <dev>
|
||||
|
||||
## History aus dem Unstellen des Uplinks
|
||||
|
||||
397 ip route del 192.168.125.1 dev upstream scope link metric 1024
|
||||
398 ip route shpw
|
||||
399 ip route show
|
||||
400 ip route del 192.168.125.0/24 dev upstream proto kernel scope link src 192.168.125.203
|
||||
401 ip route show
|
||||
402 systemctl stop ip_forward_service
|
||||
403 systemctl stop ip_forward
|
||||
404 iptables -F
|
||||
405 iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
|
||||
406 iptables --append FORWARD -i eth0 -j ACCEPT
|
||||
407 ip route show
|
||||
408 ip route list
|
||||
409 ip route del default via 192.168.16.50 dev eth1
|
||||
410 ip route add default via 192.168.125.1 dev upstream scope link metric 1024
|
||||
411 ip route add 192.168.125.1 dev upstream scope link metric 1024
|
||||
412 ip route add 192.168.125.0/24 dev upstream proto kernel scope link src 192.168.125.203
|
||||
413 ip route
|
||||
414 ip route add default via 192.168.125.1 dev upstream
|
||||
415 ip route list
|
||||
416 vim /etc/dhcp/dhcpd.conf
|
||||
417 systemctl start ip_forward
|
||||
418 systemctl restart systemd-networkd.service
|
||||
419 ip route show
|
||||
420 ip route
|
||||
421 ping 8.8.8.8
|
||||
422 ping 192.168.125.1
|
||||
423 ping 192.168.42.23
|
||||
424 ip route
|
||||
425 ip route del default via 192.168.125.1 dev upstream
|
||||
426 ip route add default via 192.168.16.50 dev eth1
|
||||
427 ping 8.8.8.8
|
||||
428 ping 192.168.42.23
|
||||
429 ping 8.8.8.8
|
||||
430 systemctl restart openvpn@to_paul.service
|
||||
431 ls
|
||||
432 ping 8.8.8.8
|
||||
|
20
technikzeugs/scripts/ping.sh
Executable file
20
technikzeugs/scripts/ping.sh
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
HOSTS="10.9.8.10"
|
||||
COUNT=120
|
||||
DOWN=0
|
||||
for myHost in $HOSTS
|
||||
do
|
||||
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
|
||||
if [ $count -eq 0 ]; then
|
||||
if [ $DOWN -eq 0 ]; then
|
||||
echo "sol ($myHost) is down at $(date)" | mail -s "sol down" mail@reudnetz.org
|
||||
DOWN=1
|
||||
fi
|
||||
else
|
||||
if [ $DOWN -eq 1 ]; then
|
||||
echo "sol ($myHost) is up again at $(date)" | mail -s "sol recovered" mail@reudnetz.org
|
||||
DOWN=0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
694
technikzeugs/scripts/speedtest-cli.py
Executable file
694
technikzeugs/scripts/speedtest-cli.py
Executable file
|
@ -0,0 +1,694 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2012-2014 Matt Martz
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
__version__ = '0.3.1'
|
||||
|
||||
# Some global variables we use
|
||||
source = None
|
||||
shutdown_event = None
|
||||
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import math
|
||||
import signal
|
||||
import socket
|
||||
import timeit
|
||||
import threading
|
||||
|
||||
# Used for bound_interface
|
||||
socket_socket = socket.socket
|
||||
|
||||
try:
|
||||
import xml.etree.cElementTree as ET
|
||||
except ImportError:
|
||||
try:
|
||||
import xml.etree.ElementTree as ET
|
||||
except ImportError:
|
||||
from xml.dom import minidom as DOM
|
||||
ET = None
|
||||
|
||||
# Begin import game to handle Python 2 and Python 3
|
||||
try:
|
||||
from urllib2 import urlopen, Request, HTTPError, URLError
|
||||
except ImportError:
|
||||
from urllib.request import urlopen, Request, HTTPError, URLError
|
||||
|
||||
try:
|
||||
from httplib import HTTPConnection, HTTPSConnection
|
||||
except ImportError:
|
||||
from http.client import HTTPConnection, HTTPSConnection
|
||||
|
||||
try:
|
||||
from Queue import Queue
|
||||
except ImportError:
|
||||
from queue import Queue
|
||||
|
||||
try:
|
||||
from urlparse import urlparse
|
||||
except ImportError:
|
||||
from urllib.parse import urlparse
|
||||
|
||||
try:
|
||||
from urlparse import parse_qs
|
||||
except ImportError:
|
||||
try:
|
||||
from urllib.parse import parse_qs
|
||||
except ImportError:
|
||||
from cgi import parse_qs
|
||||
|
||||
try:
|
||||
from hashlib import md5
|
||||
except ImportError:
|
||||
from md5 import md5
|
||||
|
||||
try:
|
||||
from argparse import ArgumentParser as ArgParser
|
||||
except ImportError:
|
||||
from optparse import OptionParser as ArgParser
|
||||
|
||||
try:
|
||||
import builtins
|
||||
except ImportError:
|
||||
def print_(*args, **kwargs):
|
||||
"""The new-style print function taken from
|
||||
https://pypi.python.org/pypi/six/
|
||||
|
||||
"""
|
||||
fp = kwargs.pop("file", sys.stdout)
|
||||
if fp is None:
|
||||
return
|
||||
|
||||
def write(data):
|
||||
if not isinstance(data, basestring):
|
||||
data = str(data)
|
||||
fp.write(data)
|
||||
|
||||
want_unicode = False
|
||||
sep = kwargs.pop("sep", None)
|
||||
if sep is not None:
|
||||
if isinstance(sep, unicode):
|
||||
want_unicode = True
|
||||
elif not isinstance(sep, str):
|
||||
raise TypeError("sep must be None or a string")
|
||||
end = kwargs.pop("end", None)
|
||||
if end is not None:
|
||||
if isinstance(end, unicode):
|
||||
want_unicode = True
|
||||
elif not isinstance(end, str):
|
||||
raise TypeError("end must be None or a string")
|
||||
if kwargs:
|
||||
raise TypeError("invalid keyword arguments to print()")
|
||||
if not want_unicode:
|
||||
for arg in args:
|
||||
if isinstance(arg, unicode):
|
||||
want_unicode = True
|
||||
break
|
||||
if want_unicode:
|
||||
newline = unicode("\n")
|
||||
space = unicode(" ")
|
||||
else:
|
||||
newline = "\n"
|
||||
space = " "
|
||||
if sep is None:
|
||||
sep = space
|
||||
if end is None:
|
||||
end = newline
|
||||
for i, arg in enumerate(args):
|
||||
if i:
|
||||
write(sep)
|
||||
write(arg)
|
||||
write(end)
|
||||
else:
|
||||
print_ = getattr(builtins, 'print')
|
||||
del builtins
|
||||
|
||||
|
||||
def bound_socket(*args, **kwargs):
|
||||
"""Bind socket to a specified source IP address"""
|
||||
|
||||
global source
|
||||
sock = socket_socket(*args, **kwargs)
|
||||
sock.bind((source, 0))
|
||||
return sock
|
||||
|
||||
|
||||
def distance(origin, destination):
|
||||
"""Determine distance between 2 sets of [lat,lon] in km"""
|
||||
|
||||
lat1, lon1 = origin
|
||||
lat2, lon2 = destination
|
||||
radius = 6371 # km
|
||||
|
||||
dlat = math.radians(lat2 - lat1)
|
||||
dlon = math.radians(lon2 - lon1)
|
||||
a = (math.sin(dlat / 2) * math.sin(dlat / 2) + math.cos(math.radians(lat1))
|
||||
* math.cos(math.radians(lat2)) * math.sin(dlon / 2)
|
||||
* math.sin(dlon / 2))
|
||||
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
|
||||
d = radius * c
|
||||
|
||||
return d
|
||||
|
||||
|
||||
class FileGetter(threading.Thread):
|
||||
"""Thread class for retrieving a URL"""
|
||||
|
||||
def __init__(self, url, start):
|
||||
self.url = url
|
||||
self.result = None
|
||||
self.starttime = start
|
||||
threading.Thread.__init__(self)
|
||||
|
||||
def run(self):
|
||||
self.result = [0]
|
||||
try:
|
||||
if (timeit.default_timer() - self.starttime) <= 10:
|
||||
f = urlopen(self.url)
|
||||
while 1 and not shutdown_event.isSet():
|
||||
self.result.append(len(f.read(10240)))
|
||||
if self.result[-1] == 0:
|
||||
break
|
||||
f.close()
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
|
||||
def downloadSpeed(files, quiet=False):
|
||||
"""Function to launch FileGetter threads and calculate download speeds"""
|
||||
|
||||
start = timeit.default_timer()
|
||||
|
||||
def producer(q, files):
|
||||
for file in files:
|
||||
thread = FileGetter(file, start)
|
||||
thread.start()
|
||||
q.put(thread, True)
|
||||
if not quiet and not shutdown_event.isSet():
|
||||
sys.stdout.write('.')
|
||||
sys.stdout.flush()
|
||||
|
||||
finished = []
|
||||
|
||||
def consumer(q, total_files):
|
||||
while len(finished) < total_files:
|
||||
thread = q.get(True)
|
||||
while thread.isAlive():
|
||||
thread.join(timeout=0.1)
|
||||
finished.append(sum(thread.result))
|
||||
del thread
|
||||
|
||||
q = Queue(6)
|
||||
prod_thread = threading.Thread(target=producer, args=(q, files))
|
||||
cons_thread = threading.Thread(target=consumer, args=(q, len(files)))
|
||||
start = timeit.default_timer()
|
||||
prod_thread.start()
|
||||
cons_thread.start()
|
||||
while prod_thread.isAlive():
|
||||
prod_thread.join(timeout=0.1)
|
||||
while cons_thread.isAlive():
|
||||
cons_thread.join(timeout=0.1)
|
||||
return (sum(finished) / (timeit.default_timer() - start))
|
||||
|
||||
|
||||
class FilePutter(threading.Thread):
|
||||
"""Thread class for putting a URL"""
|
||||
|
||||
def __init__(self, url, start, size):
|
||||
self.url = url
|
||||
chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||
data = chars * (int(round(int(size) / 36.0)))
|
||||
self.data = ('content1=%s' % data[0:int(size) - 9]).encode()
|
||||
del data
|
||||
self.result = None
|
||||
self.starttime = start
|
||||
threading.Thread.__init__(self)
|
||||
|
||||
def run(self):
|
||||
try:
|
||||
if ((timeit.default_timer() - self.starttime) <= 10 and
|
||||
not shutdown_event.isSet()):
|
||||
f = urlopen(self.url, self.data)
|
||||
f.read(11)
|
||||
f.close()
|
||||
self.result = len(self.data)
|
||||
else:
|
||||
self.result = 0
|
||||
except IOError:
|
||||
self.result = 0
|
||||
|
||||
|
||||
def uploadSpeed(url, sizes, quiet=False):
|
||||
"""Function to launch FilePutter threads and calculate upload speeds"""
|
||||
|
||||
start = timeit.default_timer()
|
||||
|
||||
def producer(q, sizes):
|
||||
for size in sizes:
|
||||
thread = FilePutter(url, start, size)
|
||||
thread.start()
|
||||
q.put(thread, True)
|
||||
if not quiet and not shutdown_event.isSet():
|
||||
sys.stdout.write('.')
|
||||
sys.stdout.flush()
|
||||
|
||||
finished = []
|
||||
|
||||
def consumer(q, total_sizes):
|
||||
while len(finished) < total_sizes:
|
||||
thread = q.get(True)
|
||||
while thread.isAlive():
|
||||
thread.join(timeout=0.1)
|
||||
finished.append(thread.result)
|
||||
del thread
|
||||
|
||||
q = Queue(6)
|
||||
prod_thread = threading.Thread(target=producer, args=(q, sizes))
|
||||
cons_thread = threading.Thread(target=consumer, args=(q, len(sizes)))
|
||||
start = timeit.default_timer()
|
||||
prod_thread.start()
|
||||
cons_thread.start()
|
||||
while prod_thread.isAlive():
|
||||
prod_thread.join(timeout=0.1)
|
||||
while cons_thread.isAlive():
|
||||
cons_thread.join(timeout=0.1)
|
||||
return (sum(finished) / (timeit.default_timer() - start))
|
||||
|
||||
|
||||
def getAttributesByTagName(dom, tagName):
|
||||
"""Retrieve an attribute from an XML document and return it in a
|
||||
consistent format
|
||||
|
||||
Only used with xml.dom.minidom, which is likely only to be used
|
||||
with python versions older than 2.5
|
||||
"""
|
||||
elem = dom.getElementsByTagName(tagName)[0]
|
||||
return dict(list(elem.attributes.items()))
|
||||
|
||||
|
||||
def getConfig():
|
||||
"""Download the speedtest.net configuration and return only the data
|
||||
we are interested in
|
||||
"""
|
||||
|
||||
uh = urlopen('http://www.speedtest.net/speedtest-config.php')
|
||||
configxml = []
|
||||
while 1:
|
||||
configxml.append(uh.read(10240))
|
||||
if len(configxml[-1]) == 0:
|
||||
break
|
||||
if int(uh.code) != 200:
|
||||
return None
|
||||
uh.close()
|
||||
try:
|
||||
try:
|
||||
root = ET.fromstring(''.encode().join(configxml))
|
||||
config = {
|
||||
'client': root.find('client').attrib,
|
||||
'times': root.find('times').attrib,
|
||||
'download': root.find('download').attrib,
|
||||
'upload': root.find('upload').attrib}
|
||||
except AttributeError:
|
||||
root = DOM.parseString(''.join(configxml))
|
||||
config = {
|
||||
'client': getAttributesByTagName(root, 'client'),
|
||||
'times': getAttributesByTagName(root, 'times'),
|
||||
'download': getAttributesByTagName(root, 'download'),
|
||||
'upload': getAttributesByTagName(root, 'upload')}
|
||||
except SyntaxError:
|
||||
print_('Failed to parse speedtest.net configuration')
|
||||
sys.exit(1)
|
||||
del root
|
||||
del configxml
|
||||
return config
|
||||
|
||||
|
||||
def closestServers(client, all=False):
|
||||
"""Determine the 5 closest speedtest.net servers based on geographic
|
||||
distance
|
||||
"""
|
||||
|
||||
uh = urlopen('http://www.speedtest.net/speedtest-servers-static.php')
|
||||
serversxml = []
|
||||
while 1:
|
||||
serversxml.append(uh.read(10240))
|
||||
if len(serversxml[-1]) == 0:
|
||||
break
|
||||
if int(uh.code) != 200:
|
||||
return None
|
||||
uh.close()
|
||||
try:
|
||||
try:
|
||||
root = ET.fromstring(''.encode().join(serversxml))
|
||||
elements = root.getiterator('server')
|
||||
except AttributeError:
|
||||
root = DOM.parseString(''.join(serversxml))
|
||||
elements = root.getElementsByTagName('server')
|
||||
except SyntaxError:
|
||||
print_('Failed to parse list of speedtest.net servers')
|
||||
sys.exit(1)
|
||||
servers = {}
|
||||
for server in elements:
|
||||
try:
|
||||
attrib = server.attrib
|
||||
except AttributeError:
|
||||
attrib = dict(list(server.attributes.items()))
|
||||
d = distance([float(client['lat']), float(client['lon'])],
|
||||
[float(attrib.get('lat')), float(attrib.get('lon'))])
|
||||
attrib['d'] = d
|
||||
if d not in servers:
|
||||
servers[d] = [attrib]
|
||||
else:
|
||||
servers[d].append(attrib)
|
||||
del root
|
||||
del serversxml
|
||||
del elements
|
||||
|
||||
closest = []
|
||||
for d in sorted(servers.keys()):
|
||||
for s in servers[d]:
|
||||
closest.append(s)
|
||||
if len(closest) == 5 and not all:
|
||||
break
|
||||
else:
|
||||
continue
|
||||
break
|
||||
|
||||
del servers
|
||||
return closest
|
||||
|
||||
|
||||
def getBestServer(servers):
|
||||
"""Perform a speedtest.net latency request to determine which
|
||||
speedtest.net server has the lowest latency
|
||||
"""
|
||||
|
||||
results = {}
|
||||
for server in servers:
|
||||
cum = []
|
||||
url = '%s/latency.txt' % os.path.dirname(server['url'])
|
||||
urlparts = urlparse(url)
|
||||
for i in range(0, 3):
|
||||
try:
|
||||
if urlparts[0] == 'https':
|
||||
h = HTTPSConnection(urlparts[1])
|
||||
else:
|
||||
h = HTTPConnection(urlparts[1])
|
||||
start = timeit.default_timer()
|
||||
h.request("GET", urlparts[2])
|
||||
r = h.getresponse()
|
||||
total = (timeit.default_timer() - start)
|
||||
except (HTTPError, URLError, socket.error):
|
||||
cum.append(3600)
|
||||
continue
|
||||
text = r.read(9)
|
||||
if int(r.status) == 200 and text == 'test=test'.encode():
|
||||
cum.append(total)
|
||||
else:
|
||||
cum.append(3600)
|
||||
h.close()
|
||||
avg = round((sum(cum) / 6) * 1000, 3)
|
||||
results[avg] = server
|
||||
fastest = sorted(results.keys())[0]
|
||||
best = results[fastest]
|
||||
best['latency'] = fastest
|
||||
|
||||
return best
|
||||
|
||||
|
||||
def ctrl_c(signum, frame):
|
||||
"""Catch Ctrl-C key sequence and set a shutdown_event for our threaded
|
||||
operations
|
||||
"""
|
||||
|
||||
global shutdown_event
|
||||
shutdown_event.set()
|
||||
raise SystemExit('\nCancelling...')
|
||||
|
||||
|
||||
def version():
|
||||
"""Print the version"""
|
||||
|
||||
raise SystemExit(__version__)
|
||||
|
||||
|
||||
def speedtest():
|
||||
"""Run the full speedtest.net test"""
|
||||
|
||||
global shutdown_event, source
|
||||
shutdown_event = threading.Event()
|
||||
|
||||
signal.signal(signal.SIGINT, ctrl_c)
|
||||
|
||||
description = (
|
||||
'Command line interface for testing internet bandwidth using '
|
||||
'speedtest.net.\n'
|
||||
'------------------------------------------------------------'
|
||||
'--------------\n'
|
||||
'https://github.com/sivel/speedtest-cli')
|
||||
|
||||
parser = ArgParser(description=description)
|
||||
# Give optparse.OptionParser an `add_argument` method for
|
||||
# compatibility with argparse.ArgumentParser
|
||||
try:
|
||||
parser.add_argument = parser.add_option
|
||||
except AttributeError:
|
||||
pass
|
||||
parser.add_argument('--bytes', dest='units', action='store_const',
|
||||
const=('bytes', 1), default=('bits', 8),
|
||||
help='Display values in bytes instead of bits. Does '
|
||||
'not affect the image generated by --share')
|
||||
parser.add_argument('--share', action='store_true',
|
||||
help='Generate and provide a URL to the speedtest.net '
|
||||
'share results image')
|
||||
parser.add_argument('--simple', action='store_true',
|
||||
help='Suppress verbose output, only show basic '
|
||||
'information')
|
||||
parser.add_argument('--list', action='store_true',
|
||||
help='Display a list of speedtest.net servers '
|
||||
'sorted by distance')
|
||||
parser.add_argument('--server', help='Specify a server ID to test against')
|
||||
parser.add_argument('--mini', help='URL of the Speedtest Mini server')
|
||||
parser.add_argument('--source', help='Source IP address to bind to')
|
||||
parser.add_argument('--version', action='store_true',
|
||||
help='Show the version number and exit')
|
||||
|
||||
options = parser.parse_args()
|
||||
if isinstance(options, tuple):
|
||||
args = options[0]
|
||||
else:
|
||||
args = options
|
||||
del options
|
||||
|
||||
# Print the version and exit
|
||||
if args.version:
|
||||
version()
|
||||
|
||||
# If specified bind to a specific IP address
|
||||
if args.source:
|
||||
source = args.source
|
||||
socket.socket = bound_socket
|
||||
|
||||
if not args.simple:
|
||||
print_('Retrieving speedtest.net configuration...')
|
||||
try:
|
||||
config = getConfig()
|
||||
except URLError:
|
||||
print_('Cannot retrieve speedtest configuration')
|
||||
sys.exit(1)
|
||||
|
||||
if not args.simple:
|
||||
print_('Retrieving speedtest.net server list...')
|
||||
if args.list or args.server:
|
||||
servers = closestServers(config['client'], True)
|
||||
if args.list:
|
||||
serverList = []
|
||||
for server in servers:
|
||||
line = ('%(id)4s) %(sponsor)s (%(name)s, %(country)s) '
|
||||
'[%(d)0.2f km]' % server)
|
||||
serverList.append(line)
|
||||
# Python 2.7 and newer seem to be ok with the resultant encoding
|
||||
# from parsing the XML, but older versions have some issues.
|
||||
# This block should detect whether we need to encode or not
|
||||
try:
|
||||
unicode()
|
||||
print_('\n'.join(serverList).encode('utf-8', 'ignore'))
|
||||
except NameError:
|
||||
print_('\n'.join(serverList))
|
||||
except IOError:
|
||||
pass
|
||||
sys.exit(0)
|
||||
else:
|
||||
servers = closestServers(config['client'])
|
||||
|
||||
if not args.simple:
|
||||
print_('Testing from %(isp)s (%(ip)s)...' % config['client'])
|
||||
|
||||
if args.server:
|
||||
try:
|
||||
best = getBestServer(filter(lambda x: x['id'] == args.server,
|
||||
servers))
|
||||
except IndexError:
|
||||
print_('Invalid server ID')
|
||||
sys.exit(1)
|
||||
elif args.mini:
|
||||
name, ext = os.path.splitext(args.mini)
|
||||
if ext:
|
||||
url = os.path.dirname(args.mini)
|
||||
else:
|
||||
url = args.mini
|
||||
urlparts = urlparse(url)
|
||||
try:
|
||||
f = urlopen(args.mini)
|
||||
except:
|
||||
print_('Invalid Speedtest Mini URL')
|
||||
sys.exit(1)
|
||||
else:
|
||||
text = f.read()
|
||||
f.close()
|
||||
extension = re.findall('upload_extension: "([^"]+)"', text.decode())
|
||||
if not extension:
|
||||
for ext in ['php', 'asp', 'aspx', 'jsp']:
|
||||
try:
|
||||
f = urlopen('%s/speedtest/upload.%s' % (args.mini, ext))
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
data = f.read().strip()
|
||||
if (f.code == 200 and
|
||||
len(data.splitlines()) == 1 and
|
||||
re.match('size=[0-9]', data)):
|
||||
extension = [ext]
|
||||
break
|
||||
if not urlparts or not extension:
|
||||
print_('Please provide the full URL of your Speedtest Mini server')
|
||||
sys.exit(1)
|
||||
servers = [{
|
||||
'sponsor': 'Speedtest Mini',
|
||||
'name': urlparts[1],
|
||||
'd': 0,
|
||||
'url': '%s/speedtest/upload.%s' % (url.rstrip('/'), extension[0]),
|
||||
'latency': 0,
|
||||
'id': 0
|
||||
}]
|
||||
try:
|
||||
best = getBestServer(servers)
|
||||
except:
|
||||
best = servers[0]
|
||||
else:
|
||||
if not args.simple:
|
||||
print_('Selecting best server based on latency...')
|
||||
best = getBestServer(servers)
|
||||
|
||||
if not args.simple:
|
||||
# Python 2.7 and newer seem to be ok with the resultant encoding
|
||||
# from parsing the XML, but older versions have some issues.
|
||||
# This block should detect whether we need to encode or not
|
||||
try:
|
||||
unicode()
|
||||
print_(('Hosted by %(sponsor)s (%(name)s) [%(d)0.2f km]: '
|
||||
'%(latency)s ms' % best).encode('utf-8', 'ignore'))
|
||||
except NameError:
|
||||
print_('Hosted by %(sponsor)s (%(name)s) [%(d)0.2f km]: '
|
||||
'%(latency)s ms' % best)
|
||||
else:
|
||||
print_('Ping: %(latency)s ms' % best)
|
||||
|
||||
sizes = [350, 500, 750, 1000, 1500, 2000, 2500, 3000, 3500, 4000]
|
||||
urls = []
|
||||
for size in sizes:
|
||||
for i in range(0, 4):
|
||||
urls.append('%s/random%sx%s.jpg' %
|
||||
(os.path.dirname(best['url']), size, size))
|
||||
if not args.simple:
|
||||
print_('Testing download speed', end='')
|
||||
dlspeed = downloadSpeed(urls, args.simple)
|
||||
if not args.simple:
|
||||
print_()
|
||||
print_('Download: %0.2f M%s/s' %
|
||||
((dlspeed / 1000 / 1000) * args.units[1], args.units[0]))
|
||||
|
||||
sizesizes = [int(.25 * 1000 * 1000), int(.5 * 1000 * 1000)]
|
||||
sizes = []
|
||||
for size in sizesizes:
|
||||
for i in range(0, 25):
|
||||
sizes.append(size)
|
||||
if not args.simple:
|
||||
print_('Testing upload speed', end='')
|
||||
ulspeed = uploadSpeed(best['url'], sizes, args.simple)
|
||||
if not args.simple:
|
||||
print_()
|
||||
print_('Upload: %0.2f M%s/s' %
|
||||
((ulspeed / 1000 / 1000) * args.units[1], args.units[0]))
|
||||
|
||||
if args.share and args.mini:
|
||||
print_('Cannot generate a speedtest.net share results image while '
|
||||
'testing against a Speedtest Mini server')
|
||||
elif args.share:
|
||||
dlspeedk = int(round((dlspeed / 1000) * 8, 0))
|
||||
ping = int(round(best['latency'], 0))
|
||||
ulspeedk = int(round((ulspeed / 1000) * 8, 0))
|
||||
|
||||
# Build the request to send results back to speedtest.net
|
||||
# We use a list instead of a dict because the API expects parameters
|
||||
# in a certain order
|
||||
apiData = [
|
||||
'download=%s' % dlspeedk,
|
||||
'ping=%s' % ping,
|
||||
'upload=%s' % ulspeedk,
|
||||
'promo=',
|
||||
'startmode=%s' % 'pingselect',
|
||||
'recommendedserverid=%s' % best['id'],
|
||||
'accuracy=%s' % 1,
|
||||
'serverid=%s' % best['id'],
|
||||
'hash=%s' % md5(('%s-%s-%s-%s' %
|
||||
(ping, ulspeedk, dlspeedk, '297aae72'))
|
||||
.encode()).hexdigest()]
|
||||
|
||||
req = Request('http://www.speedtest.net/api/api.php',
|
||||
data='&'.join(apiData).encode())
|
||||
req.add_header('Referer', 'http://c.speedtest.net/flash/speedtest.swf')
|
||||
f = urlopen(req)
|
||||
response = f.read()
|
||||
code = f.code
|
||||
f.close()
|
||||
|
||||
if int(code) != 200:
|
||||
print_('Could not submit results to speedtest.net')
|
||||
sys.exit(1)
|
||||
|
||||
qsargs = parse_qs(response.decode())
|
||||
resultid = qsargs.get('resultid')
|
||||
if not resultid or len(resultid) != 1:
|
||||
print_('Could not submit results to speedtest.net')
|
||||
sys.exit(1)
|
||||
|
||||
print_('Share results: http://www.speedtest.net/result/%s.png' %
|
||||
resultid[0])
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
speedtest()
|
||||
except KeyboardInterrupt:
|
||||
print_('\nCancelling...')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
# vim:ts=4:sw=4:expandtab
|
116
technikzeugs/theorie/Das-theoretische-Netz.md
Normal file
116
technikzeugs/theorie/Das-theoretische-Netz.md
Normal file
|
@ -0,0 +1,116 @@
|
|||
Auf dieser Seite wird die angepeilte Infrastruktur möglichst genau beschrieben.
|
||||
|
||||
## Die einfache Konfiguration
|
||||
### Genereller Überblick
|
||||
Anschluss beim ISP --> Der Server --> Der Switch --> PoE --> Nanostation 1 (Bridgemode) --)) Nanostation 2 (Routermode) --> PoE --> Ethernetanschluss
|
||||
|
||||
### Der Server
|
||||
DHCP Server für das ganze Netz
|
||||
|
||||
### Der Switch
|
||||
Unkritsch. Glasfaser auf Gigabit-Ethernet. Vermutlich macht es keinen Sinn einen PoE-Switch zu Benutzen
|
||||
|
||||
### Nanostation 1 (Bridge)
|
||||
WLAN und LAN im sind im selben Netz. Die Station holt sich ihre IP vom DHCP-Server. Sie gibt den Traffic nur durch.
|
||||
|
||||
- Network Mode: Bridge
|
||||
- Wireless Mode: Accesspoint
|
||||
- LAN Address: DHCP
|
||||
- FallbackIP: lassen wir die so? bzw. wollen wir überall die selbe Nutzen
|
||||
|
||||
### Nanostation 2 (Router)
|
||||
Diese Nanostation funktioniert als DHCP Relay. Sie nimmt die DHCP-Requests von der Seite des Ethernetanschlusses entgegen und leitet sie direkt an den DHCP-Server weiter. So werden Braodcasts vermieden und hinter der Nanostation benimmt sich alles wie ein Subnetz ohne das ein NAT notwendig ist.
|
||||
|
||||
- Network Mode: Router
|
||||
- Wireless Mode: Station
|
||||
- LAN Address: DHCP
|
||||
- FallbackIP: lassen wir die so? bzw. wollen wir überall die selbe Nutzen
|
||||
- LAN: Relay
|
||||
- DHCP Server IP: klar oder?
|
||||
- Agent ID: kann leer bleiben oder eine Info über die Station enthalten
|
||||
|
||||
## etwas Komplizierter für den Anfang
|
||||
Statt dem direkten Anschluss vom ISP benutzen wir VPN über einen Schlandkabelanschluss:
|
||||
### Genereller Überblick
|
||||
Interwobz --> VNP Server ---Schlandkabelnetz---> VPN Server --> DHCP Server --> der Rest wie oben…
|
||||
|
||||
### Der Server
|
||||
Macht in diesem Fall VPN und DHCP. Für wenige Verbindungen reicht ein PlasteRouter aus.
|
||||
|
||||
## Mesh?
|
||||
Wie würde ein Meshnetz optimalerweise aussehen?
|
||||
|
||||
# Alternativen:
|
||||
1-1-zitat equi, wir verwenden momentan ne abgeschwächte form von 3.
|
||||
Laut ben wird das eventuell problematisch wass die routing-performance auf der Nanostation 2 (Routermodus) angeht.
|
||||
Das sollte mal gebenchtmarkt werden.
|
||||
Ansonsten hat L2.5 auch noch seinen charme, aber dafür müssten wir nen bestimmtes modul in den ubiquity-kernel laden,
|
||||
welches die nicht mitliefern, und welches es auch sonst nicht einfach so zu hohlen gibt, namentlich gretap, eventuell kann man das aber selbst kompilieren, oder bei denen anrufen, müsste man auch mal schauen.
|
||||
|
||||
* L2 / VLAN-switched Netz "1 User = 1 802.1Q VLAN"
|
||||
= momentaner Westnetz-Aufbau
|
||||
+ Hardware im Rest des Netzes braucht nur Ethernet-Funktionen
|
||||
+ wenig Bugs in kaufbaren Geräten (z.B. Managed Switches)
|
||||
+ einfach für 1 User mehrere Ports zu schalten, auch an völlig
|
||||
verschiedenen Stellen im Netz
|
||||
+ optimaler Trafficflow bei mehreren Ports für 1 user
|
||||
+ zentralisiertes Routing einfach zu managen
|
||||
+ zentralisiertes DHCP ohne relay
|
||||
- VLANs müssen an vielen Stellen geconfigt werden
|
||||
=> besonders scheisse wenn das Netz nicht "sternförmig" ist
|
||||
- suboptimaler Trafficflow zwischen Usern (zum Router + zurück)
|
||||
- Ethernet-Loops möglich, STP stinkt
|
||||
- mittelmässige Debuggingfeatures auf Ethernet-Ebene
|
||||
|
||||
* L2.5 / IP-tunneled L2 "1 User = 1 Extended Ethernet Bridge"
|
||||
= VXLAN, GREtap (in billig), VPLS (in teuer/professionell)
|
||||
Ethernet-Frames werden am Netzwerkrand/User-Schnittstelle in Tunnel
|
||||
eingepackt und laufen als Eth<-IP<-Eth<-IP durch den Backbone
|
||||
+ Backbone kann frei auf- und umgebaut werden
|
||||
+ Flexibler Backbone impliziert gute Redundanzmöglichkeiten
|
||||
+ einfach für 1 User mehrere Ports zu schalten, auch an völlig
|
||||
verschiedenen Stellen im Netz
|
||||
+ zentralisiertes Routing an Tunnelendpunkt
|
||||
+ zentralisiertes DHCP ohne relay
|
||||
0 erhöhte MTU im Backbone nötig (allgemein kein Problem)
|
||||
0 mittelmässiges Debugging (User kann kein traceroute im Backbone)
|
||||
- bei VXLAN/GREtap suboptimaler Trafficflow wenn mehrere Ports für 1
|
||||
User (zentraler Router und zurück). VPLS hat das problem nicht dank
|
||||
Split-Horizon-Bridging, gibts nur (noch) nicht in Open Source.
|
||||
- in kaufbaren Geräten nicht bezahlbar, höchstens Mikrotik (kann VPLS)
|
||||
- für Linux-Möhren muss der Support im Kernel an sein, was bei
|
||||
Ubiquiti beim Standardkernel nicht ist -_-
|
||||
- kaufbare Geräte z.T. mit Bugs und Antifeatures im IP-Routing
|
||||
|
||||
* L3 / Routed Edge "1 Port = 1 IP-Netz"
|
||||
= Routing in mehr oder weniger Reinform
|
||||
+ Backbone kann frei auf- und umgebaut werden
|
||||
+ Flexibler Backbone impliziert gute Redundanzmöglichkeiten
|
||||
+ generell gut optimierbarer Trafficfluss
|
||||
+ traceroute 4 life
|
||||
- mehrere IP-Netze pro User wenn mehrere Ports
|
||||
- NAT schwieriger zu managen wenns zwischen Usern applizieren soll
|
||||
- dezentrales Routing, komplexes IP-Management
|
||||
- DHCP entweder direkt auf Edge-Geräten oder mit Relay
|
||||
- kaufbare Geräte teuer (aber noch bezahlbar)
|
||||
- kaufbare Geräte z.T. mit Bugs und Antifeatures im IP-Routing
|
||||
|
||||
## Homenet + Babels
|
||||
|
||||
wie schon geschrieben habe ich etwas mit Freifunk Daniel geplaudert. Dabei auch über Redundanz der Antennen sowie OpenSource auf den Antennen selbst gesprochen.
|
||||
Ein weiteres Szenario was ich durchdenken könnten:
|
||||
|
||||
- Wir besorgen und besage Ubnt EdgeRouter für ~100€ das Stück.
|
||||
- Installieren OpenWrt und [Homenet](https://github.com/sbyx/hnetd)
|
||||
* Wie gut funktioniert das? Haben wir Anwendungsfälle zu anschauen?
|
||||
- Im Interface Menü lässt sich neben Static und DHCP Server nun auch Homenet auswählen
|
||||
- Auf *unserer* Antennen Infastruktur wird ebenfalls [OpenWRT](https://www.youtube.com/watch?v=TgHYjfTnsI4) installiert
|
||||
- Damit das gut geht nutzen wir statt Loco besser die [von Daniel empfohlenen Antennen](https://www.ligowave.com/products/dlb-5-15)
|
||||
* Die Antennen finde ich auch unabhängig vom Rest interessant.
|
||||
- Routing machen die Geräte dann selbst, wir bauen immer mehr Antennen überall hin und wenn mal was ausfällt sollte automatisch ein Plan B umgeroutet werden.
|
||||
* Naja, ich würde tatsächlich ungern ein Netz mit potentiell ausfallenden Routen bauen. Das macht für unsere Anwendung nicht so viel Sinn. Einfache Redundanz erfüllt das bei uns ja auch.
|
||||
- Laut D. lässt sich das ganze gut Debuggen, mit Netzgraphen (wie ich es verstanden habe)
|
||||
- Weitere Services wie Hosting von Service X machen wir auf weiteren Servern die wir ans Netz anstecken.
|
||||
- Was haltet ihr davon?
|
||||
|
||||
- Wie können wir solche Modelle testen? Wieviel und welche Hardware brauchen wir, wie viel Aufwand an umflashen und aufbauen ist nötig, bis wir ein Benchmark bekommen?
|
107
technikzeugs/theorie/Diskussion-Server.md
Normal file
107
technikzeugs/theorie/Diskussion-Server.md
Normal file
|
@ -0,0 +1,107 @@
|
|||
## Anwendungen
|
||||
|
||||
### Routing
|
||||
Zwischen den beiden netzen "Reudnetz" und "Restinternet" Routen. Potentiell kommt später auch noch "Westnetz" hinzu.
|
||||
|
||||
### DHCP
|
||||
IP-Adressen an alle interessierten Teilnehmer Verteilen, in ipv6-speek wird das dann Subnetze verteilen.
|
||||
|
||||
### Infrastruktur
|
||||
Email, Wiki, <s>F</s>AQ, Monitoring, DNS. Alles in seperate VMs abgepackt, so dass das später auch auf andere Server verschoben werden kann.
|
||||
|
||||
Bitte erweitern, falls ich etwas vergessen haben sollte.
|
||||
|
||||
## Hardwareanforderungen
|
||||
Basierend auf den Anforderungen der Anwendung hier eine Berechnung der notwendigen Hardware
|
||||
|
||||
### RAM
|
||||
Wir sollten definitiv ECC nutzen.
|
||||
|
||||
* NAT
|
||||
26 nat-einträge passen in 8kb ram, 128\*8kb = 1mb
|
||||
wir haben 32 IPs, für jede können wir ein theoretisches maximum an 2\*\*16 ports für 3 protokolle (TCP, UDP, SCTP) mappen.
|
||||
Maximale Anzahl an mappings: 32\*(2\*\*16)\*3 = 6291456
|
||||
⌈(6291456/26)/128⌉ = 1891 ~ 2GB
|
||||
_2GB_
|
||||
|
||||
* DHCP
|
||||
200 Kunden, 3 Geräte pro Kunde (PC, Laptop, Handy) ≈ 600 Geräte
|
||||
Laut [internet](https://osdir.com/ml/network.dhcp.isc.dhcp-server/2004-03/msg00288.html) < 30mb RAM.
|
||||
|
||||
* Infrastruktur
|
||||
ich würde großzügig 256 mb/Service rechnen, könnte überprovisioniert werden, weil einiges nicht permanent benutzt wird.
|
||||
5\*256+200 für VM-overhead (nur einmal weil die pages zwischen den vms gleich sind und geteilt werden) = 1.5GB
|
||||
_1.5GB_
|
||||
|
||||
* Cache
|
||||
Festplattenzugriffe müssen gecached werden, sonst stirbt die performance.
|
||||
_1GB_
|
||||
|
||||
Summa Summarum sind wir also bei 2+1.5+1 = 3.5 GB, Also ist der Kauf von 8-16GB ram empfehlenswert.
|
||||
|
||||
### Storage
|
||||
Cachehierachien sind sinnvoll, Deshalb wäre eine ssd-hdd-lösung cool, Notwendig ist eine Untersuchung von aktivem speicher vs vorgehaltenem speicher um respektiv ssd und hdd-größe zu bestimmen.
|
||||
Aktiver speicher ist hier die menge an Festplattenspeicher auf den inerhalb eines "kurzen" Zeitraums, ~15 minuten, zugegriffen wird, vorgehaltener Speicher ist die Menge an Daten die auf Der Festplatte herrumliegen und irgendwann benötigt werden könnten.
|
||||
|
||||
* Betriebssysteme und Software
|
||||
10GB/OS. 6\*10=60GB Theoretisch besteht die Möglichkeit die VMs zu deduplizieren, aber meh.
|
||||
Diese Blöcke werden nur einmal, beim Start, gelesen, haben also keinen Aktiven Anteil.
|
||||
_60GB_,_0GB_
|
||||
|
||||
* DHCP
|
||||
Aus privacygründen wird die Leasefile nur im Ram gehalten
|
||||
_0GB_,_0GB_
|
||||
|
||||
* Email
|
||||
Das kann Groß werden, wenn wir es Nutzern zur verfügung stellen, aber zu dem Zeitpunkt werden wir das eh auf eine andere Maschiene auslagern. Bis dahin hat das < 10 Nutzer denen man großzügug 5GB geben kann.
|
||||
10\*5 = 50GB
|
||||
Emails werden einmal geschrieben, mehrfach gelesen, dann einmal gelöscht, ich würde mit weniger als 1% aktivem Anteil rechnen.
|
||||
_50GB_,_1GB_
|
||||
|
||||
* Wiki
|
||||
Wenn viele Bilder dazukommen, z.B. Panoramas kommen wir eventuell auf 10GB.
|
||||
Häufig Gelesen werden dann maximal 3 seiten, wenn wir von max. 5 Großen bildern pro Seite ausgehen sind das 3\*5\*10=150MB
|
||||
_10GB_,_1GB_
|
||||
|
||||
* <s>F</s>AQ
|
||||
Alles textbasiert, das kommt nicht über 1GB.
|
||||
_1GB_,_1GB_
|
||||
|
||||
* Monitoring
|
||||
Das kann groß werden, ich würd mal 100GB veranschlagen, das sollte aber mal genauer durchgerechnet werden.
|
||||
Lesen will man dann meist sätze von ner Woche oder einem Tag, selten einem Jahr, vlt. 2GB?
|
||||
_100GB_,_2GB_
|
||||
|
||||
* DNS
|
||||
<1GB
|
||||
_1GB_,_1GB_
|
||||
|
||||
|
||||
60+0+50+10+1+100+1 = 222 GB Also 2 500GB-1TB Festplatten im RAID-1
|
||||
0+0+1+1+1+2+1 = 6 GB, Also Die Kleinste SSD die zu finden ist.
|
||||
Eventuell ist es aufgrund des doch sehr kleinen aktiven Anteils sinnvoll auf eine SSD zu verzichten und auf den ram-cache zu vertrauen.
|
||||
Billige kleine SSD:
|
||||
<http://www.idealo.de/preisvergleich/OffersOfProduct/2899304_-16gb-msata-ssd-mlc-transcend.html>
|
||||
|
||||
*Paul* hab sowas Zuhause rumliegen
|
||||
|
||||
### CPU/Mobo
|
||||
<https://geizhals.de/supermicro-a1srm-2558f-retail-mbd-a1srm-2558f-o-a1057354.html>
|
||||
das ist gut.
|
||||
|
||||
## Hardware
|
||||
* Mobo/CPU <https://geizhals.de/supermicro-a1srm-2558f-retail-mbd-a1srm-2558f-o-a1057354.html> 280€
|
||||
* RAM <https://geizhals.de/crucial-dimm-kit-8gb-ct2kit51272bd160b-a701551.html> 90€
|
||||
* HDD 2x <https://geizhals.de/seagate-constellation-es-1tb-st1000nm0011-a632284.html> 2\*60€
|
||||
* Gehäuse <https://geizhals.de/inter-tech-2u-2098-sk-88887180-a1307670.html> 85€
|
||||
* Netzteil <https://geizhals.de/lc-power-pro-line-lc7300-v2-3-silver-shield-300w-atx-2-3-a697598.html> 35€
|
||||
|
||||
**= 610€**
|
||||
|
||||
*Paul* warum ist das Mobo so Teuer? Und wäre es nicht besser wenn wir die CPU später noch aufrüsten könnten?
|
||||
*Yannik* Unter anderem weil das ziemlich low-power und passiv gekühlt ist, CPU aufrüsten ist eher irrelevant, da die sockel sich permanent ändern. A pro pos passiv gekühlt, wir könnten statt des vorgeschlagenen Netzteils auch ein [anderes](https://geizhals.de/seasonic-ss-300m1u-300w-atx-2-31-eps12v-a819424.html) für 60€ nehmen, das bei unter 50% Last (also praktisch immer) lüfterlos ist, dann hätten wir das komplette Gerät passiv, das wäre dann zudem noch ein stück efizienter.
|
||||
|
||||
### Plan B?
|
||||
|
||||
Freifunk Daniel hat empfohlen [UBNT Edge Router](https://www.ubnt.com/edgemax/edgerouter-lite/) zu benutzen weil die minimal Strom brauchen und mit nem OpenWRT ähnlich zu konfigurieren sind wie nen "richtiger Server". Wenn wir spielereien wie Mail und Hosting eh als Subprojekt Anbieten könnten wir dafür auch einfach andere Server benuzten oder?
|
||||
Die teile kosten auch [etwas](http://www.amazon.de/Ubiquiti-Networks-ERLite-3-EdgeRouter-Lite/dp/B00CSML06Q) weniger
|
52
technikzeugs/theorie/services.md
Normal file
52
technikzeugs/theorie/services.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
Wir hatten ja schon einige Ideen für Interne Dienste. DA wir uns über so etwas erst Gadanken machen brauchen, wenn wir über ein ausreichend großes Netz verfügen, würde ich die Ideen hier mal für spätere Zeiten konservieren.
|
||||
|
||||
Mailman (auch mit PGP) oder "Schleuder" was eindeutig den besseren namen hat
|
||||
Eastereggs
|
||||
Freifunk
|
||||
kostenloses Internet im Park
|
||||
9.7.13 sorry für fragen, aber was ist das?? ein datum??!
|
||||
XMPP-Server
|
||||
Tox-Bootstrap
|
||||
Webserver für die Nutzer
|
||||
freenet node
|
||||
|
||||
Projektpaten
|
||||
Wir vermitteln Menschen, die sich als Ansprechpartner um das interne Netz eines Hausprojektes kümmern
|
||||
|
||||
Openstreetmapinstanz, mit umap
|
||||
|
||||
|
||||
peering mit:
|
||||
guifi.net
|
||||
|
||||
|
||||
---
|
||||
|
||||
Services sollten Grundsätzlich 2 Zwecke erfüllen, der Menschheit und insbesondere unseren Nutzern einen *Mehrwert* bieten, und die wahrscheinlich überflüssige upload-bandbreite, die durch unseren Symetrischen Anschlüss abfällt zu verbraten.
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
###VPN
|
||||
wird tatsächlich für größere Zahl an clients recht rechenaufwändig, zudem symetrischer bandbreitenverbrauch, also eher weniger cool, zudem fraglicher Mehrwert.
|
||||
|
||||
###Mailserver/Mailadressen
|
||||
Nützlich, kaum Rechenaufwand, kaum Bandbreitenverbrauch, aber aufwändig einzurichten, zudem müssen wir dann zuverlässig sein, email muss funktionieren.
|
||||
|
||||
###Webhosting
|
||||
Ja
|
||||
|
||||
###Cache
|
||||
Als optional anschaltbares dingen für größere dateien sicher sinnvoll, insbesondere in hinblick auf OS-Updates und …Videos_
|
||||
|
||||
###Tor-Exit-Nodes
|
||||
symetrischer bandbreitenverbrauch, killt bei benutzung garantiert die genutzte ip, oder gleich den ganzen /24, weil es in allen botnetfiltern landet.
|
||||
|
||||
###(v)-Server vermieten
|
||||
Ja, eventuell sogar so in richtung: wenn du bei uns nen anschluss hast hast du auch automatisch einen minivserver, mit dem du zeug tun kannst, wenn du willst. Das internet muss symetrischer werden, im moment ist das ne ziemliche konsummaschiene. Ungenutzte vserver verbrauchen halt auch praktisch keine Recouren. Helfen zudem upload zu verbraten.
|
||||
|
||||
|
||||
###XMPP
|
||||
|
||||
is ded. < this
|
Loading…
Add table
Add a link
Reference in a new issue