整備済みのマシンにUbuntu 11.10をインストールしました。また、欠陥のあるNICカードを新しいNICカードに交換しました。インストールの実行時に2つのNICカードが認識されます。プロキシサーバーとしてsquidをインストールしています。すべてのワークステーションがルーターに接続されている場合、Squidはうまく機能します。しかしながら ... 。
1つのNICをルーターに接続し(ライブインターネット接続が利用可能)、他のNICをスイッチに(インターネットが利用できない場合)接続すると、2つの個別のネットワークを作成できますが、 2つのNICカードを使用して、2つのネットワーク間でデータを転送する方法はわかりません。
私は何が欠けていますか?
正規の方法があるため、@ laurentによって記述されたスクリプトは不要です。必要なことは、/etc/sysctl.conf
を編集し、この行のコメントを外す(最初の#
を削除する)だけです:
net.ipv4.ip_forward = 1
その後、ブート時にすでに適用されます。
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
#!/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
Obs:update-rc.dメッセージは問題ありません。問題ありません。これで、ip_forwardファイルの値は常に1になります。