net.ipv4.ip_forward は、/etc/sysctl.conf に設定されていても 0 に戻ります。

net.ipv4.ip_forward は、/etc/sysctl.conf に設定されていても 0 に戻ります。

私はそれを設定しnet.ipv4.ip_forward = 1/etc/sysctl.conf実行して出力で予想値に設定しましたが、sysctl -p昨夜と今の間のどこかで何かがリセットされました。これを行う方法についてのアイデアはありますか?検索して検索しましたが、何も表示されませんでした。1sysctl -a0/var/log/cronforwardsysctl

答え1

一部のCentOSバージョンでは、ネットワークサービスが再起動されたときにそれをリセットします(net.ipv4.ip_forward例:)。0service restart networking

より正確にはゼロに設定されます。止めるスクリプト部分/etc/init.d/network:

stop)
      [ "$EUID" != "0" ] && exit 4
      # Don't shut the network down if root is on NFS or a network
      # block device.

      # [...]

      action $"Shutting down loopback interface: " ./ifdown ifcfg-lo

      sysctl -w net.ipv4.ip_forward=0 > /dev/null 2>&1

スクリプトを編集し、この行を削除または変更できます。

バラよりRed Hat Bugzilla バグ 552653より多くの情報を知りたいです。

答え2

sysctlネットワークが正しく初期化される前に値がロードされるバグがあります。これはネットワーク設定を/etc/sysctl.conf無視します。この問題に対する解決策は、初期化が繰り返されるように再起動するprocpsことです。/etc/local.rc

問題のあるエラー:https://bugs.launchpad.net/ubuntu/+source/procps/+bug/50093

答え3

/var/log/cron考えられる原因を特定して確認できるように、毎分この設定値を記録するようにロギングを設定しました。リカバリが高度なポリシーファイアウォール(APF)で実行されるクローン操作に対応しているようです。

誰かに役立つ場合に備えて、私のミニロギングスクリプトは次のようになります。

echo `date`" - "`sysctl -a | grep net.ipv4.ip_forward` >> /var/log/ip_forward_setting.log

関連情報