Web-basiertes Admin-Tool

Immer wenn ich etwas Zeit habe, bastel ich ja nebenher an WebRAT (Web-basiertes Router Admin Tool). Hierfür benötige ich Eure Hilfe:

Können wir eine Liste mit den Kommandos erstellen, die man auf einem Router eingeben muss, um die wichtigsten Einstellungen zu ändern? Es dreht sich vermutlich um jede Menge uci get/set Befehle.

Wenn wir so eine Liste hätten, könnte ich dem Tool nach und nach die Befehle beibringen, die nötig sind, um die Einstellungen auf einem Router anzupassen. Damit könnten dann auch Mitstreiter, die sich an der Konsole weniger zuhause fühlen, Einstellungen auf den von ihnen verwalteten Routern vornehmen.

Bitte helft mir und füllt Euren Input in dieses Pad: https://pad.riseup.net/p/HEjy7BcvQ4Py

1 „Gefällt mir“

Hallo Christoph,

meinst Du in etwa so, oder fehlt da noch etwas?
…[gluon/wiki/Commandline-administration#uci]

Gruß
Mattes

Ja genau. Prima, damit kann ich ja mal anfangen. Wird vermutlich noch etwas fehlen (gibt bestimmt noch mehr Optionen, die wichtig sind, aber in der Liste fehlen), aber das können wir dann ja noch nachreichen.

Ich zieh mich erstmal wieder in mein Loch zurück und bastel weiter.

Haha ok, ja was fehlt kann man ja ergänzen.
Ich hab leider von dem alten Tool keinen Source Code mehr.

Tststs… Keine Backups? :wink:

Aber egal, es geht mir um die Funktion des Tools, die kann man ja auch “am lebenden Objekt” studieren.

Hatte noch ein Backup, aber nicht vom letzten Stand.
Es fehlt einfach eine ganze menge :frowning:

Würde mich sehr über ein neues Admintool freuen!

Wie ist denn der aktuelle Stand @Christoph ?

Ich bastel immer daran, wenn ich etwas Zeit habe. Kann gerne auf dem nächsten Stammtisch mal den Prototypen mitbringen.

Das Tool kann die Node-Liste einlesen, die Liste aller Router anzeigen, Details zu jedem beliebigen Router anzeigen und die Konfiguration anzeigen. Verbindung zu einem Router mit einem SSH-Key geht auch schon. Es müssen “nur noch” viele Teile zusammengefügt werden.

Was noch fehlt ist das ganze User-Handling, also dass jeder angemeldet user seine Keys in der DB hinterlegen kann und mit denen dann “seine” Router ohne Eingabe von Username/Passwort bzw. Passphrase administrieren kann.

Aber erstmal will ich den Kern laufen haben, also das Einlesen der aktuellen Konfig von einem Router, die Anzeige der Daten in einem Webformular und das zurückschreiben der geänderten Werte auf den Router. Das sollte aber bis zum Stammtisch nächste Woche laufen. Wenn das steht, kommt der Rest.

Vorteil ist, dass man später auf jedem Rechner administrieren kann, unabhängig vom verwendeten OS und unabhängig davon, ob ich ein Tool dabei habe. Zur Not könnte ich auch von der Arbeit aus ohne Freifunk einen Router neu starten oder ähnliches machen.

Es ist leider - wie immer - eine Frage der verfügbaren Zeit :frowning:

1 „Gefällt mir“

Du könntest das ja auch ins Freifunk-EN Github Repository laden,
so könnten eventuell auch Menschen helfen :slight_smile:

Gruß

1 „Gefällt mir“

Mache ich, sobald ich eine erste halbwegs lauffähige Version habe. Zwischenstände, die ich immer wieder umbaue, sind doof :wink:

Das was Du da oben beschrieben hast, klingt doch schon nach “halbwegs” :wink:
Aber OK ich freu mich drauf! :+1:

Ich bräuchte mal von möglichsten vielen Geräten den Output von “uci show”. Konkret suche ich den Output von

  • mindestens einem Gerät, das nur 2,4 GHz kann,
  • mindesten einem Gerät, das nur 5 GHz kann und
  • mindestens einem Gerät, das beide Frequenzbänder bedienen kann.

2.4 GHz only

root@FF-WTT-Koernerstr-8:~# uci show
alfred.alfred=alfred
alfred.alfred.batmanif='bat0'
alfred.alfred.start_vis='1'
alfred.alfred.mode='slave'
alfred.alfred.run_facters='0'
alfred.alfred.interface='br-client'
autoupdater.settings=autoupdater
autoupdater.settings.enabled='1'
autoupdater.settings.branch='stable'
autoupdater.settings.version_file='/lib/gluon/release'
autoupdater.experimental=branch
autoupdater.experimental.mirror='firmware.ffen/images/wetter/experimental/sysupgrade'
autoupdater.experimental.good_signatures='1'
autoupdater.experimental.name='experimental'
autoupdater.experimental.pubkey='c5a075ab35592e00013c4ef78d5975d03a3ec8a212ae3281c570623278b288ad' '3ca644e276fa0e3358e5fb3b55a8734b193037c0b15909a5be21d00ff87b59b7'
autoupdater.stable=branch
autoupdater.stable.mirror='http://firmware.ffen/images/wetter/stable/sysupgrade'
autoupdater.stable.good_signatures='1'
autoupdater.stable.name='stable'
autoupdater.stable.pubkey='c5a075ab35592e00013c4ef78d5975d03a3ec8a212ae3281c570623278b288ad' '3ca644e276fa0e3358e5fb3b55a8734b193037c0b15909a5be21d00ff87b59b7'
autoupdater.beta=branch
autoupdater.beta.mirror='http://firmware.ffen/images/wetter/beta/sysupgrade'
autoupdater.beta.good_signatures='1'
autoupdater.beta.name='beta'
autoupdater.beta.pubkey='c5a075ab35592e00013c4ef78d5975d03a3ec8a212ae3281c570623278b288ad' '3ca644e276fa0e3358e5fb3b55a8734b193037c0b15909a5be21d00ff87b59b7'
batman-adv.bat0=mesh
batman-adv.bat0.gw_mode='client'
batman-adv.bat0.orig_interval='5000'
batman-adv.bat0.hop_penalty='15'
batman-adv.bat0.multicast_mode='0'
currentsite.current=site
currentsite.current.name='ffen'
dhcp.@dnsmasq[0]=dnsmasq
dhcp.@dnsmasq[0].domainneeded='1'
dhcp.@dnsmasq[0].filterwin2k='0'
dhcp.@dnsmasq[0].rebind_localhost='1'
dhcp.@dnsmasq[0].local='/lan/'
dhcp.@dnsmasq[0].domain='lan'
dhcp.@dnsmasq[0].expandhosts='1'
dhcp.@dnsmasq[0].nonegcache='0'
dhcp.@dnsmasq[0].authoritative='1'
dhcp.@dnsmasq[0].readethers='1'
dhcp.@dnsmasq[0].leasefile='/tmp/dhcp.leases'
dhcp.@dnsmasq[0].resolvfile='/tmp/resolv.conf.auto'
dhcp.@dnsmasq[0].boguspriv='0'
dhcp.@dnsmasq[0].rebind_protection='0'
dhcp.@dnsmasq[0].localservice='0'
dhcp.@dnsmasq[0].localise_queries='1'
dhcp.lan=dhcp
dhcp.lan.interface='lan'
dhcp.lan.start='100'
dhcp.lan.limit='150'
dhcp.lan.leasetime='12h'
dhcp.wan=dhcp
dhcp.wan.interface='wan'
dhcp.wan.ignore='1'
dhcp.client=dhcp
dhcp.client.ignore='1'
dhcp.client.interface='client'
dhcp.local_node=dhcp
dhcp.local_node.ignore='1'
dhcp.local_node.interface='local_node'
dropbear.@dropbear[0]=dropbear
dropbear.@dropbear[0].PasswordAuth='on'
dropbear.@dropbear[0].RootPasswordAuth='on'
dropbear.@dropbear[0].Port='22'
firewall.@defaults[0]=defaults
firewall.@defaults[0].syn_flood='1'
firewall.@defaults[0].input='ACCEPT'
firewall.@defaults[0].output='ACCEPT'
firewall.@defaults[0].forward='REJECT'
firewall.@zone[0]=zone
firewall.@zone[0].name='lan'
firewall.@zone[0].network='lan'
firewall.@zone[0].input='ACCEPT'
firewall.@zone[0].output='ACCEPT'
firewall.@zone[0].forward='ACCEPT'
firewall.@zone[1]=zone
firewall.@zone[1].name='wan'
firewall.@zone[1].network='wan' 'wan6'
firewall.@zone[1].input='REJECT'
firewall.@zone[1].output='ACCEPT'
firewall.@zone[1].forward='REJECT'
firewall.@zone[1].masq='1'
firewall.@zone[1].mtu_fix='1'
firewall.@zone[1].conntrack='1'
firewall.@forwarding[0]=forwarding
firewall.@forwarding[0].src='lan'
firewall.@forwarding[0].dest='wan'
firewall.@rule[0]=rule
firewall.@rule[0].name='Allow-DHCP-Renew'
firewall.@rule[0].src='wan'
firewall.@rule[0].proto='udp'
firewall.@rule[0].dest_port='68'
firewall.@rule[0].target='ACCEPT'
firewall.@rule[0].family='ipv4'
firewall.@rule[1]=rule
firewall.@rule[1].name='Allow-Ping'
firewall.@rule[1].src='wan'
firewall.@rule[1].proto='icmp'
firewall.@rule[1].icmp_type='echo-request'
firewall.@rule[1].family='ipv4'
firewall.@rule[1].target='ACCEPT'
firewall.@rule[2]=rule
firewall.@rule[2].name='Allow-IGMP'
firewall.@rule[2].src='wan'
firewall.@rule[2].proto='igmp'
firewall.@rule[2].family='ipv4'
firewall.@rule[2].target='ACCEPT'
firewall.@rule[3]=rule
firewall.@rule[3].name='Allow-DHCPv6'
firewall.@rule[3].src='wan'
firewall.@rule[3].proto='udp'
firewall.@rule[3].src_ip='fe80::/10'
firewall.@rule[3].src_port='547'
firewall.@rule[3].dest_ip='fe80::/10'
firewall.@rule[3].dest_port='546'
firewall.@rule[3].family='ipv6'
firewall.@rule[3].target='ACCEPT'
firewall.@rule[4]=rule
firewall.@rule[4].name='Allow-MLD'
firewall.@rule[4].src='wan'
firewall.@rule[4].proto='icmp'
firewall.@rule[4].src_ip='fe80::/10'
firewall.@rule[4].icmp_type='130/0' '131/0' '132/0' '143/0'
firewall.@rule[4].family='ipv6'
firewall.@rule[4].target='ACCEPT'
firewall.@rule[5]=rule
firewall.@rule[5].name='Allow-ICMPv6-Input'
firewall.@rule[5].src='wan'
firewall.@rule[5].proto='icmp'
firewall.@rule[5].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type' 'router-solicitation' 'neighbour-solicitation' 'router-advertisement' 'neighbour-advertisement'
firewall.@rule[5].limit='1000/sec'
firewall.@rule[5].family='ipv6'
firewall.@rule[5].target='ACCEPT'
firewall.@rule[6]=rule
firewall.@rule[6].name='Allow-ICMPv6-Forward'
firewall.@rule[6].src='wan'
firewall.@rule[6].dest='*'
firewall.@rule[6].proto='icmp'
firewall.@rule[6].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type'
firewall.@rule[6].limit='1000/sec'
firewall.@rule[6].family='ipv6'
firewall.@rule[6].target='ACCEPT'
firewall.@include[0]=include
firewall.@include[0].path='/etc/firewall.user'
firewall.@rule[7]=rule
firewall.@rule[7].src='wan'
firewall.@rule[7].dest='lan'
firewall.@rule[7].proto='esp'
firewall.@rule[7].target='ACCEPT'
firewall.@rule[8]=rule
firewall.@rule[8].src='wan'
firewall.@rule[8].dest='lan'
firewall.@rule[8].dest_port='500'
firewall.@rule[8].proto='udp'
firewall.@rule[8].target='ACCEPT'
firewall.wan_ssh=rule
firewall.wan_ssh.dest_port='22'
firewall.wan_ssh.src='wan'
firewall.wan_ssh.name='wan_ssh'
firewall.wan_ssh.target='ACCEPT'
firewall.wan_ssh.proto='tcp'
firewall.client_dns=rule
firewall.client_dns.dest_port='53'
firewall.client_dns.src='client'
firewall.client_dns.name='client_dns'
firewall.client_dns.target='REJECT'
firewall.mesh_vpn_dns=include
firewall.mesh_vpn_dns.family='ipv4'
firewall.mesh_vpn_dns.type='restore'
firewall.mesh_vpn_dns.path='/lib/gluon/mesh-vpn/iptables.rules'
firewall.wan_respondd_reply=rule
firewall.wan_respondd_reply.src_port='1001'
firewall.wan_respondd_reply.src='wan'
firewall.wan_respondd_reply.name='wan_respondd_reply'
firewall.wan_respondd_reply.src_ip='fe80::/64'
firewall.wan_respondd_reply.target='ACCEPT'
firewall.wan_respondd_reply.proto='udp'
firewall.wan_respondd_reply.dest_port='32768:61000'
firewall.wan_respondd=rule
firewall.wan_respondd.dest_port='1001'
firewall.wan_respondd.src='wan'
firewall.wan_respondd.name='wan_respondd'
firewall.wan_respondd.src_ip='fe80::/64'
firewall.wan_respondd.target='ACCEPT'
firewall.wan_respondd.proto='udp'
firewall.client_respondd=rule
firewall.client_respondd.dest_port='1001'
firewall.client_respondd.src='client'
firewall.client_respondd.name='client_respondd'
firewall.client_respondd.src_ip='!fe80::/64'
firewall.client_respondd.target='REJECT'
firewall.client_respondd.proto='udp'
firewall.wan_igmp=rule
firewall.wan_igmp.src='wan'
firewall.wan_igmp.name='Allow-IGMP'
firewall.wan_igmp.family='ipv4'
firewall.wan_igmp.target='ACCEPT'
firewall.wan_igmp.proto='igmp'
firewall.wan_mld=rule
firewall.wan_mld.src='wan'
firewall.wan_mld.name='Allow-MLD'
firewall.wan_mld.src_ip='fe80::/10'
firewall.wan_mld.family='ipv6'
firewall.wan_mld.target='ACCEPT'
firewall.wan_mld.proto='icmp'
firewall.wan_mld.icmp_type='130/0' '131/0' '132/0' '143/0'
firewall.client=zone
firewall.client.name='client'
firewall.client.network='client'
firewall.client.input='ACCEPT'
firewall.client.forward='REJECT'
firewall.client.output='ACCEPT'
firewall.local_node=zone
firewall.local_node.name='local_node'
firewall.local_node.input='ACCEPT'
firewall.local_node.forward='REJECT'
firewall.local_node.network='local_node'
firewall.local_node.output='ACCEPT'
gluon-core.@wireless[0]=wireless
gluon-node-info.@location[0]=location
gluon-node-info.@location[0].share_location='1'
gluon-node-info.@location[0].latitude='51.373246'
gluon-node-info.@location[0].longitude='7.374326'
gluon-node-info.@owner[0]=owner
gluon-node-info.@owner[0].contact='freifunk@puhpsi.de'
gluon-node-info.@system[0]=system
gluon-node-info.@system[0].role='node'
gluon-setup-mode.@setup_mode[0]=setup_mode
gluon-setup-mode.@setup_mode[0].configured='1'
gluon-setup-mode.@setup_mode[0].enabled='0'
gluon-wan-dnsmasq.@static[0]=static
keep_settings.wireless=before_upgrade
keep_settings.wireless.radio0_channel='6'
luci.main=core
luci.main.lang='auto'
luci.main.mediaurlbase='/luci-static/bootstrap'
luci.main.resourcebase='/luci-static/resources'
luci.flash_keep=extern
luci.flash_keep.uci='/etc/config/'
luci.flash_keep.dropbear='/etc/dropbear/'
luci.flash_keep.openvpn='/etc/openvpn/'
luci.flash_keep.passwd='/etc/passwd'
luci.flash_keep.opkg='/etc/opkg.conf'
luci.flash_keep.firewall='/etc/firewall.user'
luci.flash_keep.uploads='/lib/uci/upload/'
luci.languages=internal
luci.languages.en='English'
luci.languages.de='Deutsch (German)'
luci.sauth=internal
luci.sauth.sessionpath='/tmp/luci-sessions'
luci.sauth.sessiontime='3600'
luci.ccache=internal
luci.ccache.enable='1'
luci.themes=internal
luci.themes.Gluon='/luci-static/gluon'
network.loopback=interface
network.loopback.ifname='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.ula_prefix='fdce:4600:02fb::/48'
network.wan6=interface
network.wan6.proto='dhcpv6'
network.wan6.sourcefilter='0'
network.wan6.ifname='br-wan'
network.wan6.ip6table='1'
network.wan6.peerdns='0'
network.@switch[0]=switch
network.@switch[0].name='switch0'
network.@switch[0].reset='1'
network.@switch[0].enable_vlan='1'
network.@switch_vlan[0]=switch_vlan
network.@switch_vlan[0].device='switch0'
network.@switch_vlan[0].vlan='1'
network.@switch_vlan[0].ports='0 1 2 3 4'
network.wan=interface
network.wan.ifname='eth1'
network.wan.auto='1'
network.wan.peerdns='0'
network.wan.type='bridge'
network.wan.proto='dhcp'
network.wan.multicast_querier='0'
network.wan.macaddr='4a:78:f1:47:9b:90'
network.wan.igmp_snooping='1'
network.wan6_lookup=rule6
network.wan6_lookup.mark='0x01/0x01'
network.wan6_lookup.lookup='1'
network.wan6_unreachable=route6
network.wan6_unreachable.type='unreachable'
network.wan6_unreachable.table='1'
network.wan6_unreachable.target='::/0'
network.wan6_unreachable.metric='65535'
network.wan6_unreachable.gateway='::'
network.wan6_unreachable.interface='loopback'
network.mesh_wan=interface
network.mesh_wan.auto='0'
network.mesh_wan.ifname='br-wan'
network.mesh_wan.proto='gluon_mesh'
network.mesh_wan.fixed_mtu='1'
network.mesh_lan=interface
network.mesh_lan.ifname='eth0'
network.mesh_lan.mesh='bat0'
network.mesh_lan.auto='0'
network.mesh_lan.igmp_snooping='0'
network.mesh_lan.transitive='1'
network.mesh_lan.fixed_mtu='1'
network.mesh_lan.proto='gluon_mesh'
network.mesh_lan.type='bridge'
network.mesh_lan.macaddr='4a:78:f1:47:9b:94'
network.mesh_vpn=interface
network.mesh_vpn.ifname='mesh-vpn'
network.mesh_vpn.fixed_mtu='1'
network.mesh_vpn.transitive='1'
network.mesh_vpn.mtu='1424'
network.mesh_vpn.proto='gluon_mesh'
network.mesh_vpn.macaddr='4a:78:f1:47:9b:97'
network.mesh_radio0=interface
network.mesh_radio0.proto='gluon_mesh'
network.client=interface
network.client.igmp_snooping='1'
network.client.type='bridge'
network.client.auto='1'
network.client.multicast_querier='1'
network.client.macaddr='60:e3:27:ed:df:94'
network.client.ifname='bat0' 'eth0' 'local-port'
network.client.ipv6='1'
network.client.keep_ra_dnslifetime='1'
network.client.sourcefilter='0'
network.client.peerdns='1'
network.client.robustness='3'
network.client.reqprefix='no'
network.client.query_interval='2000'
network.client.query_response_interval='500'
network.client.proto='dhcpv6'
network.local_node_dev=device
network.local_node_dev.type='veth'
network.local_node_dev.name='local-node'
network.local_node_dev.peer_name='local-port'
network.local_node_dev.macaddr='c2:c4:c4:b4:a4:a8'
network.local_node_dev.peer_macaddr='60:e3:27:ed:df:94'
network.local_node=interface
network.local_node.ifname='local-node'
network.local_node.ip6addr='2001:470:7136:4000::cafe/128'
network.local_node.ip6deprecated='1'
network.local_node.proto='static'
network.gluon_bat0=interface
network.gluon_bat0.proto='gluon_bat0'
network.bat0=interface
network.bat0.multicast_router='2'
network.bat0.ifname='bat0'
network.bat0.auto='1'
network.bat0.macaddr='60:e3:27:ed:df:94'
network.bat0.learning='1'
network.bat0.proto='none'
network.local_node_route6=route6
network.local_node_route6.target='2001:470:7136:4000::/64'
network.local_node_route6.gateway='::'
network.local_node_route6.interface='client'
simple-tc.example=interface
simple-tc.example.enabled='0'
simple-tc.example.ifname='eth0'
simple-tc.example.limit_egress='1000'
simple-tc.example.limit_ingress='5000'
simple-tc.mesh_vpn=interface
simple-tc.mesh_vpn.enabled='0'
simple-tc.mesh_vpn.ifname='mesh-vpn'
simple-tc.mesh_vpn.limit_ingress='8000'
simple-tc.mesh_vpn.limit_egress='1000'
siteselect.ffen=site
siteselect.ffen.path='/lib/gluon/site-select/ffen.conf'
siteselect.ffen.sitename='Freifunk ENKreis (FF-EN/FF-HA)'
siteselect.ffhat=site
siteselect.ffhat.path='/lib/gluon/site-select/ffhat.conf'
siteselect.ffhat.sitename='Freifunk Hattingen (FF-HAT)'
siteselect.ffrefugee=site
siteselect.ffrefugee.path='/lib/gluon/site-select/ffrefugee.conf'
siteselect.ffrefugee.sitename='Freifunk Refugee (FF-REFUGEE)'
siteselect.ffspr=site
siteselect.ffspr.path='/lib/gluon/site-select/ffspr.conf'
siteselect.ffspr.sitename='Freifunk Sprockhövel (FF-SPR)'
siteselect.ffwit=site
siteselect.ffwit.path='/lib/gluon/site-select/ffwit.conf'
siteselect.ffwit.sitename='Freifunk Witten (FF-WIT)'
ssid-changer.settings=main
ssid-changer.settings.enabled='1'
ssid-changer.settings.tq_limit_max='45'
ssid-changer.settings.prefix='Freifunk ohne Internet '
ssid-changer.settings.suffix='nodename'
ssid-changer.settings.tq_limit_min='35'
ssid-changer.settings.switch_timeframe='1'
ssid-changer.settings.tq_limit_enabled='0'
ssid-changer.settings.first='5'
system.@system[0]=system
system.@system[0].timezone='CET-1CEST,M3.5.0,M10.5.0/3'
system.@system[0].hostname='FF-WTT-Koernerstr-8'
system.ntp=timeserver
system.ntp.enabled='1'
system.ntp.enable_server='0'
system.ntp.server='1.openwrt.pool.ntp.org' '2.openwrt.pool.ntp.org' '3.openwrt.pool.ntp.org' '2.ntp.services.ffen'
system.led_wan=led
system.led_wan.name='WAN'
system.led_wan.sysfs='tp-link:green:wan'
system.led_wan.trigger='netdev'
system.led_wan.dev='eth1'
system.led_wan.mode='link tx rx'
system.led_lan1=led
system.led_lan1.name='LAN1'
system.led_lan1.sysfs='tp-link:green:lan1'
system.led_lan1.trigger='switch0'
system.led_lan1.port_mask='0x10'
system.led_lan2=led
system.led_lan2.name='LAN2'
system.led_lan2.sysfs='tp-link:green:lan2'
system.led_lan2.trigger='switch0'
system.led_lan2.port_mask='0x08'
system.led_lan3=led
system.led_lan3.name='LAN3'
system.led_lan3.sysfs='tp-link:green:lan3'
system.led_lan3.trigger='switch0'
system.led_lan3.port_mask='0x04'
system.led_lan4=led
system.led_lan4.name='LAN4'
system.led_lan4.sysfs='tp-link:green:lan4'
system.led_lan4.trigger='switch0'
system.led_lan4.port_mask='0x02'
system.led_wlan=led
system.led_wlan.name='WLAN'
system.led_wlan.sysfs='tp-link:green:wlan'
system.led_wlan.trigger='phy0tpt'
tunneldigger.mesh_vpn=broker
tunneldigger.mesh_vpn.enabled='1'
tunneldigger.mesh_vpn.uuid='60e327eddf94'
tunneldigger.mesh_vpn.group='gluon-mesh-vpn'
tunneldigger.mesh_vpn.broker_selection='usage'
tunneldigger.mesh_vpn.bind_interface='br-wan'
tunneldigger.mesh_vpn.interface='mesh-vpn'
tunneldigger.mesh_vpn.address='wetter-1.ff-en.de:10085' 'wetter-2.ff-en.de:10085'
ucitrack.@network[0]=network
ucitrack.@network[0].init='network'
ucitrack.@network[0].affects='dhcp' 'radvd'
ucitrack.@wireless[0]=wireless
ucitrack.@wireless[0].affects='network'
ucitrack.@firewall[0]=firewall
ucitrack.@firewall[0].init='firewall'
ucitrack.@firewall[0].affects='luci-splash' 'qos' 'miniupnpd'
ucitrack.@olsr[0]=olsr
ucitrack.@olsr[0].init='olsrd'
ucitrack.@dhcp[0]=dhcp
ucitrack.@dhcp[0].init='dnsmasq'
ucitrack.@dhcp[0].affects='odhcpd'
ucitrack.@odhcpd[0]=odhcpd
ucitrack.@odhcpd[0].init='odhcpd'
ucitrack.@dropbear[0]=dropbear
ucitrack.@dropbear[0].init='dropbear'
ucitrack.@httpd[0]=httpd
ucitrack.@httpd[0].init='httpd'
ucitrack.@fstab[0]=fstab
ucitrack.@fstab[0].init='fstab'
ucitrack.@qos[0]=qos
ucitrack.@qos[0].init='qos'
ucitrack.@system[0]=system
ucitrack.@system[0].init='led'
ucitrack.@system[0].affects='luci_statistics'
ucitrack.@luci_splash[0]=luci_splash
ucitrack.@luci_splash[0].init='luci_splash'
ucitrack.@upnpd[0]=upnpd
ucitrack.@upnpd[0].init='miniupnpd'
ucitrack.@ntpclient[0]=ntpclient
ucitrack.@ntpclient[0].init='ntpclient'
ucitrack.@samba[0]=samba
ucitrack.@samba[0].init='samba'
ucitrack.@tinyproxy[0]=tinyproxy
ucitrack.@tinyproxy[0].init='tinyproxy'
ucitrack.@6relayd[0]=6relayd
ucitrack.@6relayd[0].init='6relayd'
uhttpd.main=uhttpd
uhttpd.main.redirect_https='1'
uhttpd.main.rfc1918_filter='1'
uhttpd.main.max_connections='100'
uhttpd.main.cert='/etc/uhttpd.crt'
uhttpd.main.key='/etc/uhttpd.key'
uhttpd.main.cgi_prefix='/cgi-bin'
uhttpd.main.script_timeout='60'
uhttpd.main.network_timeout='30'
uhttpd.main.http_keepalive='20'
uhttpd.main.tcp_keepalive='1'
uhttpd.main.home='/lib/gluon/status-page/www'
uhttpd.main.max_requests='16'
uhttpd.main.listen_http='0.0.0.0:80' '[::]:80'
uhttpd.px5g=cert
uhttpd.px5g.days='730'
uhttpd.px5g.bits='1024'
uhttpd.px5g.country='ZZ'
uhttpd.px5g.state='Somewhere'
uhttpd.px5g.location='Uknown'
uhttpd.px5g.commonname='OpenWrt'
wireless.radio0=wifi-device
wireless.radio0.type='mac80211'
wireless.radio0.hwmode='11g'
wireless.radio0.path='platform/qca953x_wmac'
wireless.radio0.htmode='HT20'
wireless.radio0.country='DE'
wireless.radio0.channel='6'
wireless.radio0.supported_rates='6000' '9000' '12000' '18000' '24000' '36000' '48000' '54000'
wireless.radio0.basic_rate='6000' '9000' '18000' '36000' '54000'
wireless.mesh_radio0=wifi-iface
wireless.mesh_radio0.ifname='mesh0'
wireless.mesh_radio0.network='mesh_radio0'
wireless.mesh_radio0.device='radio0'
wireless.mesh_radio0.mesh_fwding='0'
wireless.mesh_radio0.mesh_id='mesh-freifunk-wtt'
wireless.mesh_radio0.mcast_rate='12000'
wireless.mesh_radio0.mode='mesh'
wireless.mesh_radio0.disabled='0'
wireless.mesh_radio0.macaddr='4a:78:f1:47:9b:91'
wireless.client_radio0=wifi-iface
wireless.client_radio0.ifname='client0'
wireless.client_radio0.network='client'
wireless.client_radio0.disabled='0'
wireless.client_radio0.device='radio0'
wireless.client_radio0.mode='ap'
wireless.client_radio0.macaddr='4a:78:f1:47:9b:90'
wireless.client_radio0.ssid='Freifunk'

Ich glaube ich weiß was Du suchst^^

2.4Ghz ist immer mesh0 und 5Ghz ist immer mesh1, außer beim WDR4900 da ist beides vertauscht.

Ja genau, danach suche ich. Außerdem will ich mal schauen, ob mein “uci-Parser” sonst noch Sonderlocken berücksichtigen muss.

Da dieser 4900er ja aus der Reihe tanzt, bleibt es also dabei, beim Parsen der uci-Parameter doch wieder jedesmal zu ermitteln, welches Radio die 2,4 und welches die 5 GHz sendet. Dreck…

@Christoph Werden eigentlich nur/alle die Funktionen übernommen die im “Router_tool” waren…? Oder hast du da schon weitere Sachen in Planung ? Ich hätte da bestimmt noch so 1…2 Dinge die da gefehlt haben.

Bin offen für Ideen, wobei ich erstmal die grundlegenden Funktionen fertig haben möchte. Dann steht weiteren Features aber nichts im Weg.

Also, postet mal Eure Ideen hier in diesen Thread. Ich schaue dann, was sich davon umsetzen lässt.

Gibt es hier schon weitere Erfolgsmeldungen?

Bin immer mal wieder dabei. Zeit war in den letzten Wochen der limitierende Faktor.