web-dev-qa-db-ja.com

2つのローカルインターフェイス間でデータの転送を有効にする方法

整備済みのマシンにUbuntu 11.10をインストールしました。また、欠陥のあるNICカードを新しいNICカードに交換しました。インストールの実行時に2つのNICカードが認識されます。プロキシサーバーとしてsquidをインストールしています。すべてのワークステーションがルーターに接続されている場合、Squidはうまく機能します。しかしながら ... 。

1つのNICをルーターに接続し(ライブインターネット接続が利用可能)、他のNICをスイッチに(インターネットが利用できない場合)接続すると、2つの個別のネットワークを作成できますが、 2つのNICカードを使用して、2つのネットワーク間でデータを転送する方法はわかりません。

  1. 両方のイーサネットカードをブリッジしようとしました...運がありません!
  2. 私はiptablesを更新しようとしました...運はありません!
  3. 両方のNICカードを静的アドレスに設定しました...運がありません!
  4. 片方のNICをもう一方をゲートウェイとして使用するように構成しました...運がありません!すべて、pingされたアドレス(スイッチに関連するネットワーク)が到達不能な宛先にあるというエラーが発生します。

私は何が欠けていますか?

3
Jim Schafer

正規の方法があるため、@ laurentによって記述されたスクリプトは不要です。必要なことは、/etc/sysctl.confを編集し、この行のコメントを外す(最初の#を削除する)だけです:

net.ipv4.ip_forward = 1

その後、ブート時にすでに適用されます。

5

Ubuntuでは、デフォルトでip fowardingが無効になっています。マシンでパケットをルーティングするには、それを有効にする必要があります。

有効にするには、ターミナルをルートとして入力します(Sudo su):

echo 1 > /proc/sys/net/ipv4/ip_forward

Obs:Sudoでは動作しません

このマシンからインターネットをルーティングする場合は、NATも構成する必要があります。

編集:

最初のコマンドecho 1 ...は、Sudoでは機能しません。前にSudo suでルートに変更する必要があります(Sudoはルートとしてecho 1を実行しますが、ユーザーとしてファイルにリダイレクトしようとするため、これは機能しません)。とにかく、cat /proc/sys/net/ipv4/ip_forwardに1があるかどうかを常に確認できます。 Obs:これはブートごとに実行する必要があるため、スクリプトを記述してupdate-rc.dを使用できます。

Eth0がインターネット接続NICである場合、ポストルーティングルールはOKに見えます。

確立された関連する接続に使用するFORWARDルール:

-A FORWARD -p tcp -m state -d your_network_ip.0/255.255.255.0 --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p udp -m state -d your_network_ip.0/255.255.255.0 --state RELATED,ESTABLISHED -j ACCEPT

2回目の更新-自動スクリプト:

#!/bin/sh
# turn ip_forward on/off

case "$1" in
'start')
        echo 1 > /proc/sys/net/ipv4/ip_forward
        ;;
'stop')
        echo 0 > /proc/sys/net/ipv4/ip_forward
        ;;
*)
        echo "Usage: $0 { start | stop }"
        ;;
esac
exit 0

このスクリプトを/etc/init.dに目的の名前(routerなど)で保存し、実行可能にします(Sudo chmod +x /etc/init.d/router)。

再起動ごとに実行するには、update-rc.dで開始リンクを作成する必要があります。

Sudo update-rc.d router defaults

確認する必要があるその他の事項:

  • 2番目のネットワークで動作し、マシンIPをサブネットへのデフォルトゲートウェイとして送信するDHCP
  • デフォルトゲートウェイ(新しいサブネットのマシンIP)は、固定IPの方が優れています
  • 2番目のNICをpingできないとコメントしましたが、どこからですか?サブネット、ルーター、またはルーターに直接接続されているマシンですか?
  • squidがマシンにインストールされていますか?新しいサブネットを含むように構成を変更しましたか?イカが必要ですか?構成は非常に簡単ではなく、追加機能が必要ない場合は、インターネットとネットワークを非常にうまく共有できます。

Obs:update-rc.dメッセージは問題ありません。問題ありません。これで、ip_forwardファイルの値は常に1になります。

4
laurent