DHCP par VLAN



  • Bonjour à tous,

    Je souhaiterais avoir un serveur DHCP dédié à un VLAN donné afin de pouvoir fournir aux hosts qui se connectent une passerelle par défaut fonction du VLAN auquel ils appartiennent.

    J'ai donc créé 3 VLANs sur une de mes interfaces, j'ai rebooté la machine mais quand je vais à "DHCP server" je ne vois que les interfaces physiques.

    Peut être que je cherche à faire quelque chose d'impossible ? à moins, et ce n'est pas exclu, que je ne comprenne rien …

    Une idée ?

    Merci d'avance de votre aide et bon travail à tous.



  • Avez vous, après avoir créé les Vlans, configuré et activé vos interfaces montés sur les Vlans ?
    Il ne suffit pas de créer les vlans. Il faut ensuite créer les interfaces utilisant les Vlans, puis activer chaque interface.
    Le service dhcp est alors disponible pour une ou plusieurs des novelles interfaces. Je pense que vous avez omis une ou plusieurs étapes. Pas besoin de rebooter Pfsense pour cela.



  • Bonjour à tous et merci de votre aide.

    Effectivement je n'avais pas créé les interfaces associées aux vlans (je débute en PFSense … ), c'est fait !

    Au départ j'ai bridgé l'interface vlan sur l'interface physique ce qui m'évitait d'assigner une adresse IP à mon interface vlan mais je ne la voyais pas dans la liste des interfaces disponibles lorsque je voulais créer un serveur DHCP. J'ai dû la créer avec une adresse IP et là j'ai bien obtenu ce que je voulais.

    J'aimerais comprendre pourquoi : est-ce que le serveur DHCP a impérativement besoin d'être à l'écoute sur une socket IP (adresse+port), ne peut-il pas se contenter d'être à l'écoute sur une interface vlan dans la mesure où il verra quand même arriver les requêtes qui lui sont destinées en broadcast seulement sur le vlan ?

    Merci d'avance de votre aide et bon travail à tous.



  • Ce que vous avez constaté et que vous ne comprenez pas est bien normal.

    Au départ j'ai bridgé l'interface vlan sur l'interface physique

    Une question pour vous mettre sur la voie : A quel niveau le broadcast est il effectué lorsqu'une machine émet un "DhcpRequest" ? Si vous avez la réponse vous devriez comprendre le pourquoi de ce que vous avez constaté.



  • Bonjour à tous,

    Je me réfère à ce que je configure quand j'installe une machine virtuelle avec KVM par exemple. Sur le host je crée un bridge dans lequel j'insère la carte réseau physique et les cartes réseaux virtuelles. Les cartes sont seulement UP, elles n'ont pas d'adresse IP, c'est le bridge seul qui a une adresse IP, le host est joignable à cette adresse. Les machines virtuelles utilisent les interfaces virtuelles pour communiquer entre elles et avec le host.

    Si je compare (mais comparaison n'est pas raison) mes VLANs sont bridgés sur l'interfaces physique, dans ce mode là il me semble que le broadcast est vu par l'ensemble des interfaces du bridge (mais je me trompe probablement) ?

    Enfin en poussant le raisonnement un peu plus loin un broadcast émit sur un VLAN donné ne doit pas être diffusé sur l'ensemble des interfaces sinon les DHCP des autres interfaces vont répondre … J'en déduis que mon raisonnement du paragraphe précédent est faux !

    Dite moi si je me trompe ?

    Merci d'avance et bon travail à tous.



  • Non ce n'est pas compris, il faut revenir a des fondamentaux, pas besoin de référence à KVM ou autre.
    Une carte en bridge ne s'intéresse qu'au trafic au niveau de la couche de liaison, donc ethernet. Cette carte ne sait traiter ni ip, ni aucun protocoles des couches supérieures. Un dhcp discover (et non dhcp request comme je l'ai dit plus haut) est un brodcast ip qui contient un datagramme UDP spécifique (le message dhcp) adressé au port UDP 67. Bien sûr le broadcast ip fait appel à un brodcast de couche de lien ensuite, mais une carte en bridge ne sait pas traiter le brodcast ip et encore moins son contenu udp.
    Voilà pourquoi on ne peut monter un serveur dhcp qui répondrait à partir d'une carte en bridge. Au surplus vous verrez que dans la transaction dhcp le client va terminer en utilisant l'ip qui lui a été proposé.
    Tous les détails : http://www.frameip.com/dhcp/#6_-_Les_requêtes_et_les_messages_DHCP



  • Merci beaucoup de votre réponse et de votre lien que j'ai suivi avec attention.



  • Bonjour à tous,

    J'ai fait quelques progrès, j'ai lu les liens proposés et j'ai décortiqué le livre "PFSense the definitive guide … " que je viens de recevoir.

    J'ai donc créé des vlans sur une carte parente de type emx (dans mon cas une Intel E1000 like vue em3), ensuite j'ai activé un serveur DHCP sur chaque interface.

    Dans le menu Status->Interfaces j'ai vérifié, il y a bien :

    VLAN10 up interface vlan0 ...
    VLAN20 up interface vlan1 ...
    et ainsi de suite. L'adresse mac de chaque carte vlan est bien l'adresse mac de la carte parent, les adresses IP sont correctes

    Coté switch j'ai créé un trunk port (1) sur lequel j'ai branché la carte de mon serveur PFSense.

    Exemple vlan 10 port 1 tagged, port 2 untagged
                vlan 20 port 1 tagged, port 3 untagged
    et ainsi de suite.

    Sur le port 2 du switch j'ai branché une machine Debian avec elle aussi une carte Intel E1000 like.

    Lorsque je lance la requête DHCP (dhclient eth0) depuis ma machine Debien il y a une suite de DHCPDISCOVER jusqu'à l'échec

    Dans les logs de PFSense je vois bien que la demande arrive puisque j'ai ça : (le plus récent en haut)

    DHCPOFFER on 192.168.6.245 to mac_address_client via vlan0
    DHCPDISCOVER from mac_address_client via vlan0

    Si je connecte maintenant ma machine au port 3 j'ai le même problème cette fois-ci via vlan1 avec la bonne adresse proposée par le serveur DHCP ce qui aurait tendance à prouver que la configuration du switch n'est pas en cause.

    D'autre part je ne vois rien dans les logs du firewall alors que lors de mes premières tentatives je voyais des blocages sur em3 ce qui ne m'a pas semblé bon et qui est réglé depuis ...

    En guise de première conclusion on constate que la requête arrive bien mais que le retour pose quelques problèmes ?

    J'ai essayé de changer le MTU à 1496 soit d'un coté soit de l'autre soit les deux à la fois suivant les conseils de Debian mais pas d'amélioration.

    Enfin j'ai fixé une adresse mac différente à chaque interface vlan mais ça n'a pas été mieux ...

    Donc c'est pas mal la panique, je ne vois pas bien comment me dépanner. Une idée ?

    Merci d'avance et bon travail à tous.



  • Que voit on sur la Debian si on capture le trafic ? Autre chose que donne une capture sur Pfsense puis lecture avec Wireshark ?



  • Bonjour,

    Pour essayer de limiter le périmètre du problème j'ai fixé manuellement l'adresse de la carte cliente et j'ai fait un ping vers la carte vlan.

    J'ai fait un tcpdump -i em3 -w fichier et j'ai récupéré ledit fichier pour l'ouvrir avec wireshark (je n'avais jamais utilisé ce produit, c'est une merveille).

    Doté Debian

    Ethernet II, Src: 02:00:00:09:d7:c2 (02:00:00:09:d7:c2), Dst: Broadcast (ff:ff:ff:ff:ff:ff)

    Coté PFSense

    02:00:00:09:d7:c2 Broadcast ARP Who has 192.168.7.254?  Tell 192.168.7.9
    02:00:00:c6:45:b6 02:00:00:09:d7:c2 ARP 192.168.7.254 is at 02:00:00:c6:45:b6
    802.1Q Virtual LAN, PRI: 0, CFI: 0, ID: 300

    Première conclusion : le paquet arrive bien avec les bonnes informations …

    Même capture mais en lançant cette fois un dhclient eth0 depuis ma machine Debian

    Coté Debian on a ça :

    Ethernet II, Src: 02:00:00:09:d7:c2 (02:00:00:09:d7:c2), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
    User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)

    Donc une suite de DHCP Request. J'ai vérifié, l'adresse mac est bien celle de la carte

    Coté PFSense on voit la requête, elle est à destination du bon vlan :

    Ethernet II, Src: 02:00:00:09:d7:c2 (02:00:00:09:d7:c2), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    802.1Q Virtual LAN, PRI: 0, CFI: 0, ID: 300
    Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
    User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)

    Puis la réponse :

    Ethernet II, Src: 02:00:00:ae:17:75 (02:00:00:ae:17:75), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    802.1Q Virtual LAN, PRI: 0, CFI: 0, ID: 300
    Internet Protocol, Src: 192.168.7.254 (192.168.7.254), Dst: 255.255.255.255 (255.255.255.255)
    User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)

    L'adresse mac de la source est bien celle de la carte parente. J'ai essayé en mettant une adresse mac arbitraire à la carte vlan, elle est bien vue mais toujours sans succès.

    Le seul truc qui me gène dans la réponse c'est que ce n'est pas à destination d'une adresse mac mais ma réflexion n'est pas forcement juste car je suis en limite de compétences ...

    Je me demande si le problème ne tourne pas autour de ARP mais c'est juste un feeling !

    Merci d'avance de votre aide et bon travail à tous.



  • Je suis passé du switch virtuel virtuel vde_swith à un switch physique, un vieux Netgear FST726T ça fonctionne.

    Conclusion : vde_switch ne sait pas faire correctement du vlan contrairement à ce qui est annoncé à moins que je me sois trompé ce qui n'est pas exclu …

    Merci à tous de votre collaboration.


Log in to reply