![Page 1: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/1.jpg)
Virtualisation légère du réseau dans ReactOS
Implémentation des Network Namespace dans le kernel ReactOS
Daniel Maxime – Level IT - 2014
![Page 2: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/2.jpg)
Pourquoi ?
• Mise en place de système d’information privé dans un réseau « cloud » (public)
![Page 3: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/3.jpg)
Virtualisation
• Hyperviseur de type 2
• Hyperviseur de type 1
• Isolation
![Page 4: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/4.jpg)
Hyperviseur type 2
• VirtualBox, VMware Player, …
• Fonctionne sur grand nombre de plateforme
• Système hétérogènes
• Permet l’émulation de matériel
• Lourd en ressources
![Page 5: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/5.jpg)
Hyperviseur type 2
![Page 6: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/6.jpg)
Hyperviseur type 1
• KVM, VMware ESXi, Hyper-V, XEN, …
• Système dédié à la virtualisation
• Systèmes hétérogènes
• Meilleur rentabilité matériel par rapport à l’hyperviseur type 1
• Reste relativement lourd en ressources
![Page 7: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/7.jpg)
Hyperviseur type 1
![Page 8: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/8.jpg)
Isolation
• Un seul kernel
• Instanciation de différentes parties du système (processus, réseau, montage, …)
• Demande peu de ressources
• Système homogène uniquement
![Page 9: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/9.jpg)
Isolateur
![Page 10: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/10.jpg)
Pourquoi faire de l’isolation ?
• Lancer un processus est plus rapide que lancer un système d’exploitation complet
• Peu de ressources gaspillée inutilement
![Page 11: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/11.jpg)
Crash ?
• Même combat mais à un autre niveau
• Crash de l’hyperviseur -> les VM sont down
• Crash du kernel -> la machine est down
![Page 12: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/12.jpg)
Réseau – Couche 1 (physique)
![Page 13: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/13.jpg)
Réseau – Couche 2 (Ethernet)
![Page 14: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/14.jpg)
Réseau – Couche 2 (Ethernet)
Port Adresse MAC
1 00:00:AA:BB:CC:DD
2 00:11:AA:BB:CC:DD
3 FF:11:AA:BB:CC:00
![Page 15: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/15.jpg)
Réseau – Couche 3 (IP)
![Page 16: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/16.jpg)
Réseau switché
![Page 17: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/17.jpg)
Requête ARP
![Page 18: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/18.jpg)
Réponse ARP
![Page 19: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/19.jpg)
Réseau routé
![Page 20: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/20.jpg)
Trame Ethernet
![Page 21: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/21.jpg)
Paquet IP
![Page 22: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/22.jpg)
Paquet IP encapsulé dans une trame Ethernet
![Page 23: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/23.jpg)
Une requête type
![Page 24: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/24.jpg)
Stack IP d’un OS
![Page 25: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/25.jpg)
ReactOS
• Réécriture de l’implémentation de Microsoft Windows NT sous licence GNU GPL
• Binairement compatible
• Loin d’être fini
![Page 26: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/26.jpg)
Kernel Mode/User Mode
• Kernel: espace noyau (driver, gestion de la mémoire et des processus, lien avec le hardware), accès global au système
• User: espace utilisateur (applications classiques), accès restreint et sécurisé au système
![Page 27: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/27.jpg)
Kernel Mode/User Mode
![Page 28: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/28.jpg)
Kernel Mode/User Mode
![Page 29: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/29.jpg)
ReactOS
• Accès au code source du kernel et du user-mode
• Modification et Proof-Of-Concept sur un système suivant l’architecture Microsoft
![Page 30: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/30.jpg)
Isolation du réseau
• Plusieurs stack réseau
• Isolation ethernet et IP
• Table de routages, ARP, …
• Switch virtuel
![Page 31: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/31.jpg)
Test d’isolation
![Page 32: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/32.jpg)
Isolation
![Page 33: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/33.jpg)
Topologie de test
![Page 34: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/34.jpg)
![Page 35: Virtualisation légère du réseau dans React OS](https://reader036.vdocuments.pub/reader036/viewer/2022062304/55acb62f1a28ab205a8b4800/html5/thumbnails/35.jpg)
Développement futur
• Vrai switch virtuel (avec VLAN, etc.)
• Support de virtualisation de processus complet