This service is available only in Japanese-language.
yoctoでビルドしたLinux上で、iptablesを使用して次のコマンドでポート許可設定を行った所、
「iptables -A INPUT -p tcp --dport 80 -j ACCEPT」
次のエラーが表示されました。
「iptables: No chain/target/match by that name.」
エラーを調査した所、「--dport」拡張オプションでエラーが発生していることが分かりました。
この機能を使用するために何が足りないのでしょうか?
また、パッケージ等が足りない場合、confファイルにどのように追加すれば良いでしょうか?
yakuhito
2018/6/21 (木) 10:30
iptables実行に必要なカーネルモジュールの有無を確認してください
iptablesを実行すると、必要なカーネルモジュールの有無をチェックし、無い場合に表示される
エラーメッセージのようです。
当方で、常時動作確認で使用しているbeagle bone black (Yocto2.5 poky にて構築)では
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
はエラー無く実行されており、当該コマンドを事項すると
iptables_filter
ip_tables
x_tables
の3つのカーネルモジュールがロードされております。
kernelのコンフィグレーションの変更方法は、お使いのBSPによって
異なっておりますので、お使いのBSP及びバージョンをお知らせいただけると
設定方法のアドバイスができるかと。
amateur_yocto
2018/6/21 (木) 11:22
使用BSP
ご返答ありがとうございます。
lsmod で確認した所
Module Size Used by
iptable_filter 1872 0
ip_tables 11511 1 iptable_filter
x_tables 18397 2 ip_tables,iptable_filter
の3つが確認できました。
beagle bone black Yocto2.2 で構築しております。
よろしくお願い致します。
yakuhito
2018/6/21 (木) 13:55
yocto2.2.0のリリース版をダウンロードした場合は、エラーとならずに実行できています
以下、yocto2.2.0 のリリース版をダウンロードし、MACHINEをbeagleboneに変更した以外は変更していない状態でbuildしたもので
実行した際のlsmodの結果です。
Module Size Used by
xt_tcpudp 2455 1
iptable_filter 2139 1
ip_tables 11820 1 iptable_filter
x_tables 18327 3 ip_tables,iptable_filter,xt_tcpudp
local.conf 等での変更が影響している可能性がありそうですね。
amateur_yocto
2018/6/21 (木) 17:47
カーネルモジュール追加
local.confのIMAGE_INSTALL_appendで「kernel-module-xt-tcpudp」を追加して解決いたしました。
ありがとうございました。
yakuhito
2018/6/22 (金) 10:48
core-image-minimalをベースとした場合はxt-tcpudpはインストールされないですね
最初にどのイメージで作成したのか確認すれば良かったです。
iptables_1.6.0.bb のRRECOMENDS_${PN} では、kernel-module-xt-tcpudp の記載が抜けていますね。
core-image-satoを指定した場合は、kernel構築時にモジュールで指定されたドライバーは、指定しなくても自動的に
rootfsに追加されていましたが、core-image-minimalは、明示的に指定する必要があります。
恒常的にこの設定を有効にするには新規にレイヤーを作成し
a) IMAGE_INSTALL_appendに記載する
独自のimageレシピを作成する又はcore-image-minimal.bbappend を作成し
IMAGE_INSTALL_append = " kernel-module-xt-tcpudp"
を記載する
b) iptables のbbappendを作成する
追加したレイヤー内にrecipes-extended/iptables/iptables/iptables_1.6.0.bbappendを作成し
RRECOMMENDS_${PN} += " kernel-module-xt-tcpudp "
を記載する
上記2つのいずれかの方法で、rootfsにkernel-module-xt-tcpudp が追加されます。
amateur_yocto
2018/6/22 (金) 13:24
core-image-minimalをベースにしておりました
core-image-minimalではxt-tcpudpはインストールされていないんですね、
ありがとうございます、勉強になりました。