Firmware adsc15

mail at adrianschmutzler.de mail at adrianschmutzler.de
Mi Mai 15 23:04:12 CEST 2019


Cc an franken-dev falls es dort jemanden interessiert (bitte mich nicht für technische Unzulänglichkeiten hauen).

Hallo Andreas,

ich habe die ganze Sache jetzt mal aufgerollt:

Der C7 v2 ist bei uns ein Spezialfall, da hier beide eth-Devices mit dem Switch verbunden sind.

Zur Erklärung von Anfang an:
Definiere ich ein VLAN (z.B. 2) mit den Ports 1 und 2, so ist dort immer noch ein weiterer Eintrag (port) für die Anbindung des jeweiligen eth, z.B. 0.

Ich kann nun also
switch_vlan
	vlan 2
	ports '0 1 2'
schreiben. In diesem Fall ist das eth (port 0) untagged mit den anderen (physischen) Ports verbunden, und das zugehörige Device wäre einfach z.B. eth0 oder eth1. Soll es sich um WAN-Ports handeln, könnte ich also einfach bei wan
interface wan
	ifname 'eth0'
eintragen. In diesem Modus kann ich aber nur eine Sorte von Ports an diesem eth konfigurierbar (Der ganze Traffic kommt am eth untagged an). Um nun mehrere Netzwerke (Sorten von Ports) zu verbinden, muss ich diese "tagged" mit dem eth verbinden:
switch_vlan
	vlan 2
	ports '0t 1 2'
Bei der Kommunikation mit dem eth wird also die jeweilige VLANID angehängt ("tagged"). Bei wan wäre dann ein
interface wan
	ifname 'eth0.2'
nötig, da wir jetzt ja dann die VLANID 2, die wir für WAN verwenden, und die durch das tagged an den Paketen dranhängt, wieder rausfiltern müssen.
Da es tagged ist, kann man nun auch weitere VLANs durch das eth jagen, z.B.
switch_vlan
	vlan 3
	ports '0t 3 4'
und
interface ethmesh
	ifname 'eth0.3'

Sobald ich jetzt hier mehrere Netzwerke mit ihren jeweiligen Ports an das gleiche eth hänge, muss ich den eth-port tagged setzen, sonst würde alles zusammengematscht. Bei vielen Geräten ist es nun einfach so, dass alle Ports im Switch hängen und dann einfach client, wan und batman über eth0.1, eth0.2 und eth0.3 selektiert werden.

Die Besonderheit beim C7v2 ist nun, dass wir hier ein zweites eth haben, aber der WAN-Port nicht auch separat ist (wie z.B. bei den 841ern), sondern mit im Switch hängt. Das zweite eth hat dementsprechend einen eigenen Port zur Anbindung, Nr. 6.
Hier verwendet man nun üblicherweise ein eth für das WAN und ein eth für das lokale Netz (hier batman und client). Das hat den Hintergrund, dass normalerweise wan und lan unterschiedliche Netze sind, zwischen denen geroutet wird, dort die Kommunikation also nicht über das Switch, sondern über die CPU läuft.

Beim C7v2 haben wir nun also zwei Netze am eth1 (Port 0), nämlich Client und Batman. Daher MUSS Port 0 tagged sein (0t bei den ports und eth1.1 und eth1.3 bei den Interfaces)
Für das WAN haben wir nur ein Netz, das hängt am eth0. Der eth-Port ist 6, der physische Port für das Kabel ist 1. Da es nur EIN Netz ist, sind hier beide Möglichkeiten vom Anfang tatsächlich richtig: Man kann entweder den WAN-Port 1 per
	port '1 6'
untagged mit dem eth0 verbinden, dann muss man für wan als interface 'eth0' wählen.
Oder man kann die WAN VLAN ID 2 mit dran hängen:
	port '1 6t'
Dann muss für WAN diese mit angegeben werden:
	ifname 'eth0.2'

Beides ist richtig und beides sollte funktionieren, aber nur jeweils mit der richtigen Kombination beider Optionen.

Gemeinerweise haben die das bei OpenWrt zwischendurch mal geändert, und unsere Firmware hat den alten Stand übernommen. Durch die neuen Änderungen in der FW habe ich nun aber teilweise diesen alten Stand mit dem neuen Stand von OpenWrt vermischt.

Für die Zukunft werde ich nun den aktuellen Stand von OpenWrt verwenden:
	port '1 6t'
und
	ifname 'eth0.2'

Falls dich das alles gar nicht interessiert, habe ich es jetzt zumindest mal für die Nachwelt ausformuliert ;-)
In der nächsten FW sollte es dann richtig sein.

Beste Grüße

Adrian
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : openpgp-digital-signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 834 bytes
Beschreibung: nicht verfügbar
URL         : <https://{'listname': 'franken-dev-freifunk.net', 'hostname': 'lists.freifunk.net'}/pipermail/franken-dev-freifunk.net/attachments/20190515/33db7d78/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev