路由管理
功能描述
isulad-tools工具可以对系统容器进行动态添加/删除路由表。
命令格式
isulad-tools [COMMADN][OPTIONS] <container_id> [ARG...]
其中:
COMMAND:路由管理相关的命令。
OPTIONS:路由管理命令支持的选项。
container_id:容器id。
ARG:命令对应的参数。
接口说明
约束限制
- 使用isulad-tools向容器添加网卡和路由时,建议先执行add-nic添加网卡,然后执行add-route添加路由;使用isulad-tools从容器删除网卡和路由时,建议先执行remove-route删除路由,然后执行remove-nic删除网卡。
- 向容器内添加路由规则时,需确保所添加的路由规则与容器内现有的路由规则不会产生冲突。
使用示例
启动一个系统容器,指定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
0d2d68b45aa0c1b8eaf890c06ab2d008eb8c5d91e78b1f8fe4d37b86fd2c190b
isulad-tools向系统容器添加一块物理网卡:
[root@localhost ~]# isulad-tools add-nic --type "eth" --name enp4s0:eth123 --ip 172.17.28.6/24 --mtu 1300 --qlen 2100 0d2d68b45aa0
Add network interface (enp4s0) to container (0d2d68b45aa0,eth123) done
isulad-tools添加一条路由规则到系统容器,注意格式需按照’[{“dest”:”default”, “gw”:”192.168.10.1”},{“dest”:”192.168.0.0/16”,”dev”:”eth0”,”src”:”192.168.1.2”}]‘来配置。如果dest为空会自动填成default。
[root@localhost ~]# isulad-tools add-route 0d2d68b45aa0 '[{"dest":"172.17.28.0/32", "gw":"172.17.28.5","dev":"eth123"}]'
Add route to container 0d2d68b45aa0, route: {dest:172.17.28.0/32,src:,gw:172.17.28.5,dev:eth123} done
查看容器内是否新增一条路由规则:
[root@localhost ~]# isula exec -it 0d2d68b45aa0 route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.17.28.0 172.17.28.5 255.255.255.255 UGH 0 0 0 eth123
172.17.28.0 0.0.0.0 255.255.255.0 U 0 0 0 eth123