問題タブ [ebtables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - ebtables のカスタム モジュールを作成するには?
基本的には、ebtables に可能なフィルターを追加するカーネル モジュールを作成したいと考えています。次に、設定したブリッジでフィルターを使用するように ebtables に指示する必要があります。
独自のモジュールを作成する必要があるのは、連続するパッケージ間に遅延を導入したいからです (何らかのテスト上の理由から)。実証するために、私のネットワークにはもともと次のようなトラフィックがあります。
ここで+
、 はパッケージのトラフィックを示し-
、ライン上にパッケージがないことを意味します。パケットのパターンが次のように変わるように、間にブリッジを配置したいと思います。
これは、各パケットの到着の間に一定量の遅延があることを確認することを意味します。
これで、基本的に linux-source/net/bridge/netfilter/ebt_ip.c から取得した次の簡単なコードを作成しました。
モジュールのロードに成功しました。しかし、それはあたかもそこにないかのようです。内部のログmatch
とcheck
機能を取得していないため、ブリッジは明らかにフィルターを考慮していません。私は何を間違っていますか?
最初にフィルターをロードする、最初にブリッジをセットアップする、または最初に ebtables ルールを設定するという多くの組み合わせを試しましたが、どれも何も変わりません。
PSブリッジ自体は機能します。パッケージをドロップするポリシーを追加すると、最終的なコンピューターでそれらを受信しないため、ebtables も有効であると確信しています。私が理解できないのは、私のフィルターも考慮するようにebtablesに指示する方法です。
wireless - iptables/ebtables を使用して任意のポートにリダイレクトする前に、クライアントの MAC アドレスをファイルに保存するにはどうすればよいですか?
IP またはポートにリダイレクトする前に、クライアントの MAC アドレスをファイルに保存したいと考えています。iptables を使用してリダイレクトを行っています。クライアントの MAC を取得してファイルに保存することはできますか?
iptables - Iptablesを使用してURLにリダイレクトしながら、必要なMACアドレスを引数として送信する方法は?
クライアントを別の URL にリダイレクトしたい。ポートリダイレクトを使用してこれを行いました。しかし、URL の引数としてクライアントの MAC アドレスが必要です。MAC アドレスを取得して URL とともに送信するにはどうすればよいですか。
shell - ebtables ルールが一致したときにシェル スクリプトを実行する方法は?
特定の ebtables ルールが一致したときにシェル スクリプトを実行したい。スクリプトは、クライアントの MAC アドレスと、クライアントが接続されているインターフェイスを取得する必要があります。どうすればこれを達成できますか?
linux - Linux 仮想ブリッジで DHCP スヌーピング ルールを作成する方法
DHCP サーバーと仮想ブリッジを実行している Linux サーバー (10.0.0.1) があります。仮想ブリッジは 4 つのイーサネット インターフェイスを接続し、ユーザーを接続するマスター スイッチとして機能します。
一部のユーザーが、マスター DHCP サーバーに到達する前に DHCP 要求に応答する不正な DHCP サーバーを誤って作成した場合に、問題が発生します。
したがって、仮想スイッチのポート間で行われるすべての DHCP 要求をブロックしたいと考えていますが、マスター DHCP サーバーとの間の要求はブロックしたいと考えています。これを行うためにどの ebtables ルールを設定できますか?
iptables - iptables/ebtables を使用した MAC フィルタリング
ネットワーク内のノードで MAC アドレスを削除しようとしています。ここで、iptables と ebtables の 2 つのツールを試しましたが、どちらも失敗しました。
iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP
その結果、「iptables: No chain/target/match by that name.」という結果になります。ebtables -A INPUT -s 00:11:22:33:44:55 -j DROP
「FATAL: Module ebtables not found. The kernel does not support the ebtables 'filter' table.」という結果になります。
カーネル バージョン 2.6.32 を使用しています。uname -r
結果は "2.6.32-042stab049.6.emulab.1" になります。
どうすれば(少なくとも1つ)それを機能させることができますか? この失敗について検索しましたが、多くの情報が見つかりません。カーネルが ebtables 'filter' テーブルをサポートするようにするにはどうすればよいですか? 「その名前でチェーン/ターゲット/一致がない」というのはなぜですか?
linux - カスタム ebtables モジュール && skb 操作 && カーネル パニック
少し前に、Ashwin Kashyap による vnat モジュールに基づいて ebtables モジュールを実装しました ( http://www.research.rutgers.edu/~ashwink/misc_projs/ebt_vnat.html)。モジュールは、vlan タグを削除し、vlan id を nf マークに入れるために、brout テーブルの BROUTING チェーンで使用できます。モジュールでは、nat テーブルの POSTROUTING チェーンの nf マーク値に基づいて vlan タグを追加することもできます。モジュールには、ブリッジされたトラフィックでの作業に問題はありません。システムは非常に安定しています。ミックスに tproxy インターセプトを追加するとすぐに問題が始まります。これにより、しばらく操作した後にカーネル パニックが発生します。トラフィック ストリームが tproxied された数分後、最初のパケットの後にカーネル パニックが発生しないという事実を強調します。SKB をマングルする方法は、L3+ 処理に対して十分にクリーンではないようです。ところで、私は 2.6.32 カーネルに取り組んでいます。以下のコメントでモジュールの重要な部分を見つけてください。
ポインターに感謝します(少なくとも64ビットの長さである限り)。ありがとう!