IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

IPv6 comment faire ?


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Par défaut IPv6 comment faire ?
    Salut,

    J'ai une petite application serveur qui tourne pour l'instant parfaitement bien en IPv4. J'aimerais faire en sorte qu'elle fonctionne aussi en IPv6, histoire d'être prêt quand ça arrivera.

    J'ai fait pas mal de recherches sur le sujet, mais j'en encore quelques questions sans réponse.

    Pour commencer, est-ce qu'il est possible de redévelopper l'application pour qu'elle n'utilise que l'IPv6 mais continue de traiter les demandes venant des adresses en IPv4 (soit parce qu'on a pu convertir l'IPv4 en IPv6, soit parce qu'au niveau de la machine serveur on a pu mettre un tunnel ou je ne sais pas trop quoi qui convertit l'IPv4 en IPv6).
    Si ce n'est pas possible, y a-t-il un moyen d'écouter sur un port et de ne pas préciser d'IP pour ainsi recevoir les demandes de l'IPv4 et IPv6 ?
    Si c'est impossible, quelles sont les recommandations pour faire un serveur qui fonctionne aussi bien en IPv4 qu'en IPv6, faut-il créer 2 sockets serveurs une en IPv4 et une en IPv6 et écouter sur les deux simultanément ?

    Bref j'avoue que j'ai du mal à voir comment régler ce problème facilement. Ce que j'aimerais c'est n'avoir plus que l'IPv6 plutôt que de devoir traiter les deux demandes de façon indépendante.

    Si ça joue en quoi que ce soit, le serveur est destiné à tourner sur une debian et j'utilise la librairie boost.

    Je vous remercie pour les réponses/conseils que vous pourrez m'apporter !

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    En fait c'est un poil compliqué...

    Pour des raisons 'historiques', un socket doit être 'bindé' à une address-family (AF_INET pour IPv4, AF_INET6 pour IPv6)
    Il me semble que certains OS décident de passer l'IPv4 sur l'IPv6 à travers un "silent" tunnel, mais la recommandation de l'IETF est de ne *pas* le faire (afin de bien séparer distinctement les deux protocoles).

    Donc... grosso merdo... Sous windows, il *peut* suffire d'écouter en IPv6 et recevoir les requêtes IPv4 quand même. Mais pas sous Linux par exemple.

    Le mieux est encore d'avoir deux sockets, un en IPv4, l'autre en IPv6, et faire soit même les traductions. Cela ne demande pas 2 threads, juste deux sockets.

    Quant au "quand ca arrivera", se traduit par *maintenant* Tous les windows actuels ont IPv6 installé, et se mettront en IPv6 dès que leur routeur déclarera une route Tous les programmes récents (et correctement réalisés) utilisent indistinctement Ipv6 ou Ipv4... Il ne reste plus que les ISPs donc...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Par défaut
    Merci d'avoir répondu !

    J'avais espéré ne pas devoir conserver les deux interfaces, mais si je n'ai pas le choix, je vais faire comme ça ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 10h31
  2. comment faire evoluer ma base vers interbase6
    Par toure32 dans le forum InterBase
    Réponses: 5
    Dernier message: 23/10/2002, 10h59
  3. Réponses: 8
    Dernier message: 18/09/2002, 03h20
  4. Comment faire pour mettre l'ecran en veille ?
    Par March' dans le forum MFC
    Réponses: 6
    Dernier message: 29/08/2002, 14h25
  5. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo