altes wiki durchsortiert zum veröffentlichen

This commit is contained in:
amanita 2017-06-15 13:20:32 +02:00
commit 57b6e0e2d3
92 changed files with 4949 additions and 0 deletions

View 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

View 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.

View 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

View 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

View 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

View 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

View 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'

View 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'

View 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.

View 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"]]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View 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.

View file

@ -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.

View 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.

View 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++;
}
}
```

View 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
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

View file

@ -0,0 +1,4 @@
## Hardwarebug
Die Nanostation M5 ist nicht betroffen, da sie einen Switch besitz, also ein anderer Ethernetchip verbaut ist.

View 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)

View file

@ -0,0 +1,7 @@
# Howto
Hier sammeln wir Anleitungen für wiederkehrende Aufgaben.
Evtl. fehlt noch:
* Kabel crimpen

View 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

View 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.

View 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

View 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?

View 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.

View 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

View 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.

View 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.

View 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
View 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

View 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

View 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?

View 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

View 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