Artikel mit Tag dhcp

netplan unter Ubuntu Server 18.04 LTS konfigurieren oder entfernen

Seit einiger Zeit stellt Canonical für seine Distributionen die Netzwerkkonfiguration via netplan bereit.

Mit der Einführung der Serverversion 18.04 LTS ist diese fester Bestandteil der Long Term Support Edition.

Doch wo ist der Unterschied zur alten Konfiguration und welche Befehle werden benötigt?

netplan.iologo

netplan.io

Anders als die alten Netzwerkkonfigurationsdateien, beruht netplan auf der YAML Syntax. Außerdem werden als Renderer Networkmanager (Desktop), sowie system-networkd (Server) unterstützt.

Die Funktion ist relativ schnell erklärt: Beim Bootvorgang wird aus allen yaml Dateien  /etc/netplan/*.yaml eine Konfiguration generiert und unter /run abgelegt.

Die Konfiguration lässt sich aber auch im laufenden Betrieb anpassen.

Eine klassische Konfigurationsdatei /etc/netplan/01-netcfg.yaml mit fester IP-Adresse würde wie folgt aussehen:

system
network:
        version: 2
        renderer: networkd
        ethernets:
                eth0:
                        dhcp4: no
                        dhcp6: no
                        addresses: [192.169.1.100/16]
                        gateway4: 192.169.1.1
                        nameservers:
                                search: [itrig.lokal]
                                addresses:
                                    - "1.1.1.1"
                                    - "4.4.4.4"

Als Renderer ist in diesem Fall networkd hinterlegt, es kann aber genauso renderer: NetworkManager angegeben werden, beispielsweise bei einem Desktop Betriebssystem.

Die Notation des Subnetzes erfolgt hier im CIDR Format. Als kleine Hilfestellung hier eine Tabelle wink

Prefix   | Subnet mask IPv4 | Subnet mask IPv6
/24      | 255.255.255.0    | 11111111.11111111.11111111.00000000
/25      | 255.255.255.128  | 11111111.11111111.11111111.10000000
/26      | 255.255.255.192  | 11111111.11111111.11111111.11000000
/27      | 255.255.255.224  | 11111111.11111111.11111111.11100000
/28      | 255.255.255.240  | 11111111.11111111.11111111.11110000
/29      | 255.255.255.248  | 11111111.11111111.11111111.11111000
/30      | 255.255.255.252  | 11111111.11111111.11111111.11111100
/31      | 255.255.255.254  | 11111111.11111111.11111111.11111110
/32      | 255.255.255.255  | 11111111.11111111.11111111.11111111

Um die neue Konfiguration zu generieren und anzuwenden werden folgende Befehle verwendet.

sudo netplan generate
sudo netplan apply

Eine Kontrolle kann mit neuen

sudo netplan try

sudo netplan --debug apply

sudo netplan config show

oder alternativ auch mit alten Befehlen erfolgen.

ip a

Hier gilt zu beachten, dass netplan apply keine virtuellen Geräte wie Netzwerkbrücken oder Netzwerkbündel entfernt, auch wenn sie nicht mehr in der Netplan Konfiguration stehen.

Hier muss momentan noch mit ip link delete dev bond0 operiert werden.

netplan.io

 

/etc/network/interfaces

Zum Vergleich eine alte Konfiguration, welche unter  /etc/network/interface zu finden ist.

auto lo eth0
iface lo inet loopback
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    network 192.168.1.0
    gateway 192.168.1.1
    #dns-nameservers 1.1.1.1 8.8.8.8
    dns-search itrig.lokal


netplan.io entfernen oder deaktivieren

Es besteht die Möglichkeit die oben beschriebene frühere Variante weiter zu verwenden. So bleibt eine alte Konfiguration beispielsweise bei einem Update von 16.04 auf 18.04 erhalten.

Bei einer Neuinstallation von 18.04 LTS kann ein Administrator ebenso auf die alte Variante schwenken, dazu muss das benötigte Paket installiert werden.

sudo apt-get install ifupdown

sudo apt -y purge netplan.io

Nun kann die Netzwerkkonfiguration unter /etc/network/interfaces abgelegt werden, sowie ein Neustart des Dienstes erfolgen.

sudo systemctl restart networking

[Update]

Zu Bedenken sind noch die DNS Settings, welche unter /etc/systemd/resolved.conf  abgelegt wurden, was sich unter Ubuntu 18.04 im Vergleich zu früher geändert hat.

Die Datei kann wie folgt modifiziert werden

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details

[Resolve]
DNS=8.8.8.8 1.1.1.1 8.8.4.4
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes

Nun den Dienst neu starten und die DNS Server überprüfen

sudo systemctl restart systemd-resolved.service
sudo systemd-resolve --status

Alternativ kann auch das resolv Paket installiert werden.

sudo apt install resolvconf

Danach kann die Datei /etc/resolvconf/resolv.conf.d/head editiert und angepasst werden.

# Make edits to /etc/resolvconf/resolv.conf.d/head.
nameserver 1.1.1.1 
nameserver 8.8.8.8
sudo service resolvconf restart

Nun sollten die Netzwerkeinstellungen wieder der von Ubuntu 16.04 LTS oder 14.04 LTS entsprechen.

Host Only Netzwerk mit dem VMware Player - So ändert man den DHCP Adressbereich

Wenn auf dem eigenen Rechner eine virtuelle Maschine läuft und ein Netzwerk über eine "Host only" Verbindung aufgerufen werden soll, muss der IP Adressbereich des virtuellen Servers mit dem des lokalen Rechner übereinstimmen.

Der VMware Player installiert automatisch zwei virtuelle Netzwerkschnittstellen (VMware Network Adapter VMnet1 und VMware Network Adapter VMnet8) wobei erstere (VMnet1) für DHCP geeignet ist und (VMnet8) für NAT Dienste.

Beide Services werden zusätzlich als Windows Dienste hinterlegt und können bei Bedarf in der Windows Systemverwaltung abgeschaltet werden. Es kann jedoch vorkommen, dass der DHCP Dienst der ersten Netzwerkkarte benötigt wird, aber ein genauer Adressbereich bedient werden muss. Mit wenigen Eingriffen kann dieser IP Bereich neu definiert werden. Im ersten Schritt muss dazu mit "regedit.exe" die Registry geöffnet und ein Schlüssel angepasst werden.

Virtuellen DHCP Adressbereich anpassen

Nach öffnen der Registry navigiert man zuerst zu folgendem Schlüssel

  • \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ VMnetDHCP\Parameters\VirtualEthernetSegments\ 

und muss nun entschieden welche Netzwerkkarte editiert werden soll (VMnet1 oder VMnet2). In unserem Fall wählen wir die erste aus

 

  • \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ VMnetDHCP\Parameters\VirtualEthernetSegments\1\HostIpAddress\01dea8c0

vmware-dhcp-anpassen

Wie zu erkennen ist setzt sich die IP Adresse auf hexadezimalen Werten zusammen. Diese können einfach über den windowseigenen Taschenrechner im wissenschaftlichen Modus errechnet werden (zwischen Dezimal und Hex hin und her schalten). So steht in unserem Beispiel der Wert 0 x 0328a8c0 für (Achtung Rückwärts lesen):

  • c0 = 192
  • a8 = 168
  • 28 = 40
  • 03 = 3

192.168.40.3

Zur Übung ein weiteres Beispiel der Wert 0 x 01dea8c0 steht für

  • c0 = 192
  • a8 = 168
  • de = 222
  • 01 = 1

192.168.222.1

Nachdem die gewünschte Adresse definiert wurde nun der schwere Teil erledigt ist, muss unter Windows noch folgende Datei angepasst werden  "C:\ProgramData\VMware\vmnetdhcp.conf". Dort müssen die Netzwerkeinstellungen mit denen der Registry übereinstimmen. Wie im Beispiel kümmern wir uns hier nur um VMnet1.

  • Virtual ethernet segment 1
    • subnet 192.168.40.0 netmask 255.255.255.0 {
      • range 192.168.40.128 192.168.40.254;
      • option broadcast-address 192.168.40.255;
      • option domain-name-servers 192.168.40.1;
      • option domain-name "localdomain";
      • default-lease-time 1800;
      • max-lease-time 7200;
    • }
    • host VMnet1 {
      • hardware ethernet 00:50:56:C0:00:01;
      • fixed-address 192.168.40.3;
      • option domain-name-servers 0.0.0.0;
      • option domain-name "";

vmware-dhcp-anpassen-conf


Windows DHCP Server Einstellungen exportieren und importieren

Nach einem Serverausfall hatte ich gestern das Problem das ein DHCP Server (verteilt IP Adressen an die einzelnen PCs) ausgefallen war. Um bei einem Ersatzserver die alten Adresspools nicht wieder von Hand eintragen zu müssen, gibt es einen einfachen Befehl, der jegliche Einstellungen exportiert und sie danach auf einem Ersatzserver importiert.
Zu Hilfe nimmt man sich das Programm "netsh" (Network Shell). Dieses ist in Windows integriert und eigentlich dazu gedacht lokale Netzwerkeinstellungen zu konfigurieren. Folgende Befehle führt man nun einfach in der Eingabeaufforderung "cmd" des jeweiligen Windows Servers aus.

Ausgangsserver Export

netsh dhcp server export c:\temp\dhcp.txt all

Zielserver Import

netsh dhcp server import c:\temp\dhcp.txt all

DHCP