[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: