Open vSwitch 对Linux网络命名空间支持

在Linux系统上Open vSwitch具有网络命名空间的基本支持。允许ovs-vswitchd守护进程,在端口移动到另外的网络命名空间后,仍可继续跟踪其状态和统计信息。

如何工作

守护进程ovs-vswitchd运行在所谓的父辈网络命名空间中。它侦听来自所有网络命名空间(netns)的netlink事件消息,这些网络命名空间需要在父被命名空间中有标识符。每个netlink消息都包含网络命名空间标识符(netnsid)作为辅助数据,用于匹配事件到相应的端口。

ovs-vswitch使用扩展的openvswitch内核API [1]_ 获取指定端口的当前netnsid(存储在结构体 netdev_linux中)和统计信息。在发生更改事件之前,例如,当端口移动到另一个网络命名空间时接收。netnsid一直缓存在用户空间中。

当端口移动到另外的命名空间之后,ovs-vswitchd使用另一个扩展的内核API [2]_,从其命名空间中获取端口的信息,例如,flags、MTU、MAC地址和ifindex。

上游内核4.15以及包含命名空间基本支持的必要改动。如果正在运行的内核不提供上述API,那么守护进程将回滚会之前的行为。

… [1] 请求命令: OVS_VPORT_CMD_GET, 属性: OVS_VPORT_ATTR_NETNSID
… [2] 请求命令: RTM_GETLINK 传入 IFLA_IF_NETNSID 属性.

限制

目前只能获取以上章节列出的端口信息。大多数其它操作,例如查询MII或设置MTU,由于内核中缺少适当的API,因此它们仍然不被支持。

在大多数需要将端口移动到其它网络命名空间的用例中,应该使用veth对来代替,因为它提供了一个更干净和更健壮的无明显性能损失的解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值