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

보다 정확하게는 0으로 설정됩니다.멈추다스크립트 부분 /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

관련 정보