Intitulé du projet / étude ===== Contact ===== * Alves, Fernando, (fendo) * fernando(point)alves(at)sameswireless.fr ===== Présentation ===== Exemple de création d'un environnent de test réseau, à l'aide de VMs KVM, composé d'un serveur LAC pppoe (ou autre support ppp), d'un serveur LNS et d'un serveur Freeradius. ===== Avancement ===== Cette environnement a été testé sur un OS hôte Debain 6.0.4-amd64 installé sur un Dell R415 avec comme système de fichier LVM. ==== Etape 1 - Machine Hôte ==== Configuration minimum de la machine : * CPU 64 bits. * processeur multi-core supportant la virtualisation. Installation des packages: apt-get install bridge-utils apt-get install qemu-kvm libvirt-bin apt-get install kpartx Activer IP forward dans /etc/sysctl.conf: "net.ipv4.ip_forward=1" Bridger l'interface eth0 (pour que les VM soit accessible de l'extérieur), configuration dans le fichier "/etc/network/interface": auto br0 iface br0 inet manual # utiliser static si affectation d'une IP a l'interface bridge #iface br0 inet static # address 192.168.0.254 # netmask 255.255.255.0 # broadcast 192.168.0.255 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 == Création d'une VM Modèle Debian Linux == Créer une VM Linux Debian modèle de 10G avec VMM (Virtual Machine Manager, en remote depuis pc client), choisir image type raw. (Exemple : /var/lib/libvirt/images/vm_modele.img).Choisir "Interface réseau virtuelle/Spécifiez le nom du périphérique partagé/Nom du pont = br0". Lors de l'installation activer OpenSSH et configurer l’environnement selon ses préférences. \\ \\ installer le package VLAN: vmmodele:~# apt-get install vlan La VM peut ensuite être supprimé mais il faut conserver une copie de l'image (vm_modele.img) et du fichier xml (/etc/libvirt/qemu/vmmodele.xml) qui nous servira a créer les VM suivantes a base de Linux Debian.\\ ==== Etape 2 - VM FreeBSD MPD5 ==== __Création d'un LV pour la VM FreeBSD__ :~# lvcreate -n lvfrbsd -L 10g h415 Télécharger la dernière version iso de FreeBSD (ex: FreeBSD-9.0-RELEASE-amd64-....iso). Utiliser virsh ou VMM pour créer la VM en utilisant le LV "/dev/h415/lvfrbsd". Ne pas utiliser les drivers Virtio lors de l'installation car il ne sont pas disponibles par défaut dans FreeBSD.\\ Lors de l'installation activer OpenSSH et configurer l’environnement selon ses préférences.\\ \\ Installer les applications: [root@freebsblac /root]# pkg_add -r wget [root@freebsblac /root]# pkg_add -r mpd5 [root@freebsblac /root]# wget http://people.freebsd.org/~kuriyama/virtio/9.0/virtio-kmod-0.228301.tbz [root@freebsblac /root]# pkg_add virtio-kmod-0.228301.tbz Editer/Crèer le fichier "/boot/loader.conf" et ajouter ces lignes: virtio_load="YES" virtio_pci_load="YES" virtio_blk_load="YES" if_vtnet_load="YES" virtio_balloon_load="YES" Modifier "fstab" et "rc.conf" pout utilisation de virtio: [root@freebsblac /etc]# sed -i.bak -Ee 's|/dev/ada?|/dev/vtbd|' /etc/fstab [root@freebsblac /etc]# sed -i.bak -e 's|em0|vtnet0|' /etc/rc.conf configuration réseau et MPD dans fichier "/etc/rc.conf" hostname="freebsblac" keymap="fr.iso.acc.kbd" # LAN Interface get ip by DHCP ifconfig_vtnet0="DHCP promisc" # VLAN11 LAC <--> LNS cloned_interfaces="vlan11" ifconfig_vlan11="inet 10.0.11.253 netmask 255.255.255.0 vlan 11 vlandev vtnet0" ifconfig_vlan11_alias0="ether 52:54:00:79:11:27" # Static route to the tun l2tpns static_routes="l2tpns" route_l2tpns="-net 62.5.16.41/32 10.0.11.252" sshd_enable="YES" ntpd_enable="YES" # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable dumpdev="AUTO" # Set MPD mpd_enable="YES" mpd_flags="-b -s ppp" Configuration de MPD5 en LAC pppoe: [root@freebsblac /root]# cat /usr/local/etc/mpd5/mpd.conf default: create link template PPPX pppoe set pppoe iface vtnet0 set link action forward L2TPNS set link enable incoming create link template L2TPNS l2tp set l2tp peer 62.5.16.41 set l2tp secret totolns Arrêter la VM et modifier la configuration (à l'aide de VMM ou manuellement dans fichier xml) pour utiliser les drivers virtio (disque et réseau). root@hote:/etc/libvirt/qemu# cat vmfrbsd.xml vmfrbsd ffa8bf7b-e39f-4988-9783-2eb95de017ca 1048576 1048576 2 hvm destroy restart restart /usr/bin/kvm
==== Etape 3 - VM LNS (L2TPNS) ==== __Création de la VM LNS à partir de vm_modele.img:__ root@hote:~# lvcreate -n lvlns -L 10g h415 root@hote:~# dd if=/var/lib/libvirt/images/vm_modele.img of=/dev/h415/lvlns __Monter la partition root de la VM LNS__ root@hote:~# kpartx -av /dev/hote/lvlns root@hote:~# mount /dev/mapper/hote-lvlns1 /mnt/vm Modifier le fichier "/home/mnt/etc/hosts" et "/home/mnt/etc/hostname" pour qu'ils reflétent le nom de la nouvelle VM. \\ Editer le fichier "/home/mnt/etc/network/interfaces": # The loopback network interface auto lo iface lo inet loopback # LNS <---> INTERNET auto eth0 iface eth0 inet dhcp # VLAN LNS <---> RADIUS auto eth0.10 iface eth0.10 inet static address 10.0.10.252 netmask 255.255.255.0 broadcast 10.0.10.255 network 10.0.10.0 hwaddress ether 52:54:00:91:0e:0f # VLAN LNS <---> LAC auto eth0.11 iface eth0.11 inet static address 10.0.11.252 netmask 255.255.255.0 broadcast 10.0.11.255 network 10.0.11.0 hwaddress ether 52:54:00:91:0e:10 __Démonter la partition root de la VM LNS__ root@hote:~# umount /mnt/vm root@hote:~# kpartx -dv /dev/hote/lvlns __Copier vmmodele.xml__ root@hote:~# cp /etc/libvirt/qemu/vmmodele.xml /etc/libvirt/qemu/vmlns.xml __Générer un UUID,Editer et modifier le fichier vmlns.xml__ root@hote:~# uuidgen 342b0a43-c872-4fc6-aadb-222d654e411d Modifier name, uuid, disk (device, source..) et interface (type, mac address, source bridge) vmlns 342b0a43-c872-4fc6-aadb-222d654e411d 1048576 1048576 2 hvm destroy restart restart /usr/bin/kvm
==== Etape 4 - VM FreeRadius ====