| 3 | | = cpmaccfg = |
| 4 | | Konfiguration des eingebauten Switch (unterstützte Modelle siehe unten). |
| 5 | | |
| 6 | | == Vorwort == |
| 7 | | Einige Modelle aus der Fritz!Box-Familie besitzen nicht nur einen LAN-Port, sondern gleich vier, z.B. 7170 oder 7270 . Da ich selber nur die 7170 "persönlich" kenne, möge man die nachfolgenden Worte in erster Linie als Anleitung/Beschreibung für dieses Modell verstehen, andere Boxen bitte ergänzen. |
| 8 | | |
| 9 | | Im Normalbetrieb der 7170 arbeiten die vier Ports wie ein normaler Switch, d.h. alle angeschlossenen Geräte befinden sich im gleichen Subnetz und können direkt miteinander kommunizieren. Mit Hilfe der Originalfirmware von AVM ist es aber auch möglich, den LAN 1-Port als WAN-Port zu nutzen (im Webinterface "Internetzugang via LAN 1" auswählen), z.B. wenn man die Box an einem Kabelmodem o.ä. betreiben will. Dazu wird der Port von den verbleibenden drei Ports getrennt und als seperates wan-Netzwerkdevice von der Firmware entsprechend konfiguriert. |
| 10 | | |
| 11 | | Das ist möglich, da in der Fritz!Box ein konfigurierbarer 5-Port-Switch eingebaut ist: vier der Ports sind als LAN 1 bis 4 nach außen geführt, am fünften hängt die eigentliche Fritz!Box, sprich die CPU. Leider bietet AVM im Webinterface keine Möglichkeit, die Ports weitergehend individuell zu konfigurieren. Da dies in bestimmten Fällen aber sehr hilfreich wäre, entstand das kleine Tool [![http://www.heimpold.de/dsmod/|cpmaccfg]]. Es kann via Telnet/SSH-Zugang auf der Fritz!Box ausgeführt werden. |
| 12 | | |
| 13 | | AVM hat die Schnittstelle für die Switchkonfiguration in den Linux-Netzwerkkartentreiber (avm_cpmac) eingebunden, offenbar gibt es da eine "alte" und eine "neue" Version dieser Schnittstelle. Während die alte noch sehr weitgehenden Zugriff auf den Switch erlaubt und es ermöglicht, das volle Potential des Switches auszuschöpfen, ist die neue etwas "abstrakter" gehalten, was dazu führt, dass man nur noch zwischen verschiedenen vordefinierten Konfigurationen auswählen kann. Wer vollen Zugriff braucht, kann aber die alte Schnittstelle durch Hinzufügen von 2 Zeilen Kernelquellcode wieder aktivieren, für den danisahne-mod gibt es einen [![http://www.ip-phone-forum.de/showpost.php?p=792322&postcount=55|Patch]] (für ds-0.2.9_26-13), der diese Zeilen einfügt. Der Patch ist ab ds26-14 bereits standardmäßig enthalten. Es muss dann natürlich noch "replace kernel" während "make menuconfig" gewählt werden. |
| 14 | | |
| 15 | | == Vordefinierte Switch-Konfigurationen == |
| 16 | | AVM selbst hat im Kernelmodul schon verschiedene vordefinierte Konfigurationen hinterlegt, eine ist davon ist die bereits erwähnte Variante "Internetzugang via LAN 1", intern als ATA-Modus bezeichnet. Hier ein Überblick über alle vordefinierten Modi: |
| 17 | | |
| 18 | | * '''normal''': alle vier Ports arbeiten wie ein normaler Switch, der Kernel verwendet eth0 als Netzwerkinterface (jenachdem, ob "Alle Computer befinden sich im selben Subnetz" angekreuzt ist, wird eth0 noch mit den WLAN-Interfaces zu einem "lan"-Interface zusammengebridged) |
| 19 | | * '''ata''': LAN 1 kommt im Kernel als "wan" an, die drei anderen Ports als "eth0" (eventuelle Einbindung von eth0 in Bridge wie im Normalmodus) |
| 20 | | * '''split''': jedem Port wird ein einzelnes Interface zugeordnet, also "eth0", "eth1"... |
| 21 | | * '''split_ata''': wie split, jedoch bekommt LAN 1 die Bezeichnung "wan" |
| 22 | | * '''all_ports''': im Grunde wie normal, genauer Sinn & Zweck noch unbekannt (eventuell für Boxen mit mehr als 4 Ports gedacht?) |
| 23 | | * '''special''': siehe unten |
| 24 | | |
| 25 | | Richtig Sinn ergibt das Wechseln des Modus natürlich nur, wenn man das Häkchen bei "Alle Computer befinden sich im selben Subnetz" !__nicht!__ setzt, weil sonst alle verfügbaren Devices in eine Bridge gesteckt werden. |
| 26 | | |
| 27 | | Den aktuellen Modus kann man mit Hilfe von `cpmaccfg gsm` abfragen, setzen ist mit `cpmaccfg ssm zielmodus` möglich. |
| 28 | | |
| 29 | | === Modus "special" === |
| 30 | | Mit einem gepatchtem Kernel ist auch möglich, eigene individuelle Port-Konfigurationen zu erstellen. Dazu dient der Modus "special", der quasi als Platzhalter für eine Konfiguration im Kernel vorhanden ist. Dieser Platzhalter muss zunächst mittels !''cpmaccfg ssms ...!'' gefüllt werden, anschließend kann mit !''cpmaccfg ssm special!'' auf diese Konfiguration umgeschaltet werden. |
| 31 | | |
| 32 | | == Anpassungen in der ar7.cfg == |
| 33 | | Muss noch geschrieben werden :-) |
| 34 | | |
| 35 | | == Beispiel == |
| 36 | | Die vier Ports sollen in zwei Gruppen aufgeteilt werden: LAN 1 und LAN 2 sollen für das interne Netz zur Verfügung stehen (als eth0), LAN 3 und LAN 4 werden zwei [![http://www.freifunk.net|Freifunk]]-Router angeschlossen, die zusammen in einem seperaten Subnetz stecken (als eth1), vom internen LAN also getrennt sein sollen. |
| 37 | | |
| 38 | | Ruft man `cpmaccfg` ohne weitere Parameter auf, erscheint eine knappe Übersicht über Kommandos und Parameter. Damit ermittelt man, welche ''PORTMASK'' für die jeweiligen Interfaces zu verwenden ist. Diese Portmaske ergibt sich aus der Logischen-Oder-Verknüpfung der jeweiligen Portkonstanten. Das sind folgende Werte: LAN 1 = 0x01, LAN 2 = 0x02, LAN 3 = 0x04, LAN 4 = 0x08 und der CPU-Port ist 0x20. |
| 39 | | |
| 40 | | Für das obige Beispiel muss also folgender Befehl aufgerufen werden: `cpmaccfg ssms eth0 0x23 eth1 0x2c`. Man beachte, dass in beiden Portmasken der CPU-Port eingeschlossen wurde. Macht man dies nicht, entsteht zwar das Interface, es "sieht" aber keinen Traffic (noch nicht probiert, zu überprüfen). |
| 41 | | |
| 42 | | Anschließen kann mit `cpmaccfg ssm special` diese Konfiguration aktiviert werden. |
| 43 | | |
| 44 | | == [[BR]]Sicherheits-Warnung == |
| 45 | | Beim Booten startet die Box immer im Modus '''normal''', d.h. wie und wo man auch immer die Umschaltung in den gewünschten Modus realisiert (z.B. per debug.cfg oder in einem Startup-Skript), es existiert immer eine gewisse Zeitspanne, in der sich alle vier Ports im gleichen "Layer 2-Subnetz" befinden. Erst nachdem die Umschaltung erfolgt ist, befinden sich die Ports in getrennten "Layer 2-Netzen". Erst dann muss eine Kommunikation über Layer 3 (IP-Ebene) erfolgen, wo eventuelle iptables-Regeln greifen. |
| 46 | | |
| 47 | | Schon bevor der Kernel bootet, wird der Switch vom Bootloader als normaler Switch konfiguriert. Die Konfiguration im Kernel umzustellen verkürzt die Zeitspanne etwas, beseitigt aber nicht das grundsätzliche Problem. |
| 48 | | |
| 49 | | Da für den Bootloader keine Quelltexte frei verfügbar sind, ist eine Anpassung schwierig. |
| 50 | | |
| 51 | | == [[BR]]Kompatibilität == |
| 52 | | * '''7140''', '''7170''', '''7270''', Speedports '''W900V''', '''W701V''': Diese Boxen haben einen eingebauten Switch, cpmaccfg funktioniert. |
| 53 | | * '''FB Fon (Wlan)''', '''7050''', '''7141''', '''7150''': Kein Switch-Baustein vorhanden, es handelt sich um richtige Netzwerkinterfaces. |
| 54 | | * weitere? |
| | 3 | Hier handelt es sich um ein Tool zur Konfiguration des eingebauten Switches. Eine genauere Anleitung findet sich [wiki:help/howtos/security/switch_config in diesem Howto]. |