Bonjour,

Je travaille actuellement sur un système de portail captif principalement pour iPhone. Le système marche très bien avec tous les smartphones... sauf le iphone.

En effet, lorsque l'iPhone se connecte à un AP wifi, il va chercher directement cette page : http://www.apple.com/library/test/success.html

Le soucis, c'est que le système est local et n'est donc pas relié à internet.
Actuellement, l'iphone lance un overlay, ne trouve pas le site d'apple (normal) et tombe donc ensuite sur le contenu du serveur local (ce qui est normal).

Le problème, c'est ce temps de latence où l'iphone cherche le site d'apple.com. Ca prend de 10s à plusieurs minutes (tout dépend de ce que le cache de safari a en mémoire).

J'aimerais donc créer une fausse page apple en local et lorsque mon iphone se connecte sur le routeur wifi, il aille chercher la bonne page qui fasse une redirection.

Je suppose que cela se fait avec bind9 et les vhost d'apache2.
J'ai lu des docs... j'ai fais des test, mais à priori, j'ai une merdouille avec bind9.

Je suis sur une distrib debian Lenny avec apache 2, bind9, php, mysql

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
server-test:/home/apple.com# /etc/init.d/bind9 restart
Stopping domain name service...: bind9rndc: connect failed: 127.0.0.1#953: connection refused
.
Starting domain name service...: bind9 failed!
Voici mes fichiers : /etc/apache/sites-available/apple.com

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<VirtualHost *>
        ServerAdmin postmaster@apple.com
        ServerName www.apple.com
        ServerAlias apple.com *.apple.com
        DocumentRoot /home/apple.com/
        <Directory /home/apple.com/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride All
        </Directory>
        ErrorLog /home/apple.com/logs/error.log
        LogLevel warn
        CustomLog /home/apple.com/logs/access.log combined
        ServerSignature Off
</VirtualHost>
mon fichier named.conf

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
zone "apple.com" {
        type master;
        file "/etc/bind/db.apple.com";
}
mon fichier named.conf.options

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
options {
        directory "/var/cache/bind";
 
        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113
 
        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.
 
        // forwarders {
        //      0.0.0.0;
        // };
 
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
        allow-recursion { localhost; };
};
mon fichier db.apple.com

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
$ttl 86400
apple.com.      IN      SOA     apple.com. webmaster.apple.com. (
                                        2010020100
                                        21600
                                        3600
                                        604800
                                        86400 )
apple.com.      IN      A               192.168.10.9
Server          IN      A               192.168.10.9
www             IN      A               192.169.10.9
J'utilise comme routeur wifi un Buffalo Air Station G WHR-HP-G54.

Help me please. Ca fait plusieurs semaines que je butte sur ce problème et cette solution me semble la dernière qui ait une chance de marcher :s

Merci