
pyroute2包与网络命名空间
发布日期:2021-05-07 18:06:05
浏览次数:21
分类:技术文章
本文共 1173 字,大约阅读时间需要 3 分钟。
pyroute2引起我注意的原因是在uts中调用pyroute2创建命名空间,结果用它创建的命名空间会导致虚拟机网络不通,我正在定位原因,使用driver调用的和导入包调用的会有那些区别?
网络命名空间是否与创建他的进程有关??? 网络命名空间Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace。每个Namespace里面的资源对其他Namespace都是透明的。要创建新的Namespace,只需要在调用clone时指定相应的flag。Linux Namespaces机制为实现基于容器的虚拟化技术提供了很好的基础,LXC(Linux containers)就是利用这一特性实现了资源的隔离。不同container内的进程属于不同的Namespace,彼此透明,互不干扰。下面我们就从clone系统调用的flag出发,来介绍各个Namespace。
当调用clone时,设定了CLONE_NEWNET,就会创建一个新的Network Namespace。一个Network Namespace为进程提供了一个完全独立的网络协议栈的视图。包括网络设备接口,IPv4和IPv6协议栈,IP路由表,防火墙规则,sockets等等。一个Network Namespace提供了一份独立的网络环境,就跟一个独立的系统一样。一个物理设备只能存在于一个Network Namespace中,可以从一个Namespace移动另一个Namespace中。虚拟网络设备(virtual network device)提供了一种类似管道的抽象,可以在不同的Namespace之间建立隧道。利用虚拟化网络设备,可以建立到其他Namespace中的物理设备的桥接。当一个Network Namespace被销毁时,物理设备会被自动移回init Network Namespace,即系统最开始的Namespace。 根据这段话来推测,命名空间不仅仅在网络上使用,在其他领域也会使用。from pyroute2 import netns
——————————————————————分割线 下面是关于pyroute2的使用和介绍 安装: pip install pyroute2Look, once you set a netns for a process, you can not leave it. So there is only one way: fork a child and run setns in the child. No other solution. It’s not a library feature, but the OS design.
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月30日 03时20分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
HDFS源码分析(六)-----租约
2019-03-05
自定义Hive Sql Job分析工具
2019-03-05
作为一名非Commiter,如何向开源社区提交自己的代码
2019-03-05
聊聊HDFS RBF第二阶段的主要改进
2019-03-05
公司如何使用开源软件
2019-03-05
流处理系统中的“Exactly Once”语义保证
2019-03-05
论分布式系统中单一锁控制的优化
2019-03-05
【MySQL】(四)SQL 基础操作之 DQL 数据查询语言
2019-03-05
【MySQL】(八)视图
2019-03-05
【MySQL】(九)触发器
2019-03-05
关于Altium Designer 09导出BOM表不能正确分类问题
2019-03-05
Oracle 11G环境配置
2019-03-05
【Spark】(六)Spark 运行流程
2019-03-05
你还不会在CentOS7上安装Docker嘛?
2019-03-05
Docker命令锦集
2019-03-05
【Python】(十二)IO 文件处理
2019-03-05
【Hive】(二十)详解 Hive 四种排序的区别
2019-03-05
【Hive】函数 instr 的用法
2019-03-05
SSM框架整合详解
2019-03-05
【Oozie】(三)Oozie 使用实战教学,带你快速上手!
2019-03-05