Re: πρόβλημα με apache2 και IPv6
On 10:28 Fri 12 Nov , Γιώργος Πάλλας wrote:
>
> Καλημέρα στη λίστα!
Καλημέρα,
>
> Με τριβελίζει καιρό τώρα το εξής περίεργο: Ο apache όταν σηκώνεται κατά
> το boot, ξεχνάει να αρχίσει να ακούει στην IPv6 διεύθυνση ενώ αιτήματα
> στην IPv4 τα εξυπηρετεί κανονικά. Αν τον κάνω ένα restart, τότε όλα καλά.
Έκδοσή πυρήνα;
>
> Το όλο πράμα φαίνεται και με την netstat:
>
> postmortem:~# netstat -pan | grep LISTEN|grep apache
> tcp 0 0 0.0.0.0:80 0.0.0.0:*
> LISTEN 1440/apache2
> postmortem:~#
> postmortem:~# /etc/init.d/apache2 restart
> Restarting web server: apache2 ... waiting .
> postmortem:~#
> postmortem:~# netstat -pan | grep LISTEN|grep apache
> tcp6 0 0 :::80 :::*
> LISTEN 10576/apache2
> postmortem:~#
>
> Kαι μια ακόμα απορία είναι η εξής: Μετά το restart, αφού ακούει κανονικά
> και στην IPv6 και στην IPv4, τότε γιατί στο output της netstat λέει στην
> αρχή της γραμμής tcp6;
>
Ακούει σε dual-stack socket· το IPv6 stack έχει δύο τρόπους λειτουργίας:
- Μπορείς σε ένα IPv6 socket να δέχεσαι και IPv4 connections, με
«εικονικές» IPv6 διευθύνσεις του τύπου ::ffff:your.ip.v.4, ή
εναλλακτικά
- Μπορείς σε ένα IPv6 socket να δέχεσαι μόνο IPv6 connections και να
πρέπει να ανοίξεις δεύτερο, IPv4 socket αν θες να μιλάς και IPv4.
Η συμπεριφορά αυτή σε επίπεδο socket ρυθμίζεται μέσω της setsockopt(2)
με την παράμετρο IPV6_V6ONLY. Η default τιμή για τα νέα sockets
καθορίζεται από το /proc/sys/net/ipv6/bindv6only.
Ο apache ακολουθεί επομένως την πρώτη τακτική, ενώ ο sshd αν προσέξεις
έχει δύο sockets, ένα για v4 και ένα για v6.
/Α
Reply to: