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
vmfrbsdffa8bf7b-e39f-4988-9783-2eb95de017ca104857610485762hvmdestroyrestartrestart/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)
vmlns342b0a43-c872-4fc6-aadb-222d654e411d104857610485762hvmdestroyrestartrestart/usr/bin/kvm
==== Etape 4 - VM FreeRadius ====