web-dev-qa-db-ja.com

iptablesDNATブロードキャストアドレス

Iptablesを使用してブロードキャストパケットの宛先アドレスを変更するのに問題があります。 iptables/Linuxがブロードキャストパケットを転送しない場所をいくつか読んだので、別の場所を探しています。

私のネットワークは/ 30として設定されているので、ブロードキャストトラフィックはx.x.x.3で私に送信されています。 xxx3がmyブロードキャストアドレスではなくなるようにローカルマシンでサブネットを開こうとしましたが、パケットの宛先MACアドレスはffです:ff:ff:ff:ff:ff:xx:xx:xx:xx:xx:xx:xx:xxなので、まだブロードキャストパケットとして解釈されていると思います。

パケットの宛先MACアドレスを変更する方法はありますか?

この操作を実行するiptables以外のツールはありますか?

これを回避する方法が見つからない場合は、このパケットをローカルで受け入れて、パケットデータを目的の受信者に送信するプログラムを作成することを考えています。うまくいかない理由はありますか?

ありがとう!

1
Michael

あるインターフェイスから別のインターフェイスにすべてのトラフィックを渡したい場合は、ブリッジを使用しても機能しますが、トラフィックの一部をローカルに保持する必要がありました。

私の知る限り、iptablesを使用してブロードキャストパケットを転送することは不可能です。結局、受信したパケットを別のインターフェースで再送信するプログラムを書くだけでした。

0
Michael

2つの同一のネットワークを接続したいとします。ネットワークAがネットワークBのアドレスが異なると見なすように、SNATとDNATを実行する必要があります。しかし、なぜブロードキャストパケットを転送したいのですか? SMBおよび自動検出プロトコルのようなプロトコルを機能させる場合、ブロードキャスト先のネットワークの外部から応答を受け取ったときに、とにかく機能しない可能性があります。

NATなしで一意のアドレスが必要な場合は、ブリッジと呼ばれます。 15年前、私はOpenBSDを使用してこれを行いました。同じサブネット内にある2セットのコンピューターの間にファイアウォールを挿入したかったのです。それは簡単でうまくいきました。 Linuxは当時それができませんでした(はいをブリッジしますがファイアウォールはありません)、今日はそれが可能であるはずだと思います。

0
Law29