# [DHCPD] Attribuer ip en fonction de l'iface (résolu)

## BuBuaBu

Voila le truc que j'aimerais faire : 

Sur un serveur, j'ai eth0 et eth1

j'aimerais que mes client connecté a eth0 ne puissent pas du tout accéder au client sur eth1, donc je me demande si il est obligatoire d'utiliser des plage ip avec le masque différent pour chaque. Dans ce cas il faut que mon serveur dhcp attribue l'addresse ip en fonction du la requette d'origine.

J'ai vu une option dans le /etc/conf.d/dhcpd quik permet de restraindre les iface ecoutées.

Quelqu'un pour m'éclairer ?Last edited by BuBuaBu on Thu Aug 30, 2007 10:09 pm; edited 1 time in total

----------

## truc

bah pour la question sur l'attribution IP, tu peux configurer les adresses IP à donner en fonction de l'adresse MAC, et donc de fixer l'ip de eth1 et du client qui est également sur cette interface, sinon, sans changer de de plage d'adresse, tu dois pouvoir interdire le 'forwarding' entre les deux interfaces du serveur (un truc du style echo 0 > /proc/sys/net/ipv4/ipforward de tête:S)

----------

## Da_Risk

Moi j'obterais pour désactiver le forwarding comme l'a suggérer truc. Puisque si tes clients ont des ips sur des réseaux différents ca ne les empeche pas de pouvoir contacter un client de l'autre réseau du moment que ton serveur route les paquets.

----------

## BuBuaBu

Pour que le serveur route les packet d'une interface a une autre, il faut faire un pont ou du nat ?

Je pensai qu'utilisé la meme plage ip sur deux interface différente pourvait créér des conflit.

sinon, pour lancer un deuxieme serveur dhcp, j'ai trouvé ma réponse dans le /etc/conf.d/dhcpd   :Rolling Eyes:  :

```

# If you require more than one instance of dhcpd you can create symbolic

# links to dhcpd service like so

#   cd /etc/init.d

#   ln -s dhcpd dhcpd.foo

#   cd ../conf.d

#   cp dhcpd dhcpd.foo

# Now you can edit dhcpd.foo and specify a different configuration file.

# You'll also need to specify a pidfile in that dhcpd.conf file.

```

----------

## F!nTcH

C'est vrai

tu ne peux avoir deux sous-réseaux identiques sur deux interfaces différentes, en tout cas si le système l'accepte, les tables de routages risquent de ne pas apprécier. Si un paquet sort par eth1, il va revenir par eth1 ... mais pour un broadcast ??

Donc deux sous réseaux différents

Donc tu te fais deux subnets différents dans le dhcpd.conf

```

subnet 192.168.0.0 mask 255.255.255.0 {

# tes options

}

subnet 192.168.2.0 mask 255.255.255.0 {

# tes options

}

```

et rectificatif : # echo "0" > /proc/sys/net/ipv4/ip_forward

je n'ai pas essayé dhcp3-server sous gentoo, mais généralement il écoute partout, et se restreint tout seul aux interfaces que tu lui déclares dans la conf (par ex t'as eth2 avec le réseau 10.1.1.0/8 et que t'as pas de zone subnet 10.1.1.0, ben il gueulera dans les logs mais il n'écoutera pas, pour être propre, tu mets la section mais tu la laisses vide)

donc toutes les règles de pare-feu (iptables -A FORWARD) ne sont plus effectives  :Wink: 

En revanche si les hôtes sur eth0 doivent voir ceux de eth1, mais pas l'inverse, tripoter ip_forward est à proscrire !

De même si ta machine est une passerelle internet ...

J'espère avoir répondu correctement au problème posé  :Wink: 

Edit:

Le fait de déclarer tes subnets dans le dhcpd.conf te permet de n'avoir qu'un seul process et donc qu'un seul service dhcpd, et pas de duplicata ni de tripotage dans le conf.d pour lancer 2 serveurs ...

----------

## BuBuaBu

Deux subnet dans dhcpd.conf ok, maids je vois pas comment le seurveur fait le différence entre les ordis de eth1 et de eth0.

Précision la listes de client n'est pas connue et certainemen d'une grande dynamique, donc non la solution d'addresse mac d'en ai pas une.

----------

## Da_Risk

 *BuBuaBu wrote:*   

> Deux subnet dans dhcpd.conf ok, maids je vois pas comment le seurveur fait le différence entre les ordis de eth1 et de eth0.
> 
> Précision la listes de client n'est pas connue et certainemen d'une grande dynamique, donc non la solution d'addresse mac d'en ai pas une.

 

Tu as deux interface eth0 192.168.0.1 et eth1 192.168.1.0. Quand il recoit une requête dhcp sur eth0 il cherche a donner une adresse du même sous réseau. 

C'est simpliste et j'suis pas sur que ca soit fait comme ca  :Smile: 

----------

## F!nTcH

ben c'est pourtant ça

au démarrage, dhcpd vérifie la configuration système (en gros il pète un coup d'ifconfig) et voit quelle adresse && mask se trouvent sur telle ou telle interface, ensuite il vérifie dans sa propre configuration et se met à écouter. C'est pour ça que je dis que dhcp râle dans les logs quand il trouve une interface pour laquelle il n'a pas de subnet déclaré chez lui.

Et si t'as des hôtes qui bougent, t'as qu'à utiliser l'attribution dynamique, DHCP = Dynamic Host Configuration Protocol

Exemple étoffé :

```

# Serveur autoritaire sur le, ou les sous-réseaux

authoritative;

# Sous-réseau 1 avec quelques options et attribution automatique

# si le serveur trouve pas de section "host" correspondant à la macaddr

subnet 192.168.1.0 netmask 255.255.255.0

{

  option routers 192.168.1.254;

  option domain-name "example.com";

  option domain-name-server ns1.example.com, 192.168.1.254;

  range 192.168.1.128 192.168.1.224;

}

# autre sous-réseau

subnet 192.168.220.0 netmask 255.255.255.0

{

  option routers 192.168.220.254;

  option domain-name "sub.example.com";

  range 192.168.220.64 192.168.220.224;

}

# sous réseau informatif mais non géré par le serveur (laissé vide)

subnet 172.16.0.0 netmask 255.255.0.0

{

}

host gnee # commentaire pour gneee

{

  fixed-address 192.168.1.4;

  hardware ethernet 00:0C:00:01:24:CC;

}

host gnaa

{

  fixed-address gnaa.example.com;

  hardware ethernet 00:C0:00:01:24:CC;

}

# remarquez le nom de domaine au lieu d'une ip

# rien ne vous empêche de mettre vos hôtes statiques avec une adresse à résoudre par DNS

# et pas forcément une IP en dur (donc vous "attribuez" les IP avec le bon service => DNS, DHCP fait le lien entre macaddr et DN)

```

Remarque : les hôtes trappés par Range sont sur du DHCP "dynamique", les hôtes reconnus par macaddr sont sur DHCP "statique"

Il ne faut pas oublier que c'est l'ATTRIBUTION qui est dynamique, pas forcément les IP, bien que l'option "range" fasse cette gestion de pool d'adresse

----------

## BuBuaBu

Oki, merci, je savais pas que DHCPD attribué en priorité en fonction de l'ip de l'interface.

----------

