私たちは、デュアル LAN カード (外側と内側とします) を備えたボックスを組み立てようとしています。内側の LAN カードは、接続されているネットワーク上のデフォルト ゲートウェイとして機能することになっています。
このボックスでは Ubuntu が動作しています。このボックスの基本的な目的は、内部ネットワークで生成されたメッセージを取得し、それに対して何らかの処理を行って、外部 LAN カードからサーバーに転送することです。内部ネットワークは、内部 LAN カードと他の 2 つのボックスを接続する通常のスイッチだけで完全に分離されています。
これらの他のボックスは、マルチキャスト メッセージ (内部 LAN カードがリッスンしている) を送信するか、この内部ネットワーク上にないサーバー向けのユニキャスト メッセージを送信します。したがって、内部 LAN カードは、これらのユニキャスト メッセージが送信されるデフォルト ゲートウェイとして機能し、デュアル LAN カード ボックスのコードがこれらのメッセージを傍受してサーバーに転送できるようにする必要があります。
質問: 1. LAN カードをデフォルト ゲートウェイとして設定するにはどうすればよいですか (Ubuntu で何らかの設定が必要ですか)? 2. この設定が完了したら、インターフェイスを監視して着信メッセージを傍受するだけですか?
どのようなご助力(正しい方向へのご助言)もいただければ幸いです。
ありがとう。
答え1
NIC をデフォルト ゲートウェイにするために特別な設定は必要ありません。内部 LAN 内のマシンを、この NIC IP をデフォルト ゲートウェイとして使用するように設定するだけで済みます。
2 つのサブネット間でパケットをルーティングするには、以下を使用して IPv4 転送を有効にする必要があります。
# echo 1 > /proc/sys/net/ipv4/ip_forward (as root)
永続的にするには、ファイルを編集して/etc/sysctl.conf
次の行のコメントを解除します。
net.ipv4.ip_forward=1
パケット傍受の場合は、C/C++ でプログラムを作成できます。libpcap を使用して、内部 NIC に到達するトラフィックを取得し、必要な処理を実行できます。実行したい処理の種類がわからないため、詳細を提供することはできません。