VLANs trennen: Unterschied zwischen den Versionen

Aus FunkFeuer Wiki
Wechseln zu: Navigation, Suche
(Abhilfe:)
K (Tippfehler)
 
Zeile 12: Zeile 12:
 
Dann hast du die alten Werte falls irgendwas schief geht.
 
Dann hast du die alten Werte falls irgendwas schief geht.
  
Vermutlich hast du "vlan0ports=1 2 3 4 5*" d.h. die 4 "LAN"-Ports gehören alle zum LAN dazu (5 ist der interne Switch). Da nehmen wir ihm die 2 Ports für die osbridges weg:
+
Vermutlich hast du "vlan0ports=1 2 3 4 5*" d.h. die 4 "LAN"-Ports gehören alle zum LAN dazu (5 ist der interne Switch). Da nehmen wir ihm die 2 Ports für die Osbridges weg:
  
 
   nvram set vlan0ports="1 2 5*"
 
   nvram set vlan0ports="1 2 5*"
Zeile 30: Zeile 30:
 
   nvram set osb2_ifname=vlan3
 
   nvram set osb2_ifname=vlan3
  
Außerdem müssen die Scripte wissen, zu welchem physikalen Switch die Dinger gehören:
+
Außerdem müssen die Scripte wissen, zu welchem physikalischen Switch die Dinger gehören:
  
 
   nvram set vlan2hwname=et0
 
   nvram set vlan2hwname=et0

Aktuelle Version vom 21. April 2009, 20:58 Uhr

Wird in der Freifunk-Firmware olsr für die LAN-Ports aktiviert, kann man an diesen Anschlüssen weitere Geräte betreiben. So auch zum Beispiel WLAN-Bridges, die selbst kein olsr können. In diesem Fall ergibt sich der Nachteil, dass die Gegenstellen dann glauben, direkt (ohne den Umweg des Routers wo olsr am LAN-Port aktiviert ist) kommunizieren können. Das ist besonders ärgerlich, wenn dann auf der Karte Links eingezeichnet werden, die gar nicht vorhanden sind. Auch vom Prinzip her widerspricht dieses Setup dem Gedanken eines gerouteten Meshes.


Abhilfe:

Die einzelnen LAN-Ports lassen sich getrennt ansprechen uns so kann man unter ihnen auch routen (nicht nur switchen). Leider gibt es dafür unter der Freifunk-Firmware keine Möglichkeit, die Einstellungen im Webinterface vorzunehmen. Auf der Kommandozeile ist es aber ziemlich einfach:

Mach als erstes Mal ein Backup deiner nvram-Konfiguration:

 nvram show

Dann hast du die alten Werte falls irgendwas schief geht.

Vermutlich hast du "vlan0ports=1 2 3 4 5*" d.h. die 4 "LAN"-Ports gehören alle zum LAN dazu (5 ist der interne Switch). Da nehmen wir ihm die 2 Ports für die Osbridges weg:

 nvram set vlan0ports="1 2 5*"

1 und 2 sind vermutlich die Anschlüsse neben dem WAN-Port, die bleiben so normales LAN, aber das musst du ausprobieren.

Jetzt machen wir aus den anderen beiden Ports getrennte Anschlüsse:

 nvram set vlan2ports="3 5"
 nvram set vlan3ports="4 5"

Der 5er ist jeweils damit die Anschlüsse mit dem inneren Switch kommunizieren können.

Diese Anschlüsse brauchen noch Namen unter denen wir sie in den Startscripten ansprechen können (z.B. osb1 und osb2):

 nvram set osb1_ifname=vlan2
 nvram set osb2_ifname=vlan3

Außerdem müssen die Scripte wissen, zu welchem physikalischen Switch die Dinger gehören:

 nvram set vlan2hwname=et0
 nvram set vlan3hwname=et0

(es ist tatsächlich "et0" und nicht "eth0").

Dann konfigurieren wir darauf statische IP-Adressen:

 nvram set osb1_proto=static
 nvram set osb2_proto=static
 nvram set osb1_ipaddr=NEUE_IP_FÜR_DIE_BRIDGE_AUS_REDEEMER
 nvram set osb2_ipaddr=ZWEITE_NEUE_IP_FÜR_DIE_BRIDGE_AUS_REDEEMER
 nvram set osb1_netmask=NETZMASKE_JE_NACH_IP
 nvram set osb2_netmask=NETZMASKE_JE_NACH_IP

Das ganze speichern wir mal:

 nvram commit

und starten neu:

 reboot

Dann probieren wir mal ob die Interfaces hochkommen:

 ifup osb1
 ifup osb2
 ifconfig

Wenn das funktioniert hat und du vlan2 und vlan3 als Interfaces siehst, kannst du die beiden ifup-Befehle in /etc/init.d/S40network mit eintragen, dann starten die Interfaces beim Systemstart automatisch.

Jetzt müssen wir ihnen nur noch olsr beibringen. Dazu kopiere einfach aus /etc/olsrd.conf den Block 'Interface "eth1" { ... bis }' zwei mal nach /etc/local.olsrd.conf und ändere den Interfacenamen einmal auf vlan2 und einmal auf vlan3.

olsr neu starten:

 /etc/init.d/S53olsrd restart

Zu guter Letzt muss noch die Firewall angepasst werden.

Dazu erstellt man eine Datei /etc/local.fw-vlans, macht sie ausführbar und speichert dort folgende Befehle ab:

 iptables -I INPUT -i vlan1 -j ACCEPT
 iptables -I OUTPUT -o vlan1 -j ACCEPT
 iptables -I FORWARD -i vlan1 -j ACCEPT
 iptables -I FORWARD -o vlan1 -j ACCEPT
 iptables -I INPUT -i vlan2 -j ACCEPT
 iptables -I OUTPUT -o vlan2 -j ACCEPT
 iptables -I FORWARD -i vlan2 -j ACCEPT
 iptables -I FORWARD -o vlan2 -j ACCEPT

Fertig!