Apache 2 und ipv6

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Kessl
Beiträge: 12
Registriert: 13.06.2023 09:52:37

Apache 2 und ipv6

Beitrag von Kessl » 30.10.2023 17:35:20

Hi
Mein Problem ist folgendes: Mein Server hat mehrere IPV6 Adressen. Auf 10.0.0.3 läuft lighttpd dessen ipv6 ausgeschaltet ist. Auf 10.0.0.2 Apache.

Code: Alles auswählen

:~$ ip address
1: lo: [...]
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    altname enp2s0
    inet 10.0.0.2/8 brd 10.255.255.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
    inet 10.0.0.3/8 brd 10.255.255.255 scope global secondary noprefixroute eno1
       valid_lft forever preferred_lft forever
    inet6 2001:9e8:xxxx:xxxx:xxxx:xxxx:xxxx:a67/128 scope global dynamic noprefixroute 
       valid_lft 5794sec preferred_lft 2194sec
    inet6 2001:9e8:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic noprefixroute 
       valid_lft 7190sec preferred_lft 3590sec
    inet6 fe80::f9d7:xxxx:xxxx:xxx/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
Mein problem betrifft vermutlich nur die Datei /etc/apache2/ports.conf

Code: Alles auswählen

       Listen 10.0.0.2:80
       Listen [fe80::f9d7:xxxx:xxxx:xxx]:80
Das hier funktioniert leider nicht. Ich vermute das Problem ist das :: in der Adresse, denn auch [::]:80 wird verweigert. Die Fehlermeldung ist nichtssagend. Dabei ist das die feste IP von der Fritz Box zugewiesen.
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xeu apache2.service" for details.
Auch /var/log/apache2/errors.log und dmesg bleiben leer.

Code: Alles auswählen

       Listen 10.0.0.2:80
       Listen [2001:9e8:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:80
Das hier funktioniert problemlos bis zum nächsten Tag, das Problem ist jedoch dass diese IP vom ISP zuigewiesen wird und der Suffix sich jeden Tag ändert und ich sowohl das lokale dns, als auch den apache von Hand täglich neu anpassen müsste.

Hat jemand eine Idee warum apache sich weigert für ipv6 wildcards zu akzeptieren, bzw. diesen ::? :: in 0:0:0 zu übersetzen hat übrigens auch nicht funktioniert.
Ich bin ein bisschen mit meinem Latein am Ende und wäre für jeden Tipp dankbar.
Gruss


Edit JTH: Nach „Web- und Mailserver“ verschoben
Zuletzt geändert von JTH am 30.10.2023 22:52:32, insgesamt 1-mal geändert.
Grund: Nach „Web- und Mailserver“ verschoben

Kessl
Beiträge: 12
Registriert: 13.06.2023 09:52:37

Re: Apache 2 und ipv6

Beitrag von Kessl » 30.10.2023 22:08:10

Ups, da war ich wohl etwas schnell. Könnte ein Mod den Thread nach Server -> Webserver schubsen?

Benutzeravatar
debilian
Beiträge: 1200
Registriert: 21.05.2004 14:03:04
Wohnort: 192.168.43.7
Kontaktdaten:

Re: Apache 2 und ipv6

Beitrag von debilian » 31.10.2023 13:08:33

Code: Alles auswählen

See "systemctl status apache2.service" and "journalctl -xeu apache2.service" for details.
was sagt er da?
-- nichts bewegt Sie wie ein GNU --

Kessl
Beiträge: 12
Registriert: 13.06.2023 09:52:37

Re: Apache 2 und ipv6

Beitrag von Kessl » 31.10.2023 19:42:25

Code: Alles auswählen

~$ sudo systemctl start apache2
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xeu apache2.service" for details.
df@server:~$ sudo systemctl status apache2.service
× apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Tue 2023-10-31 17:07:02 CET; 14s ago
   Duration: 1min 11.354s
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 6014 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
        CPU: 38ms

Okt 31 17:07:02 server systemd[1]: Starting apache2.service - The Apache HTTP Server...
Okt 31 17:07:02 server apachectl[6017]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Okt 31 17:07:02 server apachectl[6017]: no listening sockets available, shutting down
Okt 31 17:07:02 server apachectl[6017]: AH00015: Unable to open logs
Okt 31 17:07:02 server apachectl[6014]: Action 'start' failed.
Okt 31 17:07:02 server apachectl[6014]: The Apache error log may have more information.
Okt 31 17:07:02 server systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
Okt 31 17:07:02 server systemd[1]: apache2.service: Failed with result 'exit-code'.
Okt 31 17:07:02 server systemd[1]: Failed to start apache2.service - The Apache HTTP Server.

Code: Alles auswählen

~$ sudo journalctl -xeu apache2.service
Okt 31 17:07:02 server apachectl[6017]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Okt 31 17:07:02 server apachectl[6017]: no listening sockets available, shutting down
Okt 31 17:07:02 server apachectl[6017]: AH00015: Unable to open logs
Okt 31 17:07:02 server apachectl[6014]: Action 'start' failed.
Okt 31 17:07:02 server apachectl[6014]: The Apache error log may have more information.
Okt 31 17:07:02 server systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░ 
░░ An ExecStart= process belonging to unit apache2.service has exited.
░░ 
░░ The process' exit code is 'exited' and its exit status is 1.
Okt 31 17:07:02 server systemd[1]: apache2.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░ 
░░ The unit apache2.service has entered the 'failed' state with result 'exit-code'.
Okt 31 17:07:02 server systemd[1]: Failed to start apache2.service - The Apache HTTP Server.
░░ Subject: A start job for unit apache2.service has failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░ 
░░ A start job for unit apache2.service has finished with a failure.
░░ 
░░ The job identifier is 2944 and the job result is failed.
Er sagt "could not bind", verrät aber nicht warum er das nicht machen kann. Zumal er es auch nicht kann wenn ich lighttpd stoppe und Apache das einzige auf Port 80 ist. Ich habe aber einen Weg gefunden mit dem ich leben kann. Ich lege lighttpd auf port 8080 und entferne die zweite ip, dann startet Apache auch mit listen [::]:80. Aber irgendwie ist das nicht befriedigend dass ich es nicht geschafft habe, mit ipv4 ist das kinderleicht, nur sobald ich auch ipv6 will klappt gar nichts mehr.
Und was auch nicht klappt ist, statt [::]:80 eine feste IP zu vergeben wie [fe80::f9d7:xxxx:xxxx:xxx]:80. Die IP ist gültig, ich kann sie anpingen und wenn ich apache mit [::] starte kann ich mit dieser IP auf dem apache mit firefox rauf, aber wenn ich in die ports.conf listen [fe80::f9d7:xxxx:xxxx:xxx]:80 reinschreibe startet Apache nicht, auch mit obiger Fehlermeldung. Wobei Listen [2001:9e8:xxxx:xxxx:xxxx:xxxx:xxxx:a67] funktioniert.
Ich glaube ich verstehe ipv6 einfach nicht.

tijuca
Beiträge: 297
Registriert: 22.06.2017 22:12:20

Re: Apache 2 und ipv6

Beitrag von tijuca » 31.10.2023 20:12:58

Kessl hat geschrieben: ↑ zum Beitrag ↑
31.10.2023 19:42:25
Er sagt "could not bind", verrät aber nicht warum er das nicht machen kann.
Macht er nicht?

Code: Alles auswählen

Okt 31 17:07:02 server apachectl[6017]: (98)Address already in use: ....
Das was Du lösen willst macht man mit vhost Einträgen, mit IPs zu arbeiten ist eben schwierig da IPs, nun ja, einmalig sind.

Benutzeravatar
oln
Beiträge: 487
Registriert: 05.01.2021 09:41:24

Re: Apache 2 und ipv6

Beitrag von oln » 01.11.2023 07:25:07

Moin,
warum möchte man überhaupt zwei Webserver auf einer Kiste betreiben?
Warum brauchst du den lighttp?
Gruß Ole
AbuseIPDB

Kessl
Beiträge: 12
Registriert: 13.06.2023 09:52:37

Re: Apache 2 und ipv6

Beitrag von Kessl » 01.11.2023 07:53:00

Macht er nicht?
Naja, er schreibt nicht warum die IP angeblich belegt sei. Er bringt diese Fehlermeldung auch wenn ich lighttpd beendet habe und laut netstat nichts mehr auf port 80 lauscht.
IPs zu arbeiten ist eben schwierig da IPs, nun ja, einmalig sind
Mit IPV4 klappt das alles problemlos. Bin ich zu naiv zu glauben dass es dann auch mit IPV6 klappen müsste?
warum möchte man überhaupt zwei Webserver auf einer Kiste betreiben?
Apache für Nextcloud, Lighttpd für PiHole.
-----------------------------------------------------------------
Aber vielleicht kann mir jemand zum Verständnis von IPV6 verraten warum:
Listen [2001:9e8:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:80 <- funktioniert, Apache startet. Nur ändert sich diese IP alle 24h mit dem zugewiesenen Präfix des isp, was Apache leider mit einem grundsoliden Absturz quittiert.
Listen [fe80::f9d7:xxxx:xxxx:xxx]:80 <- Apache startet mit der lokalen, von der Fritz Box zugewiesenen, IP nicht
Listen [fe80:0:0:0:f9d7:xxxx:xxxx:xxx]:80 <- (Die obere "aufgeklappt") Apache starte auch nicht
Alle 3 IPs sind pingbar, und nachdem ich Apache mit Listen [::]:80 starte lassen sich alle 3 IPs mit Firefox ansurfen. Nur als IP zum lauschen für Apache geht nur die oberste.
Bin ich zu doof für ipv6, oder ist das ein Bug im Apache?

Benutzeravatar
oln
Beiträge: 487
Registriert: 05.01.2021 09:41:24

Re: Apache 2 und ipv6

Beitrag von oln » 01.11.2023 07:58:10

Kessl hat geschrieben: ↑ zum Beitrag ↑
01.11.2023 07:53:00
Apache für Nextcloud, Lighttpd für PiHole.
Warum nicht beides auf dem Apachen?
Spricht etwas dagegen?
Gruß Ole
AbuseIPDB

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Apache 2 und ipv6

Beitrag von bluestar » 01.11.2023 10:31:32

Kessl hat geschrieben: ↑ zum Beitrag ↑
01.11.2023 07:53:00
Listen [fe80::f9d7:xxxx:xxxx:xxx]:80 <- Apache startet mit der lokalen, von der Fritz Box zugewiesenen, IP nicht
Listen [fe80:0:0:0:f9d7:xxxx:xxxx:xxx]:80 <- (Die obere "aufgeklappt") Apache starte auch nicht
Das kann auch nicht funktionieren, bei fe80:: Adressen musst du das Interface zwingend angeben:

Code: Alles auswählen

Listen [fe80::f9d7:xxxx:xxxx:xxx%eth0]:80
Ich verwende zwar keinen Apache, aber bei anderen Programmen funktioniert dieses Schreibweise.

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Apache 2 und ipv6

Beitrag von wanne » 02.11.2023 02:32:03

Zuerst mal die link-lokal-Adressen (fe80:...) machen unter IPv6 das, was unter IPv4 MAC-Adressen machen. Die ist sicher nicht von der Fritz!Box zugewiesen. Die entscheidet der Linux-Kernel aufgrund von Hardwareeigenschaften. – Auch wenn es auf beiden Seiten immer wieder Software/Hardware (Drucker!) gibt, die da irgend welche wilden Hacks machen um dann doch irgend wie unter bestimmten Umständen mit gewissen Zusatzangaben und der MAC-Adresse funktionieren: Am Ende sind die nicht für die Nutzung in Anwendungen gedacht und es wird auch nicht funktionieren, weil spätestens dein Browser nicht weiß, was er mit sowas anfangen soll. Lasst sowas. Gib dem Interface eine sauber IPv6 Adresse.

Zweitens:
Ja. Apache verwendet die URL-Syntax mit den eckigen Klammern, auch wenn es sich um gar keine URL handelt. (Vermutlich, weil er halt konsistent mit den Browsern bleiben will.)
Hier das Beispiel aus der Hilfe:

Code: Alles auswählen

Listen [2001:db8::a00:20ff:fea7:ccea]:80
https://httpd.apache.org/docs/2.4/mod/m ... tml#listen
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten