macvlanを介してネットワークネームスペースをインターフェイスデバイスにバインドする方法

macvlanを介してネットワークネームスペースをインターフェイスデバイスにバインドする方法

次のコマンドを使用して、新しいネットワーク名前空間をネットワークデバイスに接続しようとします。

# create macvlan and associate it to network device in bride mode
ip link add macvlan1 link dev1 type macvlan mode bridge

# create new netwrok namespace
ip netns add net1

# associate the macvlan to the nbew namespace
ip link set macvlan1 netns net1

# set macvlan to up
ip netns exec net1 ifconfig macvlan1 up

新しい名前空間でpingを試みると、「接続:ネットワークに接続できません」というエラーが返されます。


編集する:

ip addr show dev1:
4: dev1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 68:05:ca:8e:82:d8 brd ff:ff:ff:ff:ff:ff
inet 192.168.65.107/24 brd 192.168.65.255 scope global dynamic dev1
   valid_lft 490223sec preferred_lft 490223sec
inet6 fe80::d257:2f1:9c21:3a13/64 scope link 
   valid_lft forever preferred_lft forever

ip route:
default via 192.168.65.1 dev dev1  proto static  metric 100 
default via 25.25.40.1 dev ethernet0  metric 1000 
25.25.40.0/24 dev ethernet0  proto kernel  scope link  src 25.25.40.143 
169.254.0.0/16 dev dev1  scope link  metric 1000 
192.168.1.4 via 192.168.65.1 dev dev1  proto dhcp  metric 100 
192.168.65.0/24 dev dev1  proto kernel  scope link  src 192.168.65.107  metric 100 

答え1

xtermネットワークネームスペースから始めることをお勧めしますip netns exec ...。これにより、入力時間が大幅に節約されます。

名前空間が示すように、ip -n net1 link listネットワークインタフェースはmacvlan1(およびlo)です。もしそうなら、あなたがしなければならないことは

ip -n net1 addr add 192.168.65.100/24 dev macvlan1

(その前にlink set macvlan1 up)。この点に注意してくださいしなければならない192.168.65.100/24パスはネットワークネームスペースに自動的に追加されますが、macvlan1次のコマンドを使用して確認してください。

ip -n net1 route

これで、デフォルトのネットワーク名前空間でpingを実行できるようになります(タイプは「ブリッジ」なので)。

ping 192.168.65.100

同様に、新しいネームスペースでネイティブネットワークネームスペースインターフェイスをpingできる必要があります。

ip netns exec net1 ping 192.168.65.107

192.168.65.100これらすべては、ネットワークの他のデバイスでアドレスを使用しないと仮定します。それ以外の場合、興味深いことが発生する可能性があります。

関連情報