По умолчанию в OpenSUSE 12.2 используется NetworkManager для управления сетью. Однако есть одна проблема:
# настройки sysctl
$ grep -v '^#' /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
# проверяем, что у нас сейчас настроено
$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
# перезапускаем сеть
$ sudo systemctl restart network.service
# проверяем, что у нас сейчас настроено еще раз
$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
Что-то автоматически меняет параметр net.ipv4.ip_forward в 0. И такое изменение происходит каждый раз как NetworkManager подключает новое соединение.
Нашёл workaround:
- Поменял 'NetworkManager' на 'Traditional if-up' через YaST
- Там же ткнул галку «IP forwarding» (с NetworkManager эта галка выключена) -> Apply
- Обратно включил NetworkManager - и всё стало нормально
Может кто разъяснить почему всё так? (Может написать багрепорт в Novell)