Précédent   Forum des professionnels en informatique > Systèmes > Linux > Réseau
Réseau Vos questions autour des réseaux et télécoms sous Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/03/2006, 16h26   #1
Invité de passage
 
Inscription : mai 2004
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 13
Points : 4
Points : 4
Par défaut Configuration dhcpd.conf

bonjour à tous

je poste un message sur ce forum n'ayant rien trouvé de concluant sur google

voilà je m'occupe en ce moment de configurer un serveur dhcp (dhcp3-server) sur ma debian
j'ai une conf un peu particulière à mettre en oeuvre et j'aurais besoin de déclarer des variables (au moins une ça m'aiderait). le but étant au final de pouvoir assigner une ip fixe via dhcp en fonction du port du switch mais aussi de l'adresse mac du switch (dans le cas ou j'ai plusieurs switch) et même du vlan auquel appartient l'utilisateur effectuant une requête dhcp.
je vous passe les détails de ma conf mais ma vrai question est plutôt de savoir comment déclarer une variable et l'utiliser au sein de dhcpd.conf ??
moi je fais tout simplement variable = "string";
je me dis que si la syntaxe était vraiment mauvaise j'aurais une erreur au lancement du service dhcp mais ce n'est pas le cas... et pourtant cela ne marche pas !

quelqu'un connait le sujet ???
j'espère frapper à la bonne porte et être assez clair dans mes propos
s'il vous faut d'autres éclaircissements faite m'en part et je m'en occupe dès que possible
merci d'avance
bilout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2006, 09h19   #2
Invité de passage
 
Inscription : mai 2004
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 13
Points : 4
Points : 4
personne ne connaît une solution...
bilout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2006, 17h40   #3
Membre Expert
 
Avatar de granquet
 
Étudiant
Inscription : octobre 2005
Messages : 1 202
Détails du profil
Informations personnelles :
Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 1 202
Points : 1 181
Points : 1 181
Code :
1
2
3
4
	host p7salle12 {
		hardware ethernet 74:51:D5:1C:2D:03;
		fixed-address 192.168.10.14;
		}
j'ai pas tout compris ...
ca te permet d'assigner une ip et un nom a une addr MAC.

fait un tour sur ce site, tu trouveras ptetre ton bonheur:
http://christian.caleca.free.fr/dhcp/
granquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2006, 18h52   #4
Rédacteur

 
Avatar de dev01
 
Inscription : mai 2004
Messages : 2 448
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 2 448
Points : 2 271
Points : 2 271
sinon les fichiers de conf doivent reconnaitre la syntaxe shell

Code :
1
2
 
maver="monContenu"
mais j'ai pas essayé .
__________________
- MVP C#
-Tout problème a une solution, le vrai problème est de trouver la solution .....
- Linux & mono : l'avenir
dev01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2006, 09h57   #5
Invité de passage
 
Inscription : mai 2004
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 13
Points : 4
Points : 4
non ça ne marche pas ça en fait depuis j'ai trouvé la syntaxe pour assigner une valeur à une variable "set variable = "value";" avec cette syntaxe il est même possible de visualiser les variables puisqu'elles sont inscriptes dans dhcpd.leases

mais le problème c'est de pouvoir réutiliser le contenu de cette variable pour un match if :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
#checking vlan
if binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2))= "10" {
        if binary-to-ascii(16, 8, ":", substring( option agent.remote-id, 2, 6)) = "<switch mac address>" {
                set test = "ok";
        }
        else {set test = "nok";}
}
 
class "port21" {
       match if binary-to-ascii (10, 8, "/", suffix (option agent.circuit-id, 2)) = "0/20" and if test = "ok";
}
 
shared-network 1 {
                subnet 192.168.0.0 netmask 255.255.255.0 {
                authoritative;
                }
 
                pool {
                        allow members of "port21";
                        deny members of "port20";
                        range 192.168.0.21;
                }
}
je voudrais faire un truc comme ça mais bien que le serveur se lance sans pb, au moment d'assigner une ip j'ai une erreur "no free leases" comme si je n'avais pas défini de bail pour ce cas précis...suis je clair ?

apparement ça bloque au niveau de "and if test="ok";" dans le bloc class car si je l'enlève alors tout fonctionne mais pas comme je le souhaite c a d pas de vérif de switch ni de vlan...
ennuyeux dans mon cas !
bilout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2006, 11h43   #6
Invité de passage
 
Inscription : mai 2004
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 13
Points : 4
Points : 4
finalement j'utilise de l'hexa en paramètre au lieu de jouer avec des variables. ça marche mais c'est pas tip top pour la maintenance

merci de votre aide
bilout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 10h58   #7
Invité de passage
 
Inscription : décembre 2005
Messages : 1
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 1
Points : 1
Points : 1
Par défaut Match if imbriqués ou équivalent

Bonjour à tous,

Je suis entrain de tester un fichier de conf de dhcpd un peu particulier. Mon but est de filtrer les clients sur un code constructeur dépendant du vendor-class-identifier.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
#codes device1
option space DEVICE1;
option DEVICE1.suboption1 code 3 = text;
option DEVICE1.suboption2 code 4 = unsigned integer 16;
 
#codes device2 (la suboption1 est commune aux deux appareils, mais n'a pas le même numéro de code)
option space DEVICE2;
option DEVICE2.suboption1 code 1 = text;
option DEVICE2.suboption3 code 3 = ip-address;
 
class "Device1" {
    match  if  substring    (option  vendor-class-identifier, 0, 15) = "Name of Device1";
    # Si l'appareil est de type DEVICE 1, le c'est le sous code 3 qui est testé
    vendor-option-space DEVICE1;
    match  if  substring    (option DEVICE1.suboption1, 0, 4) = "value1");
}
 
class "Device2" {
    match  if  substring    (option  vendor-class-identifier, 0, 15) = "Name of Device2";
    # Si l'appareil est de type DEVICE 2, le c'est le sous code 1 qui est testé
    vendor-option-space DEVICE2;
    match  if  substring    (option DEVICE2.suboption1, 0, 4) = "value1");
}
 
 
shared-network mynetwork{
    option server.min-lease-time 600000;
    option server.default-lease-time 700000;
    option server.max-lease-time 800000;
 
    subnet 127.0.0.1 netmask 255.255.255.0 {
        option tftp-server-name "localhost";
    }
 
    pool {
        allow members of "Device1";
        allow members of "Device2";
        range 127.0.0.10 127.0.0.40;
    }
}
Les adresses IP et noms de domaines que j'ai mises sont arbitraires pour simplifier. Dans chacune des classes, j'ai mis deux "match if" successifs, et je sais que cette syntaxe n'est probablement pas la bonne. C'est justement ce que je cherche, une façon de les imbriquer, par des if si c possible, ou des subclass (mais j'ai pas eu l'impression que ca pouvait servir à ca).

Merci d'avance

Cordialement
teslasghost est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h01.


 
 
 
 
Partenaires

Hébergement Web