ESXi 6.0 auf DS57U3

als Firewall mit pfSense und Debian als WLAN-AP

Mir ging mein alter ESXi-Server (mit Intel Q6600) schon auf den Keks – laut, wenig RAM und kein VT-d/VT-x für Spielereien und relativ hoher Stromverbrauch. Lange habe ich gesucht und mich schließlich für einen stromsparenden Shuttle DS57U3 Nettop entschieden. Dieser ist nicht allzu teuer und dementsprechende Hinweise, dass darauf ESXi läuft habe ich zuvor auch gefunden.

Hardware

1x Shuttle DS57U3
1x Samsung SSD 850 EVO 500GB, mSATA
2x Kingston ValueRAM KVR16LS11/8

Voraussetzungen für diese “Anleitung”

Grundwissen mit ESXi, Debian und pfSense. Die Anleitung ist eher so als Erinnerung gedacht, falls ich die Kiste wieder mal neu aufsetzen muss. Vielleicht ist’s ja für jemand anderen auch interessant :o) – ich übernehme selbstverständlich keine Verantwortung für etwaige Schäden, etc. die durch meine “Vorschläge” enstehen könnten.

Installation von ESXi 6.0

Dafür muss man sich leider ein Custom-ISO erstellen – zum Beispiel mit dem ESXi-Customizer-PS-v2.4.ps1[1] Script unter Windows 10. Zuvor die aktuelle VMware PowerCLI herunterladen[2] und installieren, dann das Customizer-Script einfach besorgen. Unter Windows 10 nun ein PowerShell-Fenster öffnen und in den entsprechenden Ordner wechseln wo man das Script gespeichert hat. Damit man dieses Script auch ausführen kann, muss die “Execution Policy” für die Ausführungszeit angepasst werden.

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

Benötigte Treiber

Im Vibsdepot[3] findet man eine Liste aller verfügbaren ESXi packages:
* Die beiden Netzwerkkarten sollten zwar kompatibel zu ESXi 6.0 sein, aber durch einen kleinen Fehler wird die zweite NIC nicht richtig erkannt. Dafür wird ein angepasster “net-igb”-Treiber benötigt[4]
* Da von VMware auch viele AHCI-Treiber rausgeschmissen wurden, braucht man ein zusätzliches “sata-xahci” Paket[5]

ISO erstellen

Nachdem die ExecutionPolicy angepasst ist, kann man das Script ausführen:

.\ESXi-Customizer-PS-v2.4.ps1 -v60 -vft -load sata-xahci,net-igb

Die aktuellste ISO mit allen Patches und den angegebenen Treibern wird heruntergeladen und erstellt. Diese ISO anschließend am einfachsten auf CD brennen, davon am DS57U3 booten und schließlich ESXi installieren.

Danach nicht vergessen die Execution Policy wieder zurückzusetzen:

Set-ExecutionPolicy Undefined -Scope CurrentUser

Vorbereitung von ESXi

Die Initialkonfig, nehme ich an, brauche ich nicht erklären, die ist recht einfach und dazu gibt es schon genügend Anleitungen :o)

WebGUI installieren

Für ein einfacheres Management hab ich mir das “ESXi Embedded Host Client”-Fling[6] installiert. Dieser Webclient funktioniert schon recht gut, und er wird auch unter ESXi 6.0u2 vermutlich standardmäßig mitgeliefert werden.
Leider sind noch ein paar Sachen und Dinge zu beachten:
* Die WebGUI funktioniert anscheinend nur mit einem lizenzierten (oder Trial-Lizenz) ESXi ohne Probleme
* Mit der Hardware-Passthrough Konfiguration gibt es noch ein Probleme – später mehr dazu

Hardware Passthrough für die WLAN-Karte aktivieren (besser über normalen VMware Client – weshalb? Siehe weiter unten)

Im WebGUI im Navigator auf “Manage” klicken, im Hauptfenster den “Hardware”-Tab wählen und vermutlich ganz unten bei “Realtek Semiconductor Co., Ltd. RTL8188EE…” das Häkchen setzen. Anschließend “Toggle passthrough” bestätigen und den Host rebooten.

ESXi Virtual Switch anlegen/konfigurieren

Neuen Switch und Port Gruppe anlegen

Im Navigator in der WebGUI auf “Networking” klicken und “Virtual Switches” wählen. Hier noch mindestens einen Switch mit Uplink zur zweiten Netzwerkkarte hinzufügen. Danach auf “Port groups” wechseln und eine Gruppe zum Bsp. mit Namen WAN erstellen. Als vSwitch den neu erstellten wählen.

Promiscuous Mode am Ersten Switch aktivieren

Im Navigator auf “Networking” und anschließend “Virtual switches” klicken. Den vSwitch0 wählen, dieser ist für unser LAN und für das Management Interface verantwortlich. Diesen Switch editieren und unter “Security” den Punkt “Accept” aktivieren. Dies ist später für den Debian WLAN-AP notwendig – sonst geht von der pfSense kein DHCP-OFFER durch.

Anlegen der VMs

diese müssen nicht allzugroß bemessen sein, jeweils eine CPU und maximal 1GB RAM wählen. Als Festplattengröße kann der vorgeschlagene Wert verwendet werden. Achtung, in der WebGUI werden diese im Thin-Format angelegt. Wenn man das nicht will, auf das entsprechende Symbol klicken damit die erweiterten Optionen zu der Festplatte aufklappen und “Thick lazy zeroed” auswählen.
Bei der Debian VM nun noch als zusätzliches Device die WLAN-Karte auswählen – hier passiert leider ein Fehler über die WebGUI – dies eher über den normalen VMware Client erledigen. Es wird nämlich in der vmx-File eine falsche VendorID eingetragen. Über die WebGUI wurde mir statt pciPassthru0.deviceId = “0x8179” nämlich pciPassthru0.deviceId = “0xffff” eingetragen.
Achtung, bei VMs mit Hardware Passthrough muss der vollständige RAM der Maschine reserviert werden und diverse Features (vMotion, Snapshots, …) funktionieren nicht mehr im Betrieb!

pfSense installieren

Einfach die amd64-ISO[7] runterladen und normal installieren. Enstprechend die Konfig vornehmen und fertig. Ich hab im LAN die IP-Range 192.168.100.0/24 verwendet, das LAN-Interface hat die 192.168.100.10 und der DHCP-Server ist auch aktiv.

Debian installieren

Hier reicht für die Installation die netinst-ISO und man braucht für die Installation nur den SSH-Server und die Standardpakete. Bei der Installation wird die WLAN-Karte schon erkannt – hier einfach “Continue” wählen.

Debian konfigurieren

Damit die WLAN-Karte richtig funktioniert, muss ein non-free Package[8] installiert werden (siehe Link [8]). Trotzdem gibt es aber mit dem Standard-Kernel (war zu dieser Zeit 3.16….) von Debian noch Probleme (extrem niedrige Bandbreite). Ich hab diese “behoben”, indem ich mir von den Backport-Packages[9] für Jessie den 4.2er Kernel installiert habe. In /etc/apt/sources.list folgende Zeilen hinzufügen.

# Backports repository
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free

danach wie immer ein apt-get update und anschließend folgende Pakete installieren:

apt-get install linux-image-4.2.0-0.bpo.1-amd64 vim sudo firmware-realtek hostapd bridge-utils wavemon wireless-tools rfkill tcpdump
hostapd Konfiguration

In der Regel bin ich nach einer gefundenen Anleitung (siehe Link [10]) vorgegangen

* in der File /etc/default/hostapd folgendes gesetzt

DAEMON_CONF="/etc/hostapd/hostapd.conf"

* eine /etc/hostapd/hostapd.conf Datei mit folgender Konfig erstellt:

# wireless interface name
interface=wlan0

# bridge name
bridge=br0

# driver
driver=nl80211

# country
country_code=AT

# ssid
ssid=WindmillsDoNotWorkThatWay

# wlan mode
hw_mode=g

# channel
channel=1

# security
wpa=2

# wpa passphrase
wpa_passphrase=SuperWahnsinnigGeheimesPasswort!

# key management algorithm
wpa_key_mgmt=WPA-PSK

# cipher suites
wpa_pairwise=TKIP
rsn_pairwise=CCMP
 
# shared key authentication
auth_algs=1 

# accept all macs
macaddr_acl=0

* dann die /etc/network/interfaces Datei editiert

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo br0
iface lo inet loopback

# wireless wlan
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual

# The primary network interface
allow-hotplug eth0
iface eth0 inet manual

# setup bridge
iface br0 inet static
 bridge_ports wlan0 eth0
 address 192.168.100.252
 netmask 255.255.255.0
 network 192.168.100.0
 gateway 192.168.100.10
 dns-nameservers 192.168.100.10

Jetzt kann rebootet werden.

Und das sollt alles gewesen sein. So hat man einen schönen ESXi den man als Firewall, AccessPoint und Spielwiese für andere Sachen und Dinge verwenden kann.

Troubleshooting Tips

Für’s Debuggen hilft es sehr hostapd einfach auf der Console zu öffnen: hostapd /etc/hostapd/hostapd.conf
Ansonsten findet man alle Logeinträge in /var/log/syslog

Wenn man von der pfSense keine DHCP-Adresse bekommt auch hier mal in die Logs schauen und eventuell checken ob auch wirklich der Promiscuous Mode bei der richtigen NIC am ESXi gesetzt ist.

Unter Debian mit “tcpdump -n port 67 or port 68” überprüfen ob auch DHCP-Anfragen raus und reingehen.

Ob sich was im WLAN tut kann man auch schön mit wavemon sehn.

Mehr Power?

Dann vielleicht mit Shuttle’s DH170 und Intel Core i7 :o) – http://www.shuttle.eu/de/produkte/slim/dh170/

Links

[1] http://www.v-front.de/p/esxi-customizer-ps.html
[2] http://www.vmware.com/go/powercli
[3] https://vibsdepot.v-front.de/wiki/index.php/List_of_currently_available_ESXi_packages
[4] http://www.v-front.de/2015/08/a-fix-for-intel-i211-and-i350-adapters.html
[5] http://www.v-front.de/2013/11/how-to-make-your-unsupported-sata-ahci.html
[6] https://labs.vmware.com/flings/esxi-embedded-host-client
[7] https://www.pfsense.org/download/mirror.php?section=downloads
[8] https://wiki.debian.org/rtl819x#rtl8188ee
[9] https://wiki.debian.org/Backports
[10] http://www.cyberciti.biz/faq/debian-ubuntu-linux-setting-wireless-access-point/

Weitere interessante Links

[a] https://nims11.wordpress.com/2012/04/27/hostapd-the-linux-way-to-create-virtual-wifi-access-point/
[b] http://www.linuxquestions.org/questions/debian-26/where-is-iwconfig-command-365880/
[c] http://www.cyberciti.biz/tips/linux-find-out-wireless-network-speed-signal-strength.html
[d] https://github.com/lwfinger/rtlwifi_new/issues/4

Getagged mit: , , , , , , , , ,
Ein Kommentar zu “ESXi 6.0 auf DS57U3
  1. Maik sagt:

    Vielen Dank, hat mir sehr weiter geholfen =)

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.