vethインターフェイスペアを作成し、各インターフェイスを異なるネットワークネームスペースに割り当てる(簡単な)コマンドはありますか?
mynamespace-1
たとえば、2つの名前空間があるとしましょうmynamespace-2
。インターフェイスの各エンドポイント名がvethペアを介してこれら2つの名前空間を接続する(簡単な)コマンドはありますかeth0
?
現在私がやろうとしているのは、vethペアを作成し、各インターフェイスをその名前空間に移動してから、その名前空間内でインターフェイスの名前を変更することです。これら3つのコマンドを1つのコマンドに圧縮できるかどうか疑問に思います。
状況に合わせて現在の名前空間ペアを接続して接続をテストする方法の例は次のとおりです。
# Create two network namespaces
sudo ip netns add 'mynamespace-1'
sudo ip netns add 'mynamespace-2'
# Create a veth virtual-interface pair
sudo ip link add 'myns-1-eth0' type veth peer name 'myns-2-eth0'
# Assign the interfaces to the namespaces
sudo ip link set 'myns-1-eth0' netns 'mynamespace-1'
sudo ip link set 'myns-2-eth0' netns 'mynamespace-2'
# Change the names of the interfaces (I prefer to use standard interface names)
sudo ip netns exec 'mynamespace-1' ip link set 'myns-1-eth0' name 'eth0'
sudo ip netns exec 'mynamespace-2' ip link set 'myns-2-eth0' name 'eth0'
# Assign an address to each interface
sudo ip netns exec 'mynamespace-1' ip addr add 192.168.1.1/24 dev eth0
sudo ip netns exec 'mynamespace-2' ip addr add 192.168.2.1/24 dev eth0
# Bring up the interfaces (the veth interfaces the loopback interfaces)
sudo ip netns exec 'mynamespace-1' ip link set 'lo' up
sudo ip netns exec 'mynamespace-1' ip link set 'eth0' up
sudo ip netns exec 'mynamespace-2' ip link set 'lo' up
sudo ip netns exec 'mynamespace-2' ip link set 'eth0' up
# Configure routes
sudo ip netns exec 'mynamespace-1' ip route add default via 192.168.1.1 dev eth0
sudo ip netns exec 'mynamespace-2' ip route add default via 192.168.2.1 dev eth0
# Test the connection (in both directions)
sudo ip netns exec 'mynamespace-1' ping -c 1 192.168.2.1
sudo ip netns exec 'mynamespace-2' ping -c 1 192.168.1.1
答え1
私が提供できる最善の方法は、名前空間でコマンドを実行し(ショートカット-n
を使用して)、同じ名前で各エンドポイントを作成して移動することです。一つ次のコマンドでそれを別の名前空間に配置します。
ip -n mynamespace-1 link add eth0 type veth peer name eth0 netns mynamespace-2
アドレスの割り当てなどの他の操作も実行する必要があるため(-n
略語も役立つ可能性がある)、とにかくスクリプトを作成する必要があります。
前述のように、man ip
この-n
オプションはのショートカットなので、そのオプションをサポートしていない場合はip netns exec ... ip ...
このフォームを使用できます。ip
-n