首页 > 其他 > 详细

neutron的基本原理

时间:2019-12-23 19:22:39      阅读:94      评论:0      收藏:0      [点我收藏+]

常见三网络划分

External Network/API Network:连接外网,用于调用 openstack 的 API,虚拟机访问外网,外部ssh到虚拟机

Data Network:数据网络,虚拟机之间的数据传输

Management Network:管理网络,openstack 内部各个模块之间的交互,连接数据库,连接 Message Queue

Neutron中的网桥

br-int 综合网桥,实现内部网络功能

br-ex 外部网桥,与外部网络通信

技术分享图片

 

 

单节点是 openstack 的测试环境,对于复杂环境的多节点,每个机器都有自己的 br-int

对于多节点结构,可以想象 br-int 是一个大的,横跨所有节点的二层 switch

然而 br-int 在实际环境中是物理的分隔开了,需要有一种方式将它们串联起来,openstack 提供了多种方式,例如 GRE,VLAN,VxLAN

技术分享图片

不同机器上的 br-int 通过 br-int 下面的网卡连接

对于虚拟机和虚拟 router,它们仍然觉得是连接到了一共大的 L2 的 br-int 上,通过这个 br-int 相互通信,它们感受不到 br-int 下面的虚拟网卡 br-tun

 

如果有不同的 tenant,创建了不同的 private network,为了在 Data Network 上对数据进行隔离,创建 private network 的时候,需要指定 vlanid

不同的 tenant 的 private network 上创建的虚拟机,连接到 br-int 上的时候都是带 tag 的,所以不同 tenant 的虚拟机,即使连接到同一个 br-int 上,因为 tag 不同,也是不能相互通信

 

同一个机器上的 tag 计数仅在本机有效,并不使用我们创建 private network 指定的全局唯一的 vlanid

全局唯一的 vlanid 仅在 br-int 以下的虚拟网卡和物理网络中使用

虚拟机仅能感知 br-int 以上的网络,看不到打通 br-int 所要使用的 vlanid

neutron 组件的简单流程图

技术分享图片

 

 

neutron-server:接受 api 调用,发送到对应的 neutron-plugin 上

neutron-plugin:实现网络功能,交给对应的 neutron-agent

neutron-agent:模拟出具体设备

neutron-L2-agent:二层代理,用于管理 vlan 的插件,实现二层网络通信的代理

neutron-L3-agent:租户网络和 floating ip 之间的转换

neutron-metadata-agent:运行在网络节点,用于响应 nova 的 metadata 请求

LBaaS agent:为多台实例和 ovs agent 提供负载均衡服务

虚拟网络设备 tap/tun/veth

tap/tun 虚拟了一套网络接口,与物理网络几乎无区别

tap/tun 虚拟网络设备的原理:

在 linux 内核中添加了一共 tap/tun 虚拟设备的驱动程序,和与之关联的字符设备文件 /dev/tunX,协议栈可以像操作普通网卡一样操作(read/write 设备文件) tunX 代表的虚拟网卡

tap 和 tun 的区别:

1.tap 工作在二层,可以配置 mac 和 ip 地址

   tun 工作在点对点三层,无 mac 地址

2.tap 子网掩码为 /24,对应以太网设备

   tun 子网掩码为 /30,对应点对点设备

3.tap 用于创建网桥

   tun 一般用于路由

veth-pair

veth-pair 是成对出现的一种虚拟网络设备,一端连接协议栈,一端互联

常用于连接虚拟网络组件,例如 linux bridge,ovs

neutron的基本原理

原文:https://www.cnblogs.com/omgasw/p/12085272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!