[Résolu] Problème avec un relais DHCP

Bonjour à tous,

J’ai un petit soucis avec la configuration d’un relais dhcp sous debian 4.0.

En fait j’ai un serveur dhcp (dhcp3-server) sur une machine qui gère mon réseau (elle gère le masquerade entre mon LAN et INternet), cette machine est reliée a une autre machine sous debian 4.0 qui me sert de proxy-arp.

Lorsque je veux récupérer une adresse dhcp dans mon réseau LAN ca ne marche pas, aucune adresse n’est proposée à ma machine car elle n’arrive pas a contacter le serveur dhcp.

j’ai donc voulu installer un relais dhcp (dhcp3-relay) sur le proxy-arp, suite a quelque recherches, notamment sur votre forum.
Cette fois le serveur recois bien les requêtes, il tente bien d’attribuer une IP au pc, je vois bien la reponse arriver sur le relais, mais elle ne parvient toujours pas a la machine située dans le LAN.

Je précise que mon serveur dhcp fonctionne bien, en effet, quand je me place directement derrière lui, j’obtiens bien une adresse dhcp.

Auriez-vous une idée de ce qui pourrai bloquer mes requêtes à destination du pc client ?

Si vous avez besoin du contenu de certains logs pour plus d’informations n’hésitez pas !
Merci d’avance :slightly_smiling:

Salut,

Relay-dhcp ? C’est pas utilisé dans le cas de multi-lans ?..pour faire du DHCP forwarding ?

Tes machines sont dans le même LAN. Ça devrait fonctionner sans ça normalement.

J’espère ne pas dire de bêtises. Corrigez-moi si je me trompe.

Bonjour MikeMeilleur,

C’est ce que je pensai aussi avant d’essayer de mettre en place tout ça.
Malheureusement, les requêtes n’arrivaient pas jusqu’à mon serveur DHCP.

J’ai donc eu l’idée de mettre en place un relais dhcp pour faire transiter les requêtes jusqu’a mon serveur, mais je me trompe peut-être de voie.

Peut-être que la solution se trouve à un autre endroit… je suis a l’écoute de toutes propositions ^^

Merci d’avance

sur le client, tu as bien installé dhcp-client ?

Dans le cadre du test, mon client est un pc sous windows XP, ce PC fonctionne bien car quand je me place directement derriere mon serveur DHCP, j’obtiens bien une adresse.

Ok, “pc”, Je n’avais pas tt lu.

Aurais-tu une idée ricardo ? :smt002

C’est quoi cet histoire de proxy arp ? Ton proxy est entre le lan et le dhcpd, j’imagine ? et j’imagine que si tu l’as mis là, c’est parcequ’il sert aussi une DMZ sur une troisiême patte ?
Dans ce cas, ta structure devrait fonctionner sans relai (le relai causant même des conflits puisque le dhcp et le relai se voient en arp), mais si ton proxy arp proxifie bien l’arp de ton serveur dhcpd, il devrait lui transmettre les paquets dhcp.

Petite question, ton dhcpd est bien déclaré pour écouter sur l’interface interne uniquement, et la frange que tu attribues est bien sur le même réseau que l’adresse de l’interface par laquelle tu attribues ?

Sinon, sur un client linux ou le serveur, tu as quoi comme logs ?
PS: ricardo, pour info et sans vouloir minimiser tes compètences, si ça concerne bien la proxification arp, ce problême va AMA te passer large au dessus de la tête (même si tu peux aider avec de bonnes intuitions) :wink:

Bonjour mattotop, merci de t’interessé à mon soucis,

Je vais essayé de repondre à toutes les questions le plus clairement possible :

Alors d’abord pour le proxy-arp, il est bien placé entre mon LAN et mon serveur DHCP. Le fait d’avoir une DMZ est une des raisons pour les quelles j’ai mis en proxy-arp, j’ai aussi mis en place un outils de QOS sur cette machine, comme cela, tout le traffic vers internet la traverse. (Il m’était impossible de mettre cet outils sur la machine principale.)

J’ai moi aussi pensé au début que ça marcherai sans le dhcp-relay (d’ailleurs il est fort possible que ca ne soit pas la solution) mais mes requêtes n’arrivaient pas à mon serveur DHCP.

Mon DHCPd est configuré sur le bon range (10.0.0.0/24 avec pour ip 10.0.0.254), je pense qu’il n’écoute que sur une seule interface, cependant je n’ai pas vu à quel endroit il fallait spécifier cela. Veux-tu le cotenu de mon fichier dhcp ?

Sur le client, je n’ai pas de log car il est sous windows (faudrait-il que j’essaie avec un client linux ? sachant que lorsque je me met directement derrière le serveur DHCP j’obtiens bien une Ip).

Par contre voici les logs du serveur dhcp :

Feb 8 16:43:50 debian dhcpd: DHCPDISCOVER from 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:43:51 debian dhcpd: DHCPOFFER on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:43:54 debian dhcpd: DHCPDISCOVER from 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:43:54 debian dhcpd: DHCPOFFER on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:43:54 debian dhcpd: DHCPDISCOVER from 00:13:77:26:77:92 (MAHO) via 10.0.0.100 Feb 8 16:43:54 debian dhcpd: DHCPOFFER on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via 10.0.0.100 Feb 8 16:44:02 debian dhcpd: DHCPDISCOVER from 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:44:02 debian dhcpd: DHCPOFFER on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:44:02 debian dhcpd: DHCPDISCOVER from 00:13:77:26:77:92 (MAHO) via 10.0.0.100 Feb 8 16:44:02 debian dhcpd: DHCPOFFER on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via 10.0.0.100 Feb 8 16:44:19 debian dhcpd: DHCPDISCOVER from 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:44:19 debian dhcpd: DHCPOFFER on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:44:19 debian dhcpd: DHCPDISCOVER from 00:13:77:26:77:92 (MAHO) via 10.0.0.100 Feb 8 16:44:19 debian dhcpd: DHCPOFFER on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via 10.0.0.100

Voici maintenant les logs lorsque je suis directement connecté au serveur (pour comparer) :

Feb 8 16:11:22 debian dhcpd: DHCPDISCOVER from 00:13:77:26:77:92 via eth0 Feb 8 16:11:23 debian dhcpd: DHCPOFFER on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:11:26 debian dhcpd: DHCPDISCOVER from 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:11:26 debian dhcpd: DHCPOFFER on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:11:34 debian dhcpd: DHCPDISCOVER from 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:11:34 debian dhcpd: DHCPOFFER on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:11:34 debian dhcpd: DHCPREQUEST for 10.0.0.90 (10.0.0.254) from 00:13:77:26:77:92 (MAHO) via eth0 Feb 8 16:11:34 debian dhcpd: DHCPACK on 10.0.0.90 to 00:13:77:26:77:92 (MAHO) via eth0

Et voici les logs de dhcp3-relay :

forwarded BOOTEQUEST for 00:13:77:26:77:92 to 10.0.0.254 forwarded BOOTEQUEST for 00:13:77:26:77:92 to 10.0.0.254 forwarded BOOTEQUEST for 00:13:77:26:77:92 to 10.0.0.254 forwarded BOOTEQUEST for 00:13:77:26:77:92 to 10.0.0.254 forwarded BOOTREPLY for 00:13:77:26:77:92 to 10.0.0.90 forwarded BOOTEQUEST for 00:13:77:26:77:92 to 10.0.0.254 forwarded BOOTEQUEST for 00:13:77:26:77:92 to 10.0.0.254 forwarded BOOTREPLY for 00:13:77:26:77:92 to 10.0.0.90

le serveur dhcp a pour ip 10.0.0.254, le proxy-arp : 10.0.0.100, et le pc devrait obtenir la 10.0.0.90.

De plus, je viens d’essayé de mettre le /proc/sys/net/ipv4/conf/default/ip_forward à 1 mais aucun changement.

Voila, j’espère ne pas avoir été trop fouilli, merci à vous.

:smt005

Alors, il semble bien que ton relay fonctionne bien et retransmet la réponse de ton dhcpd, ce qui m’etonne.
Mais AMA, il faut mieux te passer du relay.
Bon, pour le diagnostic, tu ferais mieux de te graver une knoppix ou autre, et de faire tes tests depuis le client sous linux, pour avoir un client serieux pour les tests.
As tu fais des essais avec arping ?

Sinon, pourquoi ton dhcpd est il situé sur le frontal plutot que sur ton routeur interne ? C’est plutot dangereux si jamais le frontal est compromis, et comme les seules adresses que tu attribues (je l’éspère) sont sur le lan, tu n’en a pas vraiment besoin dans ta patte rouge ni dans ta dmz.

Bonjour, Désolé pour le temps de réponse… je n’ai pas eu internet hier et beaucoup de choses a réglées hier…

En ce qui concerne le fait de mettre le serveur DHCP sur le routeur en interne, cela m’est malheureusement impossible, c’est en fait une architecture que je mets en place chez un client et malgré mes demandes répétés de mettre le serveur DHCP sur le routeur interne, ce qui serait plus sûr et plus pratique, il veut absolument garder son dhcp deja existant sur son routeur principal… qui est déjà configuré…
Je dois donc faire en sorte de m’adapter à ses conditions… :confused:

En ce qui concerne les tests… J’ai maintenant un pc en debian 4.0 comme client pour mes tests.

Voici les logs sur le client;

D’abord placé directement derrière le serveur dhcp (cela fonctionne toujours très bien) :

[code]Maho:/home/dudu# dhclient3 eth1
Internet Systems Consortium DHCP Client V3.0.4
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/eth1/00:13:77:26:77:92
Sending on LPF/eth1/00:13:77:26:77:92
Sending on Socket/fallback
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 5
DHCPOFFER from 10.0.0.254
DHCPREQUEST on eth1 to 255.255.255.255 port 67
DHCPACK from 10.0.0.254
bound to 10.0.0.89 – renewal in 267 seconds.
[/code]

Et maintenant avec le proxy arp (et dhcp3-relay :/) :

[code]Maho:/home/dudu# dhclient3 eth1
There is already a pid file /var/run/dhclient.pid with pid 4860
killed old client process, removed PID file
Internet Systems Consortium DHCP Client V3.0.4
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/eth1/00:13:77:26:77:92
Sending on LPF/eth1/00:13:77:26:77:92
Sending on Socket/fallback
DHCPREQUEST on eth1 to 255.255.255.255 port 67
DHCPREQUEST on eth1 to 255.255.255.255 port 67
DHCPREQUEST on eth1 to 255.255.255.255 port 67
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 4
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 11
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 11
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 16
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 3
No DHCPOFFERS received.

[/code]

Pour finir, je viens d’essayer arping, que je ne connaissait pas, dis-moi si l’utilisation que j’en ai fait n’est pas la bonne, voici les logs :

arping -D -I eth1 -c 2 10.0.0.100 ARPING 10.0.0.100 from 0.0.0.0 eth1 Unicast reply from 10.0.0.100 [00:40:63:DE:FF:5C] for 10.0.0.100 [00:40:63:DE:FF:5C] 0.832ms Sent 1 probes (1 broadcast(s)) Received 1 response(s)

Maho:/home/dudu# ping 10.0.0.254 PING 10.0.0.254 (10.0.0.254) 56(84) bytes of data. 64 bytes from 10.0.0.254: icmp_seq=1 ttl=63 time=0.260 ms 64 bytes from 10.0.0.254: icmp_seq=2 ttl=63 time=0.271 ms 64 bytes from 10.0.0.254: icmp_seq=3 ttl=63 time=0.454 ms

Maho:/home/dudu# arping -D -I eth1 -c 10 10.0.0.254 ARPING 10.0.0.254 from 0.0.0.0 eth1 Sent 10 probes (10 broadcast(s)) Received 0 response(s)

Aurais-tu une idée après ces infos ? Comment se passer du dhcp-relay ? Y aurait-il des variables à modifier (dans /proc/sys/net/* par exemple) ?

Merci de ton aide

normalement, tu n’as pas besoin de ton dhcprelay, je te le répète: le proxy arp, pour ce que j’en sais, devrait envoyer les requète direct à ton serveur dhcp.
Si tu es patron de ta boite, tu devrais dire au client que puisqu’il ne te considère pas comme suffisamment compètent pour accepter ce que tu considères comme une nécessité technique, il n’a pas besoin de toi. Tu ne vends pas tes mains, mais ta responsabilité technique, et tu n’as pas à prendre de responsabilités sur des décisions qu’il prend lui: tu n’es pas son salarié.
Si tu as besoin du marché… tu es dans la merde.

Pour le reste, ton arping devrait répondre sur le 254. Je vais relire un peu de doc pour t’aider à trouver ce qui cloche.

Mais tu devrais laisser ton client avec sa merde, puisqu’il a décidé de la chier lui même. :mrgreen:

Malheureusement, c’est la 2ème option qui est la bonne. Je ne suis pas le patron, donc je ne peux pas trop décider de cela et en plus c’est un client plutot important et nous avons vraiment besoin du marché.

Mais c’est clair que tu as raison… (ton message m’a bien fait rire d’ailleurs :p)

Chez ce client nous devons faire le maximum pour nous adapter malheureusement…

Y aurait-il une route spéciale que je devrai ajoutée ?

Voici la config de mes interfaces et mes tables de routage :

Sur le routeur frontal :

[code]
debian:~# ifconfig
eth0 Lien encap:Ethernet HWaddr 00:40:63:DE:FF:4A
inet adr:10.0.0.254 Bcast:10.255.255.255 Masque:255.255.255.255
adr inet6: fe80::240:63ff:fede:ff4a/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14540 errors:0 dropped:0 overruns:0 frame:0
TX packets:3314 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:1213508 (1.1 MiB) TX bytes:510977 (499.0 KiB)
Interruption:11 Adresse de base:0xe800

debian:~# route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0[/code]

Et voici le proxy arp :

[code]root@v2b-name:/home/v2admin# ifconfig
eth0 Lien encap:Ethernet HWaddr 00:40:63:DE:FF:5C
adr inet6: fe80::240:63ff:fede:ff5c/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1799 errors:0 dropped:0 overruns:0 frame:0
TX packets:1196 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:206685 (201.8 KiB) TX bytes:502880 (491.0 KiB)
Interruption:10 Adresse de base:0xdc00

eth1 Lien encap:Ethernet HWaddr 00:09:5B:BB:8D:61
inet adr:10.0.0.100 Bcast:10.255.255.255 Masque:255.255.255.255
adr inet6: fe80::209:5bff:febb:8d61/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3377 errors:0 dropped:0 overruns:0 frame:0
TX packets:14637 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:616000 (601.5 KiB) TX bytes:1200300 (1.1 MiB)
Interruption:11 Adresse de base:0x2000

root@v2b-name:/home/v2admin# route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
10.0.0.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth1[/code]

Il n’y a pas de WAN configuré sur le routeur frontal car je fais mes tests sur une maquette personnelle et non chez le client directement.

Je vais continuer à faire des recherches au niveau de l’arp etc…

Merci

Ben effectivement, ton routeur devrait router les paquets en arp.
Je me demande d’ailleurs si ton routeur ne devrait pas avoir aussi l’adresse .254 sur le lan, et si quand un paquet pour cette adresse arrive, il ne doit pas être pris en charge dans le prerouting pour être directement envoyé sur l’interface vers le vrai 254. Mais j’ai un doute, parceque ça, ça concerne l’IP, logiquement…
Peut être en suivant l’arrivée des paquets sur l’interface lan, tu pourrais trouver un critère de prerouting pour faire passer les paquets ARP de l’autre coté.
J’ai commencé à chercher ça hier, mais c’est un peu loin pour moi, et je n’ai rien trouvé de convainquant.

Du as essayé, sinon, au lieu de faire du proxy arp, de bridger carrément les deux interfaces ? On peut faire aussi du firewalling sur les --phys-dev d’un bridge, sais tu ?

Je vais essayer de trouver un moyen de faire en sorte que mon proxy-arp laisse bien passer mes requêtes sans le dhcp-relay… je vais cherché du coté des docs sur le proxy arp et si rien n’y fait j’essaierai de tester le bridge.

Peut être en suivant l’arrivée des paquets sur l’interface lan, tu pourrais trouver un critère de prerouting pour faire passer les paquets ARP de l’autre coté. << je vais essayé de chercher de ce coté

Je me demande d’ailleurs si ton routeur ne devrait pas avoir aussi l’adresse .254 sur le lan<< Tu veux mettre l’ip en .254 en alias sur le coté LAN du proxy ? (ou j’ai mal compris ? :s)

3ême point: oui, comme deuxiême adresse. Même si ça parait bizarre, ça me dit qqchose.

Par contre si je mets un alias en 10.0.0.254 sur eth0:0 ne va t-il pas y avoir un conflit d’ip avec le routeur principal ?

Ben oui, mais je crois bien qu’il faut.
Tiens:
tuxfinder.com/french/HOWTOht … y-ARP.html
Ca devrait éclairer les choses, mais je crains que la grippe ne soit là: je n’arrive pas à me concentrer là dessus, et les lettres se brouillent.

Merci bien, il faisait aussi parti des liens que j’étais en train de consulter ^^

Repose toi bien on reparlera de ça plus tard quand tu iras mieux.

je continues la dessus et encore merci !

Dis moi, as tu fait
echo “1” > /proc/sys/net/ipv4/conf/all/proxy_arp
???

(Si tu ne l’as pas fait, ça va t’énerver…)