OpenStack网络指南(4)网络命名空间(Network namespaces)

命名空间是一种用于定义特定标识符集合的方式。 使用命名空间,可以在不同的命名空间中多次使用相同的标识符。 您还可以将标识符集限制为对特定进程可见。
例如,Linux为网络和进程提供命名空间等。 如果进程在进程命名空间中运行,则它只能查看同一命名空间中的其他进程并与其通信。 因此,如果特定进程命名空间中的shell运行ps waux,它将只显示同一命名空间中的其他进程。

Linux网络命名空间

在网络命名空间中,作用域“标识符”是网络设备;因此给定的网络设备(如eth0)存在于特定的命名空间中。 Linux使用默认网络命名空间启动,因此如果您的操作系统没有做任何特殊操作,那就是所有网络设备所在的位置。但也可以创建更多的非默认命名空间,并在这些命名空间中创建新设备,或者将现有设备从一个命名空间移动到另一个命名空间。
每个网络命名空间也有自己的路由表,事实上这是命名空间存在的主要原因。路由表由目的地IP地址是关键所在,因此如果您希望相同的目标IP地址在不同时间表示不同的东西,那么网络命名空间是您需要的 - 这是OpenStack Networking需要的功能,它提供重叠的IP地址在不同的虚拟网络。
每个网络命名空间也有自己的一套iptables(用于IPv4和IPv6)。因此,您可以对不同命名空间中具有相同IP地址的流以及不同的路由应用不同的安全性。
任何给定的Linux进程在特定的网络命名空间中运行。默认情况下,这是从其父进程继承的,但具有正确功能的进程可以切换到不同的命名空间;在实践中,这主要是使用ip netns exec NETNS COMMAND ...调用完成的,它启动COMMAND在名为NETNS的命名空间中运行。假设这样的进程向IP地址A.B.C.D发送消息,命名空间的作用是在该命名空间的路由表中查找A.B.C.D,并且将确定消息通过其传输的网络设备。

虚拟路由和转发(VRF)

虚拟路由和转发是一种IP技术,允许路由表的多个实例在同一路由器上同时共存。 它是上述网络命名空间功能的另一个名称。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值