問題タブ [linux-namespaces]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - LXC コンテナの IP アドレスを取得するには?
lxc-start を使用して lxc を開始しました。では、コンテナの IP アドレスを取得するにはどうすればよいでしょうか。
linux - 単一アプリケーション用の複数の Linux ネットワーク名前空間
ネットワーク分離のためにネットワーク名前空間を使用して、VRF 動作 (仮想ルーティングと転送) を実現しようとしています。基本的に、デフォルトの名前空間の TCP ポートでサーバー アプリケーション (C/C++) を実行しています。私がやりたいのは、ネットワーク名前空間を使用して、VLAN を使用して分離された VRF を作成し、デフォルトの名前空間で実行されているそのアプリケーションが各名前空間にスレッドを生成して、名前空間ごとに同じポートでリッスンできるようにすることです。
私はネットワーク側を理解しましたが、スレッドを生成する方法がわかりません (可能であれば、clone() の代わりに pthread を使用することをお勧めします)、それらの名前空間の 1 つで setns() を呼び出し、同じ名前空間にバインドします。名前空間内のポート。名前空間とブリッジを作成するために私が行っていることは次のとおりです (簡単にするために、ここでは名前空間を 1 つに制限しています)。
これにより、ピア マシン (コンテナーなし) に VLAN を作成し、問題なく 10.10.10.1 に ping を実行できます。だから私はリンクが良いことを知っています。私がやりたいことは、既存のアプリケーションが C または C++ でスレッドを生成できるようにし (pthreads が強く推奨されます)、そのスレッドが setns() を呼び出して名前空間 ns_vlan100 に入れることで、次にバインドできるようにすることです。その名前空間のすぐ内側にある、アプリケーションの同じポート。
これを行う方法がわかりません。どんな助けでも大歓迎です。
c - 共有解除後の grantpt レポート エラー
共有解除後に疑似端末を作成しようとする小さなプログラムがあります。出力は次のとおりです。
コード:
を削除するflag |= CLONE_NEWUSER;
と、エラーは報告されません。なぜこれが起こるのか説明できますか?前もって感謝します!
linux - Linux のネットワーク名前空間機能を使用して、プロセスによってネットワーク経由で送受信されるバイト数を測定する方法は?
実行中に送受信されたバイトを測定する必要があるこの状況があります。PC には、ネットワーク内の他のユーザーと対話するための通常のイーサネット インターフェイス (eth1) があります。Linux ネットワークの名前空間と cgroup について少し調査した結果、対策を講じるためにこのアプローチにたどり着きました。
- 新しいネットワーク名前空間を作成します。
- インターフェイス veth0 と veth1 の仮想イーサネット ペアを作成します。
- veth1 を以前に作成した名前空間に割り当て、デフォルトの名前空間に veth0 を残します。
- 仮想インターフェイスを構成し、veth0 と eth1 の間にブリッジを作成します。
それを踏まえて、新しい名前空間でプロセスを実行し、veth1 からの値をプロセスで送受信されたバイトとして想定します。上記の手順で iproute2 と bridge-utils を使用できることはわかっていますが、それは正しいですか? または、そのような測定を行う別の方法はありますか?
linux - Linux ですべての名前空間のすべてのネットワーク リンクを一覧表示する方法
ip
私が知っているように、Linux シェル環境では、次のように、特定の名前空間のネットワーク リンクを一覧表示できます。
ip netns exec <namespace> ip link show
私の質問は:
複数のネット名前空間がある場合、簡単なコマンドですべての名前空間のすべてのリンクを一覧表示するにはどうすればよいですか? または、そのためにスクリプトを作成する必要がありますか?
linux - CLONE_NEWNS がマウント名前空間を分離できないのはなぜですか?
次のテストを実行します。
- gcc -o mntns mntns.c
- $ sudo ./mntns で実行
- secret_dir='mktemp -d --tmpdir=/tmp'
- mount -n -o size=1m -t tmpfs tmpfs $secret_dir
- df -h 、ステップ 3 で作成した tmpdir が含まれていることを示します。 /tmp/tmp.sFsCzTDhjE
- 別のシェル コンソールを開き、df -h を実行します。これには、/tmp/tmp.sFsCzTDhjE も含まれます。
そのため、CLONE_NEWNS はマウントを分離できず、他のマウント名前空間で見ることができるようです。誰かがこの質問を助けることができますか? 多くの例を検索しましたが、彼らはこれを試しましたが、この問題については話しませんでした.