Mesh über WLAN/LAN/WAN: was ist gut, was ist böse?

Der Gluon-Wizard bietet ja sehr einfach die Möglichkeit, Mesh über WLAN, LAN oder WAN separat zu aktivieren. Ich kann mir viele Szenarien vorstellen, wo die eine oder andere Einstellung sinnvoll ist, war mir aber nie sicher, ob man da nicht etwas falsch machen kann, was weitreichende Konsequenzen hat.

Wir haben uns gerade gefragt, was z.B. bei folgendem Setup passiert: 2 Knoten haben unterschiedliche Uplinks, und dann werden die beiden LAN-Ports verbunden und man macht Mesh auf den LAN-Ports an. Gibt es dann eine Loop, die ählich fatal ist wie eine Loop bei normalem Ethernet, oder erkennt batman soetwas korrekt und man hat eine ziemlich redundante und stabile Verbindug?

Für den konkreten Anwendungsfall hier habe ich mir folgendes ausgedacht: man will mit mehreren Knoten, die im selben LAN sind, zwei größere Gebäude abdecken. Um das Rauschen auf dem Uplink zu minimieren, würde ich dann bei einem Knoten den Uplink aktivieren und bei allen Knoten (inklusive Uplink-Knoten) Mesh-over-WAN. Ist das eine gute Idee?

Wo gibt es Doku im Netz zu empfohlenen Topologien von Freifunk-Setups?

Bin für alle Infos dankbar!

Nö das gibt keine Loop, da kümmert sich das Mesh Protokoll dran. Aber ja du hast dann eine redundante Verbindung.

Wenn du dort Kabel hast, ist das wirklich besser als das WLAN Mesh. Weniger Air-Time und so. Auf dem Uplink Knoten darfst du aber kein Mesh on WAN aktivieren sonnst geht da gar nichts mehr. Denn er macht entweder Mesh am WAN oder eben VPN Uplink. Was du zum Beispiel machen könntest ist, du erstellst auf einem Switch ein VLAN für die Knoten das aber untaged auf den Ports anliegt auf denen die Knoten hängen. Dann aktivierst du auf dem Uplink Knoten Mesh on LAN und verbindest einen dieser Ports mit dem Switch. Alle anderen Knoten bekommen dann über das VLAN die Mesh Pakete und können per Mesh on WAN betrieben werden.

Danke für die detaillierte Antwort, das bringt schonmal etwas Licht ins Dunkel :-)

Also man kann Mesh on WAN, WLAN und LAN per Checkbox an und ausschalten. Dann gibt es noch Mesh on VPN, das man nicht manuell an- oder ausschalten kann. Wann genau wird das aktiviert bzw. deaktiviert? Kann man das (außer im Gluon-Source-Code) irgendwo nachlesen?

Mir fehlt immer noch so eine Art Blockdiagramm von Gluon, in dem man sieht, wie die einzelnen Devices und Komponenten zusammenarbeiten. Vieles habe ich schon erforscht, aber das ist irgendwie etwas mühsam.

Wäre wahrscheinlich ein gutes Thema bei einem Treffen, aber ich bin leider privat im Moment sehr eingespannt und kann praktisch nie zu den Treffen kommen. Ich hoffe, das ändert sich bald.

Naja, das ist das Uplink VPN zu unseren Gateway. Das solltest du auch nicht deaktivieren

Was willst du? Von welchen Komponenten und Devices redest du?

.

Sollte das nicht „VLAN“ statt „WLAN“ heißen? Für Otto Normaluser dürfte außerdem ein separater, günstiger (unmanaged) Switch die einfachere und bessere Wahl sein als ein VLAN.

Oder so. Da hast du recht.

Missverständnis. Ich will es ja auch nicht deaktivieren, aber es wird ja manchmal scheinbar automatisch deaktiviert, nämlich wenn man Mesh über WAN anmacht.

Wenn man sich per ssh einloggt und sich mit ifconfig mal alle Interfaces ansieht, ist das schon eine ganz ordentliche Liste. Da gibt es dann mesh0 und mesh0.142, br-client und client0, wo ich nicht so wirklich weiß, wo die Unterschiede sind. Je mehr ich mir die configs ansehe, desto klarer wird es mir allerdings. Wenn ich mal Zeit finde, mache ich mal eine Skizze und poste sie hier.

Erstaunlich, was man lernt, wenn man sich einfach mal hinsetzt und versucht, dass zu skizzieren. Nach 4 Fehlversuchen stelle ich mir bei einem TP-Link 841 das so vor:

Sind da grobe Fehler drin?

3 „Gefällt mir“

Ich denke das sieht ganz gut aus. Ich habe mich auch mal damit beschäftigt wie das alles zusammenhängt. Der output der folgenden Befehle könnte evtl. Aufschluss geben (von Freifunk Darmstadt, verwenden aber auch gluon):

$cat /etc/config/network:


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 'fd81:0622:4023::/48'

config interface 'wan6'
        option proto 'dhcpv6'
        option ifname 'br-wan'
        option ip6table '1'
        option peerdns '0'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 1 2 3 4'

config interface 'wan'
        option igmp_snooping '0'
        option ifname 'eth1'
        option auto '1'
        option peerdns '0'
        option type 'bridge'
        option proto 'dhcp'
        option macaddr 'b2:49:7a:fb:43:7a'

config rule6 'wan6_lookup'
        option mark '0x01/0x01'
        option lookup '1'

config route6 'wan6_unreachable'
        option type 'unreachable'
        option table '1'
        option target '::/0'
        option metric '65535'
        option gateway '::'
        option interface 'loopback'

config interface 'client'
        option reqprefix 'no'
        option ifname 'eth0 bat0'
        option proto 'dhcpv6'
        option type 'bridge'
        option igmp_snooping '0'
        option macaddr 'b0:48:7a:fb:43:7a'
        option peerdns '1'

config interface 'mesh_wan'
        option auto '0'
        option ifname 'br-wan'
        option mesh 'bat0'
        option proto 'batadv'

config interface 'mesh_lan'
        option ifname 'eth0'
        option auto '0'
        option macaddr 'b2:49:7b:fb:43:7a'
        option mesh 'bat0'
        option proto 'batadv'

config interface 'mesh_vpn'
        option ifname 'mesh-vpn'
        option mesh_no_rebroadcast '1'
        option macaddr 'b2:4c:7a:fb:43:7a'
        option mesh 'bat0'
        option proto 'batadv'

config interface 'bat0'
        option ifname 'bat0'
        option macaddr 'b0:48:7a:fb:43:7a'
        option proto 'none'

config interface 'mesh_radio0'
        option mesh 'bat0'
        option proto 'batadv'
        option mtu '1532'

config device 'local_node_dev'
        option macaddr '00:16:3e:43:54:81'
        option ifname 'br-client'
        option name 'local-node'
        option type 'macvlan'

config interface 'local_node'
        option ifname 'local-node'
        option ipaddr '10.223.254.254'
        option ip6addr 'fdca:ffee:ffda::ffff/128'
        option netmask '255.255.0.0'
        option proto 'static'

config route6 'local_node_route6'
        option target 'fdca:ffee:ffda::/64'
        option gateway '::'
        option interface 'client'

$cat /etc/config/wireless:


config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11g'
        option path 'pci0000:00/0000:00:00.0'
        option htmode 'HT20'
        option channel '1'
        option country 'DE'

config wifi-iface 'client_radio0'
        option ifname 'client0'
        option network 'client'
        option disabled '0'
        option device 'radio0'
        option mode 'ap'
        option macaddr 'b2:4a:7b:fb:43:7a'
        option ssid 'darmstadt.freifunk.net'

config wifi-iface 'mesh_radio0'
        option ifname 'mesh0'
        option network 'mesh_radio0'
        option device 'radio0'
        option bssid '00:16:3e:3a:3e:c5'
        option disabled '0'
        option mcast_rate '12000'
        option mode 'adhoc'
        option macaddr 'b2:4b:7b:fb:43:7a'
        option ssid '00:16:3e:3a:3e:c5'

$ip a:


1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel master br-client qlen 1000
    link/ether b2:49:7b:fb:43:7a brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br-wan qlen 1000
    link/ether b0:48:7a:fb:43:7b brd ff:ff:ff:ff:ff:ff
4: teql0: <NOARP> mtu 1500 qdisc noop qlen 100
    link/void
6: br-client: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
    link/ether b0:48:7a:fb:43:7a brd ff:ff:ff:ff:ff:ff
    inet6 2a03:2260:118:0:b248:7aff:fefb:437a/64 scope global dynamic
       valid_lft 86398sec preferred_lft 14398sec
    inet6 fdca:ffee:ffda:0:b248:7aff:fefb:437a/64 scope global dynamic
       valid_lft 86398sec preferred_lft 14398sec
    inet6 fe80::b248:7aff:fefb:437a/64 scope link
       valid_lft forever preferred_lft forever
7: mesh-vpn: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 qdisc tbf master bat0 qlen 500
    link/ether b2:4c:7a:fb:43:7a brd ff:ff:ff:ff:ff:ff
    inet6 fe80::b04c:7aff:fefb:437a/64 scope link
       valid_lft forever preferred_lft forever
8: br-wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
    link/ether b2:49:7a:fb:43:7a brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.98/24 brd 192.168.2.255 scope global br-wan
       valid_lft forever preferred_lft forever
    inet6 fe80::b049:7aff:fefb:437a/64 scope link
       valid_lft forever preferred_lft forever
9: local-node@br-client: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
    link/ether 00:16:3e:43:54:81 brd ff:ff:ff:ff:ff:ff
    inet 10.223.254.254/16 brd 10.223.255.255 scope global local-node
       valid_lft forever preferred_lft forever
    inet6 fdca:ffee:ffda::ffff/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe43:5481/64 scope link
       valid_lft forever preferred_lft forever
10: bat0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-client
    link/ether b0:48:7a:fb:43:7a brd ff:ff:ff:ff:ff:ff
    inet6 fe80::b248:7aff:fefb:437a/64 scope link
       valid_lft forever preferred_lft forever
11: mesh0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1532 qdisc mq master bat0 qlen 1000
    link/ether b2:4b:7b:fb:43:7a brd ff:ff:ff:ff:ff:ff
    inet6 fe80::b04b:7bff:fefb:437a/64 scope link
       valid_lft forever preferred_lft forever
12: client0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-client qlen 1000
    link/ether b2:4a:7b:fb:43:7a brd ff:ff:ff:ff:ff:ff
    inet6 fe80::b04a:7bff:fefb:437a/64 scope link
       valid_lft forever preferred_lft forever



$ifconfig -a



bat0      Link encap:Ethernet  HWaddr B0:48:7A:FB:43:7A
          inet6 addr: fe80::b248:7aff:fefb:437a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14282269 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2195899 errors:0 dropped:2573 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:104519400 (99.6 MiB)  TX bytes:214334421 (204.4 MiB)

br-client Link encap:Ethernet  HWaddr B0:48:7A:FB:43:7A
          inet6 addr: fe80::b248:7aff:fefb:437a/64 Scope:Link
          inet6 addr: 2a03:2260:118:0:b248:7aff:fefb:437a/64 Scope:Global
          inet6 addr: fdca:ffee:ffda:0:b248:7aff:fefb:437a/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16462044 errors:0 dropped:44 overruns:0 frame:0
          TX packets:26553 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4380209734 (4.0 GiB)  TX bytes:4251587 (4.0 MiB)

br-wan    Link encap:Ethernet  HWaddr B2:49:7A:FB:43:7A
          inet addr:192.168.2.98  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::b049:7aff:fefb:437a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22449502 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3730281 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:6919991660 (6.4 GiB)  TX bytes:889139593 (847.9 MiB)

client0   Link encap:Ethernet  HWaddr B2:4A:7B:FB:43:7A
          inet6 addr: fe80::b04a:7bff:fefb:437a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2177684 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13971165 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:211110982 (201.3 MiB)  TX bytes:326607388 (311.4 MiB)

eth0      Link encap:Ethernet  HWaddr B2:49:7B:FB:43:7A
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:5

eth1      Link encap:Ethernet  HWaddr B0:48:7A:FB:43:7B
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22449502 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3730279 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2939317392 (2.7 GiB)  TX bytes:889139405 (847.9 MiB)
          Interrupt:4

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:6183 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6183 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:882246 (861.5 KiB)  TX bytes:882246 (861.5 KiB)

local-node Link encap:Ethernet  HWaddr 00:16:3E:43:54:81
          inet addr:10.223.254.254  Bcast:10.223.255.255  Mask:255.255.0.0
          inet6 addr: fdca:ffee:ffda::ffff/128 Scope:Global
          inet6 addr: fe80::216:3eff:fe43:5481/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4081089 errors:0 dropped:0 overruns:0 frame:0
          TX packets:97 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:181547149 (173.1 MiB)  TX bytes:8422 (8.2 KiB)

mesh-vpn  Link encap:Ethernet  HWaddr B2:4C:7A:FB:43:7A
          inet6 addr: fe80::b04c:7aff:fefb:437a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1280  Metric:1
          RX packets:22264801 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3728737 errors:0 dropped:222 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:1411569923 (1.3 GiB)  TX bytes:643122243 (613.3 MiB)

mesh0     Link encap:Ethernet  HWaddr B2:4B:7B:FB:43:7A
          inet6 addr: fe80::b04b:7bff:fefb:437a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1532  Metric:1
          RX packets:8830372 errors:0 dropped:51 overruns:0 frame:0
          TX packets:35257924 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:923906602 (881.1 MiB)  TX bytes:61808660 (58.9 MiB)

teql0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Die bei $ip a mit master gekennzeichneten Interfaces sind anscheinend Teil einer Netzwerkbrücke (Name der Brücke steht danach).

Bei $cat /etc/config/wireless bedeutet option device 'radio0' dass beide virtuellen Interfaces das gleiche radio benutzen.

Befehle um Brücken-Bestandteile anzuzeigen gibt es auch:

$ brctl show

bridge name	bridge id		STP enabled	interfaces
br-client		7fff.b0487afb437a	no		eth0
							bat0
							client0
br-wan		7fff.b2497afb437a	no		eth1

Dabei macht es Sinn dass zu BATMAN nur die virtuellen Brücken-Interfaces hinzugefügt wurden:

$ batctl if


mesh-vpn: active
mesh0: active

2 Beiträge wurden in ein neues Thema verschoben: Hilfe bei einem komplexeren VLAN Setup mit Gluon