网卡管理
功能描述
isulad-tools支持将宿主机上的物理网卡或虚拟网卡插入到容器,在不使用网卡的时候从容器中删除归还给宿主机,并且可以动态修改网卡配置。插入物理网卡即把宿主机上一块网卡直接添加到容器中,插入虚拟网卡则需要先创建一对veth pair,之后将一端插入到容器中。
命令格式
isulad-tools [COMMADN][OPTIONS] <container_id>
其中:
COMMAND:网卡管理相关的命令。
OPTIONS:网卡管理命令支持的选项。
container_id:容器id。
参数说明
约束限制
- 支持添加物理网卡(eth)和虚拟网卡(veth)两种类型。
- 在添加网卡时可以同时对网卡进行配置,参数包括—ip/—mac/—bridge/—mtu/—qlen。
- 支持最多添加8个物理网卡到容器。
- 使用isulad-tools add-nic向容器添加eth网卡后,如果不加hook,在容器退出前必须手工将nic删除,否则在host上的eth网卡的名字会被更改成容器内的名字。
- 对于物理网卡(1822 vf网卡除外),add-nic必须使用原mac地址,update-nic禁止修改mac地址,容器内也不允许修改mac地址。
- 使用isulad-tools add-nic时,设置mtu值,设置范围跟具体的网卡型号有关。
- 使用isulad-tools向容器添加网卡和路由时,建议先执行add-nic添加网卡,然后执行add-route添加路由;使用isulad-tools从容器删除网卡和路由时,建议先执行remove-route删除路由,然后执行remove-nic删除网卡。
- 使用isulad-tools添加网卡时,一块网卡只能添加到一个容器中。
使用示例
启动一个系统容器,指定hook spec为isulad hook执行配置脚本:
[root@localhost ~]# isula run -tid --hook-spec /etc/isulad-tools/hookspec.json --system-container --external-rootfs /root/root-fs none init
2aaca5c1af7c872798dac1a468528a2ccbaf20b39b73fc0201636936a3c32aa8
添加一个虚拟网卡到容器
[root@localhost ~]# isulad-tools add-nic --type "veth" --name abc2:bcd2 --ip 172.17.28.5/24 --mac 00:ff:48:13:xx:xx --bridge docker0 2aaca5c1af7c
Add network interface to container 2aaca5c1af7c (bcd2,abc2) done
添加一个物理网卡到容器
[root@localhost ~]# isulad-tools add-nic --type "eth" --name eth3:eth1 --ip 172.17.28.6/24 --mtu 1300 --qlen 2100 2aaca5c1af7c
Add network interface to container 2aaca5c1af7c (eth3,eth1) done
说明:
添加虚拟网卡或物理网卡时,请确保网卡处于空闲状态,添加正在使用的网卡会导致系统网络断开。