Linuxでは、次のコマンドを使用してネットワーク名前空間を作成できますip
。ただし、このコマンドを実行するにはルートである必要があります。ただし、通常のユーザーIDを使用してネットワーク名前空間を作成することはできますunshare -rUn
。このコマンドを使用すると、制限されたユーザー名前空間が新しいネットワーク名前空間を所有します。
新しいネットワーク名前空間を使用してインターネットに接続することはできません。 veth ペアを作成するにはルートが必要です。ネットワークネームスペースがルートなしでインターネットに接続する方法はありますか?私は多くの機能(例えば、名前空間と物理ネットワーク共有)が不可能であることを知っています。tun0
限られたネットワークネームスペースなどの仮想インターフェイスを作成できますか?
たとえば、一般ユーザーが所有するネットワーク名前空間を使用して、ルートなしでopenvpnを実行できます。
$ create-network-namespace
$ openvpn home.ovpn
$ google-chrome
答え1
解決策が見つかりました。 githubには、ネームスペースに仮想タブデバイスを作成し、ホストネームスペースにソケットシステムコールを使用するプロジェクトがすでにあります。 TAPを介して送信された各パケットはソケット操作に変換されます。