2016-05-25 1 views
-2

Je veux laisser tomber la réponse dhcp du serveur dhcp qui mac adr est 3c: e3: c9: 64: 3b: f7, donc je peux utiliser la commande suivante: iptables -t raw -A PREROUTING -p udp --sport 67 -m mac --mac-source 3c:e3:c9:64:3b:f7 -j DROPComment faire pour supprimer la réponse dhcp spécifique?

J'apprends d'ici: https://serverfault.com/questions/302445/how-do-i-mac-filter-with-dhcp-server

Mais mon interface utilise le protocole 802.1q, je veux que vlan20 (eth0.20) ne puisse pas recevoir la réponse dhcp de 3c: a3: c9: a4: 3b: f7, mais recevoir de 00: 30: 67: 00: 38: CF .Il y a 2 serveurs dhcp dans vlan20, l'un d'entre eux est passif, il ne répond que l'adresse mac spécifique dans la liste, le passif est pour mon propre usage et un autre est pour pubilc.Dans ce cas, je laisse tomber la réponse de 3c: a3: c9: a4: 3b: f7 alors il ne recevra que de 00: 30: 67: 00: 38: CF.

Un autre vlan30 (eth0.30), qui a seulement un serveur dhcp 3c: e3: c9: 64: 3b: f7, donc rien à faire.

J'ai essayé ce iptables -t raw -A PREROUTING -i eth0.121 -m mac --mac-source 3c:e3:c9:64:3b:f7 -j DROP, mais cela n'a pas fonctionné.

Que manquais-je?

Répondre

0

Votre carte ne dispose que d'une adresse MAC mais de plusieurs interfaces IP. Ils devront avoir leurs adresses attribuées statiquement.

DHCP est un protocole de diffusion qui ne comprend pas les adresses virtuelles.

Le serveur DHCP envoie un DHCPOFFER comment est-il livré à eth0: 30 et non à eth0? eth0: 20 envoie un DHCPDISCOVER ou un DHCPREQUEST en diffusant.

Le serveur DHCP répond par un DHCPOFFER pour informer le client de son adresse IP. DHCPOFFER peut ne pas arriver si eth0: 20 n'a pas encore d'adresse IP.

Le serveur DHCP retransmet et s'appuie sur la couche liaison pour fournir correctement la trame Ethernet (avec les autres couches associées empilées par-dessus) à l'adresse MAC de coordination. C'est ainsi que fonctionne l'assignation DHCP. Le problème pour le DHCPOFFER est que, du point de vue de la couche 2, les deux "dispositifs" (eth0 et eth0: 30) ne peuvent pas être distingués, et donc (du point de vue de la couche 3) le DHCPOFFER est destiné au 255.255.255.255 . Bien que les réseaux locaux virtuels fonctionnent, vous devez vous assurer que vous disposez d'une carte réseau prenant en charge la norme 802.1q.

Je vous assurer que votre carte réseau prend en charge les réseaux locaux virtuels, et je vérifier si le noyau a le module vlan chargé

vérification pour voir si elle est chargée

lsmod | grep 8021q

sinon chargé permet de charger

modprobe 8021q

En ce qui concerne la commande iptables, cela devrait être un dernier recours que les besoins ci-dessus pour travailler correctement.

iptables -I ENTREE -p udp -m udp --sport 68 -m mac de source 3c: e3: c9: 64: 3b: f7 -j DROP

+0

Je suis sûr à ce support Protocole 8021q, car je peux donner à eth0.20 une adresse IP manuellement et cela fonctionne bien.Votre commande 'iptables -I INPUT -p udp -m udp --sport 68 -m mac --mac-source 3c: e3: c9: 64: 3b: f7 -j DROP' va supprimer la réponse dhcp de 3c: e3: c9 : 64: 3b: f7 dans n'importe quelle interface. Je pensais pouvoir ajouter '-i eth0.20' pour spécifier une interface, mais cela n'a pas fonctionné. –

+0

Avec ce que vous essayez de faire, ce n'est pas basé sur IP, mais c'est basé sur l'adresse MAC. –