External Network/API Network:连接外网,用于调用 openstack 的 API,虚拟机访问外网,外部ssh到虚拟机
Data Network:数据网络,虚拟机之间的数据传输
Management Network:管理网络,openstack 内部各个模块之间的交互,连接数据库,连接 Message Queue
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-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 虚拟了一套网络接口,与物理网络几乎无区别
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
原文:https://www.cnblogs.com/omgasw/p/12085272.html