modprobeはifbデバイスをロードできません。

modprobeはifbデバイスをロードできません。

vethペアを確認してifbデバイスを設定するスクリプトがあり、毎回その特定のvethペアの無料のifbデバイスが見つからないというメッセージが表示されます。

何が問題なのでしょうか?modprobeデフォルトでは、2つを生成するコマンドを実行しようとするとifb同じエラーが発生します。

#return 0 if the ifb is free

check_ifb() 
{
    local installed=`nl-qdisc-list -d $1`
    [ -n "$installed" ] && return 1

    return 0
}

setup_ifb() 
{

    for ifb in `ifconfig -a -s|egrep ^ifb|cut -d ' ' -f1`
    do
        check_ifb "$ifb" || continue
        IFB="$ifb"
        break
    done

    if [ -z "IFB" ]
    then
        echo "Unable to find a free ifb device for $vifname"
        exit -1
    fi

    ip link set dev "IFB" up
    
    if [ $? -ne 0 ]
    then
        echo ip link set dev "IFB" up failed
        exit -1
    fi
}

答え1

基本的に2つあります。IFBロード時にインターフェースを作成するIFBカーネルモジュール。これが廃止された理由です。どちらも同じです。ロード時にインターフェースを作成するカーネルモジュール。これらのインターフェイスは初期ネットワーク名前空間に作成されます。たとえば、システムがコンテナ内にある場合(または初期ではない)ネットワークネームスペースの場合IFBインターフェイスはここにあります。

モジュールをロードせずに次のようになると予想されます。IFB相互作用。これを逆にします。作る一つIFB必要に応じて、インターフェースとカーネルモジュールがロードされます。ifconfig今は廃止予定のLinuxツールに頼らないでください。

例:

ip link add name newifbdev type ifb
ip link set dev newifbdev up

君はもう一つ持ってるIFBnewifbdev呼び出されて使用可能なインターフェースTCミラーデータパック

これは一度に実行することもできます。ユーザーたとえば、名前空間はで始まりますunshare -U -r -nが、手動でロードすることはできません。IFBそのユーザーネームスペースのカーネルモジュール。まだロードされていない場合、モジュールはインターフェイスを作成して間接的にロードされます。デフォルト設定では、2つの追加のifbインターフェイスも初期名前空間に副作用として表示されます。

関連情報