01、Neutron中的Linux虚拟网络功能

本文探讨了Linux系统中的tap、tun、namespace和vethpair在网络设备中的角色,以及它们在虚拟网络构建中的应用,强调了namespace用于资源隔离和不同租户网络功能的区别,以及iptables和netfilter在防火墙和路由控制中的作用。
摘要由CSDN通过智能技术生成

一、问题

问题:tap和tun的区别?作用是什么?

tap和tun两者同属于操作系统内核中的虚拟网络设备(此处指的是逻辑的设备,实际承载载体可能就是数据结构、内核模块,设备驱动)与传统的L3路由器,L2交换机的物理网络设备区分开来。

  • tap虚拟设备位于网络OSI模型的二层(数据链路层),主要与Ethernet协议对应,另一个别称也可以是vNIC充当虚拟机的网卡。
  • tun虚拟设备是一个网络层(IP)的点对点设备,主要提供IP层隧道功能,如GRE。

问题:namespace的作用是什么?

namespace主要针对Linux的资源进行隔离,Linux再host内创建多个namespace,于是那些原本是Linux全局的资源,就变成了namespace范围内的“全局”资源,而且不同的namespace资源互不可见,彼此透明。此时要想实现对每个namespace的“全局”资源进行限制,可以使用cgroup。
Linux namespace的资源隔离
单单从网络视角来看,一个namespace提供独立的网络协议栈(网络设备接口,ipv4、ipv6、ip路由、防火墙规则、sockets)。一个设备(linux Device)只能位于一个namespace中,不同的namespace中的设备可以通过veth pair进行桥接。

问题:veth pair,namespace,bridge的关系?

veth pair :不是一个设备,而是一对设备,以连接两个虚拟 以太端口,可以理解为物理网络中的网线。
namespace:针对Linux设备的资源进行隔离,可以类似于交换机中的VRF,有对应自身的ipv4地址、路由表,ACL等共享使用交换机的硬件资源,彼此隔离。
bridge:在 Linux 的语境里,Bridge( 网桥)与 Switch (交换机)是一个概念,目前linux中常用的两款交换机为linux bridge,ovs,可以类比物理网络中的三层交换机。
当三者进行结合后,可以再linux Host/VM内部就可以实现一个逻辑的虚拟网络,如下图:
虚拟网络

问题:虚拟网络中的route如何产生,如何做到不同租户使用不同的router?

再不同网段互访时,Linux自身就是一个路由器,所以不用向bridge那样去手工创建,假如想要实现路由转发,可以开启路由转发功能:

echo “1” /proc/sys/net /工pv4 /工p_f orward
跨网段的 namespace/tap 互通测试组网图
同时针对不同租户,也是通过namespace进行隔离,不同的租户有不同的路由器(linux路由转发功能)。

问题:iptables与netfilter的关系?

iptables与前文介绍的 tap/tun等不同,它并不是一个网络设备 ,准确来说是一个软件。 iptables 其实只是一个运行在用户空间的命令行工具,真正实现这些功能的是运行在内核空间的 netfilter 模块。
iptables 与 netfilter 的关系图
不过按照通俗理解iptable就是netfilter的代言人,主要实现的功能有:防火墙、NAT、Qos。

二、物理网络与虚拟设备对比

tap、tun、veth pair 在 Linux 中都被称为设备,但是在与日常概念的类比中,常常被称
作接口 。Neutron 利用这些“接口”进行 Bridge 之间的连接 、 Bridge 与 VM(虚拟机)的连接 、
Bridge 与 Router 之间的连接,对比关系图如下:
对比图
反而是 Router 、Bridge 这些在 Linux 中没有被称为设备的网络功能, 反而在日常概念中常常被称为设备 。Bridge 提供二层转发功能,Router 提供三层转发功能 。Router 还常常借助 iptable 提供 SNAT/DNAT 功能 。Bridge 也常常借助 iptable 提供 Firewall 功能 。
同时再Neutron中隔离也是一大特性,利用 namespace 做隔离也是 Neutron 的一个非常重要的手段,提供不同租户的DHCP、Router功能也是依据namespace来实现。

本文参考:《深入理解Openstack Neutron》——李宗标

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值