ネットワークネームスペースからUSBワイヤレスアダプタにアクセスする

ネットワークネームスペースからUSBワイヤレスアダプタにアクセスする

ワイヤレスUSBアダプタを持っていて、私のDockerコンテナにコンピュータ自体のワイヤレスアダプタの代わりにインターネットに接続するためだけにそれを使用させたいと思います。ネットワークネームスペースからアダプタにアクセスする方法を知っている場合は、これを行うことができると思います。これは、Dockerコンテナの名前空間を作成すると、そのアダプタからもアクセスできるためです。

私のネットワーキングの知識は非常に基本的なので、これを行う方法を理解するために多くの本を読んでみましたが、私は完全に私のレベルを超えました。

これまでは次のことを試しましたが、成功しませんでした(enx582c80139263はUSBワイヤレスアダプタです)。

1)ネットワークネームスペースを作成し、ワイヤレスアダプタを適切なネームスペースに移動します(次の手順を実行)。これ):

sudo ip netns add ns1
sudo ip link set enx582c80139263 netns ns1
sudo ip netns exec ns1 ip address add 10.0.0.1/24 dev enx582c80139263
sudo ip netns exec ns1 ip link set dev enx582c80139263 up

すべてのIPに対して直接デフォルトルートを作成し、ゲートウェイを10.0.0.1に設定しようとしましたが、どちらも機能しませんでした。

sudo ip netns exec ns1 route add default enx582c80139263
sudo ip netns exec ns1 route add default gw 10.0.0.1 enx582c80139263

うまくいくには、IPルーティングやiptablesについて何かする必要があるようですが、何がわかりません。

2)コンテナのネットワーク名前空間を作成し、次にvethペアを作成します。ここで veth の 1 つはコンテナの名前空間にあり、もう 1 つはグローバルの名前空間にあります。その後、IPアドレスを提供し、ブリッジ(brctl)を使用してワイヤレスアダプタインターフェイスをグローバルネームスペースvethに接続しました。

sudo ip netns add ns1 
sudo ovs-vsctl add-br br0

sudo ip link add veth0 type veth peer name veth1
sudo ip link set veth0 netns ns1
sudo ovs-vsctl add-port br0 veth1
sudo ovs-vsctl add-port br0 enx582c80139263

sudo ip link set dev veth1 up
sudo ip netns exec ns1 ip link set dev veth0 up
sudo ip netns exec ns1 ip address add 192.168.1.99/24 dev veth0

ブリッジを取り外すと、あるベスから別のベス​​にピングを送ることができますが、ブリッジが存在する場合はそうではありません。理由がわからない。 iptablesまたはIPルーティングを変更する必要があるかもしれません。


私はこの問題について完全に間違った方向に行っているかもしれません。過去数日間、ネットワーキングとドッカーについて本当に学びました。この問題を別の方法で処理する必要があるかどうか教えてください。

関連情報