本发明专利技术涉及一种基于macvlan模式的容器网络隔离方法,引入macvlan网络驱动模式,并基于此模式,获得各容器分别所对应的namespace,由此结合各容器的实时进出口流量,针对各容器设定隔离措施,并通过宿主机的内核模块TC实现对各容器的隔离措施,针对容器实现了更加全面的网络资源隔离,增加了容器的网络隔离性能,提高了集群内网络资源的使用率,增强了对容器网络使用率的监控,为容器提供了更加便利、丰富的报警规则设置。
【技术实现步骤摘要】
一种基于macvlan模式的容器网络隔离方法
本专利技术涉及一种基于macvlan模式的容器网络隔离方法,属于容器
技术介绍
容器技术:有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,这种技术就是容器技术,容器技术是有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,但是现有容器中网络隔离操作、需要完全依赖于构建所基于的网络模式,而现有网络模式下所构建的容器,无法针对容器实现更加全面的网络资源隔离,实际隔离效果不佳。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于macvlan模式的容器网络隔离方法,引入macvlan网络驱动模式,能够针对容器实现更加全面的网络资源隔离,提高实际网络隔离的工作效率。本专利技术为了解决上述技术问题采用以下技术方案:本专利技术设计了一种基于macvlan模式的容器网络隔离方法,基于服务器端、以及部署于宿主机上的客户端,针对宿主机上的各个容器实现网络隔离,其中,宿主机上应用macvlan网络驱动,生成宿主机上各容器分别所对应的虚拟MAC地址、虚拟IP地址,所述容器网络隔离方法包括如下步骤:步骤A.客户端采集获得宿主机的网络信息和主机信息,保存至本地配置文件,并将本地配置文件推送至服务器端,然后进入步骤B;步骤B.按预设业务需求启动宿主机上相应数量的容器,各个容器在启动时、分别挂载本地配置文件,同时,客户端将各容器基于macvlan网络驱动分别所对应的虚拟MAC地址、虚拟IP地址注册至服务器端,然后进入步骤C;步骤C.服务器端根据各容器分别所对应的虚拟MAC地址、虚拟IP地址,下发指令至客户端,经客户端获取各容器分别所对应的namespace,然后进入步骤D;步骤D.客户端启动数量与容器数量相等的各个线程,由各个线程分别一一对应针对各容器的进出口流量实现监测,并将所获进出口流量实时上传至服务器端,然后进入步骤E;步骤E.服务器端根据各容器的实时进出口流量,结合各容器分别所对应的namespace,分别针对各容器设定隔离措施,并发往客户端,由客户端根据各容器的隔离措施,针对各容器进行隔离操作。作为本专利技术的一种优选技术方案:所述步骤E中,服务器端根据各容器的实时进出口流量,结合各容器分别所对应的namespace,分别针对各容器设定流量报警条件,并发往客户端,由客户端根据各容器的流量报警条件,针对各容器设置容器流量阈值,防止流量使用溢出。作为本专利技术的一种优选技术方案:所述步骤E中,服务器端根据各容器的实时进出口流量,结合各容器分别所对应的namespace,分别针对各容器设定隔离措施,并发往客户端;客户端分别针对各容器,根据来自服务器端的隔离措施,通过内核模块TC针对容器的namespace设置流量进出队列,并且创建流量进出队列的端口限制策略,再将端口限制策略的流量设置为隔离措施中所配置流量大小,然后将端口限制策略应用到该容器相应的端口流量上,从而实现该容器的网络隔离。作为本专利技术的一种优选技术方案:所述步骤A中的网络信息包括息IP地址、网卡性能参数。作为本专利技术的一种优选技术方案:所述步骤A中的主机信息包括CPU核数、内存容量、磁盘容量信息。作为本专利技术的一种优选技术方案:所述容器所对应的namespace包括进程的Cgrouproot、进程间通信、网络、文件系统挂载点、进程ID、用户和组、主机名域名。作为本专利技术的一种优选技术方案:所述步骤D中,服务器端获得各容器实时进出口流量的同时,将各容器实时进出口流量进行汇总、并展示。本专利技术所述一种基于macvlan模式的容器网络隔离方法,采用以上技术方案与现有技术相比,具有以下技术效果:本专利技术所设计基于macvlan模式的容器网络隔离方法,引入macvlan网络驱动模式,并基于此模式,获得各容器分别所对应的namespace,由此结合各容器的实时进出口流量,针对各容器设定隔离措施,并通过宿主机的内核模块TC实现对各容器的隔离措施,针对容器实现了更加全面的网络资源隔离,增加了容器的网络隔离性能,提高了集群内网络资源的使用率,增强了对容器网络使用率的监控,为容器提供了更加便利、丰富的报警规则设置。附图说明图1是本专利技术设计基于macvlan模式的容器网络隔离方法中的架构示意图。具体实施方式下面结合说明书附图对本专利技术的具体实施方式作进一步详细的说明。macvlan是一种网卡虚拟化技术,能够将一张物理网卡虚拟出多张虚拟网卡,在Docker中,macvlan是Docker众多网络模型中的一种,并且是一种跨主机的网络模型,已经作为一种网络驱动默认启用。在使用macvlan网络驱动的机器上,默认会从主机的物理网卡接口上生成虚拟的macvlan形式的主接口,然后在主机上启动的容器会在此主接口上生成单独的子接口相连接,并且这些生成的子接口拥有完全独立的MAC地址和IP地址,并且共享一个广播域。通过不同的子接口,macvlan会根据收到包的目的MAC地址、判断这个包需要交给哪个虚拟子接口,虚拟子接口再把包交给上层的协议栈处理。macvlan支持四种通信模式:private、vepa(virtualethernetportaggregator)模式、bridge模式和passthru模式。适用面最广的是bridge模式,在bridge模式下每个子接口的MAC地址是已知的,子接口之间可以直接通信。本专利技术设计了一种基于macvlan模式的容器网络隔离方法,基于服务器端、以及部署于宿主机上的客户端,针对宿主机上的各个容器实现网络隔离,其中,宿主机上应用macvlan网络驱动,生成宿主机上各容器分别所对应的虚拟MAC地址、虚拟IP地址,实际应用当中,如图1所示,所述容器网络隔离方法包括如下步骤。步骤A.客户端采集获得宿主机的网络信息和主机信息,保存至本地配置文件,并将本地配置文件推送至服务器端,然后进入步骤B。实际应用当中,这里的网络信息包括息IP地址、网卡性能参数;主机信息包括CPU核数、内存容量、磁盘容量信息。步骤B.按预设业务需求启动宿主机上相应数量的容器,各个容器在启动时、分别挂载本地配置文件,同时,客户端将各容器基于macvlan网络驱动分别所对应的虚拟MAC地址、虚拟IP地址注册至服务器端,然后进入步骤C。步骤C.服务器端根据各容器分别所对应的虚拟MAC地址、虚拟IP地址,下发指令至客户端,经客户端获取各容器分别所对应的namespace,然后进入步骤D。实际应用当中,上述步骤C中,服务器端诸如按如下示例代码,下发指令至客户端,经客户端获取各容器分别所对应的namespace。NAMESPACE=$(ls-1/var/run/docker/netns/)NAMESPACE_FILE=$(dockerinspect-f"{{.NetworkSettings.本文档来自技高网...
【技术保护点】
1.一种基于macvlan模式的容器网络隔离方法,其特征在于:基于服务器端、以及部署于宿主机上的客户端,针对宿主机上的各个容器实现网络隔离,其中,宿主机上应用macvlan网络驱动,生成宿主机上各容器分别所对应的虚拟MAC地址、虚拟IP地址,所述容器网络隔离方法包括如下步骤:/n步骤A. 客户端采集获得宿主机的网络信息和主机信息,保存至本地配置文件,并将本地配置文件推送至服务器端,然后进入步骤B;/n步骤B. 按预设业务需求启动宿主机上相应数量的容器,各个容器在启动时、分别挂载本地配置文件,同时,客户端将各容器基于macvlan网络驱动分别所对应的虚拟MAC地址、虚拟IP地址注册至服务器端,然后进入步骤C;/n步骤C. 服务器端根据各容器分别所对应的虚拟MAC地址、虚拟IP地址,下发指令至客户端,经客户端获取各容器分别所对应的namespace,然后进入步骤D;/n步骤D. 客户端启动数量与容器数量相等的各个线程,由各个线程分别一一对应针对各容器的进出口流量实现监测,并将所获进出口流量实时上传至服务器端,然后进入步骤E;/n步骤E. 服务器端根据各容器的实时进出口流量,结合各容器分别所对应的namespace,分别针对各容器设定隔离措施,并发往客户端,由客户端根据各容器的隔离措施,针对各容器进行隔离操作。/n...
【技术特征摘要】
1.一种基于macvlan模式的容器网络隔离方法,其特征在于:基于服务器端、以及部署于宿主机上的客户端,针对宿主机上的各个容器实现网络隔离,其中,宿主机上应用macvlan网络驱动,生成宿主机上各容器分别所对应的虚拟MAC地址、虚拟IP地址,所述容器网络隔离方法包括如下步骤:
步骤A.客户端采集获得宿主机的网络信息和主机信息,保存至本地配置文件,并将本地配置文件推送至服务器端,然后进入步骤B;
步骤B.按预设业务需求启动宿主机上相应数量的容器,各个容器在启动时、分别挂载本地配置文件,同时,客户端将各容器基于macvlan网络驱动分别所对应的虚拟MAC地址、虚拟IP地址注册至服务器端,然后进入步骤C;
步骤C.服务器端根据各容器分别所对应的虚拟MAC地址、虚拟IP地址,下发指令至客户端,经客户端获取各容器分别所对应的namespace,然后进入步骤D;
步骤D.客户端启动数量与容器数量相等的各个线程,由各个线程分别一一对应针对各容器的进出口流量实现监测,并将所获进出口流量实时上传至服务器端,然后进入步骤E;
步骤E.服务器端根据各容器的实时进出口流量,结合各容器分别所对应的namespace,分别针对各容器设定隔离措施,并发往客户端,由客户端根据各容器的隔离措施,针对各容器进行隔离操作。
2.根据权利要求1所述一种基于macvlan模式的容器网络隔离方法,其特征在于:在一个实施方式中,所述步骤E中,服务器端根据各容器的实时进出口流量,结合各容器分别所对应的namespace,分别针对各容器设定流量报警条件,并发往客户端,由客户端根据各容器的流量...
【专利技术属性】
技术研发人员:王冲,周甜,邓志伟,陈志豪,
申请(专利权)人:江苏艾佳家居用品有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。