Version 1.6 von Michael Ecer am 2021/09/03 11:35

Zeige letzte Bearbeiter
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
3
4 (% style="color:#000000" %)__**Kurze Erläuterung**__
5
6 (% class="box infomessage" %)
7 (((
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 \\
28 )))
29
30
31 (% style="color:#000000" %)Im Folgenden werden die Schritte beschrieben, um die Netzwerk-Interfaces für den ldhost sowie den logosrv-Container entsprechend anzupassen.
32
33
34 ==== (% style="color:#c0392b" %)**__Wichtig:__ !  Diese Anleitung funktioniert nur mit der Puppet-Version 1.1.33 oder höher !**(%%) ====
35
36
37
38 ==== (% style="color:#000000" %)__1. Netzwerk-Interfaces für die LD2.0 VM im vSphere-Client definieren__(%%) ====
39
40
41 (% style="color:#000000" %)Zunächst fügt man der LD2.0 VM eine weitere virtuelle Netzwerkschnittstelle im Netzwerkbereich „intern“ hinzu.
42 Insgesamt sollten es also 3 Schnittstellen für die logoDIDACT VM sein / mit Nutzung von lddeploy sind es 4 Schnittstellen:
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)
46
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]].
48
49
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(%%) ====
51
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
71 ===== (% style="color:#000000" %)/etc/systemd/network/80-intern.link(%%) =====
72
73 (% class="box" %)
74 (((
75 (% style="color:#000000" %)##[Match]
76 MACAddress=XX:XX:XX:XX:XX:XX
77 [Link]
78 Name=intern##
79 )))
80
81 ===== =====
82
83 ===== (% style="color:#000000" %)/etc/systemd/network/80-intern_ldhost.link(%%) =====
84
85 (% class="box" %)
86 (((
87 (% style="color:#000000" %)##[Match]
88 MACAddress=YY:YY:YY:YY:YY:YY
89 [Link]
90 Name=intern_ldhost##
91 )))
92
93 ===== =====
94
95 ===== (% style="color:#000000" %)/etc/systemd/network/80-p_extern.link(%%) =====
96
97 (% class="box" %)
98 (((
99 (% style="color:#000000" %)##[Match]
100 MACAddress=ZZ:ZZ:ZZ:ZZ:ZZ:ZZ
101 [Link]
102 Name=p_extern##
103 )))
104
105 (% style="color:#000000" %)Nach Erstellung bzw. Bearbeitung der oben beschriebenen Dateien ist noch folgender Befehl wichtig, um die Änderungen in die Initramfs zu übernehmen (wichtig für den Bootvorgang, damit die Interfaces umbenannt werden):
106
107 (% class="box" %)
108 (((
109 (% style="color:#000000" %)##update-initramfs -u -k all##
110 )))
111
112 ==== ====
113
114 ==== (% style="color:#000000" %)3. Konfigurationsänderungen im Puppeteer mittels YAML-Dateien(%%) ====
115
116 (% style="color:#000000" %)Nachfolgend werden zwei Anpassungen beschrieben, um die OVS-Schnittstelle v_intern auf dem ldhost zu deaktivieren sowie die Schnittstelle intern als "physical device" (d.h. das ESXi-Interface direkt) zum logosrv-Container durchzureichen.
117
118 (% style="color:#2980b9" %)**/var/lib/ld-puppet/hiera.d/custom.d/ldhost.yaml**
119
120 (% class="box" %)
121 (((
122 (% style="color:#000000" %)##profile::network:
123 interface:
124 intern:
125 ovs_type: none##
126 )))
127
128
129 (% style="color:#2980b9" %)**/var/lib/ld-puppet/hiera.d/custom.yaml**
130
131 (% class="box" %)
132 (((
133 (% style="color:#000000" %)##global::network:
134 overwrites:
135 ldhost:
136 intern:
137 name: intern_ldhost
138 type: phys
139 logosrv:
140 intern:
141 type: phys##
142 )))
143
144 (% style="color:#000000" %)Zusätzlich kann in der vorhandenen Konfigurationsdatei nic.conf für den ldhost die nicht länger genutzte Schnittstelle p_intern auskommentiert werden.
145
146 (% style="color:#2980b9" %)**/etc/logodidact/hosts/ldhost/nic.conf**
147
148 (% class="box" %)
149 (((
150 (% style="color:#000000" %)##[NIC intern]
151 suffix 1
152 \\#[NIC p_intern]
153 #vlan_mode access
154 #vlan_untagged ld-intern
155 #Type manual
156 #ovs_type OVSPort##
157 )))
158
159 (% style="color:#000000" %)Nach Änderung in dieser Datei entweder das Kommando 'map_translate' im Puppeteer ausführen oder den Verzeichnisinhalt von /etc/logodidact/ per 'git commit' abspeichern, um die Änderung zu aktivieren.
160
161 ==== ====
162
163 ==== (% style="color:#000000" %)4. Shorewall Interface-Namen anpassen(%%) ====
164
165 (% style="color:#000000" %)Die Bezeichnung der internen Schnittstelle auf dem ldhost hat sich von v_intern auf intern_ldhost geändert. Diese neue Bezeichnung sollte im Shorewall Firewall-Dienst eingetragen werden.
166 Hierzu folgende beiden Befehle im ldhost eingeben.
167
168 (% class="box" %)
169 (((
170 (% style="color:#000000" %)##rpl "v_intern" "intern_ldhost" /etc/shorewall/interfaces
171 shorewall restart##
172 )))
173
174 (% style="color:#000000" %)Abschließend einen Puppet-Run auf dem ldhost ausführen, um die Schnittstellenanpassungen anzuwenden gefolgt von einem Server-Reboot.
175
176 (% class="box" %)
177 (((
178 (% style="color:#000000" %)##prun
179 /sbin/reboot##
180 )))