我正在尝试使用以下命令将新的网络命名空间连接到网络设备:
# 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
未被网络中的其他设备使用,否则可能会发生有趣的事情。