| << | October 2026 | |||||
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| 28 | 29 | 30 | 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | 1 |
/*hide the default jspwiki logo */
a.logo { border:none; text-indent:-99em;}
a.logo b:before { content:""; }
/* put the clean-blue logo, attached to this page */
a.logo {
background: url(
);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
height: 60px;
width: 180px;
/* add a fancy button like effect */ /*box-shadow:0 0 .25em white; border-radius:2em; background-color: rgba(255,255,255,0.15); */ }
Personal#
- Olafs Bio
- ba,pnt - Olafs Blog
- This setup
- About
- Het Bruine Leven
Systems#
Docs and Hints#
Downloads#
Site#
Server Time
2026-10-19 11:36:22 CEST


Die EWE-Tel verwendet fuer ihre eigenen Glasfaser Anschluesse die AON Technik. Dazu habe ich bei fs.com den passenden SFP gekauft: https://www.fs.com/de/products/23667.html?attribute=96201&id=4705827
(SFP-GE10KT13R14, 1000BASE-BX-U BiDi 1310nm-TX/1490nm-RX 10km Simplex LC/UPC SMF)
Ich habe den SFP in slot ge-0/0/15 eingesetzt und die Faser aufgesteckt. Die EWE-Tel moechte auch gerne VLAN 7 - zumindest in meinem Fall - sprechen. Daher muessen wir VLAN-Tagging (802.1q) aktivieren.
Auf der Juniper muss man die Config anpassen:
Fuer SIP Verbindungen sollte man das SIP Application Level Gateway deaktivieren, das macht meisst die SIP Verbindung kaputt, statt zu helfen:
Achtung!#
Sowohl fuer l2-learning global-mode switching als auch fuer das disable aufs SIP ALG musste ich die Firewall neu booten:Ohne den reboot habe ich von der SRX keine PPPoE Verbindung bekommen, die Symtome waren das ich nur ausgehende PPPoE PADI Pakete gesehen habe, aber keine PADO und ueberhaupt garkeinen eingehenden Traffic.
Nach dem reboot tut jetzt alles wie gewohnt. Natuerlich muss der geneigte Leser hier noch NAT und Firewall Regeln konfigurieren, das ist aber dann ggf. wieder sehr auf eure Umgebung anzupassen, so das ich behaupte ihr schafft das schon :)
I had to replace a server hardware, since the systemboard of my old X4270M2 decided to die. So I bought a X8-2L and migrated all disks and PCIe cards to it and booted. I will spare you all the hassle with old broken Firmware on the X8-2L which I solved by updating.
But in the end I got stuck in a scenario where I couldn't see all devices. Two NVMes and the Dual 10G Ethernet card where unable to access. The drivers wouldn't attach with update_drv/add_drv - even though I found the cards in prtconf -dD and with /usr/lib/pci/pcieadm show-devs .
This was very confusing and even devfsadm -Cv was unable to solve it. So I went the rough way and deleted /etc/path_to_inst which maps the pci paths to drivers. After rebooting with boot -avrw the situation was exactly the same.
I did boot also from an OpenIndiana Text Install USB stick, dropped into a shell and was able to see all devices, so I knew that this is not a hardware issue, but something with illumos device management. I was a bit lost, because up to my knowledge (until yesterday ;)) there was no other location for persistent device information.
And then I stumbled upon /etc/devices/ ...
So I created a tar from it and then deleted the files (and kept /etc/devices/dli).
Then I re-created the boot-archive with bootadm update-archive -v and rebooted.
After that reboot all devices became accessible again.
The cursor sizes were not a big deal, since NsCDE has a nice font selector, other things became a bit more difficult like firefox (about:config, layout.css.devPixelsPerPx=1.4).
For LibreOffice I needed to set SAL_FORCEDPI=200 in the environment, for generic QT applications I had to set QT_SCALE_FACTOR=2.
For GTK applications, I changed ~/.gtkrc-2.0 and ~/.config/gtk-3.0/settings.init to include especially
For the mouse cursors it was pretty complicated. NsCDE ships some custom cursors in /usr/local/share/NsCDE/icons/cursors which I have resized with ImageMagick.The basic cursor instead got changed with some other ways. In $HOME/.fonts/ I have created a file called fonts.alias, the file contains:
Query with xset q and look at the Font Path. In my case $HOME/.fonts was not in it, so I would add it with xset +fp ~/.fonts .Initially you want to rehash your font cache: For testing you could now set your new cursor:However you need to persist this in ~/.NsCDE/Xset.conf, append the following two lines to it:
Log out and log in again and enjoy big cursors.I got myself a ThinkPad T470 and unfortunately the WiFi chip is not supported by illumos. Since my kernel driver porting skills are not so good ;) I decided to do a different thing.
I'm going to run a bhyve VM, pass through the WiFi card to it, and run OpenWRT inside the VM.
Download OpenWRT#
Go to https://downloads.openwrt.org/releases/Setup the bhyve zone#
Now we need to create the VNIC, the disk and the passthru device.
The Disk ist easy:
Now, let's set up the networking. We are going to create an Etherstub with two interfaces, one for the laptops global zone and one for the router vm.
First ensure that nwam (NetWork AutoMagic) is turned off:
Now we will create the Etherstub (SDN switch) and the virtual NICs:
We need to create an IP interface, configure a static IP on that interface and set the new default route persistent ("route -p") to the later configured OpenWRT:
Boot OpenWRT the first time#
Open two different xterms. In the first we install the zone and then open the zones console:In the other xterm we boot up the zone:
After ca. 60 seconds or even less, OpenWRT should be booted completely and if you hit "return" in the zones console, you should get the OpenWRT root shell:
At this prompt, we need to configure the Ethernet first. VNICs on illumos have a MTU of 9000 by default, so we should configure the same MTU for the eth0 in the OpenWRT config also. At the same time we change the LAN IP to the one we chose before. For that we open with vi the /etc/config/network file on the OpenWRT and change the relevant parts:
config device option name 'br-lan' option type 'bridge' list ports 'eth0' option mtu '9000' option mtu6 '9000' config interface 'lan' option device 'br-lan' option proto 'static' option netmask '255.255.255.0' option ip6assign '60' option ipaddr '172.24.0.250' config device option name 'eth0' option mtu '9000' option mtu6 '9000'after that reboot the OpenWRT instance:
After that step, you need to configure the wifi card correctly, for that you need to install the correct packages to OpenWRT with okpg, please consult the OpenWRT documentation.
After setting up this stuff, I realised that DrScream also already did something very similar here: https://www.cyber-tec.org/2019/05/29/using-bhyve-pci-passthrough-on-omnios/
Overview#
The scenario is as following, we have two physical machines:Both run OpenIndiana
.
On "sin" we run multiple zones for LDAP, DNS, DHCP, etc...I'm not going into full detail here.
The host "spin" is actually empty. It's an old Sun X4270 M2 machine with 2 Sockets, 6 Cores X5675 @ 3.07GHz and 144GB RAM. The chassis has twelve disks and I also added two (consumer) NVMe's on PCIe adapters.
Two disks form a ZFS boot mirror (rpool), the other disks form a raidz stripe (localstripe) which has 2 hotspares, one slog device (NVMe) and one l2arc (also NVMe):
The disks are standard 600GB SAS II drives.The machine has a 10G ixgbe NIC, where I configured the VNICs on.
Setup Zones#
General#
I took an ansible playbook to create the bhyve zones, but to have it more generic I'll show you the zone config here. All zones have the same config, except for bastion, this has less RAM and CPU.For OpenShift we need to have:
Bastion#
The bastion will be used to run the OpenShift installer, which is only available for Linux/x64 and MacOS X/x64.The zone config for the bastion looks like this:
I took a RedHat Enterprise Linux 8.4 DVD, but CentOS or Fedora would do the job also. This zone gets access to a ZVOL:
No other special attributes are set on this, so that's it. Start booting the zone, attach socat to the vnc socket and install Linux the usual way:
LoadBalancer#
OpenShift runs on different nodes (bhyve VMs) and we need an external LoadBalancer to access the Kubernetes API and the OpenShift Router. In production environment you would want to make that LoadBalancer HA with VRRP, but in this scenario we go the simple way.First set up a standard ipkg OI zone (I did that on the other Hardware, "sin"):
We don't need anything fancy.Once the api zone is installed, we install the OpenIndiana integrated LoadBalancer (ilb) and start it:
The configuration I use looks like the following:
Save this output to a file and import it with "ilbadm import-cf -p filename". I use full NAT here for Load-Balancing as the API loadbalancer and the node are in the same IP range.
bootstrap, master and worker zones#
These zones look identical, just replace the host name: They all have access to their own ZVOL:Thankfully bhyve will try PXE if the bootdisk ZVOL is empty, so we don't have to setup additional things here.
Install all the zones with "zoneadm -z zonename install", which should be pretty fast for bhyve zones. Just don't boot them up yet.
We will follow the OpenShift installation instruction for UPI installations, see the appropriate docs for your OpenShift Version on https://docs.openshift.com
.
Installing OpenShift#
Download required material#
You need to login to https://cloud.redhat.comSave these files on the bastion node which we created earlier.
Setup up install-config.yaml#
Create a empty directory as a non-root user somewhere, inside this directory create a file called "install-config.yaml":[localadm@bastion ~]$ cat install-config.yaml apiVersion: v1 baseDomain: home.eenfach.de compute: - hyperthreading: Enabled name: worker replicas: 2 controlPlane: hyperthreading: Enabled name: master replicas: 3 metadata: name: ocp4 networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 networkType: OpenShiftSDN serviceNetwork: - 172.30.0.0/16 platform: none: {} fips: false pullSecret: | {paste pull secret in here} sshKey: | {paste a ssh public key in here}Copy this file into a backup location somewhere, as the openshift-install command will consume the file and delete it. If you need to restart, you can use the backup.
Create Ignition Files#
After creating the install-config.yaml we can process this and create ignition files for Red Hat CoreOS. We first create manifests (which you could review or customize, but we don't) and then we create ignitions:
The ignition files (*.ign) need to be pushed to a web-server that is accessible for the OpenShift nodes.
Set up PXE boot#
The relevant part of my dhcpd4.conf looks like this:subnet 172.18.0.0 netmask 255.255.252.0 { range 172.18.3.101 172.18.3.101; option routers 172.18.0.200; option domain-name "srv.home.eenfach.de"; option domain-search "srv.home.eenfach.de","home.eenfach.de","eenfach.de"; option domain-name-servers 172.18.1.53; option subnet-mask 255.255.224.0; option ntp-servers 192.53.103.108,192.53.103.104,192.53.103.103; group { filename "shimx64.efi"; next-server 172.18.1.67; host master00.ocp4.home.eenfach.de { hardware ethernet 2:8:20:61:3b:13; fixed-address 172.18.3.10; option host-name "master00"; [...] } } }Of course you want to put all masters, workers and the bootstrap in there also.Then you need to get the shimx64.efi and grubx64.efi from the RHEL shim-x64.x86_64 rpm. I just installed it on the bastion and copied it to the /tftpboot on my DHCP Server.
The reason is that bhyve boots UEFI only and the classic pxelinux from RHEL only supports BIOS boots, so we use the grub shim boot.
Create grub configs for every MAC.
An example for a Master:
root@skirnir:/tftpboot# cat grub.cfg-01-02-08-20-22-c1-10 menuentry 'Master: Install Red Hat Enterprise Linux CoreOS' --class fedora --class gnu-linux --class gnu --class os { linuxefi rhcos-4.6.1-x86_64-live-kernel-x86_64 coreos.inst.install_dev=/dev/vda coreos.live.rootfs_url=http://172.18.1.80/install/ocp4/rhcos-4.6.1-x86_64-live-rootfs.x86_64.img coreos.inst.ignition_url=http://172.18.1.80/install/ocp4/ignitions/master.ign console=tty0 console=ttyS0 initrdefi rhcos-4.6.1-x86_64-live-initramfs.x86_64.img }An example for a worker:
root@skirnir:/tftpboot# cat grub.cfg-01-02-08-20-12-51-4d menuentry 'Worker: Install Red Hat Enterprise Linux CoreOS' --class fedora --class gnu-linux --class gnu --class os { linuxefi rhcos-4.6.1-x86_64-live-kernel-x86_64 coreos.inst.install_dev=/dev/vda coreos.live.rootfs_url=http://172.18.1.80/install/ocp4/rhcos-4.6.1-x86_64-live-rootfs.x86_64.img coreos.inst.ignition_url=http://172.18.1.80/install/ocp4/ignitions/worker.ign console=tty0 console=ttyS0 initrdefi rhcos-4.6.1-x86_64-live-initramfs.x86_64.img }And an example for the bootstrap node:
root@skirnir:/tftpboot# cat grub.cfg-01-02-08-20-3b-26-02 menuentry 'Bootstrap: Install Red Hat Enterprise Linux CoreOS' --class fedora --class gnu-linux --class gnu --class os { linuxefi rhcos-4.6.1-x86_64-live-kernel-x86_64 coreos.inst.install_dev=/dev/vda coreos.live.rootfs_url=http://172.18.1.80/install/ocp4/rhcos-4.6.1-x86_64-live-rootfs.x86_64.img coreos.inst.ignition_url=http://172.18.1.80/install/ocp4/ignitions/bootstrap.ign console=tty0 console=ttyS0 initrdefi rhcos-4.6.1-x86_64-live-initramfs.x86_64.img }Ensure that you have rhcos-4.6.1-x86_64-live-initramfs.x86_64.img and rhcos-4.6.1-x86_64-live-kernel-x86_64 in the /tftpboot as well, and that rhcos-4.6.1-x86_64-live-rootfs.x86_64.img is accessible from the specified web url (try with curl for example).
Setting up DNS#
My DNS zone looks like this:
root@voluspa:/var/named# cat ocp4.home.eenfach.de $TTL 3600 @ IN SOA ocp4.home.eenfach.de. hostmaster.eenfach.de. ( 2022021500 ; Serial 3600 ; Refresh 300 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS voluspa.srv.home.eenfach.de. bastion IN A 172.18.3.1 bootstrap IN A 172.18.3.5 master00 IN A 172.18.3.10 etcd00 IN A 172.18.3.10 _etcd-server-ssl._tcp.ocp4 IN SRV 0 10 2380 etcd00 master01 IN A 172.18.3.20 etcd01 IN A 172.18.3.20 _etcd-server-ssl._tcp.ocp4 IN SRV 0 10 2380 etcd01 master02 IN A 172.18.3.30 etcd02 IN A 172.18.3.30 _etcd-server-ssl._tcp.ocp4 IN SRV 0 10 2380 etcd02 worker00 IN A 172.18.3.50 worker01 IN A 172.18.3.60 *.apps IN A 172.18.3.100 api IN A 172.18.3.100 api-int IN A 172.18.3.100 dns IN CNAME voluspa.srv.home.eenfach.de.Ensure that you set up matching PTR records also.
That should be it, we could kick off the installations.
Starting the RHCOS installation#
Boot your bootstrap zone, zlogin -C bootstrap and watch the console. When the grub menu appears, hit return (or put timeout values in the grub.cfg files) and let the boot proceed. The bootstrap will reboot after a while and finally it will show a login prompt.
Now also boot your master zones, also observe the console and wait until they show the login prompt, after that do the same with the workers.
Observing the installation#
On the bastion node, observe the installation with
At some point it should say that it is now safe to remove the bootstrap node. Log in to the loadbalancer zone and remove the bootstrap from the masters servergroup. Then shut down the bootstrap.
Again on the bastion run
Open another shell to the bastion and watch the cluster:
You should see the nodes getting read. If CSRs are in a pending state, approve them with "oc adm certificate approve". Depending on your hardware and network this takes some time, but finally your cluster should be ready.
First you need a running OpenIndiana installation on an amd64 system that supports bhyve. You can check bhyve compability with https://downloads.omnios.org/misc/bhyve/bhhwcompat
.
If bhyve is supported, install a few packages:
Now you need a Linux ISO image. I chose RHEL 8.5 in my case, but you can pick any other. Just one word of attention here: some Linux distros have issues with the EFI firmware of bhyve, RHEL 8.2 refused to boot. The issue was fixed in 8.5 at least.
Set up a vnic for networking:
Set up a ZFS volume for the VM image:
Now we set up a zone:
Now on another Terminal open vncviewer:
Follow the installation instructions of your Linux distro. After that, install podman on your Linux VM and then you can run containers in bhyve in a container ;)
Das klang alles so voellig falsch das ich mich genoetigt sah doch zu antworten:
Das war - glaube ich - wenig missverstaendlich und auch grade noch so hoeflich genug. In der Regel gibt es dazu keine Antwort mehr, aber in diesem Falle kam folgendes:
Nur eingeschraenkte Informationen? Auf github steht das ich Training Consultant bin? Das ist mir neu...
Sehr geehrte Frau ..., Entschuldigen Sie bitte, aber verwechseln Sie grade github.com mit LinkedIn? Auf github.com steht deutlich lesbar unter meinem Bild: Olaf Bohlen olbohlen Solaris Admin, SPARC user, OpenIndiana contributor, Hobby sailor, Dad & Husband Wenn Sie ein wenig Ahnung haetten was die Begriffe bedeuten, so haetten Sie auf keinen Fall geglaubt das ich VBA Erfahrung habe. Ausserdem koennen sie auf GitHub sehr schnell in meinen Repositories sehen das ich kein einziges mit VB/VBA code habe. Nehmen wir also mal an sie sind versehentlich bei LinkedIn gelandet und glauben es ist GitHub (und mit Verlaub, das ist wirklich etwas ganz anderes...). Selbst ohne Login(!) auf LinkedIn koennen sie eben nicht nur "vage" Informationen bekommen, sondern deutliche. Und das unterscheidet gute von schlechten Recruitern: gute wissen was sie suchen und was die Kandidaten koennen. Gehen wir doch mal eben mein oeffentliches LinkedIn Profil durch: Olaf Bohlen Training Consultant bei NIIT Limited Bremen Area, Germany Education Management Current NIIT Limited, illumos Previous BTC IT Services GmbH, BTC - Business Technology Consulting AG, noris network AG Education Staatl. Berufsschule III Fürth Aha, der Olaf Bohlen ist also Training Consultant. Er scheint also aktuell in der Erwachsenenbildung aktiv zu sein. Ausserdem ist er bei "illumos" taetig - einen Googlehupf weiter erkennt man, das es sich hierbei um ein nicht Windows-Betriebssystem handelt. (Und ihre Anfrage ist absolut Windows-lastig...) Gibt es noch mehr Indikatoren das Olaf Bohlen nicht in ihr Profil passt? Schauen wir mal etwas weiter unten auf der Seite: Summary - UNIX of different kinds, especially illumos and Linux but also Solaris, AIX, IRIX, BSD - Java EE Application servers like JBoss EAP, WebLogic, IBM WebSphere - Databases: Oracle, DB/2, PostgreSQL, mySQL - Hardware: Sun SPARC, IBM RS/6000 (pSeries), SGI MIPS, x86 - Network Equipment: Cisco Switches (Catalyst), Cisco Routers, Foundry Networks Switches and Loadbalancers (Server- and BigIron), Bintec Routers, Ascend Router s (Pipeline and MAX) Specialties: illumos, SPARC Hardware Huch, das klingt nicht nach ERP, sondern ziemlich nach IT Infrastruktur (Hardware, Betriebssysteme, Application Server). Und auch hier taucht nirgendwo VBA oder Windows auf. Hiernach folgt eine Liste mit Stichpunkten meiner Taetigkeiten in Vergangenheit. Alles Unix Jobs... Bei der Liste meiner Zertifikate...vorallem RedHat Zertifikate...auch Linux/Unix/Infrastruktur. > Die Stelle des ERP-Consultant ist nur ein Beispiel > gewesen bzw. ein Vorschlag, über den wir im weiteren Verlauf > genauer hätten > sprechen können. Deshalb ja auch meine Frage, was ein Job denn > mitbringen muss um für Sie interessant zu sein, da ich eben > genau nicht > wissen kann, welche Kenntnisse und Jobpräferenzen Sie > mitbringen. Es tut mir sehr leid, wenn ich mich unverständlich > ausgedrückt habe. Ach wissen sie...ich bin ja nicht ganz bloed und habe eine Vermutung, das sie einfach ein Filter-Tool nutzen mit den Suchworten "Consultant, SQL" und da haben sie mich gefunden. Und das zeigt verschiedene Dinge: - Sie wissen leider ueberhaupt nicht was Sie da genau suchen - Sie koennen die Ihnen zur Verfuegung stehenden Daten nicht interpretieren - eine schnelle Akquise ist Ihnen wichtiger, als sich mit dem Thema zu beschaeftigen und einen passenden Kandidaten zu finden - Sie haben sich nicht "unverstaendlich" ausgedrueckt, sondern einfach kein Interesse an mir oder Ihrem Kunden gezeigt, sonst waere ich bei Ihnen schon aus der Kandidatenliste geflogen. Sehen Sie, ich bin nicht sauer und ich will Ihnen nichts boeses. Aber ich bekomme Anfragen wie Ihre dreimal die Woche - und alle sind absolut unqualifiziert. Ueberraschen Sie mich (und andere!) beim naechsten Mal und bereiten Sie sich vor. Immerhin erwarten Sie das ja auch von uns Kandidaten, oder? Mit freundlichen GruessenUnd siehe da, die gute Frau scheint mich endlich verstanden zu haben - aber vermutlich leider(!) Ihr Verhalten nicht aendern:
Es ist ein elendes Drama - so wird niemals gutes Personal vermittelt. Hoechstens durch absoluten Zufall.Liebe Personalvermittler: das koennt ihr besser.
Ich weiss es. Beweist es uns.
Danke.
Another attempt to continue blogging, language will be mixed english and german, also mixed IT related and others...