Univention Bugzilla – Bug 29023
Unterstützung für Bridges, VLANs, Bonding / Flexibilität via UMC
Last modified: 2012-11-13 08:53:53 CET
Anzupassen im Computer-Kapitel +++ This bug was initially created as a clone of Bug #28389 +++ Die Erweiterung aus Bug #26058 für Bridges, VLAN und Bonding kann derzeit nicht per UMC konfiguriert werden. +++ This bug was initially created as a clone of Bug #26058 +++ Created an attachment (id=4157) Überarbeitet Vorlage /etc/network/interfaces /etc/network/interfaces wird derzeit von einem relativ starren Template verwaltet, was es nur erlaubt Interfaces zu definieren, deren Name mit "eth" beginnt. Das reicht nicht. * Bug #23947, Bug #23514, Bug #22670: Bridges heißen normalerweise brX * Bug #23411, Bug #19460: Bonding-Interfaces heißen normalerweise bondX * Bug #22967: Unterstützung für VLAN-Interfaces, je nach Modus u.a. vlanX * dummyX, wlanX, ...-Interfaces Gerade in Verbindung mit Virtualisierung und HA sind solche Konfigurationen heute öfters notwendig und sollten abbildbar sein, ohne das man das Template anfassen muß. Die angehängte Version implementiert keine spezielle Unterstützung für die obigen 3 Hauptfällt, sondern vergößert die Flexibilität, so daß sich diese dann auch den bereits vorhandenen "options/"-Mechanismus abbilden lassen. 1. Im Gegensatz zu Attachment 3305 [details] entfernt der angehängte Patch die Restriktion, das nur Interfaces verwendet werden, die mit "eth" beginnen, so daß über UCR-Variablen nur beliebige Interfaces konfiguriert werden können. 2. Über die neue UCR-Variable interfaces/primary kann angegeben werden, welches das primäre Interface (Standard: "eth0") sein soll. Innerhalb des Templates wird das für das default-Gateway verwendet. 3. Da sich interfaces verschachteln lassen (bridge → vlan → bonding), kann man über die UCVR "interfaces/$name/active" das automatische Aktivieren per "auto"-Statement unterdrücken. Standard ist hier weiterhin "true". TODOs: 4. Die UCR-info-Dateien sind noch anzupassen, das nicht nur auf interfaces/eth* getriggert wird. 5. Hier wäre aber nochmal generell zu überprüfen, ob andere Templates nicht auch stillschweigend davon ausgehen, das eth0 das Standardinterface ist; die müssten das dann auch auch besagter UCRV auslesen (initramfs.conf, slapd.conf, dhclient.conf, initramfs.conf, issue, ifplugd, hosts) 6. testen, testen, testen ... Beispiele: Auf einem Testsystem in folgendes Konstrukt einrahmen: ifdown -a ; ifup lo ucr unset $(ucr search --brief '^interfaces/.*/' | sed -ne 's/: .*//p') ... ucr commit /etc/network/interfaces ; ifup -a Bonding mit eth{0,1}: #ucr set kernel/modules="$(ucr get kernel/modules) bridge" ucr set \ interfaces/eth{0,1}/{\ type=manual,\ start=false} \ interfaces/bond0/{\ address=192.168.122.13,\ broadcast=192.168.122.255,\ netmask=255.255.255.0,\ network=192.168.122.0,\ options/1="bond-slaves eth0 eth1",\ options/2="bond-mode 1",\ options/3="mmimon 100",\ options/4="bond-primary eth0 eth1",\ start=true} \ interfaces/primary=bond0 Bridge mit eth{0,1}: #ucr set kernel/modules="$(ucr get kernel/modules) bonding" ucr set \ interfaces/eth{0,1}/{\ type=manual,\ start=false} \ interfaces/br0/{\ address=192.168.122.13,\ broadcast=192.168.122.255,\ netmask=255.255.255.0,\ network=192.168.122.0,\ options/1="bridge_ports eth0 eth1",\ options/2="bridge_fd 0",\ start=true} \ interfaces/primary=br0 VLAN {1,2} über eth0: #ucr set kernel/modules="$(ucr get kernel/modules) 8021q" ucr set \ interfaces/eth0/{\ type=manual,\ start=false} \ interfaces/eth0.2/{\ address=192.168.122.13,\ broadcast=192.168.122.255,\ netmask=255.255.255.0,\ network=192.168.122.0,\ start=true} \ interfaces/eth0.3/{\ address=10.200.17.1,\ broadcast=10.200.17.255,\ netmask=255.255.255.0,\ network=10.200.17.0,\ start=true} \ interfaces/primary=eth0.2 Alles: bonding über eth{0,1] für HA, Host-übergreifende VLANs, Bridging für VMs, Host über eth2 ucr set \ interfaces/eth{0,1}/{\ order=2,\ type=manual,\ start=false} \ interfaces/bond0/{\ order=3,\ type=manual,\ options/1="bond-slaves eth0 eth1",\ options/2="bond-mode 1",\ options/3="mmimon 100",\ options/4="bond-primary eth0 eth1",\ start=true} \ interfaces/bond0.{2,3}/{\ order=4,\ type=manual,\ start=false} \ interfaces/br2/{\ order=5,\ type=manual,\ options/1="bridge_ports bond0.2",\ options/2="bridge_fd 0",\ start=true} \ interfaces/br3/{\ order=5,\ type=manual,\ options/1="bridge_ports bond0.3",\ options/2="bridge_fd 0",\ start=true} \ interfaces/eth2/{\ order=1,\ address=192.168.122.13,\ broadcast=192.168.122.255,\ netmask=255.255.255.0,\ network=192.168.122.0,\ start=true} \ interfaces/primary=eth2 # VLAN _muß_ indirekt über Bridging gestartet werden, deswegen dort unbedingt start=false
Die Änderungen an der UMC werden für 3.1-0 nicht mehr umgesetzt. Für 3.1-1 wird dann ein separater Bug geclont.