Vous êtes sur la page 1sur 5

VMPS - Vlan par @MAC

Prrequis VMPS :

Un domaine VTP valide (Configuration du VTP)


Si pas de switch Cisco >= sries 4000, un serveur sous linux
Linux ex: CentOS install sur le serveur
Avoir install la plateforme GCC
Le serveur doit avoir une IP sur le sous rseau d'administration des switch
Paquet source d'OpenVMPS : http://sourceforge.net/projects/vmps/

* Dans un rseau pourvu d'un voice vlan, les priphriques sont affranchis du VMPS
et fonctionnent sans dclaration. Cependant dans les log du serveur VMPS, les
tlphones IP sont affichs comme DENY ou sur le rseau FALLBACK selon la
configuration.
* Dans un rseau pourvu de mini-switchs de proximits, la bonne pratique serait de
retirer au plus possible ces quipements. Cependant, ils ne nuisent pas au bon
fonctionnement du VMPS qui s'applique sur chacun des postes connects au miniswitch.

Installation VMPS sur Linux :


1.
2.
3.
4.
5.

Ouvrir un session en "root"


Installer GCC : # yum install GCC
Copier en SCP ou WGET le paquet source OpenVMPS
Dtarrer le fichier dans un rpertoire (ex: /opt/vmpsd)
Procder l'installation avec
1. # ./configure
2. # make
3. # make install
6. Ouvrir le fichier : /usr/local/etc/vlan.db
7. Suivre les indication du fichier exemple ci-dessous :

! --- Init ---

Bloc d'initialisation des options

!Choix du mode secure ou open


vmps mode open
!Nom du domaine VTP
vmps domain DOMAIN_NAME
!Action par dfaut lorsqu'une requte sans nom de domaine arrive au serveur,

!ici on refuse le traitement


vmps no-domain-req deny
!Vlan par dfaut si l'adresse MAC n'est pas trouve
vmps fallback PUBLIQUE
! --- Mac Address Section --vmps-mac-addrs

Bloc quivalent la base de donnes


!Dbut de liste des adresses MAC

!Cette ligne contient le mot cl address suivi de l'adresse MAC de la machine


concerne,
!puis le mot cl vlan-name suivi du nom du Vlan dans laquelle cette machine doit
tre place.
!En fin de ligne on trouve un commentaire avec le nom de la machine.
! --- VLAN ADMIN --address 0000.0000.0001 vlan-name ADMIN ! machine1
! --- VLAN INTRANET --address 0000.0000.0002 vlan-name INTRANET ! machine2
! --- VLAN DMZ --address 0000.0000.0003 vlan-name DMZ ! machine3

Configuration des switchs :


1. switch> enable
2. switch# conf term
3. switch# vmps server 192.168.10.100 primary
4. switch# vmps server 192.168.10.101 (pour un ventuel serveur secondaire)
5. switch# vmps reconfirm 60 (temps en minutes)
6. switch# vmps retry 3 (nombre de tentative avant appel au serveur secondaire)
7. switch# int range gi1/0/1-48
8. switch (conf)# switchport access vlan dynamic
9. switch (conf)# exit
10. switch# write
11. switch# sh vmps

switch# show vmps


VQP Client Status:
-------------------VMPS VQP Version: 1
Reconfirm Interval: 60 min
Server Retry Count: 3
VMPS domain server: 192.168.0.2
192.168.0.1 (primary, current)

Excuter OpenVMPS :
1. Lancer OpenVMPS sur linux avec la commande : vmpsd
2. Tracer les machines avec : tail -f /var/log/messages
3. Connecter les postes pour vrifier

Le dmon VMPSD pourra tre plac avec un script au dmarrage.

Le dmon besoin d'tre relanc pour prendre en compte les nouvelles modifications
du fichier vlan.db

Exemple script dmon vmps :


#!/bin/sh
#
# Crer par Eric MOUTTET le 03/05/2011
#
# chkconfig: - 345
# description: Arrete et dmarre le dmon VMPSD
#
# pidfile: /var/run/samba/vmpsd.pid
# config: /var/www/html/vlan.db
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 1
fi
# Avoid using root's TMPDIR
unset TMPDIR
RETVAL=0
start() {
KIND="VMPSD"
echo -n $"Starting $KIND services: "
daemon /usr/local/bin/vmpsd -f /var/www/html/vlan.db
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/vmpsd || \
RETVAL=1
return $RETVAL
}
stop() {
KIND="VMPSD"
echo -n $"Shutting down $KIND services: "
killproc vmpsd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/vmpsd
echo ""
return $RETVAL
}
restart() {
stop
start
}
reload() {

echo -n $"Reloading vlan.db file: "


killproc vmpsd -HUP
RETVAL=$?
echo
return $RETVAL

rhstatus() {
status vmpsd
RETVAL=$?
if [ $RETVAL -ne 0 ] ; then
return $RETVAL
fi
}
# Allow status as non-root.
if [ "$1" = status ]; then
rhstatus
exit $?
fi
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
status)
rhstatus
;;
condrestart)
[ -f /var/lock/subsys/vmpsd ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
exit 2
esac
exit $?