Version 007, Stand 12. August 2014


Fedora 20

Der Dassault Systemes Lizenz Server (DSLS) für CATIA


Ein guter Freund von mir arbeitet in einer der renomiertesten Herzkliniken Deutschlands. Er administriert dort die EDV-Anlagen. Vor kurzem fragte er mich, ob ich denn noch keine Probleme mit der Lizenzierung unserer Software hätte. Nein, antwortete ich, habe ich nicht. Ich schaute ihn wohl ein wenig verwundert an, denn ich bin mir hundertprozentig sicher, daß sowohl in seiner als auch in meiner Firma nur legal erworbene Programme verwendet werden. Aber das meinte er auch gar nicht. Er stellte vielmehr darauf ab, daß inzwischen ein so erheblicher Aufwand bei der Absicherung der Software-Produkte gegen unerlaubte Nutzung und Raubkopien getrieben wird, daß es für den legalen Benutzer fast schon an Schikane grenzt. Ich hörte mir seine Klagen an und ahnte noch nicht, daß ich nur wenige Tage später selbst betroffen sein sollte.




1.) CATIAs Lizenzmodell


In unserer Konstruktionsabteilung arbeiten wir auf vier Arbeitsplätzen mit der CAD-Software CATIA. Zusätzlich haben wir zwei Arbeitsplätze mit Cimatron. Cimatrons Lizenzpolitik ist ebenso nebulös wie die von CATIA. Hier aber soll es ausschließlich um CATIA gehen.


Für die Lizenzierung dieses Produktes gibt es seit jeher zwei Alternativen: Entweder Concurrent oder Nodelock. Bei der Concurrent-Lizenzierung liegt die Lizenz auf einem eigenen Lizenzserver und ist auch an diesen Lizenzserver gebunden. Die einzelnen Workstations holen sich dann im Bedarfsfall ihre CATIA-Ausführungsberechtigung bei eben diesem Lizenzserver ab. Bei der Nodelock-Lizenzierung hingegen liegt die Lizenz auf jeder einzelnen CATIA-Workstation, ist an diese gebunden und gilt auch nur für diese. Beides hat Vorteile wie auch Nachteile. Der Vorteil der Concurrent-Lizenz ist ihre Bequemlichkeit und Variabilität. Sie können wenn Sie wollen auf allen Arbeitsplätzen in ihrer Firma CATIA installieren, womit Sie dann mehr Installationen als Lizenzen haben. Es gilt dann einfach, wer zuerst kommt mahlt zuerst. Niemand muß für einen "CATIA-Einsatz" seinen Arbeitsplatz wechseln, sofern noch eine Lizenz ungenutzt ist. Der Nachteil liegt allerdings darin, daß Sie einen eigenen Lizenzserver einsetzen müssen und das kann die Achillesferse sein. Denn wenn Ihnen dieser Lizenzserver stirbt, sind Sie insgesamt arbeitsunfähig. Zusätzlich verursacht der dedizierte Lizenzserver einmalig Hardware- sowie laufend Wartungs- und Stromkosten. Umgekehrt besteht der Vorteil der Nodelock-Lizenz in ihrer Einfachheit und Störungsunanfälligkeit. Probleme mit einem einzelnen Arbeitsplatz haben hier keinerlei Auswirkungen auf die übrige Konstruktionsabteilung. Andererseits müssen Sie hier immer dann, wenn Sie einen alten Arbeitsplatzrechner durch einen neuen ersetzen wollen, eine neue Lizenz beantragen. Das kann ziemlich lästig sein.


Weiterhin gibt es im Bereich der Concurrent-Lizenzen zwei weitere Alternativen. So können Sie hier entweder den Lizenzserver DSLS der Firma Dassault Systemes einsetzen oder Sie nehmen den LUM von IBM.


Bisher setzten wir auf Nodelock-Lizenzen. Früher einmal wurden diese für vier Jahre erteilt. Dann reduzierte sich die Laufzeit auf zwei Jahre. Zuletzt habe ich Nodelock-Lizenzen nur noch für ein Jahr erhalten und neuerdings bekomme ich gar keine mehr. Nodelock wird nicht mehr unterstützt. Obwohl ich jetzt gehört habe, es gäbe wieder welche. Aber unser Systemhaus verweigert sie mir und ich wollte diesbezüglich auch nicht betteln. Gleichzeitig wird nun auch LUM nicht mehr angeboten. Im Downloadbereich unseres Systemhauses ist LUM zwar noch zu finden, aber nicht mehr bei IBM direkt. IBM ließ auch offiziell verlautbaren, LUM sei Ende 2013 eingestellt. Gleichzeitig hat Dassault angekündigt, in zukünftigen CATIA-Versionen LUM nicht mehr zu unterstützen. Somit bleibt nur noch DSLS. R2014 ist dabei die zur Zeit aktuellste Version. CATIA V5R21 ist das erste Release, das bereits im GA-Level mit DSLS umgehen kann. Bei V5R19 und V5R20 geht das nur, wenn es mit speziellen Hotfixes gepatcht wird. Da ich nicht mehr an ohnehin veralteter Software rumpatchen will, ist die Entscheidung somit gefallen: CATIA V5R21 mit DSLS R2014.




2.) Serverseitige Arbeiten


Wenn Sie vorhatten eine virtuelle Maschine als DSLS-Server einzusetzen, vergessen Sie es. DSLS erkennt, daß es in einer virtualisierten Umgebung läuft und verweigert den Dienst. Also kaufe ich mir einen neuen Server. Ich wähle einen extrem energiesparenden Atom-Server der von mir so geschätzten Marke "Supermicro". Als einzige "Festplatte" dient ein 4GB USB-Stift. Das reicht. Wie bei mir nicht anders zu erwarten, soll als Betriebssystem das aktuelle Fedora 20 installiert werden. DSLS wird nicht für Fedora angeboten, wohl aber für Red Hat und SUSE. Das stört mich nicht. Was auf Red Hat läuft, bekomme ich sicherlich auch auf Fedora zum Laufen. Und mangelnder Support stört mich erst recht nicht, habe ich je Support gebraucht? Ich bin soweit, jetzt kann es losgehen.




2.1.) Vorbereiten


Zuerst wird eine Fedora 20 Minimalinstallation durchgeführt.


Sodann ändere ich den Hostname meines neuen Lizenzservers. Ich tue dies für gewöhnlich durch editieren der Datei /etc/hostname. Ich will diesen Rechner fortan ls01 nennen. Die zwei Buchstaben ls sollen für Lizenzserver stehen und das 01 soll anzeigen, daß es sich um den ersten Server dieser Art handelt. Hier stoße ich schon auf den ersten Fallstrick. Getreu dem Grundsatz "Seien Sie spezifisch!" habe ich allen meinen Rechnern bisher immer einen "full qualified" Namen gegeben. Demnach wäre der Rechnername also in meinem Fall ls01.sundermeier-werkzeugbau.de gewesen. Aber mit diesem Namen läßt sich DSLS nicht installieren. Es funktioniert nur mit einem Kurznamen. Also breche ich mit meinem eisernen Prinzip und nenne die Maschine einfach nur ls01. Natürlich muß die Maschine nicht unbedingt ls01 heißen, Sie können auch einen beliebigen anderen Namen verwenden.


Als nächstes gebe ich der Netzwerkschnittstelle eine statische IP-Adresse. Dazu wechsele ich in das Verzeichnis /etc/sysconfig/network-scripts. Hier editiere ich die Datei meiner Netzwerkschnittstelle. Welche Datei das ist, läßt sich heute nicht mehr so einfach sagen. Der Dateiname beginnt mit ifcfg-, soviel jedenfalls steht fest. Früher wäre es sehr wahrscheinlich mal die Datei ifcfg-eth0 gewesen, doch heutzutage bekommen die Dateien je nach verbauter Hardware spezifische Namen. Hat man die passende Datei ausfindig gemacht, ändert man dort die Zeile bootproto="dhcp" auf bootproto="static" und fügt die Zeile ipaddr="192.168.1.115" hinzu. Auch hier gilt wieder: Es muß nicht unbedingt 192.168.1.115 sein, Sie können auch jede andere gütige IP verwenden.


Sofern der Rechner nun im Netzwerk unter seiner IP zu erreichen ist, werde ich ihn nun updaten. yum update lautet der passende Befehl und wenn alles gut gegangen ist, habe ich anschließend eine funktionstüchtige, frische und aktuelle Minimalinstallation. Nun ist auch ein erneuter Reboot erforderlich, damit die Maschine den aktuellen Kernel verwendet.


ntp installieren und konfigurieren - yum install redhat-lsb - yum install ksh - DSLS R2014 besorgen


[root@ls01 ~]# tree -CapugsDN --timefmt "%Y-%m-%d_%H:%M:%S" /opt
/opt
`-- [drwxr-xr-x root     root            4096 2014-01-22_13:06:00]  dsls_r2014
    |-- [-rwxr-xr-x root     root           11480 2013-08-02_12:00:00]  DSLicTarget
    |-- [-rwxr-xr-x root     root            1489 2013-09-03_15:37:00]  dsls
    |-- [-rw-r--r-- root     root        96870400 2013-09-23_15:47:00]  DSLS.tar
    |-- [-rwxr-xr-x root     root           75064 2013-08-07_12:00:00]  DSYLicServINSTB
    `-- [-rwxr-xr-x root     root            1429 2009-09-11_12:00:00]  startInstLicServ

1 directories, 5 files
[root@ls01 ~]#

DSLicTarget ausführen - Lizenz beantragen - erhaltene Lizenzdatei unter /tmp abspeichern




2.2.) Die Installation des DSLS


[root@ls01 ~]# cd /opt/dsls_r2014
[root@ls01 dsls_r2014]# ./startInstLicServ -noUI
/opt/dsls_R2014
Check free port
Chosen port 4084

CheckAcessDir :/usr/DassaultSystemes/DSLicenseServer
CheckAcessDir :/usr/DassaultSystemes
CheckAcessDir :/usr
CheckRequiredSize :/usr
Available size : 1146
Installing server in /usr/DassaultSystemes/DSLicenseServer
Creating directory /usr/DassaultSystemes/DSLicenseServer
mkdir -p -m 755 /usr/DassaultSystemes/DSLicenseServer
Directory /usr/DassaultSystemes/DSLicenseServer was successfully created
Installation directory: /usr/DassaultSystemes/DSLicenseServer

TarCmd: tar -xf /opt/dsls_R2014/DSLS.tar
Untar DSLS.tar was successful
Server initialization: /usr/DassaultSystemes/DSLicenseServer/linux_a64/code/bin/DSLicSrv -initServer -adminPort 4084
2014/02/25 16:47:47:925 I INITSERVER  Server version 6.215.4 built on Aug 27, 2013 4:44:57 PM
2014/02/25 16:47:47:929 I INITSERVER  Initializing license server on /var args [-adminPort, 4084]
2014/02/25 16:47:49:021 I REPOSITORY  LicenseDB.dat written to disk
2014/02/25 16:47:49:037 I INITSERVER  Server successfully initialized.
2014/02/25 16:47:49:038 I INITSERVER  Computer name ls01, computerId WBX-528D142590CA18EC
Server was successfully initialized

Server start: nohup /usr/DassaultSystemes/DSLicenseServer/linux_a64/code/bin/DSLicSrv -startServer >/dev/null 2>&1 &
Server was successfully started

Cannot create symbolic link /usr/lib/lsb/install_initd /etc/init.d/dsls:rc = 1
Launch /usr/DassaultSystemes/DSLicenseServer/linux_a64/code/bin/DSLicSrv -admin to start License Administration Tool in command line mode

[root@ls01 dsls_r2014]# cd
[root@ls01 ~]#



2.3.) Die Konfiguration des DSLS


Ich will zunächst die grundsätzliche Vorgehensweise im Umgang mit dem DSLS-Server erläutern. Es vollzieht sich immer gleich, in drei Schritten. In einem ersten Schritt melden Sie sich an. Ich meine hiermit nicht, daß Sie sich an der physikalischen Maschine ls01 anmelden, das sind Sie ja schon, schließlich sitzen Sie ja gerade an einem geöffneten Terminal. Nein, sondern zusätzlich müssen Sie sich bei dem DSLS-Dienst selbst anmelden. Ich meine hiermit weiterhin auch nicht, daß Sie den DSLS-Dienst starten sollen, denn er läuft ja bereits. Es handelt sich somit lediglich um die Anmeldung an der "Administrationskonsole" des DSLS-Dienstes. Danach setzen Sie einen oder mehrere Befehle ab, d.h. Sie beauftragen den DSLS-Dienst irgendetwas zu tun. Zuletzt melden Sie sich ab, also wieder bei dem DSLS-Dienst, nicht bei dem DSLS-Server selber. Der DSLS-Dienst läuft danach natürlich weiter, die Abmeldung stoppt ihn nicht. Hierzu nun ein Einführungsbeispiel:


[root@ls01 ~]# /usr/DassaultSystemes/DSLicenseServer/linux_a64/code/bin/DSLicSrv -admin
Lizenzverwaltungstool Version 6.215.4 Erstellt am 27.08.2013 16:44:57.
Admin >connect 192.168.1.115 4084
        Softwareversion: 6.215.4
        Erstellungsdatum: 27.08.2013 16:44:57
        Standalone-Modus
        Bereit: Nein
        Servername: ls01   Server-ID: WBX-528D142590CA18EC
Admin >getConfig
    Serverkonfiguration
        Standalone-Modus
        Computername:                             ls01  Computer-ID:                                WBX-528D142590CA18EC
        Lizenzierungsanschluss:                   -1    Verwaltungsanschluss:                       4084
        Kennwortgeschützt:                        Nein  Fernverwaltung:                             Keine
        Automatische Wiederherstellung aktiviert: Nein  Statistiken zur Lizenzverwendung aktiviert: Nein
Admin >exit
[root@ls01 ~]#

Das Anmelden erledigt der Befehl connect. Danach habe ich vom Lizenzserver wissen wollen, wie seine derzeitige Konfiguration aussieht. Das macht man mit dem Befehl getConfig. Der letzte Befehl exit meldet mich vom DSLS-Dienst ab. Nach genau diesem Schema mache ich mich jetzt daran, meinen DSLS zu konfigurieren. Und das geht so.


Erster Schritt: Anmeldung.


[root@ls01 ~]# /usr/DassaultSystemes/DSLicenseServer/linux_a64/code/bin/DSLicSrv -admin
Lizenzverwaltungstool Version 6.215.4 Erstellt am 27.08.2013 16:44:57.
Admin >connect 192.168.1.115 4084
        Softwareversion: 6.215.4
        Erstellungsdatum: 27.08.2013 16:44:57
        Standalone-Modus
        Bereit: Nein
        Servername: ls01   Server-ID: WBX-528D142590CA18EC
Admin >

Zweiter Schritt, erster Befehl: Lizenzen hinzufügen.


Admin >enrollLicense -dir /tmp -file WBX-528D142590CA18EC_D9L8V-0TZDP-2QPUE-R0P1W-L2K8P_0000_1.LICZ
5 Lizenzdateien registriert
Datei /tmp/WBX-528D142590CA18EC_D9L8V-0TZDP-2QPUE-R0P1W-L2K8P_0000_1.LICZ/FEAT-1-of-5.LIC registriert
Datei /tmp/WBX-528D142590CA18EC_D9L8V-0TZDP-2QPUE-R0P1W-L2K8P_0000_1.LICZ/FEAT-2-of-5.LIC registriert
Datei /tmp/WBX-528D142590CA18EC_D9L8V-0TZDP-2QPUE-R0P1W-L2K8P_0000_1.LICZ/FEAT-3-of-5.LIC registriert
Datei /tmp/WBX-528D142590CA18EC_D9L8V-0TZDP-2QPUE-R0P1W-L2K8P_0000_1.LICZ/FEAT-4-of-5.LIC registriert
Datei /tmp/WBX-528D142590CA18EC_D9L8V-0TZDP-2QPUE-R0P1W-L2K8P_0000_1.LICZ/FEAT-5-of-5.LIC registriert
Admin >

Zweiter Schritt, zweiter Befehl: Lizenzen überprüfen.


Admin >getLicenseInfo

Nun bekommen Sie eine große Tabelle angezeigt, die alle Lizenzen mit all ihren Eigenschaften auflistet. Der größte Nachteil dieser Tabelle besteht darin, daß sie sich wegen der vielen Zeilenumbrüche auf einem 80-Zeichen breiten Standardterminal kaum vernünftig darstellen läßt. Ich verzichte deshalb hier auf die Wiedergabe. Sie werden allerdings feststellen, daß Sie zwar alle Lizenzen über die Sie verfügen angezeigt bekommen, aber dennoch eine weniger als Sie eben noch importiert haben. Das liegt daran, daß eine zusätzliche Lizenz für den Betrieb des DSLS-Servers selbst benötigt wird und da dies keine CATIA-Lizenz ist, wird sie hier auch nicht dargestellt.


Zweiter Schritt, dritter Befehl: Konfiguration ändern.


Admin >setConfig -lp 4085
Neue Serverkonfiguration
        Standalone-Modus
        Lizenzierungsanschluss: 4085Verwaltungsanschluss:  4084
        Kennwortgeschützt:      Nein                       Fernverwaltung: Keine  Lizenzverwendungsstatistik aktiviert: Nein  Automatische Wiederverwertung aktiviert: Nein
        Bestätigen (Ja|Nein)? >Ja
Admin >

Zweiter Schritt, vierter Befehl: Konfiguration überprüfen.


Admin >getConfig
    Serverkonfiguration
        Standalone-Modus
        Computername:                             ls01  Computer-ID:                                WBX-528D142590CA18EC
        Lizenzierungsanschluss:                   4085  Verwaltungsanschluss:                       4084
        Kennwortgeschützt:                        Nein  Fernverwaltung:                             Keine
        Automatische Wiederherstellung aktiviert: Nein  Statistiken zur Lizenzverwendung aktiviert: Nein
Admin >

Dritter Schritt: Abmelden.


Admin >exit
[root@ls01 ~]#



2.4.) Nachbereiten


Zwei Dinge gilt es noch zu erledigen: Zum einen will ich noch erreichen, daß DSLS bei einem Serverreboot automatisch mit startet und zum anderen muß ich noch die zwei von DSLS benötigten Ports in der Firewall freischalten.


Zunächst zum Startmechanismus. DSLS fußt noch auf dem alten init, doch init ist bei Fedora längst Geschichte. Heute ist systemd für den Daemonstart zuständig und das funktioniert im Fall von DSLS kinderleicht. Ich wechsele in das Verzeichnis /usr/lib/systemd/system und erstelle dort die Datei dsls.service. Dabei achte ich darauf, daß alle Rechte richtig gesetzt sind, also: chown root dsls.service, chgrp root dsls.service, chmod 644 dsls.service und nicht zu vergessen chcon "system_u:object_r:systemd_unit_file_t:s0" dsls.service. Sodann editiere ich die Datei so, daß sie danach so ausschaut:


[Unit]
Description=DSLS Dassault Systemes License Server for CATIA
After=syslog.target network.target auditd.service

[Service]
ExecStart=/usr/bin/nohup /usr/DassaultSystemes/DSLicenseServer/linux_a64/code/bin/DSLicSrv -startServer &
PIDFile=/run/DSLicSrv.pid
User=root

[Install]
WantedBy=multi-user.target

Nun bin ich in der Lage den DSLS mit dem systemd-Befehl systemctl start dsls.service zu starten und mit systemctl stop dsls.service zu stoppen. Für den permanenten DSLS-Start bei Serverreboot bemühe ich den Befehl systemctl enable dsls.service.


Nun zur Firewall. systemctl stop firewalld.service und systemctl disable firewalld.service. Nein, bitte tun Sie das nicht. Wir hatten uns alle so schön an iptables gewöhnt, doch genau wie init ist auch das inzwischen etwas neuerem gewichen. Im Moment ist nämlich firewalld angesagt und auch das ist im Fall von DSLS kinderleicht zu bedienen. Und weil es so leicht ist, wird die Firewall nun korrekt konfiguriert und nicht einfach abgeschaltet. Schauen wir uns zunächst den Auslieferungszustand der Firewall an, ohne daß die DSLS-Ports geöffnet sind:


[root@ls01 ~]# firewall-cmd --zone=public --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client mdns ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

[root@ls01 ~]#

Ich muß zwei zusätzliche Ports öffnen. Das ist zum einen Port 4084. Das ist der Verwaltungsport, hierüber erfolgt die Administration des DSLS. Diesen Port haben wir weiter oben schon gebraucht, als wir uns beim Konfigurieren mit dem DSLS verbunden haben. Und zum anderen Port 4085, der Lizenzierungsport. Über diesen Port kommunizieren die CATIA-Workstations mit dem Lizenz-Server. Erneut verwende ich den Befehl firewall-cmd. Zum Freigeben von Ports dient die Option --add-port, die zusätzliche Option --permanent bewirkt, daß diese Einstellung auch nach einem Rechnerneustart noch wirksam ist.


[root@ls01 ~]# firewall-cmd --zone=public --add-port=4084/tcp --permanent
success
[root@ls01 ~]# firewall-cmd --zone=public --add-port=4085/tcp --permanent
success
[root@ls01 ~]#

Wir haben zwar jedes mal die Meldung "success" erhalten, doch nur eine erneute Statusabfrage der Firewall verschafft mir Sicherheit.


[root@ls01 ~]# firewall-cmd --zone=public --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client mdns ssh
  ports: 4085/tcp 4084/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

[root@ls01 ~]#

Ja, jetzt kann man sehr schön sehen, daß beide Ports auch wirklich offen sind.




2.5.) Aufräumen


[root@ls01 ~]# cd /opt
[root@ls01 opt]# rm -rf dsls_r2014
[root@ls01 opt]# cd /tmp
[root@ls01 tmp]# rm -f WBX-528D142590CA18EC_D9L8V-0TZDP-2QPUE-R0P1W-L2K8P_0000_1.LICZ
[root@ls01 tmp]# cd
[root@ls01 ~]#



3.) Clientseitige Arbeiten


Nun bleibt noch "Turnschuh-Administration" (weil man von einem Rechner zum nächsten wandern muß) auf der Clientseite. Unsere CATIA-Workstations arbeiten mit 64-bitigen Windows 7 Professional Betriebssystemen. Zunächst wird CATIA V5R21 neu installiert. Sodann deinstalliere ich das alte V5R20. Auf das nun folgende hat mich unser Systemhaus hingewiesen: Man begebe sich in das Verzeichnis C:\ProgramData\DassaultSystemes. Das Verzeichnis "ProgramData" ist ein verstecktes Verzeichnis, Sie müssen es erst mit den entsprechenden Windows-Explorer Einstellungen sichtbar machen. In diesem Verzeichnis "ProgramData" muß ein Unterverzeichnis neu angelegt werden, und zwar mit dem Namen "Licenses". Dann wechselt man in das neu erstellte Verzeichnis "Licenses" und legt dort die Textdatei "DSLicSrv.txt" an. Achtung, der Windows-Explorer zeigt je nach Einstellung die Dateiendung nicht an. Stellen Sie auf jeden Fall sicher, daß Ihre Datei "DSLicSrv.txt" heißt und nicht versehentlich nur "DSLicSrv" oder sogar "DSLicSrv.txt.txt". Der Inhalt der Datei "DSLicSrv.txt" ist ein Einzeiler, er muß 192.168.1.115:4085 lauten. Selbsterklärend, oder? Wenn Sie nun CATIA starten sollte die Software nun ihren Lizenzserver finden können. Man wird dann zum Schluß noch nach der gewünschten Lizenz, die gezogen werden soll gefragt und voila fertig.


Nachdem das alles erledigt war und ich die ganze Mühsal schon fast vergessen habe, da erhalte ich eine Rechnung über eine Supportdienstleistung von unserem Systemhaus. Mich trifft fast der Schlag: Für den 30 Sekunden Hinweis bezüglich der Datei DSLivSrv.txt berechnet man mir annähernd 50 Euro. Da hab ich nun stundenlang für die Interessen des Softwareanbieters gearbeitet, habe die Nötigungen und Gängelungen einer absurden Lizenzierung über mich ergehen lassen, habe mir zusätzliche Hardware- und Stromkosten aufgebürdet und anstatt eines Blumenstraußes und eines Dankeschöns bekommt man eine Rechnung. Bei alledem kratzt diese Rechnung auch noch gehörig an meinem Ego. Unterstellt sie mir doch, fremde Hilfe zu benötigen. Mir! Lächerlich! Beim nächsten mal werde ich noch vorsichtiger sein, man muß halt immer mit dem Schlimmsten rechnen und selbst dann kommt’s noch schlimmer.


Oliver Seeburger, Schwalbenweg 13, 32609 Hüllhorst, Deutschland