Zuletzt geändert von Jonas Mayer am 2022/05/05 09:42

Von Version 17.1
bearbeitet von Jonas Mayer
am 2022/05/05 09:38
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 1.6
bearbeitet von Michael Ecer
am 2021/09/03 11:35
Änderungskommentar: Update document after refactoring.

Zusammenfassung

Details

Seiteneigenschaften
Titel
... ... @@ -1,1 +1,1 @@
1 -Aktualisiert: VMware Anpassungen für LogoDIDACT als Gastsystem mit dritter Netzwerkschnittstelle
1 +Umgehung doppelter MAC-Adressen p_intern
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.jonasmayer@sbede
1 +XWiki.michaelecer@sbede
Inhalt
... ... @@ -1,31 +1,73 @@
1 1  (% style="color:#000000" %)Auf den Promiscuous Mode innerhalb der vSwitch-Einstellung unter VMware ESXi kann verzichtet werden, sofern man einige Anpassungen am Netzwerk-Design für den LD2.0 Server durchführt.
2 -Im Folgenden werden die Schritte beschrieben, um die Netzwerk-Interfaces für den ldhost sowie den logosrv-Container entsprechend anzupassen.
3 3  
4 -(% class="wikigeneratedid" id="H" %)
5 -
6 6  
7 -(% class="box warningmessage" id="HWichtig:A021A0DieseAnleitungfunktioniertnurmitderPuppet-Version1.1.33oderhF6her21" %)
4 +(% style="color:#000000" %)__**Kurze Erläuterung**__
5 +
6 +(% class="box infomessage" %)
8 8  (((
9 -(% style="color:#000000" %)**__Wichtig:__** Diese Anleitung setzt mindestens die Puppet-Version 1.1.33 voraus.
8 +(% style="color:#000000" %)Erst einmal zum Verständnis vom promiscuous Mode der Netzwerkkarte bzw. des VMware Switches.
9 +Wir brauchen das eigentlich nur, da wir auf der Schnittstelle "intern" vom ldhost 2 (bis 3) verschiedene IP-Adressen haben und der Switch in VMware kann immer nur eine MAC:Port
10 +Zuordnung pro Port.
11 +Die drei Modi in VMware die es gibt sind:
12 +Feste Mac (forget transmits), EINE beliebige MAC (mac address changes), allen Traffic (promiscuous mode)
13 +\\Intern sind momentan immer ldhost und logosrv mit der Schnittstelle "intern" verbunden.
14 +Je nach Konfiguration kann es noch sein, dass Rembo ebenfalls auf dieser Schnittstelle läuft.
15 +Gründe:
16 +ldhost hauptsächlich fürs Management
17 +logosrv für die eigentlichen Kommunikation
18 +rembo nur wenn kein Routing über logosrv für Rembo eingesetzt wird!
19 +\\Lösungsvorschlag:
20 +Wenn Rembo momentan die Daten noch über logosrv sendet, sollte es funktionieren, dass man auf ldhost das interface v_intern herunterfährt und den Port in
21 +VMware von promiscuous auf "Mac address changes" setzt. Wenn man den v_intern Port auf ldhost überhaupt benötigt, kann man hierfür ein eigenes Interface in VMware erzeugen
22 +und im ldhost einrichten.
23 +\\Damit sollten Probleme die möglicherweise durch den promiscuous mode entstehen ausgeschlossen werden können.
24 +\\Falls es mit dem mode "mac address changes" Probleme gibt, kann man auch die reale MAC-Adresse vom logosrv für die Schnittstelle intern festlegen.
25 +Genaueres dazu hier:(%%)
26 +[[(% style="color:#000000" %)https:~~/~~/www.vmware.com/support/ws55/doc/ws_net_advanced_mac_address.html>>https://www.vmware.com/support/ws55/doc/ws_net_advanced_mac_address.html]](%%)
27 +\\
10 10  )))
11 11  
12 -{{toc start="4"/}}
13 13  
31 +(% style="color:#000000" %)Im Folgenden werden die Schritte beschrieben, um die Netzwerk-Interfaces für den ldhost sowie den logosrv-Container entsprechend anzupassen.
14 14  
15 -==== (% style="color:#000000" %)1. (% style="color:#2980b9" %)**[VMware Gasteinstellungen]**(% style="color:#000000" %) Netzwerk-Interfaces für die LD2.0 VM im vSphere-Client definieren(%%) ====
16 16  
34 +==== (% style="color:#c0392b" %)**__Wichtig:__ !  Diese Anleitung funktioniert nur mit der Puppet-Version 1.1.33 oder höher !**(%%) ====
17 17  
36 +
37 +
38 +==== (% style="color:#000000" %)__1. Netzwerk-Interfaces für die LD2.0 VM im vSphere-Client definieren__(%%) ====
39 +
40 +
18 18  (% style="color:#000000" %)Zunächst fügt man der LD2.0 VM eine weitere virtuelle Netzwerkschnittstelle im Netzwerkbereich „intern“ hinzu.
19 19  Insgesamt sollten es also 3 Schnittstellen für die logoDIDACT VM sein / mit Nutzung von lddeploy sind es 4 Schnittstellen:
20 -\\- 1.   (% style="color:#2980b9" %) **p_extern**(% style="color:#000000" %): für Internetzugang auf ldhost
21 -- 2.    (% style="color:#2980b9" %)**intern_ldhost**(% style="color:#000000" %)**:** für Management-Zugriff auf den ldhost vom Schulnetz aus
22 -- 3.    (% style="color:#2980b9" %)**intern:**(% style="color:#000000" %) physikalisch durchgereicht an den logosrv LXC-Container (derselbe Netzbereich wie intern_ldhost)
43 +\\- 1. (% style="color:#2980b9" %) **p_extern**(% style="color:#000000" %): für Internetzugang auf ldhost
44 +- 2. (% style="color:#2980b9" %)**intern_ldhost**(% style="color:#000000" %)**:** für Management-Zugriff auf den ldhost vom Schulnetz aus
45 +- 3. (% style="color:#2980b9" %)**intern:**(% style="color:#000000" %) physikalisch durchgereicht an den logosrv LXC-Container (derselbe Netzbereich wie intern_ldhost)
23 23  
47 +(% style="color:#2980b9" %)**__Hinweis:__**(% style="color:#000000" %) Eine Schnittstellen-Bezeichnung darf maximal 13 Zeichen lang sein. Siehe hierzu auch diesen (%%)[[(% style="color:#000000" %)Bugreport>>url:http://edunetserver.de/Bugreporthttps%3a%2f%2fbugs.debian.org/cgi-bin/bugreport.cgi?bug=858580]].
24 24  
25 -==== (% style="color:#000000" %)2. (% style="color:#2980b9" %)[**Ubuntu** **16.04 LTS**](% style="color:#000000" %) systemd-Regel im ldhost für aktuelle Installationen(%%) ====
26 26  
27 -(% style="color:#000000" %)Ab Ubuntu 16.04 LTS ist es einfacher (auch im Hinblick auf die zukünftige [[Entwicklung>>url:https://wiki.ubuntuusers.de/Netplan/]] seitens Ubuntu), für die ganze Netzwerkkonfiguration [[systemd-networkd>>url:https://wiki.archlinux.org/index.php/Systemd-networkd]] zu verwenden. Nachfolgend die jeweiligen Konfigurationsdateien, die erstellt werden müssen. Gleichzeitig sollte auch die Datei **/etc/udev/rules.d/70-persistent-net.rules** gelöscht werden, damit nur noch eine Stelle existiert, an der konfiguriert wird.
50 +==== (% style="color:#000000" %)2a. (% style="color:#2980b9" %)[**Ubuntu 14.04 LTS**](% style="color:#000000" %) udev-Regel im ldhost zur Definition der Schnittstellen-Bezeichnungen anpassen(%%) ====
28 28  
52 +(% style="color:#000000" %)Die oben aufgeführten Interfaces müssen so wie hier beschrieben in der Datei "/etc/udev/rules.d/70-persistent-net.rules" zur entsprechenden MAC-Adresse zugeordnet werden (MACs anpassen!)
53 +
54 +(% class="box" %)
55 +(((
56 +(% style="color:#000000" %)### This file was automatically generated by the /lib/udev/write_net_rules
57 +# program run by the persistent-net-generator.rules rules file.
58 +#
59 +# You can modify it, as long as you keep each rule on a single line.
60 +\\SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:XX:XX:XX:XX:XX", ATTR{type}=="1", KERNEL=="eth*", NAME="p_extern"
61 +SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="YY:YY:YY:YY:YY:YY", ATTR{type}=="1", KERNEL=="eth*", NAME="intern_ldhost"
62 +SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ZZ:ZZ:ZZ:ZZ:ZZ:ZZ", ATTR{type}=="1", KERNEL=="eth*", NAME="intern"##
63 +)))
64 +
65 +==== ====
66 +
67 +==== (% style="color:#000000" %)2b. (% style="color:#2980b9" %)[**Ubuntu** **16.04 LTS**](% style="color:#000000" %) systemd-Regel im ldhost für aktuelle Installationen(%%) ====
68 +
69 +(% style="color:#000000" %)Ab Ubuntu 16.04 LTS ist es einfacher (auch im Hinblick auf die zukünftige (%%)[[(% style="color:#000000" %)Entwicklung>>url:https://wiki.ubuntuusers.de/Netplan/]] seitens Ubuntu), für die ganze Netzwerkkonfiguration (%%)[[(% style="color:#000000" %)systemd-networkd>>url:https://wiki.archlinux.org/index.php/Systemd-networkd]] zu verwenden. Nachfolgend die jeweiligen Konfigurationsdateien, die erstellt werden müssen. Gleichzeitig sollte auch die Datei **/etc/udev/rules.d/70-persistent-net.rules** gelöscht werden, damit nur noch eine Stelle existiert, an der konfiguriert wird.
70 +
29 29  ===== (% style="color:#000000" %)/etc/systemd/network/80-intern.link(%%) =====
30 30  
31 31  (% class="box" %)
... ... @@ -129,16 +129,10 @@
129 129  shorewall restart##
130 130  )))
131 131  
132 -==== ====
174 +(% style="color:#000000" %)Abschließend einen Puppet-Run auf dem ldhost ausführen, um die Schnittstellenanpassungen anzuwenden gefolgt von einem Server-Reboot.
133 133  
134 -==== 5. Puppet-Run auf dem ldhost ausführen und danach die LD2.0 VM zur Aktivierung neustarten ====
135 -
136 -Um die getätigten Änderung zu übernehmen, muss ein "prun" auf dem ldhost ausgeführt werden. Dieser ändert die Konfigurationsdateien gemäß den Vorgaben, unter anderem die wichtigen Dateien /etc/network/interfaces.d/ovs sowie /var/lib/lxc/logosrv/network.json. Nach dem Puppet-Run dann noch die komplette LD2.0 VM neustarten.
137 -
138 138  (% class="box" %)
139 139  (((
140 140  (% style="color:#000000" %)##prun
141 141  /sbin/reboot##
142 142  )))
143 -
144 -Während des nächsten Bootvorgangs erhält dann auch der LXC **logosrv** seine interne Schnittstelle direkt an den Container durchgereicht. Dies kann man übrigens daran erkennen, dass die MAC-Adresse der Schnittstelle  "intern" der MAC-Adresse entspricht, die der VMware Host für die virtuelle Maschine generiert hat.