Problém
Parametr sysctl se po restartu na serveru RHEL 7 neprojevil. Parametr „net.ipv4.conf.all.forwarding“ byl deaktivován před restartováním serveru.
# cat /proc/sys/net/ipv4/conf/all/forwarding 1
# sysctl net.ipv4.conf.all.forwarding=0 net.ipv4.conf.all.forwarding = 0
# cat /proc/sys/net/ipv4/conf/all/forwarding 0
#cat /etc/sysctl.conf|grep net.ipv4.conf.all.forwarding net.ipv4.conf.all.forwarding = 0
# shutdown -r now
# cat /proc/sys/net/ipv4/conf/all/forwarding ### Gets enabled after reboot. 1
Řešení
RHEL 7 má službu s názvem „vyladěno ” který pomáhá vytvářet vlastní profily a přepisuje hodnoty “sysctl” nastavené v souboru /etc/sysctl.conf, protože služba “tuned” se spustí po službě “sysctl”. K definování parametrů jádra na serveru RHEL/CentOS 7 použijte kteroukoli z níže uvedených metod.
1. Zkontrolujte aktivní profil ladění na dotčeném serveru.
# tuned-adm active Current active profile: virtual-guest
2. Přejděte do příslušného adresáře laděného profilu a ověřte, zda je problematický parametr jádra sysctl definován s nějakou alternativní hodnotou.
# cd /usr/lib/tuned/virtual-guest # cat tuned.conf # # tuned configuration # [main] include=throughput-performance [sysctl] net.ipv4.conf.all.forwarding = 1
Pokud ano, pak existují dvě možnosti, jak opravit nesprávný parametr jádra sysctl po restartu.
a) Odstraňte položku v laděném profilu, aby se projevila hodnota „/etc/sysctl.conf“.
# cd /usr/lib/tuned/virtual-guest # cat tuned.conf # # tuned configuration # [main] include=throughput-performance [sysctl]
b) V opačném případě odstraňte položku v „/etc/sysctl.conf“, díky čemuž bude vyladěná hodnota po restartu trvalá.
# cat /etc/sysctl.conf | grep net.ipv4.conf.all.forwarding #
V tomto případě se ujistěte, že máte parametr přítomen v souboru laděného profilu.
# cd /usr/lib/tuned/virtual-guest # cat tuned.conf # # tuned configuration # [main] include=throughput-performance [sysctl] net.ipv4.conf.all.forwarding = 0