2016-05-25 1 views
-2

私はaddrが3CであるMAC、DHCPサーバからのDHCP応答をドロップしたい:E3:C9:64:3B:F7、私は次のコマンドを使用することができます:私はここから学ぶiptables -t raw -A PREROUTING -p udp --sport 67 -m mac --mac-source 3c:e3:c9:64:3b:f7 -j DROPどのように特定のdhcp応答をドロップするには?

を:https://serverfault.com/questions/302445/how-do-i-mac-filter-with-dhcp-server

私のインターフェイスは802.1qプロトコルを使用していますが、vlan20(eth0.20)が3cからのdhcp応答を受信できないようにします:a3:c9:a4:3b:f7、ただし00:30:67:00:38:CF .vlan20には2つのDHCPサーバーがあり、そのうちの1つはパッシブです。リスト内の特定のMACアドレスにのみ応答します。パッシブなものは自分自身のもので、もう1つはpubilc.nのものです。 3c:a3:c9:a4:3b:f7の場合、00:30:67:00:38:CFからのみ受信します。

もう1つのdhcpサーバ3c:e3:c9:64:3b:f7しか持たない別のvlan30(eth0.30)。

私はこれを試しましたiptables -t raw -A PREROUTING -i eth0.121 -m mac --mac-source 3c:e3:c9:64:3b:f7 -j DROP、しかし動作しませんでした。

何が欠けていますか?

答えて

0

カードには1つのMACアドレスがありますが、複数のIPインターフェイスしかありません。彼らは自分のアドレスを静的に割り当てる必要があります。

DHCPは仮想アドレスを認識しないブロードキャストプロトコルです。

DHCPサーバーはDHCPOFFERをどのように送信しますか?eth0:30ではなくeth0にどのように配信されますか? eth0:20はブロードキャストでDHCPDISCOVERまたはDHCPREQUESTを送信します。

DHCPサーバーはDHCPOFFERで応答し、クライアントにIPアドレスを通知します。 eth0:20にまだIPアドレスがない場合、DHCPOFFERが届かないことがあります。

DHCPサーバはブロードキャストして、リンクレイヤに依存して、イーサネットフレーム(他の関連するレイヤがその上にスタックされている)を調整MACアドレスに正しく配信します。これがDHCP割り当ての仕組みです。

DHCPOFFERの問題点は、レイヤ2の観点から、2つの「デバイス」(eth0とeth0:30)は区別できないため、DHCPOFFERは255.255.255.255を宛先としています。

VLANは機能しますが、実際に802.1qをサポートするNICがあることを確認する必要があります。

私はあなたのNICがVLANをサポートしていることを確認します、と私はカーネルがロードされている場合

はlsmodを参照するには

チェックをロードされたVLANモジュールを持っているかどうかをチェックします|ロードされていない場合はgrep 8021q

は、上記のニーズが適切に動作させるようにはiptablesコマンドについては

のmodprobe 8021q

、これは最後の手段であるべきロードできます。

のiptables -I INPUT -p udpの-m udpの--sport 68 -m MAC --macソース3C:E3:C9:64:3B:F7 -j DROP

+0

私はそれについてのサポート確信しています私はeth0.20に手動でIPアドレスを与えることができ、それはうまく動作するので、8021qプロトコル。あなたのコマンド 'iptables -I INPUT -p udp -m udp -sport 68 -m mac -mac-source 3c:e3:c9:64:3b:f7 -j DROP'は3cからのdhcp応答を落とします:e3:c9 :64:3b:f7を指定してください。私は '-i eth0.20'を追加してインターフェースを指定できると思っていましたが、動作しませんでした。 –

+0

何をしようとしているのか、それはipベースではありませんが、MACアドレスベースです。 –

関連する問題