Discussion:
IPv6-Unterstützung in Eisfair-Konfiguration
(zu alt für eine Antwort)
Hendrik Orep
2019-12-10 23:46:22 UTC
Permalink
Moin,

ich wollte mal wieder mit IPv6 nerven ;-).

Zurzeit ist es leider nicht möglich, z.B. in der base-Konfiguration bei
DNS_SERVER eine IPv6-Adresse einzutragen. Der Typ dieses Feldes ist in
der /etc/check.d/base als "IPADDRESSES" angegeben.

Ein Blick in Dokumentation
(https://www.eisfair.org/fileadmin/eisfair/devdoc/configuration.html#value)
und in die /etc/check.d/base.exp verrät mir, dass es zwar den Typ
"IPADDR6", also eine IPv6-Adresse, gibt, aber kein Äquivalent zu
"IPADDRESSES", also mehrere Adressen dieses Typs.
Ohnehin wäre es sinnvoll, in dieses Feld nicht nur mehrere IP-Adressen
eines Typs, sondern auch mehrere IP-Adressen aus beiden Adressfamilien
eintragen zu können.

Ich habe meine /etc/check.d/base.exp mal versuchsweise um diese Typen
erweitert [1]:
* IPADDRESSES6: eine oder mehrere IPv6-Adressen
* EIPADDRESSES6: keine oder mehrere IPv6-Adressen
* IPADDR46: eine IPv4- oder IPv6-Adresse
* IPADDRESSES46: eine oder mehrere IPv4- oder IPv6-Adressen
* EIPADDRESSES46: keine oder mehrere IPv4- oder IPv6-Adressen

Wenn ich dann in der /etc/check.d/base für DNS_SERVER den Typ auf
"IPADDRESSES46" ändere, kann ich dort IPv6- und IPv4-Adressen eintragen
und die /etc/resolv.conf wird entsprechend generiert.

Vielleicht ließe sich ja so etwas ähnliches umsetzen.

Beste Grüße
Hendrik


[1] habe da einfach nur das Vorhandene etwas wiederverwendet:diff
etc-check.d-base.exp.orig /etc/check.d/base.exp
115a116,123
IPADDRESSES6 = '(RE:IPADDR6)([[:space:]]+(RE:IPADDR6))*'
: 'no valid ipv6 address, please specify one or more valid
ipv6 addresses'
IPADDR46 = '(RE:IPADDR)|(RE:IPADDR6)'
: 'no valid ipv4 or ipv6 address'
IPADDRESSES46 = '(RE:IPADDR46)([[:space:]]+(RE:IPADDR46))*'
: 'no valid ip address, please specify one or more valid
ipv4 or ipv6 addresses'
126a135,143
EIPADDRESSES6 = '()|(RE:IPADDRESSES6)'
: 'should be empty or contain one or more valid
ipv6 addresses'
EIPADDR46 = '()|(RE:IPADDR46)'
: 'should be empty or contain a valid
ipv4 or ipv6 address'
EIPADDRESSES46 = '()|(RE:IPADDRESSES46)'
: 'should be empty or contain one or more valid
ipv4 or ipv6 addresses'
Holger Bruenjes
2019-12-11 20:44:48 UTC
Permalink
Hallo Hendrik
Post by Hendrik Orep
ich wollte mal wieder mit IPv6 nerven ;-).
;-)

Ich habe das mal so hinzugefuegt, Danke fuer den Anstoss.

Holger
Hendrik Orep
2019-12-12 20:16:10 UTC
Permalink
Hallo Holger,
Post by Holger Bruenjes
Ich habe das mal so hinzugefuegt, Danke fuer den Anstoss.
Danke! Freut mich, wenn was brauchbares bei war.

Beste Grüße
Hendrik
Hendrik Orep
2019-12-15 23:44:13 UTC
Permalink
Hallo,

ich habe noch mal weiter geschaut. In einigen Paketen kann man in der
Konfiguration ein Netzwerk angeben (z.B. SMTP_RELAY_FROM_HOST_% oder
APACHE2_ACCESS_CONTROL_IP).

Voraussetzung um diese und andere Paketkonfigurationen vollständig
IPv6-tauglich zu machen wäre also auch hier, dass es checks für IPv6-
und IPv4/IPv6-Netzwerke gibt.

Versuchsweise habe ich auch hierfür mal die base.exp erweitert [1].

Bei PREFIX6 bin ich mir nicht sicher, ob der reguläre Ausdruck so
richtig und optimal ist. Für die Variante IPv4 oder IPv6 habe ich auch
noch keine passenden/schönen Hinweistexte.

Beste Grüße
Hendrik

[1] diff etc-check.d-base.exp.original /etc/check.d/base.exp
148c148
< : 'no valid netmask spezified, please specify a value
---
: 'no valid netmask specified, please specify a value
173a174,226
: 'no valid ip address, network or empty'
PREFIX6 = '12[0-8]|1[0-1][0-9]|[1-9]?[0-9]'
: 'no valid prefix-length specified, please specify a value
between 0 and 128'
NETWORK6 = '(RE:IPADDR6)/(RE:PREFIX6)'
: 'no valid network specification, should be a network
address followed by the prefix-lenght, for instance 2001:DB8::/32'
NETWORKS6 = '(RE:NETWORK6)([[:space:]]+(RE:NETWORK6))*'
: 'no valid network specification, should be one or more
network addresse(s) followed by the prefix-length,
for instance 2001:DB8::/32'
ENETWORKS6 = '()|(RE:NETWORKS6)'
: 'no valid network specification, should be empty or
should contain one or more
network addresse(s) followed by the prefix-lenght,
for instance 2001:DB8::/32'
MULTIPLE_NETWORKS6 = '(RE:NETWORK6)([[:space:]]+(RE:NETWORK6))+'
: 'no valid network specification, should be two or more
network addresses followed by their prefix-lenghts,
for instance "2001:DB8:6::/48 2001:DB8:7::/48"'
EMULTIPLE_NETWORKS6 = '()|(RE:MULTIPLE_NETWORKS6)'
: 'no valid network specification, should be empty or
contain two or more
network addresses followed by their prefix-lenghts,
for instance "2001:DB8:6::/48 2001:DB8:7::/48"'
IPADDR_NETWORK6 = '(RE:IPADDR6)|(RE:NETWORK6)'
: 'neither valid ip address or valid network'
EIPADDR_NETWORK6 = '()|(RE:IPADDR6)|(RE:NETWORK6)'
: 'no valid ip address, network or empty'
NETWORK46 = '(RE:NETWORK)|(RE:NETWORK6)'
: 'no valid network specification, should be a network
address followed by the prefix-length, for instance 2001:DB8::/32'
NETWORKS46 = '(RE:NETWORK46)([[:space:]]+(RE:NETWORK46))*'
: 'no valid network specification, should be one or more
network addresse(s) followed by the prefix-length,
for instance 2001:DB8::/32'
ENETWORKS46 = '()|(RE:NETWORKS46)'
: 'no valid network specification, should be empty or
should contain one or more
network addresse(s) followed by the prefix-length,
for instance 2001:DB8::/32'
MULTIPLE_NETWORKS46 = '(RE:NETWORK46)([[:space:]]+(RE:NETWORK46))+'
: 'no valid network specification, should be two or more
network addresses followed by their prefix-lenghts,
for instance "2001:DB8:6::/48 2001:DB8:7::/48"'
EMULTIPLE_NETWORKS46 = '()|(RE:MULTIPLE_NETWORKS46)'
: 'no valid network specification, should be empty or
contain two or more
network addresses followed by their prefix-lenghts,
for instance "2001:DB8:6::/48 2001:DB8:7::/48"'
IPADDR_NETWORK46 = '(RE:IPADDR46)|(RE:NETWORK46)'
: 'neither valid ip address or valid network'
EIPADDR_NETWORK46 = '()|(RE:IPADDR46)|(RE:NETWORK46)'
Holger Bruenjes
2019-12-17 17:23:19 UTC
Permalink
Hallo Hendrik
Post by Hendrik Orep
ich habe noch mal weiter geschaut. In einigen Paketen kann man in der
Konfiguration ein Netzwerk angeben (z.B. SMTP_RELAY_FROM_HOST_% oder
APACHE2_ACCESS_CONTROL_IP).
Es wird an noch weit mehr Stellen nicht klappen, da eisfair bisher
noch nicht bei IPv6 angekommen ist.

Ich gucke mir Deinen Vorschlag an.

Holger
Hendrik Orep
2019-12-17 18:32:05 UTC
Permalink
Hallo Holger,
Post by Holger Bruenjes
Hallo Hendrik
Post by Hendrik Orep
ich habe noch mal weiter geschaut. In einigen Paketen kann man in der
Konfiguration ein Netzwerk angeben (z.B. SMTP_RELAY_FROM_HOST_% oder
APACHE2_ACCESS_CONTROL_IP).
Es wird an noch weit mehr Stellen nicht klappen, da eisfair bisher
noch nicht bei IPv6 angekommen ist.
Och, im allgemeinen klappt der Betrieb mit IPv6 eigentlich jetzt schon
recht unauffällig. Mir sind bislang hauptsächlich solche Kleinigkeiten
aufgefallen, wo ich manuell an der Eisfair-Konfigurationsschicht vorbei
Änderungen vorgenommen habe.
In den Paketen selber dürften oft auch keine großen Anpassungen nötig
sein, wenn es halt einen passenden Variablentyp in den Checks gibt.
Deshalb der Vorschlag.
Post by Holger Bruenjes
Ich gucke mir Deinen Vorschlag an.
Das freut mich! Wenn ich was testen soll oder anderweitig behilflich
sein kann, gerne melden.


Beste Grüße
Hendrik
Holger Bruenjes
2019-12-17 22:57:31 UTC
Permalink
Hallo Hendrik
Post by Hendrik Orep
Och, im allgemeinen klappt der Betrieb mit IPv6 eigentlich jetzt schon
recht unauffällig. Mir sind bislang hauptsächlich solche Kleinigkeiten
aufgefallen, wo ich manuell an der Eisfair-Konfigurationsschicht vorbei
Änderungen vorgenommen habe.
OK, schreib es auf, wenn Dir irgendwo was dazu auf und|oder
einfaellt. Ich werde dann versuchen das zu bearbeiten. Ein
Zeitfenster kann ich dafuer aber nicht geben.

Danke

Holger
Olaf Jaehrling
2019-12-20 18:18:51 UTC
Permalink
Hallo Holger,
Post by Hendrik Orep
Och, im allgemeinen klappt der Betrieb mit IPv6 eigentlich jetzt schon
recht unauffällig. Mir sind bislang hauptsächlich solche Kleinigkeiten
aufgefallen, wo ich manuell an der Eisfair-Konfigurationsschicht vorbei
Änderungen vorgenommen habe.
Das kann ich bestätigen. Ich habe 2 eisfair in ipv6-only laufen. Hatte
ich aber auch schon mal in der TT-Liste geschrieben.
Post by Hendrik Orep
In den Paketen selber dürften oft auch keine großen Anpassungen nötig
sein, wenn es halt einen passenden Variablentyp in den Checks gibt.
Deshalb der Vorschlag.
Ich habe stellenweise in den checks einfach EIPADDR durch EIPADDR6 oder
EIPADDR6COMPAT ersetzt.


Gruß

Olaf

P.S. BFB, BCN und net-snmp können schon seit Ewigkeiten ipv6

Loading...