an einem besonders zentralen Node im Ort habe ich einen Ubiquiti ERX, hinter dem drei Richtfunkstrecken hängen (NanostationNSL5AC). Am Ende der Richtfunkstrecken hängen jeweils Unifis AP AC Pro mit Gluon FW.
Das Setup an sich funktioniert, hat aber das Problem, dass sich alle Nodes „sehen“ - und einiges an Management-Traffic produzieren.
Ich würde daher gerne an dem zentralen ERX (z.B. über die /etc/config/network) die Switch-Config so ändern, dass zwar jede Richtfunkstrecke den den zentralen ERX sieht, die Richtfunkstrecken an sich sich aber nicht gegenseitig sehen können.
Kann mir jemand einen Hinweis geben, wie ich das Problem am besten lösen kann?
Man könnte hier jetzt was zum Thema „Gluon“ schreiben.
Was für eine Software läuft auf dem ERX? Du schreibst nur etwas zu den „Gegenstellen“.
Dort ist aber nur schwerlich etwas zu machen, sofern man nicht mit ganz harten EB-Tables-Rules arbeitet auf „exakt den ERX“ gematched.
Wenn sich alle NSL5AC mit dem selben AP verbinden, sollten sich die drei Strecken ganz einfach voneinander trennen lassen indem man im zentralen NSL5AC die Client Isolation einschaltet. Dadurch sollte die Wolke in 3 Teilwolken zerfallen, die jeweils nur noch den ERX sehen.
Wenn es drei getrennte Strecken sind (3x AP und 3x Client) ist es deutlich schwieriger.
mfg Christian
Besten Dank für den Ansatz. Topologisch bedingt sind es drei getrennte Strecken - es wird also deutlich schwieriger. Daher auch meine Überlegung, ob sich der Switch am ERX hart umkonfigurieren lässt.
Ansonsten sehe ich nur noch die Alternative, dass ich einen normalen Router nehme (z.B. ERX mit Stock-FW), dessen WAN nat’te, es dann per untagged VLAN auf die Richtfunkstrecken gebe und am Ende jeder Strecke einen FF-ERX vor die APs schalte. Etwas umständlicher und teuerer, müsste aber funktionieren.
Ich habe das jetzt hier mal bei einem ERX gemacht.
in die /etc/rc.local habe ich vor das „exit 0“ eingefügt:
if ( ! batctl if|grep eth0.5 ) ; then
echo reinstalling mesh-lan-separation
uci set network.@switch_vlan[0]=switch_vlan
uci set network.@switch_vlan[0].device='switch0'
uci set network.@switch_vlan[0].vlan='1'
uci set network.@switch_vlan[0].ports='1 6t'
uci set network.@switch_vlan[1]=switch_vlan
uci set network.@switch_vlan[1].device='switch0'
uci set network.@switch_vlan[1].vlan='2'
uci set network.@switch_vlan[1].ports='0 6t'
uci set network.@switch_vlan[2]=switch_vlan
uci set network.@switch_vlan[2].device='switch0'
uci set network.@switch_vlan[2].vlan='3'
uci set network.@switch_vlan[2].ports='2 6t'
uci set network.@switch_vlan[3]=switch_vlan
uci set network.@switch_vlan[3].device='switch0'
uci set network.@switch_vlan[3].vlan='4'
uci set network.@switch_vlan[3].ports='3 6t'
uci set network.@switch_vlan[4]=switch_vlan
uci set network.@switch_vlan[4].device='switch0'
uci set network.@switch_vlan[4].vlan='5'
uci set network.@switch_vlan[4].ports='4 6t'
uci set network.mesh_lan=interface
uci set network.mesh_lan.igmp_snooping='0'
uci set network.mesh_lan.ifname='eth0.1'
uci set network.mesh_lan.index='4'
uci set network.mesh_lan.proto='gluon_wired'
uci set network.mesh_lan.transitive='1'
uci set network.mesh_lan.macaddr=$(echo 1$(uci show network.bat0.macaddr)|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
uci set network.mesh_lan.disabled='0'
uci set network.mesh_lan2=interface
uci set network.mesh_lan2.igmp_snooping='0'
uci set network.mesh_lan2.ifname='eth0.3'
uci set network.mesh_lan2.index='4'
uci set network.mesh_lan2.proto='gluon_wired'
uci set network.mesh_lan2.transitive='1'
uci set network.mesh_lan2.macaddr=$(echo 1$(uci show network.bat0.macaddr)|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
uci set network.mesh_lan2.disabled='0'
uci set network.mesh_lan3=interface
uci set network.mesh_lan3.igmp_snooping='0'
uci set network.mesh_lan3.ifname='eth0.4'
uci set network.mesh_lan3.index='4'
uci set network.mesh_lan3.proto='gluon_wired'
uci set network.mesh_lan3.transitive='1'
uci set network.mesh_lan3.macaddr=$(echo 1$(uci show network.bat0.macaddr)|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
uci set network.mesh_lan3.disabled='0'
uci set network.mesh_lan4=interface
uci set network.mesh_lan4.igmp_snooping='0'
uci set network.mesh_lan4.ifname='eth0.5'
uci set network.mesh_lan4.index='4'
uci set network.mesh_lan4.proto='gluon_wired'
uci set network.mesh_lan4.transitive='1'
uci set network.mesh_lan4.macaddr=$(echo 1$(uci show network.bat0.macaddr)|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
uci set network.mesh_lan4.disabled='0'
uci set network.mesh_lan.ifname='eth0.1'
uci set network.mesh_lan2.ifname='eth0.3'
uci set network.mesh_lan3.ifname='eth0.4'
uci set network.mesh_lan4.ifname='eth0.5'
uci commit network
echo switch separation complete
sleep 2
reboot
fi
warum so umständlich: Damit nach einem FW-Update das wiederhergestellt wird.
erstmal: vielen Dank, dass du dir für dieses Problem die Zeit genommen hast. Ich habe heute deine Lösung nachstellen wollen… und bin an meine Grenzen gestoßen.
Beim manuellen Abarbeiten deiner Config scheitert es bei mir hier:
uci set network.@switch_vlan[2].device='switch0'
Diese Codezeile führt zu einem „uci: invalid argument“ Fehler. Was übersehe ich da?
„Übersehen“ tue ich sicherlich auch noch etwas - und zwar eth0.2. Warum überspringst du das Device in deiner Config - oder anders gefragt: hängt an dem dein WAN-Kabel?
Last but not least: warum bekommt vlan 2 in deinem Config-Beispiel den Port 0 zugewiesen? Ich durchschaue die Systematik leider nicht.
Noobie-Fragen über Fragen…
Würde mich freuen, wenn du mir noch einmal auf die Sprünge helfen könntest. Genutzt habe ich den „normalen“ kleinen Ubiquiti ERX mit 5 Ports.