如何通过 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在网络命名空间中启动 a 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 它(因为您的类型是“bridge”):

ping 192.168.65.100

以同样的方式,您应该能够从新命名空间 ping 主网络命名空间接口:

ip netns exec net1 ping 192.168.65.107

所有这些都假设该地址192.168.65.100未被网络中的其他设备使用,否则可能会发生有趣的事情。

相关内容