Info16.fr

Le blog de B@rtounet

#Gnu/Linux

Migration de mon serveur dédié Dedibox vers un serveur Xen

27 juillet 2011 Rédigé par bartounet

Je disposais depuis un bon moment d'un serveur Dédibox V2. Ce serveur était vieillissant et très chargé. Il hebergeait mon blog, mon site perso, un serveur de messagerie, un serveur DNS, un serveur Teamspeak, Jabber et j'en oublie surement. J'ai donc décidé de migrer sur un serveur plus puissant et de virtualiser l'ensemble. je me suis tourné vers un serveur Kimsuffi 750G ( 4 Q6600 4x 2.40+ GHz 4 Go et 750Go hdd). Un serveur largement dimensionné pour remplacer ma dédibox mais qui me permettra de faire pas mal de tests et de provisionner plusieurs serveurs virtuels. J'ai donc décidé d'installer un serveur Xen ( Dom0 Opensuse 11.1) et d'éclater mon serveur dédibox en 4 Machines virtuelles paravirtualisées sous Ubuntu Server 9.10 64 bits. J'ai faits ce choix, car j'ai quelques compétences sous Xen et Suse LInux Enterprise mais par contre je préfère administrer des serveurs Ubuntu. Voiçi un court résumé de mon infra Excusez moi pour le schéma j'ai pas trop l'habitude de Dia infraxen Commençons par le début: Sachant que kimsufi ne propose pas par défaut une installation d'OS qui me convenait, j'ai décidé d'installer moi même une Opensuse11.1. Premier problème ovh a fait le choix d'utiliser encore LILO comme gestionnaire d'armocage.. j'ai donc dut très vite réinstaller un grub afin de pouvoir me lancer dans la net install d'opensuse. je ne vais pas réécrire ce que j'ai déjà mis dans ce blog. je vous invite à me relire ici. http://blog.info16.fr/?p=10 Une fois grub installé on peut se lancer dans une net install d'openSuse. Même chose, j'ai déjà écris un article sur la question. http://blog.info16.fr/?p=31 Durant l'installation pas de problème particulier. J'ai opté pour le partitionnement suivant: /boot --> 128 Mo (ext3) / --> 16Go (xfs) swap -->2Go LVM2 pour le reste ( lvm servira a faire des periphériques blocs pour les DomU) (680Go) J'ai installé Xen directement, lors du choix des softwares durant l'install. Je ne m'étend pas trop sur l'installation d'openSuse qui reste sommes toutes assez simple. Une fois l'installation terminée, n'oubliez pas de paramétrer votre grub pour qu'il boot par défaut sous Xen.
# Modified by YaST2. Last modification on Mon Nov 23 09:55:28 CET 2009 default 0 timeout 8 ##YaST - generic_mbr gfxmenu (hd0,0)/message ##YaST - activate ###Don't change this comment - YaST2 identifier: Original name: xen### title Xen -- openSUSE 11.1 - 2.6.27.37-0.1 root (hd0,0) kernel /xen.gz module /vmlinuz-2.6.27.37-0.1-xen root=/dev/disk/by-id/ata-ST3750640AS_5QD16XRN-part2 resume=/dev/disk/by-id/ata-ST3750640AS_5QD16XRN-part3 splash=silent showopts module /initrd-2.6.27.37-0.1-xen ###Don't change this comment - YaST2 identifier: Original name: linux### title openSUSE 11.1 - 2.6.27.37-0.1 root (hd0,0) kernel /vmlinuz-2.6.27.37-0.1-default root=/dev/disk/by-id/ata-ST3750640AS_5QD16XRN-part2 resume=/dev/disk/by-id/ata-ST3750640AS_5QD16XRN-part3 splash=silent showopts initrd /initrd-2.6.27.37-0.1-default ###Don't change this comment - YaST2 identifier: Original name: failsafe### title Failsafe -- openSUSE 11.1 - 2.6.27.37-0.1 root (hd0,0) kernel /vmlinuz-2.6.27.37-0.1-default root=/dev/disk/by-id/ata-ST3750640AS_5QD16XRN-part2 showopts ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe initrd /initrd-2.6.27.37-0.1-default
Une fois rebooté sous Xen il faut commencer par quelques petites modifications. Tous d'abord je souhaite faire du NAT. En effet n'ayant qu'une adresse IP publique sur ma kimsufi, je dois configurer mes domU avec des ip locale et faire du nat pour qu'elles accèdent à l'exterieur. Pour commencer, paramétrons Xen pour faire du Nat. Tout se passe dans le fichier /etc/xen/xend-config.sxp Pour se faire, changeons les éléments suivants.
(network-script network-nat) # If you are using only one bridge, the vif-bridge script will discover that, # so there is no need to specify it explicitly. # (vif-script 'vif-bridge bridge=br0') # enable-dom0-ballooning below) and for xm mem-set when applied to dom0. (dom0-min-mem 512) # Whether to enable auto-ballooning of dom0 to allow domUs to be created. # If enable-dom0-ballooning = no, dom0 will never balloon out. (enable-dom0-ballooning yes) # In SMP system, dom0 will use dom0-cpus # of CPUS # If dom0-cpus = 0, dom0 will take all cpus available (dom0-cpus 0) # set this to 0.0.0.0 (vnc-listen '0.0.0.0') # The default password for VNC console on HVM domain. # Empty string is no authentication. (vncpasswd '')
On peut remarquer que j'utilise le script: {network-script network-nat} Mais par contre j'utilise (vif-script 'vif-bridge bridge=br0') Il faut bien distinguer 2 choses: - network-script est un script lancé par Xen au démarrage du daemon Xen. Donc en mettant network-nat, il va mettre en place les règles nat (ip-forwarding, masquerade etc..) necessaires. -vif-script est le script qui va etre lancé au demarrage des domU. et qui va décider comment va être relié les interfaces réseaux des domU et du Dom0. Pour ma part j'ai décidé de creer un bridge ( switch virtuel) nommé br0 avec une ip en 192.168.1.254/24 et grace vif-bridge, toutes les interface de mes DomU vont s'attacher à ce bridge. Pour creer ce fameux bridge on peut utiliser les fichiers directement dans /etc/sysconfig/network, mais le plus simple reste de passer par yast. yastbr0 On redemarre Xen , on peut vérifier nos deux interfaces réseaux.
linux:~ # ifconfig br0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet addr:192.168.1.254 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::3c8b:16ff:fe67:b2b7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:425920 errors:0 dropped:0 overruns:0 frame:0 TX packets:476880 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:143058546 (136.4 Mb) TX bytes:233932702 (223.0 Mb) eth0 Link encap:Ethernet HWaddr 00:1C:C0:FD:69:A3 inet addr:94.x.x.21 Bcast:94.23.236.255 Mask:255.255.255.0 inet6 addr: fe80::21c:c0ff:fefd:69a3/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5211844 errors:0 dropped:0 overruns:0 frame:0 TX packets:9516144 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:568921568 (542.5 Mb) TX bytes:13470776595 (12846.7 Mb) Interrupt:252 Base address:0xc000
Le plus dur reste à faire. préparer notre template de DomU qui nous servira d'image pour toutes nos machines virtuelles. Tout d'abord la première chose à faire est de récupérer les images iso des distributions que nous allons installer. Pour ma part j'ai opté pour Ubuntu server 9.10 x64 et Opensuse11.1 x64 Les isos sont très vite téléchargées puisque nous avons 100Mbits de bande passante entre le serveur et le net. Petit rappel il y a deux types de DomU: Les HVM: Le système va etre totalement émulé et n'est pas conscient d'etre sur un systeme de virtualisation. C'est le plus simple à mettre en place mais le moins performant. La paravirtualisation: La paravirtualisation permet aux moniteurs de machines virtuelles (MMV) d'être plus simples et aux machines virtuelles fonctionnant dessus d'atteindre un niveau de performance proche du matériel réel. Cependant, les systèmes d'exploitations doivent explicitement être portés afin de fonctionner sur des MMV paravirtualisées. (cf wikipedia) autrement dit les domU paravirtualisés sont conscients d'etre virtualisés et sont modifiés pour cela. ( Kernel compilé avec les extensions Xen, et drivers block et réseau ). Ce mode est le plus performant. Pour commencer il faut installer le DomU en HVM. Je commence par creer le périphérique block qui va héberger la VM. J'utilise pour cela la souplesse de lvm2. Mon premier domU sera sur /dev/vg0/lv0 de 16Go
lvcreate -L16G -nlv0 vg0
Je crée un fichier de domU dans /etc/xen/vm
######VM PARAM#### name="wwwinfo16" ostype="linux" memory=512 vcpus=2 cpu_weight=256 cpu_cap=0 hap=1 apic=1 acpi=1 pae=1 stdvga=0 usb=1 usbdevice="tablet" serial="pty" timer_mode=1 localtime=1 extid=0 on_crash="restart" on_reboot="restart" on_poweroff="destroy" ######HVM######### builder="hvm" device_model="/usr/lib64/xen/bin/qemu-dm" kernel="/usr/lib/xen/boot/hvmloader" ######PVM######### #builder="linux" #bootloader = '/usr/lib/xen/boot/domUloader.py' #bootargs = '--entry=hda1:/vmlinuz-xen,/initrd-xen' #extra="root=/dev/hda2 vga=0x31a console=tty0" ######DEV######### vfb=[ 'type=vnc,vncunused=1', ] disk=[ 'phy:/dev/vg0/lv0,hda,w', 'file:/sotck/ubuntu-9.10.iso,hdc:cdrom,r', ] vif=[ 'type=ioemu,mac=00:16:3a:11:11:00', ] boot="c
J'utilise ce fichier très pratique qui me permet de basculer de hvm en para très facilement en commentant la section HVM ou PVM On peut regler aussi facilement le nombre de Vcpus, Memoire, disk etc... On lance alors le domU avec
xm create domU
Si tout se passe bien vous pouvez acceder à l'installation de votre domU directement par vnc. Le premier domU s'attache au port 5900 le deuxieme au 5901 etc... Pour le premier domU je peux y acceder par ippublique:5900 Je ne vais pas détailler l'installation d'un DomU qui est une installation basique. Une fois installé vous pouvez rebooter votre DomU et profiter de votre serveur en HVM. J'ai commencé à paramétrer le réseau de mon domU en lui mettant comme ip 192.168.1.1/24 et la passerelle 192.168.1.254 (br0) et comme DNS, le dns de la kimsuffi.
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 213.186.33.99
Cette installation en HVM est valable aussi bien pour un DomU OpenSuse que pour Ubuntu. C'est sympa de jouer avec les hvm, mais très vite on se rend compte que les performances ne sont pas au rendez vous. en effet les accès disques et réseau consomment énormément de ressources. Il faut vite passer à la paravirtualisation. Je suis obligé de scinder ce chapitre en 2 parties: DomU paravirtualisés sous OpenSuse DomU paravirtualisés sous Ubuntu/Debian DomU para OpenSuse11.1 Pour que opensuse puisse etre utilisé en tant que DomU para, il faut installer simplement le kernel-xen, kernel-xen-base, kernel-xen-extra. Modifier votre grub pour booter sur le kernel Xen et surtout modifier votre fichier de configuration de la vm kernelxen
######VM PARAM#### name="wwwinfo16" ostype="linux" memory=512 vcpus=2 cpu_weight=256 cpu_cap=0 hap=1 apic=1 acpi=1 pae=1 stdvga=0 usb=1 usbdevice="tablet" serial="pty" timer_mode=1 localtime=1 extid=0 on_crash="restart" on_reboot="restart" on_poweroff="destroy" ######HVM######### #builder="hvm" #device_model="/usr/lib64/xen/bin/qemu-dm" #kernel="/usr/lib/xen/boot/hvmloader" ######PVM######### builder="linux" bootloader = '/usr/lib/xen/boot/domUloader.py' bootargs = '--entry=hda1:/vmlinuz-xen,/initrd-xen' extra="root=/dev/hda2 vga=0x31a console=tty0" ######DEV######### vfb=[ 'type=vnc,vncunused=1', ] disk=[ 'phy:/dev/vg0/lv0,hda,w', ] vif=[ 'type=netfront,mac=00:16:3a:11:11:00', ] boot="c"
On remarque que j'ai commenté cette fois ci les parametre HVM et décommenté PVM. j'ai aussi ajouté netfront comme type de care réseau. Ces lignes sont aussi très importantes: bootargs = '--entry=hda1:/vmlinuz-xen,/initrd-xen' = partition du DomU sur laquelle se trouve votre kernel (/boot) pour moi hda1 extra="root=/dev/hda2 vga=0x31a console=tty0" = partition du DomU sur laquelle se trouve votre / pour moi hda2 Faire bien attention que dans /boot dans le domU les liens symbolique vmlinuz-xen et initrd-xen soit bien créer et pointent bien vers le kernel xen
opensuse11-1:/boot # ls -al total 25820 drwxr-xr-x 3 root root 4096 2009-11-23 13:52 . drwxr-xr-x 20 root root 4096 2009-11-28 00:28 .. -rw------- 1 root root 512 2009-01-06 16:44 backup_mbr lrwxrwxrwx 1 root root 1 2009-01-06 16:14 boot -> . -rw-r--r-- 1 root root 1236 2009-01-08 02:03 boot.readme -rw-r--r-- 1 root root 90278 2009-10-16 18:29 config-2.6.27.37-0.1-default -rw-r--r-- 1 root root 88176 2009-10-16 17:36 config-2.6.27.37-0.1-xen drwxr-xr-x 2 root root 4096 2009-11-23 13:53 grub lrwxrwxrwx 1 root root 28 2009-11-23 13:52 initrd -> initrd-2.6.27.37-0.1-default -rw-r--r-- 1 root root 5626357 2009-11-23 13:52 initrd-2.6.27.37-0.1-default -rw-r--r-- 1 root root 5584838 2009-11-23 13:53 initrd-2.6.27.37-0.1-xen lrwxrwxrwx 1 root root 24 2009-11-23 13:52 initrd-xen -> initrd-2.6.27.37-0.1-xen -rw-r--r-- 1 root root 442880 2009-01-14 15:33 message -rw-r--r-- 1 root root 157239 2009-10-16 18:45 symsets-2.6.27.37-0.1-default.tar.gz -rw-r--r-- 1 root root 162088 2009-10-16 17:38 symsets-2.6.27.37-0.1-xen.tar.gz -rw-r--r-- 1 root root 406110 2009-10-16 18:43 symtypes-2.6.27.37-0.1-default.gz -rw-r--r-- 1 root root 402218 2009-10-16 17:37 symtypes-2.6.27.37-0.1-xen.gz -rw-r--r-- 1 root root 119804 2009-10-16 18:32 symvers-2.6.27.37-0.1-default.gz -rw-r--r-- 1 root root 119842 2009-10-16 17:37 symvers-2.6.27.37-0.1-xen.gz -rw-r--r-- 1 root root 1423318 2009-10-16 18:05 System.map-2.6.27.37-0.1-default -rw-r--r-- 1 root root 1287397 2009-10-16 17:31 System.map-2.6.27.37-0.1-xen -rw-r--r-- 1 root root 3009484 2009-10-16 18:29 vmlinux-2.6.27.37-0.1-default.gz -rw-r--r-- 1 root root 2681140 2009-10-16 17:36 vmlinux-2.6.27.37-0.1-xen.gz lrwxrwxrwx 1 root root 29 2009-11-23 13:52 vmlinuz -> vmlinuz-2.6.27.37-0.1-default -rw-r--r-- 1 root root 2541344 2009-10-16 18:05 vmlinuz-2.6.27.37-0.1-default -rw-r--r-- 1 root root 2235478 2009-10-16 17:31 vmlinuz-2.6.27.37-0.1-xen lrwxrwxrwx 1 root root 25 2009-11-23 13:52 vmlinuz-xen -> vmlinuz-2.6.27.37-0.1-xen
On lance le domU: domuopensusepara L'installation d'un domU Opensuse11-1 para sur un DomU Opensuse11-1 est assez simple. DomU para Ubuntu Server 9.10 Après de longues heures de recherche, j'ai enfin réussi à faire booter un serveur Ubuntu en paravirtualisé. Le kernel ubuntu depuis le 2.6.28 etant très peu modifié du kernel Vanilla, il possède en natif les options Xen directement déjà compilé dans le kernel. De plus on remarque que les pilotes block et réseau de Xen sont aussi présents dans les modules de ubuntu 9.10.
root@bartounet:/# grep -r xen /lib/modules/2.6.31-14-generic/kernel/ | grep front Binary file /lib/modules/2.6.31-14-generic/kernel/drivers/block/xen-blkfront.ko matches Binary file /lib/modules/2.6.31-14-generic/kernel/drivers/net/xen-netfront.ko matches
On a donc en natif tout pour faire un DomU paravirtualisé. les options de kernel et les modules. Commencer par installer votre ubuntu en hvm comme vu plus haut. une fois le DomU booté en HVM aller tout de suite dans le fstab et modifier les noms de vos disques par /dev/xvd* Voiçi le fstab modifié:
# /etc/fstab: static file system information. # # Use 'blkid -o value -s UUID' to print the universally unique identifier # for a device; this may be used with UUID= as a more robust way to name # devices that works even if disks are added and removed. See fstab(5). # # proc /proc proc defaults 0 0 # / was on /dev/sda2 during installation /dev/xvda2 / ext4 defaults 0 1 # /boot was on /dev/sda1 during installation /dev/xvda1 /boot ext3 defaults 0 2 # swap was on /dev/sda3 during installation /dev/xvda3 none swap sw 0 0 /dev/xvdb1 /home xfs defaults 0 0 /dev/xvdb /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
j'ai remplacé les occurences de hd en xvd ( /dev/hda1 = /dev/xvda1) etc... important, n'oubliez pas de creer des liens symbolique pointant vers le kernel en rapport avec votre fichier de conf de domu ( vmlinuz-xen et initrd-xen) mais rien de vous empeche aussi d'indiquer directement le nom complet du kernel dans le fichier de domU
root@wwwinfo16:~# ls -al /boot/ | grep xen lrwxrwxrwx 1 root root 27 2009-11-25 12:33 initrd-xen -> initrd.img-2.6.31-14-server lrwxrwxrwx 1 root root 24 2009-11-25 12:33 vmlinuz-xen -> vmlinuz-2.6.31-14-server
Quelques modifications sont à apporter à notre fichier de conf du domU:
linux:~ # vi /etc/xen/vm/wwwinfo16 ######VM PARAM#### name="wwwinfo16" ostype="linux" memory=512 vcpus=2 cpu_weight=256 cpu_cap=0 hap=1 apic=1 acpi=1 pae=1 stdvga=0 usb=1 usbdevice="tablet" serial="pty" timer_mode=1 localtime=1 extid=0 on_crash="restart" on_reboot="restart" on_poweroff="destroy" ######HVM######### #builder="hvm" #device_model="/usr/lib64/xen/bin/qemu-dm" #kernel="/usr/lib/xen/boot/hvmloader" ######PVM######### builder="linux" bootloader = '/usr/lib/xen/boot/domUloader.py' bootargs = '--entry=xvda1:/vmlinuz-xen,/initrd-xen' extra="root=/dev/xvda2 vga=0x31a console=tty0" ######DEV######### vfb=[ 'type=vnc,vncunused=1', ] disk=[ 'phy:/dev/vg0/lv0,xvda,w', ] vif=[ 'type=netfront,mac=00:16:3a:11:11:00', ] boot="c"
Dans le fichiers de conf on modifie aussi les /dev/hda en /dev/xvda Dans les options de kernel, mais aussi dans les options de disk. Si vous définissez un lecteur CD-Rom n'oubliez pas non plus de le declarer en xvdc, sinon ça ne bootera pas. si tout se passe bien relancer votre DomU Ubuntu et il devrait booter. un petit lspci ne retourne rien, vous êtes bien en paravirtualisé. Regardez les modules chargés au démarrage sur le domU.
root@wwwinfo16:~# lsmod | grep xen xen_fbfront 10112 1 fb_sys_fops 2304 1 xen_fbfront sysimgblt 3168 1 xen_fbfront sysfillrect 4576 1 xen_fbfront xen_kbdfront 6176 0 syscopyarea 4224 1 xen_fbfront xen_netfront 21696 0 xen_blkfront 14340 6
netfront et blkfront sont bien chargés... nous sommes en para. Un petit test de débit réseau entre le domU et le dom0 finirons ne vous en convaincre..
root@wwwinfo16:/home/ftpuser/anonymous# iperf -w512k -c192.168.1.254 -P2 ------------------------------------------------------------ Client connecting to 192.168.1.254, TCP port 5001 TCP window size: 256 KByte (WARNING: requested 512 KByte) ------------------------------------------------------------ [ 4] local 192.168.1.1 port 34407 connected with 192.168.1.254 port 5001 [ 3] local 192.168.1.1 port 34406 connected with 192.168.1.254 port 5001 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 4.95 GBytes 4.25 Gbits/sec [ 3] 0.0-10.0 sec 2.31 GBytes 1.99 Gbits/sec [SUM] 0.0-10.0 sec 7.26 GBytes 6.24 Gbits/sec
Plus de 6 Gbits/s c'est pas mal. Essayons entre 2 DomU Ubuntu-9.10-x86_64 paravirtualisés
root@wwwinfo16:/home/ftpuser/anonymous# iperf -w512k -c192.168.1.2 -P2 ------------------------------------------------------------ Client connecting to 192.168.1.2, TCP port 5001 TCP window size: 256 KByte (WARNING: requested 512 KByte) ------------------------------------------------------------ [ 4] local 192.168.1.1 port 49034 connected with 192.168.1.2 port 5001 [ 3] local 192.168.1.1 port 49033 connected with 192.168.1.2 port 5001 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 3.31 GBytes 2.84 Gbits/sec [ 3] 0.0-10.0 sec 3.30 GBytes 2.83 Gbits/sec [SUM] 0.0-10.0 sec 6.61 GBytes 5.67 Gbits/sec
Nos serveurs virtuels on un débit de plus de 5Gbits/s entre eux. Ca laisse de la marge. Je voulais finir sur le réseau. C'est souvent ce qu'on a du mal à mettre en place quand on commence sous Xen. Souvenez vous j'ai utilisez netwok-nat, qui configure le nat au lancement de xen et permet de faire du masquerade. et vif-bridge bridge=br0 qui permet d'attacher les interfaces virtuelles des domU à notre bridge qui lui utilisera les parametres du kernel pour router. Il faut savoir que quand on lance un DomU une interface réseau virtuelle est créee automatiquement. Lorsque c'est une HVM c'est une interface tap Lorsque c'est un para c'est une interface vif Sur mon serveur voiçi l'exemple concret. On peut voir sur le dom0 que j'ai 5 DomU démarrés
linux:~ # xm li Name ID Mem VCPUs State Time(s) Domain-0 0 2603 4 r----- 6787.6 chatinfo16 15 128 1 -b---- 28.3 mailinfo16 12 512 2 -b---- 826.7 nsinfo16 14 128 1 -b---- 19.1 susepara 17 128 1 -b---- 83.6 wwwinfo16 7 512 2 -b---- 496.8
en théorie si je dit vrai on devrait donc avoir 5 interfaces vif de créees puisque je n'utilise que des domU paravirtualisés. Vérifions le:
linux:~ # ifconfig br0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet addr:192.168.1.254 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::3c8b:16ff:fe67:b2b7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1205797 errors:0 dropped:0 overruns:0 frame:0 TX packets:1268662 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:12752893921 (12162.1 Mb) TX bytes:326758032 (311.6 Mb) eth0 Link encap:Ethernet HWaddr 00:1C:C0:FD:69:A3 inet addr:94.x.x.21 Bcast:94.23.236.255 Mask:255.255.255.0 inet6 addr: fe80::21c:c0ff:fefd:69a3/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5321651 errors:0 dropped:0 overruns:0 frame:0 TX packets:9613762 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:621290841 (592.5 Mb) TX bytes:13509616638 (12883.7 Mb) Interrupt:252 Base address:0xc000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:586 (586.0 b) TX bytes:586 (586.0 b) vif7.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:1102247 errors:0 dropped:0 overruns:0 frame:0 TX packets:1068448 errors:0 dropped:7 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:26806418112 (25564.5 Mb) TX bytes:79329581 (75.6 Mb) vif12.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:668903 errors:0 dropped:0 overruns:0 frame:0 TX packets:763612 errors:0 dropped:3 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:66913413 (63.8 Mb) TX bytes:14387030405 (13720.5 Mb) vif14.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:4815 errors:0 dropped:0 overruns:0 frame:0 TX packets:6801 errors:0 dropped:5 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:563633 (550.4 Kb) TX bytes:1296285 (1.2 Mb) vif15.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:11409 errors:0 dropped:0 overruns:0 frame:0 TX packets:13668 errors:0 dropped:25 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:2077063 (1.9 Mb) TX bytes:2730964 (2.6 Mb) vif17.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:1896 errors:0 dropped:0 overruns:0 frame:0 TX packets:3768 errors:0 dropped:81 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:376026 (367.2 Kb) TX bytes:4379048 (4.1 Mb)
Pour qu'elles communiquent sur le réseau, il faut qu'elle soient reliées à mon bridge br0: Vérifions le:
linux:~ # brctl show bridge name bridge id STP enabled interfaces br0 8000.feffffffffff no vif12.0 vif14.0 vif15.0 vif17.0 vif7.0
Les vifs sont bien reliées à br0. à partir de là elle peuvent communiquer avec le reste de mon réseau. J'oubliais de parler des règles nat. Pour l'instant, les domU communiquent avec l'extérieur, par l'intermédiaire de leur passerelle par défaut 192.168.1.254 et du nat sur eth0. Mais pour l'instant toutes les tentatives de connexions extérieures ( http, ftp, dns, smtp etc...) arrivent sur le dom0, il faudra donc mettre en place des règles iptables pour rediriger les ports vers les bons serveurs (domU) Par exemple wwwinfo16 est le serveur web, il faudra donc une règle iptable du style:
##Redirection de ports pour les differents services #######wwwinfo16 $iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 192.168.1.1:80
Et ceci pour tous les ports que vous voulez rediriger. C'est un peu fastidieux, mais une fois votre script de règles iptables mis en place cela fonctionne très bien. Il reste pas mal de chose a faire, comme paramétrer des sauvegardes que je ferais en mode bloc par du simple dd et de la compression lzop. Le tout externalisé sur un ftp. Faire un template propre pour provisioner autant de domU que je le souhaite grace à une image identique ( dd est mon amis) Mais le projet est bien avancé, puisque vous lisez à ce jour, cet article sur mon blog qui est hebergé sur wwwinfo16, vous m'envoyez des mails par l'intermédiaire de mailinfo16, le SOA du domaine info16.fr est nsinfo16.

Information sur bartounet auteur de l'article

Les commentaires sont fermés.