読者です 読者をやめる 読者になる 読者になる

Linux 3.18のrc版でiptablesが起動できなかったという話

kernel linux

Linux 3.18のrc(自分が気付いたのは3.18-rc2)でiptablesが動かないからkvm環境等々が動かせなくて悩んでたんだけど、とりあえずはpatchを見つけたので解決。 パッチは(nf_reject_ipv4: module license 'unspecified' taints kernel - Patchwork)です。

iptabelsが動いていなかった原因は見ての通りでip_local_out_skというシンボルが見つからなかったから。

masami@saga:~/linux-kernel/net (vanilla)$ journalctl -xn
-- Logs begin at Fri 2013-11-01 02:34:09 JST, end at Wed 2014-10-29 00:43:43 JST. --
Oct 29 00:29:35 saga sudo[17236]: pam_unix(sudo:session): session opened for user root by (uid=0)
Oct 29 00:29:35 saga iptables-restore[17239]: iptables-restore: line 27 failed
Oct 29 00:29:35 saga kernel: nf_reject_ipv4: Unknown symbol ip_local_out_sk (err 0)
Oct 29 00:29:35 saga systemd[1]: iptables.service: main process exited, code=exited, status=1/FAILURE
Oct 29 00:29:35 saga systemd[1]: Failed to start Packet Filtering Framework.
-- Subject: Unit iptables.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit iptables.service has failed.
-

この関数はnet/ipv4/ip_output.cにあってEXPORT_SYMBOL_GPL(ip_local_out_sk);とエクスポートされているはずなんだけど何故かシンボルが見つからずという状態。 で、先のパッチを見つけたので当ててみたら無事にiptalbes起動しました。
原因はすごい単純でmodulesのライセンス(MODULE_LICENSE("GPL");)が抜けていたからというもの。いやー、MODULE_LICENSEが無いとこんなことになるんですね φ(..)メモメモ

サーバ/インフラ徹底攻略 (WEB+DB PRESS plus)

サーバ/インフラ徹底攻略 (WEB+DB PRESS plus)