Windows Vista, Windows Server 2008, IPv6 et les applications - Bernard Ourghanlian Chief Technology & Security Officer Microsoft France

 
CONTINUER À LIRE
Windows Vista, Windows Server 2008, IPv6 et les applications - Bernard Ourghanlian Chief Technology & Security Officer Microsoft France
Windows Vista, Windows
Server 2008, IPv6 et les
applications
Bernard Ourghanlian
Chief Technology & Security Officer
Microsoft France
Windows Vista, Windows Server 2008, IPv6 et les applications - Bernard Ourghanlian Chief Technology & Security Officer Microsoft France
La vision d’un réseau
« sans couture »

        Zone de
       confiance                  Internet EST votre réseau
                                  Les applications
                   Indigne de      fonctionnent normalement
                    confiance     Toutes les
                                   communications sont
                                   authentifiées
 Isolation IPsec
                                  Les frontières de confiance
                                   sont définies par des
                    •   Labo
                                   politiques et pas par la
                    •   Invité
                                   topologie du réseau
Windows Vista, Windows Server 2008, IPv6 et les applications - Bernard Ourghanlian Chief Technology & Security Officer Microsoft France
IPv6 : une composante de
base clé
   La vision du réseau
    « sans couture »
    nécessite un nouveau
    paradigme
       Connectivité aisée et
        de bout en bout
       Sécurité
       Mobilité
   IPv6 est nécessaire
    pour supporter un tel
    réseau
Windows Vista, Windows Server 2008, IPv6 et les applications - Bernard Ourghanlian Chief Technology & Security Officer Microsoft France
Comment j’utilise IPv6
                     Internet
aujourd’hui ?
                                                   Client               Client
                                                   conforme             conforme
              Serveurs
              NAP / NPS                                                                PC domestique
                                                                                       dument provisionné

                                            Serveur IPsec
                                            périmétrique,
                                            permettant la          Présuppose que le réseau sous-jacent est
Utilisateur
CORPNET                                     prévention des DOS             toujours non sécurisé

                                                                 Redéfinit le frontière du réseau CORPNET pour
                Data Center et ressources                         « cocooner » le datacenter et les ressources
                critiques                                                             critiques
                                                  Utilisateur
                Réseau                            CORPNET

                compatible                                       Les utilisateurs sont « distants » tout le temps

                CORPNET
Windows Vista, Windows Server 2008, IPv6 et les applications - Bernard Ourghanlian Chief Technology & Security Officer Microsoft France
IPv6 est en fonction avec
    Vista et Windows Server
    2008
   Tous les composants de Vista et de Windows
    Server 2008 sont capables d’utiliser IPv6
       Certains composants ne sont utilisables qu’en
        IPv6
   IPv6 est en service par défaut et préféré
       Contrôlable via des politiques de groupe
   Tous les produits de Microsoft de la « vague
    2008 » sont capables d’utiliser IPv6
   Configuration graphique
   Support complet d’IPsec
Windows Vista, Windows Server 2008, IPv6 et les applications - Bernard Ourghanlian Chief Technology & Security Officer Microsoft France
De nombreuses nouvelles
fonctionnalités réseau avec
Vista et Windows Server 2008
   Nouvelle pile TCP/IP
   Domain Name System
   Quality of Service
   Server Message Block 2.0
   Améliorations Http.sys
   Améliorations WinINet
   Améliorations Windows Sockets
   Network Device Interface Specification (NDIS) 6.0 et
    6.1
   Conscience du réseau
   Améliorations Windows Peer-to-Peer
   Améliorations Windows Firewall
   Améliorations Internet Protocol security (IPsec)
Windows Vista, Windows Server 2008, IPv6 et les applications - Bernard Ourghanlian Chief Technology & Security Officer Microsoft France
L’architecture réseau de
Windows Vista
                            Winsock                                                 Mode User
                                                                             Mode Kernel
                                                        Clients TDI
   Clients WSK
                                  AFD                      TDI
      WSK                                                  TDX
                                    Nouvelle pile TCP/IP (tcpip.sys)

                                                                       Inspection
              TCP                 UDP                RAW

                                                                          API
                    IPv4                        IPv6

      802.3                         Loop-       IPv4        IPv6
                WLAN       1394     back       Tunnel      Tunnel

                              NDIS
Architecture Dual Stack
                          Application
                            Layer

                TCP/UDP                 TCP/UDP

                 IPv6                     IPv4

       0x86dd                                     0x0800
                           Network
                        Interface Layer

   Pile 4 et 6, choix selon la réponse DNS et préférence
    de l’application
   Exemple : Windows 2003, Windows 2000, Linux
Architecture Dual IP Layer

                   Application
                     Layer

          Transport Layer (TCP/UDP)

           IPv6                     IPv4

                     Network
                  Interface Layer

 Exemple : Windows Vista ou Windows
 Server 2008
Performances !
   Améliorations majeures
       Auto ajustement de la fenêtre de réception
       Compound TCP (CTCP) pour LANs très
        rapides
       ECN (Explicit Congestion Notification)
         Les routeurs trop chargés peuvent marquer
           les paquets pour que les nœuds
           ralentissent leur émission et que l’on
           puisse réduire la perte de paquets
       Meilleur support des réseaux avec perte (ex :
        réseau sans fil dans zones encombrées)
         RFC 2582, 2883, 3517, 4138
       Des fonctionnalités intéressantes d’IPv6
        maintenant disponibles avec IPv4
         Par exemple : Neighbour Unreachability
           Detection
Les principaux bénéfices
de cette nouvelle pile
   Autre qu’IPv6 bien sûr 
       Un modèle de programmation et des API plus
        simples (spécialement en mode kernel)
       Nouveau modèle de sécurité – empêche de
        nombreuses attaques
       Nouvelles API de filtrage et contrôle
         Windows Filtering Platform
       Support pour un « déchargement » de la pile vers
        le hardware réseau
         Utile pour les serveurs et les périphériques
            réseau, donc principalement pour Windows
            Server 2008
       Meilleur passage à l’échelle en multiprocesseur
         Les paquets sont distribués sur les différents
            processeurs
             Ce n’était pas possible avant en raison des
               limitations de NDIS 5.1
Sécurité
   Jusqu’à aujourd’hui, résistance à
    toutes les attaques TCP/IP en déni de
    service
       On croise les doigts 
   IPv6 et Vista ou Windows Server 2008
    pour d’avantage de sécurité
       Pas de support d’IPsec avec la pile IPv6
        dans les versions antérieures (supporté
        seulement avec IPv4…)
Les problèmes de
migration IPv4 vers IPv6
   Il y a deux problèmes clés pour
    migrer vers IPv6
         La migration des applications
         La migration des infrastructures
   Ce sont deux problèmes séparés qui
    n’ont pas besoin d’être résolus
    simultanément
         Les applications peuvent migrer sans
          mise à jour de l’infrastructure
         Les technologies de transition
          permettent une migration graduelle
          des infrastructures
Les moteurs de la
  migrations d’infrastructure
Problème                 Solution IPv6     Détails
Prolifération des        Large espace      Résout les problèmes d’adressage
périphériques            d’adressage       des périphériques et les besoins du
adressables                                DoD (par exemple…)
Consolidation réseau     Large espace      Résout les problèmes de conflits
                         d’adressage       d’adressages créés par les
                                           acquisitions et fusions
Agilité du déploiement   Instant network   Motivation partielle pour certains
                                           clients
Éviter les attaques de   Amélioration de   Intéresse notamment les institutions
type man-in-the-         la sécurité       financières
middle                   (secure
                         neighbor
                         discovery)
Services données         Large espace      La plupart des fournisseurs de
fiables pour les         d’adressage       solutions mobiles considèrent IPv6
mobiles                  Mobilité          comme une source potentielle de
                                           nouveau revenu
Les problèmes de la
transition
   La transition vers IPv6 va prendre des années
       Des machines continueront indéfiniment avec IPv4 !
       Une migration est un projet de long terme ; la coexistence est
        obligatoire

   Les défis
       Les machines IPv4 doivent pouvoir être mises à jour
        indépendamment de la mise à jour de routeurs ou d’autres
        machines
       De nouvelles machines IPv6 natives doivent pouvoir être
        ajoutées sans modification sur les routeurs et autres
        machines
       Les machines IPv4 existantes implémentant IPv6 doivent
        pouvoir continuer de fonctionner sans adresse
        supplémentaire
       Il faut consentir à des efforts minimes pour passer une
        machine de IPv4 à IPv6 ou pour déployer de nouvelles
        machines
Gérer la transition
   Il n’est PAS nécessaire de migrer massivement
    l’infrastructure pour faire fonctionner IPv6
   D’abord, utilisation de technologies de
    migration
       Tunnelling
         6to4 et ISATAP permettent de faire circuler
          des paquets IPv6 sur un réseau IPv4
         Teredo permet d’encapsuler de l’IPv6 dans
          des paquets UDP
   Puis, déploiements natifs
       Dual stack ou dual IP layer
         Supporter nativement les 2 protocoles
         Eteindre IPv4 le jour venu…
Support de 6to4 dans
Windows
   Si la machine a une adresse IPv4 publique
       Windows s’autoconfigure une adresse 6to4
       Requête 6to4.ipv6.microsoft.com pour
        bénéficier d’un relais public 6to4 (d’autres
        sont possibles…)
       2002:WWXX:YYZZ::WWXX:YYZZ
   Avec ICS, configuration automatique de la
    machine comme routeur 6to4
       Active le forwarding
       Envoie les messages de router advertisement
        avec préfixes 6to4
       Requête 6to4.ipv6.microsoft.com pour
        bénéficier d’un relais public 6to4
Utilisation des technologies
de transition
   Si la machine reçoit un message de Router
    Advertisement
       Utilisation de la connectivité IPv6 native
   Si la machine reçoit un Router Advertisement
    ISATAP
       Utilisation d’ISATAP
       Stoppe l’utilisation d’autres technologies
   Si la machine a une adresse IPv4 publique
       Utilisation de 6to4
       Stoppe l’utilisation d’autres technologies
   Si la machine a une connectivité IPv4 privée
       Utilisation de Teredo
Transition en douceur
   6to4, ISATAP et Teredo font partie de
    Windows et sont installés
    automatiquement
   Les constructeurs de routeurs supportent
    ces protocoles
       Par exemple, Cisco supporte : 6to4, ISATAP
   Chacune de ces technologies fournit des
    outils nouveaux pour les réseaux
    d’entreprise
       Support réseau plus délicat durant cette
        période
       Gestion de la sécurité à prendre en compte
Comment commencer ?
   Pas besoin d’un préfixe IPv6 en
    provenance d’un RIR pour débuter…
   Sur le réseau local
       ISATAP
       Dual Stack ou Dual IP Layer
   Pour l’Internet
       Connectivité IPv4 publique : utilisation de
        6to4
       Utilisateur derrière un NAT : utilisation de
        Teredo
Teredo pour la connectivité
Internet
   Automatiquement paramétré avec Vista
    et Windows Server 2008
       XP/2003 si la pile IPv6 est installée
   Derrière un NAT/Firewall qui autorise
    UDP en sortie
Les moteurs de la
migration d’applications
Problème         Solution IPv6     Détails
Traversée des    Large espace      La solution permet aux applications
NAT              d’adressage et    de fonctionner sans changement
                 Teredo            avec ou sans NAT
Réseau           Instant network   Les applications peuvent passer
opérationnel                       sans heurt d’un mode ad hoc à un
instantanément                     mode connecté
                                   Solution ad hoc plus robuste
                                   qu’avec IPv4
Vie privée       Large espace      Les applications peuvent utiliser
                 d’adressage       une adresse IP unique par
                 (adresses         application ou par connexion
                 temporaires)
Mobilité temps   Support de la     La mobilité est transparente pour les
réel             mobilité          applications
                                   Possibilité d’implémentation sans
                                   mise à jour de l’infrastructure
La migration des
applications vers IPv6
   Toutes les applications ne devront pas faire
    face à des problèmes majeurs de migration
         Les applications utilisant des abstractions de
          haut niveau verront peu ou pas de problèmes
         .NET Frameworks, RPC, WinInet, Direct Play,
          plus les autres abstractions IPv6
   Les applications faisant face à des problèmes
    de migration présentent généralement les
    caractéristiques suivantes
         Dépendance de la taille des adresses
         Dépendance de la taille ou la syntaxe des noms
         Interface homme - machine qui affiche des
          adresses IP
         Configuration fondées sur des adresses IP
         Protocoles qui embarquent des adresses IP
          dans le message
La migration des
applications vers IPv6
   Nous fournissons des outils et des APIs pour
    simplifier la migration
       Plug-In pour PreFast afin d’identifier les zones de problèmes
         Intégré en standard avec Visual Studio
         A permis la correction de 5000 problèmes dans 17
            composants pour Windows Server 2008
       Configuration avec une pile IPv6-only disponible pour
        Windows Server 2008
       Extensions des API Winsock offrant une compatibilité
        arrière
   Le test des applications est souvent le plus gros
    effort de la migration
       Données pour des migrations passées :
         IIS 6.0 : ~3 semaines de développement, ~3 mois de test
         WMS : ~1 mois de développement, ~4 mois de test
IPv6 et le .NET Framework
   Qu’est-ce qui fonctionne au-dessus d’IPv6 avec
    Windows Server ?
       Sockets
       DNS
       HTTP
       Services Web XML
   IPv6 dans System.NET
       Support fourni pour
         IPAddress : support d’IPv4 et IPv6
         DNS : retourne les adresses IPv4 et IPv6
         HttpWebRequest / HttpWebResponse
         TcpClient / TcpListener / UdpClient
   IPv6 dans les Services Web XML
       Support fourni pour
         Publier un service dans un .ASMX
         Consommer le service en utilisant
           WebClientProtocol
IPv6 et les applications
WIn32
   Puisque Winsock est une évolution des
    sockets BSD les choses sont assez
    simples
       Les API « cœur » sockets sont inchangées, il
        faut juste utiliser une famille différente de
        protocole : sockaddr_in6 au lieu de
        sockaddr_in
       Utiliser getaddrinfo(), pas gethostbyname()
       Utiliser getnameinfo(), pas gethostbyaddr()
   Portage des applications
       Utiliser l’outil CheckV4
       Être agnostique par rapport au protocole
         Utiliser les API de haut niveau qui le sont
Portage des applications
   La plupart des applications peuvent être
    écrites de manière indépendante du
    protocole
       Exemple : le client Telnet a pris moins de 2
        heures à être porté de manière
        indépendante du protocole
   Utiliser des API indépendantes du
    protocole partout où c’est possible
       Winsock, RPC, Direct Play, sockets .NET,
        etc.
Utilitaire Checkv4
   Parcours le code afin de contrôler les utilisations
    spécifiques à IPv4
   Trouve les zones de problème et suggère des
    changements
    test.c(35) : gethostbyname : use getaddrinfo
       instead
    test.c(48) : SOCKADDR_IN : use SOCKADDR_STORAGE
       instead, or use SOCKADDR_IN6 in addition for
       IPv6 support
   Situé dans le Platform SDK
   Essayer de compiler avec –DIPV6STRICT
       Les structures et les API spécifiques à IPv4
        génèrent des erreurs
   Utiliser le newsgroup
    microsoft.public.platformsdk.networking.ipv6
Différences d’adressage
   Les adresses sont plus grandes (128 bits)
   Toutes les interfaces ont typiquement
    plusieurs adresses
       Ne pas identifier une interface par une adresse
        Les adresses non globales ne sont pas
        
        uniques
   Les adresses peuvent être configurées
    automatiquement
       D’après les préfixes annoncés par les routeurs
       D’après les adresses IPv4 (pour le tunneling)
   Les adresses non globales ont des scope
    identifiers
       Supprime les ambiguïtés en cas de multi-homing
   Les adresses « Anycast » sont bien définies
D’autres différences
   Les mécanismes de tunneling
    automatique ont pour conséquence que
    l’on a toujours plusieurs interfaces
   Tout le trafic IP (y compris ARP) peut
    être sécurisé
   IP n’a plus de checksum ; tous les
    protocoles de plus haut niveau doivent
    donc en avoir un
   En-tête de longueur fixe, nombre
    variable d’en-têtes d’extension
Fonctions Sockets
   Les API de base ne changent pas
       Utiliser la famille et les structures d’adresse IPv6
       socket() utilise PF_INET6
   Fonctions qui passent des adresses :
       bind()
       connect()
       sendto()
   Fonctions qui retournent des adresses :
       accept()
       recvfrom()
       getpeername()
       getsockname()
Stockage et gestion de
sockaddrs
   Ne PAS stocker les adresses dans DWORD ou
    ULONG !
   sockaddrs préserve également le scope
    identifier
    struct sockaddr_in6   {
        sa_family_t       sin6_family;
        in_port_t         sin6_port;
        uint32_t          sin6_flowinfo;
        struct in6_addr   sin6_addr;
        uint32_t          sin6_scope_id;
    };
   Ne pas oublier de stocker également la
    longueur de sockaddr de manière indépendante
    du protocole
Ne pas déclarer les variables
sockaddr ou sockaddr_in
   Trop petit pour détenir les adresses IPv6
   sockaddr_storage est suffisamment
    grand pour détenir des adresses IPv4 ou
    IPv6
   Ou bien allouer dynamiquement la
    bonne longueur retournée depuis les
    différentes API
Applications Client
   Résoudre les noms avant d’ouvrir le
    socket
    getaddrinfo(...)
    s = socket(ai->ai_family,
      ai->ai_socktype, ai->ai_protocol);
    connect(...)

      Et PAS
    s = socket(AF_INET, SOCK_xxx, 0);
    gethostbyname(...)
    connect(...)
Applications Serveur
   Avec Windows Server, utiliser deux
    listening sockets, une pour IPv4, une
    pour IPv6
       Dans le futur, ceci devrait être possible
        avec juste une (une seule pile !)
   Le service doit démarrer dès que l’une
    ou l’autre des sockets peut être ouverte
       On peut utiliser getaddrinfo() ou
        WSAEnumProtocols() pour énumérer
Autres conseils
   Ne pas réordonner les adresses soi-
    même
       getaddrinfo() fait le travail pour vous

   Ne pas essayer juste la première
    adresse en oubliant le reste…

   Utiliser et stocker les noms, pas les
    adresses
Maintien du même binaire

   Ce n’est pas un problème !
   Utiliser simplement un code indépendant du
    protocole, y compris en utilisant les nouvelles
    API
   Si l’on compile en utilisant le dernier SDK,
    l’API getaddrinfo sera disponible quelle que
    soit la plate-forme sur laquelle vous travaillez
   Le binaire résultant détecte automatiquement
    si les fonctions sont disponibles de manière
    native, et sinon, les fait correspondre avec les
    API IPv4
   Pour mettre cette fonction hors service, définir
    _WIN32_WINNT à >= 0x0500
Migration de v4 à v6
           Description de la méthode de    Besoins pour le    Coût     Disponibilité
                   déploiement              déploiement      relatif   aujourd’hui

                                                                             Les
                                          Applications                  applications
           Déploiement des applications   compatibles                   compatibles
Option A                                                       ~0
           au fur et à mesure             IPv6, services               IPv6 sont déjà
                                          Teredo                       disponibles en
                                                                          nombre
           Déploiement de technologies
                                                                       Support HW &
Option B   de transition dans une         ISATAP, 6to4         €€
                                                                       SW disponible
           infrastructure v4 existante

                                          Mise à jour de                Support HW
Option C   Dual-stack                                         €€€
                                          l’Infrastructure               disponible
                                                                       Connectivité
                                          Connectivité                 disponible en
Option D   IPv6 Natif                                        €€€€
                                          IPv6                             Asie &
                                                                       Europe, U.S.
Un message clé : n’attendez
pas !
   Un environnement natif IPv6 n’est PAS un
    pré-requis pour réaliser les bénéfices de v6
   Les développeurs d’application peuvent
    utiliser IPv6 MAINTENANT
   IPv4 existera encore pendant longtemps
   Les technologies de tunneling permettent une
    coexistence harmonieuse entre IPv4 et IPv6

       http://www.microsoft.com/ipv6
Questions ?
Vous pouvez aussi lire