Wiki-Quellcode von Umgehung doppelter MAC-Adressen p_intern
Version 2.1 von superadmin am 2021/09/03 11:46
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
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 | test | ||
4 | |||
5 | (% style="color:#000000" %)__**Kurze Erläuterung**__ | ||
6 | |||
7 | (% class="box infomessage" %) | ||
8 | ((( | ||
9 | (% style="color:#000000" %)Erst einmal zum Verständnis vom promiscuous Mode der Netzwerkkarte bzw. des VMware Switches. | ||
10 | 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 | ||
11 | Zuordnung pro Port. | ||
12 | Die drei Modi in VMware die es gibt sind: | ||
13 | Feste Mac (forget transmits), EINE beliebige MAC (mac address changes), allen Traffic (promiscuous mode) | ||
14 | \\Intern sind momentan immer ldhost und logosrv mit der Schnittstelle "intern" verbunden. | ||
15 | Je nach Konfiguration kann es noch sein, dass Rembo ebenfalls auf dieser Schnittstelle läuft. | ||
16 | Gründe: | ||
17 | ldhost hauptsächlich fürs Management | ||
18 | logosrv für die eigentlichen Kommunikation | ||
19 | rembo nur wenn kein Routing über logosrv für Rembo eingesetzt wird! | ||
20 | \\Lösungsvorschlag: | ||
21 | 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 | ||
22 | 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 | ||
23 | und im ldhost einrichten. | ||
24 | \\Damit sollten Probleme die möglicherweise durch den promiscuous mode entstehen ausgeschlossen werden können. | ||
25 | \\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. | ||
26 | Genaueres dazu hier:(%%) | ||
27 | [[(% 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]](%%) | ||
28 | \\ | ||
29 | ))) | ||
30 | |||
31 | |||
32 | (% style="color:#000000" %)Im Folgenden werden die Schritte beschrieben, um die Netzwerk-Interfaces für den ldhost sowie den logosrv-Container entsprechend anzupassen. | ||
33 | |||
34 | |||
35 | ==== (% style="color:#c0392b" %)**__Wichtig:__ ! Diese Anleitung funktioniert nur mit der Puppet-Version 1.1.33 oder höher !**(%%) ==== | ||
36 | |||
37 | |||
38 | |||
39 | ==== (% style="color:#000000" %)__1. Netzwerk-Interfaces für die LD2.0 VM im vSphere-Client definieren__(%%) ==== | ||
40 | |||
41 | |||
42 | (% style="color:#000000" %)Zunächst fügt man der LD2.0 VM eine weitere virtuelle Netzwerkschnittstelle im Netzwerkbereich „intern“ hinzu. | ||
43 | Insgesamt sollten es also 3 Schnittstellen für die logoDIDACT VM sein / mit Nutzung von lddeploy sind es 4 Schnittstellen: | ||
44 | \\- 1. (% style="color:#2980b9" %) **p_extern**(% style="color:#000000" %): für Internetzugang auf ldhost | ||
45 | - 2. (% style="color:#2980b9" %)**intern_ldhost**(% style="color:#000000" %)**:** für Management-Zugriff auf den ldhost vom Schulnetz aus | ||
46 | - 3. (% style="color:#2980b9" %)**intern:**(% style="color:#000000" %) physikalisch durchgereicht an den logosrv LXC-Container (derselbe Netzbereich wie intern_ldhost) | ||
47 | |||
48 | (% 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]](%%). | ||
49 | |||
50 | |||
51 | ==== (% style="color:#000000" %)2a. (% style="color:#2980b9" %)[**Ubuntu 14.04 LTS**](% style="color:#000000" %) udev-Regel im ldhost zur Definition der Schnittstellen-Bezeichnungen anpassen(%%) ==== | ||
52 | |||
53 | (% 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!) | ||
54 | |||
55 | (% class="box" %) | ||
56 | ((( | ||
57 | (% style="color:#000000" %)### This file was automatically generated by the /lib/udev/write_net_rules | ||
58 | # program run by the persistent-net-generator.rules rules file. | ||
59 | # | ||
60 | # You can modify it, as long as you keep each rule on a single line. | ||
61 | \\SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:XX:XX:XX:XX:XX", ATTR{type}=="1", KERNEL=="eth*", NAME="p_extern" | ||
62 | SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="YY:YY:YY:YY:YY:YY", ATTR{type}=="1", KERNEL=="eth*", NAME="intern_ldhost" | ||
63 | SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ZZ:ZZ:ZZ:ZZ:ZZ:ZZ", ATTR{type}=="1", KERNEL=="eth*", NAME="intern"## | ||
64 | ))) | ||
65 | |||
66 | ==== ==== | ||
67 | |||
68 | ==== (% style="color:#000000" %)2b. (% style="color:#2980b9" %)[**Ubuntu** **16.04 LTS**](% style="color:#000000" %) systemd-Regel im ldhost für aktuelle Installationen(%%) ==== | ||
69 | |||
70 | (% 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. | ||
71 | |||
72 | ===== (% style="color:#000000" %)/etc/systemd/network/80-intern.link(%%) ===== | ||
73 | |||
74 | (% class="box" %) | ||
75 | ((( | ||
76 | (% style="color:#000000" %)##[Match] | ||
77 | MACAddress=XX:XX:XX:XX:XX:XX | ||
78 | [Link] | ||
79 | Name=intern## | ||
80 | ))) | ||
81 | |||
82 | ===== ===== | ||
83 | |||
84 | ===== (% style="color:#000000" %)/etc/systemd/network/80-intern_ldhost.link(%%) ===== | ||
85 | |||
86 | (% class="box" %) | ||
87 | ((( | ||
88 | (% style="color:#000000" %)##[Match] | ||
89 | MACAddress=YY:YY:YY:YY:YY:YY | ||
90 | [Link] | ||
91 | Name=intern_ldhost## | ||
92 | ))) | ||
93 | |||
94 | ===== ===== | ||
95 | |||
96 | ===== (% style="color:#000000" %)/etc/systemd/network/80-p_extern.link(%%) ===== | ||
97 | |||
98 | (% class="box" %) | ||
99 | ((( | ||
100 | (% style="color:#000000" %)##[Match] | ||
101 | MACAddress=ZZ:ZZ:ZZ:ZZ:ZZ:ZZ | ||
102 | [Link] | ||
103 | Name=p_extern## | ||
104 | ))) | ||
105 | |||
106 | (% 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): | ||
107 | |||
108 | (% class="box" %) | ||
109 | ((( | ||
110 | (% style="color:#000000" %)##update-initramfs -u -k all## | ||
111 | ))) | ||
112 | |||
113 | ==== ==== | ||
114 | |||
115 | ==== (% style="color:#000000" %)3. Konfigurationsänderungen im Puppeteer mittels YAML-Dateien(%%) ==== | ||
116 | |||
117 | (% 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. | ||
118 | |||
119 | (% style="color:#2980b9" %)**/var/lib/ld-puppet/hiera.d/custom.d/ldhost.yaml** | ||
120 | |||
121 | (% class="box" %) | ||
122 | ((( | ||
123 | (% style="color:#000000" %)##profile::network: | ||
124 | interface: | ||
125 | intern: | ||
126 | ovs_type: none## | ||
127 | ))) | ||
128 | |||
129 | |||
130 | (% style="color:#2980b9" %)**/var/lib/ld-puppet/hiera.d/custom.yaml** | ||
131 | |||
132 | (% class="box" %) | ||
133 | ((( | ||
134 | (% style="color:#000000" %)##global::network: | ||
135 | overwrites: | ||
136 | ldhost: | ||
137 | intern: | ||
138 | name: intern_ldhost | ||
139 | type: phys | ||
140 | logosrv: | ||
141 | intern: | ||
142 | type: phys## | ||
143 | ))) | ||
144 | |||
145 | (% 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. | ||
146 | |||
147 | (% style="color:#2980b9" %)**/etc/logodidact/hosts/ldhost/nic.conf** | ||
148 | |||
149 | (% class="box" %) | ||
150 | ((( | ||
151 | (% style="color:#000000" %)##[NIC intern] | ||
152 | suffix 1 | ||
153 | \\#[NIC p_intern] | ||
154 | #vlan_mode access | ||
155 | #vlan_untagged ld-intern | ||
156 | #Type manual | ||
157 | #ovs_type OVSPort## | ||
158 | ))) | ||
159 | |||
160 | (% 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. | ||
161 | |||
162 | ==== ==== | ||
163 | |||
164 | ==== (% style="color:#000000" %)4. Shorewall Interface-Namen anpassen(%%) ==== | ||
165 | |||
166 | (% 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. | ||
167 | Hierzu folgende beiden Befehle im ldhost eingeben. | ||
168 | |||
169 | (% class="box" %) | ||
170 | ((( | ||
171 | (% style="color:#000000" %)##rpl "v_intern" "intern_ldhost" /etc/shorewall/interfaces | ||
172 | shorewall restart## | ||
173 | ))) | ||
174 | |||
175 | (% style="color:#000000" %)Abschließend einen Puppet-Run auf dem ldhost ausführen, um die Schnittstellenanpassungen anzuwenden gefolgt von einem Server-Reboot. | ||
176 | |||
177 | (% class="box" %) | ||
178 | ((( | ||
179 | (% style="color:#000000" %)##prun | ||
180 | /sbin/reboot## | ||
181 | ))) |