<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Ifupdown2_in_der_Praxis</id>
	<title>Ifupdown2 in der Praxis - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Ifupdown2_in_der_Praxis"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Ifupdown2_in_der_Praxis&amp;action=history"/>
	<updated>2026-11-02T23:17:20Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Ifupdown2_in_der_Praxis&amp;diff=73929&amp;oldid=prev</id>
		<title>Thomas.will: Praxisfall korrigiert: Eintrag war in interfaces, Apply hat ihn entfernt</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Ifupdown2_in_der_Praxis&amp;diff=73929&amp;oldid=prev"/>
		<updated>2026-10-25T17:48:35Z</updated>

		<summary type="html">&lt;p&gt;Praxisfall korrigiert: Eintrag war in interfaces, Apply hat ihn entfernt&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 25. Oktober 2026, 17:48 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l73&quot;&gt;Zeile 73:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 73:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Praxisfall: eine Adresse fehlt in der Konfiguration ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Praxisfall: eine Adresse fehlt in der Konfiguration ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Auf einem Proxmox-Host lief eine IPv6-Adresse auf einer SDN-verwalteten VLAN-Bridge, die aber &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nirgends &lt;/del&gt;in &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;einer &lt;/del&gt;Konfigurationsdatei &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;eingetragen &lt;/del&gt;war &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;– sie war irgendwann nur live per &lt;/del&gt;&amp;lt;code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ip addr add&lt;/del&gt;&amp;lt;/code&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gesetzt &lt;/del&gt;worden. Proxmox zeigte darum in der Weboberfläche für die ganze SDN-Zone einen roten Fehler.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Auf einem Proxmox-Host lief eine IPv6-Adresse auf einer SDN-verwalteten VLAN-Bridge, die aber in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;keiner &lt;/ins&gt;Konfigurationsdatei &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mehr auftauchte. Sie &lt;/ins&gt;war &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ursprünglich ordentlich in &lt;/ins&gt;&amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/etc/network/interfaces&lt;/ins&gt;&amp;lt;/code&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;eingetragen &lt;/ins&gt;worden &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;– stand dort aber irgendwann nicht mehr drin, lief auf dem Interface selbst jedoch munter weiter&lt;/ins&gt;. Proxmox zeigte darum in der Weboberfläche für die ganze SDN-Zone einen roten Fehler&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Die wahrscheinlichste Erklärung für das Verschwinden: Unter &#039;&#039;Node → Network&#039;&#039; schreibt Proxmox bei jedem Klick auf &quot;Apply Configuration&quot; die Datei &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; komplett neu – und zwar nur aus seiner eigenen Liste bekannter Interfaces (die physischen NICs, Bonds, die Haupt-Bridge). Eine von SDN zur Laufzeit erzeugte VLAN-Bridge wie &amp;lt;code&amp;gt;vmbr0vXXXX&amp;lt;/code&amp;gt; gehört nicht zu dieser Liste. Ein von Hand ergänzter Eintrag für so eine Bridge übersteht darum das nächste &quot;Apply&quot; in diesem Dialog nicht, selbst wenn er vorher jahrelang anstandslos funktioniert hat&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Befund mit &amp;lt;code&amp;gt;ifquery --check&amp;lt;/code&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Befund mit &amp;lt;code&amp;gt;ifquery --check&amp;lt;/code&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l91&quot;&gt;Zeile 91:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 93:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Die Lösung: eine eigene Datei, nicht die verwaltete ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Die Lösung: eine eigene Datei, nicht die verwaltete ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Proxmox &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;schreibt seine &lt;/del&gt;SDN-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Konfiguration in &lt;/del&gt;&amp;lt;code&amp;gt;/etc/network/interfaces.d/sdn&amp;lt;/code&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;und ersetzt diese Datei bei jedem Klick auf &quot;Apply&quot; komplett&lt;/del&gt;. Ein Eintrag von Hand &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dort wäre beim &lt;/del&gt;nächsten Apply &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wieder weg&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Zwei &lt;/ins&gt;Proxmox&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-Dialoge schreiben Netzwerkdateien komplett neu und sind damit als Ablageort für eigene Einträge ungeeignet: &#039;&#039;Node → Network&#039;&#039; mit &quot;Apply Configuration&quot; erzeugt &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; neu (nur aus seiner eigenen Geräteliste), und die &lt;/ins&gt;SDN-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Oberfläche erzeugt bei ihrem &quot;Apply&quot; &lt;/ins&gt;&amp;lt;code&amp;gt;/etc/network/interfaces.d/sdn&amp;lt;/code&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;neu&lt;/ins&gt;. Ein Eintrag von Hand &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in einer der beiden Dateien übersteht den &lt;/ins&gt;nächsten &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Klick auf &quot;&lt;/ins&gt;Apply&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; im jeweiligen Dialog nicht – ganz gleich, wie lange er vorher anstandslos lief&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Hauptdatei &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; liest aber alle Dateien in &amp;lt;code&amp;gt;/etc/network/interfaces.d/&amp;lt;/code&amp;gt; ein:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Hauptdatei &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; liest aber alle Dateien in &amp;lt;code&amp;gt;/etc/network/interfaces.d/&amp;lt;/code&amp;gt; ein:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-73927:rev-73929:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Ifupdown2_in_der_Praxis&amp;diff=73927&amp;oldid=prev</id>
		<title>Thomas.will: Neuer Artikel: ifupdown2, SDN-Praxisfall</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Ifupdown2_in_der_Praxis&amp;diff=73927&amp;oldid=prev"/>
		<updated>2026-10-25T17:35:17Z</updated>

		<summary type="html">&lt;p&gt;Neuer Artikel: ifupdown2, SDN-Praxisfall&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;ifupdown2&amp;#039;&amp;#039;&amp;#039; ist das Werkzeug, mit dem Debian und Proxmox VE die Netzwerkschnittstellen aus &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; aufbauen. Es ist der Nachfolger des klassischen &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt;-Pakets und bringt zwei Dinge mit, die im Praxisbetrieb viel wert sind: Teiländerungen am Netz ohne Verbindungsabbruch, und eine Prüfung, ob die laufende Konfiguration noch zu dem passt, was in den Dateien steht.&lt;br /&gt;
&lt;br /&gt;
== Woher es kommt ==&lt;br /&gt;
&lt;br /&gt;
Debian bringt standardmäßig weiter das alte &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; mit. &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; liegt seit Debian 10 als eigenes Paket in den Repos, ist aber nicht vorinstalliert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei wird das klassische &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; automatisch entfernt, denn beide vertragen sich nicht parallel.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Proxmox VE&amp;#039;&amp;#039;&amp;#039; setzt &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; dagegen von Haus aus ein, mit einem eigenen Fork (Paketname &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt;, Versionszusatz &amp;lt;code&amp;gt;+pmxNN&amp;lt;/code&amp;gt;). Der Grund: Proxmox baut darauf seine SDN-Funktion (Software Defined Networking) auf, die VLANs und virtuelle Netze live über die Oberfläche verwaltet.&lt;br /&gt;
&lt;br /&gt;
== Installation auf einem normalen Debian ==&lt;br /&gt;
&lt;br /&gt;
Vor der Installation prüfen, was gerade läuft:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dpkg -l | grep -E &amp;quot;ifupdown2?\b&amp;quot;&lt;br /&gt;
systemctl status networking&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Installation selbst ist ein einziger Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei entfernt &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; automatisch das alte &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt;-Paket (die beiden können nicht gleichzeitig installiert sein) und übernimmt die bestehende &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; unverändert – die Syntax ist weitgehend kompatibel.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Vorsicht bei einem entfernten Server (SSH):&amp;#039;&amp;#039;&amp;#039; Der Wechsel selbst reißt die Verbindung normalerweise nicht ab, weil &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; beim Einrichten die aktuell aktiven Schnittstellen übernimmt, statt sie neu aufzubauen. Trotzdem gilt wie bei jeder Netzwerkänderung aus der Ferne: vorher eine Konsole bereithalten (IPMI, Hypervisor-Konsole, physischer Zugang), falls &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; Fehler enthält, die erst beim nächsten &amp;lt;code&amp;gt;ifreload&amp;lt;/code&amp;gt; oder Neustart auffallen.&lt;br /&gt;
&lt;br /&gt;
Nach der Installation die Probe aufs Exempel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ifquery --check -a      # alle Schnittstellen auf einen Blick&lt;br /&gt;
ifreload -a              # übernimmt Änderungen, ohne unveränderte Schnittstellen anzufassen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wer ganz sichergehen will, plant den ersten &amp;lt;code&amp;gt;ifreload -a&amp;lt;/code&amp;gt; in einem Wartungsfenster und hat eine zweite Zugangsmöglichkeit parat.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Auf Proxmox VE&amp;#039;&amp;#039;&amp;#039; ist &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; schon Teil der Standardinstallation, dort ist nichts weiter zu tun.&lt;br /&gt;
&lt;br /&gt;
== Die wichtigsten Befehle ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Zweck&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ifup&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;ifdown&amp;lt;/code&amp;gt; || einzelne Schnittstelle hoch- bzw. herunterfahren&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ifreload -a&amp;lt;/code&amp;gt; || alle Schnittstellen neu einlesen, nur das anwenden, was sich geändert hat – kein harter Netz-Neustart&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ifquery &amp;amp;lt;iface&amp;amp;gt;&amp;lt;/code&amp;gt; || zeigt, was für diese Schnittstelle konfiguriert &amp;#039;&amp;#039;ist&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ifquery --check &amp;amp;lt;iface&amp;amp;gt;&amp;lt;/code&amp;gt; || vergleicht Konfiguration gegen den tatsächlich laufenden Zustand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Der letzte Befehl ist im Alltag der nützlichste. Ein Beispiel von einem funktionierenden Proxmox-Bridge-Interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# ifquery --check vmbr0v3233&lt;br /&gt;
auto vmbr0v3233&lt;br /&gt;
iface vmbr0v3233                                                    [pass]&lt;br /&gt;
	bridge-ports bond0.3233 pr_vlan3233 (tap5008i9)             [pass]&lt;br /&gt;
	bridge-fd 0                                                 [pass]&lt;br /&gt;
	bridge-stp no                                               [pass]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jede Zeile wird einzeln geprüft und mit &amp;lt;code&amp;gt;[pass]&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;[fail]&amp;lt;/code&amp;gt; markiert. Das ist weit genauer als ein bloßes &amp;quot;Interface ist up&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Praxisfall: eine Adresse fehlt in der Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Auf einem Proxmox-Host lief eine IPv6-Adresse auf einer SDN-verwalteten VLAN-Bridge, die aber nirgends in einer Konfigurationsdatei eingetragen war – sie war irgendwann nur live per &amp;lt;code&amp;gt;ip addr add&amp;lt;/code&amp;gt; gesetzt worden. Proxmox zeigte darum in der Weboberfläche für die ganze SDN-Zone einen roten Fehler.&lt;br /&gt;
&lt;br /&gt;
Der Befund mit &amp;lt;code&amp;gt;ifquery --check&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# ifquery --check vmbr0v3240&lt;br /&gt;
auto vmbr0v3240&lt;br /&gt;
iface vmbr0v3240                                                    [fail]&lt;br /&gt;
	bridge-ports bond0.3240 pr_vlan3240 (tap5008i1)             [pass]&lt;br /&gt;
	bridge-fd 0                                                 [pass]&lt;br /&gt;
	bridge-stp no                                               [pass]&lt;br /&gt;
	address 2001:db8:f240::aaaa/64                          [fail]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Adresse lief, war aber nicht deklariert – &amp;lt;code&amp;gt;ifquery&amp;lt;/code&amp;gt; hat genau das aufgedeckt, Zeile für Zeile.&lt;br /&gt;
&lt;br /&gt;
=== Die Lösung: eine eigene Datei, nicht die verwaltete ===&lt;br /&gt;
&lt;br /&gt;
Proxmox schreibt seine SDN-Konfiguration in &amp;lt;code&amp;gt;/etc/network/interfaces.d/sdn&amp;lt;/code&amp;gt; und ersetzt diese Datei bei jedem Klick auf &amp;quot;Apply&amp;quot; komplett. Ein Eintrag von Hand dort wäre beim nächsten Apply wieder weg.&lt;br /&gt;
&lt;br /&gt;
Die Hauptdatei &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; liest aber alle Dateien in &amp;lt;code&amp;gt;/etc/network/interfaces.d/&amp;lt;/code&amp;gt; ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
source /etc/network/interfaces.d/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine zusätzliche, eigene Datei mit anderem Namen bleibt von SDN unberührt und ergänzt dieselbe Schnittstelle nur um eine weitere Adressfamilie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# /etc/network/interfaces.d/custom-vmbr0v3240&lt;br /&gt;
iface vmbr0v3240 inet6 static&lt;br /&gt;
	address 2001:db8:f240::aaaa/64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kein &amp;lt;code&amp;gt;ifreload&amp;lt;/code&amp;gt; nötig, um das zu prüfen – &amp;lt;code&amp;gt;ifquery --check&amp;lt;/code&amp;gt; liest die Dateien einfach neu ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# ifquery --check vmbr0v3240&lt;br /&gt;
iface vmbr0v3240 inet6 static                                       [pass]&lt;br /&gt;
	address 2001:db8:f240::aaaa/64                          [pass]&lt;br /&gt;
&lt;br /&gt;
auto vmbr0v3240&lt;br /&gt;
iface vmbr0v3240                                                    [pass]&lt;br /&gt;
	bridge-ports bond0.3240 pr_vlan3240 (tap5008i1)             [pass]&lt;br /&gt;
	bridge-fd 0                                                 [pass]&lt;br /&gt;
	bridge-stp no                                               [pass]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alles auf &amp;lt;code&amp;gt;[pass]&amp;lt;/code&amp;gt;, und die Adresse übersteht jetzt auch einen Neustart des Hosts, ohne dass ein künftiges SDN-&amp;quot;Apply&amp;quot; sie wieder löscht.&lt;br /&gt;
&lt;br /&gt;
== Merksatz ==&lt;br /&gt;
&lt;br /&gt;
Wer auf einem Proxmox- oder Debian-System mit &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; eine Schnittstelle von Hand ergänzen will, die auch von einem automatischen System (SDN, einem Konfigurationswerkzeug, einem Skript) verwaltet wird: niemals in die verwaltete Datei schreiben, sondern eine eigene Datei danebenlegen. &amp;lt;code&amp;gt;ifquery --check&amp;lt;/code&amp;gt; zeigt zuverlässig, ob am Ende alles zusammenpasst.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netzwerk]]&lt;br /&gt;
[[Kategorie:Proxmox]]&lt;br /&gt;
[[Kategorie:Linux]]&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>